From owner-svn-src-all@freebsd.org Sun Mar 25 00:50:28 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F040FF5CB00; Sun, 25 Mar 2018 00:50:27 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A099568B29; Sun, 25 Mar 2018 00:50:27 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 99E4B16D13; Sun, 25 Mar 2018 00:50:27 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P0oRTi076216; Sun, 25 Mar 2018 00:50:27 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P0oRrU076215; Sun, 25 Mar 2018 00:50:27 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201803250050.w2P0oRrU076215@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 25 Mar 2018 00:50:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331509 - stable/11/sys/dev/usb/serial X-SVN-Group: stable-11 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: stable/11/sys/dev/usb/serial X-SVN-Commit-Revision: 331509 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 00:50:28 -0000 Author: ian Date: Sun Mar 25 00:50:27 2018 New Revision: 331509 URL: https://svnweb.freebsd.org/changeset/base/331509 Log: MFC r330385: Flag the first interface on a KTLINK FTDI-based jtag+uart device as being the jtag port, so that a tty is not created for it. This is based on information in the PR and from the vendor website. When the PR was first opened we had no facility for flagging the jtag ports. I stumbled across the still-open PR with the idea of closing it, and noticed that this wee update was needed. PR: 175893 Modified: stable/11/sys/dev/usb/serial/uftdi.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/serial/uftdi.c ============================================================================== --- stable/11/sys/dev/usb/serial/uftdi.c Sat Mar 24 23:58:44 2018 (r331508) +++ stable/11/sys/dev/usb/serial/uftdi.c Sun Mar 25 00:50:27 2018 (r331509) @@ -441,7 +441,7 @@ static const STRUCT_USB_HOST_ID uftdi_devs[] = { UFTDI_DEV(FTDI, IPLUS2, 0), UFTDI_DEV(FTDI, IRTRANS, 0), UFTDI_DEV(FTDI, KBS, 0), - UFTDI_DEV(FTDI, KTLINK, 0), + UFTDI_DEV(FTDI, KTLINK, UFTDI_JTAG_IFACE(0)), UFTDI_DEV(FTDI, LENZ_LIUSB, 0), UFTDI_DEV(FTDI, LK202, 0), UFTDI_DEV(FTDI, LK204, 0), From owner-svn-src-all@freebsd.org Sun Mar 25 00:57:01 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 30E33F5D4E7; Sun, 25 Mar 2018 00:57:01 +0000 (UTC) (envelope-from mp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D4C01690CB; Sun, 25 Mar 2018 00:57:00 +0000 (UTC) (envelope-from mp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B0A0516EA0; Sun, 25 Mar 2018 00:57:00 +0000 (UTC) (envelope-from mp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P0v0Ea081045; Sun, 25 Mar 2018 00:57:00 GMT (envelope-from mp@FreeBSD.org) Received: (from mp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P0v0lA081039; Sun, 25 Mar 2018 00:57:00 GMT (envelope-from mp@FreeBSD.org) Message-Id: <201803250057.w2P0v0lA081039@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mp set sender to mp@FreeBSD.org using -f From: Mark Peek Date: Sun, 25 Mar 2018 00:57:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci X-SVN-Group: head X-SVN-Commit-Author: mp X-SVN-Commit-Paths: in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci X-SVN-Commit-Revision: 331510 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 00:57:01 -0000 Author: mp Date: Sun Mar 25 00:57:00 2018 New Revision: 331510 URL: https://svnweb.freebsd.org/changeset/base/331510 Log: Add VMCI (Virtual Machine Communication Interface) driver In a virtual machine, VMCI is exposed as a regular PCI device. The primary communication mechanisms supported are a point-to-point bidirectional transport based on a pair of memory-mapped queues, and asynchronous notifications in the form of datagrams and doorbells. These features are available to kernel level components such as vSockets through the VMCI kernel API. In addition to this, the VMCI kernel API provides support for receiving events related to the state of the VMCI communication channels, and the virtual machine itself. Submitted by: Vishnu Dasa Reviewed by: bcr, imp Obtained from: VMware Differential Revision: https://reviews.freebsd.org/D14289 Added: head/share/man/man4/vmci.4 (contents, props changed) head/sys/dev/vmware/vmci/ head/sys/dev/vmware/vmci/vmci.c (contents, props changed) head/sys/dev/vmware/vmci/vmci.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_call_defs.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_datagram.c (contents, props changed) head/sys/dev/vmware/vmci/vmci_datagram.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_defs.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_doorbell.c (contents, props changed) head/sys/dev/vmware/vmci/vmci_doorbell.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_driver.c (contents, props changed) head/sys/dev/vmware/vmci/vmci_driver.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_event.c (contents, props changed) head/sys/dev/vmware/vmci/vmci_event.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_hashtable.c (contents, props changed) head/sys/dev/vmware/vmci/vmci_hashtable.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_kernel_api.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_kernel_api_1.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_kernel_api_2.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_kernel_defs.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_kernel_if.c (contents, props changed) head/sys/dev/vmware/vmci/vmci_kernel_if.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_qpair.c (contents, props changed) head/sys/dev/vmware/vmci/vmci_queue.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_queue_pair.c (contents, props changed) head/sys/dev/vmware/vmci/vmci_queue_pair.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_resource.c (contents, props changed) head/sys/dev/vmware/vmci/vmci_resource.h (contents, props changed) head/sys/dev/vmware/vmci/vmci_utils.h (contents, props changed) head/sys/modules/vmware/vmci/ head/sys/modules/vmware/vmci/Makefile (contents, props changed) Modified: head/sys/conf/files.amd64 head/sys/conf/files.i386 head/sys/modules/vmware/Makefile Added: head/share/man/man4/vmci.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/vmci.4 Sun Mar 25 00:57:00 2018 (r331510) @@ -0,0 +1,71 @@ +.\" Copyright (c) 2018 VMware, Inc. All Rights Reserved. +.\" +.\" SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0) +.\" +.\" $FreeBSD$ +.Dd February 10, 2018 +.Dt VMCI 4 +.Os +.Sh NAME +.Nm vmci +.Nd VMware Virtual Machine Communication Interface +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device vmci" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +if_vmci_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver provides support for the VMware Virtual Machine Communication Interface +(VMCI) in virtual machines by VMware. +.Pp +VMCI allows virtual machines to communicate with host kernel modules and the +VMware hypervisors. +User level applications in a virtual machine can use VMCI through vSockets +(also known as VMCI Sockets and not included in this kernel module), a socket +address family designed to be compatible with UDP and TCP at the interface +level. +Today, VMCI and vSockets are used by various VMware Tools components inside +the guest for zero-config, network-less access to VMware host services. +In addition to this, VMware's users are using vSockets for various +applications, where network access of the virtual machine is restricted +or non-existent. +Examples of this are VMs communicating with device proxies for proprietary +hardware running as host applications and automated testing of applications +running within virtual machines. +.Pp +In a virtual machine, VMCI is exposed as a regular PCI device. +The primary communication mechanisms supported are a point-to-point +bidirectional transport based on a pair of memory-mapped queues, and +asynchronous notifications in the form of datagrams and doorbells. +These features are available to kernel level components such as vSockets +through the VMCI kernel API. +In addition to this, the VMCI kernel API provides support for receiving +events related to the state of the VMCI communication channels, and the +virtual machine itself. +.Sh SEE ALSO +.Xr pci 9 , +.Xr socket 2 +.Rs +.%T "VMware vSockets Documentation" +.%U https://www.vmware.com/support/developer/vmci-sdk/ +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 12.0 . +.Sh AUTHORS +The +.Nm +driver and man page were written by +.An Vishnu Dasa Aq Mt vdasahar@gmail.com . Modified: head/sys/conf/files.amd64 ============================================================================== --- head/sys/conf/files.amd64 Sun Mar 25 00:50:27 2018 (r331509) +++ head/sys/conf/files.amd64 Sun Mar 25 00:57:00 2018 (r331510) @@ -475,6 +475,16 @@ dev/tpm/tpm_isa.c optional tpm isa dev/uart/uart_cpu_x86.c optional uart dev/viawd/viawd.c optional viawd dev/vmware/vmxnet3/if_vmx.c optional vmx +dev/vmware/vmci/vmci.c optional vmci +dev/vmware/vmci/vmci_datagram.c optional vmci +dev/vmware/vmci/vmci_doorbell.c optional vmci +dev/vmware/vmci/vmci_driver.c optional vmci +dev/vmware/vmci/vmci_event.c optional vmci +dev/vmware/vmci/vmci_hashtable.c optional vmci +dev/vmware/vmci/vmci_kernel_if.c optional vmci +dev/vmware/vmci/vmci_qpair.c optional vmci +dev/vmware/vmci/vmci_queue_pair.c optional vmci +dev/vmware/vmci/vmci_resource.c optional vmci dev/wbwd/wbwd.c optional wbwd dev/xen/pci/xen_acpi_pci.c optional xenhvm dev/xen/pci/xen_pci.c optional xenhvm Modified: head/sys/conf/files.i386 ============================================================================== --- head/sys/conf/files.i386 Sun Mar 25 00:50:27 2018 (r331509) +++ head/sys/conf/files.i386 Sun Mar 25 00:57:00 2018 (r331510) @@ -327,6 +327,16 @@ dev/tpm/tpm_isa.c optional tpm isa dev/uart/uart_cpu_x86.c optional uart dev/viawd/viawd.c optional viawd dev/vmware/vmxnet3/if_vmx.c optional vmx +dev/vmware/vmci/vmci.c optional vmci +dev/vmware/vmci/vmci_datagram.c optional vmci +dev/vmware/vmci/vmci_doorbell.c optional vmci +dev/vmware/vmci/vmci_driver.c optional vmci +dev/vmware/vmci/vmci_event.c optional vmci +dev/vmware/vmci/vmci_hashtable.c optional vmci +dev/vmware/vmci/vmci_kernel_if.c optional vmci +dev/vmware/vmci/vmci_qpair.c optional vmci +dev/vmware/vmci/vmci_queue_pair.c optional vmci +dev/vmware/vmci/vmci_resource.c optional vmci dev/acpica/acpi_if.m standard dev/acpica/acpi_hpet.c optional acpi dev/acpica/acpi_timer.c optional acpi Added: head/sys/dev/vmware/vmci/vmci.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/vmware/vmci/vmci.c Sun Mar 25 00:57:00 2018 (r331510) @@ -0,0 +1,1177 @@ +/*- + * Copyright (c) 2018 VMware, Inc. All Rights Reserved. + * + * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0) + */ + +/* Driver for VMware Virtual Machine Communication Interface (VMCI) device. */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include "vmci.h" +#include "vmci_doorbell.h" +#include "vmci_driver.h" +#include "vmci_kernel_defs.h" +#include "vmci_queue_pair.h" + +static int vmci_probe(device_t); +static int vmci_attach(device_t); +static int vmci_detach(device_t); +static int vmci_shutdown(device_t); + +static int vmci_map_bars(struct vmci_softc *); +static void vmci_unmap_bars(struct vmci_softc *); + +static int vmci_config_capabilities(struct vmci_softc *); + +static int vmci_dma_malloc_int(struct vmci_softc *, bus_size_t, + bus_size_t, struct vmci_dma_alloc *); +static void vmci_dma_free_int(struct vmci_softc *, + struct vmci_dma_alloc *); + +static int vmci_config_interrupts(struct vmci_softc *); +static int vmci_config_interrupt(struct vmci_softc *); +static int vmci_check_intr_cnt(struct vmci_softc *); +static int vmci_allocate_interrupt_resources(struct vmci_softc *); +static int vmci_setup_interrupts(struct vmci_softc *); +static void vmci_dismantle_interrupts(struct vmci_softc *); +static void vmci_interrupt(void *); +static void vmci_interrupt_bm(void *); +static void dispatch_datagrams(void *, int); +static void process_bitmap(void *, int); + +static void vmci_delayed_work_fn_cb(void *context, int data); + +static device_method_t vmci_methods[] = { + /* Device interface. */ + DEVMETHOD(device_probe, vmci_probe), + DEVMETHOD(device_attach, vmci_attach), + DEVMETHOD(device_detach, vmci_detach), + DEVMETHOD(device_shutdown, vmci_shutdown), + + DEVMETHOD_END +}; + +static driver_t vmci_driver = { + "vmci", vmci_methods, sizeof(struct vmci_softc) +}; + +static devclass_t vmci_devclass; +DRIVER_MODULE(vmci, pci, vmci_driver, vmci_devclass, 0, 0); +MODULE_VERSION(vmci, VMCI_VERSION); + +MODULE_DEPEND(vmci, pci, 1, 1, 1); + +static struct vmci_softc *vmci_sc; + +#define LGPFX "vmci: " +/* + * Allocate a buffer for incoming datagrams globally to avoid repeated + * allocation in the interrupt handler's atomic context. + */ +static uint8_t *data_buffer = NULL; +static uint32_t data_buffer_size = VMCI_MAX_DG_SIZE; + +struct vmci_delayed_work_info { + vmci_work_fn *work_fn; + void *data; + vmci_list_item(vmci_delayed_work_info) entry; +}; + +/* + *------------------------------------------------------------------------------ + * + * vmci_probe -- + * + * Probe to see if the VMCI device is present. + * + * Results: + * BUS_PROBE_DEFAULT if device exists, ENXIO otherwise. + * + * Side effects: + * None. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_probe(device_t dev) +{ + + if (pci_get_vendor(dev) == VMCI_VMWARE_VENDOR_ID && + pci_get_device(dev) == VMCI_VMWARE_DEVICE_ID) { + device_set_desc(dev, + "VMware Virtual Machine Communication Interface"); + + return (BUS_PROBE_DEFAULT); + } + + return (ENXIO); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_attach -- + * + * Attach VMCI device to the system after vmci_probe() has been called and + * the device has been detected. + * + * Results: + * 0 if success, ENXIO otherwise. + * + * Side effects: + * None. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_attach(device_t dev) +{ + struct vmci_softc *sc; + int error, i; + + sc = device_get_softc(dev); + sc->vmci_dev = dev; + vmci_sc = sc; + + data_buffer = NULL; + sc->vmci_num_intr = 0; + for (i = 0; i < VMCI_MAX_INTRS; i++) { + sc->vmci_intrs[i].vmci_irq = NULL; + sc->vmci_intrs[i].vmci_handler = NULL; + } + + TASK_INIT(&sc->vmci_interrupt_dq_task, 0, dispatch_datagrams, sc); + TASK_INIT(&sc->vmci_interrupt_bm_task, 0, process_bitmap, sc); + + TASK_INIT(&sc->vmci_delayed_work_task, 0, vmci_delayed_work_fn_cb, sc); + + pci_enable_busmaster(dev); + + mtx_init(&sc->vmci_spinlock, "VMCI Spinlock", NULL, MTX_SPIN); + mtx_init(&sc->vmci_delayed_work_lock, "VMCI Delayed Work Lock", + NULL, MTX_DEF); + + error = vmci_map_bars(sc); + if (error) { + VMCI_LOG_ERROR(LGPFX"Failed to map PCI BARs.\n"); + goto fail; + } + + error = vmci_config_capabilities(sc); + if (error) { + VMCI_LOG_ERROR(LGPFX"Failed to configure capabilities.\n"); + goto fail; + } + + vmci_list_init(&sc->vmci_delayed_work_infos); + + vmci_components_init(); + vmci_util_init(); + error = vmci_qp_guest_endpoints_init(); + if (error) { + VMCI_LOG_ERROR(LGPFX"vmci_qp_guest_endpoints_init failed.\n"); + goto fail; + } + + error = vmci_config_interrupts(sc); + if (error) + VMCI_LOG_ERROR(LGPFX"Failed to enable interrupts.\n"); + +fail: + if (error) { + vmci_detach(dev); + return (ENXIO); + } + + return (0); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_detach -- + * + * Detach the VMCI device. + * + * Results: + * 0 + * + * Side effects: + * None. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_detach(device_t dev) +{ + struct vmci_softc *sc; + + sc = device_get_softc(dev); + + vmci_qp_guest_endpoints_exit(); + vmci_util_exit(); + + vmci_dismantle_interrupts(sc); + + vmci_components_cleanup(); + + taskqueue_drain(taskqueue_thread, &sc->vmci_delayed_work_task); + mtx_destroy(&sc->vmci_delayed_work_lock); + + if (sc->vmci_res0 != NULL) + bus_space_write_4(sc->vmci_iot0, sc->vmci_ioh0, + VMCI_CONTROL_ADDR, VMCI_CONTROL_RESET); + + if (sc->vmci_notifications_bitmap.dma_vaddr != NULL) + vmci_dma_free(&sc->vmci_notifications_bitmap); + + vmci_unmap_bars(sc); + + mtx_destroy(&sc->vmci_spinlock); + + pci_disable_busmaster(dev); + + return (0); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_shutdown -- + * + * This function is called during system shutdown. We don't do anything. + * + * Results: + * 0 + * + * Side effects: + * None. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_shutdown(device_t dev) +{ + + return (0); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_map_bars -- + * + * Maps the PCI I/O and MMIO BARs. + * + * Results: + * 0 on success, ENXIO otherwise. + * + * Side effects: + * None. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_map_bars(struct vmci_softc *sc) +{ + int rid; + + /* Map the PCI I/O BAR: BAR0 */ + rid = PCIR_BAR(0); + sc->vmci_res0 = bus_alloc_resource_any(sc->vmci_dev, SYS_RES_IOPORT, + &rid, RF_ACTIVE); + if (sc->vmci_res0 == NULL) { + VMCI_LOG_ERROR(LGPFX"Could not map: BAR0\n"); + return (ENXIO); + } + + sc->vmci_iot0 = rman_get_bustag(sc->vmci_res0); + sc->vmci_ioh0 = rman_get_bushandle(sc->vmci_res0); + sc->vmci_ioaddr = rman_get_start(sc->vmci_res0); + + /* Map the PCI MMIO BAR: BAR1 */ + rid = PCIR_BAR(1); + sc->vmci_res1 = bus_alloc_resource_any(sc->vmci_dev, SYS_RES_MEMORY, + &rid, RF_ACTIVE); + if (sc->vmci_res1 == NULL) { + VMCI_LOG_ERROR(LGPFX"Could not map: BAR1\n"); + return (ENXIO); + } + + sc->vmci_iot1 = rman_get_bustag(sc->vmci_res1); + sc->vmci_ioh1 = rman_get_bushandle(sc->vmci_res1); + + return (0); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_unmap_bars -- + * + * Unmaps the VMCI PCI I/O and MMIO BARs. + * + * Results: + * None. + * + * Side effects: + * None. + * + *------------------------------------------------------------------------------ + */ + +static void +vmci_unmap_bars(struct vmci_softc *sc) +{ + int rid; + + if (sc->vmci_res0 != NULL) { + rid = PCIR_BAR(0); + bus_release_resource(sc->vmci_dev, SYS_RES_IOPORT, rid, + sc->vmci_res0); + sc->vmci_res0 = NULL; + } + + if (sc->vmci_res1 != NULL) { + rid = PCIR_BAR(1); + bus_release_resource(sc->vmci_dev, SYS_RES_MEMORY, rid, + sc->vmci_res1); + sc->vmci_res1 = NULL; + } +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_config_capabilities -- + * + * Check the VMCI device capabilities and configure the device accordingly. + * + * Results: + * 0 if success, ENODEV otherwise. + * + * Side effects: + * Device capabilities are enabled. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_config_capabilities(struct vmci_softc *sc) +{ + unsigned long bitmap_PPN; + int error; + + /* + * Verify that the VMCI device supports the capabilities that we + * need. Datagrams are necessary and notifications will be used + * if the device supports it. + */ + sc->capabilities = bus_space_read_4(sc->vmci_iot0, sc->vmci_ioh0, + VMCI_CAPS_ADDR); + + if ((sc->capabilities & VMCI_CAPS_DATAGRAM) == 0) { + VMCI_LOG_ERROR(LGPFX"VMCI device does not support " + "datagrams.\n"); + return (ENODEV); + } + + if (sc->capabilities & VMCI_CAPS_NOTIFICATIONS) { + sc->capabilities = VMCI_CAPS_DATAGRAM; + error = vmci_dma_malloc(PAGE_SIZE, 1, + &sc->vmci_notifications_bitmap); + if (error) + VMCI_LOG_ERROR(LGPFX"Failed to alloc memory for " + "notification bitmap.\n"); + else { + memset(sc->vmci_notifications_bitmap.dma_vaddr, 0, + PAGE_SIZE); + sc->capabilities |= VMCI_CAPS_NOTIFICATIONS; + } + } else + sc->capabilities = VMCI_CAPS_DATAGRAM; + + /* Let the host know which capabilities we intend to use. */ + bus_space_write_4(sc->vmci_iot0, sc->vmci_ioh0, + VMCI_CAPS_ADDR, sc->capabilities); + + /* + * Register notification bitmap with device if that capability is + * used. + */ + if (sc->capabilities & VMCI_CAPS_NOTIFICATIONS) { + bitmap_PPN = + sc->vmci_notifications_bitmap.dma_paddr >> PAGE_SHIFT; + vmci_register_notification_bitmap(bitmap_PPN); + } + + /* Check host capabilities. */ + if (!vmci_check_host_capabilities()) + return (ENODEV); + + return (0); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_dmamap_cb -- + * + * Callback to receive mapping information resulting from the load of a + * bus_dmamap_t via bus_dmamap_load() + * + * Results: + * None. + * + * Side effects: + * None. + * + *------------------------------------------------------------------------------ + */ + +static void +vmci_dmamap_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error) +{ + bus_addr_t *baddr = arg; + + if (error == 0) + *baddr = segs->ds_addr; +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_dma_malloc_int -- + * + * Internal function that allocates DMA memory. + * + * Results: + * 0 if success. + * ENOMEM if insufficient memory. + * EINPROGRESS if mapping is deferred. + * EINVAL if the request was invalid. + * + * Side effects: + * DMA memory is allocated. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_dma_malloc_int(struct vmci_softc *sc, bus_size_t size, bus_size_t align, + struct vmci_dma_alloc *dma) +{ + int error; + + bzero(dma, sizeof(struct vmci_dma_alloc)); + + error = bus_dma_tag_create(bus_get_dma_tag(vmci_sc->vmci_dev), + align, 0, /* alignment, bounds */ + BUS_SPACE_MAXADDR, /* lowaddr */ + BUS_SPACE_MAXADDR, /* highaddr */ + NULL, NULL, /* filter, filterarg */ + size, /* maxsize */ + 1, /* nsegments */ + size, /* maxsegsize */ + BUS_DMA_ALLOCNOW, /* flags */ + NULL, /* lockfunc */ + NULL, /* lockfuncarg */ + &dma->dma_tag); + if (error) { + VMCI_LOG_ERROR(LGPFX"bus_dma_tag_create failed: %d\n", error); + goto fail; + } + + error = bus_dmamem_alloc(dma->dma_tag, (void **)&dma->dma_vaddr, + BUS_DMA_ZERO | BUS_DMA_NOWAIT, &dma->dma_map); + if (error) { + VMCI_LOG_ERROR(LGPFX"bus_dmamem_alloc failed: %d\n", error); + goto fail; + } + + error = bus_dmamap_load(dma->dma_tag, dma->dma_map, dma->dma_vaddr, + size, vmci_dmamap_cb, &dma->dma_paddr, BUS_DMA_NOWAIT); + if (error) { + VMCI_LOG_ERROR(LGPFX"bus_dmamap_load failed: %d\n", error); + goto fail; + } + + dma->dma_size = size; + +fail: + if (error) + vmci_dma_free(dma); + + return (error); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_dma_malloc -- + * + * This function is a wrapper around vmci_dma_malloc_int for callers + * outside of this module. Since we only support a single VMCI device, this + * wrapper provides access to the device softc structure. + * + * Results: + * 0 if success. + * ENOMEM if insufficient memory. + * EINPROGRESS if mapping is deferred. + * EINVAL if the request was invalid. + * + * Side effects: + * DMA memory is allocated. + * + *------------------------------------------------------------------------------ + */ + +int +vmci_dma_malloc(bus_size_t size, bus_size_t align, struct vmci_dma_alloc *dma) +{ + + return (vmci_dma_malloc_int(vmci_sc, size, align, dma)); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_dma_free_int -- + * + * Internal function that frees DMA memory. + * + * Results: + * None. + * + * Side effects: + * Frees DMA memory. + * + *------------------------------------------------------------------------------ + */ + +static void +vmci_dma_free_int(struct vmci_softc *sc, struct vmci_dma_alloc *dma) +{ + + if (dma->dma_tag != NULL) { + if (dma->dma_paddr != 0) { + bus_dmamap_sync(dma->dma_tag, dma->dma_map, + BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); + bus_dmamap_unload(dma->dma_tag, dma->dma_map); + } + + if (dma->dma_vaddr != NULL) + bus_dmamem_free(dma->dma_tag, dma->dma_vaddr, + dma->dma_map); + + bus_dma_tag_destroy(dma->dma_tag); + } + bzero(dma, sizeof(struct vmci_dma_alloc)); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_dma_free -- + * + * This function is a wrapper around vmci_dma_free_int for callers outside + * of this module. Since we only support a single VMCI device, this wrapper + * provides access to the device softc structure. + * + * Results: + * None. + * + * Side effects: + * Frees DMA memory. + * + *------------------------------------------------------------------------------ + */ + +void +vmci_dma_free(struct vmci_dma_alloc *dma) +{ + + vmci_dma_free_int(vmci_sc, dma); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_config_interrupts -- + * + * Configures and enables interrupts. Try to configure MSI-X. If this fails, + * try to configure MSI. If even this fails, try legacy interrupts. + * + * Results: + * 0 if success. + * ENOMEM if insufficient memory. + * ENODEV if the device doesn't support interrupts. + * ENXIO if the device configuration failed. + * + * Side effects: + * Interrupts get enabled if successful. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_config_interrupts(struct vmci_softc *sc) +{ + int error; + + data_buffer = malloc(data_buffer_size, M_DEVBUF, M_ZERO | M_NOWAIT); + if (data_buffer == NULL) + return (ENOMEM); + + sc->vmci_intr_type = VMCI_INTR_TYPE_MSIX; + error = vmci_config_interrupt(sc); + if (error) { + sc->vmci_intr_type = VMCI_INTR_TYPE_MSI; + error = vmci_config_interrupt(sc); + } + if (error) { + sc->vmci_intr_type = VMCI_INTR_TYPE_INTX; + error = vmci_config_interrupt(sc); + } + if (error) + return (error); + + /* Enable specific interrupt bits. */ + if (sc->capabilities & VMCI_CAPS_NOTIFICATIONS) + bus_space_write_4(sc->vmci_iot0, sc->vmci_ioh0, + VMCI_IMR_ADDR, VMCI_IMR_DATAGRAM | VMCI_IMR_NOTIFICATION); + else + bus_space_write_4(sc->vmci_iot0, sc->vmci_ioh0, + VMCI_IMR_ADDR, VMCI_IMR_DATAGRAM); + + /* Enable interrupts. */ + bus_space_write_4(sc->vmci_iot0, sc->vmci_ioh0, + VMCI_CONTROL_ADDR, VMCI_CONTROL_INT_ENABLE); + + return (0); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_config_interrupt -- + * + * Check the number of interrupts supported, allocate resources and setup + * interrupts. + * + * Results: + * 0 if success. + * ENOMEM if insufficient memory. + * ENODEV if the device doesn't support interrupts. + * ENXIO if the device configuration failed. + * + * Side effects: + * Resources get allocated and interrupts get setup (but not enabled) if + * successful. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_config_interrupt(struct vmci_softc *sc) +{ + int error; + + error = vmci_check_intr_cnt(sc); + if (error) + return (error); + + error = vmci_allocate_interrupt_resources(sc); + if (error) + return (error); + + error = vmci_setup_interrupts(sc); + if (error) + return (error); + + return (0); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_check_intr_cnt -- + * + * Check the number of interrupts supported by the device and ask PCI bus + * to allocate appropriate number of interrupts. + * + * Results: + * 0 if success. + * ENODEV if the device doesn't support any interrupts. + * ENXIO if the device configuration failed. + * + * Side effects: + * Resources get allocated on success. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_check_intr_cnt(struct vmci_softc *sc) +{ + + if (sc->vmci_intr_type == VMCI_INTR_TYPE_INTX) { + sc->vmci_num_intr = 1; + return (0); + } + + /* + * Make sure that the device supports the required number of MSI/MSI-X + * messages. We try for 2 MSI-X messages but 1 is good too. We need at + * least 1 MSI message. + */ + sc->vmci_num_intr = (sc->vmci_intr_type == VMCI_INTR_TYPE_MSIX) ? + pci_msix_count(sc->vmci_dev) : pci_msi_count(sc->vmci_dev); + + if (!sc->vmci_num_intr) { + VMCI_LOG_ERROR(LGPFX"Device does not support any interrupt" + " messages"); + return (ENODEV); + } + + sc->vmci_num_intr = (sc->vmci_intr_type == VMCI_INTR_TYPE_MSIX) ? + VMCI_MAX_INTRS : 1; + if (sc->vmci_intr_type == VMCI_INTR_TYPE_MSIX) { + if (pci_alloc_msix(sc->vmci_dev, &sc->vmci_num_intr)) + return (ENXIO); + } else if (sc->vmci_intr_type == VMCI_INTR_TYPE_MSI) { + if (pci_alloc_msi(sc->vmci_dev, &sc->vmci_num_intr)) + return (ENXIO); + } + + return (0); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_allocate_interrupt_resources -- + * + * Allocate resources necessary for interrupts. + * + * Results: + * 0 if success, ENXIO otherwise. + * + * Side effects: + * Resources get allocated on success. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_allocate_interrupt_resources(struct vmci_softc *sc) +{ + struct resource *irq; + int flags, i, rid; + + flags = RF_ACTIVE; + flags |= (sc->vmci_num_intr == 1) ? RF_SHAREABLE : 0; + rid = (sc->vmci_intr_type == VMCI_INTR_TYPE_INTX) ? 0 : 1; + + for (i = 0; i < sc->vmci_num_intr; i++, rid++) { + irq = bus_alloc_resource_any(sc->vmci_dev, SYS_RES_IRQ, &rid, + flags); + if (irq == NULL) + return (ENXIO); + sc->vmci_intrs[i].vmci_irq = irq; + sc->vmci_intrs[i].vmci_rid = rid; + } + + return (0); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_setup_interrupts -- + * + * Sets up the interrupts. + * + * Results: + * 0 if success, appropriate error code from bus_setup_intr otherwise. + * + * Side effects: + * Interrupt handler gets attached. + * + *------------------------------------------------------------------------------ + */ + +static int +vmci_setup_interrupts(struct vmci_softc *sc) +{ + struct vmci_interrupt *intr; + int error, flags; + + flags = INTR_TYPE_NET | INTR_MPSAFE; + if (sc->vmci_num_intr > 1) + flags |= INTR_EXCL; + + intr = &sc->vmci_intrs[0]; + error = bus_setup_intr(sc->vmci_dev, intr->vmci_irq, flags, NULL, + vmci_interrupt, NULL, &intr->vmci_handler); + if (error) + return (error); + bus_describe_intr(sc->vmci_dev, intr->vmci_irq, intr->vmci_handler, + "vmci_interrupt"); + + if (sc->vmci_num_intr == 2) { + intr = &sc->vmci_intrs[1]; + error = bus_setup_intr(sc->vmci_dev, intr->vmci_irq, flags, + NULL, vmci_interrupt_bm, NULL, &intr->vmci_handler); + if (error) + return (error); + bus_describe_intr(sc->vmci_dev, intr->vmci_irq, + intr->vmci_handler, "vmci_interrupt_bm"); + } + + return (0); +} + +/* + *------------------------------------------------------------------------------ + * + * vmci_interrupt -- + * + * Interrupt handler for legacy or MSI interrupt, or for first MSI-X + * interrupt (vector VMCI_INTR_DATAGRAM). + * + * Results: + * None. + * + * Side effects: + * None. + * + *------------------------------------------------------------------------------ + */ + +static void +vmci_interrupt(void *arg) +{ + + if (vmci_sc->vmci_num_intr == 2) + taskqueue_enqueue(taskqueue_swi, + &vmci_sc->vmci_interrupt_dq_task); + else { + unsigned int icr; + + icr = inl(vmci_sc->vmci_ioaddr + VMCI_ICR_ADDR); + if (icr == 0 || icr == 0xffffffff) + return; + if (icr & VMCI_ICR_DATAGRAM) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sun Mar 25 01:03:27 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB4B4F5DF04; Sun, 25 Mar 2018 01:03:27 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6E31D697D1; Sun, 25 Mar 2018 01:03:27 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 68F431704C; Sun, 25 Mar 2018 01:03:27 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P13Rn2086124; Sun, 25 Mar 2018 01:03:27 GMT (envelope-from sevan@FreeBSD.org) Received: (from sevan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P13REx086122; Sun, 25 Mar 2018 01:03:27 GMT (envelope-from sevan@FreeBSD.org) Message-Id: <201803250103.w2P13REx086122@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sevan set sender to sevan@FreeBSD.org using -f From: Sevan Janiyan Date: Sun, 25 Mar 2018 01:03:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331511 - in stable/11/share/man: man4 man9 X-SVN-Group: stable-11 X-SVN-Commit-Author: sevan X-SVN-Commit-Paths: in stable/11/share/man: man4 man9 X-SVN-Commit-Revision: 331511 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:03:28 -0000 Author: sevan (doc committer) Date: Sun Mar 25 01:03:26 2018 New Revision: 331511 URL: https://svnweb.freebsd.org/changeset/base/331511 Log: MFC r331274 Extend the description of ALTQ to call it a system which is a framework in altq(4) to match altq(9). This makes preserving the history section as the author of ALTQ easier in the history section, rather than calling it a framework in the description & a system in the history. Add a history section to altq(4) and extend the history section in altq(9) Modified: stable/11/share/man/man4/altq.4 stable/11/share/man/man9/altq.9 Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man4/altq.4 ============================================================================== --- stable/11/share/man/man4/altq.4 Sun Mar 25 00:57:00 2018 (r331510) +++ stable/11/share/man/man4/altq.4 Sun Mar 25 01:03:26 2018 (r331511) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 20, 2017 +.Dd March 20, 2018 .Dt ALTQ 4 .Os .Sh NAME @@ -45,7 +45,8 @@ .Sh DESCRIPTION The .Nm -framework provides several disciplines for queuing outgoing network packets. +system is a framework which provides several disciplines for queuing outgoing +network packets. This is done by modifications to the interface packet queues. See .Xr altq 9 @@ -59,7 +60,7 @@ utility, so please refer to the .Xr pfctl 8 and the .Xr pf.conf 5 -manpages for a complete description of the +man pages for a complete description of the .Nm capabilities and how to use it. .Ss Kernel Options @@ -202,3 +203,11 @@ pseudo drivers also do support .Xr ipfw 8 , .Xr pfctl 8 , .Xr altq 9 +.Sh HISTORY +The +.Nm +system first appeared in March 1997 and found home in the KAME project +(http://www.kame.net). +It was imported to +.Fx +in 5.3 . Modified: stable/11/share/man/man9/altq.9 ============================================================================== --- stable/11/share/man/man9/altq.9 Sun Mar 25 00:57:00 2018 (r331510) +++ stable/11/share/man/man9/altq.9 Sun Mar 25 01:03:26 2018 (r331511) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 25, 2004 +.Dd March 20, 2018 .Dt ALTQ 9 .Os .\" @@ -595,4 +595,8 @@ is called immediately after .Sh HISTORY The .Nm -system first appeared in March 1997. +system first appeared in March 1997 and found home in the KAME project +(http://www.kame.net). +It was imported to +.Fx +in 5.3 . From owner-svn-src-all@freebsd.org Sun Mar 25 01:17:41 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 88346F5F383; Sun, 25 Mar 2018 01:17:41 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 36B706A106; Sun, 25 Mar 2018 01:17:41 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 305E0171F6; Sun, 25 Mar 2018 01:17:41 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1HfBf091154; Sun, 25 Mar 2018 01:17:41 GMT (envelope-from sevan@FreeBSD.org) Received: (from sevan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1HegM091152; Sun, 25 Mar 2018 01:17:40 GMT (envelope-from sevan@FreeBSD.org) Message-Id: <201803250117.w2P1HegM091152@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sevan set sender to sevan@FreeBSD.org using -f From: Sevan Janiyan Date: Sun, 25 Mar 2018 01:17:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r331512 - in stable/10/share/man: man4 man9 X-SVN-Group: stable-10 X-SVN-Commit-Author: sevan X-SVN-Commit-Paths: in stable/10/share/man: man4 man9 X-SVN-Commit-Revision: 331512 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:17:41 -0000 Author: sevan (doc committer) Date: Sun Mar 25 01:17:40 2018 New Revision: 331512 URL: https://svnweb.freebsd.org/changeset/base/331512 Log: MFC r316721 r331274 Most wireless drivers don't support altq(4). Extend the description of ALTQ to call it a system which is a framework in altq(4) to match altq(9). This makes preserving the history section as the author of ALTQ easier in the history section, rather than calling it a framework in the description & a system in the history. Add a history section to altq(4) and extend the history section in altq(9) Modified: stable/10/share/man/man4/altq.4 stable/10/share/man/man9/altq.9 Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man4/altq.4 ============================================================================== --- stable/10/share/man/man4/altq.4 Sun Mar 25 01:03:26 2018 (r331511) +++ stable/10/share/man/man4/altq.4 Sun Mar 25 01:17:40 2018 (r331512) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 24, 2015 +.Dd March 20, 2018 .Dt ALTQ 4 .Os .Sh NAME @@ -45,7 +45,8 @@ .Sh DESCRIPTION The .Nm -framework provides several disciplines for queuing outgoing network packets. +system is a framework which provides several disciplines for queuing outgoing +network packets. This is done by modifications to the interface packet queues. See .Xr altq 9 @@ -59,7 +60,7 @@ utility, so please refer to the .Xr pfctl 8 and the .Xr pf.conf 5 -manpages for a complete description of the +man pages for a complete description of the .Nm capabilities and how to use it. .Ss Kernel Options @@ -130,7 +131,6 @@ They have been applied to the following hardware drive .Xr alc 4 , .Xr ale 4 , .Xr an 4 , -.Xr ath 4 , .Xr aue 4 , .Xr axe 4 , .Xr bce 4 , @@ -150,8 +150,6 @@ They have been applied to the following hardware drive .Xr gem 4 , .Xr hme 4 , .Xr igb 4 , -.Xr ipw 4 , -.Xr iwi 4 , .Xr ixgbe 4 , .Xr jme 4 , .Xr le 4 , @@ -163,10 +161,8 @@ They have been applied to the following hardware drive .Xr npe 4 , .Xr nve 4 , .Xr qlxgb 4 , -.Xr ral 4 , .Xr re 4 , .Xr rl 4 , -.Xr rum 4 , .Xr sf 4 , .Xr sge 4 , .Xr sis 4 , @@ -176,11 +172,9 @@ They have been applied to the following hardware drive .Xr ti 4 , .Xr txp 4 , .Xr udav 4 , -.Xr ural 4 , .Xr vge 4 , .Xr vr 4 , .Xr vte 4 , -.Xr wi 4 , and .Xr xl 4 . .Pp @@ -202,3 +196,11 @@ pseudo drivers also do support .Xr ipfw 8 , .Xr pfctl 8 , .Xr altq 9 +.Sh HISTORY +The +.Nm +system first appeared in March 1997 and found home in the KAME project +(http://www.kame.net). +It was imported to +.Fx +in 5.3 . Modified: stable/10/share/man/man9/altq.9 ============================================================================== --- stable/10/share/man/man9/altq.9 Sun Mar 25 01:03:26 2018 (r331511) +++ stable/10/share/man/man9/altq.9 Sun Mar 25 01:17:40 2018 (r331512) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 25, 2004 +.Dd March 20, 2018 .Dt ALTQ 9 .Os .\" @@ -596,4 +596,8 @@ is called immediately after .Sh HISTORY The .Nm -system first appeared in March 1997. +system first appeared in March 1997 and found home in the KAME project +(http://www.kame.net). +It was imported to +.Fx +in 5.3 . From owner-svn-src-all@freebsd.org Sun Mar 25 01:24:03 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 015DEF5FD5E; Sun, 25 Mar 2018 01:24:03 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A6E356A654; Sun, 25 Mar 2018 01:24:02 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A1B29173AE; Sun, 25 Mar 2018 01:24:02 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1O25J096001; Sun, 25 Mar 2018 01:24:02 GMT (envelope-from sevan@FreeBSD.org) Received: (from sevan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1O2HH096000; Sun, 25 Mar 2018 01:24:02 GMT (envelope-from sevan@FreeBSD.org) Message-Id: <201803250124.w2P1O2HH096000@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sevan set sender to sevan@FreeBSD.org using -f From: Sevan Janiyan Date: Sun, 25 Mar 2018 01:24:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r331513 - stable/10/share/examples/ppp X-SVN-Group: stable-10 X-SVN-Commit-Author: sevan X-SVN-Commit-Paths: stable/10/share/examples/ppp X-SVN-Commit-Revision: 331513 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:24:03 -0000 Author: sevan (doc committer) Date: Sun Mar 25 01:24:02 2018 New Revision: 331513 URL: https://svnweb.freebsd.org/changeset/base/331513 Log: MFC 321881 For the udp-client example, instruct user to add an entry for a udp based service. For tcp-client & udp-client, use the same port in configuration snippet as used in the comment prior to remove any ambiguity on the port number which needs to be specified. Modified: stable/10/share/examples/ppp/ppp.conf.sample Directory Properties: stable/10/ (props changed) Modified: stable/10/share/examples/ppp/ppp.conf.sample ============================================================================== --- stable/10/share/examples/ppp/ppp.conf.sample Sun Mar 25 01:17:40 2018 (r331512) +++ stable/10/share/examples/ppp/ppp.conf.sample Sun Mar 25 01:24:02 2018 (r331513) @@ -523,7 +523,7 @@ compuserve: # such as `rlogin' is involved, you may need to ``set escape 0xff'' # tcp-client: - set device tcpsrv.mynet:1234 + set device tcpsrv.mynet:6671 set dial set login set ifaddr 10.0.5.1 10.0.4.1 255.255.255.0 @@ -538,10 +538,10 @@ tcp-server: # # and this in /etc/services: # -# ppp 6671/tcp +# ppp 6671/udp # udp-client: - set device udpsrv.mynet:1234/udp + set device udpsrv.mynet:6671/udp set dial set login set ifaddr 10.0.5.1 10.0.4.1 255.255.255.0 From owner-svn-src-all@freebsd.org Sun Mar 25 01:24:52 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D39EEF5FEFB; Sun, 25 Mar 2018 01:24:52 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 88E176A7C0; Sun, 25 Mar 2018 01:24:52 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 83843173B7; Sun, 25 Mar 2018 01:24:52 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1Oqvg096082; Sun, 25 Mar 2018 01:24:52 GMT (envelope-from sevan@FreeBSD.org) Received: (from sevan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1Oq0E096081; Sun, 25 Mar 2018 01:24:52 GMT (envelope-from sevan@FreeBSD.org) Message-Id: <201803250124.w2P1Oq0E096081@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sevan set sender to sevan@FreeBSD.org using -f From: Sevan Janiyan Date: Sun, 25 Mar 2018 01:24:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331514 - stable/11/share/examples/ppp X-SVN-Group: stable-11 X-SVN-Commit-Author: sevan X-SVN-Commit-Paths: stable/11/share/examples/ppp X-SVN-Commit-Revision: 331514 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:24:53 -0000 Author: sevan (doc committer) Date: Sun Mar 25 01:24:52 2018 New Revision: 331514 URL: https://svnweb.freebsd.org/changeset/base/331514 Log: MFC 321881 For the udp-client example, instruct user to add an entry for a udp based service. For tcp-client & udp-client, use the same port in configuration snippet as used in the comment prior to remove any ambiguity on the port number which needs to be specified. Modified: stable/11/share/examples/ppp/ppp.conf.sample Directory Properties: stable/11/ (props changed) Modified: stable/11/share/examples/ppp/ppp.conf.sample ============================================================================== --- stable/11/share/examples/ppp/ppp.conf.sample Sun Mar 25 01:24:02 2018 (r331513) +++ stable/11/share/examples/ppp/ppp.conf.sample Sun Mar 25 01:24:52 2018 (r331514) @@ -523,7 +523,7 @@ compuserve: # such as `rlogin' is involved, you may need to ``set escape 0xff'' # tcp-client: - set device tcpsrv.mynet:1234 + set device tcpsrv.mynet:6671 set dial set login set ifaddr 10.0.5.1 10.0.4.1 255.255.255.0 @@ -538,10 +538,10 @@ tcp-server: # # and this in /etc/services: # -# ppp 6671/tcp +# ppp 6671/udp # udp-client: - set device udpsrv.mynet:1234/udp + set device udpsrv.mynet:6671/udp set dial set login set ifaddr 10.0.5.1 10.0.4.1 255.255.255.0 From owner-svn-src-all@freebsd.org Sun Mar 25 01:27:09 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D974CF602DE; Sun, 25 Mar 2018 01:27:09 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4F9C76AA2A; Sun, 25 Mar 2018 01:27:08 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2P1R5hm038862; Sat, 24 Mar 2018 18:27:05 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2P1R59o038861; Sat, 24 Mar 2018 18:27:05 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201803250127.w2P1R59o038861@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci In-Reply-To: <201803250057.w2P0v0lA081039@repo.freebsd.org> To: Mark Peek Date: Sat, 24 Mar 2018 18:27:05 -0700 (PDT) CC: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:27:10 -0000 > Author: mp > Date: Sun Mar 25 00:57:00 2018 > New Revision: 331510 > URL: https://svnweb.freebsd.org/changeset/base/331510 > > Log: > Add VMCI (Virtual Machine Communication Interface) driver > > In a virtual machine, VMCI is exposed as a regular PCI device. The primary > communication mechanisms supported are a point-to-point bidirectional > transport based on a pair of memory-mapped queues, and asynchronous > notifications in the form of datagrams and doorbells. These features are > available to kernel level components such as vSockets through the VMCI > kernel API. In addition to this, the VMCI kernel API provides support for > receiving events related to the state of the VMCI communication channels, > and the virtual machine itself. > > Submitted by: Vishnu Dasa > Reviewed by: bcr, imp > Obtained from: VMware > Differential Revision: https://reviews.freebsd.org/D14289 These files do not each contain a usable copyright, though they seem to contain SPDX tags that indiate they should contain a BSD 2 clause copyright. > Added: > head/share/man/man4/vmci.4 (contents, props changed) > head/sys/dev/vmware/vmci/ ... -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Mar 25 01:31:16 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CEC7BF607FC; Sun, 25 Mar 2018 01:31:16 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7F5546AF31; Sun, 25 Mar 2018 01:31:16 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7A43517430; Sun, 25 Mar 2018 01:31:16 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1VG8h096958; Sun, 25 Mar 2018 01:31:16 GMT (envelope-from sevan@FreeBSD.org) Received: (from sevan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1VGgk096957; Sun, 25 Mar 2018 01:31:16 GMT (envelope-from sevan@FreeBSD.org) Message-Id: <201803250131.w2P1VGgk096957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sevan set sender to sevan@FreeBSD.org using -f From: Sevan Janiyan Date: Sun, 25 Mar 2018 01:31:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r331516 - stable/10/sbin/mount_msdosfs X-SVN-Group: stable-10 X-SVN-Commit-Author: sevan X-SVN-Commit-Paths: stable/10/sbin/mount_msdosfs X-SVN-Commit-Revision: 331516 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:31:17 -0000 Author: sevan (doc committer) Date: Sun Mar 25 01:31:16 2018 New Revision: 331516 URL: https://svnweb.freebsd.org/changeset/base/331516 Log: MFC r316464 Whilst mount_pcfs originated as a patch in 386BSD, NetBSD 0.8 actually was the first release of an OS to ship with it. Heads up by Ingo Schwarze. Modified: stable/10/sbin/mount_msdosfs/mount_msdosfs.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/sbin/mount_msdosfs/mount_msdosfs.8 ============================================================================== --- stable/10/sbin/mount_msdosfs/mount_msdosfs.8 Sun Mar 25 01:30:29 2018 (r331515) +++ stable/10/sbin/mount_msdosfs/mount_msdosfs.8 Sun Mar 25 01:31:16 2018 (r331516) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 3, 2016 +.Dd April 3, 2017 .Dt MOUNT_MSDOSFS 8 .Os .Sh NAME @@ -198,7 +198,7 @@ The predecessor to utility named .Nm mount_pcfs appeared in -.Bx 386 . +.Nx 0.8 . It was rewritten in .Nx 1.0 and first appeared in From owner-svn-src-all@freebsd.org Sun Mar 25 01:30:30 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82584F6072F; Sun, 25 Mar 2018 01:30:30 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 339346AC88; Sun, 25 Mar 2018 01:30:30 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2E817173EB; Sun, 25 Mar 2018 01:30:30 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1UUf7096348; Sun, 25 Mar 2018 01:30:30 GMT (envelope-from sevan@FreeBSD.org) Received: (from sevan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1UUHd096347; Sun, 25 Mar 2018 01:30:30 GMT (envelope-from sevan@FreeBSD.org) Message-Id: <201803250130.w2P1UUHd096347@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sevan set sender to sevan@FreeBSD.org using -f From: Sevan Janiyan Date: Sun, 25 Mar 2018 01:30:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331515 - stable/11/sbin/mount_msdosfs X-SVN-Group: stable-11 X-SVN-Commit-Author: sevan X-SVN-Commit-Paths: stable/11/sbin/mount_msdosfs X-SVN-Commit-Revision: 331515 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:30:30 -0000 Author: sevan (doc committer) Date: Sun Mar 25 01:30:29 2018 New Revision: 331515 URL: https://svnweb.freebsd.org/changeset/base/331515 Log: MFC r316464 Whilst mount_pcfs originated as a patch in 386BSD, NetBSD 0.8 actually was the first release of an OS to ship with it. Heads up by Ingo Schwarze. Modified: stable/11/sbin/mount_msdosfs/mount_msdosfs.8 Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/mount_msdosfs/mount_msdosfs.8 ============================================================================== --- stable/11/sbin/mount_msdosfs/mount_msdosfs.8 Sun Mar 25 01:24:52 2018 (r331514) +++ stable/11/sbin/mount_msdosfs/mount_msdosfs.8 Sun Mar 25 01:30:29 2018 (r331515) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 3, 2016 +.Dd April 3, 2017 .Dt MOUNT_MSDOSFS 8 .Os .Sh NAME @@ -198,7 +198,7 @@ The predecessor to utility named .Nm mount_pcfs appeared in -.Bx 386 . +.Nx 0.8 . It was rewritten in .Nx 1.0 and first appeared in From owner-svn-src-all@freebsd.org Sun Mar 25 01:47:58 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2710BF61C79; Sun, 25 Mar 2018 01:47:58 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CCA316BD6D; Sun, 25 Mar 2018 01:47:57 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C79C81779E; Sun, 25 Mar 2018 01:47:57 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1lvxX006642; Sun, 25 Mar 2018 01:47:57 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1lv6o006641; Sun, 25 Mar 2018 01:47:57 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201803250147.w2P1lv6o006641@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 25 Mar 2018 01:47:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331520 - stable/11/sys/arm/arm X-SVN-Group: stable-11 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: stable/11/sys/arm/arm X-SVN-Commit-Revision: 331520 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:47:58 -0000 Author: ian Date: Sun Mar 25 01:47:57 2018 New Revision: 331520 URL: https://svnweb.freebsd.org/changeset/base/331520 Log: MFC r330050: Initialize all members of vm_page::md_page for armv4/5 systems. This fixes a hang in SI_SUB_KMEM sysinit, and is apparently required after r323290. Inspired by the commit message for r323676. Reported by: andreast@ Modified: stable/11/sys/arm/arm/pmap-v4.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/arm/arm/pmap-v4.c ============================================================================== --- stable/11/sys/arm/arm/pmap-v4.c Sun Mar 25 01:47:17 2018 (r331519) +++ stable/11/sys/arm/arm/pmap-v4.c Sun Mar 25 01:47:57 2018 (r331520) @@ -1727,6 +1727,8 @@ pmap_page_init(vm_page_t m) TAILQ_INIT(&m->md.pv_list); m->md.pv_memattr = VM_MEMATTR_DEFAULT; + m->md.pvh_attrs = 0; + m->md.pv_kva = 0; } /* From owner-svn-src-all@freebsd.org Sun Mar 25 01:33:52 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54682F60DAF; Sun, 25 Mar 2018 01:33:52 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 09A286B2A9; Sun, 25 Mar 2018 01:33:52 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 045F2175A5; Sun, 25 Mar 2018 01:33:52 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1XpKO001251; Sun, 25 Mar 2018 01:33:51 GMT (envelope-from sevan@FreeBSD.org) Received: (from sevan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1Xp3x001250; Sun, 25 Mar 2018 01:33:51 GMT (envelope-from sevan@FreeBSD.org) Message-Id: <201803250133.w2P1Xp3x001250@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sevan set sender to sevan@FreeBSD.org using -f From: Sevan Janiyan Date: Sun, 25 Mar 2018 01:33:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r331517 - stable/10/lib/libutil X-SVN-Group: stable-10 X-SVN-Commit-Author: sevan X-SVN-Commit-Paths: stable/10/lib/libutil X-SVN-Commit-Revision: 331517 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:33:52 -0000 Author: sevan (doc committer) Date: Sun Mar 25 01:33:51 2018 New Revision: 331517 URL: https://svnweb.freebsd.org/changeset/base/331517 Log: MFC r322665 Add caveat to kinfo_getvmmap(3) explaining high CPU utilisation. Based on kib's reply on https://lists.freebsd.org/pipermail/freebsd-hackers/2016-July/049710.html Modified: stable/10/lib/libutil/kinfo_getvmmap.3 Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libutil/kinfo_getvmmap.3 ============================================================================== --- stable/10/lib/libutil/kinfo_getvmmap.3 Sun Mar 25 01:31:16 2018 (r331516) +++ stable/10/lib/libutil/kinfo_getvmmap.3 Sun Mar 25 01:33:51 2018 (r331517) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 27, 2015 +.Dd August 18, 2017 .Dt KINFO_GETVMMAP 3 .Os .Sh NAME @@ -58,6 +58,13 @@ with the mib. While the kernel returns a packed structure, this function expands the data into a fixed record format. +.Sh CAVEAT +.Fn kinfo_getvmmap +calls can cause significant CPU consumption because calculating the residency +counts requires iterating over all memory pages of the process. +Setting the sysctl variable +.Va kern.proc_vmmap_skip_resident_count +to 1 prevents this calculation. .Sh RETURN VALUES On success the .Fn kinfo_getvmmap From owner-svn-src-all@freebsd.org Sun Mar 25 01:34:45 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04603F60EB6; Sun, 25 Mar 2018 01:34:45 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AF17A6B3B6; Sun, 25 Mar 2018 01:34:44 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A982B175B3; Sun, 25 Mar 2018 01:34:44 +0000 (UTC) (envelope-from sevan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1YivB001347; Sun, 25 Mar 2018 01:34:44 GMT (envelope-from sevan@FreeBSD.org) Received: (from sevan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1Yi6V001346; Sun, 25 Mar 2018 01:34:44 GMT (envelope-from sevan@FreeBSD.org) Message-Id: <201803250134.w2P1Yi6V001346@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sevan set sender to sevan@FreeBSD.org using -f From: Sevan Janiyan Date: Sun, 25 Mar 2018 01:34:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331518 - stable/11/lib/libutil X-SVN-Group: stable-11 X-SVN-Commit-Author: sevan X-SVN-Commit-Paths: stable/11/lib/libutil X-SVN-Commit-Revision: 331518 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:34:45 -0000 Author: sevan (doc committer) Date: Sun Mar 25 01:34:44 2018 New Revision: 331518 URL: https://svnweb.freebsd.org/changeset/base/331518 Log: MFC r322665 Add caveat to kinfo_getvmmap(3) explaining high CPU utilisation. Based on kib's reply on https://lists.freebsd.org/pipermail/freebsd-hackers/2016-July/049710.html Modified: stable/11/lib/libutil/kinfo_getvmmap.3 Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libutil/kinfo_getvmmap.3 ============================================================================== --- stable/11/lib/libutil/kinfo_getvmmap.3 Sun Mar 25 01:33:51 2018 (r331517) +++ stable/11/lib/libutil/kinfo_getvmmap.3 Sun Mar 25 01:34:44 2018 (r331518) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 27, 2015 +.Dd August 18, 2017 .Dt KINFO_GETVMMAP 3 .Os .Sh NAME @@ -58,6 +58,13 @@ with the mib. While the kernel returns a packed structure, this function expands the data into a fixed record format. +.Sh CAVEAT +.Fn kinfo_getvmmap +calls can cause significant CPU consumption because calculating the residency +counts requires iterating over all memory pages of the process. +Setting the sysctl variable +.Va kern.proc_vmmap_skip_resident_count +to 1 prevents this calculation. .Sh RETURN VALUES On success the .Fn kinfo_getvmmap From owner-svn-src-all@freebsd.org Sun Mar 25 01:55:18 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8462F62288; Sun, 25 Mar 2018 01:55:18 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46A736C34B; Sun, 25 Mar 2018 01:55:18 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3F25A1796F; Sun, 25 Mar 2018 01:55:18 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1tIev011362; Sun, 25 Mar 2018 01:55:18 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1tIFP011361; Sun, 25 Mar 2018 01:55:18 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201803250155.w2P1tIFP011361@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 25 Mar 2018 01:55:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331522 - stable/11/sys/dev/efidev X-SVN-Group: stable-11 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: stable/11/sys/dev/efidev X-SVN-Commit-Revision: 331522 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:55:19 -0000 Author: ian Date: Sun Mar 25 01:55:17 2018 New Revision: 331522 URL: https://svnweb.freebsd.org/changeset/base/331522 Log: MFC r331068: Use EFI RTC capabilities info when registering, add bootverbose diagnostics. Make some small improvements to the efirtc driver by obtaining the clock capabilities (resolution and whether the sub-second counters are reset) and using the info when registering the clock. When the hardware zeroes out the subsecond info on clock-set, schedule clock updates to happen just before top-of-second, so that the RTC time is closely in-sync with kernel time. Also, in the identify() routine, always add the driver if EFI runtime services are available, then decide in probe() whether to attach the driver or not. If not attaching and bootverbose is on, say why. All of this is basically to avoid "silent failure" -- if someone thinks there should be an efi rtc and it's not attaching, at least they can set bootverbose and maybe get a clue from the output. Differential Revision: https://reviews.freebsd.org/D14565 (timed out) Modified: stable/11/sys/dev/efidev/efirtc.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/efidev/efirtc.c ============================================================================== --- stable/11/sys/dev/efidev/efirtc.c Sun Mar 25 01:52:38 2018 (r331521) +++ stable/11/sys/dev/efidev/efirtc.c Sun Mar 25 01:55:17 2018 (r331522) @@ -41,21 +41,20 @@ __FBSDID("$FreeBSD$"); #include "clock_if.h" +static bool efirtc_zeroes_subseconds; +static struct timespec efirtc_resadj; + +static const u_int us_per_s = 1000000; +static const u_int ns_per_s = 1000000000; +static const u_int ns_per_us = 1000; + static void efirtc_identify(driver_t *driver, device_t parent) { - struct efi_tm tm; - int error; - /* - * Check if we can read the time. This will stop us attaching when - * there is no EFI Runtime support, or the gettime function is - * unimplemented, e.g. on some builds of U-Boot. - */ - error = efi_get_time(&tm); - if (error != 0) + /* Don't add the driver unless we have working runtime services. */ + if (efi_rt_ok() != 0) return; - if (device_find_child(parent, "efirtc", -1) != NULL) return; if (BUS_ADD_CHILD(parent, 0, "efirtc", -1) == NULL) @@ -65,16 +64,58 @@ efirtc_identify(driver_t *driver, device_t parent) static int efirtc_probe(device_t dev) { + struct efi_tm tm; + int error; - device_quiet(dev); - return (0); + /* + * Check whether we can read the time. This will stop us from attaching + * when there is EFI Runtime support but the gettime function is + * unimplemented, e.g. on some builds of U-Boot. + */ + if ((error = efi_get_time(&tm)) != 0) { + if (bootverbose) + device_printf(dev, "cannot read EFI realtime clock\n"); + return (error); + } + device_set_desc(dev, "EFI Realtime Clock"); + return (BUS_PROBE_DEFAULT); } static int efirtc_attach(device_t dev) { + struct efi_tmcap tmcap; + long res; + int error; - clock_register(dev, 1000000); + bzero(&tmcap, sizeof(tmcap)); + if ((error = efi_get_time_capabilities(&tmcap)) != 0) { + device_printf(dev, "cannot get EFI time capabilities"); + return (error); + } + + /* Translate resolution in Hz to tick length in usec. */ + if (tmcap.tc_res == 0) + res = us_per_s; /* 0 is insane, assume 1 Hz. */ + else if (tmcap.tc_res > us_per_s) + res = 1; /* 1us is the best we can represent */ + else + res = us_per_s / tmcap.tc_res; + + /* Clock rounding adjustment is 1/2 of resolution, in nsec. */ + efirtc_resadj.tv_nsec = (res * ns_per_us) / 2; + + /* Does the clock zero the subseconds when time is set? */ + efirtc_zeroes_subseconds = tmcap.tc_stz; + + /* + * Register. If the clock zeroes out the subseconds when it's set, + * schedule the SetTime calls to happen just before top-of-second. + */ + clock_register_flags(dev, res, CLOCKF_SETTIME_NO_ADJ); + if (efirtc_zeroes_subseconds) + clock_schedule(dev, ns_per_s - ns_per_us); + return (0); } @@ -105,6 +146,7 @@ efirtc_gettime(device_t dev, struct timespec *ts) ct.year = tm.tm_year; ct.nsec = tm.tm_nsec; + clock_dbgprint_ct(dev, CLOCK_DBG_READ, &ct); return (clock_ct_to_ts(&ct, ts)); } @@ -114,7 +156,17 @@ efirtc_settime(device_t dev, struct timespec *ts) struct clocktime ct; struct efi_tm tm; + /* + * We request a timespec with no resolution-adjustment so that we can + * apply it ourselves based on whether or not the clock zeroes the + * sub-second part of the time when setting the time. + */ + ts->tv_sec -= utc_offset(); + if (!efirtc_zeroes_subseconds) + timespecadd(ts, &efirtc_resadj); + clock_ts_to_ct(ts, &ct); + clock_dbgprint_ct(dev, CLOCK_DBG_WRITE, &ct); bzero(&tm, sizeof(tm)); tm.tm_sec = ct.sec; From owner-svn-src-all@freebsd.org Sun Mar 25 01:52:39 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23D1BF62021; Sun, 25 Mar 2018 01:52:39 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CBD326C183; Sun, 25 Mar 2018 01:52:38 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C6A4417961; Sun, 25 Mar 2018 01:52:38 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1qcCI011208; Sun, 25 Mar 2018 01:52:38 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1qcdI011204; Sun, 25 Mar 2018 01:52:38 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201803250152.w2P1qcdI011204@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 25 Mar 2018 01:52:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331521 - in stable/11/sys: isa x86/isa X-SVN-Group: stable-11 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: in stable/11/sys: isa x86/isa X-SVN-Commit-Revision: 331521 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:52:39 -0000 Author: ian Date: Sun Mar 25 01:52:38 2018 New Revision: 331521 URL: https://svnweb.freebsd.org/changeset/base/331521 Log: MFC r330773, r330778, r330782, r330797 r330773: Use separate mutexes for atrtc and i8254 locking. Change all the strange un-function-like RTC_LOCK/UNLOCK macro usage into normal function calls. Since there is no longer any need to handle register access from a debugger context, those function calls can just be regular mutex lock/unlock calls. Requested by: bde r330778: Everywhere that multiple registers are accessed in sequence, lock/unlock just once around the whole group of accesses. r330782: Remove MTX_NOPROFILE from atrtc_lock, it was inappropriately copy/pasted from the i8254 driver when I created separate mutexes for each. The i8254 driver could be the active timecounter, leading to recursion during mutex profiling, but the atrtc driver cannot be a timecounter, so it isn't needed. r330797: Give the atrtc_time_lock a unique name. Reported by: hps@ Modified: stable/11/sys/isa/rtc.h stable/11/sys/x86/isa/atrtc.c stable/11/sys/x86/isa/clock.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/isa/rtc.h ============================================================================== --- stable/11/sys/isa/rtc.h Sun Mar 25 01:47:57 2018 (r331520) +++ stable/11/sys/isa/rtc.h Sun Mar 25 01:52:38 2018 (r331521) @@ -114,7 +114,6 @@ #define RTC_CENTURY 0x32 /* current century */ #ifdef _KERNEL -extern struct mtx clock_lock; extern struct mtx atrtc_time_lock; extern int atrtcclock_disable; int rtcin(int reg); Modified: stable/11/sys/x86/isa/atrtc.c ============================================================================== --- stable/11/sys/x86/isa/atrtc.c Sun Mar 25 01:47:57 2018 (r331520) +++ stable/11/sys/x86/isa/atrtc.c Sun Mar 25 01:52:38 2018 (r331521) @@ -54,15 +54,15 @@ __FBSDID("$FreeBSD$"); #include "clock_if.h" /* - * clock_lock protects low-level access to individual hardware registers. + * atrtc_lock protects low-level access to individual hardware registers. * atrtc_time_lock protects the entire sequence of accessing multiple registers * to read or write the date and time. */ -#define RTC_LOCK do { if (!kdb_active) mtx_lock_spin(&clock_lock); } while (0) -#define RTC_UNLOCK do { if (!kdb_active) mtx_unlock_spin(&clock_lock); } while (0) +static struct mtx atrtc_lock; +MTX_SYSINIT(atrtc_lock_init, &atrtc_lock, "atrtc", MTX_SPIN); struct mtx atrtc_time_lock; -MTX_SYSINIT(atrtc_lock_init, &atrtc_time_lock, "atrtc", MTX_DEF); +MTX_SYSINIT(atrtc_time_lock_init, &atrtc_time_lock, "atrtc_time", MTX_DEF); int atrtcclock_disable = 0; @@ -106,9 +106,9 @@ rtcin(int reg) { u_char val; - RTC_LOCK; + mtx_lock_spin(&atrtc_lock); val = rtcin_locked(reg); - RTC_UNLOCK; + mtx_unlock_spin(&atrtc_lock); return (val); } @@ -116,17 +116,19 @@ void writertc(int reg, u_char val) { - RTC_LOCK; + mtx_lock_spin(&atrtc_lock); rtcout_locked(reg, val); - RTC_UNLOCK; + mtx_unlock_spin(&atrtc_lock); } static void atrtc_start(void) { - writertc(RTC_STATUSA, rtc_statusa); - writertc(RTC_STATUSB, RTCSB_24HR); + mtx_lock_spin(&atrtc_lock); + rtcout_locked(RTC_STATUSA, rtc_statusa); + rtcout_locked(RTC_STATUSB, RTCSB_24HR); + mtx_unlock_spin(&atrtc_lock); } static void @@ -142,8 +144,10 @@ atrtc_enable_intr(void) { rtc_statusb |= RTCSB_PINTR; - writertc(RTC_STATUSB, rtc_statusb); - rtcin(RTC_INTR); + mtx_lock_spin(&atrtc_lock); + rtcout_locked(RTC_STATUSB, rtc_statusb); + rtcin_locked(RTC_INTR); + mtx_unlock_spin(&atrtc_lock); } static void @@ -151,8 +155,10 @@ atrtc_disable_intr(void) { rtc_statusb &= ~RTCSB_PINTR; - writertc(RTC_STATUSB, rtc_statusb); - rtcin(RTC_INTR); + mtx_lock_spin(&atrtc_lock); + rtcout_locked(RTC_STATUSB, rtc_statusb); + rtcin_locked(RTC_INTR); + mtx_unlock_spin(&atrtc_lock); } void @@ -160,11 +166,13 @@ atrtc_restore(void) { /* Restore all of the RTC's "status" (actually, control) registers. */ - rtcin(RTC_STATUSA); /* dummy to get rtc_reg set */ - writertc(RTC_STATUSB, RTCSB_24HR); - writertc(RTC_STATUSA, rtc_statusa); - writertc(RTC_STATUSB, rtc_statusb); - rtcin(RTC_INTR); + mtx_lock_spin(&atrtc_lock); + rtcin_locked(RTC_STATUSA); /* dummy to get rtc_reg set */ + rtcout_locked(RTC_STATUSB, RTCSB_24HR); + rtcout_locked(RTC_STATUSA, rtc_statusa); + rtcout_locked(RTC_STATUSB, rtc_statusb); + rtcin_locked(RTC_INTR); + mtx_unlock_spin(&atrtc_lock); } /********************************************************************** @@ -319,7 +327,7 @@ atrtc_settime(device_t dev __unused, struct timespec * clock_dbgprint_bcd(dev, CLOCK_DBG_WRITE, &bct); mtx_lock(&atrtc_time_lock); - RTC_LOCK; + mtx_lock_spin(&atrtc_lock); /* Disable RTC updates and interrupts. */ rtcout_locked(RTC_STATUSB, RTCSB_HALT | RTCSB_24HR); @@ -342,7 +350,7 @@ atrtc_settime(device_t dev __unused, struct timespec * rtcout_locked(RTC_STATUSB, rtc_statusb); rtcin_locked(RTC_INTR); - RTC_UNLOCK; + mtx_unlock_spin(&atrtc_lock); mtx_unlock(&atrtc_time_lock); return (0); @@ -369,7 +377,7 @@ atrtc_gettime(device_t dev, struct timespec *ts) mtx_lock(&atrtc_time_lock); while (rtcin(RTC_STATUSA) & RTCSA_TUP) continue; - RTC_LOCK; + mtx_lock_spin(&atrtc_lock); bct.sec = rtcin_locked(RTC_SEC); bct.min = rtcin_locked(RTC_MIN); bct.hour = rtcin_locked(RTC_HRS); @@ -379,7 +387,7 @@ atrtc_gettime(device_t dev, struct timespec *ts) #ifdef USE_RTC_CENTURY bct.year |= rtcin_locked(RTC_CENTURY) << 8; #endif - RTC_UNLOCK; + mtx_unlock_spin(&atrtc_lock); mtx_unlock(&atrtc_time_lock); /* dow is unused in timespec conversion and we have no nsec info. */ bct.dow = 0; Modified: stable/11/sys/x86/isa/clock.c ============================================================================== --- stable/11/sys/x86/isa/clock.c Sun Mar 25 01:47:57 2018 (r331520) +++ stable/11/sys/x86/isa/clock.c Sun Mar 25 01:52:38 2018 (r331521) @@ -100,7 +100,7 @@ TUNABLE_INT("hw.i8254.freq", &i8254_freq); int i8254_max_count; static int i8254_timecounter = 1; -struct mtx clock_lock; +static struct mtx clock_lock; static struct intsrc *i8254_intsrc; static uint16_t i8254_lastcount; static uint16_t i8254_offset; From owner-svn-src-all@freebsd.org Sun Mar 25 02:04:45 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23BDBF630FC; Sun, 25 Mar 2018 02:04:45 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C5D696CC8B; Sun, 25 Mar 2018 02:04:44 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C0AE017B30; Sun, 25 Mar 2018 02:04:44 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P24ivq016342; Sun, 25 Mar 2018 02:04:44 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P24i2C016339; Sun, 25 Mar 2018 02:04:44 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201803250204.w2P24i2C016339@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 25 Mar 2018 02:04:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331524 - stable/11/sys/arm/arm X-SVN-Group: stable-11 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: stable/11/sys/arm/arm X-SVN-Commit-Revision: 331524 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 02:04:45 -0000 Author: ian Date: Sun Mar 25 02:04:44 2018 New Revision: 331524 URL: https://svnweb.freebsd.org/changeset/base/331524 Log: MFC r329989, r330044 r329989: Add support for booting into kdb on arm platforms when the RB_KDB is set (using "boot -d" at the loader propmt or setting boot_ddb in loader.conf). Submitted by: Thomas Skibo Differential Revision: https://reviews.freebsd.org/D14428 r330044: Add a hw.model sysctl oid for armv6/7 which reports the CPU model, similar to what other arches (all except riscv and armv4/5) do. Submitted by: Hyun Hwang Differential Revision: https://reviews.freebsd.org/D14465 Modified: stable/11/sys/arm/arm/identcpu-v6.c stable/11/sys/arm/arm/machdep.c stable/11/sys/arm/arm/machdep_boot.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/arm/arm/identcpu-v6.c ============================================================================== --- stable/11/sys/arm/arm/identcpu-v6.c Sun Mar 25 01:59:54 2018 (r331523) +++ stable/11/sys/arm/arm/identcpu-v6.c Sun Mar 25 02:04:44 2018 (r331524) @@ -56,6 +56,10 @@ char machine[] = "arm"; SYSCTL_STRING(_hw, HW_MACHINE, machine, CTLFLAG_RD, machine, 0, "Machine class"); +static char cpu_model[64]; +SYSCTL_STRING(_hw, HW_MODEL, model, CTLFLAG_RD, + cpu_model, sizeof(cpu_model), "Machine model"); + static char hw_buf[81]; static int hw_buf_idx; static bool hw_buf_newline; @@ -266,11 +270,13 @@ identify_arm_cpu(void) for(i = 0; i < nitems(cpu_names); i++) { if (cpu_names[i].implementer == cpuinfo.implementer && cpu_names[i].part_number == cpuinfo.part_number) { - printf("CPU: %s %s r%dp%d (ECO: 0x%08X)\n", + snprintf(cpu_model, sizeof(cpu_model), + "%s %s r%dp%d (ECO: 0x%08X)", cpu_names[i].impl_name, cpu_names[i].core_name, cpuinfo.revision, cpuinfo.patch, cpuinfo.midr != cpuinfo.revidr ? cpuinfo.revidr : 0); + printf("CPU: %s\n", cpu_model); break; } Modified: stable/11/sys/arm/arm/machdep.c ============================================================================== --- stable/11/sys/arm/arm/machdep.c Sun Mar 25 01:59:54 2018 (r331523) +++ stable/11/sys/arm/arm/machdep.c Sun Mar 25 02:04:44 2018 (r331524) @@ -66,6 +66,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -773,7 +774,17 @@ set_stackptrs(int cpu) } #endif +static void +arm_kdb_init(void) +{ + kdb_init(); +#ifdef KDB + if (boothowto & RB_KDB) + kdb_enter(KDB_WHY_BOOTFLAGS, "Boot flags requested debugger"); +#endif +} + #ifdef FDT #if __ARM_ARCH < 6 void * @@ -1041,7 +1052,7 @@ initarm(struct arm_boot_params *abp) init_param2(physmem); dbg_monitor_init(); - kdb_init(); + arm_kdb_init(); return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - sizeof(struct pcb))); @@ -1250,7 +1261,7 @@ initarm(struct arm_boot_params *abp) /* Init message buffer. */ msgbufinit(msgbufp, msgbufsize); dbg_monitor_init(); - kdb_init(); + arm_kdb_init(); return ((void *)STACKALIGN(thread0.td_pcb)); } Modified: stable/11/sys/arm/arm/machdep_boot.c ============================================================================== --- stable/11/sys/arm/arm/machdep_boot.c Sun Mar 25 01:59:54 2018 (r331523) +++ stable/11/sys/arm/arm/machdep_boot.c Sun Mar 25 02:04:44 2018 (r331524) @@ -27,6 +27,7 @@ */ #include "opt_platform.h" +#include "opt_ddb.h" #include __FBSDID("$FreeBSD$"); @@ -55,6 +56,10 @@ __FBSDID("$FreeBSD$"); #ifdef EFI #include +#endif + +#ifdef DDB +#include #endif #ifdef DEBUG From owner-svn-src-all@freebsd.org Sun Mar 25 01:47:18 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B907F61C11; Sun, 25 Mar 2018 01:47:18 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 393D26BC43; Sun, 25 Mar 2018 01:47:18 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 341F11779B; Sun, 25 Mar 2018 01:47:18 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1lItu006578; Sun, 25 Mar 2018 01:47:18 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1lHB6006575; Sun, 25 Mar 2018 01:47:17 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201803250147.w2P1lHB6006575@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 25 Mar 2018 01:47:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331519 - in stable/11/sys: arm/freescale/imx modules/imx/imx_spi X-SVN-Group: stable-11 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: in stable/11/sys: arm/freescale/imx modules/imx/imx_spi X-SVN-Commit-Revision: 331519 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:47:18 -0000 Author: ian Date: Sun Mar 25 01:47:17 2018 New Revision: 331519 URL: https://svnweb.freebsd.org/changeset/base/331519 Log: MFC r330437-r330438, r330440, r331045 r330437: Do not stop the loop that configures gpio chipselect pins on the first error, just ignore pins that don't configure and keep setting up the ones that do. (But when bootverbose is on, whine about the errors.) r330438: Defer attaching the spibus until timers and interrupts are working. The driver requires interrupts to do transfers, and the drivers for the SPI devices on the bus quite reasonably expect to be able to do IO while probing and attaching. r330440: Switch imx_gpio to attach at BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE. Pretty much any other device might need to manipulate a gpio pin during its probe or attach routines, so these devices must be available as early as possible. The gpio device is an interrupt controller, but I didn't choose the INTERRUPT pass for that reason (it works fine as an interrupt controller as long as it attaches any time before interrupts are enabled). That just looked like the right place in the passes to ensure that it attaches before any type of device that might need gpio pin manipulations. r331045: Add required interface header. Reported by: andreast@ Modified: stable/11/sys/arm/freescale/imx/imx_gpio.c stable/11/sys/arm/freescale/imx/imx_spi.c stable/11/sys/modules/imx/imx_spi/Makefile Modified: stable/11/sys/arm/freescale/imx/imx_gpio.c ============================================================================== --- stable/11/sys/arm/freescale/imx/imx_gpio.c Sun Mar 25 01:34:44 2018 (r331518) +++ stable/11/sys/arm/freescale/imx/imx_gpio.c Sun Mar 25 01:47:17 2018 (r331519) @@ -869,5 +869,5 @@ static driver_t imx51_gpio_driver = { }; static devclass_t imx51_gpio_devclass; -DRIVER_MODULE(imx51_gpio, simplebus, imx51_gpio_driver, imx51_gpio_devclass, - 0, 0); +EARLY_DRIVER_MODULE(imx51_gpio, simplebus, imx51_gpio_driver, + imx51_gpio_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); Modified: stable/11/sys/arm/freescale/imx/imx_spi.c ============================================================================== --- stable/11/sys/arm/freescale/imx/imx_spi.c Sun Mar 25 01:34:44 2018 (r331518) +++ stable/11/sys/arm/freescale/imx/imx_spi.c Sun Mar 25 01:47:17 2018 (r331519) @@ -541,7 +541,7 @@ spi_attach(device_t dev) /* Allocate gpio pins for configured chip selects. */ node = ofw_bus_get_node(sc->dev); - for (err = 0, idx = 0; err == 0 && idx < nitems(sc->cspins); ++idx) { + for (idx = 0; idx < nitems(sc->cspins); ++idx) { err = gpio_pin_get_by_ofw_propidx(sc->dev, node, "cs-gpios", idx, &sc->cspins[idx]); if (err == 0) { @@ -558,9 +558,16 @@ spi_attach(device_t dev) */ WR4(sc, ECSPI_CTLREG, CTLREG_CMODES_MASTER); - /* Attach the bus driver. */ + /* + * Add the spibus driver as a child, and setup a one-shot intrhook to + * attach it after interrupts are working. It will attach actual SPI + * devices as its children, and those devices may need to do IO during + * their attach. We can't do IO until timers and interrupts are working. + */ sc->spibus = device_add_child(dev, "spibus", -1); - return (bus_generic_attach(sc->dev)); + config_intrhook_oneshot((ich_func_t)bus_generic_attach, dev); + + return (0); } static int Modified: stable/11/sys/modules/imx/imx_spi/Makefile ============================================================================== --- stable/11/sys/modules/imx/imx_spi/Makefile Sun Mar 25 01:34:44 2018 (r331518) +++ stable/11/sys/modules/imx/imx_spi/Makefile Sun Mar 25 01:47:17 2018 (r331519) @@ -9,6 +9,7 @@ SRCS= imx_spi.c SRCS+= \ bus_if.h \ device_if.h \ + gpio_if.h \ ofw_bus_if.h \ opt_platform.h \ spibus_if.h \ From owner-svn-src-all@freebsd.org Sun Mar 25 01:59:55 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DC238F6290F; Sun, 25 Mar 2018 01:59:54 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8EF386C6A9; Sun, 25 Mar 2018 01:59:54 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 898F217986; Sun, 25 Mar 2018 01:59:54 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P1xsdV011540; Sun, 25 Mar 2018 01:59:54 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P1xs2s011539; Sun, 25 Mar 2018 01:59:54 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201803250159.w2P1xs2s011539@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Sun, 25 Mar 2018 01:59:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331523 - stable/11/sys/dev/flash X-SVN-Group: stable-11 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: stable/11/sys/dev/flash X-SVN-Commit-Revision: 331523 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 01:59:55 -0000 Author: ian Date: Sun Mar 25 01:59:54 2018 New Revision: 331523 URL: https://svnweb.freebsd.org/changeset/base/331523 Log: MFC r331123, r331126, r331129, r331132, r331136, r331138-r331139, r331141 r331123: Do not overwrite the contents of BIO_WRITE buffers. SPI inherently transfers data in both directions at once. When writing to the device, use a dummy buffer for the incoming data, not the same buffer as the outgoing data. Writes are done in FLASH_PAGE_SIZE chunks, which is only 256 bytes, so just put the dummy buffer into the softc. r331126: Remove a pointless KASSERT and reword a comment a bit. The KASSERT tested for the same condition that the preceeding lines checked for and would have returned EIO, so the assert could never possibly trigger (sc_sectorsize must inherently be an integer multiple of FLASH_PAGE_SIZE). r331129: Eliminate some unneeded intermediate variables. Eliminate some redundant parens in shift-and-mask expressions. Reword and reflow some comments. r331132: Bugfix: wait for writes/erases to complete after starting them, instead of before starting them. Using the wait-before logic would make sense if there was useful time- consuming work that could be done between the end of one write and the beginning of the next, but it also requires doing the wait-for-ready before reading, because a prior write or erase could still be in progress. Reading is the far more common case, so adding a whole extra bus transaction to check for ready before each read would soak up any small gains that might be had from doing async writes. r331136: Add sc_parent to the softc and use it in place of device_get_parent() calls all over the place. Also pass the softc as the arg to all the internal functions instead of passing a device_t and calling device_get_softc() in each function. r331138: Make all internal routines return an int error status, and check the status at all call points. Combine the get_status and wait_for_ready routines, since waiting for ready is the only reason to ever get status. r331139: Add support for 4K and 32K erase block sizes. Many of the supported chips have these flags set in the ident table, but there was no code to support using the smaller erase sizes. r331141: Add the device/chip type to the disk d_descr field, and print more info about the chip including the erase block size at attach time. Also add myself to the copyrights since at this point svn blame would point to me as the culprit for much of this. Modified: stable/11/sys/dev/flash/mx25l.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/flash/mx25l.c ============================================================================== --- stable/11/sys/dev/flash/mx25l.c Sun Mar 25 01:55:17 2018 (r331522) +++ stable/11/sys/dev/flash/mx25l.c Sun Mar 25 01:59:54 2018 (r331523) @@ -3,6 +3,7 @@ * * Copyright (c) 2006 M. Warner Losh. All rights reserved. * Copyright (c) 2009 Oleksandr Tymoshenko. All rights reserved. + * Copyright (c) 2018 Ian Lepore. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -81,15 +82,17 @@ struct mx25l_flash_ident struct mx25l_softc { device_t sc_dev; + device_t sc_parent; uint8_t sc_manufacturer_id; uint16_t sc_device_id; - unsigned int sc_sectorsize; + unsigned int sc_erasesize; struct mtx sc_mtx; struct disk *sc_disk; struct proc *sc_p; struct bio_queue_head sc_bio_queue; unsigned int sc_flags; unsigned int sc_taskstate; + uint8_t sc_dummybuf[FLASH_PAGE_SIZE]; }; #define TSTATE_STOPPED 0 @@ -148,37 +151,30 @@ struct mx25l_flash_ident flash_devices[] = { { "gd25q64", 0xc8, 0x4017, 64 * 1024, 128, FL_ERASE_4K }, }; -static uint8_t -mx25l_get_status(device_t dev) +static int +mx25l_wait_for_device_ready(struct mx25l_softc *sc) { uint8_t txBuf[2], rxBuf[2]; struct spi_command cmd; int err; memset(&cmd, 0, sizeof(cmd)); - memset(txBuf, 0, sizeof(txBuf)); - memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = CMD_READ_STATUS; - cmd.tx_cmd = txBuf; - cmd.rx_cmd = rxBuf; - cmd.rx_cmd_sz = 2; - cmd.tx_cmd_sz = 2; - err = SPIBUS_TRANSFER(device_get_parent(dev), dev, &cmd); - return (rxBuf[1]); -} + do { + txBuf[0] = CMD_READ_STATUS; + cmd.tx_cmd = txBuf; + cmd.rx_cmd = rxBuf; + cmd.rx_cmd_sz = 2; + cmd.tx_cmd_sz = 2; + err = SPIBUS_TRANSFER(sc->sc_parent, sc->sc_dev, &cmd); + } while (err == 0 && (rxBuf[1] & STATUS_WIP)); -static void -mx25l_wait_for_device_ready(device_t dev) -{ - while ((mx25l_get_status(dev) & STATUS_WIP)) - continue; + return (err); } static struct mx25l_flash_ident* mx25l_get_device_ident(struct mx25l_softc *sc) { - device_t dev = sc->sc_dev; uint8_t txBuf[8], rxBuf[8]; struct spi_command cmd; uint8_t manufacturer_id; @@ -198,27 +194,27 @@ mx25l_get_device_ident(struct mx25l_softc *sc) */ cmd.tx_cmd_sz = 4; cmd.rx_cmd_sz = 4; - err = SPIBUS_TRANSFER(device_get_parent(dev), dev, &cmd); + err = SPIBUS_TRANSFER(sc->sc_parent, sc->sc_dev, &cmd); if (err) return (NULL); manufacturer_id = rxBuf[1]; dev_id = (rxBuf[2] << 8) | (rxBuf[3]); - for (i = 0; - i < nitems(flash_devices); i++) { + for (i = 0; i < nitems(flash_devices); i++) { if ((flash_devices[i].manufacturer_id == manufacturer_id) && (flash_devices[i].device_id == dev_id)) return &flash_devices[i]; } - printf("Unknown SPI flash device. Vendor: %02x, device id: %04x\n", + device_printf(sc->sc_dev, + "Unknown SPI flash device. Vendor: %02x, device id: %04x\n", manufacturer_id, dev_id); return (NULL); } -static void -mx25l_set_writable(device_t dev, int writable) +static int +mx25l_set_writable(struct mx25l_softc *sc, int writable) { uint8_t txBuf[1], rxBuf[1]; struct spi_command cmd; @@ -233,29 +229,34 @@ mx25l_set_writable(device_t dev, int writable) cmd.rx_cmd = rxBuf; cmd.rx_cmd_sz = 1; cmd.tx_cmd_sz = 1; - err = SPIBUS_TRANSFER(device_get_parent(dev), dev, &cmd); + err = SPIBUS_TRANSFER(sc->sc_parent, sc->sc_dev, &cmd); + return (err); } -static void -mx25l_erase_cmd(device_t dev, off_t sector, uint8_t ecmd) +static int +mx25l_erase_cmd(struct mx25l_softc *sc, off_t sector) { - struct mx25l_softc *sc; uint8_t txBuf[5], rxBuf[5]; struct spi_command cmd; int err; - sc = device_get_softc(dev); + if ((err = mx25l_set_writable(sc, 1)) != 0) + return (err); - mx25l_wait_for_device_ready(dev); - mx25l_set_writable(dev, 1); - memset(&cmd, 0, sizeof(cmd)); memset(txBuf, 0, sizeof(txBuf)); memset(rxBuf, 0, sizeof(rxBuf)); - txBuf[0] = ecmd; cmd.tx_cmd = txBuf; cmd.rx_cmd = rxBuf; + + if (sc->sc_flags & FL_ERASE_4K) + txBuf[0] = CMD_BLOCK_4K_ERASE; + else if (sc->sc_flags & FL_ERASE_32K) + txBuf[0] = CMD_BLOCK_32K_ERASE; + else + txBuf[0] = CMD_SECTOR_ERASE; + if (sc->sc_flags & FL_ENABLE_4B_ADDR) { cmd.rx_cmd_sz = 5; cmd.tx_cmd_sz = 5; @@ -270,23 +271,20 @@ mx25l_erase_cmd(device_t dev, off_t sector, uint8_t ec txBuf[2] = ((sector >> 8) & 0xff); txBuf[3] = (sector & 0xff); } - err = SPIBUS_TRANSFER(device_get_parent(dev), dev, &cmd); + if ((err = SPIBUS_TRANSFER(sc->sc_parent, sc->sc_dev, &cmd)) != 0) + return (err); + err = mx25l_wait_for_device_ready(sc); + return (err); } static int -mx25l_write(device_t dev, off_t offset, caddr_t data, off_t count) +mx25l_write(struct mx25l_softc *sc, off_t offset, caddr_t data, off_t count) { - struct mx25l_softc *sc; uint8_t txBuf[8], rxBuf[8]; struct spi_command cmd; - off_t write_offset; - long bytes_to_write, bytes_writen; - device_t pdev; + off_t bytes_to_write; int err = 0; - pdev = device_get_parent(dev); - sc = device_get_softc(dev); - if (sc->sc_flags & FL_ENABLE_4B_ADDR) { cmd.tx_cmd_sz = 5; cmd.rx_cmd_sz = 5; @@ -295,96 +293,83 @@ mx25l_write(device_t dev, off_t offset, caddr_t data, cmd.rx_cmd_sz = 4; } - bytes_writen = 0; - write_offset = offset; - /* - * Use the erase sectorsize here since blocks are fully erased - * first before they're written to. + * Writes must be aligned to the erase sectorsize, since blocks are + * fully erased before they're written to. */ - if (count % sc->sc_sectorsize != 0 || offset % sc->sc_sectorsize != 0) + if (count % sc->sc_erasesize != 0 || offset % sc->sc_erasesize != 0) return (EIO); /* - * Assume here that we write per-sector only - * and sector size should be 256 bytes aligned + * Maximum write size for CMD_PAGE_PROGRAM is FLASH_PAGE_SIZE, so loop + * to write chunks of FLASH_PAGE_SIZE bytes each. */ - KASSERT(write_offset % FLASH_PAGE_SIZE == 0, - ("offset for BIO_WRITE is not page size (%d bytes) aligned", - FLASH_PAGE_SIZE)); + while (count != 0) { + /* If we crossed a sector boundary, erase the next sector. */ + if (((offset) % sc->sc_erasesize) == 0) { + err = mx25l_erase_cmd(sc, offset); + if (err) + break; + } - /* - * Maximum write size for CMD_PAGE_PROGRAM is - * FLASH_PAGE_SIZE, so split data to chunks - * FLASH_PAGE_SIZE bytes eash and write them - * one by one - */ - while (bytes_writen < count) { - /* - * If we crossed sector boundary - erase next sector - */ - if (((offset + bytes_writen) % sc->sc_sectorsize) == 0) - mx25l_erase_cmd(dev, offset + bytes_writen, CMD_SECTOR_ERASE); - txBuf[0] = CMD_PAGE_PROGRAM; if (sc->sc_flags & FL_ENABLE_4B_ADDR) { - txBuf[1] = ((write_offset >> 24) & 0xff); - txBuf[2] = ((write_offset >> 16) & 0xff); - txBuf[3] = ((write_offset >> 8) & 0xff); - txBuf[4] = (write_offset & 0xff); + txBuf[1] = (offset >> 24) & 0xff; + txBuf[2] = (offset >> 16) & 0xff; + txBuf[3] = (offset >> 8) & 0xff; + txBuf[4] = offset & 0xff; } else { - txBuf[1] = ((write_offset >> 16) & 0xff); - txBuf[2] = ((write_offset >> 8) & 0xff); - txBuf[3] = (write_offset & 0xff); + txBuf[1] = (offset >> 16) & 0xff; + txBuf[2] = (offset >> 8) & 0xff; + txBuf[3] = offset & 0xff; } - bytes_to_write = MIN(FLASH_PAGE_SIZE, - count - bytes_writen); + bytes_to_write = MIN(FLASH_PAGE_SIZE, count); cmd.tx_cmd = txBuf; cmd.rx_cmd = rxBuf; - cmd.tx_data = data + bytes_writen; - cmd.tx_data_sz = bytes_to_write; - cmd.rx_data = data + bytes_writen; - cmd.rx_data_sz = bytes_to_write; + cmd.tx_data = data; + cmd.rx_data = sc->sc_dummybuf; + cmd.tx_data_sz = (uint32_t)bytes_to_write; + cmd.rx_data_sz = (uint32_t)bytes_to_write; /* - * Eash completed write operation resets WEL - * (write enable latch) to disabled state, - * so we re-enable it here + * Each completed write operation resets WEL (write enable + * latch) to disabled state, so we re-enable it here. */ - mx25l_wait_for_device_ready(dev); - mx25l_set_writable(dev, 1); + if ((err = mx25l_wait_for_device_ready(sc)) != 0) + break; + if ((err = mx25l_set_writable(sc, 1)) != 0) + break; - err = SPIBUS_TRANSFER(pdev, dev, &cmd); + err = SPIBUS_TRANSFER(sc->sc_parent, sc->sc_dev, &cmd); + if (err != 0) + break; + err = mx25l_wait_for_device_ready(sc); if (err) break; - bytes_writen += bytes_to_write; - write_offset += bytes_to_write; + data += bytes_to_write; + offset += bytes_to_write; + count -= bytes_to_write; } return (err); } static int -mx25l_read(device_t dev, off_t offset, caddr_t data, off_t count) +mx25l_read(struct mx25l_softc *sc, off_t offset, caddr_t data, off_t count) { - struct mx25l_softc *sc; uint8_t txBuf[8], rxBuf[8]; struct spi_command cmd; - device_t pdev; int err = 0; - pdev = device_get_parent(dev); - sc = device_get_softc(dev); - /* - * Enforce the disk read sectorsize not the erase sectorsize. - * In this way, smaller read IO is possible,dramatically - * speeding up filesystem/geom_compress access. + * Enforce that reads are aligned to the disk sectorsize, not the + * erase sectorsize. In this way, smaller read IO is possible, + * dramatically speeding up filesystem/geom_compress access. */ - if (count % sc->sc_disk->d_sectorsize != 0 - || offset % sc->sc_disk->d_sectorsize != 0) + if (count % sc->sc_disk->d_sectorsize != 0 || + offset % sc->sc_disk->d_sectorsize != 0) return (EIO); txBuf[0] = CMD_FAST_READ; @@ -392,19 +377,19 @@ mx25l_read(device_t dev, off_t offset, caddr_t data, o cmd.tx_cmd_sz = 6; cmd.rx_cmd_sz = 6; - txBuf[1] = ((offset >> 24) & 0xff); - txBuf[2] = ((offset >> 16) & 0xff); - txBuf[3] = ((offset >> 8) & 0xff); - txBuf[4] = (offset & 0xff); + txBuf[1] = (offset >> 24) & 0xff; + txBuf[2] = (offset >> 16) & 0xff; + txBuf[3] = (offset >> 8) & 0xff; + txBuf[4] = offset & 0xff; /* Dummy byte */ txBuf[5] = 0; } else { cmd.tx_cmd_sz = 5; cmd.rx_cmd_sz = 5; - txBuf[1] = ((offset >> 16) & 0xff); - txBuf[2] = ((offset >> 8) & 0xff); - txBuf[3] = (offset & 0xff); + txBuf[1] = (offset >> 16) & 0xff; + txBuf[2] = (offset >> 8) & 0xff; + txBuf[3] = offset & 0xff; /* Dummy byte */ txBuf[4] = 0; } @@ -412,29 +397,25 @@ mx25l_read(device_t dev, off_t offset, caddr_t data, o cmd.tx_cmd = txBuf; cmd.rx_cmd = rxBuf; cmd.tx_data = data; - cmd.tx_data_sz = count; cmd.rx_data = data; + cmd.tx_data_sz = count; cmd.rx_data_sz = count; - err = SPIBUS_TRANSFER(pdev, dev, &cmd); - + err = SPIBUS_TRANSFER(sc->sc_parent, sc->sc_dev, &cmd); return (err); } static int -mx25l_set_4b_mode(device_t dev, uint8_t command) +mx25l_set_4b_mode(struct mx25l_softc *sc, uint8_t command) { uint8_t txBuf[1], rxBuf[1]; struct spi_command cmd; - device_t pdev; int err; memset(&cmd, 0, sizeof(cmd)); memset(txBuf, 0, sizeof(txBuf)); memset(rxBuf, 0, sizeof(rxBuf)); - pdev = device_get_parent(dev); - cmd.tx_cmd_sz = cmd.rx_cmd_sz = 1; cmd.tx_cmd = txBuf; @@ -442,10 +423,9 @@ mx25l_set_4b_mode(device_t dev, uint8_t command) txBuf[0] = command; - err = SPIBUS_TRANSFER(pdev, dev, &cmd); + if ((err = SPIBUS_TRANSFER(sc->sc_parent, sc->sc_dev, &cmd)) == 0) + err = mx25l_wait_for_device_ready(sc); - mx25l_wait_for_device_ready(dev); - return (err); } @@ -491,17 +471,38 @@ mx25l_attach(device_t dev) { struct mx25l_softc *sc; struct mx25l_flash_ident *ident; + int err; sc = device_get_softc(dev); sc->sc_dev = dev; + sc->sc_parent = device_get_parent(sc->sc_dev); + M25PXX_LOCK_INIT(sc); ident = mx25l_get_device_ident(sc); if (ident == NULL) return (ENXIO); - mx25l_wait_for_device_ready(sc->sc_dev); + if ((err = mx25l_wait_for_device_ready(sc)) != 0) + return (err); + sc->sc_flags = ident->flags; + + if (sc->sc_flags & FL_ERASE_4K) + sc->sc_erasesize = 4 * 1024; + else if (sc->sc_flags & FL_ERASE_32K) + sc->sc_erasesize = 32 * 1024; + else + sc->sc_erasesize = ident->sectorsize; + + if (sc->sc_flags & FL_ENABLE_4B_ADDR) { + if ((err = mx25l_set_4b_mode(sc, CMD_ENTER_4B_MODE)) != 0) + return (err); + } else if (sc->sc_flags & FL_DISABLE_4B_ADDR) { + if ((err = mx25l_set_4b_mode(sc, CMD_EXIT_4B_MODE)) != 0) + return (err); + } + sc->sc_disk = disk_alloc(); sc->sc_disk->d_open = mx25l_open; sc->sc_disk->d_close = mx25l_close; @@ -513,29 +514,24 @@ mx25l_attach(device_t dev) sc->sc_disk->d_maxsize = DFLTPHYS; sc->sc_disk->d_sectorsize = MX25L_SECTORSIZE; sc->sc_disk->d_mediasize = ident->sectorsize * ident->sectorcount; + sc->sc_disk->d_stripesize = sc->sc_erasesize; sc->sc_disk->d_unit = device_get_unit(sc->sc_dev); sc->sc_disk->d_dump = NULL; /* NB: no dumps */ - /* Sectorsize for erase operations */ - sc->sc_sectorsize = ident->sectorsize; - sc->sc_flags = ident->flags; + strlcpy(sc->sc_disk->d_descr, ident->name, + sizeof(sc->sc_disk->d_descr)); - if (sc->sc_flags & FL_ENABLE_4B_ADDR) - mx25l_set_4b_mode(dev, CMD_ENTER_4B_MODE); - - if (sc->sc_flags & FL_DISABLE_4B_ADDR) - mx25l_set_4b_mode(dev, CMD_EXIT_4B_MODE); - - /* NB: use stripesize to hold the erase/region size for RedBoot */ - sc->sc_disk->d_stripesize = ident->sectorsize; - disk_create(sc->sc_disk, DISK_VERSION); bioq_init(&sc->sc_bio_queue); kproc_create(&mx25l_task, sc, &sc->sc_p, 0, 0, "task: mx25l flash"); sc->sc_taskstate = TSTATE_RUNNING; - device_printf(sc->sc_dev, "%s, sector %d bytes, %d sectors\n", - ident->name, ident->sectorsize, ident->sectorcount); + device_printf(sc->sc_dev, + "device type %s, size %dK in %d sectors of %dK, erase size %dK\n", + ident->name, + ident->sectorcount * ident->sectorsize / 1024, + ident->sectorcount, ident->sectorsize / 1024, + sc->sc_erasesize / 1024); return (0); } @@ -557,7 +553,7 @@ mx25l_detach(device_t dev) err = msleep(sc, &sc->sc_mtx, 0, "mx25dt", hz * 3); if (err != 0) { sc->sc_taskstate = TSTATE_RUNNING; - device_printf(dev, + device_printf(sc->sc_dev, "Failed to stop queue task\n"); } } @@ -652,11 +648,11 @@ mx25l_task(void *arg) switch (bp->bio_cmd) { case BIO_READ: - bp->bio_error = mx25l_read(dev, bp->bio_offset, + bp->bio_error = mx25l_read(sc, bp->bio_offset, bp->bio_data, bp->bio_bcount); break; case BIO_WRITE: - bp->bio_error = mx25l_write(dev, bp->bio_offset, + bp->bio_error = mx25l_write(sc, bp->bio_offset, bp->bio_data, bp->bio_bcount); break; default: From owner-svn-src-all@freebsd.org Sun Mar 25 03:45:02 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C8B32F697D7; Sun, 25 Mar 2018 03:45:02 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 700A770D90; Sun, 25 Mar 2018 03:45:02 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 665B118D0D; Sun, 25 Mar 2018 03:45:02 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P3j2xf066731; Sun, 25 Mar 2018 03:45:02 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P3j2GX066730; Sun, 25 Mar 2018 03:45:02 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201803250345.w2P3j2GX066730@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Sun, 25 Mar 2018 03:45:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331526 - stable/11/sys/netipsec X-SVN-Group: stable-11 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/11/sys/netipsec X-SVN-Commit-Revision: 331526 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 03:45:03 -0000 Author: ae Date: Sun Mar 25 03:45:02 2018 New Revision: 331526 URL: https://svnweb.freebsd.org/changeset/base/331526 Log: MFC r330779: Rework key_sendup_mbuf() a bit: o count in_nomem counter when we have failed to allocate mbuf for promisc socket; o count in_msgtarget counter when we have secussfully sent data to socket; o Since we are sending messages in a loop, returning error on first fail interrupts the loop, and all remaining sockets will not receive this message. So, do not return error when we have failed to send data to ALL or REGISTERED target. Return error only for KEY_SENDUP_ONE case. Now, when some socket has overfilled its receive buffer, this will not break other sockets. Modified: stable/11/sys/netipsec/keysock.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netipsec/keysock.c ============================================================================== --- stable/11/sys/netipsec/keysock.c Sun Mar 25 03:37:26 2018 (r331525) +++ stable/11/sys/netipsec/keysock.c Sun Mar 25 03:45:02 2018 (r331526) @@ -178,7 +178,6 @@ key_sendup_mbuf(struct socket *so, struct mbuf *m, int { struct mbuf *n; struct keycb *kp; - int sendup; struct rawcb *rp; int error = 0; @@ -217,69 +216,50 @@ key_sendup_mbuf(struct socket *so, struct mbuf *m, int continue; } - kp = (struct keycb *)rp; - /* * If you are in promiscuous mode, and when you get broadcasted * reply, you'll get two PF_KEY messages. * (based on pf_key@inner.net message on 14 Oct 1998) */ - if (((struct keycb *)rp)->kp_promisc) { - if ((n = m_copy(m, 0, (int)M_COPYALL)) != NULL) { - (void)key_sendup0(rp, n, 1); - n = NULL; - } + kp = (struct keycb *)rp; + if (kp->kp_promisc) { + n = m_copym(m, 0, M_COPYALL, M_NOWAIT); + if (n != NULL) + key_sendup0(rp, n, 1); + else + PFKEYSTAT_INC(in_nomem); } /* the exact target will be processed later */ if (so && sotorawcb(so) == rp) continue; - sendup = 0; - switch (target) { - case KEY_SENDUP_ONE: - /* the statement has no effect */ - if (so && sotorawcb(so) == rp) - sendup++; - break; - case KEY_SENDUP_ALL: - sendup++; - break; - case KEY_SENDUP_REGISTERED: - if (kp->kp_registered) - sendup++; - break; - } - PFKEYSTAT_INC(in_msgtarget[target]); - - if (!sendup) + if (target == KEY_SENDUP_ONE || ( + target == KEY_SENDUP_REGISTERED && kp->kp_registered == 0)) continue; - if ((n = m_copy(m, 0, (int)M_COPYALL)) == NULL) { - m_freem(m); + /* KEY_SENDUP_ALL + KEY_SENDUP_REGISTERED */ + n = m_copym(m, 0, M_COPYALL, M_NOWAIT); + if (n == NULL) { PFKEYSTAT_INC(in_nomem); - mtx_unlock(&rawcb_mtx); - return ENOBUFS; + /* Try send to another socket */ + continue; } - if ((error = key_sendup0(rp, n, 0)) != 0) { - m_freem(m); - mtx_unlock(&rawcb_mtx); - return error; - } - - n = NULL; + if (key_sendup0(rp, n, 0) == 0) + PFKEYSTAT_INC(in_msgtarget[target]); } - if (so) { + if (so) { /* KEY_SENDUP_ONE */ error = key_sendup0(sotorawcb(so), m, 0); - m = NULL; + if (error == 0) + PFKEYSTAT_INC(in_msgtarget[KEY_SENDUP_ONE]); } else { error = 0; m_freem(m); } mtx_unlock(&rawcb_mtx); - return error; + return (error); } /* From owner-svn-src-all@freebsd.org Sun Mar 25 03:37:27 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E6B0AF692F8; Sun, 25 Mar 2018 03:37:26 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 94EAB708CA; Sun, 25 Mar 2018 03:37:26 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8E89618B5E; Sun, 25 Mar 2018 03:37:26 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P3bQEu061737; Sun, 25 Mar 2018 03:37:26 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P3bQMQ061735; Sun, 25 Mar 2018 03:37:26 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201803250337.w2P3bQMQ061735@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Sun, 25 Mar 2018 03:37:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331525 - stable/11/sys/netipsec X-SVN-Group: stable-11 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/11/sys/netipsec X-SVN-Commit-Revision: 331525 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 03:37:27 -0000 Author: ae Date: Sun Mar 25 03:37:26 2018 New Revision: 331525 URL: https://svnweb.freebsd.org/changeset/base/331525 Log: MFC r330771: Remove obsoleted and unused key_sendup() function. Also remove declaration for nonexistend key_usrreq() function. MFC r330772: Check that we have PF_KEY sockets before iterating over all RAW sockets. MFC r330775: Replace panic() with KASSERTs. MFC r330777: Add KASSERT to check that proper targed was used. Modified: stable/11/sys/netipsec/keysock.c stable/11/sys/netipsec/keysock.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netipsec/keysock.c ============================================================================== --- stable/11/sys/netipsec/keysock.c Sun Mar 25 02:04:44 2018 (r331524) +++ stable/11/sys/netipsec/keysock.c Sun Mar 25 03:37:26 2018 (r331525) @@ -172,90 +172,6 @@ key_sendup0(struct rawcb *rp, struct mbuf *m, int prom return error; } -/* XXX this interface should be obsoleted. */ -int -key_sendup(struct socket *so, struct sadb_msg *msg, u_int len, int target) -{ - struct mbuf *m, *n, *mprev; - int tlen; - - /* sanity check */ - if (so == NULL || msg == NULL) - panic("%s: NULL pointer was passed.\n", __func__); - - KEYDBG(KEY_DUMP, - printf("%s: \n", __func__); - kdebug_sadb(msg)); - - /* - * we increment statistics here, just in case we have ENOBUFS - * in this function. - */ - PFKEYSTAT_INC(in_total); - PFKEYSTAT_ADD(in_bytes, len); - PFKEYSTAT_INC(in_msgtype[msg->sadb_msg_type]); - - /* - * Get mbuf chain whenever possible (not clusters), - * to save socket buffer. We'll be generating many SADB_ACQUIRE - * messages to listening key sockets. If we simply allocate clusters, - * sbappendaddr() will raise ENOBUFS due to too little sbspace(). - * sbspace() computes # of actual data bytes AND mbuf region. - * - * TODO: SADB_ACQUIRE filters should be implemented. - */ - tlen = len; - m = mprev = NULL; - while (tlen > 0) { - if (tlen == len) { - MGETHDR(n, M_NOWAIT, MT_DATA); - if (n == NULL) { - PFKEYSTAT_INC(in_nomem); - return ENOBUFS; - } - n->m_len = MHLEN; - } else { - MGET(n, M_NOWAIT, MT_DATA); - if (n == NULL) { - PFKEYSTAT_INC(in_nomem); - return ENOBUFS; - } - n->m_len = MLEN; - } - if (tlen >= MCLBYTES) { /*XXX better threshold? */ - if (!(MCLGET(n, M_NOWAIT))) { - m_free(n); - m_freem(m); - PFKEYSTAT_INC(in_nomem); - return ENOBUFS; - } - n->m_len = MCLBYTES; - } - - if (tlen < n->m_len) - n->m_len = tlen; - n->m_next = NULL; - if (m == NULL) - m = mprev = n; - else { - mprev->m_next = n; - mprev = n; - } - tlen -= n->m_len; - n = NULL; - } - m->m_pkthdr.len = len; - m->m_pkthdr.rcvif = NULL; - m_copyback(m, 0, len, (caddr_t)msg); - - /* avoid duplicated statistics */ - PFKEYSTAT_ADD(in_total, -1); - PFKEYSTAT_ADD(in_bytes, -len); - PFKEYSTAT_ADD(in_msgtype[msg->sadb_msg_type], -1); - - return key_sendup_mbuf(so, m, target); -} - /* so can be NULL if target != KEY_SENDUP_ONE */ int key_sendup_mbuf(struct socket *so, struct mbuf *m, int target) @@ -266,10 +182,11 @@ key_sendup_mbuf(struct socket *so, struct mbuf *m, int struct rawcb *rp; int error = 0; - if (m == NULL) - panic("key_sendup_mbuf: NULL pointer was passed.\n"); - if (so == NULL && target == KEY_SENDUP_ONE) - panic("%s: NULL pointer was passed.\n", __func__); + KASSERT(m != NULL, ("NULL mbuf pointer was passed.")); + KASSERT(so != NULL || target != KEY_SENDUP_ONE, + ("NULL socket pointer was passed.")); + KASSERT(target == KEY_SENDUP_ONE || target == KEY_SENDUP_ALL || + target == KEY_SENDUP_REGISTERED, ("Wrong target %d", target)); PFKEYSTAT_INC(in_total); PFKEYSTAT_ADD(in_bytes, m->m_pkthdr.len); @@ -286,6 +203,11 @@ key_sendup_mbuf(struct socket *so, struct mbuf *m, int PFKEYSTAT_INC(in_msgtype[msg->sadb_msg_type]); } mtx_lock(&rawcb_mtx); + if (V_key_cb.any_count == 0) { + mtx_unlock(&rawcb_mtx); + m_freem(m); + return (0); + } LIST_FOREACH(rp, &V_rawcb_list, list) { if (rp->rcb_proto.sp_family != PF_KEY) Modified: stable/11/sys/netipsec/keysock.h ============================================================================== --- stable/11/sys/netipsec/keysock.h Sun Mar 25 02:04:44 2018 (r331524) +++ stable/11/sys/netipsec/keysock.h Sun Mar 25 03:37:26 2018 (r331525) @@ -78,12 +78,8 @@ VNET_PCPUSTAT_DECLARE(struct pfkeystat, pfkeystat); VNET_PCPUSTAT_ADD(struct pfkeystat, pfkeystat, name, (val)) #define PFKEYSTAT_INC(name) PFKEYSTAT_ADD(name, 1) -extern int key_output(struct mbuf *m, struct socket *so, ...); -extern int key_usrreq(struct socket *, int, struct mbuf *, - struct mbuf *, struct mbuf *); - -extern int key_sendup(struct socket *, struct sadb_msg *, u_int, int); -extern int key_sendup_mbuf(struct socket *, struct mbuf *, int); +int key_output(struct mbuf *m, struct socket *so, ...); +int key_sendup_mbuf(struct socket *, struct mbuf *, int); #endif /* _KERNEL */ #endif /*_NETIPSEC_KEYSOCK_H_*/ From owner-svn-src-all@freebsd.org Sun Mar 25 03:50:39 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D483F69D96; Sun, 25 Mar 2018 03:50:39 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DC823710E3; Sun, 25 Mar 2018 03:50:38 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D73AE18D23; Sun, 25 Mar 2018 03:50:38 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P3ocnK067061; Sun, 25 Mar 2018 03:50:38 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P3och2067060; Sun, 25 Mar 2018 03:50:38 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201803250350.w2P3och2067060@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Sun, 25 Mar 2018 03:50:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331527 - stable/11/lib/libipsec X-SVN-Group: stable-11 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/11/lib/libipsec X-SVN-Commit-Revision: 331527 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 03:50:39 -0000 Author: ae Date: Sun Mar 25 03:50:38 2018 New Revision: 331527 URL: https://svnweb.freebsd.org/changeset/base/331527 Log: MFC r330781: Update pfkey_open() function to set socket's write buffer size to 128k and receive buffer size to 2MB. In case if system has bigger default values, do not lower them. This should partially solve the problem, when setkey(8) returns EAGAIN error on systems with many SAs or SPs. PR: 88336 Obtained from: NetBSD/ipsec-tools Modified: stable/11/lib/libipsec/pfkey.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libipsec/pfkey.c ============================================================================== --- stable/11/lib/libipsec/pfkey.c Sun Mar 25 03:45:02 2018 (r331526) +++ stable/11/lib/libipsec/pfkey.c Sun Mar 25 03:50:38 2018 (r331527) @@ -1595,10 +1595,12 @@ pfkey_send_x5(so, type, spid) * others : success and return value of socket. */ int -pfkey_open() +pfkey_open(void) { int so; - const int bufsiz = 128 * 1024; /*is 128K enough?*/ + int bufsiz_current, bufsiz_wanted; + int ret; + socklen_t len; if ((so = socket(PF_KEY, SOCK_RAW, PF_KEY_V2)) < 0) { __ipsec_set_strerror(strerror(errno)); @@ -1609,8 +1611,28 @@ pfkey_open() * This is a temporary workaround for KAME PR 154. * Don't really care even if it fails. */ - (void)setsockopt(so, SOL_SOCKET, SO_SNDBUF, &bufsiz, sizeof(bufsiz)); - (void)setsockopt(so, SOL_SOCKET, SO_RCVBUF, &bufsiz, sizeof(bufsiz)); + /* Try to have 128k. If we have more, do not lower it. */ + bufsiz_wanted = 128 * 1024; + len = sizeof(bufsiz_current); + ret = getsockopt(so, SOL_SOCKET, SO_SNDBUF, + &bufsiz_current, &len); + if ((ret < 0) || (bufsiz_current < bufsiz_wanted)) + (void)setsockopt(so, SOL_SOCKET, SO_SNDBUF, + &bufsiz_wanted, sizeof(bufsiz_wanted)); + + /* Try to have have at least 2MB. If we have more, do not lower it. */ + bufsiz_wanted = 2 * 1024 * 1024; + len = sizeof(bufsiz_current); + ret = getsockopt(so, SOL_SOCKET, SO_RCVBUF, + &bufsiz_current, &len); + if (ret < 0) + bufsiz_current = 128 * 1024; + + for (; bufsiz_wanted > bufsiz_current; bufsiz_wanted /= 2) { + if (setsockopt(so, SOL_SOCKET, SO_RCVBUF, + &bufsiz_wanted, sizeof(bufsiz_wanted)) == 0) + break; + } __ipsec_errcode = EIPSEC_NO_ERROR; return so; From owner-svn-src-all@freebsd.org Sun Mar 25 06:08:04 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4C264F4A2E2; Sun, 25 Mar 2018 06:08:04 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AAE2375E95; Sun, 25 Mar 2018 06:08:03 +0000 (UTC) (envelope-from ohartmann@walstatt.org) Received: from thor.intern.walstatt.dynvpn.de ([85.181.253.48]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LabZr-1eILok3iL1-00mJyR; Sun, 25 Mar 2018 08:08:02 +0200 Date: Sun, 25 Mar 2018 08:07:27 +0200 From: "O. Hartmann" To: Jeff Roberson Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r331508 - in head: lib/libc/sys share/man/man9 usr.bin/cpuset Message-ID: <20180325080754.4e169d9a@thor.intern.walstatt.dynvpn.de> In-Reply-To: <201803242358.w2ONwiuu051354@repo.freebsd.org> References: <201803242358.w2ONwiuu051354@repo.freebsd.org> Organization: WALSTATT User-Agent: OutScare 3.1415926 X-Operating-System: ImNotAnOperatingSystem 3.141592527 MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/QZ9Mo8ZpX8oTgh.41WmBpJT"; protocol="application/pgp-signature" X-Provags-ID: V03:K0:iu43fMKB0VARt5p5msY3aNEiA8m1LcSdF53MDmq6Su+PP/m4ndC MxJrs0tVmvDTmIN8innOiLPnkMBI8qih/AynjfoozrjxjoZqaFcw0dS7LVmzbGy1SXuluOw j92ajwVLgFf/y8rgETEuUXtJ/CMsJTsnTLFUnb0JSDvOYN6llOvsYtUiqXTd+NI19QewUYp bZiMV9vuK8y84A3Jo5XfQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:tigdHLDCqTs=:S0spv3KpVA7a7RHaFc0uMp oNBiLBbhNWrev7mQAtWRsjqOnDhwZjLgeWPSq7PiTRX2LC3kiq/8izzzbq8kHi0Y8nhwCHEEk F9ZJs3ypr38GhBtkoDHua83iM2qWm9yPSCxWHT0NUh/FAAnjWwf5ZVZB+DNwLku7yUtBnFDkV 68MmjSyWv8r5NX8IUK9RsQgSCJ9vfxobuCu9Fl2dcK/PPLA7dq+fUxT2doAQvf7OLbyN6D9Xw aGmf31aH85Dbnv5aK9zihS1a8bi6naICpsVW0odz6k8tYZg72/svLPaOIrtMhoYBRYRoGAzTi AGRy8ugmijbMF7TkSpnAKwRpgIJ7tp7ruvsqWywam7BxUrmY2wdVp7pb3U/JdKQDy71Rsh+b3 DIgNptoqPoA0PJSPfoLLE6J9NamvADPEDG/r24MLEL+Qciy71XtzRocNRpfbPwDLcGYDnAQdj YySgtHMyrhA3diJjiyGz6yLNBMXCMMVsjBqXV9L3yLdAc1MauD8RRBeNUjkjjpbI0zHhzyE3/ 3CfUTW08fTgCHJ9drhodoGkpV5VzvQmTbvIDpOp82pjfSOqqrw7n007hyzDpkQr1S7E3r6AnJ pITlWF3j3YZhx/gzKF8svsNkiOT/Xt82I8KLMxR7ObFqtRwIigDCMkYXhxrO/NRU7hTdeMIyc Kacu64jNMZGALKM02GqnsdQTM9CI+ZND6LAFL6R0cIWj+3B0wRyaNtfgCgU7OIDeAj/MnRW6E BOY9a1mQUayRWfKFXXKkNbdT8G5NYdDkh7ishd+zMoynkkIlWXL/GaczwhjEz1Piuq5DC19ar EDE4nwmkTS7i4Rtsho+RWBF52ECng== X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 06:08:04 -0000 --Sig_/QZ9Mo8ZpX8oTgh.41WmBpJT Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Am Sat, 24 Mar 2018 23:58:44 +0000 (UTC) Jeff Roberson schrieb: > Author: jeff > Date: Sat Mar 24 23:58:44 2018 > New Revision: 331508 > URL: https://svnweb.freebsd.org/changeset/base/331508 >=20 > Log: > Document new NUMA related syscalls and utility options. > =20 > Sponsored by: Netflix, Dell/EMC Isilon >=20 > Modified: > head/lib/libc/sys/Makefile.inc > head/lib/libc/sys/cpuset.2 > head/lib/libc/sys/cpuset_getaffinity.2 > head/share/man/man9/Makefile > head/share/man/man9/malloc.9 > head/share/man/man9/zone.9 > head/usr.bin/cpuset/cpuset.1 >=20 > Modified: head/lib/libc/sys/Makefile.inc > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libc/sys/Makefile.inc Sat Mar 24 23:26:54 2018 (r331507) > +++ head/lib/libc/sys/Makefile.inc Sat Mar 24 23:58:44 2018 (r331508) > @@ -174,6 +174,7 @@ MAN+=3D abort2.2 \ > connectat.2 \ > cpuset.2 \ > cpuset_getaffinity.2 \ > + cpuset_getdomain.2 \ > dup.2 \ > execve.2 \ > _exit.2 \ > @@ -371,6 +372,7 @@ MLINKS+=3Dnanosleep.2 clock_nanosleep.2 > MLINKS+=3Dcpuset.2 cpuset_getid.2 \ > cpuset.2 cpuset_setid.2 > MLINKS+=3Dcpuset_getaffinity.2 cpuset_setaffinity.2 > +MLINKS+=3Dcpuset_getdomain.2 cpuset_setdomain.2 > MLINKS+=3Ddup.2 dup2.2 > MLINKS+=3Dexecve.2 fexecve.2 > MLINKS+=3Dextattr_get_file.2 extattr.2 \ >=20 > Modified: head/lib/libc/sys/cpuset.2 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libc/sys/cpuset.2 Sat Mar 24 23:26:54 2018 (r331507) > +++ head/lib/libc/sys/cpuset.2 Sat Mar 24 23:58:44 2018 (r331508) > @@ -48,21 +48,21 @@ > The > .Nm > family of system calls allow applications to control sets of processors = and > -assign processes and threads to these sets. > -Processor sets contain lists of CPUs that members may run on and exist o= nly > -as long as some process is a member of the set. > +memory domains and assign processes and threads to these sets. > +Processor sets contain lists of CPUs and domains that members may run on > +and exist only as long as some process is a member of the set. > All processes in the system have an assigned set. > The default set for all processes in the system is the set numbered 1. > Threads belong to the same set as the process which contains them, > however, they may further restrict their set with the anonymous > -per-thread mask. > +per-thread mask to bind to a specific CPU or subset of CPUs and memory d= omains. > .Pp > Sets are referenced by a number of type > .Ft cpuset_id_t . > Each thread has a root set, an assigned set, and an anonymous mask. > Only the root and assigned sets are numbered. > -The root set is the set of all CPUs available in the system or in the > -system partition the thread is running in. > +The root set is the set of all CPUs and memory domains available in the = system > +or in the system partition the thread is running in. > The assigned set is a subset of the root set and is administratively > assignable on a per-process basis. > Many processes and threads may be members of a numbered set. > @@ -72,7 +72,8 @@ set. > It is intended that administrators will manipulate numbered sets using > .Xr cpuset 1 > while application developers will manipulate anonymous sets using > -.Xr cpuset_setaffinity 2 . > +.Xr cpuset_setaffinity 2 and > +.Xr cpuset_setdomain 2 . > .Pp > To select the correct set a value of type > .Ft cpulevel_t > @@ -175,9 +176,10 @@ with a process or thread is unsupported since > this references the unnumbered anonymous mask. > .Pp > The actual contents of the sets may be retrieved or manipulated using > -.Xr cpuset_getaffinity 2 > -and > -.Xr cpuset_setaffinity 2 . > +.Xr cpuset_getaffinity 2 , > +.Xr cpuset_setaffinity 2 , > +.Xr cpuset_getdomain 2 , and > +.Xr cpuset_setdomain 2 . > See those manual pages for more detail. > .Sh RETURN VALUES > .Rv -std > @@ -220,6 +222,8 @@ for allocation. > .Xr cpuset 1 , > .Xr cpuset_getaffinity 2 , > .Xr cpuset_setaffinity 2 , > +.Xr cpuset_getdomain 2 , > +.Xr cpuset_setdomain 2 , > .Xr pthread_affinity_np 3 , > .Xr pthread_attr_affinity_np 3 , > .Xr cpuset 9 >=20 > Modified: head/lib/libc/sys/cpuset_getaffinity.2 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libc/sys/cpuset_getaffinity.2 Sat Mar 24 23:26:54 2018 > (r331507) +++ head/lib/libc/sys/cpuset_getaffinity.2 Sat Mar 24 23:58:44 > 2018 (r331508) @@ -160,6 +160,8 @@ See > .Xr cpuset 2 , > .Xr cpuset_getid 2 , > .Xr cpuset_setid 2 , > +.Xr cpuset_getdomain 2 , > +.Xr cpuset_setdomain 2 , > .Xr pthread_affinity_np 3 , > .Xr pthread_attr_affinity_np 3 , > .Xr cpuset 9 >=20 > Modified: head/share/man/man9/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/share/man/man9/Makefile Sat Mar 24 23:26:54 2018 (r331507) > +++ head/share/man/man9/Makefile Sat Mar 24 23:58:44 2018 (r331508) > @@ -1271,6 +1271,8 @@ MLINKS+=3Dmake_dev.9 destroy_dev.9 \ > make_dev.9 make_dev_p.9 \ > make_dev.9 make_dev_s.9 > MLINKS+=3Dmalloc.9 free.9 \ > + malloc.9 malloc_domain.9 \ > + malloc.9 free_domain.9 \ > malloc.9 mallocarray.9 \ > malloc.9 MALLOC_DECLARE.9 \ > malloc.9 MALLOC_DEFINE.9 \ > @@ -2213,10 +2215,12 @@ MLINKS+=3Dvslock.9 vsunlock.9 > MLINKS+=3Dzone.9 uma.9 \ > zone.9 uma_zalloc.9 \ > zone.9 uma_zalloc_arg.9 \ > + zone.9 uma_zalloc_domain.9 \ > zone.9 uma_zcreate.9 \ > zone.9 uma_zdestroy.9 \ > zone.9 uma_zfree.9 \ > zone.9 uma_zfree_arg.9 \ > + zone.9 uma_zfree_domain.9 \ > zone.9 uma_zone_get_cur.9 \ > zone.9 uma_zone_get_max.9 \ > zone.9 uma_zone_set_max.9 \ >=20 > Modified: head/share/man/man9/malloc.9 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/share/man/man9/malloc.9 Sat Mar 24 23:26:54 2018 (r331507) > +++ head/share/man/man9/malloc.9 Sat Mar 24 23:58:44 2018 (r331508) > @@ -46,9 +46,13 @@ > .Ft void * > .Fn malloc "size_t size" "struct malloc_type *type" "int flags" > .Ft void * > +.Fn malloc_domain "size_t size" "struct malloc_type *type" "int domain" = "int flags" > +.Ft void * > .Fn mallocarray "size_t nmemb" "size_t size" "struct malloc_type *type" = "int flags" > .Ft void > .Fn free "void *addr" "struct malloc_type *type" > +.Ft void > +.Fn free_domain "void *addr" "struct malloc_type *type" > .Ft void * > .Fn realloc "void *addr" "size_t size" "struct malloc_type *type" "int f= lags" > .Ft void * > @@ -64,6 +68,14 @@ The > function allocates uninitialized memory in kernel address space for an > object whose size is specified by > .Fa size . > +.Pp > +The > +.Fn malloc_domain > +variant allocates the object from the specified memory domain. Memory a= llocated > +with this function should be returned with > +.Fn free_domain . > +See > +.Xr numa 9 for more details. > .Pp > The > .Fn mallocarray >=20 > Modified: head/share/man/man9/zone.9 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/share/man/man9/zone.9 Sat Mar 24 23:26:54 2018 (r331507) > +++ head/share/man/man9/zone.9 Sat Mar 24 23:58:44 2018 (r331508) > @@ -32,8 +32,10 @@ > .Nm uma_zcreate , > .Nm uma_zalloc , > .Nm uma_zalloc_arg , > +.Nm uma_zalloc_domain , > .Nm uma_zfree , > .Nm uma_zfree_arg , > +.Nm uma_zfree_domain , > .Nm uma_zdestroy , > .Nm uma_zone_set_max , > .Nm uma_zone_get_max , > @@ -55,11 +57,15 @@ > .Fn uma_zalloc "uma_zone_t zone" "int flags" > .Ft "void *" > .Fn uma_zalloc_arg "uma_zone_t zone" "void *arg" "int flags" > +.Ft "void *" > +.Fn uma_zalloc_domain "uma_zone_t zone" "void *arg" "int domain" "int fl= ags" > .Ft void > .Fn uma_zfree "uma_zone_t zone" "void *item" > .Ft void > .Fn uma_zfree_arg "uma_zone_t zone" "void *item" "void *arg" > .Ft void > +.Fn uma_zfree_domain "uma_zone_t zone" "void *item" "void *arg" > +.Ft void > .Fn uma_zdestroy "uma_zone_t zone" > .Ft int > .Fn uma_zone_set_max "uma_zone_t zone" "int nitems" > @@ -78,10 +84,13 @@ > .Fn SYSCTL_ADD_UMA_CUR ctx parent nbr name access zone descr > .Sh DESCRIPTION > The zone allocator provides an efficient interface for managing > -dynamically-sized collections of items of similar size. > +dynamically-sized collections of items of identical size. > The zone allocator can work with preallocated zones as well as with > runtime-allocated ones, and is therefore available much earlier in the > -boot process than other memory management routines. > +boot process than other memory management routines. The zone allocator > +provides per-cpu allocation caches with linear scalability on SMP > +systems as well as round-robin and first-touch policies for NUMA > +systems. > .Pp > A zone is an extensible collection of items of identical size. > The zone allocator keeps track of which items are in use and which > @@ -209,6 +218,11 @@ The zone is for the > subsystem. > .It Dv UMA_ZONE_VM > The zone is for the VM subsystem. > +.It Dv UMA_ZONE_NUMA > +The zone should use a first-touch NUMA policy rather than the round-robin > +default. Callers that do not free memory on the same domain it is alloca= ted > +from will cause mixing in per-cpu caches. See > +.Xr numa 9 for more details. > .El > .Pp > To allocate an item from a zone, simply call > @@ -243,12 +257,21 @@ The variations > .Fn uma_zalloc_arg > and > .Fn uma_zfree_arg > -allow to > +allow callers to > specify an argument for the > .Dv ctor > and > .Dv dtor > functions, respectively. > +The=20 > +.Fn uma_zalloc_domain > +function allows callers to specify a fixed > +.Xr numa 9 domain to allocate from. This uses a guaranteed but slow pat= h in > +the allocator which reduces concurrency. The=20 > +.Fn uma_zfree_domain > +function should be used to return memory allocated in this fashion. This > +function infers the domain from the pointer and does not require it as an > +argument. > .Pp > Created zones, > which are empty, >=20 > Modified: head/usr.bin/cpuset/cpuset.1 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/usr.bin/cpuset/cpuset.1 Sat Mar 24 23:26:54 2018 (r331507) > +++ head/usr.bin/cpuset/cpuset.1 Sat Mar 24 23:58:44 2018 (r331508) > @@ -34,20 +34,24 @@ > .Sh SYNOPSIS > .Nm > .Op Fl l Ar cpu-list > +.Op Fl n Ar policy:domain-list=20 > .Op Fl s Ar setid > .Ar cmd ... > .Nm > .Op Fl l Ar cpu-list > +.Op Fl n Ar policy:domain-list=20 > .Op Fl s Ar setid > .Fl p Ar pid > .Nm > .Op Fl c > .Op Fl l Ar cpu-list > +.Op Fl n Ar policy:domain-list=20 > .Fl C > .Fl p Ar pid > .Nm > .Op Fl c > .Op Fl l Ar cpu-list > +.Op Fl n Ar policy:domain-list=20 > .Op Fl j Ar jailid | Fl p Ar pid | Fl t Ar tid | Fl s Ar setid | Fl x Ar= irq > .Nm > .Fl g > @@ -57,8 +61,9 @@ > The > .Nm > command can be used to assign processor sets to processes, run commands > -constrained to a given set or list of processors, and query information > -about processor binding, sets, and available processors in the system. > +constrained to a given set or list of processors and memory domains, and= query > +information about processor binding, memory binding and policy, sets, and > +available processors and memory domains in the system. > .Pp > .Nm > requires a target to modify or query. > @@ -92,6 +97,15 @@ This last set is the list of all possible CPUs in the= =20 > queried using > .Fl r . > .Pp > +Most sets include NUMA memory domain and policy information. This can be > +inspected with > +.Fl g > +and set with > +.Fl n . > +This will specify which NUMA domains are visible to the process and > +affect where anonymous memory and file pages will be stored on first acc= ess. > +Files accessed first by other processes may specify conflicting policy. > +.Pp > When running a command it may join a set specified with > .Fl s > otherwise a new set is created. > @@ -110,7 +124,8 @@ Create a new cpuset and assign the target process to t > The requested operation should reference the cpuset available via the > target specifier. > .It Fl d Ar domain > -Specifies a NUMA domain id as the target of the operation. > +Specifies a NUMA domain id as the target of the operation. This can only > +be used to query the cpus visible in each numberd domain. > .It Fl g > Causes > .Nm > @@ -130,6 +145,13 @@ numbers separated by '-' for ranges and commas separ= at > A special list of > .Dq all > may be specified in which case the list includes all CPUs from the root = set. > +.It Fl n Ar domain-list:policy > +Specifies a list of domains and allocation policy to apply to a target. = Ranges > +may be specified as in > +.Fl l . > +Valid policies include first-touch, ft, round-robin, rr, and prefer. Th= e prefer > +policy accepts only a single domain in the set. The parent of the set is > +consulted if the preferred domain is unavailable. > .It Fl p Ar pid > Specifies a pid as the target of the operation. > .It Fl s Ar setid > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" A buildkernel fails with: [...] --- all_subdir_lib/libc --- make[4]: make[4]: don't know how to make cpuset_getdomain.2. Stop make[4]: stopped in /usr/src/lib/libc --=20 O. Hartmann Ich widerspreche der Nutzung oder =C3=9Cbermittlung meiner Daten f=C3=BCr Werbezwecke oder f=C3=BCr die Markt- oder Meinungsforschung (=C2=A7 28 Abs.= 4 BDSG). --Sig_/QZ9Mo8ZpX8oTgh.41WmBpJT Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iLUEARMKAB0WIQQZVZMzAtwC2T/86TrS528fyFhYlAUCWrc8ugAKCRDS528fyFhY lN9DAgCnRCCpE6cj40tcvmnqoDFyfJD+DI7FkN+QCCG+Pr8umqnF6l7YifUDGN8n /wm0goHPYAJSmn7YWNxfRijjW42EAgCWq/HLvXRaXmr5p46SVtZHibXNC7gO3guy fQrK/by0WskDYFD4NMec7wsBi8R3uUOkKJZ5UDy9T92WfYEnamsL =PD5m -----END PGP SIGNATURE----- --Sig_/QZ9Mo8ZpX8oTgh.41WmBpJT-- From owner-svn-src-all@freebsd.org Sun Mar 25 06:08:19 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 24813F4A344; Sun, 25 Mar 2018 06:08:19 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CBD5975F87; Sun, 25 Mar 2018 06:08:18 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C25E91A396; Sun, 25 Mar 2018 06:08:18 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P68IjF036765; Sun, 25 Mar 2018 06:08:18 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P68Ip3036764; Sun, 25 Mar 2018 06:08:18 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201803250608.w2P68Ip3036764@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Sun, 25 Mar 2018 06:08:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331528 - head/sys/dev/ciss X-SVN-Group: head X-SVN-Commit-Author: scottl X-SVN-Commit-Paths: head/sys/dev/ciss X-SVN-Commit-Revision: 331528 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 06:08:19 -0000 Author: scottl Date: Sun Mar 25 06:08:18 2018 New Revision: 331528 URL: https://svnweb.freebsd.org/changeset/base/331528 Log: Update a TBD string with a real model number Submitted by: Sam Gwydir Modified: head/sys/dev/ciss/ciss.c Modified: head/sys/dev/ciss/ciss.c ============================================================================== --- head/sys/dev/ciss/ciss.c Sun Mar 25 03:50:38 2018 (r331527) +++ head/sys/dev/ciss/ciss.c Sun Mar 25 06:08:18 2018 (r331528) @@ -360,7 +360,7 @@ static struct { 0x103C, 0x21C8, CISS_BOARD_SA5, "HP Smart Array H241" }, { 0x103C, 0x21CA, CISS_BOARD_SA5, "HP Smart Array P246br" }, { 0x103C, 0x21CB, CISS_BOARD_SA5, "HP Smart Array P840" }, - { 0x103C, 0x21CC, CISS_BOARD_SA5, "HP Smart Array TBD" }, + { 0x103C, 0x21CC, CISS_BOARD_SA5, "HP Smart Array P542d" }, { 0x103C, 0x21CD, CISS_BOARD_SA5, "HP Smart Array P240nr" }, { 0x103C, 0x21CE, CISS_BOARD_SA5, "HP Smart Array H240nr" }, { 0, 0, 0, NULL } From owner-svn-src-all@freebsd.org Sun Mar 25 06:34:39 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C59CDF4D1C6 for ; Sun, 25 Mar 2018 06:34:39 +0000 (UTC) (envelope-from mark@peek.org) Received: from mail-yb0-f177.google.com (mail-yb0-f177.google.com [209.85.213.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 60C5276E3A for ; Sun, 25 Mar 2018 06:34:39 +0000 (UTC) (envelope-from mark@peek.org) Received: by mail-yb0-f177.google.com with SMTP id e3-v6so5398898ybk.1 for ; Sat, 24 Mar 2018 23:34:39 -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:in-reply-to:references:from:date :message-id:subject:to:cc; bh=n+xBHEc3pNiDgliT4aQO4Hd9y7IWwlwLeyOEA9Gs0UA=; b=NYtrsQDt1iS3GOvlXDWNBI8GpvWWbBA6zHzS3i2exiUJeejxOiiX3wYb4lXcxomZtw uv7dnvzcBQQS2W7VJQR3WoG/e2Zm5WG2r20XM0qpXPvGwD4hlIJWIiGxVnxJ8G0rrbe4 o4d8CfXDzGUX/pDyUewIPuAzngP5yFJ9avsXDqn07WUxrJgyhQgVJ1YhbKvt6nVG7Wnj QTr6sj7yHRHguybOiT4IIAKP08k0gFQ73dXS/XAuXiNJudWoIdnNaQm3WYKZxGGslb2x +v8CFjYm/YZdTJlj/Fr2iDcYInBF4rpOWgSsTTa0BN0BvhxmzV27H7jNLLQSydS3tyRu yyIQ== X-Gm-Message-State: AElRT7EDSPqC9Q6c5hrplrsOvJ1zleoIxx/UbKzfoMKjuDAo2grR6bCs ma83n3ycEo/P2wugIZiu+NOmNbqJjK2H2g== X-Google-Smtp-Source: AG47ELu3YQ5RCxO35sooDEqWHSViqoELfhnRwq6uHdH/0bUv6jszXjaHWjFMrgP3YfPoopksQETD8Q== X-Received: by 2002:a25:b901:: with SMTP id x1-v6mr13815118ybj.241.1521953790984; Sat, 24 Mar 2018 21:56:30 -0700 (PDT) Received: from mail-yb0-f178.google.com (mail-yb0-f178.google.com. [209.85.213.178]) by smtp.gmail.com with ESMTPSA id c70sm4999721ywa.22.2018.03.24.21.56.30 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 24 Mar 2018 21:56:30 -0700 (PDT) Received: by mail-yb0-f178.google.com with SMTP id z5-v6so5359018ybo.10 for ; Sat, 24 Mar 2018 21:56:30 -0700 (PDT) X-Received: by 2002:a25:a04:: with SMTP id 4-v6mr3766414ybk.475.1521953790311; Sat, 24 Mar 2018 21:56:30 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:1057:0:0:0:0:0 with HTTP; Sat, 24 Mar 2018 21:56:29 -0700 (PDT) X-Originating-IP: [2601:646:c700:35ed:b994:95ae:8633:6d76] In-Reply-To: <201803250127.w2P1R59o038861@pdx.rh.CN85.dnsmgr.net> References: <201803250057.w2P0v0lA081039@repo.freebsd.org> <201803250127.w2P1R59o038861@pdx.rh.CN85.dnsmgr.net> From: Mark Peek Date: Sat, 24 Mar 2018 21:56:29 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci To: rgrimes@freebsd.org Cc: Mark Peek , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 06:34:40 -0000 On Sat, Mar 24, 2018 at 6:27 PM, Rodney W. Grimes < freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > Author: mp > > Date: Sun Mar 25 00:57:00 2018 > > New Revision: 331510 > > URL: https://svnweb.freebsd.org/changeset/base/331510 > > These files do not each contain a usable copyright, though > they seem to contain SPDX tags that indiate they should contain > a BSD 2 clause copyright. IANAL but I believe you meant "...they should contain a BSD 2 clause *license*". The files should contain a valid copyright. The intent of my commit and the author were to use the implied SPDX version of the licenses without burdening the source code with the more heavyweight license text. Having seen SPDX in the src tree, I believed the SPDX-License-Identifier was sufficient. But, to your point, I'm not sure I have seen a discussion or a decision on it. Mark From owner-svn-src-all@freebsd.org Sun Mar 25 07:42:45 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0A9FCF51E7A; Sun, 25 Mar 2018 07:42:45 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AFD4478F86; Sun, 25 Mar 2018 07:42:44 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AAC361B37B; Sun, 25 Mar 2018 07:42:44 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P7giif085992; Sun, 25 Mar 2018 07:42:44 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P7gidh085991; Sun, 25 Mar 2018 07:42:44 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201803250742.w2P7gidh085991@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Sun, 25 Mar 2018 07:42:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331529 - head/lib/libc/sys X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/lib/libc/sys X-SVN-Commit-Revision: 331529 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 07:42:45 -0000 Author: jeff Date: Sun Mar 25 07:42:44 2018 New Revision: 331529 URL: https://svnweb.freebsd.org/changeset/base/331529 Log: Add missing file from 4331508 Document cpuset_{get,set}domain() Added: head/lib/libc/sys/cpuset_getdomain.2 (contents, props changed) Added: head/lib/libc/sys/cpuset_getdomain.2 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/sys/cpuset_getdomain.2 Sun Mar 25 07:42:44 2018 (r331529) @@ -0,0 +1,188 @@ +.\" Copyright (c) 2018 Jeffrey Roberson +.\" 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$ +.\" +.Dd Mar 19, 2018 +.Dt CPUSET_GETDOMAIN 2 +.Os +.Sh NAME +.Nm cpuset_getdomain , +.Nm cpuset_setdomain +.Nd manage memory domain policy +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In sys/param.h +.In sys/domainset.h +.Ft int +.Fn cpuset_getdomain "cpulevel_t level" "cpuwhich_t which" "id_t id" "size_t setsize" "domainet_t *mask" "int *policy" +.Ft int +.Fn cpuset_setdomain "cpulevel_t level" "cpuwhich_t which" "id_t id" "size_t setsize" "const domainset_t *mask" "int policy" +.Sh DESCRIPTION +.Fn cpuset_getdomain +and +.Fn cpuset_setdomain +allow the manipulation of sets of memory domains and allocation policy available +to processes, threads, jails and other resources. +These functions may manipulate sets of memory domains that contain many processes +or per-object anonymous masks that effect only a single object. +.Pp +The valid values for the +.Fa level +and +.Fa which +arguments are documented in +.Xr cpuset 2 . +These arguments specify which object and which set of the object we are +referring to. +Not all possible combinations are valid. +For example, only processes may belong to a numbered set accessed by a +.Fa level +argument of +.Dv CPU_LEVEL_CPUSET . +All resources, however, have a mask which may be manipulated with +.Dv CPU_LEVEL_WHICH . +.Pp +Masks of type +.Ft domainset_t +are composed using the +.Dv DOMAINSET +macros. +The kernel tolerates large sets as long as all domains specified +in the set exist. +Sets smaller than the kernel uses generate an error on calls to +.Fn cpuset_getdomain +even if the result set would fit within the user supplied set. +Calls to +.Fn cpuset_setdomain +tolerate small sets with no restrictions. +.Pp +The supplied mask should have a size of +.Fa setsize +bytes. +This size is usually provided by calling +.Li sizeof(mask) +which is ultimately determined by the value of +.Dv DOMAINSET_SETSIZE +as defined in +.In sys/domainset.h . +.Pp +.Fn cpuset_getdomain +retrieves the +mask and policy from the object specified by +.Fa level , +.Fa which +and +.Fa id +and stores it in the space provided by +.Fa mask and +.Fa policy . +.Pp +.Fn cpuset_setdomain +attempts to set the mask and policy for the object specified by +.Fa level , +.Fa which +and +.Fa id +to the values in +.Fa mask and +.Fa policy . +.Sh ALLOCATION POLICIES +Valid policy values are as follows: +.Bl -tag -width "foo" +.It Dv DOMAINSET_POLICY_ROUNDROBIN +Memory is allocated on a round-robin basis by cycling through each domain in +.Fa mask . +.It Dv DOMAINSET_POLICY_FIRSTTOUCH +Memory is allocated on the domain local to the CPU the requesting thread is +running on. Failure to allocate from this domain will fallback to round-robin. +.It Dv DOMAINSET_POLICY_PREFER +Memory is allocated preferentially from the single domain specified in the mask. +If memory is unavailable the domains listed in the parent cpuset will be +visited in a round-robin order. +.El +.Sh RETURN VALUES +.Rv -std +.Sh ERRORS +The following error codes may be set in +.Va errno : +.Bl -tag -width Er +.\" When changing this list, consider updating share/man/man3/pthread_create.3, +.\" since that function can return any of these errors. +.It Bq Er EINVAL +The +.Fa level +or +.Fa which +argument was not a valid value. +.It Bq Er EINVAL +The +.Fa mask or +.Fa policy +argument specified when calling +.Fn cpuset_setdomain +was not a valid value. +.It Bq Er EDEADLK +The +.Fn cpuset_setdomain +call would leave a thread without a valid CPU to run on because the set +does not overlap with the thread's anonymous mask. +.It Bq Er EFAULT +The mask pointer passed was invalid. +.It Bq Er ESRCH +The object specified by the +.Fa id +and +.Fa which +arguments could not be found. +.It Bq Er ERANGE +The +.Fa domainsetsize +was either preposterously large or smaller than the kernel set size. +.It Bq Er EPERM +The calling process did not have the credentials required to complete the +operation. +.It Bq Er ECAPMODE +The calling process attempted to act on a process other than itself, while +in capability mode. +See +.Xr capsicum 4 . +.El +.Sh SEE ALSO +.Xr capsicum 4 , +.Xr cpuset 1 , +.Xr cpuset 2 , +.Xr cpuset_getid 2 , +.Xr cpuset_setid 2 , +.Xr cpuset_getaffinity 2 , +.Xr cpuset_setaffinity 2 , +.Xr cpuset 9 +.Sh HISTORY +The +.Nm +family of system calls first appeared in +.Fx 12.0 . +.Sh AUTHORS +.An Jeffrey Roberson Aq Mt jeff@FreeBSD.org From owner-svn-src-all@freebsd.org Sun Mar 25 07:48:12 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 23C7BF523DC for ; Sun, 25 Mar 2018 07:48:12 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from mail-pl0-x22a.google.com (mail-pl0-x22a.google.com [IPv6:2607:f8b0:400e:c01::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 992C2792BF for ; Sun, 25 Mar 2018 07:48:11 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: by mail-pl0-x22a.google.com with SMTP id b7-v6so10009065plr.8 for ; Sun, 25 Mar 2018 00:48:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jroberson-net.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=OPcCc/ZISf5EXf+HKq6oLN4v0IHiX25/SFt7ek0YKzM=; b=a1HyDB4JDrmv+y6COfg1rxhCEiie3FniIwqI/TVRK8M/JWIpcBLveTgZx8ZKeF2b1K pCjoRWtsB/VMfk+7yFInuT1AX0Uyl9P4sJnFZz+z+pbj9coxCX0G6HOMxAR5rgPD3WnM Y4TYHJf4wBysHm670PuyYfPhx5+bIEdEFT8a7IMUWZ8F8CLRKewm4eV6jU9tuhWJXe3y R5MritcAmu2aneifM6mePV4rg1QGQSnVRZq0F1uvXcfC4j38FYscT3AxOaxJ9rVUdBJu cnKB7IosL2jA22Qe/dWJctRW5mvqdAGbHk8iDPuy3WCCJBXB+PsBExsoY/69K1SbPOfr WYmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=OPcCc/ZISf5EXf+HKq6oLN4v0IHiX25/SFt7ek0YKzM=; b=ukzF17Bxq3dmadJUVTiv5I1vFIGrxtLy/U0zyqkf6PEMAV++O/XWb7UHrjFrazgWAD 08XFHZDswKZYXfQ24caH1uizYK7NYKqrZk/xw2aIufpNahhVuKjm/D7jj3PJcm7GNOam GV8Rpk1INbvAj0S8r0/XKdi4HgRQXgUlTRXbLJrGj0Oht+REBF9f0mAtwAe6ZbLXRv2n 55C5UMaY7bBoQe7zBVi0WuPw2Q7OvxTjQdWNW9a7Vb8Q/dTMBJZ+btKgzZSzulau6LBX DohN4SGMtMlAvjBdbRCWJXQFtfi7juEFqPa1BzPSxvqrSzjhUe7pEarCerzt5AHkGUct t+GQ== X-Gm-Message-State: AElRT7GPzTdyxmo/TTQ5Dj6s5gvqkyDE5h6TFKqY8yHL0DXqn42k3OMe 2LnjNth/tezB/l9mebcuYBICYg== X-Google-Smtp-Source: AG47ELte2iGS++eYZOXh64v+Ei5cRUCS6P4m6Etm68fqxxNoGzC2xdYrya4IvIFVCTz4K0Y3tp8zLg== X-Received: by 2002:a17:902:ac96:: with SMTP id h22-v6mr35346402plr.93.1521964090470; Sun, 25 Mar 2018 00:48:10 -0700 (PDT) Received: from rrcs-66-91-135-210.west.biz.rr.com (rrcs-66-91-135-210.west.biz.rr.com. [66.91.135.210]) by smtp.gmail.com with ESMTPSA id j65sm15410650pge.58.2018.03.25.00.48.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 25 Mar 2018 00:48:09 -0700 (PDT) Date: Sat, 24 Mar 2018 21:47:07 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Hans Petter Selasky cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r331447 - head/sys/dev/mlx5/mlx5_core In-Reply-To: <201803231811.w2NIB6o8051699@repo.freebsd.org> Message-ID: References: <201803231811.w2NIB6o8051699@repo.freebsd.org> User-Agent: Alpine 2.21 (BSF 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 07:48:12 -0000 > Author: hselasky > Date: Fri Mar 23 18:11:06 2018 > New Revision: 331447 > URL: https://svnweb.freebsd.org/changeset/base/331447 > > Log: > Hide verbose proclamation of error when forced in mlx5core. > > When mlx5_enter_error_state() operation is forced by shutdown, the > messages surrounding setting the error state are not informational > and confuse users. > > Submitted by: kib@ > MFC after: 1 week > Sponsored by: Mellanox Technologies This broke on sparc64 build: In file included from /usr/head/sys/dev/mlx5/mlx5_core/mlx5_cmd.c:41: /usr/head/sys/dev/mlx5/mlx5_core/mlx5_core.h:86: warning: redundant redeclaration of 'm lx5_enter_error_state' [-Wredundant-decls] /usr/head/sys/dev/mlx5/driver.h:871: warning: previous declaration of 'mlx5_enter_error _state' was here --- mlx5_alloc.o --- cc1: warnings being treated as errors Thanks, Jeff > > Modified: > head/sys/dev/mlx5/mlx5_core/mlx5_health.c > > Modified: head/sys/dev/mlx5/mlx5_core/mlx5_health.c > ============================================================================== > --- head/sys/dev/mlx5/mlx5_core/mlx5_health.c Fri Mar 23 18:09:09 2018 (r331446) > +++ head/sys/dev/mlx5/mlx5_core/mlx5_health.c Fri Mar 23 18:11:06 2018 (r331447) > @@ -99,14 +99,16 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev, > return; > } > > - mlx5_core_err(dev, "start\n"); > + if (!force) > + mlx5_core_err(dev, "internal state error detected\n"); > if (pci_channel_offline(dev->pdev) || in_fatal(dev) || force) { > dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR; > mlx5_trigger_cmd_completions(dev); > } > > mlx5_core_event(dev, MLX5_DEV_EVENT_SYS_ERROR, 0); > - mlx5_core_err(dev, "end\n"); > + if (!force) > + mlx5_core_err(dev, "system error event triggered\n"); > > unlock: > mutex_unlock(&dev->intf_state_mutex); > From owner-svn-src-all@freebsd.org Sun Mar 25 08:55:54 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0A251F5786A; Sun, 25 Mar 2018 08:55:54 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B0B9F7BC93; Sun, 25 Mar 2018 08:55:53 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AA26D1BEAD; Sun, 25 Mar 2018 08:55:53 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2P8trYG021697; Sun, 25 Mar 2018 08:55:53 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2P8trVg021696; Sun, 25 Mar 2018 08:55:53 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803250855.w2P8trVg021696@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Sun, 25 Mar 2018 08:55:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331531 - head/sys/dev/mlx5 X-SVN-Group: head X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: head/sys/dev/mlx5 X-SVN-Commit-Revision: 331531 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 08:55:54 -0000 Author: hselasky Date: Sun Mar 25 08:55:53 2018 New Revision: 331531 URL: https://svnweb.freebsd.org/changeset/base/331531 Log: Remove redundant prototype to fix compilation with GCC. Reported by: jeff@ MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/dev/mlx5/driver.h Modified: head/sys/dev/mlx5/driver.h ============================================================================== --- head/sys/dev/mlx5/driver.h Sun Mar 25 08:39:51 2018 (r331530) +++ head/sys/dev/mlx5/driver.h Sun Mar 25 08:55:53 2018 (r331531) @@ -868,7 +868,6 @@ static inline u32 mlx5_base_mkey(const u32 key) return key & 0xffffff00u; } -void mlx5_enter_error_state(struct mlx5_core_dev *dev, bool force); int mlx5_cmd_init(struct mlx5_core_dev *dev); void mlx5_cmd_cleanup(struct mlx5_core_dev *dev); void mlx5_cmd_use_events(struct mlx5_core_dev *dev); From owner-svn-src-all@freebsd.org Sun Mar 25 08:57:29 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3AD7CF57A70; Sun, 25 Mar 2018 08:57:29 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [88.99.82.50]) (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 D06507BE2B; Sun, 25 Mar 2018 08:57:28 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.128.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 97923260596; Sun, 25 Mar 2018 10:57:20 +0200 (CEST) Subject: Re: svn commit: r331447 - head/sys/dev/mlx5/mlx5_core To: Jeff Roberson Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201803231811.w2NIB6o8051699@repo.freebsd.org> From: Hans Petter Selasky Message-ID: <14ae19c4-99fb-8639-d211-b247e099db0f@selasky.org> Date: Sun, 25 Mar 2018 10:57:14 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 08:57:29 -0000 On 03/25/18 09:47, Jeff Roberson wrote: > >> Author: hselasky >> Date: Fri Mar 23 18:11:06 2018 >> New Revision: 331447 >> URL: https://svnweb.freebsd.org/changeset/base/331447 >> >> Log: >>  Hide verbose proclamation of error when forced in mlx5core. >> >>  When mlx5_enter_error_state() operation is forced by shutdown, the >>  messages surrounding setting the error state are not informational >>  and confuse users. >> >>  Submitted by:    kib@ >>  MFC after:    1 week >>  Sponsored by:    Mellanox Technologies > > > This broke on sparc64 build: > > In file included from /usr/head/sys/dev/mlx5/mlx5_core/mlx5_cmd.c:41: > /usr/head/sys/dev/mlx5/mlx5_core/mlx5_core.h:86: warning: redundant > redeclaration of 'm > lx5_enter_error_state' [-Wredundant-decls] > /usr/head/sys/dev/mlx5/driver.h:871: warning: previous declaration of > 'mlx5_enter_error > _state' was here > --- mlx5_alloc.o --- > cc1: warnings being treated as errors > > Thanks, > Jeff > >> >> Modified: >>  head/sys/dev/mlx5/mlx5_core/mlx5_health.c >> >> Modified: head/sys/dev/mlx5/mlx5_core/mlx5_health.c >> ============================================================================== >> >> --- head/sys/dev/mlx5/mlx5_core/mlx5_health.c    Fri Mar 23 18:09:09 >> 2018    (r331446) >> +++ head/sys/dev/mlx5/mlx5_core/mlx5_health.c    Fri Mar 23 18:11:06 >> 2018    (r331447) >> @@ -99,14 +99,16 @@ void mlx5_enter_error_state(struct mlx5_core_dev >> *dev, >>         return; >>     } >> >> -    mlx5_core_err(dev, "start\n"); >> +    if (!force) >> +        mlx5_core_err(dev, "internal state error detected\n"); >>     if (pci_channel_offline(dev->pdev) || in_fatal(dev) || force) { >>         dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR; >>         mlx5_trigger_cmd_completions(dev); >>     } >> >>     mlx5_core_event(dev, MLX5_DEV_EVENT_SYS_ERROR, 0); >> -    mlx5_core_err(dev, "end\n"); >> +    if (!force) >> +        mlx5_core_err(dev, "system error event triggered\n"); >> >> unlock: >>     mutex_unlock(&dev->intf_state_mutex); >> > > Hi, See here: https://svnweb.freebsd.org/changeset/base/331531 --HPS From owner-svn-src-all@freebsd.org Sun Mar 25 11:49:51 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 12541F65B07; Sun, 25 Mar 2018 11:49:51 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8034C80FB0; Sun, 25 Mar 2018 11:49:50 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2PBnk7f041040; Sun, 25 Mar 2018 04:49:46 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2PBnj3R041039; Sun, 25 Mar 2018 04:49:45 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201803251149.w2PBnj3R041039@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci In-Reply-To: To: Mark Peek Date: Sun, 25 Mar 2018 04:49:45 -0700 (PDT) CC: rgrimes@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 11:49:51 -0000 > On Sat, Mar 24, 2018 at 6:27 PM, Rodney W. Grimes < > freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > > > Author: mp > > > Date: Sun Mar 25 00:57:00 2018 > > > New Revision: 331510 > > > URL: https://svnweb.freebsd.org/changeset/base/331510 > > > > These files do not each contain a usable copyright, though > > they seem to contain SPDX tags that indiate they should contain > > a BSD 2 clause copyright. > > > IANAL but I believe you meant "...they should contain a BSD 2 clause > *license*". The files should contain a valid copyright. A valid, but unusable. As the copyright is it is a full copyright held by vmware without any rights to be published or redistributed any any manner by anyone but vmware. "Copyright (c) 2018 VMware, Inc. All Rights Reserved." That is a restrictive copyright, allowing no one to publish, or in our case, redistribute, without a further license of some form. > The intent of my commit and the author were to use the implied SPDX version > of the licenses without burdening the source code with the more heavyweight > license text. Having seen SPDX in the src tree, I believed > the SPDX-License-Identifier was sufficient. But, to your point, I'm not > sure I have seen a discussion or a decision on it. SPDX tags are purely to be treated as "advisory" and in no one imply or create any license agreement. > Mark -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Mar 25 14:35:15 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 84B77F4A885 for ; Sun, 25 Mar 2018 14:35:15 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from sonic309-27.consmr.mail.bf2.yahoo.com (sonic309-27.consmr.mail.bf2.yahoo.com [74.6.129.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 25F1087AFE for ; Sun, 25 Mar 2018 14:35:14 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1521988514; bh=GTofx2AjJB/NwK7Kh0w8oVoEPlbKsCIFa7PyAl0WC9g=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From:Subject; b=psnyi/17jbprPInX97BQFQFjGUTCVe6LJut0bs7Blsa6DnbfCUbs4cnIn5PnG2PFvv+jzGlD8usS95tzx1Klmd6Fxz1ZhYRgQ6wATjS78uv2mg5YOy8F7omH5f8NynMDfpSmzEnSQEJJv8KCuv2aXOg77l6MpOP+Hi4ATTjKInlipS8+YJkNvfwIt7ZVtRChgCQ6ShzYfumBn3gh8ycoeIOT2V6WRu7jPEK1zqVqBQfoyPx3k8T9hFwU2k7Q7QwYVB1ck9MCYjaawBZYFdvLFQAEGIPh09ZFqW4jDd0WgPLTzVxpEbfj+a7NMWh3An7IdrhqSM0NjrW02Yg/Feeb1w== X-YMail-OSG: Asq4sqwVM1kSgmJe1PPLiEeYCt22tC.v14ZfoB7z6UipGFRuBp1wTPoCQK0qjaz Ls2UTEGUjg11sWuz4hUuyZhATapaPHp1iTNEURtA7yFqERu9dTrcvu36OnrPSPutibQo_sXrHH2G KPBVxTnBR5QF6cnUBwuzgISMC1GoOMlqaetiBMBFa3wFrK70FAONKac7J0w8QngLNv7NwOF5dPWV HjNiCMk7UW8oyUwCEX9RouN_FHdsWoVLWz1SF8J1yV2MJWfmUcsJmXmrjaXzuu90wTAg41NgJrh_ gp1mq5Mv6Z9tz2BOWXcsSKl1ZnAXAd_gok.WBz6jigizS6m1BR8hTUtWAz5Oq_D8ts1D7o0fHFa. SmjKahtfdmuj_c.SjafmOXwKvibp_.QZkmQoiUwD5TgKrhvxBybrHJecmMchlokfw3pLrv5H.yUB 6WtC9vl35O4emn_R.ItIfgJTPfZGCBhKwKC5tU9_ZBlIccXlG3orRqmX9_7Q37QKA4nM4ny5xRAC ClrIzPGLyGw-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic309.consmr.mail.bf2.yahoo.com with HTTP; Sun, 25 Mar 2018 14:35:14 +0000 Received: from 181.52.72.201 (EHLO [192.168.0.5]) ([181.52.72.201]) by smtp427.mail.bf1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 5bc48b565e8e40f15a151ddc15a5547f; Sun, 25 Mar 2018 14:15:00 +0000 (UTC) Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci To: rgrimes@freebsd.org, Mark Peek Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201803251149.w2PBnj3R041039@pdx.rh.CN85.dnsmgr.net> From: Pedro Giffuni Organization: FreeBSD Project Message-ID: <8dffed54-3319-d826-5ec1-fd80155a3921@FreeBSD.org> Date: Sun, 25 Mar 2018 09:15:00 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <201803251149.w2PBnj3R041039@pdx.rh.CN85.dnsmgr.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 14:35:15 -0000 On 25/03/2018 06:49, Rodney W. Grimes wrote: >> On Sat, Mar 24, 2018 at 6:27 PM, Rodney W. Grimes < >> freebsd@pdx.rh.cn85.dnsmgr.net> wrote: >> >>>> Author: mp >>>> Date: Sun Mar 25 00:57:00 2018 >>>> New Revision: 331510 >>>> URL: https://svnweb.freebsd.org/changeset/base/331510 >>> These files do not each contain a usable copyright, though >>> they seem to contain SPDX tags that indiate they should contain >>> a BSD 2 clause copyright. >> >> IANAL but I believe you meant "...they should contain a BSD 2 clause >> *license*". The files should contain a valid copyright. > A valid, but unusable. As the copyright is it is a full copyright > held by vmware without any rights to be published or redistributed > any any manner by anyone but vmware. > > "Copyright (c) 2018 VMware, Inc. All Rights Reserved." > > That is a restrictive copyright, allowing no one to publish, or > in our case, redistribute, without a further license of some form. > >> The intent of my commit and the author were to use the implied SPDX version >> of the licenses without burdening the source code with the more heavyweight >> license text. Having seen SPDX in the src tree, I believed >> the SPDX-License-Identifier was sufficient. But, to your point, I'm not >> sure I have seen a discussion or a decision on it. > SPDX tags are purely to be treated as "advisory" and in no one imply > or create any license agreement. As happens in economics, different lawyers can have different interpretations. Our practices were consulted with the SPDX guys but other projects have different practices. While the sound practice, especially when you don't own the code, is to add the SPDX tag in addition to the license text, the linux developers are encouraging replacing it altogether with the SPDX tag. In their case they keep a reference to the complete license text elsewhere and they have some repository log where the copyright owner did the change. For contrib code we just follow upstream. In no case can anyone other than the copyright owner clarify, or otherwise change, a license. Pedro. From owner-svn-src-all@freebsd.org Sun Mar 25 16:03:33 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1CA93F533EE; Sun, 25 Mar 2018 16:03:33 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7F8916B271; Sun, 25 Mar 2018 16:03:31 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2PG3MDv041798; Sun, 25 Mar 2018 09:03:22 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2PG3KLQ041797; Sun, 25 Mar 2018 09:03:20 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201803251603.w2PG3KLQ041797@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci In-Reply-To: <8dffed54-3319-d826-5ec1-fd80155a3921@FreeBSD.org> To: Pedro Giffuni Date: Sun, 25 Mar 2018 09:03:20 -0700 (PDT) CC: rgrimes@freebsd.org, Mark Peek , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 16:03:33 -0000 > > > On 25/03/2018 06:49, Rodney W. Grimes wrote: > >> On Sat, Mar 24, 2018 at 6:27 PM, Rodney W. Grimes < > >> freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > >> > >>>> Author: mp > >>>> Date: Sun Mar 25 00:57:00 2018 > >>>> New Revision: 331510 > >>>> URL: https://svnweb.freebsd.org/changeset/base/331510 > >>> These files do not each contain a usable copyright, though > >>> they seem to contain SPDX tags that indiate they should contain > >>> a BSD 2 clause copyright. > >> > >> IANAL but I believe you meant "...they should contain a BSD 2 clause > >> *license*". The files should contain a valid copyright. > > A valid, but unusable. As the copyright is it is a full copyright > > held by vmware without any rights to be published or redistributed > > any any manner by anyone but vmware. > > > > "Copyright (c) 2018 VMware, Inc. All Rights Reserved." > > > > That is a restrictive copyright, allowing no one to publish, or > > in our case, redistribute, without a further license of some form. > > > >> The intent of my commit and the author were to use the implied SPDX version > >> of the licenses without burdening the source code with the more heavyweight > >> license text. Having seen SPDX in the src tree, I believed > >> the SPDX-License-Identifier was sufficient. But, to your point, I'm not > >> sure I have seen a discussion or a decision on it. > > SPDX tags are purely to be treated as "advisory" and in no one imply > > or create any license agreement. > > As happens in economics, different lawyers can have different > interpretations. Our practices were consulted with the SPDX guys but > other projects have different practices. > > While the sound practice, especially when you don't own the code, is to > add the SPDX tag in addition to the license text, the linux developers > are encouraging replacing it altogether with the SPDX tag. In their case > they keep a reference to the complete license text elsewhere and they > have some repository log where the copyright owner did the change. They have grown use to this from the way the GPL is handled, since the length of the body of that license would be impractical to include. > For contrib code we just follow upstream. In no case can anyone other > than the copyright owner clarify, or otherwise change, a license. That does bring a question of why this code is not either on a vendor import branch, or in contrib? Can you point to any files in /usr/src that lack a full and complete standalone license? Sans perhaps some GPL code that has a pointer to COPYING and files that can not such as Makefile and .mk's. Kirk would have to back me up on this, but my understanding of the decisions that the UCB Regents legal staff came to was that each file should have a complete copyright and license clause and any thing less causes problems because of "seprability", and "alterability" because of seperate files. The exception to this is files that can not be copyrighted such as Makefiles, and I have seen those now with copyrights in them, which is not enforceable as a Makefile is usually considered a receipt. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Mar 25 16:34:53 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 184EAF55D59; Sun, 25 Mar 2018 16:34:53 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-it0-f46.google.com (mail-it0-f46.google.com [209.85.214.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9EB906C544; Sun, 25 Mar 2018 16:34:52 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-it0-f46.google.com with SMTP id z7-v6so10019904iti.1; Sun, 25 Mar 2018 09:34:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=1+U+U7TYFlnklqKbi+NdVrJWTSnlCGhOe5ySWAziTy4=; b=msqMiaJ1SWMFSUO+zwSXYm1ZEaavumHSCRjuBh/twOwwsm45CDyRes6akgkcY7jJao M2byDxh4iJ2fEjtcmY++01V3czGyp+CQM3FyTwB2G6GXzkVU7KGt7aoiA4j1yapyuYIb zFiSVFGJt40g+z37Tax6mxbv2TRjQQVMV6HioxplWYLzZUvWXoVyTZ5qY+6iRfWGf2xH rjz0e88a2KdeQ695PKZ1nwqn9IxwbQnyYWSIaN6FUpkHg418HEjWEWP7ju23Kkmyvm72 NBu2fmbDDOvrTOsno49Tb71TZLQvfW1aUJjBdXWLa5bkE+Ss2Fof4Quvk1EOI+7SaRUd 0avg== X-Gm-Message-State: AElRT7HepT7ZaCsdXDmqHmB8X5qB/O8cApElEzS1zZ5zwnv4VQqGpYmd xN5/HxrA6m0cmUsr3mXYYo3lToif X-Google-Smtp-Source: AIpwx48caxDjP7n3OBtrH2mh+G/aUcjLlnY1urlvWeW5wHS0quOf7BWoG/wWrMdr9T9RtNyIexfwPg== X-Received: by 2002:a24:a445:: with SMTP id v5-v6mr7905048iti.126.1521994213381; Sun, 25 Mar 2018 09:10:13 -0700 (PDT) Received: from mail-it0-f43.google.com (mail-it0-f43.google.com. [209.85.214.43]) by smtp.gmail.com with ESMTPSA id o186-v6sm8691769ita.28.2018.03.25.09.10.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 25 Mar 2018 09:10:13 -0700 (PDT) Received: by mail-it0-f43.google.com with SMTP id v194-v6so7873423itb.0; Sun, 25 Mar 2018 09:10:13 -0700 (PDT) X-Received: by 2002:a24:2b52:: with SMTP id h79-v6mr3005001ita.135.1521994212897; Sun, 25 Mar 2018 09:10:12 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.2.62.19 with HTTP; Sun, 25 Mar 2018 09:10:12 -0700 (PDT) In-Reply-To: References: <201803231811.w2NIB6o8051699@repo.freebsd.org> From: Conrad Meyer Date: Sun, 25 Mar 2018 09:10:12 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r331447 - head/sys/dev/mlx5/mlx5_core To: Jeff Roberson Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 16:34:53 -0000 It seems it slipped back in via r331445 after I had removed it in r330714. On Sun, Mar 25, 2018 at 12:47 AM, Jeff Roberson wrote: > >> Author: hselasky >> Date: Fri Mar 23 18:11:06 2018 >> New Revision: 331447 >> URL: https://svnweb.freebsd.org/changeset/base/331447 >> >> Log: >> Hide verbose proclamation of error when forced in mlx5core. >> >> When mlx5_enter_error_state() operation is forced by shutdown, the >> messages surrounding setting the error state are not informational >> and confuse users. >> >> Submitted by: kib@ >> MFC after: 1 week >> Sponsored by: Mellanox Technologies > > > > This broke on sparc64 build: > > In file included from /usr/head/sys/dev/mlx5/mlx5_core/mlx5_cmd.c:41: > /usr/head/sys/dev/mlx5/mlx5_core/mlx5_core.h:86: warning: redundant > redeclaration of 'm > lx5_enter_error_state' [-Wredundant-decls] > /usr/head/sys/dev/mlx5/driver.h:871: warning: previous declaration of > 'mlx5_enter_error > _state' was here > --- mlx5_alloc.o --- > cc1: warnings being treated as errors > > Thanks, > Jeff > > >> >> Modified: >> head/sys/dev/mlx5/mlx5_core/mlx5_health.c >> >> Modified: head/sys/dev/mlx5/mlx5_core/mlx5_health.c >> >> ============================================================================== >> --- head/sys/dev/mlx5/mlx5_core/mlx5_health.c Fri Mar 23 18:09:09 2018 >> (r331446) >> +++ head/sys/dev/mlx5/mlx5_core/mlx5_health.c Fri Mar 23 18:11:06 2018 >> (r331447) >> @@ -99,14 +99,16 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev, >> return; >> } >> >> - mlx5_core_err(dev, "start\n"); >> + if (!force) >> + mlx5_core_err(dev, "internal state error detected\n"); >> if (pci_channel_offline(dev->pdev) || in_fatal(dev) || force) { >> dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR; >> mlx5_trigger_cmd_completions(dev); >> } >> >> mlx5_core_event(dev, MLX5_DEV_EVENT_SYS_ERROR, 0); >> - mlx5_core_err(dev, "end\n"); >> + if (!force) >> + mlx5_core_err(dev, "system error event triggered\n"); >> >> unlock: >> mutex_unlock(&dev->intf_state_mutex); >> > From owner-svn-src-all@freebsd.org Sun Mar 25 16:36:40 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C6DB6F55FA1; Sun, 25 Mar 2018 16:36:40 +0000 (UTC) (envelope-from joerg@bec.de) Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [217.70.183.198]) (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 650086C6ED; Sun, 25 Mar 2018 16:36:40 +0000 (UTC) (envelope-from joerg@bec.de) X-Originating-IP: 93.205.161.31 Received: from britannica.bec.de (unknown [93.205.161.31]) (Authenticated sender: joerg@bec.de) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id D8AF7C000B; Sun, 25 Mar 2018 18:36:32 +0200 (CEST) Date: Sun, 25 Mar 2018 18:35:34 +0200 From: Joerg Sonnenberger To: rgrimes@freebsd.org Cc: Pedro Giffuni , Mark Peek , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci Message-ID: <20180325163534.GB23474@britannica.bec.de> References: <8dffed54-3319-d826-5ec1-fd80155a3921@FreeBSD.org> <201803251603.w2PG3KLQ041797@pdx.rh.CN85.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201803251603.w2PG3KLQ041797@pdx.rh.CN85.dnsmgr.net> User-Agent: Mutt/1.9.0 (2017-09-02) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 16:36:40 -0000 On Sun, Mar 25, 2018 at 09:03:20AM -0700, Rodney W. Grimes wrote: > Kirk would have to back me up on this, but my understanding of the > decisions that the UCB Regents legal staff came to was that each > file should have a complete copyright and license clause and any > thing less causes problems because of "seprability", and "alterability" > because of seperate files. Are you talking about a decision made before the USA joined the rest of the civilised world as signee of the Berne Convention? The copyright notice was certainly required at the time. A full license clause is nicer for "stealing" things, but certainly not required. Joerg From owner-svn-src-all@freebsd.org Sun Mar 25 16:40:09 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F72BF56453 for ; Sun, 25 Mar 2018 16:40:09 +0000 (UTC) (envelope-from mark@peek.org) Received: from mail-yb0-f173.google.com (mail-yb0-f173.google.com [209.85.213.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BEFD66C968 for ; Sun, 25 Mar 2018 16:40:08 +0000 (UTC) (envelope-from mark@peek.org) Received: by mail-yb0-f173.google.com with SMTP id i13-v6so5621374ybl.9 for ; Sun, 25 Mar 2018 09:40:08 -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:in-reply-to:references:from:date :message-id:subject:to:cc; bh=KQ7fvCEYpHcf6LcKNUlPotZ+MIG9omkqxvSFPPIQqzQ=; b=OI/Imqh3/aF2ziTce4xmlMhQS6ejmViEmADUazoPG68NWlhLx1U9Qq4EEU4QNc8WKG 44jGWTVpt+uuHJWiQwYomzvAs5dhBKg/7WItQcuLQ5INXgAnti6eVva5gyx130wUfRO2 wW7DUiOTpEppQc369pxVvS9f/6zXQBu2vUCkdhbileeKEYi6daJ8sQ1wgoYjIV3Rq2dl 88ElyVQ/G62W+/f9NA8L0eLINedSQa2n2hf9KJP1NDhIyITERZ6QGLugW3LoBlKDCnfc ymykSeC3gam4jkiTlFe/q4WSj9AYx7rFM1eay1hFGmD1qLqME+/1fglRSHrpCix8TKyZ 1FsA== X-Gm-Message-State: AElRT7FXfSPbCxJwRRwdca0nRzcbCj/uHiWMY9pTnEFepkU6FHTlGMNe 7hVZAWwoGXTnoQn75rb09AWnhAu9DZxg6Q== X-Google-Smtp-Source: AG47ELthqQp2YOifuwGcNe0ENtFFhOUEi8B69znVkfjTDTQ74bvqdqYZxENKTfxxt27SFO1iKn73bg== X-Received: by 2002:a25:cb0f:: with SMTP id b15-v6mr10278761ybg.499.1521994569174; Sun, 25 Mar 2018 09:16:09 -0700 (PDT) Received: from mail-yw0-f179.google.com (mail-yw0-f179.google.com. [209.85.161.179]) by smtp.gmail.com with ESMTPSA id e130sm5124596ywc.92.2018.03.25.09.16.08 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 25 Mar 2018 09:16:08 -0700 (PDT) Received: by mail-yw0-f179.google.com with SMTP id z82so5435569ywd.9 for ; Sun, 25 Mar 2018 09:16:08 -0700 (PDT) X-Received: by 10.129.69.31 with SMTP id s31mr12583715ywa.367.1521994568039; Sun, 25 Mar 2018 09:16:08 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:4206:0:0:0:0:0 with HTTP; Sun, 25 Mar 2018 09:16:07 -0700 (PDT) X-Originating-IP: [2601:646:c700:35ed:2193:d6c4:780d:4bcb] In-Reply-To: <201803251603.w2PG3KLQ041797@pdx.rh.CN85.dnsmgr.net> References: <8dffed54-3319-d826-5ec1-fd80155a3921@FreeBSD.org> <201803251603.w2PG3KLQ041797@pdx.rh.CN85.dnsmgr.net> From: Mark Peek Date: Sun, 25 Mar 2018 09:16:07 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci To: rgrimes@freebsd.org Cc: Pedro Giffuni , Mark Peek , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 16:40:09 -0000 On Sun, Mar 25, 2018 at 9:03 AM, Rodney W. Grimes < freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > > > > > On 25/03/2018 06:49, Rodney W. Grimes wrote: > > >> On Sat, Mar 24, 2018 at 6:27 PM, Rodney W. Grimes < > > >> freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > >> > > >>>> Author: mp > > >>>> Date: Sun Mar 25 00:57:00 2018 > > >>>> New Revision: 331510 > > >>>> URL: https://svnweb.freebsd.org/changeset/base/331510 > > >>> These files do not each contain a usable copyright, though > > >>> they seem to contain SPDX tags that indiate they should contain > > >>> a BSD 2 clause copyright. > > >> > > >> IANAL but I believe you meant "...they should contain a BSD 2 clause > > >> *license*". The files should contain a valid copyright. > > > A valid, but unusable. As the copyright is it is a full copyright > > > held by vmware without any rights to be published or redistributed > > > any any manner by anyone but vmware. > > > > > > "Copyright (c) 2018 VMware, Inc. All Rights Reserved." > > > > > > That is a restrictive copyright, allowing no one to publish, or > > > in our case, redistribute, without a further license of some form. > > > > > >> The intent of my commit and the author were to use the implied SPDX > version > > >> of the licenses without burdening the source code with the more > heavyweight > > >> license text. Having seen SPDX in the src tree, I believed > > >> the SPDX-License-Identifier was sufficient. But, to your point, I'm > not > > >> sure I have seen a discussion or a decision on it. > > > SPDX tags are purely to be treated as "advisory" and in no one imply > > > or create any license agreement. > > > > As happens in economics, different lawyers can have different > > interpretations. Our practices were consulted with the SPDX guys but > > other projects have different practices. > > > > While the sound practice, especially when you don't own the code, is to > > add the SPDX tag in addition to the license text, the linux developers > > are encouraging replacing it altogether with the SPDX tag. In their case > > they keep a reference to the complete license text elsewhere and they > > have some repository log where the copyright owner did the change. > > They have grown use to this from the way the GPL is handled, since > the length of the body of that license would be impractical to > include. > > > For contrib code we just follow upstream. In no case can anyone other > > than the copyright owner clarify, or otherwise change, a license. > > That does bring a question of why this code is not either on > a vendor import branch, or in contrib? > > Can you point to any files in /usr/src that lack a full and complete > standalone license? Sans perhaps some GPL code that has a pointer > to COPYING and files that can not such as Makefile and .mk's. > > Kirk would have to back me up on this, but my understanding of the > decisions that the UCB Regents legal staff came to was that each > file should have a complete copyright and license clause and any > thing less causes problems because of "seprability", and "alterability" > because of seperate files. > > The exception to this is files that can not be copyrighted such as > Makefiles, and I have seen those now with copyrights in them, > which is not enforceable as a Makefile is usually considered > a receipt. > > Was the discussion with Kirk and the USB regents done recently? In the context of SPDX? The main point is ensuring we know the copyright and license for any source file in our repository. The use of a SPDX identifier (along with a copyright statement is intended to give an immutable copy of the specific license without copying the entire license text into the source files. The issue isn't whether I will commit the entire dual license text as I can easily and will do that per your concerns. I'd prefer to see us allow SPDX only since it implies the same thing. Mark From owner-svn-src-all@freebsd.org Sun Mar 25 16:42:49 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1BE04F568BD; Sun, 25 Mar 2018 16:42:49 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 857FC6CCB9; Sun, 25 Mar 2018 16:42:48 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2PGgkbS041970; Sun, 25 Mar 2018 09:42:46 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2PGgkcx041969; Sun, 25 Mar 2018 09:42:46 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201803251642.w2PGgkcx041969@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci In-Reply-To: To: Mark Peek Date: Sun, 25 Mar 2018 09:42:46 -0700 (PDT) CC: rgrimes@freebsd.org, Pedro Giffuni , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 16:42:49 -0000 > On Sun, Mar 25, 2018 at 9:03 AM, Rodney W. Grimes < > freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > > > > > > > > > On 25/03/2018 06:49, Rodney W. Grimes wrote: > > > >> On Sat, Mar 24, 2018 at 6:27 PM, Rodney W. Grimes < > > > >> freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > > >> > > > >>>> Author: mp > > > >>>> Date: Sun Mar 25 00:57:00 2018 > > > >>>> New Revision: 331510 > > > >>>> URL: https://svnweb.freebsd.org/changeset/base/331510 > > > >>> These files do not each contain a usable copyright, though > > > >>> they seem to contain SPDX tags that indiate they should contain > > > >>> a BSD 2 clause copyright. > > > >> > > > >> IANAL but I believe you meant "...they should contain a BSD 2 clause > > > >> *license*". The files should contain a valid copyright. > > > > A valid, but unusable. As the copyright is it is a full copyright > > > > held by vmware without any rights to be published or redistributed > > > > any any manner by anyone but vmware. > > > > > > > > "Copyright (c) 2018 VMware, Inc. All Rights Reserved." > > > > > > > > That is a restrictive copyright, allowing no one to publish, or > > > > in our case, redistribute, without a further license of some form. > > > > > > > >> The intent of my commit and the author were to use the implied SPDX > > version > > > >> of the licenses without burdening the source code with the more > > heavyweight > > > >> license text. Having seen SPDX in the src tree, I believed > > > >> the SPDX-License-Identifier was sufficient. But, to your point, I'm > > not > > > >> sure I have seen a discussion or a decision on it. > > > > SPDX tags are purely to be treated as "advisory" and in no one imply > > > > or create any license agreement. > > > > > > As happens in economics, different lawyers can have different > > > interpretations. Our practices were consulted with the SPDX guys but > > > other projects have different practices. > > > > > > While the sound practice, especially when you don't own the code, is to > > > add the SPDX tag in addition to the license text, the linux developers > > > are encouraging replacing it altogether with the SPDX tag. In their case > > > they keep a reference to the complete license text elsewhere and they > > > have some repository log where the copyright owner did the change. > > > > They have grown use to this from the way the GPL is handled, since > > the length of the body of that license would be impractical to > > include. > > > > > For contrib code we just follow upstream. In no case can anyone other > > > than the copyright owner clarify, or otherwise change, a license. > > > > That does bring a question of why this code is not either on > > a vendor import branch, or in contrib? > > > > Can you point to any files in /usr/src that lack a full and complete > > standalone license? Sans perhaps some GPL code that has a pointer > > to COPYING and files that can not such as Makefile and .mk's. > > > > Kirk would have to back me up on this, but my understanding of the > > decisions that the UCB Regents legal staff came to was that each > > file should have a complete copyright and license clause and any > > thing less causes problems because of "seprability", and "alterability" > > because of seperate files. > > > > The exception to this is files that can not be copyrighted such as > > Makefiles, and I have seen those now with copyrights in them, > > which is not enforceable as a Makefile is usually considered > > a receipt. > > > > > Was the discussion with Kirk and the USB regents done recently? In the > context of SPDX? No, this discussion occured I believe near the time of Net/2, I believe it was Kirk who had the task of plaing the UCB 4 clause license in all the files. If you look around the whole of "free source code" (not open source, free as in BSD style licenses) that is coming out of sizeable entities who either can afford, or already have, legal staff no one that I have seen at any time in the last 25 years deviats from this behavior. I am actally rather suprized to see these files in the current form outside of VMWare without an embeded license clause. > The main point is ensuring we know the copyright and license for any source > file in our repository. The use of a SPDX identifier (along with a > copyright statement is > intended to give an immutable copy of the specific license without copying > the entire > license text into the source files. When the SPDX stuff was added, I raised some concerns, and was repeatedly told "these are just advisory anyway." So to now see them being used as "this IS the license" comes contrary to those assertions. > > The issue isn't whether I will commit the entire dual license text as I can > easily and will do > that per your concerns. I'd prefer to see us allow SPDX only since it > implies the same thing. Other than it has already been stated that the SPDX tags are purely advisory tags, and when I apply that principal to these file as they are now I have no valid license to use them. Nor does the Project or Foundation have any license to distribute them. If we try to say "well, these SPDX tags are 'the one truth', but these are 'simply advisory'" we would be going down a very slippery slope. Did VMWare provide the files with the dual license text in them? Or did they provide files with SPDX tags in them? Or ? Does VMWare have these files published some place, with terms of use and such? > Mark -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Mar 25 16:46:19 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9DFEAF56D34; Sun, 25 Mar 2018 16:46:19 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 27F8D6CFD7; Sun, 25 Mar 2018 16:46:18 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2PGkGql042005; Sun, 25 Mar 2018 09:46:16 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2PGkG3Z042004; Sun, 25 Mar 2018 09:46:16 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201803251646.w2PGkG3Z042004@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci In-Reply-To: <20180325163534.GB23474@britannica.bec.de> To: Joerg Sonnenberger Date: Sun, 25 Mar 2018 09:46:16 -0700 (PDT) CC: rgrimes@freebsd.org, Pedro Giffuni , Mark Peek , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 16:46:19 -0000 > On Sun, Mar 25, 2018 at 09:03:20AM -0700, Rodney W. Grimes wrote: > > Kirk would have to back me up on this, but my understanding of the > > decisions that the UCB Regents legal staff came to was that each > > file should have a complete copyright and license clause and any > > thing less causes problems because of "seprability", and "alterability" > > because of seperate files. > > Are you talking about a decision made before the USA joined the rest of > the civilised world as signee of the Berne Convention? > The copyright > notice was certainly required at the time. A full license clause is > nicer for "stealing" things, but certainly not required. With or without application of Berne Convention, without a license you (us, FreeBSD project, foundation) have no rights to publish (redistribute) the work, unless that copyright is a of the form that it would "placed in the public domain" the work. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Mar 25 16:56:11 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A29DF5796A for ; Sun, 25 Mar 2018 16:56:11 +0000 (UTC) (envelope-from joerg@bec.de) Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [217.70.183.201]) (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 2F0196D63E for ; Sun, 25 Mar 2018 16:56:11 +0000 (UTC) (envelope-from joerg@bec.de) X-Originating-IP: 93.205.161.31 Received: from britannica.bec.de (unknown [93.205.161.31]) (Authenticated sender: joerg@bec.de) by relay8-d.mail.gandi.net (Postfix) with ESMTPSA id 591E71BF210 for ; Sun, 25 Mar 2018 18:56:05 +0200 (CEST) Date: Sun, 25 Mar 2018 18:55:06 +0200 From: Joerg Sonnenberger To: svn-src-all@freebsd.org Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci Message-ID: <20180325165506.GA16840@britannica.bec.de> References: <20180325163534.GB23474@britannica.bec.de> <201803251646.w2PGkG3Z042004@pdx.rh.CN85.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201803251646.w2PGkG3Z042004@pdx.rh.CN85.dnsmgr.net> User-Agent: Mutt/1.9.0 (2017-09-02) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 16:56:11 -0000 On Sun, Mar 25, 2018 at 09:46:16AM -0700, Rodney W. Grimes wrote: > > On Sun, Mar 25, 2018 at 09:03:20AM -0700, Rodney W. Grimes wrote: > > > Kirk would have to back me up on this, but my understanding of the > > > decisions that the UCB Regents legal staff came to was that each > > > file should have a complete copyright and license clause and any > > > thing less causes problems because of "seprability", and "alterability" > > > because of seperate files. > > > > Are you talking about a decision made before the USA joined the rest of > > the civilised world as signee of the Berne Convention? > > The copyright > > notice was certainly required at the time. A full license clause is > > nicer for "stealing" things, but certainly not required. > > With or without application of Berne Convention, without a license > you (us, FreeBSD project, foundation) have no rights to publish > (redistribute) the work, unless that copyright is a of the form > that it would "placed in the public domain" the work. That doesn't mean that every file has to include such a license tag. Neither does it have to carry a copyright note nowadays, but that used to be different. Joerg From owner-svn-src-all@freebsd.org Sun Mar 25 16:56:50 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 33119F57A43; Sun, 25 Mar 2018 16:56:50 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D7CEE6D6A9; Sun, 25 Mar 2018 16:56:49 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D2C5A20C33; Sun, 25 Mar 2018 16:56:49 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2PGun5L061279; Sun, 25 Mar 2018 16:56:49 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2PGunC0061278; Sun, 25 Mar 2018 16:56:49 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201803251656.w2PGunC0061278@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sun, 25 Mar 2018 16:56:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331532 - head/sys/crypto/ccp X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/crypto/ccp X-SVN-Commit-Revision: 331532 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 16:56:50 -0000 Author: imp Date: Sun Mar 25 16:56:49 2018 New Revision: 331532 URL: https://svnweb.freebsd.org/changeset/base/331532 Log: The PNP info has to follow the module definition. Move it from just after the array to its proper location. Otherwise, the linker.hints file has things out of order and we associated it with whatever was the previous module. Modified: head/sys/crypto/ccp/ccp.c Modified: head/sys/crypto/ccp/ccp.c ============================================================================== --- head/sys/crypto/ccp/ccp.c Sun Mar 25 08:55:53 2018 (r331531) +++ head/sys/crypto/ccp/ccp.c Sun Mar 25 16:56:49 2018 (r331532) @@ -79,8 +79,6 @@ static struct pciid { { 0x14561022, "AMD CCP-5a" }, { 0x14681022, "AMD CCP-5b" }, }; -MODULE_PNP_INFO("W32:vendor/device", pci, ccp, ccp_ids, sizeof(ccp_ids[0]), - nitems(ccp_ids)); static struct random_source random_ccp = { .rs_ident = "AMD CCP TRNG", @@ -783,6 +781,8 @@ DRIVER_MODULE(ccp, pci, ccp_driver, ccp_devclass, NULL MODULE_VERSION(ccp, 1); MODULE_DEPEND(ccp, crypto, 1, 1, 1); MODULE_DEPEND(ccp, random_device, 1, 1, 1); +MODULE_PNP_INFO("W32:vendor/device", pci, ccp, ccp_ids, sizeof(ccp_ids[0]), + nitems(ccp_ids)); static int ccp_queue_reserve_space(struct ccp_queue *qp, unsigned n, int mflags) From owner-svn-src-all@freebsd.org Sun Mar 25 16:57:22 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DC56FF57B54; Sun, 25 Mar 2018 16:57:21 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8A16C6D802; Sun, 25 Mar 2018 16:57:21 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8390120C34; Sun, 25 Mar 2018 16:57:21 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2PGvLjS061347; Sun, 25 Mar 2018 16:57:21 GMT (envelope-from eadler@FreeBSD.org) Received: (from eadler@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2PGvLSq061346; Sun, 25 Mar 2018 16:57:21 GMT (envelope-from eadler@FreeBSD.org) Message-Id: <201803251657.w2PGvLSq061346@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eadler set sender to eadler@FreeBSD.org using -f From: Eitan Adler Date: Sun, 25 Mar 2018 16:57:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331533 - head/share/misc X-SVN-Group: head X-SVN-Commit-Author: eadler X-SVN-Commit-Paths: head/share/misc X-SVN-Commit-Revision: 331533 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 16:57:22 -0000 Author: eadler Date: Sun Mar 25 16:57:21 2018 New Revision: 331533 URL: https://svnweb.freebsd.org/changeset/base/331533 Log: [pci-vendors] Update to 2018-03-21 MFC After: 3 days Modified: head/share/misc/pci_vendors Modified: head/share/misc/pci_vendors ============================================================================== --- head/share/misc/pci_vendors Sun Mar 25 16:56:49 2018 (r331532) +++ head/share/misc/pci_vendors Sun Mar 25 16:57:21 2018 (r331533) @@ -1,10 +1,9 @@ # $FreeBSD$ -# # List of PCI ID's # -# Version: 2018.03.06 -# Date: 2018-03-06 03:15:02 +# Version: 2018.03.21 +# Date: 2018-03-21 03:15:01 # # Maintained by Albert Pool, Martin Mares, and other volunteers from # the PCI ID Project at http://pci-ids.ucw.cz/. @@ -6393,6 +6392,7 @@ 1077 000b 25GE 2P QL41262HxCU-DE Adapter 1077 0011 FastLinQ QL41212H 25GbE Adapter 1077 0012 FastLinQ QL41112H 10GbE Adapter + 1077 0039 QLogic QL41262 PCIe 25Gb 2-Port SFP28 Ethernet Adapter 1590 021d 10/25GbE 2P QL41222HLCU-HP Adapter 1590 021e 10/25GbE 2P QL41162HMRJ-HP Adapter 1590 021f 10/25GbE 2P QL41262HMCU-HP Adapter @@ -8334,8 +8334,10 @@ 0100 Lightning 1200 10dd 0023 Lightning 1200 15+16M 10de NVIDIA Corporation - 0008 NV1 [EDGE 3D] - 0009 NV1 [EDGE 3D] + 0008 NV1 [STG2000X-B Series] + 0009 NV1 [NV1 Series] + 0018 NV3 [Riva 128] + 0019 NV3 [Riva 128ZX] 0020 NV4 [Riva TNT] 1043 0200 V3400 TNT 1048 0c18 Erazor II SGRAM @@ -8706,12 +8708,12 @@ 00f9 NV40 [GeForce 6800 GT/GTO/Ultra] 10de 00f9 NV40 [GeForce 6800 GT] 1682 2120 GEFORCE 6800 GT PCI-E - 00fa NV36 [GeForce PCX 5750] - 00fb NV38 [GeForce PCX 5900] + 00fa NV39 [GeForce PCX 5750] + 00fb NV35 [GeForce PCX 5900] 00fc NV37GL [Quadro FX 330/GeForce PCX 5300] 00fd NV37GL [Quadro PCI-E Series] 00fe NV38GL [Quadro FX 1300] - 00ff NV18 [GeForce PCX 4300] + 00ff NV19 [GeForce PCX 4300] 0100 NV10 [GeForce 256 SDR] 1043 0200 AGP-V6600 SGRAM 1043 0201 AGP-V6600 SDRAM @@ -11072,7 +11074,7 @@ 1b80 GP104 [GeForce GTX 1080] 1b81 GP104 [GeForce GTX 1070] 1b82 GP104 [GeForce GTX 1070 Ti] - 1b83 GP104 + 1b83 GP104 [GeForce GTX 1060 6GB] 1b84 GP104 [GeForce GTX 1060 3GB] 1b87 GP104 [P104-100] 1ba0 GP104M [GeForce GTX 1080 Mobile] @@ -13398,6 +13400,8 @@ 1170 Inventec Corporation 1171 Loughborough Sound Images Plc 1172 Altera Corporation + 00a7 Stratix V + 0530 Stratix IV 1173 Adobe Systems, Inc 1174 Bridgeport Machines 1175 Mitron Computer Inc. @@ -15569,6 +15573,9 @@ 5163 RealSSD P425m 5180 9100 PRO NVMe SSD 5181 9100 MAX NVMe SSD + 5190 9200 ECO NVMe SSD + 5191 9200 PRO NVMe SSD + 5192 9200 MAX NVMe SSD 1345 Arescom Inc 1347 Odetics 1349 Sumitomo Electric Industries, Ltd. @@ -17068,7 +17075,7 @@ 1028 1fc1 Express Flash NVMe PM1725 800GB SFF 1028 1fc2 Express Flash NVMe PM1725 1.6TB SFF 1028 1fc4 Express Flash NVMe PM1725 1.6TB AIC - a822 NVMe SSD Controller 172Xa + a822 NVMe SSD Controller 172Xa/172Xb 1014 0621 PCIe3 1.6TB NVMe Flash Adapter II x8 1014 0622 PCIe3 3.2TB NVMe Flash Adapter II x8 1014 0629 PCIe3 6.4TB NVMe Flash Adapter II x8 @@ -17079,6 +17086,14 @@ 1028 1fdd Express Flash PM1725a 1.6TB AIC 1028 1fde Express Flash PM1725a 3.2TB AIC 1028 1fdf Express Flash PM1725a 6.4TB AIC + 1028 1ff3 Express Flash PM1725b 1.6TB SFF + 1028 1ff4 Express Flash PM1725b 3.2TB SFF + 1028 1ff5 Express Flash PM1725b 6.4TB SFF + 1028 1ff6 Express Flash PM1725b 12.8TB SFF + 1028 1ff7 Express Flash PM1725b 1.6TB AIC + 1028 1ff8 Express Flash PM1725b 3.2TB AIC + 1028 1ff9 Express Flash PM1725b 6.4TB AIC + 1028 1ffa Express Flash PM1725b 12.8TB AIC 144e OLITEC 144f Askey Computer Corp. 1450 Octave Communications Ind. @@ -19921,6 +19936,7 @@ 1914 VirtexUS ASIC Emulation Board [DNVUF2A] 1915 Arria10 PCIe MainRef Design [DNPCIe_80G_A10_LL] 1916 VirtexUS PCIe Accelerator Board [DNVUF2_HPC_PCIe] + 1917 UltrascalePlus PCIe Accelerator Board [DNPCIe_400G_VU_LL] 1a00 Virtex6 PCIe DMA Netlist Design 1a01 Virtex6 PCIe Darklite Design [DNPCIe_HXT_10G_LL] 1a02 Virtex7 PCIe DMA Netlist Design @@ -19931,6 +19947,7 @@ 1a08 KintexUS PCIe Darklite Design [DNPCIe_40G_KU_LL_QSFP] 1a09 Arria10 PCIe Darklite Design [DNPCIe_80G_A10_LL] 1a0a VirtexUS PCIe Darklite Design [DNVUF2_HPC_PCIe] + 1a0b UltrascalePlus PCIe Darklite Design [DNPCIe_400G_VU_LL] 17e4 Sectra AB 0001 KK671 Cardbus encryption board 0002 KK672 Cardbus encryption board @@ -20786,7 +20803,7 @@ 2010 PCI-Express EVR # PC-260-101-03 2020 PGP-GEN3 PCIe - 2030 data_dev + 2030 AXI Stream DAQ PCIe card 1a51 Hectronic AB 1a55 Rohde & Schwarz DVS GmbH 0010 SDStationOEM @@ -20946,6 +20963,7 @@ 1849 1080 Motherboard 1142 ASM1042A USB 3.0 Host Controller 1242 ASM1142 USB 3.1 Host Controller + 1343 ASM1143 USB 3.1 Host Controller 1b2c Opal-RT Technologies Inc. 1b36 Red Hat, Inc. 0001 QEMU PCI-PCI bridge @@ -21031,8 +21049,8 @@ # 2xHDMI and 2xHD-SDI inputs e5f4 MPEG2 and H264 Encoder-Transcoder f1c4 Dual ASI-RX/TX-CI card -1b66 Deltacast - 0007 Delta-3G-elp-11 SDI I/O Board +1b66 DELTACAST + 0007 DELTA-3G-elp-d 1b6f Etron Technology, Inc. 7023 EJ168 USB 3.0 Host Controller 7052 EJ188/EJ198 USB 3.0 Host Controller @@ -23919,6 +23937,7 @@ 1563 Ethernet Controller 10G X550T 1028 1fa8 Ethernet 10G 4P X550/I350 rNDC 1028 1fa9 Ethernet 10G 4P X550 rNDC + 1170 0001 Intel Ethernet Controller X550-T2 OCP card 14c0 1201 X550 10Gb 2P RJ45 OCP Mezz 1590 00d1 Ethernet 10Gb 2-port 562T Adapter 1590 00d2 Ethernet 10Gb 2-port 562FLR-T Adapter @@ -29137,6 +29156,7 @@ a2ed 200 Series PCH PCI Express Root Port #23 a2ee 200 Series PCH PCI Express Root Port #24 a2f0 200 Series PCH HD Audio + a370 Wireless-AC 9560 [Jefferson Peak] a620 6400/6402 Advanced Memory Buffer (AMB) abc0 Omni-Path Fabric Switch Silicon 100 Series b152 21152 PCI-to-PCI Bridge From owner-svn-src-all@freebsd.org Sun Mar 25 17:00:19 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C05D0F59115 for ; Sun, 25 Mar 2018 17:00:19 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery6.ore.mailhop.org (pmta2.delivery6.ore.mailhop.org [54.200.129.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4E4AF6DBE2 for ; Sun, 25 Mar 2018 17:00:18 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: d67c3236-304d-11e8-b951-f99fef315fd9 X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [67.177.211.60]) by outbound2.ore.mailhop.org (Halon) with ESMTPSA id d67c3236-304d-11e8-b951-f99fef315fd9; Sun, 25 Mar 2018 16:59:10 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id w2PH0GoE055165; Sun, 25 Mar 2018 11:00:16 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1521997216.49673.2.camel@freebsd.org> Subject: Re: svn commit: r331532 - head/sys/crypto/ccp From: Ian Lepore To: Warner Losh , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Sun, 25 Mar 2018 11:00:16 -0600 In-Reply-To: <201803251656.w2PGunC0061278@repo.freebsd.org> References: <201803251656.w2PGunC0061278@repo.freebsd.org> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 17:00:19 -0000 On Sun, 2018-03-25 at 16:56 +0000, Warner Losh wrote: > Author: imp > Date: Sun Mar 25 16:56:49 2018 > New Revision: 331532 > URL: https://svnweb.freebsd.org/changeset/base/331532 > > Log: > The PNP info has to follow the module definition. Move it from just > after the array to its proper location. Otherwise, the linker.hints > file has things out of order and we associated it with whatever was > the previous module. Wow, that seems like a subtle thing that'll be easy to get wrong and hard to detect when you have. Would it be possible for the PNP macro to have some kind of reference to the structures generated by the module definition macro, to force a compile-time error if they're out of order? -- Ian From owner-svn-src-all@freebsd.org Sun Mar 25 17:12:10 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9AEB9F5A213; Sun, 25 Mar 2018 17:12:10 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 505B46E6B2; Sun, 25 Mar 2018 17:12:10 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4AD1B20E7F; Sun, 25 Mar 2018 17:12:10 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2PHCAKP071832; Sun, 25 Mar 2018 17:12:10 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2PHCAf7071831; Sun, 25 Mar 2018 17:12:10 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201803251712.w2PHCAf7071831@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Sun, 25 Mar 2018 17:12:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331534 - head/share/man/man9 X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/share/man/man9 X-SVN-Commit-Revision: 331534 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 17:12:10 -0000 Author: imp Date: Sun Mar 25 17:12:09 2018 New Revision: 331534 URL: https://svnweb.freebsd.org/changeset/base/331534 Log: Note that MODULE_PNP_INFO has to come after a DRIVER_MODULE. Modified: head/share/man/man9/MODULE_PNP_INFO.9 Modified: head/share/man/man9/MODULE_PNP_INFO.9 ============================================================================== --- head/share/man/man9/MODULE_PNP_INFO.9 Sun Mar 25 16:57:21 2018 (r331533) +++ head/share/man/man9/MODULE_PNP_INFO.9 Sun Mar 25 17:12:09 2018 (r331534) @@ -49,6 +49,9 @@ macro registers a .Fa table of device-identifying data for use by .Xr devmatch 8 . +Since it is built off module marking macros, it must follow a +.Xr DRIVER_MODULE 9 +line. .Pp The macro takes a .Fa descriptor_string @@ -164,6 +167,7 @@ static struct my_pciids { { 0x12345678, "Foo bar" }, { 0x9abcdef0, "Baz fizz" }, }; + MODULE_PNP_INFO("W32:vendor/device", pci, my_driver, my_ids, sizeof(my_ids[0]), nitems(my_ids)); .Ed @@ -176,7 +180,7 @@ MODULE_PNP_INFO("W32:vendor/device", pci, my_driver, m The macro .Nm appeared in -.Fx 12.0 . +.Fx 11.0 . .Sh AUTHORS The PNP framework and .Xr devmatch 8 From owner-svn-src-all@freebsd.org Sun Mar 25 17:19:45 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4ABEF5ACFD for ; Sun, 25 Mar 2018 17:19:45 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-io0-x22d.google.com (mail-io0-x22d.google.com [IPv6:2607:f8b0:4001:c06::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2DE3B6EB31 for ; Sun, 25 Mar 2018 17:19:45 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-io0-x22d.google.com with SMTP id m83so20507054ioi.8 for ; Sun, 25 Mar 2018 10:19:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=wIFHXIas1Gipb1YlJk9CY9ThSKSF8La4i7C1Y1OFtzs=; b=xL73cLpUIIivt3iqciw7fbV/LFZjREZqusZ+eT3frkPEU5N7TdMuV0raABEJy0fsLl uXsqN4UTTcocAjLn9rbLFLIUvmAKQjhA8uGBZNxVkj1LfxrcBOqmm4dHw4T+sWEihJu5 zMZUwL4EktQd47jWx8H7x6NZ2A3QGyYOZdmR8tEh9K4MVLYl+d/hH7Flv1Yz8pDn/tcE xuJlHLU0fcxw4czxSqj9jnsR/8d1jAi2/OdtEAqR+Y95jeY0yBofsQViCEZPGY7OyAWd wL/D8HG01OrhjbOJcs9Ib4OTWuqxnkXbBz7rbczP/xFOE4oFVGB+oTLatlq11djwPE6d yoLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=wIFHXIas1Gipb1YlJk9CY9ThSKSF8La4i7C1Y1OFtzs=; b=XJaxaFe+VFExL3BxDJ6bOVMZglJXCyJ5OaB/q3h/1WN6ZBWvU2PcSlewXD5KtCZFch hTPk3gxnap0W1ogQzHbyuO77w+luZ0F/6/d2abIVtXY17BnoZkfbyD6ZFNpLK5hlzKXD xhXUhgrhAVnS73guTgN8xDedB1GvVSB7aSRwAJJGMU0M9lL92HZ5bnYQ3kQyJPMIuHob iL5l7nqX02CUTIevYGT8sltHNN6kJ2p2fTViqGv/WR9jVYpxe93B008jeBama0i2LTC6 iSz+TvmmoQFlqdBQdKU2Jw9kWN8KCOSDJpBHWg0+IxJpmsvzKLFQA91Eg0I6p8g8jHYU AhhA== X-Gm-Message-State: AElRT7GMC6vvHA0CkPMW/vDFeI8jhD6o/U3oSIlNYYewNHcLffyFJyTE A096bVoCFMgwZrvfT/KXKr+Js8Zc1ogOdr/y7WzPrQ== X-Google-Smtp-Source: AG47ELsgPs5aVNoiVQNtN9Flia2chyknBnnYJHYUPULdZhRIldeGDtyiE5tcLuoDjT/fuHD+LWxPwWTIwz1w1y9wNzg= X-Received: by 10.107.58.134 with SMTP id h128mr36501893ioa.299.1521998384360; Sun, 25 Mar 2018 10:19:44 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 10.79.203.196 with HTTP; Sun, 25 Mar 2018 10:19:43 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: <201803251646.w2PGkG3Z042004@pdx.rh.CN85.dnsmgr.net> References: <20180325163534.GB23474@britannica.bec.de> <201803251646.w2PGkG3Z042004@pdx.rh.CN85.dnsmgr.net> From: Warner Losh Date: Sun, 25 Mar 2018 11:19:43 -0600 X-Google-Sender-Auth: 2qujWIlKu-DzWiQA8nG1MGskKFg Message-ID: Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci To: "Rodney W. Grimes" Cc: Joerg Sonnenberger , Pedro Giffuni , Mark Peek , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 17:19:46 -0000 On Sun, Mar 25, 2018 at 10:46 AM, Rodney W. Grimes < freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > On Sun, Mar 25, 2018 at 09:03:20AM -0700, Rodney W. Grimes wrote: > > > Kirk would have to back me up on this, but my understanding of the > > > decisions that the UCB Regents legal staff came to was that each > > > file should have a complete copyright and license clause and any > > > thing less causes problems because of "seprability", and "alterability" > > > because of seperate files. > > > > Are you talking about a decision made before the USA joined the rest of > > the civilised world as signee of the Berne Convention? > > The copyright > > notice was certainly required at the time. A full license clause is > > nicer for "stealing" things, but certainly not required. > > With or without application of Berne Convention, without a license > you (us, FreeBSD project, foundation) have no rights to publish > (redistribute) the work, unless that copyright is a of the form > that it would "placed in the public domain" the work. > True. However, not relevant: we have a license here. The code tells us what it is. This is no different than commercial code that says something like "Copyright Sun, use governed by source license agreement" or Copyright Digital... Reference "/usr/src/COPYRIGHT" for applicable restrictions." or similar things that have been done. There's absolutely zero problem with indirection to a neutral third party that retains a copy of the license either. I reviewed the code before Mark committed it. The copyright notice and license SPDX entries were totally legit and completely sufficient. While other entries in the tree have both, so the SPDX is not controlling, in this case there's just the pointer and that's legally defensible. Until we get a qualified legal opinion to the contrary, we should just drop it. Warner From owner-svn-src-all@freebsd.org Sun Mar 25 17:24:44 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D5B5F5B51A for ; Sun, 25 Mar 2018 17:24:44 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-io0-x235.google.com (mail-io0-x235.google.com [IPv6:2607:f8b0:4001:c06::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DCC086F1EB for ; Sun, 25 Mar 2018 17:24:43 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-io0-x235.google.com with SMTP id v13so20511409iob.6 for ; Sun, 25 Mar 2018 10:24:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=NnkhenFs0qR55nb23IGFVy5PF2zKxc2yOB86fKsl/zU=; b=p4S8EFuZF/oRnxRj0zWVgcLuAkMq8MS1ep0Gov9o2q4HrM7STXip389Joie3nmugJb VRTExCfbyScsmMGgjJIl1AfMjheONSQ48gZDx3bjnU3+jNs+4NcPruis1gPC/eRKsqGI 6Bw+GWF2Jj2bVlsG5iwqVbP5TN89wY8o7RtpdVVWBD78o97rATgzyA0g343kN/cdtF9j h80ujWaWgCOJoMK0I/3fXaQJrF7CMyCuJTnayAAgklexSp8cEYxPC5nX56n/fTUduZuv jzAZXxLKeu0e36R8AnjJwABQf5aZ3q7SCKok5lMzjAGZsK5lEO9bIVh0nvk8ilABCwm+ GcBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=NnkhenFs0qR55nb23IGFVy5PF2zKxc2yOB86fKsl/zU=; b=ZAJstySfOvloj9seNeaDptP3s7+3AsE4YkZV7wCdBZ0dPASq96B7rwSzvehksSDYdW 6Ww5iFO70iASQnGnxeBls4ioKW+o192klMCkyUKP9PsO02qWFxl+crDFn7/ocT2A3bfG mfGFrEpBpeZHdG7tJFhvHcmI0euEdwCSXAMv3w5QrXmQFgKbA5UgiGcM0JGeU9e1hpEW BVjOL/Qg9895NGaJQD1s5ya9yTbQx91elXuIyw5GJpQn0MuR6GGt3VnDL2dhYeQ2J2eW mVZ9UT1hwNsT7k8YgOXb3qCNMwbtTbd9UWF9oVCSPTyf2pIIOAtJguIDW2z5mLIh4FMk sohA== X-Gm-Message-State: AElRT7HI8D7tfFP/FjcVl/3XmCAmVJfpqNc5ZvY2lhY0EHbdAvytDEOg 2CQ7TFURx2oV21qq7q2wKQ2GQbVuMJAX6ygb0T3NFg== X-Google-Smtp-Source: AG47ELtc8LeM/3YeYkIor57ZYh5DYj/XBM06rZs55/GgpTvF8kNtt3mAJ2frtNs3L7Lt610ueg2z0QHQ7kfaHuW2B4w= X-Received: by 10.107.12.230 with SMTP id 99mr36316538iom.117.1521998683312; Sun, 25 Mar 2018 10:24:43 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 10.79.203.196 with HTTP; Sun, 25 Mar 2018 10:24:42 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: <201803251642.w2PGgkcx041969@pdx.rh.CN85.dnsmgr.net> References: <201803251642.w2PGgkcx041969@pdx.rh.CN85.dnsmgr.net> From: Warner Losh Date: Sun, 25 Mar 2018 11:24:42 -0600 X-Google-Sender-Auth: Dvm-917NdlAmTS-GN8iQjM6tkIk Message-ID: Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci To: "Rodney W. Grimes" Cc: Mark Peek , Pedro Giffuni , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 17:24:44 -0000 On Sun, Mar 25, 2018 at 10:42 AM, Rodney W. Grimes < freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > Did VMWare provide the files with the dual license text in them? > Or did they provide files with SPDX tags in them? > Or ? > Does VMWare have these files published some place, with terms of > use and such? VMWare provided the files exactly as Mark committed them. They were provided by someone from VMware to our code review system. The SPDX stuff is fine. there's nothing to get upset out here: they are just as much a legal license as if the license had been included inline. It's widespread practice in the industry dating back to the 80's when DEC had an indirection notice in their Ultrix source code. In fact, you can find examples of that going back to the early 70's, though we were under a different copyright regime. Warner From owner-svn-src-all@freebsd.org Sun Mar 25 17:31:06 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BD80CF5BEC1 for ; Sun, 25 Mar 2018 17:31:06 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x236.google.com (mail-it0-x236.google.com [IPv6:2607:f8b0:4001:c0b::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E2DB36F5D7 for ; Sun, 25 Mar 2018 17:31:05 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x236.google.com with SMTP id c1-v6so8020985itj.1 for ; Sun, 25 Mar 2018 10:31:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=0higJyM+KY3i8lfsdrQfPLobsEwQGk39B9yY6Sbv3pQ=; b=N1bLzgSjl7nS8T8yUZHmJwc+izM5HNFwbIcwkF7UFMkWoz8fNzu2BK5wa7x0Q7/Pow BfejXi4arirW6COMEdsSSNkm/iHldd6e+G+NJWmliggyaQR1gv/ltmGfkxf/TskGM6sS ph7QfdC7JAn633EFqC3TsjVobfk5AptslFn2KXKa3/dmescxy43r3/dzcn0mj9xkPBn4 7kNB4gGkaUEoNELa27ZCrQAACr1z4MEbLM0aKiCQwcx6zXqvYSUJYPSGWRDduM5LRwhM v/YjhGjbwPFC3nnEensiMZh4MVs1as8Np+hDxDywkmnu2g43qYyWkkKq+WyvPDVMK1yk LDEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=0higJyM+KY3i8lfsdrQfPLobsEwQGk39B9yY6Sbv3pQ=; b=g3X2Y8dR6YmQOAF8+fXq1WwZNsCPL//+qwIOHGEuHeTUo6id+Tuw47pgEZp9dtKqy0 Le26AnfHXWdCexlePlRZ2q8s4zPh6Dk1sZDLclkBLj7jtaCKAiGZKKLm0k5CQzuKLZSC w+72Hxp26BliXKyMV2a8dfngwnLCAka/aSAjDRtjV1UtoLVftDAYXgM5q0fcFlbQgFKd E8/Z2KMdwxMZsQt5l0MiapNQ2LVyHB+cPURI+G7r4jveEtQItc8q8tDY2GXO98pUNuKe zZ9areUZQmv0AokEGmexuccGMLHPBBzOAgvUrEruDxj8De+3jb6Iwvdlq+2h5OfWgmzP VY+g== X-Gm-Message-State: AElRT7EiGvqGkgmEmFiRToTCBS1dJ3lOuTX6PD99mftvWkxDL7gqloJG wvXAPPVPyOuWAWBzhRefXlfbHKIYiskBwqCNGHJRkQ== X-Google-Smtp-Source: AIpwx49rXgMCxcsYYccoxAsAxMsLzve/LE4s1DmzGZjQvxgQUoaKiMA/a8tUrNlzoTU9rgl7UlgqXeNQdrT3ojdJwV4= X-Received: by 2002:a24:6f04:: with SMTP id x4-v6mr4558272itb.51.1521999065256; Sun, 25 Mar 2018 10:31:05 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 10.79.203.196 with HTTP; Sun, 25 Mar 2018 10:31:04 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: <1521997216.49673.2.camel@freebsd.org> References: <201803251656.w2PGunC0061278@repo.freebsd.org> <1521997216.49673.2.camel@freebsd.org> From: Warner Losh Date: Sun, 25 Mar 2018 11:31:04 -0600 X-Google-Sender-Auth: C7HulPBxgUBgxkOgBV0BXqCyymA Message-ID: Subject: Re: svn commit: r331532 - head/sys/crypto/ccp To: Ian Lepore Cc: Warner Losh , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 17:31:07 -0000 On Sun, Mar 25, 2018 at 11:00 AM, Ian Lepore wrote: > On Sun, 2018-03-25 at 16:56 +0000, Warner Losh wrote: > > Author: imp > > Date: Sun Mar 25 16:56:49 2018 > > New Revision: 331532 > > URL: https://svnweb.freebsd.org/changeset/base/331532 > > > > Log: > > The PNP info has to follow the module definition. Move it from just > > after the array to its proper location. Otherwise, the linker.hints > > file has things out of order and we associated it with whatever was > > the previous module. > > Wow, that seems like a subtle thing that'll be easy to get wrong and > hard to detect when you have. Would it be possible for the PNP macro > to have some kind of reference to the structures generated by the > module definition macro, to force a compile-time error if they're out > of order? > Yes. I'm working on the best way to enforce it. The easy way is in kldxref, but I'm pondering ways to do it at compile time. Warner From owner-svn-src-all@freebsd.org Sun Mar 25 17:42:52 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B49A9F5CF87 for ; Sun, 25 Mar 2018 17:42:52 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-io0-x22c.google.com (mail-io0-x22c.google.com [IPv6:2607:f8b0:4001:c06::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 474B770032 for ; Sun, 25 Mar 2018 17:42:52 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-io0-x22c.google.com with SMTP id 141so20540618iou.12 for ; Sun, 25 Mar 2018 10:42:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=SRhWUf/GVdm4T+xjueHbq2fYLu5MOrpT/rP2MOyZmDc=; b=h1dG/tEoLJTblHU2p/KfP5tX5tjjYZYzzZywVrD9rYgoG4MWeaxnam4lX2eBBvtDUx ZYGUhpihA9wIC5WN2BpxtquJGMsqKDjGsh+OMdPl7WNFJSERhBBcQqVx0p8PBYrzqxAW jWNmSxN2oEm2vIkE3gG1kASw8S4REHsSw5A8ypkc9/e5GrL6r/8HAWO6g1D93OiHWkEK alcse/J0j9y12OEulIDg9Y4nw0EIrY2aofa2U3nYBHjAZ7wCkRDE5+TZzN86qoJhxp69 +CKU60OFXvv689FmRzRlZogDd19xXZ8YxcSDyJJonxCnXZQ5I0ZIcBOSZPGK/n2QvJd4 YKPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=SRhWUf/GVdm4T+xjueHbq2fYLu5MOrpT/rP2MOyZmDc=; b=pnSxfgyD364vyGC2vFhCYbYY8oQc7cGwpivresRSv6fM3ssN69Ak+wpdfUbBY91G+R BkcWDhrbThn2Gd/2cZTFIrIJKRNK7qKIrY7u6HbAxyj3mIjtqePmaVMZ7UNPj2Nr8wdy IIdbNp3EjrQ0RKO/ctKuKuUXmGH+PW38ReIjSaufiX7Pc/EXixvCMdHWqt9l4XFoOHxw KZLavbV5f/jO2ukCMyCyKVwInveDRc0ii6WSohGpIx9FC8V/Yvz/5e1Vvn89MKiY5J/K H+oDfHCAhZ/B46jGbUo7KkLyMwp7IfKLV4ttktZ1Pt+waTtP/r/BFll5aHA8qWssjani mP1Q== X-Gm-Message-State: AElRT7FbI2BcZQav/foWMtRkpfJ6hTa8AUSREhpReHs424i+2d2pVCh1 /uCwUcWpb6XI8m7wVkzth/55mSN8ve7Sq61XW2tyWw== X-Google-Smtp-Source: AG47ELvRCganQ+Yj7wTknsRx/2+ZvwfUSoPLMk+jecjCxstPVsy798HQFQyz+cOzFlWm9HGRouFGoilVQ/0V7HbRptQ= X-Received: by 10.107.162.146 with SMTP id l140mr32542849ioe.39.1521999771543; Sun, 25 Mar 2018 10:42:51 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 10.79.203.196 with HTTP; Sun, 25 Mar 2018 10:42:50 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: <20180325163534.GB23474@britannica.bec.de> References: <8dffed54-3319-d826-5ec1-fd80155a3921@FreeBSD.org> <201803251603.w2PG3KLQ041797@pdx.rh.CN85.dnsmgr.net> <20180325163534.GB23474@britannica.bec.de> From: Warner Losh Date: Sun, 25 Mar 2018 11:42:50 -0600 X-Google-Sender-Auth: LrdHTSOLowqxQldyfYyS3ph6sD0 Message-ID: Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci To: Joerg Sonnenberger Cc: "Rodney W. Grimes" , Pedro Giffuni , Mark Peek , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 17:42:52 -0000 On Sun, Mar 25, 2018 at 10:35 AM, Joerg Sonnenberger wrote: > On Sun, Mar 25, 2018 at 09:03:20AM -0700, Rodney W. Grimes wrote: > > Kirk would have to back me up on this, but my understanding of the > > decisions that the UCB Regents legal staff came to was that each > > file should have a complete copyright and license clause and any > > thing less causes problems because of "seprability", and "alterability" > > because of seperate files. > > Are you talking about a decision made before the USA joined the rest of > the civilised world as signee of the Berne Convention? The copyright > notice was certainly required at the time. A full license clause is > nicer for "stealing" things, but certainly not required. > BSD 2.11 has an indirection notice: * Copyright (c) 1986 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. for example. 4.1 and 4.2 didn't have license notices added. 4.3 had something similar to BSD 2.11's notices. NET/2 is where they were added inline, and is the first place I can find additions to the license that talk about 'this software was contributed by XXX under contract to YYYY' and variations of the BSD license appear. 4.4 take this to a new level. So this isn't the Berne Convention thing, but rather a conscious decision at Berkeley to do something different, I think because they were starting to get / include software that wasn't under the exact BSD license, but some variant or something different that was compatible with it, so they needed to mark each file. However, the SPDX accomplishes that task in a format that properly separates out the copyright notice from the licensing notice. So I see nothing fundamentally wrong with this approach, and requiring copies of a license that buys us nothing just creates friction for external contributors that make them less willing to contribute without buying us any additional benefit. Warner From owner-svn-src-all@freebsd.org Sun Mar 25 17:44:40 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 179B4F5D243 for ; Sun, 25 Mar 2018 17:44:40 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from sonic303-17.consmr.mail.bf2.yahoo.com (sonic303-17.consmr.mail.bf2.yahoo.com [74.6.131.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AED327023D for ; Sun, 25 Mar 2018 17:44:39 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1521999879; bh=Xatf63oPMOQtxJrubAJzxRNGY6LYcJn7ck/vyzBqaYI=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From:Subject; b=XZ29d/RQGDw/ZN0hqVStDC28oHKYXWWRWS8f6pO4jfTLvBXgj7eFOWiTxjznUlLYo36qmT9aE4h1vD3cD5V127AEVd0jCWyhSoda7VB1hkilwZ6I16XGJKnJaeVEZlI68jMMIqR56iKjQpcRk++RIYfmYaiWia+VrAIo8E2E0AqgJbVubnN4Lz9e7IWeBcj5BIhnyo8mEXP9eBc4bERCkHefPKWJVPtGiGIO3/80Hido2qaNjJKE1wBCO72MKQAP6UZv+EyZWii2XXTia2pbVXVVWCpBbdDUVv0rvypZWOu05WZVJu7UZ5rlirLEBSWQ9WBOebXIbQrsiTC4IGrzEg== X-YMail-OSG: _gSw5MEVM1kQ7yI64FBVsLiWFUcNiKDJHZtlLBQ_Z9FN0.M9N0eR0gfiBkx9PUm NHA9s7uano3ts9fpgDcCQied0mDAVkiXTJJEZfs3tC790JTDFxK4s2.bwTFVK6f.aujkRRZ9mOf9 ysHiu4r2RE58NqigMOYZ8b1BewjFat6hXUE4RIc.uit3YmdxJ.bTZLtdHlKRVhA20qgy1XWyjw_G XY146P5fZEVHMZrwlqL6dFpaTGyPfYS6du3ZPcWxURC53lOGMeiT8rbyrvTHJb_3K8BJvgY_uF_9 gq2ydq6_mUulehWD4Vfdnl09oR4Br0me8PCJmUHgUK5qB8TR_OEjoD9aLg2Q.oRlHNz1KXPMGhbv LvRKepjWDW1pZ_3mThvKV5L0N9qmJIK2aXyq_AfyhkVEZaJ_BbWvaX8Iu5WGtmuYKsjz2eoOfu1o geD7NxFgcbfAAQ0MdizhOE3jU2AbXTPrMVK1DmwnqrUuuuJ7lfb3lDBavnuT6AHvnMoT4e5dAzDa UDNf.XJLmKg-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.bf2.yahoo.com with HTTP; Sun, 25 Mar 2018 17:44:39 +0000 Received: from 181.52.72.201 (EHLO [192.168.0.5]) ([181.52.72.201]) by smtp418.mail.bf1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID b8bd6c2cb4c8fc06ea5f9493f5a94354; Sun, 25 Mar 2018 17:34:30 +0000 (UTC) Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci To: rgrimes@freebsd.org Cc: Mark Peek , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201803251603.w2PG3KLQ041797@pdx.rh.CN85.dnsmgr.net> From: Pedro Giffuni Organization: FreeBSD Project Message-ID: <3abca0b5-8820-b937-d468-1021e3b7bbe6@FreeBSD.org> Date: Sun, 25 Mar 2018 12:34:28 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <201803251603.w2PG3KLQ041797@pdx.rh.CN85.dnsmgr.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 17:44:40 -0000 On 25/03/2018 11:03, Rodney W. Grimes wrote: >> >> On 25/03/2018 06:49, Rodney W. Grimes wrote: >>>> On Sat, Mar 24, 2018 at 6:27 PM, Rodney W. Grimes < >>>> freebsd@pdx.rh.cn85.dnsmgr.net> wrote: >>>> >>>>>> Author: mp >>>>>> Date: Sun Mar 25 00:57:00 2018 >>>>>> New Revision: 331510 >>>>>> URL: https://svnweb.freebsd.org/changeset/base/331510 >>>>> These files do not each contain a usable copyright, though >>>>> they seem to contain SPDX tags that indiate they should contain >>>>> a BSD 2 clause copyright. >>>> IANAL but I believe you meant "...they should contain a BSD 2 clause >>>> *license*". The files should contain a valid copyright. >>> A valid, but unusable. As the copyright is it is a full copyright >>> held by vmware without any rights to be published or redistributed >>> any any manner by anyone but vmware. >>> >>> "Copyright (c) 2018 VMware, Inc. All Rights Reserved." >>> >>> That is a restrictive copyright, allowing no one to publish, or >>> in our case, redistribute, without a further license of some form. >>> >>>> The intent of my commit and the author were to use the implied SPDX version >>>> of the licenses without burdening the source code with the more heavyweight >>>> license text. Having seen SPDX in the src tree, I believed >>>> the SPDX-License-Identifier was sufficient. But, to your point, I'm not >>>> sure I have seen a discussion or a decision on it. >>> SPDX tags are purely to be treated as "advisory" and in no one imply >>> or create any license agreement. >> As happens in economics, different lawyers can have different >> interpretations. Our practices were consulted with the SPDX guys but >> other projects have different practices. >> >> While the sound practice, especially when you don't own the code, is to >> add the SPDX tag in addition to the license text, the linux developers >> are encouraging replacing it altogether with the SPDX tag. In their case >> they keep a reference to the complete license text elsewhere and they >> have some repository log where the copyright owner did the change. > They have grown use to this from the way the GPL is handled, since > the length of the body of that license would be impractical to > include. > >> For contrib code we just follow upstream. In no case can anyone other >> than the copyright owner clarify, or otherwise change, a license. > That does bring a question of why this code is not either on > a vendor import branch, or in contrib? > > Can you point to any files in /usr/src that lack a full and complete > standalone license? Sans perhaps some GPL code that has a pointer > to COPYING and files that can not such as Makefile and .mk's. There are some. Here is an outstanding example: usr.sbin/bhyve/bhyvegc.c FWIW, the one time I did a change I added a copyright disclaimer to the commit log  to avoid future issues: https://svnweb.freebsd.org/base?view=revision&revision=318788 Cheers, Pedro. From owner-svn-src-all@freebsd.org Sun Mar 25 18:59:11 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 066F9F63F00; Sun, 25 Mar 2018 18:59:11 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [88.99.82.50]) (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 97CAE74037; Sun, 25 Mar 2018 18:59:10 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.128.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id CB86D2600A0; Sun, 25 Mar 2018 20:59:08 +0200 (CEST) Subject: Re: svn commit: r331447 - head/sys/dev/mlx5/mlx5_core To: cem@freebsd.org, Jeff Roberson Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201803231811.w2NIB6o8051699@repo.freebsd.org> From: Hans Petter Selasky Message-ID: <706716f4-18d0-7857-a502-0ecd44e27316@selasky.org> Date: Sun, 25 Mar 2018 20:59:03 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 18:59:11 -0000 On 03/25/18 18:10, Conrad Meyer wrote: > It seems it slipped back in via r331445 after I had removed it in r330714. > That might be. When this round of mlx5 patching is done I'll pull in all upstream changes. --HPS From owner-svn-src-all@freebsd.org Sun Mar 25 19:09:09 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C4A8BF64C7F; Sun, 25 Mar 2018 19:09:09 +0000 (UTC) (envelope-from bjkfbsd@gmail.com) Received: from mail-oi0-x234.google.com (mail-oi0-x234.google.com [IPv6:2607:f8b0:4003:c06::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 55DD874656; Sun, 25 Mar 2018 19:09:09 +0000 (UTC) (envelope-from bjkfbsd@gmail.com) Received: by mail-oi0-x234.google.com with SMTP id 71-v6so14300486oie.12; Sun, 25 Mar 2018 12:09:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=YLMGgb2Jr4HuDrqKyPt21mRbistSpbJ+GbAc4/0jqys=; b=ERM16rm9NZaiE2q0KCvAg/j6h3W26MmFURs8TAeO6deaNWXpGirwvpP8tW9GiQD+Tj s3K1dWbzCN5H+xyYSvtGQQhb2tSuljVPk80GV8VNWxYabD9y+9MgYjwBrW3I4HzfRolE iYLalGlqTnShMen3Lbdmo8qDmYIN6ydQZ8cW5G4fpDVIwsJ/A8Rl1GQtqUUNdOcp24Kx aJHzPeiCE5iOkIfdKFRYzrPUqOrax7Ipw0ij11doFuI+PQoc93PKaDjtwlA5se8rhXTA 9hmSGnqtP373XL9hJywtkHurr2eYZnDj/Zx2NwARjzML4MgJrhRROKbAyb+oFB229O03 0FWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=YLMGgb2Jr4HuDrqKyPt21mRbistSpbJ+GbAc4/0jqys=; b=JcWYSiH7kkusdfZlcX67qj9QVhAMnyW/634i0W7k7/8qI8TcpUV5fKBRr5EkD3vCnq o+0WteJWYdG93EcrPaW/0W7eAath8XwPzRcACuvkHcjSbvEg7SXra1yDcQ6zoQ2gyqAB rQ3TxcTZdQ650FjezelF71x4o7Nc7ljPm5aiGdZef3RJlQYP6pm7zaLfa8wteyOUgy8B YnlwEeE62lza95HyOpE8gZBthFSximbqs92OxEE4/2o7bcDOuQF022wwqGs8kWxg3u6A S8+TVH52gwVS7m/cNI+AqeNdQgr6+9Nle2PIuysTkpLH342rYC/rGHbw67+RwqSMAxCO DuVQ== X-Gm-Message-State: AElRT7GCp1JftyXV4datbFMoeeMPp6IUzOW1mrQpu1ueRH/2eIf8q4qE 4IY4Gui0CvPRBQ4AvMiiH1LVGBKKHqrkXmQLJyIiFQ== X-Google-Smtp-Source: AIpwx489hgR3qUivrwwz+FRBTufI9BrPNwGbDaPdpCjJCp8hdghvxgiv8zhPIm/Ye3ygPUpSwiL46XQIMpFuiF1FTWg= X-Received: by 10.202.69.213 with SMTP id s204mr5985670oia.77.1522004948327; Sun, 25 Mar 2018 12:09:08 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a9d:34b1:0:0:0:0:0 with HTTP; Sun, 25 Mar 2018 12:09:07 -0700 (PDT) In-Reply-To: <3abca0b5-8820-b937-d468-1021e3b7bbe6@FreeBSD.org> References: <201803251603.w2PG3KLQ041797@pdx.rh.CN85.dnsmgr.net> <3abca0b5-8820-b937-d468-1021e3b7bbe6@FreeBSD.org> From: Benjamin Kaduk Date: Sun, 25 Mar 2018 14:09:07 -0500 Message-ID: Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci To: Pedro Giffuni Cc: rgrimes@freebsd.org, Mark Peek , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 19:09:10 -0000 I am surprised that no one has yet quoted the commit message from r325966 when the first SPDX tags appear to have been added to base: We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. (There was also some internal discussion around the same time, which I of course cannot quote here.) -Ben From owner-svn-src-all@freebsd.org Sun Mar 25 19:50:20 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B58A8F67EDE for ; Sun, 25 Mar 2018 19:50:19 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x234.google.com (mail-it0-x234.google.com [IPv6:2607:f8b0:4001:c0b::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3B1EA75C49 for ; Sun, 25 Mar 2018 19:50:19 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x234.google.com with SMTP id y20-v6so8197861itc.5 for ; Sun, 25 Mar 2018 12:50:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=vScgvWwwCnjJQcDhiRGrQrnKXlY+mt5wTbw4RkS+QFw=; b=Jaz58mEvCgSq2CS9kDnRVzuEN0ohdxnXeEv9rvGAaag+30NDb8SL63BMM4L+QyuTCD /0zJ2PRQBvQopNHfNPxwpxl5hu7NVWz8XMfEDc3DlRipDyfJxVIO9b1tBxkVH7P76Gx9 6yI8ltNkdWuU+f82glyH67ocVefd1NOx4nSJHBQGfmgn9b+SFM9q+3OsBoVCuC3K+c1j tXPiDNvweHjV2RbO89Wop75yBtjxJz+8s8YF+nx8GO6SOqqxL7Hc+9vJ7qzVy8wGD9Zg 5SviYhGs8MRNkI1UAWTkobxSqZKAclB4hReKKBcpQ51EIGjTIeHnsN5Usx+dusfprEay rEJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=vScgvWwwCnjJQcDhiRGrQrnKXlY+mt5wTbw4RkS+QFw=; b=oYtI/xj++nD8Q7gJFAuuneu1Qug6+cBQwGUhCzBdF1dYZKHKo+OCWTw8BXegweTQ/p IYVQ+VW/rPioVozQAd6Lgn5YH9EzpSFdYFNyjVl9wNeDawLUHEum1QK/TlqKdMEwJdGI 8bi4Qc0xLcblOaTlKspr/MvWB0u8yt7plTXXE2yMHZhqcRkNZPE01l2oevImbppsjHIU T/ds8/Tx/dqdYnLrUWMhHSVZ4l07OJxJBjuO7k7T7nevrULNC/OTK4cdLqfKBYqmFY3a 7h71h+6iS2ItUGIJ6PPz7AFAYn0ypRsNJUjBVr+0Qt+dOX2lD2EibRKtbAK8ORLx9ptp PQRQ== X-Gm-Message-State: AElRT7FHRhX9RCqL6ieAYl9urYLfkzCn6Yj8SFctmOXGGoXngSIOb6PC O7/5nSz5weyXWWlxIKoc2eZj6CQn3H19lHBQgm6GHA== X-Google-Smtp-Source: AIpwx4+wuy1MT+YM1D7nBlL4gaMMk3aKfFP0j/br6imoaAr94wW8eMB6fT+2GmONwApoivMLg+ZbhOerhT7svoh1M/I= X-Received: by 2002:a24:19c9:: with SMTP id b192-v6mr5327791itb.1.1522007418477; Sun, 25 Mar 2018 12:50:18 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 10.79.203.196 with HTTP; Sun, 25 Mar 2018 12:50:17 -0700 (PDT) X-Originating-IP: [2607:fb90:6c82:b467:8188:b02:331c:4031] Received: by 10.79.203.196 with HTTP; Sun, 25 Mar 2018 12:50:17 -0700 (PDT) In-Reply-To: References: <201803251603.w2PG3KLQ041797@pdx.rh.CN85.dnsmgr.net> <3abca0b5-8820-b937-d468-1021e3b7bbe6@FreeBSD.org> From: Warner Losh Date: Sun, 25 Mar 2018 13:50:17 -0600 X-Google-Sender-Auth: 0N-r_ZlO4GcYTDd7AQRtiQAbFFY Message-ID: Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci To: Benjamin Kaduk Cc: Pedro Giffuni , "Rodney W. Grimes" , Mark Peek , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 19:50:20 -0000 On Mar 25, 2018 1:09 PM, "Benjamin Kaduk" wrote: I am surprised that no one has yet quoted the commit message from r325966 when the first SPDX tags appear to have been added to base: We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. (There was also some internal discussion around the same time, which I of course cannot quote here.) Right. For cases where both are present, the text controls. But when it's just there alone, there is no ambiguity. It would certainly help with the slightly different wording issue if we did this more often. I may do it to all my code in the tree. I'm careful about this stuff, and i have at least three variations in the tree for no good reason... Warner From owner-svn-src-all@freebsd.org Sun Mar 25 20:12:15 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1D4F3F6950A; Sun, 25 Mar 2018 20:12:15 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C2E87767B0; Sun, 25 Mar 2018 20:12:14 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BDCBF22D32; Sun, 25 Mar 2018 20:12:14 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2PKCECX062125; Sun, 25 Mar 2018 20:12:14 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2PKCEJY062124; Sun, 25 Mar 2018 20:12:14 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201803252012.w2PKCEJY062124@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 25 Mar 2018 20:12:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331536 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 331536 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 20:12:15 -0000 Author: markj Date: Sun Mar 25 20:12:14 2018 New Revision: 331536 URL: https://svnweb.freebsd.org/changeset/base/331536 Log: Use LIST_FOREACH_SAFE in sleepq_chains_remove_matching(). We may remove a sleepqueue from the hash table in sleepq_resume_thread(). Reviewed by: kib MFC after: 3 days Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D14847 Modified: head/sys/kern/subr_sleepqueue.c Modified: head/sys/kern/subr_sleepqueue.c ============================================================================== --- head/sys/kern/subr_sleepqueue.c Sun Mar 25 18:10:00 2018 (r331535) +++ head/sys/kern/subr_sleepqueue.c Sun Mar 25 20:12:14 2018 (r331536) @@ -1103,7 +1103,7 @@ void sleepq_chains_remove_matching(bool (*matches)(struct thread *)) { struct sleepqueue_chain *sc; - struct sleepqueue *sq; + struct sleepqueue *sq, *sq1; int i, wakeup_swapper; wakeup_swapper = 0; @@ -1112,7 +1112,7 @@ sleepq_chains_remove_matching(bool (*matches)(struct t continue; } mtx_lock_spin(&sc->sc_lock); - LIST_FOREACH(sq, &sc->sc_queues, sq_hash) { + LIST_FOREACH_SAFE(sq, &sc->sc_queues, sq_hash, sq1) { for (i = 0; i < NR_SLEEPQS; ++i) { wakeup_swapper |= sleepq_remove_matching(sq, i, matches, 0); From owner-svn-src-all@freebsd.org Sun Mar 25 20:21:07 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 155A8F6A12D; Sun, 25 Mar 2018 20:21:07 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4E8D176CD5; Sun, 25 Mar 2018 20:21:05 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2PKL4Bt043592; Sun, 25 Mar 2018 13:21:04 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2PKL4X4043591; Sun, 25 Mar 2018 13:21:04 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201803252021.w2PKL4X4043591@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci In-Reply-To: To: Warner Losh Date: Sun, 25 Mar 2018 13:21:04 -0700 (PDT) CC: "Rodney W. Grimes" , Mark Peek , Pedro Giffuni , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 20:21:07 -0000 > On Sun, Mar 25, 2018 at 10:42 AM, Rodney W. Grimes < > freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > > > Did VMWare provide the files with the dual license text in them? > > Or did they provide files with SPDX tags in them? > > Or ? > > Does VMWare have these files published some place, with terms of > > use and such? > > > VMWare provided the files exactly as Mark committed them. They were > provided by someone from VMware to our code review system. Without a license to redistributed clearly included some place? > > The SPDX stuff is fine. there's nothing to get upset out here: they are > just as much a legal license as if the license had been included inline. I disagree, especially when I have repeatedly been told "SPDX" is purely advisory by the person who commited them to the tree. > It's widespread practice in the industry dating back to the 80's when DEC > had an indirection notice in their Ultrix source code. In fact, you can > find examples of that going back to the early 70's, though we were under a > different copyright regime. Those "references" to an external license involved a license that was usually executed as a signed document. You could not get the files until you had executed the signed license, and that license in no way allowed you rights to redistribute. Those are big differences in what we have here. You appear to be willing to make an arbitrary depature from what has been, and currently is, the standard form of the FreeBSD source tree. I disagree with your assesment of the situation. -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Mar 25 21:01:23 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3BD20F6CE15; Sun, 25 Mar 2018 21:01:23 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8B37478367; Sun, 25 Mar 2018 21:01:22 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2PL1Itv043801; Sun, 25 Mar 2018 14:01:18 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2PL1HpJ043800; Sun, 25 Mar 2018 14:01:17 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201803252101.w2PL1HpJ043800@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci In-Reply-To: To: Warner Losh Date: Sun, 25 Mar 2018 14:01:17 -0700 (PDT) CC: Benjamin Kaduk , Pedro Giffuni , "Rodney W. Grimes" , Mark Peek , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 21:01:23 -0000 [ Charset UTF-8 unsupported, converting... ] > On Mar 25, 2018 1:09 PM, "Benjamin Kaduk" wrote: > > I am surprised that no one has yet quoted the commit message from r325966 > when the first SPDX tags appear to have been added to base: > > We are gradually adopting the specification, noting > that the tags are considered only advisory and do not, in any way, > superceed or replace the license texts. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Here a SPDX tag is being used to stand in place, ie replace, the license text. > (There was also some internal discussion around the same time, which I of > course cannot quote here.) > > > > Right. For cases where both are present, the text controls. But when it's > just there alone, there is no ambiguity. There is ambiguity, as your replacing the license text with a tag in direct conflict with the documented status of SPDX tags. That is a HUGE ambiguity. Your also creating a small handful of files that seem to be in conflict with the projects standard MO for 25 years. Now, if you want to take this change to @developers as a proposal, and actually get legal advice on the aspects of this, I am all ears, but please do not just go making decisions that are contray to current practice without that. > It would certainly help with the slightly different wording issue if we did > this more often. I may do it to all my code in the tree. I'm careful about > this stuff, and i have at least three variations in the tree for no good > reason... > > Warner -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-all@freebsd.org Sun Mar 25 21:08:00 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 99B6BF6D7BD; Sun, 25 Mar 2018 21:08:00 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 474CB78875; Sun, 25 Mar 2018 21:08:00 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 424CB2356B; Sun, 25 Mar 2018 21:08:00 +0000 (UTC) (envelope-from benno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2PL808W092862; Sun, 25 Mar 2018 21:08:00 GMT (envelope-from benno@FreeBSD.org) Received: (from benno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2PL80G4092861; Sun, 25 Mar 2018 21:08:00 GMT (envelope-from benno@FreeBSD.org) Message-Id: <201803252108.w2PL80G4092861@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: benno set sender to benno@FreeBSD.org using -f From: Benno Rice Date: Sun, 25 Mar 2018 21:08:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331537 - head X-SVN-Group: head X-SVN-Commit-Author: benno X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 331537 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 21:08:00 -0000 Author: benno Date: Sun Mar 25 21:07:59 2018 New Revision: 331537 URL: https://svnweb.freebsd.org/changeset/base/331537 Log: Add an entry dealing with the makefs ISO9660 EFI tagging changes. If you're building -CURRENT releases and it fails when building ISO images on amd64 you'll need to update makefs. Reported by: dch Sponsored by: iXsystems, Inc. Modified: head/UPDATING Modified: head/UPDATING ============================================================================== --- head/UPDATING Sun Mar 25 20:12:14 2018 (r331536) +++ head/UPDATING Sun Mar 25 21:07:59 2018 (r331537) @@ -51,6 +51,17 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW: ****************************** SPECIAL WARNING: ****************************** +20180323: + makefs was modified to be able to tag ISO9660 El Torito boot catalog + entries as EFI instead of overloading the i386 tag as done previously. + The amd64 mkisoimages.sh script used to build amd64 ISO images for + release was updated to use this. This may mean that makefs must be + updated before "make cdrom" can be run in the release directory. This + should be as simple as: + + $ cd $SRCDIR/usr.sbin/makefs + $ make depend all install + 20180212: FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf. From owner-svn-src-all@freebsd.org Sun Mar 25 22:03:44 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B58A2F43FB9 for ; Sun, 25 Mar 2018 22:03:44 +0000 (UTC) (envelope-from mark@peek.org) Received: from mail-yb0-f182.google.com (mail-yb0-f182.google.com [209.85.213.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 533497C240 for ; Sun, 25 Mar 2018 22:03:44 +0000 (UTC) (envelope-from mark@peek.org) Received: by mail-yb0-f182.google.com with SMTP id o3-v6so3244455ybm.3 for ; Sun, 25 Mar 2018 15:03:44 -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:in-reply-to:references:from:date :message-id:subject:to:cc; bh=zkuxXbd5UB5mzCZrHS/mZ68jjIEaTPHS+VexKfx6Zko=; b=FbwocL2bPkw7rbcrwUi1StOFJssKLj4fobfgYZWGUcCkqG/ZWKgIWuhjRvBb+qS2Us 5LF3d+tOzXVYdvcdye27oV7XuN8D/aQ4/cs2lEpaQweVeropQ6FxJ1zikhPz6UN+fpbz inrHt9GsXB16BejLnTCdUOsNCl5Sew/cv+ZCu+DBZbb5l7U9aYJbKC4lgXTc+EWBi4zb nZy1FIar47LhLaNHS74oqEz9Q6uQQc6yk4MTuvj4GUdItFlKqmENcTVZx0TtpnaEFcmQ K7PLP1eC3uC3thT6kd6v6CID55WBL2PvL7jKn4DhFSUiEkHOJnIyaDvjMQMKwgl4c8Zg FJhA== X-Gm-Message-State: AElRT7Hy+HywXh3/1JyxJeadHLaY4PrLy2IxEF2kADX3V8zIAT/g2rKf ZVCWBT/Sku4Zg3pPbo92ZUAJZOGlTGUi0A== X-Google-Smtp-Source: AG47ELsK56NhLPCr4+nKitupV1rkUBvMcsnh2QkMbD0Y2p3Tu0iCnhBQxK03QK9Fni69hXA485oYLA== X-Received: by 2002:a25:5011:: with SMTP id e17-v6mr10619488ybb.125.1522015423447; Sun, 25 Mar 2018 15:03:43 -0700 (PDT) Received: from mail-yw0-f169.google.com (mail-yw0-f169.google.com. [209.85.161.169]) by smtp.gmail.com with ESMTPSA id t126sm4095708ywg.40.2018.03.25.15.03.42 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 25 Mar 2018 15:03:42 -0700 (PDT) Received: by mail-yw0-f169.google.com with SMTP id r29so5573576ywa.12 for ; Sun, 25 Mar 2018 15:03:42 -0700 (PDT) X-Received: by 10.129.146.195 with SMTP id j186mr22517523ywg.294.1522015422181; Sun, 25 Mar 2018 15:03:42 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:4206:0:0:0:0:0 with HTTP; Sun, 25 Mar 2018 15:03:41 -0700 (PDT) X-Originating-IP: [2601:646:c700:35ed:2193:d6c4:780d:4bcb] In-Reply-To: <201803252101.w2PL1HpJ043800@pdx.rh.CN85.dnsmgr.net> References: <201803252101.w2PL1HpJ043800@pdx.rh.CN85.dnsmgr.net> From: Mark Peek Date: Sun, 25 Mar 2018 15:03:41 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r331510 - in head: share/man/man4 sys/conf sys/dev/vmware/vmci sys/modules/vmware sys/modules/vmware/vmci To: rgrimes@freebsd.org Cc: Warner Losh , Benjamin Kaduk , Pedro Giffuni , Mark Peek , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 22:03:45 -0000 On Sun, Mar 25, 2018 at 2:01 PM, Rodney W. Grimes < freebsd@pdx.rh.cn85.dnsmgr.net> wrote: > [ Charset UTF-8 unsupported, converting... ] > > On Mar 25, 2018 1:09 PM, "Benjamin Kaduk" wrote: > > > > I am surprised that no one has yet quoted the commit message from r325966 > > when the first SPDX tags appear to have been added to base: > > > > We are gradually adopting the specification, noting > > that the tags are considered only advisory and do not, in any way, > > superceed or replace the license texts. > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > Here a SPDX tag is being used to stand in place, ie replace, the > license text. > > > (There was also some internal discussion around the same time, which I of > > course cannot quote here.) > > > > > > > > Right. For cases where both are present, the text controls. But when it's > > just there alone, there is no ambiguity. > > There is ambiguity, as your replacing the license text with a tag in > direct conflict with the documented status of SPDX tags. > That is a HUGE ambiguity. > > Your also creating a small handful of files that seem to be in conflict > with the projects standard MO for 25 years. > > Now, if you want to take this change to @developers as a proposal, and > actually get legal advice on the aspects of this, I am all ears, but please > do not just go making decisions that are contray to current practice > without that. As this may require a legal opinion and clarification I have asked on core@ rather than further discussion here or on the developers list. Mark From owner-svn-src-all@freebsd.org Sun Mar 25 23:23:20 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D1A8F518AF; Sun, 25 Mar 2018 23:23:20 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3D78E7F06D; Sun, 25 Mar 2018 23:23:20 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3867624C0E; Sun, 25 Mar 2018 23:23:20 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2PNNKHn075023; Sun, 25 Mar 2018 23:23:20 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2PNNK5f075022; Sun, 25 Mar 2018 23:23:20 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201803252323.w2PNNK5f075022@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 25 Mar 2018 23:23:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331538 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 331538 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Mar 2018 23:23:20 -0000 Author: markj Date: Sun Mar 25 23:23:19 2018 New Revision: 331538 URL: https://svnweb.freebsd.org/changeset/base/331538 Log: Clamp IFLIB_RX_COPY_THRESH to MHLEN in iflib_rxd_pkt_get(). If one has added fields to struct mbuf such that MHLEN is smaller than this threshold (128), iflib_rxd_pkt_get() may otherwise overrun the internal mbuf buffer while copying. Reviewed by: mmacy MFC after: 3 days Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D14843 Modified: head/sys/net/iflib.c Modified: head/sys/net/iflib.c ============================================================================== --- head/sys/net/iflib.c Sun Mar 25 21:07:59 2018 (r331537) +++ head/sys/net/iflib.c Sun Mar 25 23:23:19 2018 (r331538) @@ -2450,7 +2450,7 @@ iflib_rxd_pkt_get(iflib_rxq_t rxq, if_rxd_info_t ri) /* should I merge this back in now that the two paths are basically duplicated? */ if (ri->iri_nfrags == 1 && - ri->iri_frags[0].irf_len <= IFLIB_RX_COPY_THRESH) { + ri->iri_frags[0].irf_len <= MIN(IFLIB_RX_COPY_THRESH, MHLEN)) { rxd_frag_to_sd(rxq, &ri->iri_frags[0], FALSE, &sd); m = *sd.ifsd_m; *sd.ifsd_m = NULL; From owner-svn-src-all@freebsd.org Mon Mar 26 00:26:47 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 449CAF56847; Mon, 26 Mar 2018 00:26:47 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E385C8138E; Mon, 26 Mar 2018 00:26:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DDB1A255FE; Mon, 26 Mar 2018 00:26:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2Q0QkEo007996; Mon, 26 Mar 2018 00:26:46 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2Q0Qkfs007994; Mon, 26 Mar 2018 00:26:46 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201803260026.w2Q0Qkfs007994@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 26 Mar 2018 00:26:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331539 - in stable/11/stand: efi/libefi i386/libi386 X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/11/stand: efi/libefi i386/libi386 X-SVN-Commit-Revision: 331539 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 00:26:47 -0000 Author: kevans Date: Mon Mar 26 00:26:46 2018 New Revision: 331539 URL: https://svnweb.freebsd.org/changeset/base/331539 Log: MFC r331416, r331440: Loader consoles: Implement SGR 22, reste intensity r331416: Loader consoles: Implement SGR 22, reset intensity r331440: Match broken style of vidconsole.c This particular function uses a broken mix of indentation styles. Match it for the newly added SGR 22 bits. Modified: stable/11/stand/efi/libefi/efi_console.c stable/11/stand/i386/libi386/vidconsole.c Directory Properties: stable/11/ (props changed) Modified: stable/11/stand/efi/libefi/efi_console.c ============================================================================== --- stable/11/stand/efi/libefi/efi_console.c Sun Mar 25 23:23:19 2018 (r331538) +++ stable/11/stand/efi/libefi/efi_console.c Mon Mar 26 00:26:46 2018 (r331539) @@ -383,6 +383,9 @@ efi_term_emu(int c) fg_c = bg_c; bg_c = t; break; + case 22: /* normal intensity */ + fg_c &= ~0x8; + break; case 30: case 31: case 32: case 33: case 34: case 35: case 36: case 37: fg_c = ansi_col[args[i] - 30]; Modified: stable/11/stand/i386/libi386/vidconsole.c ============================================================================== --- stable/11/stand/i386/libi386/vidconsole.c Sun Mar 25 23:23:19 2018 (r331538) +++ stable/11/stand/i386/libi386/vidconsole.c Mon Mar 26 00:26:46 2018 (r331539) @@ -449,6 +449,9 @@ vidc_term_emu(int c) fg_c = bg_c; bg_c = t; break; + case 22: /* normal intensity */ + fg_c &= ~0x8; + break; case 30: case 31: case 32: case 33: case 34: case 35: case 36: case 37: fg_c = ansi_col[args[i] - 30]; From owner-svn-src-all@freebsd.org Mon Mar 26 00:30:47 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 449BAF56BE6; Mon, 26 Mar 2018 00:30:47 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E80088154F; Mon, 26 Mar 2018 00:30:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E0B5F25708; Mon, 26 Mar 2018 00:30:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2Q0UkYN008203; Mon, 26 Mar 2018 00:30:46 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2Q0UkbK008202; Mon, 26 Mar 2018 00:30:46 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201803260030.w2Q0UkbK008202@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 26 Mar 2018 00:30:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331540 - stable/11/tools/build/options X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/11/tools/build/options X-SVN-Commit-Revision: 331540 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 00:30:47 -0000 Author: kevans Date: Mon Mar 26 00:30:46 2018 New Revision: 331540 URL: https://svnweb.freebsd.org/changeset/base/331540 Log: MFC r330115: Add missing WITH_BSD_GREP_FASTMATCH description Added: stable/11/tools/build/options/WITH_BSD_GREP_FASTMATCH - copied unchanged from r330115, head/tools/build/options/WITH_BSD_GREP_FASTMATCH Modified: Directory Properties: stable/11/ (props changed) Copied: stable/11/tools/build/options/WITH_BSD_GREP_FASTMATCH (from r330115, head/tools/build/options/WITH_BSD_GREP_FASTMATCH) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/tools/build/options/WITH_BSD_GREP_FASTMATCH Mon Mar 26 00:30:46 2018 (r331540, copy of r330115, head/tools/build/options/WITH_BSD_GREP_FASTMATCH) @@ -0,0 +1,3 @@ +.\" $FreeBSD$ +Set this option to use the fastmatch implementation in +.Xr bsdgrep 1 . From owner-svn-src-all@freebsd.org Mon Mar 26 04:41:24 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15887F6A2D5; Mon, 26 Mar 2018 04:41:24 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BBFD069E10; Mon, 26 Mar 2018 04:41:23 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B6DEC27FC4; Mon, 26 Mar 2018 04:41:23 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2Q4fNQm034154; Mon, 26 Mar 2018 04:41:23 GMT (envelope-from truckman@FreeBSD.org) Received: (from truckman@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2Q4fNj6034153; Mon, 26 Mar 2018 04:41:23 GMT (envelope-from truckman@FreeBSD.org) Message-Id: <201803260441.w2Q4fNj6034153@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: truckman set sender to truckman@FreeBSD.org using -f From: Don Lewis Date: Mon, 26 Mar 2018 04:41:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331541 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: truckman X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 331541 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 04:41:24 -0000 Author: truckman Date: Mon Mar 26 04:41:23 2018 New Revision: 331541 URL: https://svnweb.freebsd.org/changeset/base/331541 Log: MFC r329844 MFC r329875 (by kib) r329844 | truckman | 2018-02-22 16:12:51 -0800 (Thu, 22 Feb 2018) | 52 lines Decrease latency by not wrapping the idle loop's potentially lengthy search for a thread to steal inside a critical section. Since this allows the search to be preempted, restart the search if preemption happens since the search results found earlier may no longer be valid. Decrease the latency of starting a thread that may be assigned to this CPU during the search by polling for incoming threads during the search and switching to that thread instead of continuing the search. Test for stale search results and restart the search before going through the expense of calling tdq_lock_pair(). Retry some tests after grabbing the locks since things may have changed while waiting to get both locks. Eliminate special case handling for stealing from an SMT peer that uses 1 as the steal threshold. This can only succeed if a thread has been assigned but our SMT peer has not yet started executing it. This is quite rare and when it happens the other SMT thread is generally waiting for the same tdq lock that we hold. Basically both SMT threads are racing to grab the same spin lock. Add the kern.sched.always_steal knob from a ULE patch by jeff@. Incorporate another idea from Jeff's ULE patch. If the sched_switch() detects that the CPU is about to go idle, try to steal a thread before switching to the idle thread. Since the search for a thread to steal has to be done inside a critical section in this context, limit the impact on latency by adding the knob kern.sched.trysteal_limit to limit the topological distance of the search and don't restart the search if we detect stale results. If this search can't find an stealable thread, the idle loop can do a more complete search. Also poll for threads being assigned to this CPU during the search and switch to them instead of continuing the search. This change is responsibile for the majority of the improvement in parallel buildworld times. In sched_balance_group() change the minimum threshold from stealing a thread from 1 to 2. Poaching a newly assigned thread from a CPU that is waking up hasn't yet switched to that thread from idle is likely very rare and is likely to have the same lock race as is seen when stealing threads in the idle loop. Also use tdq_notify() to kick the destintation CPU instead of always sending an IPI. Update a stale comment, the number of transferable threads is not calculated. ------------------------------------------------------------------------ r329875 | kib | 2018-02-23 10:26:31 -0800 (Fri, 23 Feb 2018) | 5 lines Restore UP build. Reviewed by: kib (earlier version, r329844) Reviewed by: truckman (r329875) Comments by: avg, jeff, mav (r329844) Differential Revision: https://reviews.freebsd.org/D12130 Modified: stable/11/sys/kern/sched_ule.c Modified: stable/11/sys/kern/sched_ule.c ============================================================================== --- stable/11/sys/kern/sched_ule.c Mon Mar 26 00:30:46 2018 (r331540) +++ stable/11/sys/kern/sched_ule.c Mon Mar 26 04:41:23 2018 (r331541) @@ -238,9 +238,9 @@ struct tdq { volatile int tdq_load; /* Aggregate load. */ volatile int tdq_cpu_idle; /* cpu_idle() is active. */ int tdq_sysload; /* For loadavg, !ITHD load. */ - int tdq_transferable; /* Transferable thread count. */ - short tdq_switchcnt; /* Switches this tick. */ - short tdq_oldswitchcnt; /* Switches last tick. */ + volatile int tdq_transferable; /* Transferable thread count. */ + volatile short tdq_switchcnt; /* Switches this tick. */ + volatile short tdq_oldswitchcnt; /* Switches last tick. */ u_char tdq_lowpri; /* Lowest priority thread. */ u_char tdq_ipipending; /* IPI pending. */ u_char tdq_idx; /* Current insert index. */ @@ -272,6 +272,8 @@ static int balance_interval = 128; /* Default set in s static int affinity; static int steal_idle = 1; static int steal_thresh = 2; +static int always_steal = 0; +static int trysteal_limit = 2; /* * One thread queue per processor. @@ -317,7 +319,7 @@ void tdq_print(int cpu); static void runq_print(struct runq *rq); static void tdq_add(struct tdq *, struct thread *, int); #ifdef SMP -static int tdq_move(struct tdq *, struct tdq *); +static struct thread *tdq_move(struct tdq *, struct tdq *); static int tdq_idled(struct tdq *); static void tdq_notify(struct tdq *, struct thread *); static struct thread *tdq_steal(struct tdq *, int); @@ -839,7 +841,7 @@ sched_balance_group(struct cpu_group *cg) CPU_FILL(&hmask); for (;;) { - high = sched_highest(cg, hmask, 1); + high = sched_highest(cg, hmask, 2); /* Stop if there is no more CPU with transferrable threads. */ if (high == -1) break; @@ -922,33 +924,32 @@ tdq_unlock_pair(struct tdq *one, struct tdq *two) static int sched_balance_pair(struct tdq *high, struct tdq *low) { - int moved; + struct thread *td; int cpu; tdq_lock_pair(high, low); - moved = 0; + td = NULL; /* - * Determine what the imbalance is and then adjust that to how many - * threads we actually have to give up (transferable). + * Transfer a thread from high to low. */ if (high->tdq_transferable != 0 && high->tdq_load > low->tdq_load && - (moved = tdq_move(high, low)) > 0) { + (td = tdq_move(high, low)) != NULL) { /* - * In case the target isn't the current cpu IPI it to force a - * reschedule with the new workload. + * In case the target isn't the current cpu notify it of the + * new load, possibly sending an IPI to force it to reschedule. */ cpu = TDQ_ID(low); if (cpu != PCPU_GET(cpuid)) - ipi_cpu(cpu, IPI_PREEMPT); + tdq_notify(low, td); } tdq_unlock_pair(high, low); - return (moved); + return (td != NULL); } /* * Move a thread from one thread queue to another. */ -static int +static struct thread * tdq_move(struct tdq *from, struct tdq *to) { struct td_sched *ts; @@ -963,7 +964,7 @@ tdq_move(struct tdq *from, struct tdq *to) cpu = TDQ_ID(to); td = tdq_steal(tdq, cpu); if (td == NULL) - return (0); + return (NULL); ts = td_get_sched(td); /* * Although the run queue is locked the thread may be blocked. Lock @@ -976,7 +977,7 @@ tdq_move(struct tdq *from, struct tdq *to) ts->ts_cpu = cpu; td->td_lock = TDQ_LOCKPTR(to); tdq_add(to, td, SRQ_YIELDING); - return (1); + return (td); } /* @@ -989,51 +990,80 @@ tdq_idled(struct tdq *tdq) struct cpu_group *cg; struct tdq *steal; cpuset_t mask; - int thresh; - int cpu; + int cpu, switchcnt; - if (smp_started == 0 || steal_idle == 0) + if (smp_started == 0 || steal_idle == 0 || tdq->tdq_cg == NULL) return (1); CPU_FILL(&mask); CPU_CLR(PCPU_GET(cpuid), &mask); - /* We don't want to be preempted while we're iterating. */ - spinlock_enter(); - for (cg = tdq->tdq_cg; cg != NULL; ) { - if ((cg->cg_flags & CG_FLAG_THREAD) == 0) - thresh = steal_thresh; - else - thresh = 1; - cpu = sched_highest(cg, mask, thresh); + restart: + switchcnt = tdq->tdq_switchcnt + tdq->tdq_oldswitchcnt; + for (cg = tdq->tdq_cg; ; ) { + cpu = sched_highest(cg, mask, steal_thresh); + /* + * We were assigned a thread but not preempted. Returning + * 0 here will cause our caller to switch to it. + */ + if (tdq->tdq_load) + return (0); if (cpu == -1) { cg = cg->cg_parent; + if (cg == NULL) + return (1); continue; } steal = TDQ_CPU(cpu); - CPU_CLR(cpu, &mask); + /* + * The data returned by sched_highest() is stale and + * the chosen CPU no longer has an eligible thread. + * + * Testing this ahead of tdq_lock_pair() only catches + * this situation about 20% of the time on an 8 core + * 16 thread Ryzen 7, but it still helps performance. + */ + if (steal->tdq_load < steal_thresh || + steal->tdq_transferable == 0) + goto restart; tdq_lock_pair(tdq, steal); - if (steal->tdq_load < thresh || steal->tdq_transferable == 0) { - tdq_unlock_pair(tdq, steal); - continue; - } /* - * If a thread was added while interrupts were disabled don't - * steal one here. If we fail to acquire one due to affinity - * restrictions loop again with this cpu removed from the - * set. + * We were assigned a thread while waiting for the locks. + * Switch to it now instead of stealing a thread. */ - if (tdq->tdq_load == 0 && tdq_move(steal, tdq) == 0) { + if (tdq->tdq_load) + break; + /* + * The data returned by sched_highest() is stale and + * the chosen CPU no longer has an eligible thread, or + * we were preempted and the CPU loading info may be out + * of date. The latter is rare. In either case restart + * the search. + */ + if (steal->tdq_load < steal_thresh || + steal->tdq_transferable == 0 || + switchcnt != tdq->tdq_switchcnt + tdq->tdq_oldswitchcnt) { tdq_unlock_pair(tdq, steal); - continue; + goto restart; } - spinlock_exit(); - TDQ_UNLOCK(steal); - mi_switch(SW_VOL | SWT_IDLE, NULL); - thread_unlock(curthread); - - return (0); + /* + * Steal the thread and switch to it. + */ + if (tdq_move(steal, tdq) != NULL) + break; + /* + * We failed to acquire a thread even though it looked + * like one was available. This could be due to affinity + * restrictions or for other reasons. Loop again after + * removing this CPU from the set. The restart logic + * above does not restore this CPU to the set due to the + * likelyhood of failing here again. + */ + CPU_CLR(cpu, &mask); + tdq_unlock_pair(tdq, steal); } - spinlock_exit(); - return (1); + TDQ_UNLOCK(steal); + mi_switch(SW_VOL | SWT_IDLE, NULL); + thread_unlock(curthread); + return (0); } /* @@ -1828,7 +1858,91 @@ sched_lend_user_prio(struct thread *td, u_char prio) td->td_flags |= TDF_NEEDRESCHED; } +#ifdef SMP /* + * This tdq is about to idle. Try to steal a thread from another CPU before + * choosing the idle thread. + */ +static void +tdq_trysteal(struct tdq *tdq) +{ + struct cpu_group *cg; + struct tdq *steal; + cpuset_t mask; + int cpu, i; + + if (smp_started == 0 || trysteal_limit == 0 || tdq->tdq_cg == NULL) + return; + CPU_FILL(&mask); + CPU_CLR(PCPU_GET(cpuid), &mask); + /* We don't want to be preempted while we're iterating. */ + spinlock_enter(); + TDQ_UNLOCK(tdq); + for (i = 1, cg = tdq->tdq_cg; ; ) { + cpu = sched_highest(cg, mask, steal_thresh); + /* + * If a thread was added while interrupts were disabled don't + * steal one here. + */ + if (tdq->tdq_load > 0) { + TDQ_LOCK(tdq); + break; + } + if (cpu == -1) { + i++; + cg = cg->cg_parent; + if (cg == NULL || i > trysteal_limit) { + TDQ_LOCK(tdq); + break; + } + continue; + } + steal = TDQ_CPU(cpu); + /* + * The data returned by sched_highest() is stale and + * the chosen CPU no longer has an eligible thread. + */ + if (steal->tdq_load < steal_thresh || + steal->tdq_transferable == 0) + continue; + tdq_lock_pair(tdq, steal); + /* + * If we get to this point, unconditonally exit the loop + * to bound the time spent in the critcal section. + * + * If a thread was added while interrupts were disabled don't + * steal one here. + */ + if (tdq->tdq_load > 0) { + TDQ_UNLOCK(steal); + break; + } + /* + * The data returned by sched_highest() is stale and + * the chosen CPU no longer has an eligible thread. + */ + if (steal->tdq_load < steal_thresh || + steal->tdq_transferable == 0) { + TDQ_UNLOCK(steal); + break; + } + /* + * If we fail to acquire one due to affinity restrictions, + * bail out and let the idle thread to a more complete search + * outside of a critical section. + */ + if (tdq_move(steal, tdq) == NULL) { + TDQ_UNLOCK(steal); + break; + } + TDQ_UNLOCK(steal); + break; + } + spinlock_exit(); +} +#endif + +/* * Handle migration from sched_switch(). This happens only for * cpu binding. */ @@ -1937,6 +2051,10 @@ sched_switch(struct thread *td, struct thread *newtd, TDQ_LOCK(tdq); mtx = thread_lock_block(td); tdq_load_rem(tdq, td); +#ifdef SMP + if (tdq->tdq_load == 0) + tdq_trysteal(tdq); +#endif } #if (KTR_COMPILE & KTR_SCHED) != 0 @@ -2667,7 +2785,7 @@ sched_idletd(void *dummy) } switchcnt = tdq->tdq_switchcnt + tdq->tdq_oldswitchcnt; #ifdef SMP - if (switchcnt != oldswitchcnt) { + if (always_steal || switchcnt != oldswitchcnt) { oldswitchcnt = switchcnt; if (tdq_idled(tdq) == 0) continue; @@ -2704,6 +2822,15 @@ sched_idletd(void *dummy) * to avoid race with tdq_notify. */ atomic_thread_fence_seq_cst(); + /* + * Checking for again after the fence picks up assigned + * threads often enough to make it worthwhile to do so in + * order to avoid calling cpu_idle(). + */ + if (tdq->tdq_load != 0) { + tdq->tdq_cpu_idle = 0; + continue; + } cpu_idle(switchcnt * 4 > sched_idlespinthresh); tdq->tdq_cpu_idle = 0; @@ -2938,6 +3065,10 @@ SYSCTL_INT(_kern_sched, OID_AUTO, steal_idle, CTLFLAG_ "Attempts to steal work from other cores before idling"); SYSCTL_INT(_kern_sched, OID_AUTO, steal_thresh, CTLFLAG_RW, &steal_thresh, 0, "Minimum load on remote CPU before we'll steal"); +SYSCTL_INT(_kern_sched, OID_AUTO, trysteal_limit, CTLFLAG_RW, &trysteal_limit, + 0, "Topological distance limit for stealing threads in sched_switch()"); +SYSCTL_INT(_kern_sched, OID_AUTO, always_steal, CTLFLAG_RW, &always_steal, 0, + "Always run the stealer from the idle thread"); SYSCTL_PROC(_kern_sched, OID_AUTO, topology_spec, CTLTYPE_STRING | CTLFLAG_RD, NULL, 0, sysctl_kern_sched_topology_spec, "A", "XML dump of detected CPU topology"); From owner-svn-src-all@freebsd.org Mon Mar 26 07:54:11 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C4474F4EF5C; Mon, 26 Mar 2018 07:54:11 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 76EC56FF42; Mon, 26 Mar 2018 07:54:11 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 71AD21EDF; Mon, 26 Mar 2018 07:54:11 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2Q7sBmH031867; Mon, 26 Mar 2018 07:54:11 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2Q7sBW5031866; Mon, 26 Mar 2018 07:54:11 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201803260754.w2Q7sBW5031866@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 26 Mar 2018 07:54:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331542 - stable/11/sbin/ipfw X-SVN-Group: stable-11 X-SVN-Commit-Author: ae X-SVN-Commit-Paths: stable/11/sbin/ipfw X-SVN-Commit-Revision: 331542 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 07:54:11 -0000 Author: ae Date: Mon Mar 26 07:54:11 2018 New Revision: 331542 URL: https://svnweb.freebsd.org/changeset/base/331542 Log: MFC r331203: Remove note that `fwd tablearg` is supported only by IPv4. IPv6 is supported too. Modified: stable/11/sbin/ipfw/ipfw.8 Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/ipfw/ipfw.8 ============================================================================== --- stable/11/sbin/ipfw/ipfw.8 Mon Mar 26 04:41:23 2018 (r331541) +++ stable/11/sbin/ipfw/ipfw.8 Mon Mar 26 07:54:11 2018 (r331542) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 12, 2018 +.Dd March 19, 2018 .Dt IPFW 8 .Os .Sh NAME @@ -825,7 +825,7 @@ The search terminates. Change the next-hop on matching packets to .Ar ipaddr , which can be an IP address or a host name. -For IPv4, the next hop can also be supplied by the last table +The next hop can also be supplied by the last table looked up for the packet by using the .Cm tablearg keyword instead of an explicit address. From owner-svn-src-all@freebsd.org Mon Mar 26 07:55:38 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F1C0F4F131; Mon, 26 Mar 2018 07:55:38 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 00D547007D; Mon, 26 Mar 2018 07:55:38 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EFBB71EE0; Mon, 26 Mar 2018 07:55:37 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2Q7tb6r031996; Mon, 26 Mar 2018 07:55:37 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2Q7tbeH031995; Mon, 26 Mar 2018 07:55:37 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201803260755.w2Q7tbeH031995@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 26 Mar 2018 07:55:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331543 - stable/11/sys/i386/i386 X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/i386/i386 X-SVN-Commit-Revision: 331543 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 07:55:38 -0000 Author: kib Date: Mon Mar 26 07:55:37 2018 New Revision: 331543 URL: https://svnweb.freebsd.org/changeset/base/331543 Log: MFC r331431: Update comment to match current field names. Modified: stable/11/sys/i386/i386/vm86.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/i386/i386/vm86.c ============================================================================== --- stable/11/sys/i386/i386/vm86.c Mon Mar 26 07:54:11 2018 (r331542) +++ stable/11/sys/i386/i386/vm86.c Mon Mar 26 07:55:37 2018 (r331543) @@ -418,8 +418,8 @@ vm86_initialize(void) * pcb_esp = stack frame pointer at time of switch * pcb_ebx = va of vm86 page table * pcb_eip = argument pointer to initial call - * pcb_spare[0] = saved TSS descriptor, word 0 - * pcb_space[1] = saved TSS descriptor, word 1 + * pcb_vm86[0] = saved TSS descriptor, word 0 + * pcb_vm86[1] = saved TSS descriptor, word 1 */ #define new_ptd pcb_esi #define vm86_frame pcb_ebp From owner-svn-src-all@freebsd.org Mon Mar 26 09:36:23 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3003EF57E84; Mon, 26 Mar 2018 09:36:23 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D38DE74726; Mon, 26 Mar 2018 09:36:22 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C64A42EEE; Mon, 26 Mar 2018 09:36:22 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2Q9aMuN082759; Mon, 26 Mar 2018 09:36:22 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2Q9aMfD082758; Mon, 26 Mar 2018 09:36:22 GMT (envelope-from kp@FreeBSD.org) Message-Id: <201803260936.w2Q9aMfD082758@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Mon, 26 Mar 2018 09:36:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331546 - head/etc/rc.d X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/etc/rc.d X-SVN-Commit-Revision: 331546 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 09:36:23 -0000 Author: kp Date: Mon Mar 26 09:36:22 2018 New Revision: 331546 URL: https://svnweb.freebsd.org/changeset/base/331546 Log: pf: reload and resync do the same thing The reload and resync commands for the startup script do exactly the same thing, so implement one as a call to the other. MFC after: 3 weeks Modified: head/etc/rc.d/pf Modified: head/etc/rc.d/pf ============================================================================== --- head/etc/rc.d/pf Mon Mar 26 09:07:16 2018 (r331545) +++ head/etc/rc.d/pf Mon Mar 26 09:36:22 2018 (r331546) @@ -53,12 +53,12 @@ pf_check() pf_reload() { echo "Reloading pf rules." - $pf_program -n -f "$pf_rules" $pf_flags || return 1 - $pf_program -f "$pf_rules" $pf_flags + pf_resync } pf_resync() { + $pf_program -n -f "$pf_rules" $pf_flags || return 1 $pf_program -f "$pf_rules" $pf_flags } From owner-svn-src-all@freebsd.org Mon Mar 26 13:45:18 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 846DDF6E667; Mon, 26 Mar 2018 13:45:18 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 34E4E7EC37; Mon, 26 Mar 2018 13:45:18 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2B8465B43; Mon, 26 Mar 2018 13:45:18 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QDjI6f011792; Mon, 26 Mar 2018 13:45:18 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QDjIJc011791; Mon, 26 Mar 2018 13:45:18 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201803261345.w2QDjIJc011791@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 26 Mar 2018 13:45:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331547 - head/stand/efi/loader X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/efi/loader X-SVN-Commit-Revision: 331547 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 13:45:18 -0000 Author: kevans Date: Mon Mar 26 13:45:17 2018 New Revision: 331547 URL: https://svnweb.freebsd.org/changeset/base/331547 Log: loader efifb: implement uga_autoresize as a call to text_autoresize UGA does not have the same kind of mode enumeration that GOP does. Implement it instead as a call to text_autoresize so that firmwares with only UGA present still get some kind of autoresizing behavior. While here, rename a typo'd "gop" to "uga", although it will remain unused for the time being. Modified: head/stand/efi/loader/framebuffer.c Modified: head/stand/efi/loader/framebuffer.c ============================================================================== --- head/stand/efi/loader/framebuffer.c Mon Mar 26 09:36:22 2018 (r331546) +++ head/stand/efi/loader/framebuffer.c Mon Mar 26 13:45:17 2018 (r331547) @@ -611,10 +611,10 @@ text_autoresize() } static int -uga_autoresize(EFI_UGA_DRAW_PROTOCOL *gop) +uga_autoresize(EFI_UGA_DRAW_PROTOCOL *uga) { - return (CMD_OK); + return (text_autoresize()); } COMMAND_SET(efi_autoresize, "efi-autoresizecons", "EFI Auto-resize Console", command_autoresize); From owner-svn-src-all@freebsd.org Mon Mar 26 14:03:40 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5527DF6FCC2; Mon, 26 Mar 2018 14:03:40 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 05BAF7F88A; Mon, 26 Mar 2018 14:03:40 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 005B65E5F; Mon, 26 Mar 2018 14:03:40 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QE3dLP021286; Mon, 26 Mar 2018 14:03:39 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QE3dA9021285; Mon, 26 Mar 2018 14:03:39 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201803261403.w2QE3dA9021285@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 26 Mar 2018 14:03:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331548 - head/sys/arm/allwinner X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/arm/allwinner X-SVN-Commit-Revision: 331548 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 14:03:40 -0000 Author: kevans Date: Mon Mar 26 14:03:39 2018 New Revision: 331548 URL: https://svnweb.freebsd.org/changeset/base/331548 Log: aw_sid(4): Release resources and destroy mutex on failure Submitted by: Eugene Sevastyanov Modified: head/sys/arm/allwinner/aw_sid.c Modified: head/sys/arm/allwinner/aw_sid.c ============================================================================== --- head/sys/arm/allwinner/aw_sid.c Mon Mar 26 13:45:17 2018 (r331547) +++ head/sys/arm/allwinner/aw_sid.c Mon Mar 26 14:03:39 2018 (r331548) @@ -207,7 +207,7 @@ aw_sid_attach(device_t dev) for (i = 0; i < sc->sid_conf->efuse_size; i += 4) if (aw_sid_prctl_read(dev, i, &val) != 0) { device_printf(dev, "failed prctl read\n"); - return (ENXIO); + goto fail; } SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), @@ -217,6 +217,11 @@ aw_sid_attach(device_t dev) dev, AW_SID_ROOT_KEY, aw_sid_sysctl, "A", "Root Key"); return (0); + +fail: + bus_release_resources(dev, aw_sid_spec, &sc->res); + mtx_destroy(&sc->prctl_mtx); + return (ENXIO); } int From owner-svn-src-all@freebsd.org Mon Mar 26 14:13:43 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3BBE1F706BC; Mon, 26 Mar 2018 14:13:43 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E2E897FF2B; Mon, 26 Mar 2018 14:13:42 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DDD61602A; Mon, 26 Mar 2018 14:13:42 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QEDgVr026697; Mon, 26 Mar 2018 14:13:42 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QEDgif026696; Mon, 26 Mar 2018 14:13:42 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201803261413.w2QEDgif026696@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 26 Mar 2018 14:13:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331549 - in stable: 10/release/tools 11/release/tools X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 10/release/tools 11/release/tools X-SVN-Commit-Revision: 331549 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 14:13:43 -0000 Author: gjb Date: Mon Mar 26 14:13:42 2018 New Revision: 331549 URL: https://svnweb.freebsd.org/changeset/base/331549 Log: MFC r331364: Remove google_accounts_manager from VM_RC_LIST in the GCE configuration file, no longer needed. PR: 221714 Sponsored by: The FreeBSD Foundation Modified: stable/11/release/tools/gce.conf Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/10/release/tools/gce.conf Directory Properties: stable/10/ (props changed) Modified: stable/11/release/tools/gce.conf ============================================================================== --- stable/11/release/tools/gce.conf Mon Mar 26 14:03:39 2018 (r331548) +++ stable/11/release/tools/gce.conf Mon Mar 26 14:13:42 2018 (r331549) @@ -9,7 +9,7 @@ export VM_EXTRA_PACKAGES="firstboot-freebsd-update fir sysutils/py-google-compute-engine" # Set to a list of third-party software to enable in rc.conf(5). -export VM_RC_LIST="google_accounts_manager ntpd sshd firstboot_growfs \ +export VM_RC_LIST="ntpd sshd firstboot_growfs \ firstboot_pkgs firstboot_freebsd_update google_startup \ google_accounts_daemon google_clock_skew_daemon google_instance_setup google_ip_forwarding_daemon From owner-svn-src-all@freebsd.org Mon Mar 26 14:13:43 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 216F3F706BB; Mon, 26 Mar 2018 14:13:43 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C77CB7FF2A; Mon, 26 Mar 2018 14:13:42 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C260E6029; Mon, 26 Mar 2018 14:13:42 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QEDg6O026691; Mon, 26 Mar 2018 14:13:42 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QEDg6v026690; Mon, 26 Mar 2018 14:13:42 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201803261413.w2QEDg6v026690@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 26 Mar 2018 14:13:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r331549 - in stable: 10/release/tools 11/release/tools X-SVN-Group: stable-10 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 10/release/tools 11/release/tools X-SVN-Commit-Revision: 331549 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 14:13:43 -0000 Author: gjb Date: Mon Mar 26 14:13:42 2018 New Revision: 331549 URL: https://svnweb.freebsd.org/changeset/base/331549 Log: MFC r331364: Remove google_accounts_manager from VM_RC_LIST in the GCE configuration file, no longer needed. PR: 221714 Sponsored by: The FreeBSD Foundation Modified: stable/10/release/tools/gce.conf Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/11/release/tools/gce.conf Directory Properties: stable/11/ (props changed) Modified: stable/10/release/tools/gce.conf ============================================================================== --- stable/10/release/tools/gce.conf Mon Mar 26 14:03:39 2018 (r331548) +++ stable/10/release/tools/gce.conf Mon Mar 26 14:13:42 2018 (r331549) @@ -9,7 +9,7 @@ export VM_EXTRA_PACKAGES="firstboot-freebsd-update fir sysutils/py-google-compute-engine" # Set to a list of third-party software to enable in rc.conf(5). -export VM_RC_LIST="google_accounts_manager ntpd sshd firstboot_growfs \ +export VM_RC_LIST="ntpd sshd firstboot_growfs \ firstboot_pkgs firstboot_freebsd_update google_startup \ google_accounts_daemon google_clock_skew_daemon google_instance_setup google_ip_forwarding_daemon From owner-svn-src-all@freebsd.org Mon Mar 26 15:16:58 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 225EFF4C883; Mon, 26 Mar 2018 15:16:58 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C82E0820F6; Mon, 26 Mar 2018 15:16:57 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BE56369F5; Mon, 26 Mar 2018 15:16:57 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QFGvrG057121; Mon, 26 Mar 2018 15:16:57 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QFGvgT057120; Mon, 26 Mar 2018 15:16:57 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201803261516.w2QFGvgT057120@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 26 Mar 2018 15:16:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331550 - stable/11/sys/vm X-SVN-Group: stable-11 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/11/sys/vm X-SVN-Commit-Revision: 331550 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 15:16:58 -0000 Author: markj Date: Mon Mar 26 15:16:57 2018 New Revision: 331550 URL: https://svnweb.freebsd.org/changeset/base/331550 Log: MFC r331425: Correct a couple of assertion messages in vm_page_reclaim_run(). Modified: stable/11/sys/vm/vm_page.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/vm/vm_page.c ============================================================================== --- stable/11/sys/vm/vm_page.c Mon Mar 26 14:13:42 2018 (r331549) +++ stable/11/sys/vm/vm_page.c Mon Mar 26 15:16:57 2018 (r331550) @@ -2371,7 +2371,7 @@ retry: goto unlock; } KASSERT(m_new->wire_count == 0, - ("page %p is wired", m)); + ("page %p is wired", m_new)); /* * Replace "m" with the new page. For @@ -2383,7 +2383,7 @@ retry: pmap_remove_all(m); m_new->aflags = m->aflags; KASSERT(m_new->oflags == VPO_UNMANAGED, - ("page %p is managed", m)); + ("page %p is managed", m_new)); m_new->oflags = m->oflags & VPO_NOSYNC; pmap_copy_page(m, m_new); m_new->valid = m->valid; From owner-svn-src-all@freebsd.org Mon Mar 26 15:17:32 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 18EC2F4C995; Mon, 26 Mar 2018 15:17:32 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BF93582295; Mon, 26 Mar 2018 15:17:31 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BA4BC69F7; Mon, 26 Mar 2018 15:17:31 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QFHVuw057347; Mon, 26 Mar 2018 15:17:31 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QFHV8J057346; Mon, 26 Mar 2018 15:17:31 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201803261517.w2QFHV8J057346@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 26 Mar 2018 15:17:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331551 - stable/11/cddl/contrib/opensolaris/lib/libdtrace/common X-SVN-Group: stable-11 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/11/cddl/contrib/opensolaris/lib/libdtrace/common X-SVN-Commit-Revision: 331551 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 15:17:32 -0000 Author: markj Date: Mon Mar 26 15:17:31 2018 New Revision: 331551 URL: https://svnweb.freebsd.org/changeset/base/331551 Log: MFC r331222: Given hidden visibility to symbols referenced by the DOF section. Modified: stable/11/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Directory Properties: stable/11/ (props changed) Modified: stable/11/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c ============================================================================== --- stable/11/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Mon Mar 26 15:16:57 2018 (r331550) +++ stable/11/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Mon Mar 26 15:17:31 2018 (r331551) @@ -22,6 +22,7 @@ /* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright 2017-2018 Mark Johnston */ #pragma ident "%Z%%M% %I% %E% SMI" @@ -274,7 +275,7 @@ prepare_elf32(dtrace_hdl_t *dtp, const dof_hdr_t *dof, sym->st_value = 0; sym->st_size = 0; sym->st_info = ELF32_ST_INFO(STB_GLOBAL, STT_FUNC); - sym->st_other = 0; + sym->st_other = ELF32_ST_VISIBILITY(STV_HIDDEN); sym->st_shndx = SHN_UNDEF; rel++; @@ -472,7 +473,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, sym->st_value = 0; sym->st_size = 0; sym->st_info = GELF_ST_INFO(STB_GLOBAL, STT_FUNC); - sym->st_other = 0; + sym->st_other = ELF64_ST_VISIBILITY(STV_HIDDEN); sym->st_shndx = SHN_UNDEF; rel++; From owner-svn-src-all@freebsd.org Mon Mar 26 15:19:46 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8F471F4CB9B; Mon, 26 Mar 2018 15:19:46 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2CC6A8248E; Mon, 26 Mar 2018 15:19:46 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2202C69F9; Mon, 26 Mar 2018 15:19:46 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QFJk3L057634; Mon, 26 Mar 2018 15:19:46 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QFJkPZ057633; Mon, 26 Mar 2018 15:19:46 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201803261519.w2QFJkPZ057633@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 26 Mar 2018 15:19:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331552 - stable/11/sys/vm X-SVN-Group: stable-11 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/11/sys/vm X-SVN-Commit-Revision: 331552 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 15:19:46 -0000 Author: markj Date: Mon Mar 26 15:19:45 2018 New Revision: 331552 URL: https://svnweb.freebsd.org/changeset/base/331552 Log: MFC r331128: Have vm_page_replace() assert that the new page is not enqueued. Modified: stable/11/sys/vm/vm_page.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/vm/vm_page.c ============================================================================== --- stable/11/sys/vm/vm_page.c Mon Mar 26 15:17:31 2018 (r331551) +++ stable/11/sys/vm/vm_page.c Mon Mar 26 15:19:45 2018 (r331552) @@ -1468,7 +1468,9 @@ vm_page_replace(vm_page_t mnew, vm_object_t object, vm VM_OBJECT_ASSERT_WLOCKED(object); KASSERT(mnew->object == NULL, - ("vm_page_replace: page already in object")); + ("vm_page_replace: page %p already in object", mnew)); + KASSERT(mnew->queue == PQ_NONE, + ("vm_page_replace: new page %p is on a paging queue", mnew)); /* * This function mostly follows vm_page_insert() and @@ -1480,7 +1482,7 @@ vm_page_replace(vm_page_t mnew, vm_object_t object, vm mnew->pindex = pindex; mold = vm_radix_replace(&object->rtree, mnew); KASSERT(mold->queue == PQ_NONE, - ("vm_page_replace: mold is on a paging queue")); + ("vm_page_replace: old page %p is on a paging queue", mold)); /* Keep the resident page list in sorted order. */ TAILQ_INSERT_AFTER(&object->memq, mold, mnew, listq); From owner-svn-src-all@freebsd.org Mon Mar 26 15:20:43 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 29048F4CCBC; Mon, 26 Mar 2018 15:20:43 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D20698259F; Mon, 26 Mar 2018 15:20:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CD07E6A09; Mon, 26 Mar 2018 15:20:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QFKgUm058531; Mon, 26 Mar 2018 15:20:42 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QFKglL058530; Mon, 26 Mar 2018 15:20:42 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201803261520.w2QFKglL058530@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 26 Mar 2018 15:20:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331553 - stable/11/sys/cddl/contrib/opensolaris/uts/common/dtrace X-SVN-Group: stable-11 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/11/sys/cddl/contrib/opensolaris/uts/common/dtrace X-SVN-Commit-Revision: 331553 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 15:20:43 -0000 Author: markj Date: Mon Mar 26 15:20:42 2018 New Revision: 331553 URL: https://svnweb.freebsd.org/changeset/base/331553 Log: MFC r331134: Fix an access of an uninitialized variable in dtrace_probe(). Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c Mon Mar 26 15:19:45 2018 (r331552) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c Mon Mar 26 15:20:42 2018 (r331553) @@ -7177,7 +7177,7 @@ dtrace_probe(dtrace_id_t id, uintptr_t arg0, uintptr_t } now = mstate.dtms_timestamp = dtrace_gethrtime(); - mstate.dtms_present |= DTRACE_MSTATE_TIMESTAMP; + mstate.dtms_present = DTRACE_MSTATE_TIMESTAMP; vtime = dtrace_vtime_references != 0; if (vtime && curthread->t_dtrace_start) From owner-svn-src-all@freebsd.org Mon Mar 26 15:21:24 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E8AAF4CD6F; Mon, 26 Mar 2018 15:21:24 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DF9618280C; Mon, 26 Mar 2018 15:21:23 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DAA9B6A3C; Mon, 26 Mar 2018 15:21:23 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QFLNhg059300; Mon, 26 Mar 2018 15:21:23 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QFLNZG059299; Mon, 26 Mar 2018 15:21:23 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201803261521.w2QFLNZG059299@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 26 Mar 2018 15:21:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331554 - stable/11/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall X-SVN-Group: stable-11 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/11/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall X-SVN-Commit-Revision: 331554 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 15:21:24 -0000 Author: markj Date: Mon Mar 26 15:21:23 2018 New Revision: 331554 URL: https://svnweb.freebsd.org/changeset/base/331554 Log: MFC r331135: Use __syscall(2) rather than syscall(2) in syscall/tst.args.c. Modified: stable/11/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c Directory Properties: stable/11/ (props changed) Modified: stable/11/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c ============================================================================== --- stable/11/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c Mon Mar 26 15:20:42 2018 (r331553) +++ stable/11/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/syscall/tst.args.c Mon Mar 26 15:21:23 2018 (r331554) @@ -35,7 +35,7 @@ int main(int argc, char **argv) { for (;;) { - (void) syscall(SYS_mmap, NULL, 1, 2, 3, -1, 0x12345678); + (void) __syscall(SYS_mmap, NULL, 1, 2, 3, -1, 0x12345678); } return (0); From owner-svn-src-all@freebsd.org Mon Mar 26 15:22:26 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86F9EF4CFE7; Mon, 26 Mar 2018 15:22:26 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3D3878298D; Mon, 26 Mar 2018 15:22:26 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 382196B93; Mon, 26 Mar 2018 15:22:26 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QFMPnU062476; Mon, 26 Mar 2018 15:22:26 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QFMP9p062475; Mon, 26 Mar 2018 15:22:25 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201803261522.w2QFMP9p062475@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 26 Mar 2018 15:22:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331555 - stable/11/lib/libc/sys X-SVN-Group: stable-11 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/11/lib/libc/sys X-SVN-Commit-Revision: 331555 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 15:22:26 -0000 Author: markj Date: Mon Mar 26 15:22:25 2018 New Revision: 331555 URL: https://svnweb.freebsd.org/changeset/base/331555 Log: MFC r331260: Remove a lingering inaccuracy from mlock.2. Modified: stable/11/lib/libc/sys/mlock.2 Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/sys/mlock.2 ============================================================================== --- stable/11/lib/libc/sys/mlock.2 Mon Mar 26 15:21:23 2018 (r331554) +++ stable/11/lib/libc/sys/mlock.2 Mon Mar 26 15:22:25 2018 (r331555) @@ -28,7 +28,7 @@ .\" @(#)mlock.2 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd Jan 22, 2018 +.Dd March 20, 2018 .Dt MLOCK 2 .Os .Sh NAME @@ -78,9 +78,7 @@ are removed. Multiple processes may have the same physical pages locked via their own virtual address mappings. A single process may likewise have pages multiply-locked via different virtual -mappings of the same pages or via nested -.Fn mlock -calls on the same address range. +mappings of the same physical pages. Unlocking is performed explicitly by .Fn munlock or implicitly by a call to From owner-svn-src-all@freebsd.org Mon Mar 26 16:31:13 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF690F53259; Mon, 26 Mar 2018 16:31:12 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A1F02858F8; Mon, 26 Mar 2018 16:31:12 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9CCC7768C; Mon, 26 Mar 2018 16:31:12 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QGVCia092787; Mon, 26 Mar 2018 16:31:12 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QGVCll092785; Mon, 26 Mar 2018 16:31:12 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201803261631.w2QGVCll092785@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 26 Mar 2018 16:31:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331557 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 331557 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 16:31:13 -0000 Author: kib Date: Mon Mar 26 16:31:12 2018 New Revision: 331557 URL: https://svnweb.freebsd.org/changeset/base/331557 Log: Allow to specify for vm_fault_quick_hold_pages() that nofault mode should be honored. We must not sleep or acquire any MI VM locks if TDP_NOFAULTING is specified. On the other hand, there were some callers in the tree which set TDP_NOFAULTING for larger scope than needed, I fixed the code which I wrote, but I suspect that linuxkpi and out of tree drm drivers might abuse this still. So only enable the mode for vm_fault_quick_hold_pages() where vm_fault_hold() is not called when specifically asked by user. I decided to use vm_prot_t flag to not change KPI. Since number of flags in vm_prot_t is limited, I reused the same flag which was already consumed for vm_map_lookup(). Reported and tested by: pho (as part of the larger patch) Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D14825 Modified: head/sys/vm/vm.h head/sys/vm/vm_fault.c Modified: head/sys/vm/vm.h ============================================================================== --- head/sys/vm/vm.h Mon Mar 26 16:06:04 2018 (r331556) +++ head/sys/vm/vm.h Mon Mar 26 16:31:12 2018 (r331557) @@ -80,7 +80,9 @@ typedef u_char vm_prot_t; /* protection codes */ #define VM_PROT_WRITE ((vm_prot_t) 0x02) #define VM_PROT_EXECUTE ((vm_prot_t) 0x04) #define VM_PROT_COPY ((vm_prot_t) 0x08) /* copy-on-read */ -#define VM_PROT_FAULT_LOOKUP ((vm_prot_t) 0x010) +#define VM_PROT_PRIV_FLAG ((vm_prot_t) 0x10) +#define VM_PROT_FAULT_LOOKUP VM_PROT_PRIV_FLAG +#define VM_PROT_QUICK_NOFAULT VM_PROT_PRIV_FLAG /* same to save bits */ #define VM_PROT_ALL (VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE) #define VM_PROT_RW (VM_PROT_READ|VM_PROT_WRITE) Modified: head/sys/vm/vm_fault.c ============================================================================== --- head/sys/vm/vm_fault.c Mon Mar 26 16:06:04 2018 (r331556) +++ head/sys/vm/vm_fault.c Mon Mar 26 16:31:12 2018 (r331557) @@ -1524,7 +1524,18 @@ vm_fault_quick_hold_pages(vm_map_t map, vm_offset_t ad * page was mapped at the specified virtual address or that * mapping had insufficient permissions. Attempt to fault in * and hold these pages. + * + * If vm_fault_disable_pagefaults() was called, + * i.e., TDP_NOFAULTING is set, we must not sleep nor + * acquire MD VM locks, which means we must not call + * vm_fault_hold(). Some (out of tree) callers mark + * too wide a code area with vm_fault_disable_pagefaults() + * already, use the VM_PROT_QUICK_NOFAULT flag to request + * the proper behaviour explicitly. */ + if ((prot & VM_PROT_QUICK_NOFAULT) != 0 && + (curthread->td_pflags & TDP_NOFAULTING) != 0) + goto error; for (mp = ma, va = addr; va < end; mp++, va += PAGE_SIZE) if (*mp == NULL && vm_fault_hold(map, va, prot, VM_FAULT_NORMAL, mp) != KERN_SUCCESS) From owner-svn-src-all@freebsd.org Mon Mar 26 18:20:30 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45067F5DB0E; Mon, 26 Mar 2018 18:20:30 +0000 (UTC) (envelope-from garga.bsd@gmail.com) Received: from mail-qk0-x22d.google.com (mail-qk0-x22d.google.com [IPv6:2607:f8b0:400d:c09::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D18356B0E9; Mon, 26 Mar 2018 18:20:29 +0000 (UTC) (envelope-from garga.bsd@gmail.com) Received: by mail-qk0-x22d.google.com with SMTP id 132so21151496qkd.5; Mon, 26 Mar 2018 11:20:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=itMTfGC4NLlNespFtRbVT+SgTHSAT++oST6b97AUV/Q=; b=crjIySOHfAN8e8mItVAoteWdSfK3B5tWfccQSUokClk8d/EBxxHOIU/r9EKLU3lXk4 urSWDKlVBtOnaXBMBn2h6Hbjv/4xznCXSHDhCpWPsniYe9RSh1nY0DEqtPlfOILQGtZV bKRTaAjfBC7mXfc/UKE3oDlIr0n0DapyszIhnmT1qIC8dE1oazYUNjtM86okMaOb68t5 pzhgvwYhxlzcdxIzU7hdcHhzhxfAa12yUZHJN1q7xcewOQbzKBtv+28M4me7uE12ndpc uvV/Och+XzNVCXr8csm0WR7hRY7Rf6msghnByKBlIdcHETcpVjC8Xkhf/TDXT6bpNsEe hstA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=itMTfGC4NLlNespFtRbVT+SgTHSAT++oST6b97AUV/Q=; b=UoO/N+xgyccYzgy1Dz77bMGw99AfgOOlnrJW6UN8+Vn3jZ6tnIp9R9siks1Id+L2ZJ tUzeD4/jV0JtHwANlRKcg6iWWA2mSMAjFBqloDGB9PnWMzcxqzrbEegaPaaG5luRPtIl qKYg15u8Dw6z6S2z2d8Lr99LDTdvWFUfSY3fc68vnHBvtaUT1l+g468Q/ULzxy0qcho6 mpI/gpr+ixfh3ELxYvIg0SuFrdl6eQT3+clay6TaAENJOVSxQpxaPLIpRmB+5i+S+vFx QHG6AdiY56KI4DFehwq8IljLkzk5tvwNQnvEh1Q9HcO9jsjYQvd5wmeIzHUi+guHlxOA FMkw== X-Gm-Message-State: AElRT7GAQYcbpsBc7Q141+Wp7CqdCcrL9txmCjsi22ZVlmveBzILIhTB AHiGSz+dFXXGDwrxlwcZjJa8yTHx X-Google-Smtp-Source: AIpwx49MTPH59uBxfLYuueNUtP2wSS+8HsmwkIV3z5QKjqW0jkTPP1R33hzUkqVEa8PA++H9x3cjaw== X-Received: by 10.55.75.146 with SMTP id y140mr16142383qka.222.1522088429151; Mon, 26 Mar 2018 11:20:29 -0700 (PDT) Received: from mbp.home ([177.53.86.172]) by smtp.gmail.com with ESMTPSA id r125sm11922800qkd.46.2018.03.26.11.20.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Mar 2018 11:20:28 -0700 (PDT) Sender: Renato Botelho Subject: Re: svn commit: r331364 - head/release/tools To: Glen Barber , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201803221749.w2MHnRNR012755@repo.freebsd.org> From: Renato Botelho Message-ID: Date: Mon, 26 Mar 2018 15:20:25 -0300 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <201803221749.w2MHnRNR012755@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 18:20:30 -0000 On 22/03/18 14:49, Glen Barber wrote: > Author: gjb > Date: Thu Mar 22 17:49:27 2018 > New Revision: 331364 > URL: https://svnweb.freebsd.org/changeset/base/331364 > > Log: > Remove google_accounts_manager from VM_RC_LIST in the GCE configuration > file, no longer needed. > > PR: 221714 > MFC after: 3 days > Sponsored by: The FreeBSD Foundation > > Modified: > head/release/tools/gce.conf > > Modified: head/release/tools/gce.conf > ============================================================================== > --- head/release/tools/gce.conf Thu Mar 22 17:46:38 2018 (r331363) > +++ head/release/tools/gce.conf Thu Mar 22 17:49:27 2018 (r331364) > @@ -9,7 +9,7 @@ export VM_EXTRA_PACKAGES="firstboot-freebsd-update fir > sysutils/py-google-compute-engine" > > # Set to a list of third-party software to enable in rc.conf(5). > -export VM_RC_LIST="google_accounts_manager ntpd sshd firstboot_growfs \ > +export VM_RC_LIST="ntpd sshd firstboot_growfs \ > firstboot_pkgs firstboot_freebsd_update google_startup \ > google_accounts_daemon google_clock_skew_daemon > google_instance_setup google_ip_forwarding_daemon First 2 lines end up with '\' but following 2 lines don't. It would be nice to add just to keep it consistent IMO -- Renato Botelho From owner-svn-src-all@freebsd.org Mon Mar 26 18:24:16 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D3DD3F5E05F; Mon, 26 Mar 2018 18:24:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8A9CE6B632; Mon, 26 Mar 2018 18:24:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 85829108C9; Mon, 26 Mar 2018 18:24:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QIOGWm054500; Mon, 26 Mar 2018 18:24:16 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QIOGFX054499; Mon, 26 Mar 2018 18:24:16 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201803261824.w2QIOGFX054499@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 26 Mar 2018 18:24:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331559 - head/release/tools X-SVN-Group: head X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: head/release/tools X-SVN-Commit-Revision: 331559 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 18:24:17 -0000 Author: gjb Date: Mon Mar 26 18:24:16 2018 New Revision: 331559 URL: https://svnweb.freebsd.org/changeset/base/331559 Log: Escape trailing newlines in a long variable list for consistency. Submitted by: garga MFC after: 3 days Sponsored by: The FreeBSD Foundation Modified: head/release/tools/gce.conf Modified: head/release/tools/gce.conf ============================================================================== --- head/release/tools/gce.conf Mon Mar 26 18:23:16 2018 (r331558) +++ head/release/tools/gce.conf Mon Mar 26 18:24:16 2018 (r331559) @@ -11,8 +11,8 @@ export VM_EXTRA_PACKAGES="firstboot-freebsd-update fir # Set to a list of third-party software to enable in rc.conf(5). export VM_RC_LIST="ntpd sshd firstboot_growfs \ firstboot_pkgs firstboot_freebsd_update google_startup \ - google_accounts_daemon google_clock_skew_daemon - google_instance_setup google_ip_forwarding_daemon + google_accounts_daemon google_clock_skew_daemon \ + google_instance_setup google_ip_forwarding_daemon \ google_network_setup" vm_extra_install_base() { From owner-svn-src-all@freebsd.org Mon Mar 26 18:24:52 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D6B1F5E108; Mon, 26 Mar 2018 18:24:52 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 590F96B783; Mon, 26 Mar 2018 18:24:51 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by freefall.freebsd.org (Postfix) with ESMTPS id EAD47BF37; Mon, 26 Mar 2018 18:24:50 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Date: Mon, 26 Mar 2018 18:24:49 +0000 From: Glen Barber To: Renato Botelho Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r331364 - head/release/tools Message-ID: <20180326182449.GG81123@FreeBSD.org> References: <201803221749.w2MHnRNR012755@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="sLx0z+5FKKtIVDwd" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.1 (2017-09-22) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 18:24:52 -0000 --sLx0z+5FKKtIVDwd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Mar 26, 2018 at 03:20:25PM -0300, Renato Botelho wrote: > On 22/03/18 14:49, Glen Barber wrote: > > Author: gjb > > Date: Thu Mar 22 17:49:27 2018 > > New Revision: 331364 > > URL: https://svnweb.freebsd.org/changeset/base/331364 > >=20 > > Log: > > Remove google_accounts_manager from VM_RC_LIST in the GCE configurati= on > > file, no longer needed. > > =20 > > PR: 221714 > > MFC after: 3 days > > Sponsored by: The FreeBSD Foundation > >=20 > > Modified: > > head/release/tools/gce.conf > >=20 > > Modified: head/release/tools/gce.conf > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/release/tools/gce.conf Thu Mar 22 17:46:38 2018 (r331363) > > +++ head/release/tools/gce.conf Thu Mar 22 17:49:27 2018 (r331364) > > @@ -9,7 +9,7 @@ export VM_EXTRA_PACKAGES=3D"firstboot-freebsd-update fir > > sysutils/py-google-compute-engine" > > =20 > > # Set to a list of third-party software to enable in rc.conf(5). > > -export VM_RC_LIST=3D"google_accounts_manager ntpd sshd firstboot_growf= s \ > > +export VM_RC_LIST=3D"ntpd sshd firstboot_growfs \ > > firstboot_pkgs firstboot_freebsd_update google_startup \ > > google_accounts_daemon google_clock_skew_daemon > > google_instance_setup google_ip_forwarding_daemon >=20 > First 2 lines end up with '\' but following 2 lines don't. It would be > nice to add just to keep it consistent IMO >=20 Agreed. Thanks for noticing. Fixed in r331559. Glen --sLx0z+5FKKtIVDwd Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEjRJAPC5sqwhs9k2jAxRYpUeP4pMFAlq5OuwACgkQAxRYpUeP 4pMyfA//RdjWlz0zwtKTFikA8mDhKhxtRR6y8734dhijkLdBeNh1cwZVs9luURLc rfitlKK35YtyfVrwHplTjsp1sN3PCAIQEK3FFxj/g5/p0IqGhfhGk7SEMvzdi14J o3QBBgx5s3mePBXYINEXEmoV6h+tzxAl7nVHhYw8jBSZibEafzlypCPNMhJPKZ4c n2/3v7KpvTNkIcPJ6QZKd8/jMWGpnIQYyos72Wdal8I/wxqdF7bcOnB/3N7u3jwO Ebo1mwPMY21GkBFZEBIdMx3ENtekd2qGMhe6/QyhrPMZlvhGqNd+MnWH1QdYTwQp murD4ygYOF2utYnnakZ5EC7LkicgcJzhTitCyl1lO1Oes7YutPZQdLciC/8G3LIW 1YU4nkyyYR8hlVY+uKNLJY4QmPHe/M3Ma3HiU/NzYGC2H5QYzPOqW3Vm9gRSKu23 HKfBEO/Y4Qcn418Eye20DSiQBnlxo9PnWT1wM6yZKFJnLT6PCuJyMWygb18dQRil Jy2zHUU10PCNTSs+FbG4ihYPglledcKeHcG6u+C4aJ+no9P/bvg9mKqrKmXoDDFr DRoaP4XXRGxe/qEAjnPVuOLHo412UhZs6JCV9c7g01Ubq8O1TWJsFA6eJhEeN3Rm leqZCHEdOfScCkwtfLSwmMnpQ4mY4WtihuyX4h52lXNBF/R5p74= =BnKx -----END PGP SIGNATURE----- --sLx0z+5FKKtIVDwd-- From owner-svn-src-all@freebsd.org Mon Mar 26 18:36:18 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86F6BF5F046; Mon, 26 Mar 2018 18:36:18 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 39DBD6C235; Mon, 26 Mar 2018 18:36:18 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 25DB310AA1; Mon, 26 Mar 2018 18:36:18 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QIaHMw059755; Mon, 26 Mar 2018 18:36:17 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QIaHA3059754; Mon, 26 Mar 2018 18:36:17 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201803261836.w2QIaHA3059754@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Mon, 26 Mar 2018 18:36:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331561 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 331561 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 18:36:18 -0000 Author: jeff Date: Mon Mar 26 18:36:17 2018 New Revision: 331561 URL: https://svnweb.freebsd.org/changeset/base/331561 Log: Fix a bug introduced in r329612 that slowly invalidates all clean bufs. Reported by: bde Reviewed by: bde Sponsored by: Netflix, Dell/EMC Isilon Modified: head/sys/kern/vfs_bio.c Modified: head/sys/kern/vfs_bio.c ============================================================================== --- head/sys/kern/vfs_bio.c Mon Mar 26 18:34:03 2018 (r331560) +++ head/sys/kern/vfs_bio.c Mon Mar 26 18:36:17 2018 (r331561) @@ -821,7 +821,8 @@ bufspace_daemon(void *arg) * which will inefficiently trade bufs with bqrelse * until we return to condition 2. */ - do { + while (bd->bd_bufspace > bd->bd_lobufspace || + bd->bd_freebuffers < bd->bd_hifreebuffers) { if (buf_recycle(bd, false) != 0) { if (bd_flushall(bd)) continue; @@ -842,9 +843,7 @@ bufspace_daemon(void *arg) BD_UNLOCK(bd); } maybe_yield(); - } while (bd->bd_bufspace > bd->bd_lobufspace || - bd->bd_freebuffers < bd->bd_hifreebuffers); - + } bufspace_daemon_wait(bd); } } From owner-svn-src-all@freebsd.org Mon Mar 26 18:39:40 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 13454F5F414; Mon, 26 Mar 2018 18:39:40 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B95816C4B0; Mon, 26 Mar 2018 18:39:39 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B403B10ACF; Mon, 26 Mar 2018 18:39:39 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QIddQI059921; Mon, 26 Mar 2018 18:39:39 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QIdc6H059911; Mon, 26 Mar 2018 18:39:38 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201803261839.w2QIdc6H059911@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Mon, 26 Mar 2018 18:39:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331562 - head/release/arm X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/release/arm X-SVN-Commit-Revision: 331562 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 18:39:40 -0000 Author: manu Date: Mon Mar 26 18:39:38 2018 New Revision: 331562 URL: https://svnweb.freebsd.org/changeset/base/331562 Log: release: arm: Copy boot.scr from ports Latest u-boot update need u-boot script to load and start ubldr. (See D14230 for more details) Copy this file for our arm release on the fat partition. Approved by: gjb Modified: head/release/arm/BANANAPI.conf head/release/arm/BEAGLEBONE.conf head/release/arm/CUBIEBOARD.conf head/release/arm/CUBIEBOARD2.conf head/release/arm/CUBOX-HUMMINGBOARD.conf head/release/arm/GUMSTIX.conf head/release/arm/PANDABOARD.conf head/release/arm/RPI-B.conf head/release/arm/RPI2.conf head/release/arm/WANDBOARD.conf Modified: head/release/arm/BANANAPI.conf ============================================================================== --- head/release/arm/BANANAPI.conf Mon Mar 26 18:36:17 2018 (r331561) +++ head/release/arm/BANANAPI.conf Mon Mar 26 18:39:38 2018 (r331562) @@ -25,6 +25,7 @@ arm_install_uboot() { of=/dev/${mddev} bs=1k seek=8 conv=sync chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}" chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT} + chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT} chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \ ${FATMOUNT}/ubldr.bin Modified: head/release/arm/BEAGLEBONE.conf ============================================================================== --- head/release/arm/BEAGLEBONE.conf Mon Mar 26 18:36:17 2018 (r331561) +++ head/release/arm/BEAGLEBONE.conf Mon Mar 26 18:39:38 2018 (r331562) @@ -25,6 +25,7 @@ arm_install_uboot() { chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT} chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/MLO ${FATMOUNT}/MLO chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/u-boot.img ${FATMOUNT}/u-boot.img + chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \ ${FATMOUNT}/ubldr.bin chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot Modified: head/release/arm/CUBIEBOARD.conf ============================================================================== --- head/release/arm/CUBIEBOARD.conf Mon Mar 26 18:36:17 2018 (r331561) +++ head/release/arm/CUBIEBOARD.conf Mon Mar 26 18:39:38 2018 (r331562) @@ -25,6 +25,7 @@ arm_install_uboot() { of=/dev/${mddev} bs=1k seek=8 conv=sync chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}" chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT} + chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT} chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \ ${FATMOUNT}/ubldr.bin Modified: head/release/arm/CUBIEBOARD2.conf ============================================================================== --- head/release/arm/CUBIEBOARD2.conf Mon Mar 26 18:36:17 2018 (r331561) +++ head/release/arm/CUBIEBOARD2.conf Mon Mar 26 18:39:38 2018 (r331562) @@ -25,6 +25,7 @@ arm_install_uboot() { of=/dev/${mddev} bs=1k seek=8 conv=sync chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}" chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT} + chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT} chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \ ${FATMOUNT}/ubldr.bin Modified: head/release/arm/CUBOX-HUMMINGBOARD.conf ============================================================================== --- head/release/arm/CUBOX-HUMMINGBOARD.conf Mon Mar 26 18:36:17 2018 (r331561) +++ head/release/arm/CUBOX-HUMMINGBOARD.conf Mon Mar 26 18:39:38 2018 (r331562) @@ -25,6 +25,7 @@ arm_install_uboot() { of=/dev/${mddev} bs=512 seek=2 conv=sync chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}" chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT} + chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT} chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \ ${FATMOUNT}/ubldr.bin Modified: head/release/arm/GUMSTIX.conf ============================================================================== --- head/release/arm/GUMSTIX.conf Mon Mar 26 18:36:17 2018 (r331561) +++ head/release/arm/GUMSTIX.conf Mon Mar 26 18:39:38 2018 (r331562) @@ -24,6 +24,7 @@ arm_install_uboot() { chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT} chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/MLO ${FATMOUNT}/MLO chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/u-boot.img ${FATMOUNT}/u-boot.img + chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \ ${FATMOUNT}/ubldr.bin chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot Modified: head/release/arm/PANDABOARD.conf ============================================================================== --- head/release/arm/PANDABOARD.conf Mon Mar 26 18:36:17 2018 (r331561) +++ head/release/arm/PANDABOARD.conf Mon Mar 26 18:39:38 2018 (r331562) @@ -25,6 +25,7 @@ arm_install_uboot() { chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT} chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/MLO ${FATMOUNT}/MLO chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/u-boot.img ${FATMOUNT}/u-boot.img + chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \ ${FATMOUNT}/ubldr.bin chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot Modified: head/release/arm/RPI-B.conf ============================================================================== --- head/release/arm/RPI-B.conf Mon Mar 26 18:36:17 2018 (r331561) +++ head/release/arm/RPI-B.conf Mon Mar 26 18:39:38 2018 (r331562) @@ -39,6 +39,7 @@ arm_install_uboot() { ${FATMOUNT}/ubldr.bin chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/dtb/rpi.dtb \ ${FATMOUNT}/rpi.dtb + chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot sync umount_loop ${CHROOTDIR}/${FATMOUNT} Modified: head/release/arm/RPI2.conf ============================================================================== --- head/release/arm/RPI2.conf Mon Mar 26 18:36:17 2018 (r331561) +++ head/release/arm/RPI2.conf Mon Mar 26 18:39:38 2018 (r331562) @@ -40,6 +40,7 @@ arm_install_uboot() { ${FATMOUNT}/ubldr.bin chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/dtb/rpi2.dtb \ ${FATMOUNT}/rpi2.dtb + chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot sync umount_loop ${CHROOTDIR}/${FATMOUNT} Modified: head/release/arm/WANDBOARD.conf ============================================================================== --- head/release/arm/WANDBOARD.conf Mon Mar 26 18:36:17 2018 (r331561) +++ head/release/arm/WANDBOARD.conf Mon Mar 26 18:39:38 2018 (r331562) @@ -25,6 +25,7 @@ arm_install_uboot() { of=/dev/${mddev} bs=512 seek=2 conv=sync chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}" chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT} + chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT} chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \ ${FATMOUNT}/ubldr.bin From owner-svn-src-all@freebsd.org Mon Mar 26 19:01:23 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6F78DF60FD2; Mon, 26 Mar 2018 19:01:23 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1E7436D5E6; Mon, 26 Mar 2018 19:01:23 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1921710E39; Mon, 26 Mar 2018 19:01:23 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QJ1MM6074383; Mon, 26 Mar 2018 19:01:22 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QJ1MUj074381; Mon, 26 Mar 2018 19:01:22 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201803261901.w2QJ1MUj074381@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 26 Mar 2018 19:01:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331563 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 331563 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 19:01:23 -0000 Author: kevans Date: Mon Mar 26 19:01:22 2018 New Revision: 331563 URL: https://svnweb.freebsd.org/changeset/base/331563 Log: lualoader: Implement try_include and use it for including the local module This provides a way to optionally include a module without having to wrap it in filesystem checks. try_include is a little more robust, using the lua search path instead of forcing us to explicitly consider all of the places we could want to include a module. Errors are still generally raised from trying to load the module, but ENOENT will not get raised unless we're doing a verbose load. This will also be used to split out logo/brand graphics into their own files so that we can safely scale up the number of graphics included without worrying about the extra memory consumption- opting to lazily load graphics instead. Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D14658 Modified: head/stand/lua/core.lua head/stand/lua/loader.lua Modified: head/stand/lua/core.lua ============================================================================== --- head/stand/lua/core.lua Mon Mar 26 18:39:38 2018 (r331562) +++ head/stand/lua/core.lua Mon Mar 26 19:01:22 2018 (r331563) @@ -41,6 +41,26 @@ local function composeLoaderCmd(cmd_name, argstr) return cmd_name end +-- Globals +-- try_include will return the loaded module on success, or nil on failure. +-- A message will also be printed on failure, with one exception: non-verbose +-- loading will suppress 'module not found' errors. +function try_include(module) + local status, ret = pcall(require, module) + -- ret is the module if we succeeded. + if status then + return ret + end + -- Otherwise, ret is just a message; filter out ENOENT unless we're + -- doing a verbose load. As a consequence, try_include prior to loading + -- configuration will not display 'module not found'. All other errors + -- in loading will be printed. + if config.verbose or ret:match("^module .+ not found") == nil then + print(ret) + end + return nil +end + -- Module exports -- Commonly appearing constants core.KEY_BACKSPACE = 8 Modified: head/stand/lua/loader.lua ============================================================================== --- head/stand/lua/loader.lua Mon Mar 26 18:39:38 2018 (r331562) +++ head/stand/lua/loader.lua Mon Mar 26 19:01:22 2018 (r331563) @@ -43,11 +43,7 @@ if not core.isMenuSkipped() then end local password = require("password") -local result = lfs.attributes("/boot/lua/local.lua") --- Effectively discard any errors; we'll just act if it succeeds. -if result ~= nil then - require("local") -end +try_include("local") config.load() if core.isUEFIBoot() then From owner-svn-src-all@freebsd.org Mon Mar 26 19:06:26 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6C9F5F617D7; Mon, 26 Mar 2018 19:06:26 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2360C6DA99; Mon, 26 Mar 2018 19:06:26 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 172B710F9A; Mon, 26 Mar 2018 19:06:26 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QJ6P9M074786; Mon, 26 Mar 2018 19:06:25 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QJ6PSW074785; Mon, 26 Mar 2018 19:06:25 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201803261906.w2QJ6PSW074785@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 26 Mar 2018 19:06:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331564 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 331564 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 19:06:26 -0000 Author: kevans Date: Mon Mar 26 19:06:25 2018 New Revision: 331564 URL: https://svnweb.freebsd.org/changeset/base/331564 Log: lualoader: Actually re-raise error in try_include It was previously only printed, but we do actually want to raise it as a full blown error so that things don't look OK when they've actually gone wrong. The second parameter to error, level, is set to 2 here so that the error message reflects the position of the try_include caller, rather than the try_include itself. Example: LUA ERROR: /boot/lua/loader.lua:46: /boot/lua/local.lua:1: attempt to call a nil value (global 'cxcint'). Modified: head/stand/lua/core.lua Modified: head/stand/lua/core.lua ============================================================================== --- head/stand/lua/core.lua Mon Mar 26 19:01:22 2018 (r331563) +++ head/stand/lua/core.lua Mon Mar 26 19:06:25 2018 (r331564) @@ -56,7 +56,7 @@ function try_include(module) -- configuration will not display 'module not found'. All other errors -- in loading will be printed. if config.verbose or ret:match("^module .+ not found") == nil then - print(ret) + error(ret, 2) end return nil end From owner-svn-src-all@freebsd.org Mon Mar 26 19:08:20 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2FD5EF61AA2; Mon, 26 Mar 2018 19:08:20 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D18C66DCD7; Mon, 26 Mar 2018 19:08:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C81EF10F9B; Mon, 26 Mar 2018 19:08:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QJ8JLh074888; Mon, 26 Mar 2018 19:08:19 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QJ8Jni074887; Mon, 26 Mar 2018 19:08:19 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201803261908.w2QJ8Jni074887@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 26 Mar 2018 19:08:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331565 - head/tools/boot X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/tools/boot X-SVN-Commit-Revision: 331565 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 19:08:20 -0000 Author: kevans Date: Mon Mar 26 19:08:19 2018 New Revision: 331565 URL: https://svnweb.freebsd.org/changeset/base/331565 Log: lua-lint: Hint that try_include is now an accepted global try_include was added in r331563. Modified: head/tools/boot/lua-lint.sh Modified: head/tools/boot/lua-lint.sh ============================================================================== --- head/tools/boot/lua-lint.sh Mon Mar 26 19:06:25 2018 (r331564) +++ head/tools/boot/lua-lint.sh Mon Mar 26 19:08:19 2018 (r331565) @@ -17,4 +17,4 @@ LUACHECK=$(which luacheck) cd $(make -V SRCTOP)/stand ${LUACHECK} . --globals loader --globals lfs --globals io.getchar \ --globals io.ischar --globals printc --globals cli_execute \ - --globals cli_execute_unparsed --std lua53 + --globals cli_execute_unparsed --globals try_include --std lua53 From owner-svn-src-all@freebsd.org Mon Mar 26 19:53:03 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 921FEF65C49; Mon, 26 Mar 2018 19:53:03 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 41CFC70187; Mon, 26 Mar 2018 19:53:03 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 23990117FF; Mon, 26 Mar 2018 19:53:03 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QJr3NE001083; Mon, 26 Mar 2018 19:53:03 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QJr2VB001080; Mon, 26 Mar 2018 19:53:02 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201803261953.w2QJr2VB001080@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 26 Mar 2018 19:53:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331566 - head/sys/dev/vmware/vmci X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/dev/vmware/vmci X-SVN-Commit-Revision: 331566 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 19:53:03 -0000 Author: cem Date: Mon Mar 26 19:53:02 2018 New Revision: 331566 URL: https://svnweb.freebsd.org/changeset/base/331566 Log: vmci(4): Fix GCC build and rationalize vmci_kernel_defs.h To fix the GCC build, remove multiple redundant declarations of vmci_send_datagram() (the copy in vmci.h as well as the extern definition in vmci_queue_pair.c were wholly redundant). Also to fix the GCC build, include a non-empty format string in the vmci(4) definition of ASSERT(). It seems harmless either way, but adding the stringified invariant is easier than masking the warning. The other vmci_kernel_defs.h changes are cosmetic and simply match macros to existing definitions. Reported by: GCC 6.4.0 Sponsored by: Dell EMC Isilon Modified: head/sys/dev/vmware/vmci/vmci.h head/sys/dev/vmware/vmci/vmci_kernel_defs.h head/sys/dev/vmware/vmci/vmci_queue_pair.c Modified: head/sys/dev/vmware/vmci/vmci.h ============================================================================== --- head/sys/dev/vmware/vmci/vmci.h Mon Mar 26 19:08:19 2018 (r331565) +++ head/sys/dev/vmware/vmci/vmci.h Mon Mar 26 19:53:02 2018 (r331566) @@ -73,7 +73,6 @@ struct vmci_softc { int vmci_dma_malloc(bus_size_t size, bus_size_t align, struct vmci_dma_alloc *dma); void vmci_dma_free(struct vmci_dma_alloc *); -int vmci_send_datagram(struct vmci_datagram *dg); int vmci_schedule_delayed_work_fn(vmci_work_fn *work_fn, void *data); #endif /* !_VMCI_H_ */ Modified: head/sys/dev/vmware/vmci/vmci_kernel_defs.h ============================================================================== --- head/sys/dev/vmware/vmci/vmci_kernel_defs.h Mon Mar 26 19:08:19 2018 (r331565) +++ head/sys/dev/vmware/vmci/vmci_kernel_defs.h Mon Mar 26 19:53:02 2018 (r331566) @@ -16,17 +16,17 @@ typedef uint32_t PPN; -#define ASSERT(cond) KASSERT(cond, ("")) +#define ASSERT(cond) KASSERT(cond, ("%s", #cond)) #define ASSERT_ON_COMPILE(e) _Static_assert(e, #e); -#define LIKELY(_exp) __builtin_expect(!!(_exp), 1) -#define UNLIKELY(_exp) __builtin_expect((_exp), 0) +#define LIKELY(_exp) __predict_true(_exp) +#define UNLIKELY(_exp) __predict_false(_exp) -#define CONST64U(c) c##uL +#define CONST64U(c) UINT64_C(c) -#define ARRAYSIZE(a) (sizeof(a) / sizeof(*(a))) +#define ARRAYSIZE(a) nitems(a) -#define ROUNDUP(x, y) (((x) + (y) - 1) / (y) * (y)) -#define CEILING(x, y) (((x) + (y) - 1) / (y)) +#define ROUNDUP(x, y) roundup(x, y) +#define CEILING(x, y) howmany(x, y) #endif /* !_VMCI_KERNEL_DEFS_H_ */ Modified: head/sys/dev/vmware/vmci/vmci_queue_pair.c ============================================================================== --- head/sys/dev/vmware/vmci/vmci_queue_pair.c Mon Mar 26 19:08:19 2018 (r331565) +++ head/sys/dev/vmware/vmci/vmci_queue_pair.c Mon Mar 26 19:53:02 2018 (r331566) @@ -74,8 +74,6 @@ static int vmci_queue_pair_alloc_guest_work(struct vmc static int vmci_queue_pair_detach_guest_work(struct vmci_handle handle); static int vmci_queue_pair_detach_hypercall(struct vmci_handle handle); -extern int vmci_send_datagram(struct vmci_datagram *); - /* *------------------------------------------------------------------------------ * From owner-svn-src-all@freebsd.org Mon Mar 26 19:53:37 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E781F65D21; Mon, 26 Mar 2018 19:53:37 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B91B2702E5; Mon, 26 Mar 2018 19:53:36 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B3DA911800; Mon, 26 Mar 2018 19:53:36 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QJraSg001148; Mon, 26 Mar 2018 19:53:36 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QJraXx001144; Mon, 26 Mar 2018 19:53:36 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201803261953.w2QJraXx001144@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Mon, 26 Mar 2018 19:53:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331567 - head/sys/netinet/cc X-SVN-Group: head X-SVN-Commit-Author: sbruno X-SVN-Commit-Paths: head/sys/netinet/cc X-SVN-Commit-Revision: 331567 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 19:53:37 -0000 Author: sbruno Date: Mon Mar 26 19:53:36 2018 New Revision: 331567 URL: https://svnweb.freebsd.org/changeset/base/331567 Log: CC Cubic: fix underflow for cubic_cwnd() Singed calculations in cubic_cwnd() can result in negative cwnd value which is then cast to an unsigned value. Values less than 1 mss are generally bad for other parts of the code, also fixed. Submitted by: Jason Eggleston Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D14141 Modified: head/sys/netinet/cc/cc.h head/sys/netinet/cc/cc_cubic.c head/sys/netinet/cc/cc_cubic.h Modified: head/sys/netinet/cc/cc.h ============================================================================== --- head/sys/netinet/cc/cc.h Mon Mar 26 19:53:02 2018 (r331566) +++ head/sys/netinet/cc/cc.h Mon Mar 26 19:53:36 2018 (r331567) @@ -102,6 +102,8 @@ struct cc_var { #define CCF_ACKNOW 0x0008 /* Will this ack be sent now? */ #define CCF_IPHDR_CE 0x0010 /* Does this packet set CE bit? */ #define CCF_TCPHDR_CWR 0x0020 /* Does this packet set CWR bit? */ +#define CCF_MAX_CWND 0x0040 /* Have we reached maximum cwnd? */ +#define CCF_CHG_MAX_CWND 0x0080 /* Cubic max_cwnd changed, for K */ /* ACK types passed to the ack_received() hook. */ #define CC_ACK 0x0001 /* Regular in sequence ACK. */ Modified: head/sys/netinet/cc/cc_cubic.c ============================================================================== --- head/sys/netinet/cc/cc_cubic.c Mon Mar 26 19:53:02 2018 (r331566) +++ head/sys/netinet/cc/cc_cubic.c Mon Mar 26 19:53:36 2018 (r331567) @@ -88,6 +88,8 @@ struct cubic { unsigned long max_cwnd; /* cwnd at the previous congestion event. */ unsigned long prev_max_cwnd; + /* Cached value for t_maxseg when K was computed */ + uint32_t k_maxseg; /* Number of congestion events. */ uint32_t num_cong_events; /* Minimum observed rtt in ticks. */ @@ -124,6 +126,9 @@ cubic_ack_received(struct cc_var *ccv, uint16_t type) cubic_data = ccv->cc_data; cubic_record_rtt(ccv); + if (ccv->flags & CCF_MAX_CWND) + return; + /* * Regular ACK and we're not in cong/fast recovery and we're cwnd * limited and we're either not doing ABC or are slow starting or are @@ -151,6 +156,12 @@ cubic_ack_received(struct cc_var *ccv, uint16_t type) cubic_data->mean_rtt_ticks, cubic_data->max_cwnd, CCV(ccv, t_maxseg)); + if (ccv->flags & CCF_CHG_MAX_CWND || cubic_data->k_maxseg != CCV(ccv, t_maxseg)) { + cubic_data->K = cubic_k(cubic_data->max_cwnd / CCV(ccv, t_maxseg)); + cubic_data->k_maxseg = CCV(ccv, t_maxseg); + ccv->flags &= ~(CCF_MAX_CWND|CCF_CHG_MAX_CWND); + } + w_cubic_next = cubic_cwnd(ticks_since_cong + cubic_data->mean_rtt_ticks, cubic_data->max_cwnd, CCV(ccv, t_maxseg), cubic_data->K); @@ -162,13 +173,18 @@ cubic_ack_received(struct cc_var *ccv, uint16_t type) * TCP-friendly region, follow tf * cwnd growth. */ - CCV(ccv, snd_cwnd) = w_tf; + CCV(ccv, snd_cwnd) = ulmin(w_tf, TCP_MAXWIN << CCV(ccv, snd_scale)); else if (CCV(ccv, snd_cwnd) < w_cubic_next) { /* * Concave or convex region, follow CUBIC * cwnd growth. */ + if (w_cubic_next >= TCP_MAXWIN << CCV(ccv, snd_scale)) { + w_cubic_next = TCP_MAXWIN << CCV(ccv, snd_scale); + ccv->flags |= CCF_MAX_CWND; + } + w_cubic_next = ulmin(w_cubic_next, TCP_MAXWIN << CCV(ccv, snd_scale)); if (V_tcp_do_rfc3465) CCV(ccv, snd_cwnd) = w_cubic_next; else @@ -186,8 +202,10 @@ cubic_ack_received(struct cc_var *ccv, uint16_t type) * max_cwnd. */ if (cubic_data->num_cong_events == 0 && - cubic_data->max_cwnd < CCV(ccv, snd_cwnd)) + cubic_data->max_cwnd < CCV(ccv, snd_cwnd)) { cubic_data->max_cwnd = CCV(ccv, snd_cwnd); + ccv->flags |= CCF_CHG_MAX_CWND; + } } } } @@ -238,6 +256,7 @@ cubic_cong_signal(struct cc_var *ccv, uint32_t type) cubic_data->num_cong_events++; cubic_data->prev_max_cwnd = cubic_data->max_cwnd; cubic_data->max_cwnd = CCV(ccv, snd_cwnd); + ccv->flags |= CCF_CHG_MAX_CWND; } ENTER_RECOVERY(CCV(ccv, t_flags)); } @@ -250,6 +269,8 @@ cubic_cong_signal(struct cc_var *ccv, uint32_t type) cubic_data->prev_max_cwnd = cubic_data->max_cwnd; cubic_data->max_cwnd = CCV(ccv, snd_cwnd); cubic_data->t_last_cong = ticks; + ccv->flags |= CCF_CHG_MAX_CWND; + ccv->flags &= ~CCF_MAX_CWND; CCV(ccv, snd_cwnd) = CCV(ccv, snd_ssthresh); ENTER_CONGRECOVERY(CCV(ccv, t_flags)); } @@ -266,6 +287,7 @@ cubic_cong_signal(struct cc_var *ccv, uint32_t type) if (CCV(ccv, t_rxtshift) >= 2) { cubic_data->num_cong_events++; cubic_data->t_last_cong = ticks; + ccv->flags &= ~CCF_MAX_CWND; } break; } @@ -284,6 +306,7 @@ cubic_conn_init(struct cc_var *ccv) * get used. */ cubic_data->max_cwnd = CCV(ccv, snd_cwnd); + ccv->flags |= CCF_CHG_MAX_CWND; } static int @@ -308,9 +331,11 @@ cubic_post_recovery(struct cc_var *ccv) pipe = 0; /* Fast convergence heuristic. */ - if (cubic_data->max_cwnd < cubic_data->prev_max_cwnd) + if (cubic_data->max_cwnd < cubic_data->prev_max_cwnd) { cubic_data->max_cwnd = (cubic_data->max_cwnd * CUBIC_FC_FACTOR) >> CUBIC_SHIFT; + ccv->flags |= CCF_CHG_MAX_CWND; + } if (IN_FASTRECOVERY(CCV(ccv, t_flags))) { /* @@ -333,6 +358,7 @@ cubic_post_recovery(struct cc_var *ccv) cubic_data->max_cwnd) >> CUBIC_SHIFT)); } cubic_data->t_last_cong = ticks; + ccv->flags &= ~CCF_MAX_CWND; /* Calculate the average RTT between congestion epochs. */ if (cubic_data->epoch_ack_count > 0 && @@ -343,7 +369,6 @@ cubic_post_recovery(struct cc_var *ccv) cubic_data->epoch_ack_count = 0; cubic_data->sum_rtt_ticks = 0; - cubic_data->K = cubic_k(cubic_data->max_cwnd / CCV(ccv, t_maxseg)); } /* Modified: head/sys/netinet/cc/cc_cubic.h ============================================================================== --- head/sys/netinet/cc/cc_cubic.h Mon Mar 26 19:53:02 2018 (r331566) +++ head/sys/netinet/cc/cc_cubic.h Mon Mar 26 19:53:36 2018 (r331567) @@ -41,6 +41,8 @@ #ifndef _NETINET_CC_CUBIC_H_ #define _NETINET_CC_CUBIC_H_ +#include + /* Number of bits of precision for fixed point math calcs. */ #define CUBIC_SHIFT 8 @@ -162,8 +164,6 @@ cubic_k(unsigned long wmax_pkts) /* * Compute the new cwnd value using an implementation of eqn 1 from the I-D. * Thanks to Kip Macy for help debugging this function. - * - * XXXLAS: Characterise bounds for overflow. */ static __inline unsigned long cubic_cwnd(int ticks_since_cong, unsigned long wmax, uint32_t smss, int64_t K) @@ -175,6 +175,15 @@ cubic_cwnd(int ticks_since_cong, unsigned long wmax, u /* t - K, with CUBIC_SHIFT worth of precision. */ cwnd = ((int64_t)(ticks_since_cong << CUBIC_SHIFT) - (K * hz)) / hz; + /* moved this calculation up because it cannot overflow or underflow */ + cwnd *= CUBIC_C_FACTOR * smss; + + if (cwnd > 2097151) /* 2^21 cubed is long max */ + return INT_MAX; + + if (cwnd < -2097152) /* -2^21 cubed is long min */ + return smss; + /* (t - K)^3, with CUBIC_SHIFT^3 worth of precision. */ cwnd *= (cwnd * cwnd); @@ -183,8 +192,17 @@ cubic_cwnd(int ticks_since_cong, unsigned long wmax, u * The down shift by CUBIC_SHIFT_4 is because cwnd has 4 lots of * CUBIC_SHIFT included in the value. 3 from the cubing of cwnd above, * and an extra from multiplying through by CUBIC_C_FACTOR. + * + * The original formula was this: + * cwnd = ((cwnd * CUBIC_C_FACTOR * smss) >> CUBIC_SHIFT_4) + wmax; + * + * CUBIC_C_FACTOR and smss factors were moved up to an earlier + * calculation to simplify overflow and underflow detection. */ - cwnd = ((cwnd * CUBIC_C_FACTOR * smss) >> CUBIC_SHIFT_4) + wmax; + cwnd = (cwnd >> CUBIC_SHIFT_4) + wmax; + + if (cwnd < 0) + return 1; return ((unsigned long)cwnd); } From owner-svn-src-all@freebsd.org Mon Mar 26 20:04:05 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7D202F66802; Mon, 26 Mar 2018 20:04:05 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5AD4570680; Mon, 26 Mar 2018 19:59:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 50F1B11815; Mon, 26 Mar 2018 19:59:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QJx1AZ001390; Mon, 26 Mar 2018 19:59:01 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QJx030001387; Mon, 26 Mar 2018 19:59:00 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803261959.w2QJx030001387@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 19:59:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331568 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 331568 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:04:05 -0000 Author: hselasky Date: Mon Mar 26 19:59:00 2018 New Revision: 331568 URL: https://svnweb.freebsd.org/changeset/base/331568 Log: MFC r325659: Add support for disabling and enabling RX and TX DMA rings in mlx5en(4). This is useful for supporting setups similar to Netmap. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 19:53:36 2018 (r331567) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 19:59:00 2018 (r331568) @@ -408,6 +408,8 @@ struct mlx5e_params { m(+1, u64 tx_completion_fact_max, "tx_completion_fact_max", "Maximum completion event ratio") \ m(+1, u64 hw_lro, "hw_lro", "set to enable hw_lro") \ m(+1, u64 cqe_zipping, "cqe_zipping", "0 : CQE zipping disabled") \ + m(+1, u64 modify_tx_dma, "modify_tx_dma", "0: Enable TX 1: Disable TX") \ + m(+1, u64 modify_rx_dma, "modify_rx_dma", "0: Enable RX 1: Disable RX") \ m(+1, u64 diag_pci_enable, "diag_pci_enable", "0: Disabled 1: Enabled") \ m(+1, u64 diag_general_enable, "diag_general_enable", "0: Disabled 1: Enabled") @@ -838,5 +840,8 @@ int mlx5e_enable_sq(struct mlx5e_sq *, struct mlx5e_sq int mlx5e_modify_sq(struct mlx5e_sq *, int curr_state, int next_state); void mlx5e_disable_sq(struct mlx5e_sq *); void mlx5e_drain_sq(struct mlx5e_sq *); +void mlx5e_modify_tx_dma(struct mlx5e_priv *priv, uint8_t value); +void mlx5e_modify_rx_dma(struct mlx5e_priv *priv, uint8_t value); +void mlx5e_resume_sq(struct mlx5e_sq *sq); #endif /* _MLX5_EN_H_ */ Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Mar 26 19:53:36 2018 (r331567) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Mar 26 19:59:00 2018 (r331568) @@ -377,6 +377,32 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARGS) mlx5e_open_locked(priv->ifp); break; + case MLX5_PARAM_OFFSET(modify_tx_dma): + /* check if network interface is opened */ + if (was_opened) { + priv->params_ethtool.modify_tx_dma = + priv->params_ethtool.modify_tx_dma ? 1 : 0; + /* modify tx according to value */ + mlx5e_modify_tx_dma(priv, value != 0); + } else { + /* if closed force enable tx */ + priv->params_ethtool.modify_tx_dma = 0; + } + break; + + case MLX5_PARAM_OFFSET(modify_rx_dma): + /* check if network interface is opened */ + if (was_opened) { + priv->params_ethtool.modify_rx_dma = + priv->params_ethtool.modify_rx_dma ? 1 : 0; + /* modify rx according to value */ + mlx5e_modify_rx_dma(priv, value != 0); + } else { + /* if closed force enable rx */ + priv->params_ethtool.modify_rx_dma = 0; + } + break; + case MLX5_PARAM_OFFSET(diag_pci_enable): priv->params_ethtool.diag_pci_enable = priv->params_ethtool.diag_pci_enable ? 1 : 0; Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 19:53:36 2018 (r331567) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 19:59:00 2018 (r331568) @@ -2928,6 +2928,164 @@ sysctl_firmware(SYSCTL_HANDLER_ARGS) } static void +mlx5e_disable_tx_dma(struct mlx5e_channel *ch) +{ + int i; + + for (i = 0; i < ch->num_tc; i++) + mlx5e_drain_sq(&ch->sq[i]); +} + +static void +mlx5e_reset_sq_doorbell_record(struct mlx5e_sq *sq) +{ + + sq->doorbell.d32[0] = cpu_to_be32(MLX5_OPCODE_NOP); + sq->doorbell.d32[1] = cpu_to_be32(sq->sqn << 8); + mlx5e_tx_notify_hw(sq, sq->doorbell.d32, 0); + sq->doorbell.d64 = 0; +} + +void +mlx5e_resume_sq(struct mlx5e_sq *sq) +{ + int err; + + /* check if already enabled */ + if (sq->stopped == 0) + return; + + err = mlx5e_modify_sq(sq, MLX5_SQC_STATE_ERR, + MLX5_SQC_STATE_RST); + if (err != 0) { + if_printf(sq->ifp, + "mlx5e_modify_sq() from ERR to RST failed: %d\n", err); + } + + sq->cc = 0; + sq->pc = 0; + + /* reset doorbell prior to moving from RST to RDY */ + mlx5e_reset_sq_doorbell_record(sq); + + err = mlx5e_modify_sq(sq, MLX5_SQC_STATE_RST, + MLX5_SQC_STATE_RDY); + if (err != 0) { + if_printf(sq->ifp, + "mlx5e_modify_sq() from RST to RDY failed: %d\n", err); + } + + mtx_lock(&sq->lock); + sq->cev_next_state = MLX5E_CEV_STATE_INITIAL; + sq->stopped = 0; + mtx_unlock(&sq->lock); + +} + +static void +mlx5e_enable_tx_dma(struct mlx5e_channel *ch) +{ + int i; + + for (i = 0; i < ch->num_tc; i++) + mlx5e_resume_sq(&ch->sq[i]); +} + +static void +mlx5e_disable_rx_dma(struct mlx5e_channel *ch) +{ + struct mlx5e_rq *rq = &ch->rq; + int err; + + mtx_lock(&rq->mtx); + rq->enabled = 0; + callout_stop(&rq->watchdog); + mtx_unlock(&rq->mtx); + + callout_drain(&rq->watchdog); + + err = mlx5e_modify_rq(rq, MLX5_RQC_STATE_RDY, MLX5_RQC_STATE_ERR); + if (err != 0) { + if_printf(rq->ifp, + "mlx5e_modify_rq() from RDY to RST failed: %d\n", err); + } + + while (!mlx5_wq_ll_is_empty(&rq->wq)) { + msleep(1); + rq->cq.mcq.comp(&rq->cq.mcq); + } + + /* + * Transitioning into RST state will allow the FW to track less ERR state queues, + * thus reducing the recv queue flushing time + */ + err = mlx5e_modify_rq(rq, MLX5_RQC_STATE_ERR, MLX5_RQC_STATE_RST); + if (err != 0) { + if_printf(rq->ifp, + "mlx5e_modify_rq() from ERR to RST failed: %d\n", err); + } +} + +static void +mlx5e_enable_rx_dma(struct mlx5e_channel *ch) +{ + struct mlx5e_rq *rq = &ch->rq; + int err; + + rq->wq.wqe_ctr = 0; + mlx5_wq_ll_update_db_record(&rq->wq); + err = mlx5e_modify_rq(rq, MLX5_RQC_STATE_RST, MLX5_RQC_STATE_RDY); + if (err != 0) { + if_printf(rq->ifp, + "mlx5e_modify_rq() from RST to RDY failed: %d\n", err); + } + + rq->enabled = 1; + + rq->cq.mcq.comp(&rq->cq.mcq); +} + +void +mlx5e_modify_tx_dma(struct mlx5e_priv *priv, uint8_t value) +{ + int i; + + if (priv->channel == NULL) + return; + + for (i = 0; i < priv->params.num_channels; i++) { + + if (!priv->channel[i]) + continue; + + if (value) + mlx5e_disable_tx_dma(priv->channel[i]); + else + mlx5e_enable_tx_dma(priv->channel[i]); + } +} + +void +mlx5e_modify_rx_dma(struct mlx5e_priv *priv, uint8_t value) +{ + int i; + + if (priv->channel == NULL) + return; + + for (i = 0; i < priv->params.num_channels; i++) { + + if (!priv->channel[i]) + continue; + + if (value) + mlx5e_disable_rx_dma(priv->channel[i]); + else + mlx5e_enable_rx_dma(priv->channel[i]); + } +} + +static void mlx5e_add_hw_stats(struct mlx5e_priv *priv) { SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(priv->sysctl_hw), From owner-svn-src-all@freebsd.org Mon Mar 26 20:04:07 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E21FDF66851; Mon, 26 Mar 2018 20:04:06 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6190470A5C; Mon, 26 Mar 2018 20:01:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5C28211989; Mon, 26 Mar 2018 20:01:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QK1xlZ005445; Mon, 26 Mar 2018 20:01:59 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QK1xbH005442; Mon, 26 Mar 2018 20:01:59 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262001.w2QK1xbH005442@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:01:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331570 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 331570 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:04:07 -0000 Author: hselasky Date: Mon Mar 26 20:01:58 2018 New Revision: 331570 URL: https://svnweb.freebsd.org/changeset/base/331570 Log: MFC r325661: Expose the current hardware MTU in mlx5en(4) as a separate entry in the sysctl tree. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 20:00:30 2018 (r331569) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 20:01:58 2018 (r331570) @@ -412,6 +412,7 @@ struct mlx5e_params { m(+1, u64 modify_rx_dma, "modify_rx_dma", "0: Enable RX 1: Disable RX") \ m(+1, u64 diag_pci_enable, "diag_pci_enable", "0: Disabled 1: Enabled") \ m(+1, u64 diag_general_enable, "diag_general_enable", "0: Disabled 1: Enabled") \ + m(+1, u64 hw_mtu, "hw_mtu", "Current hardware MTU value") \ m(+1, u64 mc_local_lb, "mc_local_lb", "0: Local multicast loopback enabled 1: Disabled") \ m(+1, u64 uc_local_lb, "uc_local_lb", "0: Local unicast loopback enabled 1: Disabled") Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Mar 26 20:00:30 2018 (r331569) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Mar 26 20:01:58 2018 (r331570) @@ -778,7 +778,8 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) return; for (x = 0; x != MLX5E_PARAMS_NUM; x++) { /* check for read-only parameter */ - if (strstr(mlx5e_params_desc[2 * x], "_max") != NULL) { + if (strstr(mlx5e_params_desc[2 * x], "_max") != NULL || + strstr(mlx5e_params_desc[2 * x], "_mtu") != NULL) { SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(node), OID_AUTO, mlx5e_params_desc[2 * x], CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_MPSAFE, priv, x, &mlx5e_ethtool_handler, "QU", Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 20:00:30 2018 (r331569) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 20:01:58 2018 (r331570) @@ -2298,10 +2298,13 @@ mlx5e_set_dev_port_mtu(struct ifnet *ifp, int sw_mtu) __func__, sw_mtu, err); return (err); } + + ifp->if_mtu = sw_mtu; err = mlx5_query_port_oper_mtu(mdev, &hw_mtu); if (err) { if_printf(ifp, "Query port MTU, after setting new " "MTU value, failed\n"); + return (err); } else if (MLX5E_HW2SW_MTU(hw_mtu) < sw_mtu) { err = -E2BIG, if_printf(ifp, "Port MTU %d is smaller than " @@ -2311,7 +2314,8 @@ mlx5e_set_dev_port_mtu(struct ifnet *ifp, int sw_mtu) if_printf(ifp, "Port MTU %d is bigger than " "ifp mtu %d\n", hw_mtu, sw_mtu); } - ifp->if_mtu = sw_mtu; + priv->params_ethtool.hw_mtu = hw_mtu; + return (err); } From owner-svn-src-all@freebsd.org Mon Mar 26 20:04:06 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49BCFF66819; Mon, 26 Mar 2018 20:04:06 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 936F070796; Mon, 26 Mar 2018 20:00:30 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8DE0311825; Mon, 26 Mar 2018 20:00:30 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QK0UnX001519; Mon, 26 Mar 2018 20:00:30 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QK0UrP001517; Mon, 26 Mar 2018 20:00:30 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262000.w2QK0UrP001517@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:00:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331569 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 331569 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:04:06 -0000 Author: hselasky Date: Mon Mar 26 20:00:30 2018 New Revision: 331569 URL: https://svnweb.freebsd.org/changeset/base/331569 Log: MFC r325660: Add support for configuring local multicast and unicast data traffic loopback in mlx5en(4) driver via the sysctl interface. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 19:59:00 2018 (r331568) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 20:00:30 2018 (r331569) @@ -411,7 +411,9 @@ struct mlx5e_params { m(+1, u64 modify_tx_dma, "modify_tx_dma", "0: Enable TX 1: Disable TX") \ m(+1, u64 modify_rx_dma, "modify_rx_dma", "0: Enable RX 1: Disable RX") \ m(+1, u64 diag_pci_enable, "diag_pci_enable", "0: Disabled 1: Enabled") \ - m(+1, u64 diag_general_enable, "diag_general_enable", "0: Disabled 1: Enabled") + m(+1, u64 diag_general_enable, "diag_general_enable", "0: Disabled 1: Enabled") \ + m(+1, u64 mc_local_lb, "mc_local_lb", "0: Local multicast loopback enabled 1: Disabled") \ + m(+1, u64 uc_local_lb, "uc_local_lb", "0: Local unicast loopback enabled 1: Disabled") #define MLX5E_PARAMS_NUM (0 MLX5E_PARAMS(MLX5E_STATS_COUNT)) Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Mar 26 19:59:00 2018 (r331568) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Mar 26 20:00:30 2018 (r331569) @@ -421,6 +421,30 @@ mlx5e_ethtool_handler(SYSCTL_HANDLER_ARGS) priv->params_ethtool.diag_general_enable); break; + case MLX5_PARAM_OFFSET(mc_local_lb): + priv->params_ethtool.mc_local_lb = + priv->params_ethtool.mc_local_lb ? 1 : 0; + + if (MLX5_CAP_GEN(priv->mdev, disable_local_lb)) { + error = mlx5_nic_vport_modify_local_lb(priv->mdev, + MLX5_LOCAL_MC_LB, priv->params_ethtool.mc_local_lb); + } else { + error = EOPNOTSUPP; + } + break; + + case MLX5_PARAM_OFFSET(uc_local_lb): + priv->params_ethtool.uc_local_lb = + priv->params_ethtool.uc_local_lb ? 1 : 0; + + if (MLX5_CAP_GEN(priv->mdev, disable_local_lb)) { + error = mlx5_nic_vport_modify_local_lb(priv->mdev, + MLX5_LOCAL_UC_LB, priv->params_ethtool.uc_local_lb); + } else { + error = EOPNOTSUPP; + } + break; + default: break; } @@ -731,6 +755,20 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) priv->params_ethtool.hw_lro = priv->params.hw_lro_en; priv->params_ethtool.cqe_zipping = priv->params.cqe_zipping_en; mlx5e_ethtool_sync_tx_completion_fact(priv); + + /* get default values for local loopback, if any */ + if (MLX5_CAP_GEN(priv->mdev, disable_local_lb)) { + int err; + u8 val; + + err = mlx5_nic_vport_query_local_lb(priv->mdev, MLX5_LOCAL_MC_LB, &val); + if (err == 0) + priv->params_ethtool.mc_local_lb = val; + + err = mlx5_nic_vport_query_local_lb(priv->mdev, MLX5_LOCAL_UC_LB, &val); + if (err == 0) + priv->params_ethtool.uc_local_lb = val; + } /* create root node */ node = SYSCTL_ADD_NODE(&priv->sysctl_ctx, From owner-svn-src-all@freebsd.org Mon Mar 26 20:05:23 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9F75F66BA7; Mon, 26 Mar 2018 20:05:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9091F70D17; Mon, 26 Mar 2018 20:05:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7231E119B3; Mon, 26 Mar 2018 20:05:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QK5MkV006284; Mon, 26 Mar 2018 20:05:22 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QK5MHq006283; Mon, 26 Mar 2018 20:05:22 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262005.w2QK5MHq006283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:05:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331571 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 331571 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:05:23 -0000 Author: hselasky Date: Mon Mar 26 20:05:22 2018 New Revision: 331571 URL: https://svnweb.freebsd.org/changeset/base/331571 Log: MFC r330598: Use a macro in mlx5_command_str() instead of copying OP name. linux commit 42ca502e179d0654ef441333a9d0f35c948734f3 Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Mar 26 20:01:58 2018 (r331570) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Mar 26 20:05:22 2018 (r331571) @@ -296,403 +296,141 @@ static void dump_buf(void *buf, int size, int data_onl const char *mlx5_command_str(int command) { - switch (command) { - case MLX5_CMD_OP_QUERY_HCA_CAP: - return "QUERY_HCA_CAP"; + #define MLX5_COMMAND_STR_CASE(__cmd) case MLX5_CMD_OP_ ## __cmd: return #__cmd - case MLX5_CMD_OP_SET_HCA_CAP: - return "SET_HCA_CAP"; - - case MLX5_CMD_OP_QUERY_ADAPTER: - return "QUERY_ADAPTER"; - - case MLX5_CMD_OP_INIT_HCA: - return "INIT_HCA"; - - case MLX5_CMD_OP_TEARDOWN_HCA: - return "TEARDOWN_HCA"; - - case MLX5_CMD_OP_ENABLE_HCA: - return "MLX5_CMD_OP_ENABLE_HCA"; - - case MLX5_CMD_OP_DISABLE_HCA: - return "MLX5_CMD_OP_DISABLE_HCA"; - - case MLX5_CMD_OP_QUERY_PAGES: - return "QUERY_PAGES"; - - case MLX5_CMD_OP_MANAGE_PAGES: - return "MANAGE_PAGES"; - - case MLX5_CMD_OP_QUERY_ISSI: - return "QUERY_ISSI"; - - case MLX5_CMD_OP_SET_ISSI: - return "SET_ISSI"; - - case MLX5_CMD_OP_CREATE_MKEY: - return "CREATE_MKEY"; - - case MLX5_CMD_OP_QUERY_MKEY: - return "QUERY_MKEY"; - - case MLX5_CMD_OP_DESTROY_MKEY: - return "DESTROY_MKEY"; - - case MLX5_CMD_OP_QUERY_SPECIAL_CONTEXTS: - return "QUERY_SPECIAL_CONTEXTS"; - - case MLX5_CMD_OP_PAGE_FAULT_RESUME: - return "PAGE_FAULT_RESUME"; - - case MLX5_CMD_OP_CREATE_EQ: - return "CREATE_EQ"; - - case MLX5_CMD_OP_DESTROY_EQ: - return "DESTROY_EQ"; - - case MLX5_CMD_OP_QUERY_EQ: - return "QUERY_EQ"; - - case MLX5_CMD_OP_GEN_EQE: - return "GEN_EQE"; - - case MLX5_CMD_OP_CREATE_CQ: - return "CREATE_CQ"; - - case MLX5_CMD_OP_DESTROY_CQ: - return "DESTROY_CQ"; - - case MLX5_CMD_OP_QUERY_CQ: - return "QUERY_CQ"; - - case MLX5_CMD_OP_MODIFY_CQ: - return "MODIFY_CQ"; - - case MLX5_CMD_OP_CREATE_QP: - return "CREATE_QP"; - - case MLX5_CMD_OP_DESTROY_QP: - return "DESTROY_QP"; - - case MLX5_CMD_OP_RST2INIT_QP: - return "RST2INIT_QP"; - - case MLX5_CMD_OP_INIT2RTR_QP: - return "INIT2RTR_QP"; - - case MLX5_CMD_OP_RTR2RTS_QP: - return "RTR2RTS_QP"; - - case MLX5_CMD_OP_RTS2RTS_QP: - return "RTS2RTS_QP"; - - case MLX5_CMD_OP_SQERR2RTS_QP: - return "SQERR2RTS_QP"; - - case MLX5_CMD_OP_2ERR_QP: - return "2ERR_QP"; - - case MLX5_CMD_OP_2RST_QP: - return "2RST_QP"; - - case MLX5_CMD_OP_QUERY_QP: - return "QUERY_QP"; - - case MLX5_CMD_OP_SQD_RTS_QP: - return "SQD_RTS_QP"; - - case MLX5_CMD_OP_MAD_IFC: - return "MAD_IFC"; - - case MLX5_CMD_OP_INIT2INIT_QP: - return "INIT2INIT_QP"; - - case MLX5_CMD_OP_CREATE_PSV: - return "CREATE_PSV"; - - case MLX5_CMD_OP_DESTROY_PSV: - return "DESTROY_PSV"; - - case MLX5_CMD_OP_CREATE_SRQ: - return "CREATE_SRQ"; - - case MLX5_CMD_OP_DESTROY_SRQ: - return "DESTROY_SRQ"; - - case MLX5_CMD_OP_QUERY_SRQ: - return "QUERY_SRQ"; - - case MLX5_CMD_OP_ARM_RQ: - return "ARM_RQ"; - - case MLX5_CMD_OP_CREATE_XRC_SRQ: - return "CREATE_XRC_SRQ"; - - case MLX5_CMD_OP_DESTROY_XRC_SRQ: - return "DESTROY_XRC_SRQ"; - - case MLX5_CMD_OP_QUERY_XRC_SRQ: - return "QUERY_XRC_SRQ"; - - case MLX5_CMD_OP_ARM_XRC_SRQ: - return "ARM_XRC_SRQ"; - - case MLX5_CMD_OP_CREATE_DCT: - return "CREATE_DCT"; - - case MLX5_CMD_OP_SET_DC_CNAK_TRACE: - return "SET_DC_CNAK_TRACE"; - - case MLX5_CMD_OP_DESTROY_DCT: - return "DESTROY_DCT"; - - case MLX5_CMD_OP_DRAIN_DCT: - return "DRAIN_DCT"; - - case MLX5_CMD_OP_QUERY_DCT: - return "QUERY_DCT"; - - case MLX5_CMD_OP_ARM_DCT_FOR_KEY_VIOLATION: - return "ARM_DCT_FOR_KEY_VIOLATION"; - - case MLX5_CMD_OP_QUERY_VPORT_STATE: - return "QUERY_VPORT_STATE"; - - case MLX5_CMD_OP_MODIFY_VPORT_STATE: - return "MODIFY_VPORT_STATE"; - - case MLX5_CMD_OP_QUERY_ESW_VPORT_CONTEXT: - return "QUERY_ESW_VPORT_CONTEXT"; - - case MLX5_CMD_OP_MODIFY_ESW_VPORT_CONTEXT: - return "MODIFY_ESW_VPORT_CONTEXT"; - - case MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT: - return "QUERY_NIC_VPORT_CONTEXT"; - - case MLX5_CMD_OP_MODIFY_NIC_VPORT_CONTEXT: - return "MODIFY_NIC_VPORT_CONTEXT"; - - case MLX5_CMD_OP_QUERY_ROCE_ADDRESS: - return "QUERY_ROCE_ADDRESS"; - - case MLX5_CMD_OP_SET_ROCE_ADDRESS: - return "SET_ROCE_ADDRESS"; - - case MLX5_CMD_OP_QUERY_HCA_VPORT_CONTEXT: - return "QUERY_HCA_VPORT_CONTEXT"; - - case MLX5_CMD_OP_MODIFY_HCA_VPORT_CONTEXT: - return "MODIFY_HCA_VPORT_CONTEXT"; - - case MLX5_CMD_OP_QUERY_HCA_VPORT_GID: - return "QUERY_HCA_VPORT_GID"; - - case MLX5_CMD_OP_QUERY_HCA_VPORT_PKEY: - return "QUERY_HCA_VPORT_PKEY"; - - case MLX5_CMD_OP_QUERY_VPORT_COUNTER: - return "QUERY_VPORT_COUNTER"; - - case MLX5_CMD_OP_SET_WOL_ROL: - return "SET_WOL_ROL"; - - case MLX5_CMD_OP_QUERY_WOL_ROL: - return "QUERY_WOL_ROL"; - - case MLX5_CMD_OP_ALLOC_Q_COUNTER: - return "ALLOC_Q_COUNTER"; - - case MLX5_CMD_OP_DEALLOC_Q_COUNTER: - return "DEALLOC_Q_COUNTER"; - - case MLX5_CMD_OP_QUERY_Q_COUNTER: - return "QUERY_Q_COUNTER"; - - case MLX5_CMD_OP_ALLOC_PD: - return "ALLOC_PD"; - - case MLX5_CMD_OP_DEALLOC_PD: - return "DEALLOC_PD"; - - case MLX5_CMD_OP_ALLOC_UAR: - return "ALLOC_UAR"; - - case MLX5_CMD_OP_DEALLOC_UAR: - return "DEALLOC_UAR"; - - case MLX5_CMD_OP_CONFIG_INT_MODERATION: - return "CONFIG_INT_MODERATION"; - - case MLX5_CMD_OP_ATTACH_TO_MCG: - return "ATTACH_TO_MCG"; - - case MLX5_CMD_OP_DETACH_FROM_MCG: - return "DETACH_FROM_MCG"; - - case MLX5_CMD_OP_GET_DROPPED_PACKET_LOG: - return "GET_DROPPED_PACKET_LOG"; - - case MLX5_CMD_OP_QUERY_MAD_DEMUX: - return "QUERY_MAD_DEMUX"; - - case MLX5_CMD_OP_SET_MAD_DEMUX: - return "SET_MAD_DEMUX"; - - case MLX5_CMD_OP_NOP: - return "NOP"; - - case MLX5_CMD_OP_ALLOC_XRCD: - return "ALLOC_XRCD"; - - case MLX5_CMD_OP_DEALLOC_XRCD: - return "DEALLOC_XRCD"; - - case MLX5_CMD_OP_ALLOC_TRANSPORT_DOMAIN: - return "ALLOC_TRANSPORT_DOMAIN"; - - case MLX5_CMD_OP_DEALLOC_TRANSPORT_DOMAIN: - return "DEALLOC_TRANSPORT_DOMAIN"; - - case MLX5_CMD_OP_QUERY_CONG_STATUS: - return "QUERY_CONG_STATUS"; - - case MLX5_CMD_OP_MODIFY_CONG_STATUS: - return "MODIFY_CONG_STATUS"; - - case MLX5_CMD_OP_QUERY_CONG_PARAMS: - return "QUERY_CONG_PARAMS"; - - case MLX5_CMD_OP_MODIFY_CONG_PARAMS: - return "MODIFY_CONG_PARAMS"; - - case MLX5_CMD_OP_QUERY_CONG_STATISTICS: - return "QUERY_CONG_STATISTICS"; - - case MLX5_CMD_OP_ADD_VXLAN_UDP_DPORT: - return "ADD_VXLAN_UDP_DPORT"; - - case MLX5_CMD_OP_DELETE_VXLAN_UDP_DPORT: - return "DELETE_VXLAN_UDP_DPORT"; - - case MLX5_CMD_OP_SET_L2_TABLE_ENTRY: - return "SET_L2_TABLE_ENTRY"; - - case MLX5_CMD_OP_QUERY_L2_TABLE_ENTRY: - return "QUERY_L2_TABLE_ENTRY"; - - case MLX5_CMD_OP_DELETE_L2_TABLE_ENTRY: - return "DELETE_L2_TABLE_ENTRY"; - - case MLX5_CMD_OP_CREATE_RMP: - return "CREATE_RMP"; - - case MLX5_CMD_OP_MODIFY_RMP: - return "MODIFY_RMP"; - - case MLX5_CMD_OP_DESTROY_RMP: - return "DESTROY_RMP"; - - case MLX5_CMD_OP_QUERY_RMP: - return "QUERY_RMP"; - - case MLX5_CMD_OP_CREATE_RQT: - return "CREATE_RQT"; - - case MLX5_CMD_OP_MODIFY_RQT: - return "MODIFY_RQT"; - - case MLX5_CMD_OP_DESTROY_RQT: - return "DESTROY_RQT"; - - case MLX5_CMD_OP_QUERY_RQT: - return "QUERY_RQT"; - - case MLX5_CMD_OP_ACCESS_REG: - return "MLX5_CMD_OP_ACCESS_REG"; - - case MLX5_CMD_OP_CREATE_SQ: - return "CREATE_SQ"; - - case MLX5_CMD_OP_MODIFY_SQ: - return "MODIFY_SQ"; - - case MLX5_CMD_OP_DESTROY_SQ: - return "DESTROY_SQ"; - - case MLX5_CMD_OP_QUERY_SQ: - return "QUERY_SQ"; - - case MLX5_CMD_OP_CREATE_RQ: - return "CREATE_RQ"; - - case MLX5_CMD_OP_MODIFY_RQ: - return "MODIFY_RQ"; - - case MLX5_CMD_OP_DESTROY_RQ: - return "DESTROY_RQ"; - - case MLX5_CMD_OP_QUERY_RQ: - return "QUERY_RQ"; - - case MLX5_CMD_OP_CREATE_TIR: - return "CREATE_TIR"; - - case MLX5_CMD_OP_MODIFY_TIR: - return "MODIFY_TIR"; - - case MLX5_CMD_OP_DESTROY_TIR: - return "DESTROY_TIR"; - - case MLX5_CMD_OP_QUERY_TIR: - return "QUERY_TIR"; - - case MLX5_CMD_OP_CREATE_TIS: - return "CREATE_TIS"; - - case MLX5_CMD_OP_MODIFY_TIS: - return "MODIFY_TIS"; - - case MLX5_CMD_OP_DESTROY_TIS: - return "DESTROY_TIS"; - - case MLX5_CMD_OP_QUERY_TIS: - return "QUERY_TIS"; - - case MLX5_CMD_OP_CREATE_FLOW_TABLE: - return "CREATE_FLOW_TABLE"; - - case MLX5_CMD_OP_DESTROY_FLOW_TABLE: - return "DESTROY_FLOW_TABLE"; - - case MLX5_CMD_OP_QUERY_FLOW_TABLE: - return "QUERY_FLOW_TABLE"; - - case MLX5_CMD_OP_CREATE_FLOW_GROUP: - return "CREATE_FLOW_GROUP"; - - case MLX5_CMD_OP_DESTROY_FLOW_GROUP: - return "DESTROY_FLOW_GROUP"; - - case MLX5_CMD_OP_QUERY_FLOW_GROUP: - return "QUERY_FLOW_GROUP"; - - case MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY: - return "SET_FLOW_TABLE_ENTRY"; - - case MLX5_CMD_OP_QUERY_FLOW_TABLE_ENTRY: - return "QUERY_FLOW_TABLE_ENTRY"; - - case MLX5_CMD_OP_DELETE_FLOW_TABLE_ENTRY: - return "DELETE_FLOW_TABLE_ENTRY"; - - case MLX5_CMD_OP_SET_DIAGNOSTICS: - return "MLX5_CMD_OP_SET_DIAGNOSTICS"; - - case MLX5_CMD_OP_QUERY_DIAGNOSTICS: - return "MLX5_CMD_OP_QUERY_DIAGNOSTICS"; - + switch (command) { + MLX5_COMMAND_STR_CASE(QUERY_HCA_CAP); + MLX5_COMMAND_STR_CASE(SET_HCA_CAP); + MLX5_COMMAND_STR_CASE(QUERY_ADAPTER); + MLX5_COMMAND_STR_CASE(INIT_HCA); + MLX5_COMMAND_STR_CASE(TEARDOWN_HCA); + MLX5_COMMAND_STR_CASE(ENABLE_HCA); + MLX5_COMMAND_STR_CASE(DISABLE_HCA); + MLX5_COMMAND_STR_CASE(QUERY_PAGES); + MLX5_COMMAND_STR_CASE(MANAGE_PAGES); + MLX5_COMMAND_STR_CASE(QUERY_ISSI); + MLX5_COMMAND_STR_CASE(SET_ISSI); + MLX5_COMMAND_STR_CASE(CREATE_MKEY); + MLX5_COMMAND_STR_CASE(QUERY_MKEY); + MLX5_COMMAND_STR_CASE(DESTROY_MKEY); + MLX5_COMMAND_STR_CASE(QUERY_SPECIAL_CONTEXTS); + MLX5_COMMAND_STR_CASE(PAGE_FAULT_RESUME); + MLX5_COMMAND_STR_CASE(CREATE_EQ); + MLX5_COMMAND_STR_CASE(DESTROY_EQ); + MLX5_COMMAND_STR_CASE(QUERY_EQ); + MLX5_COMMAND_STR_CASE(GEN_EQE); + MLX5_COMMAND_STR_CASE(CREATE_CQ); + MLX5_COMMAND_STR_CASE(DESTROY_CQ); + MLX5_COMMAND_STR_CASE(QUERY_CQ); + MLX5_COMMAND_STR_CASE(MODIFY_CQ); + MLX5_COMMAND_STR_CASE(CREATE_QP); + MLX5_COMMAND_STR_CASE(DESTROY_QP); + MLX5_COMMAND_STR_CASE(RST2INIT_QP); + MLX5_COMMAND_STR_CASE(INIT2RTR_QP); + MLX5_COMMAND_STR_CASE(RTR2RTS_QP); + MLX5_COMMAND_STR_CASE(RTS2RTS_QP); + MLX5_COMMAND_STR_CASE(SQERR2RTS_QP); + MLX5_COMMAND_STR_CASE(2ERR_QP); + MLX5_COMMAND_STR_CASE(2RST_QP); + MLX5_COMMAND_STR_CASE(QUERY_QP); + MLX5_COMMAND_STR_CASE(SQD_RTS_QP); + MLX5_COMMAND_STR_CASE(MAD_IFC); + MLX5_COMMAND_STR_CASE(INIT2INIT_QP); + MLX5_COMMAND_STR_CASE(CREATE_PSV); + MLX5_COMMAND_STR_CASE(DESTROY_PSV); + MLX5_COMMAND_STR_CASE(CREATE_SRQ); + MLX5_COMMAND_STR_CASE(DESTROY_SRQ); + MLX5_COMMAND_STR_CASE(QUERY_SRQ); + MLX5_COMMAND_STR_CASE(ARM_RQ); + MLX5_COMMAND_STR_CASE(CREATE_XRC_SRQ); + MLX5_COMMAND_STR_CASE(DESTROY_XRC_SRQ); + MLX5_COMMAND_STR_CASE(QUERY_XRC_SRQ); + MLX5_COMMAND_STR_CASE(ARM_XRC_SRQ); + MLX5_COMMAND_STR_CASE(CREATE_DCT); + MLX5_COMMAND_STR_CASE(SET_DC_CNAK_TRACE); + MLX5_COMMAND_STR_CASE(DESTROY_DCT); + MLX5_COMMAND_STR_CASE(DRAIN_DCT); + MLX5_COMMAND_STR_CASE(QUERY_DCT); + MLX5_COMMAND_STR_CASE(ARM_DCT_FOR_KEY_VIOLATION); + MLX5_COMMAND_STR_CASE(QUERY_VPORT_STATE); + MLX5_COMMAND_STR_CASE(MODIFY_VPORT_STATE); + MLX5_COMMAND_STR_CASE(QUERY_ESW_VPORT_CONTEXT); + MLX5_COMMAND_STR_CASE(MODIFY_ESW_VPORT_CONTEXT); + MLX5_COMMAND_STR_CASE(QUERY_NIC_VPORT_CONTEXT); + MLX5_COMMAND_STR_CASE(MODIFY_NIC_VPORT_CONTEXT); + MLX5_COMMAND_STR_CASE(QUERY_ROCE_ADDRESS); + MLX5_COMMAND_STR_CASE(SET_ROCE_ADDRESS); + MLX5_COMMAND_STR_CASE(QUERY_HCA_VPORT_CONTEXT); + MLX5_COMMAND_STR_CASE(MODIFY_HCA_VPORT_CONTEXT); + MLX5_COMMAND_STR_CASE(QUERY_HCA_VPORT_GID); + MLX5_COMMAND_STR_CASE(QUERY_HCA_VPORT_PKEY); + MLX5_COMMAND_STR_CASE(QUERY_VPORT_COUNTER); + MLX5_COMMAND_STR_CASE(SET_WOL_ROL); + MLX5_COMMAND_STR_CASE(QUERY_WOL_ROL); + MLX5_COMMAND_STR_CASE(ALLOC_Q_COUNTER); + MLX5_COMMAND_STR_CASE(DEALLOC_Q_COUNTER); + MLX5_COMMAND_STR_CASE(QUERY_Q_COUNTER); + MLX5_COMMAND_STR_CASE(ALLOC_PD); + MLX5_COMMAND_STR_CASE(DEALLOC_PD); + MLX5_COMMAND_STR_CASE(ALLOC_UAR); + MLX5_COMMAND_STR_CASE(DEALLOC_UAR); + MLX5_COMMAND_STR_CASE(CONFIG_INT_MODERATION); + MLX5_COMMAND_STR_CASE(ATTACH_TO_MCG); + MLX5_COMMAND_STR_CASE(DETACH_FROM_MCG); + MLX5_COMMAND_STR_CASE(GET_DROPPED_PACKET_LOG); + MLX5_COMMAND_STR_CASE(QUERY_MAD_DEMUX); + MLX5_COMMAND_STR_CASE(SET_MAD_DEMUX); + MLX5_COMMAND_STR_CASE(NOP); + MLX5_COMMAND_STR_CASE(ALLOC_XRCD); + MLX5_COMMAND_STR_CASE(DEALLOC_XRCD); + MLX5_COMMAND_STR_CASE(ALLOC_TRANSPORT_DOMAIN); + MLX5_COMMAND_STR_CASE(DEALLOC_TRANSPORT_DOMAIN); + MLX5_COMMAND_STR_CASE(QUERY_CONG_STATUS); + MLX5_COMMAND_STR_CASE(MODIFY_CONG_STATUS); + MLX5_COMMAND_STR_CASE(QUERY_CONG_PARAMS); + MLX5_COMMAND_STR_CASE(MODIFY_CONG_PARAMS); + MLX5_COMMAND_STR_CASE(QUERY_CONG_STATISTICS); + MLX5_COMMAND_STR_CASE(ADD_VXLAN_UDP_DPORT); + MLX5_COMMAND_STR_CASE(DELETE_VXLAN_UDP_DPORT); + MLX5_COMMAND_STR_CASE(SET_L2_TABLE_ENTRY); + MLX5_COMMAND_STR_CASE(QUERY_L2_TABLE_ENTRY); + MLX5_COMMAND_STR_CASE(DELETE_L2_TABLE_ENTRY); + MLX5_COMMAND_STR_CASE(CREATE_RMP); + MLX5_COMMAND_STR_CASE(MODIFY_RMP); + MLX5_COMMAND_STR_CASE(DESTROY_RMP); + MLX5_COMMAND_STR_CASE(QUERY_RMP); + MLX5_COMMAND_STR_CASE(CREATE_RQT); + MLX5_COMMAND_STR_CASE(MODIFY_RQT); + MLX5_COMMAND_STR_CASE(DESTROY_RQT); + MLX5_COMMAND_STR_CASE(QUERY_RQT); + MLX5_COMMAND_STR_CASE(ACCESS_REG); + MLX5_COMMAND_STR_CASE(CREATE_SQ); + MLX5_COMMAND_STR_CASE(MODIFY_SQ); + MLX5_COMMAND_STR_CASE(DESTROY_SQ); + MLX5_COMMAND_STR_CASE(QUERY_SQ); + MLX5_COMMAND_STR_CASE(CREATE_RQ); + MLX5_COMMAND_STR_CASE(MODIFY_RQ); + MLX5_COMMAND_STR_CASE(DESTROY_RQ); + MLX5_COMMAND_STR_CASE(QUERY_RQ); + MLX5_COMMAND_STR_CASE(CREATE_TIR); + MLX5_COMMAND_STR_CASE(MODIFY_TIR); + MLX5_COMMAND_STR_CASE(DESTROY_TIR); + MLX5_COMMAND_STR_CASE(QUERY_TIR); + MLX5_COMMAND_STR_CASE(CREATE_TIS); + MLX5_COMMAND_STR_CASE(MODIFY_TIS); + MLX5_COMMAND_STR_CASE(DESTROY_TIS); + MLX5_COMMAND_STR_CASE(QUERY_TIS); + MLX5_COMMAND_STR_CASE(CREATE_FLOW_TABLE); + MLX5_COMMAND_STR_CASE(DESTROY_FLOW_TABLE); + MLX5_COMMAND_STR_CASE(QUERY_FLOW_TABLE); + MLX5_COMMAND_STR_CASE(CREATE_FLOW_GROUP); + MLX5_COMMAND_STR_CASE(DESTROY_FLOW_GROUP); + MLX5_COMMAND_STR_CASE(QUERY_FLOW_GROUP); + MLX5_COMMAND_STR_CASE(SET_FLOW_TABLE_ENTRY); + MLX5_COMMAND_STR_CASE(QUERY_FLOW_TABLE_ENTRY); + MLX5_COMMAND_STR_CASE(DELETE_FLOW_TABLE_ENTRY); + MLX5_COMMAND_STR_CASE(SET_DIAGNOSTICS); + MLX5_COMMAND_STR_CASE(QUERY_DIAGNOSTICS); default: return "unknown command opcode"; } } From owner-svn-src-all@freebsd.org Mon Mar 26 20:06:38 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA916F66D7F; Mon, 26 Mar 2018 20:06:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8CA2770E5C; Mon, 26 Mar 2018 20:06:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 85526119B4; Mon, 26 Mar 2018 20:06:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QK6bsK006381; Mon, 26 Mar 2018 20:06:37 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QK6bvt006380; Mon, 26 Mar 2018 20:06:37 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262006.w2QK6bvt006380@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:06:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331572 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 331572 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:06:38 -0000 Author: hselasky Date: Mon Mar 26 20:06:37 2018 New Revision: 331572 URL: https://svnweb.freebsd.org/changeset/base/331572 Log: MFC r330599: Fix potential deadlock in command mode change in mlx5core. Call command completion handler in case of timeout when working in interrupts mode. Avoid flushing the commands workqueue after acquiring the semaphores to prevent a potential deadlock. linux commit 9cba4ebcf374c3772f6eb61f2d065294b2451b49 Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Mar 26 20:05:22 2018 (r331571) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Mar 26 20:06:37 2018 (r331572) @@ -735,11 +735,6 @@ static void cmd_work_handler(struct work_struct *work) struct semaphore *sem; sem = ent->page_queue ? &cmd->pages_sem : &cmd->sem; - if (cmd->moving_to_polling) { - mlx5_core_warn(dev, "not expecting command execution, ignoring...\n"); - return; - } - down(sem); if (alloc_ent(ent) < 0) { @@ -826,13 +821,13 @@ static int wait_func(struct mlx5_core_dev *dev, struct if (cmd->mode == CMD_MODE_POLLING) { wait_for_completion(&ent->done); err = ent->ret; - } else { - if (!wait_for_completion_timeout(&ent->done, timeout)) - err = -ETIMEDOUT; - else - err = 0; - } + } else if (!wait_for_completion_timeout(&ent->done, timeout)) { + ent->ret = -ETIMEDOUT; + mlx5_cmd_comp_handler(dev, 1UL << ent->idx); + } + err = ent->ret; + if (err == -ETIMEDOUT) { mlx5_core_warn(dev, "%s(0x%x) timeout. Will cause a leak of a command resource\n", mlx5_command_str(msg_to_opcode(ent->in)), @@ -881,27 +876,28 @@ static int mlx5_cmd_invoke(struct mlx5_core_dev *dev, goto out_free; } - if (!callback) { - err = wait_func(dev, ent); - if (err == -ETIMEDOUT) - goto out; + if (callback) + goto out; - ds = ent->ts2 - ent->ts1; - op = be16_to_cpu(((struct mlx5_inbox_hdr *)in->first.data)->opcode); - if (op < ARRAY_SIZE(cmd->stats)) { - stats = &cmd->stats[op]; - spin_lock_irq(&stats->lock); - stats->sum += ds; - ++stats->n; - spin_unlock_irq(&stats->lock); - } - mlx5_core_dbg_mask(dev, 1 << MLX5_CMD_TIME, - "fw exec time for %s is %lld nsec\n", - mlx5_command_str(op), (long long)ds); - *status = ent->status; - free_cmd(ent); - } + err = wait_func(dev, ent); + if (err == -ETIMEDOUT) + goto out; + ds = ent->ts2 - ent->ts1; + op = be16_to_cpu(((struct mlx5_inbox_hdr *)in->first.data)->opcode); + if (op < ARRAY_SIZE(cmd->stats)) { + stats = &cmd->stats[op]; + spin_lock_irq(&stats->lock); + stats->sum += ds; + ++stats->n; + spin_unlock_irq(&stats->lock); + } + mlx5_core_dbg_mask(dev, 1 << MLX5_CMD_TIME, + "fw exec time for %s is %lld nsec\n", + mlx5_command_str(op), (long long)ds); + *status = ent->status; + free_cmd(ent); + return err; out_free: @@ -1017,7 +1013,7 @@ static void clean_debug_files(struct mlx5_core_dev *de } -void mlx5_cmd_use_events(struct mlx5_core_dev *dev) +static void mlx5_cmd_change_mod(struct mlx5_core_dev *dev, int mode) { struct mlx5_cmd *cmd = &dev->cmd; int i; @@ -1026,26 +1022,21 @@ void mlx5_cmd_use_events(struct mlx5_core_dev *dev) down(&cmd->sem); down(&cmd->pages_sem); + cmd->mode = mode; - flush_workqueue(cmd->wq); - - cmd->mode = CMD_MODE_EVENTS; - up(&cmd->pages_sem); for (i = 0; i < cmd->max_reg_cmds; i++) up(&cmd->sem); } -void mlx5_cmd_use_polling(struct mlx5_core_dev *dev) +void mlx5_cmd_use_events(struct mlx5_core_dev *dev) { - struct mlx5_cmd *cmd = &dev->cmd; + mlx5_cmd_change_mod(dev, CMD_MODE_EVENTS); +} - synchronize_irq(dev->priv.eq_table.pages_eq.irqn); - flush_workqueue(dev->priv.pg_wq); - cmd->moving_to_polling = 1; - flush_workqueue(cmd->wq); - cmd->mode = CMD_MODE_POLLING; - cmd->moving_to_polling = 0; +void mlx5_cmd_use_polling(struct mlx5_core_dev *dev) +{ + mlx5_cmd_change_mod(dev, CMD_MODE_POLLING); } static void free_msg(struct mlx5_core_dev *dev, struct mlx5_cmd_msg *msg) From owner-svn-src-all@freebsd.org Mon Mar 26 20:08:22 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15654F66F68; Mon, 26 Mar 2018 20:08:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BBDCF70FE2; Mon, 26 Mar 2018 20:08:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B6DD0119B6; Mon, 26 Mar 2018 20:08:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QK8L08006503; Mon, 26 Mar 2018 20:08:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QK8LDr006501; Mon, 26 Mar 2018 20:08:21 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262008.w2QK8LDr006501@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:08:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331573 - in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 331573 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:08:22 -0000 Author: hselasky Date: Mon Mar 26 20:08:21 2018 New Revision: 331573 URL: https://svnweb.freebsd.org/changeset/base/331573 Log: MFC r330600: Add timeout handle to commands with callback in mlx5core. The current implementation does not handle timeout in case of command with callback request, and this can lead to deadlock if the command doesn't get firmware response. Add delayed callback timeout work before posting the command to firmware. In case of real firmware command completion we will cancel the delayed work. In case of firmware command timeout the callback timeout handler will be called and it will simulate firmware completion with timeout error. linux commit 65ee67084589c1783a74b4a4a5db38d7264ec8b5 Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:06:37 2018 (r331572) +++ stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:08:21 2018 (r331573) @@ -727,6 +727,7 @@ struct mlx5_cmd_work_ent { void *uout; int uout_size; mlx5_cmd_cbk_t callback; + struct delayed_work cb_timeout_work; void *context; int idx; struct completion done; Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Mar 26 20:06:37 2018 (r331572) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Mar 26 20:08:21 2018 (r331573) @@ -246,6 +246,7 @@ static void poll_timeout(struct mlx5_cmd_work_ent *ent static void free_cmd(struct mlx5_cmd_work_ent *ent) { + cancel_delayed_work_sync(&ent->cb_timeout_work); kfree(ent); } @@ -499,6 +500,30 @@ static void dump_command(struct mlx5_core_dev *dev, pr_debug("\n"); } +static u16 msg_to_opcode(struct mlx5_cmd_msg *in) +{ + struct mlx5_inbox_hdr *hdr = (struct mlx5_inbox_hdr *)(in->first.data); + + return be16_to_cpu(hdr->opcode); +} + +static void cb_timeout_handler(struct work_struct *work) +{ + struct delayed_work *dwork = container_of(work, struct delayed_work, + work); + struct mlx5_cmd_work_ent *ent = container_of(dwork, + struct mlx5_cmd_work_ent, + cb_timeout_work); + struct mlx5_core_dev *dev = container_of(ent->cmd, struct mlx5_core_dev, + cmd); + + ent->ret = -ETIMEDOUT; + mlx5_core_warn(dev, "%s(0x%x) timeout. Will cause a leak of a command resource\n", + mlx5_command_str(msg_to_opcode(ent->in)), + msg_to_opcode(ent->in)); + mlx5_cmd_comp_handler(dev, 1UL << ent->idx); +} + static int set_internal_err_outbox(struct mlx5_core_dev *dev, u16 opcode, struct mlx5_outbox_hdr *hdr) { @@ -731,6 +756,7 @@ static void cmd_work_handler(struct work_struct *work) struct mlx5_cmd_work_ent *ent = container_of(work, struct mlx5_cmd_work_ent, work); struct mlx5_cmd *cmd = ent->cmd; struct mlx5_core_dev *dev = container_of(cmd, struct mlx5_core_dev, cmd); + unsigned long cb_timeout = msecs_to_jiffies(MLX5_CMD_TIMEOUT_MSEC); struct mlx5_cmd_layout *lay; struct semaphore *sem; @@ -761,6 +787,9 @@ static void cmd_work_handler(struct work_struct *work) dump_command(dev, ent, 1); ent->ts1 = ktime_get_ns(); ent->busy = 0; + if (ent->callback) + schedule_delayed_work(&ent->cb_timeout_work, cb_timeout); + /* ring doorbell after the descriptor is valid */ mlx5_core_dbg(dev, "writing 0x%x to command doorbell\n", 1 << ent->idx); /* make sure data is written to RAM */ @@ -805,13 +834,6 @@ static const char *deliv_status_to_str(u8 status) } } -static u16 msg_to_opcode(struct mlx5_cmd_msg *in) -{ - struct mlx5_inbox_hdr *hdr = (struct mlx5_inbox_hdr *)(in->first.data); - - return be16_to_cpu(hdr->opcode); -} - static int wait_func(struct mlx5_core_dev *dev, struct mlx5_cmd_work_ent *ent) { int timeout = msecs_to_jiffies(MLX5_CMD_TIMEOUT_MSEC); @@ -867,6 +889,7 @@ static int mlx5_cmd_invoke(struct mlx5_core_dev *dev, if (!callback) init_completion(&ent->done); + INIT_DELAYED_WORK(&ent->cb_timeout_work, cb_timeout_handler); INIT_WORK(&ent->work, cmd_work_handler); if (page_queue) { cmd_work_handler(&ent->work); @@ -1065,6 +1088,8 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, i = ffs(vector) - 1; vector &= ~(1U << i); ent = cmd->ent_arr[i]; + if (ent->callback) + cancel_delayed_work(&ent->cb_timeout_work); ent->ts2 = ktime_get_ns(); memcpy(ent->out->first.data, ent->lay->out, sizeof(ent->lay->out)); From owner-svn-src-all@freebsd.org Mon Mar 26 20:09:37 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 717BEF67098; Mon, 26 Mar 2018 20:09:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 24D2771162; Mon, 26 Mar 2018 20:09:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1F880119C3; Mon, 26 Mar 2018 20:09:37 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QK9aEi006601; Mon, 26 Mar 2018 20:09:36 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QK9a3d006600; Mon, 26 Mar 2018 20:09:36 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262009.w2QK9a3d006600@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:09:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331574 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 331574 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:09:37 -0000 Author: hselasky Date: Mon Mar 26 20:09:36 2018 New Revision: 331574 URL: https://svnweb.freebsd.org/changeset/base/331574 Log: MFC r330603: Make sure default VNET is set when adding a new interface in mlx5core. Adding an interface might be done outside the device_attach() routine and will then cause a panic, due to the VNET not being set. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Mar 26 20:08:21 2018 (r331573) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Mar 26 20:09:36 2018 (r331574) @@ -956,7 +956,9 @@ static void mlx5_add_device(struct mlx5_interface *int dev_ctx = kmalloc(sizeof(*dev_ctx), GFP_KERNEL); dev_ctx->intf = intf; + CURVNET_SET_QUIET(vnet0); dev_ctx->context = intf->add(dev); + CURVNET_RESTORE(); if (dev_ctx->context) { spin_lock_irq(&priv->ctx_lock); From owner-svn-src-all@freebsd.org Mon Mar 26 20:10:51 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E8696F67484; Mon, 26 Mar 2018 20:10:50 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 98AA0713EC; Mon, 26 Mar 2018 20:10:50 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 93975119D7; Mon, 26 Mar 2018 20:10:50 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKAonY006740; Mon, 26 Mar 2018 20:10:50 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKAolS006737; Mon, 26 Mar 2018 20:10:50 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262010.w2QKAolS006737@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:10:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331575 - in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Commit-Revision: 331575 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:10:51 -0000 Author: hselasky Date: Mon Mar 26 20:10:49 2018 New Revision: 331575 URL: https://svnweb.freebsd.org/changeset/base/331575 Log: MFC r330604: Add log message for unsupported QSFPs in mlx5core. Submitted by: Matthew Finlay Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/device.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/device.h ============================================================================== --- stable/11/sys/dev/mlx5/device.h Mon Mar 26 20:09:36 2018 (r331574) +++ stable/11/sys/dev/mlx5/device.h Mon Mar 26 20:10:49 2018 (r331575) @@ -501,9 +501,10 @@ struct mlx5_eqe_vport_change { #define PORT_MODULE_EVENT_ERROR_TYPE_MASK 0xF enum { - MLX5_MODULE_STATUS_PLUGGED = 0x1, - MLX5_MODULE_STATUS_UNPLUGGED = 0x2, - MLX5_MODULE_STATUS_ERROR = 0x3, + MLX5_MODULE_STATUS_PLUGGED_ENABLED = 0x1, + MLX5_MODULE_STATUS_UNPLUGGED = 0x2, + MLX5_MODULE_STATUS_ERROR = 0x3, + MLX5_MODULE_STATUS_PLUGGED_DISABLED = 0x4, }; enum { @@ -512,7 +513,7 @@ enum { MLX5_MODULE_EVENT_ERROR_BUS_STUCK = 0x2, MLX5_MODULE_EVENT_ERROR_NO_EEPROM_RETRY_TIMEOUT = 0x3, MLX5_MODULE_EVENT_ERROR_ENFORCE_PART_NUMBER_LIST = 0x4, - MLX5_MODULE_EVENT_ERROR_UNKNOWN_IDENTIFIER = 0x5, + MLX5_MODULE_EVENT_ERROR_UNSUPPORTED_CABLE = 0x5, MLX5_MODULE_EVENT_ERROR_HIGH_TEMPERATURE = 0x6, MLX5_MODULE_EVENT_ERROR_CABLE_IS_SHORTED = 0x7, }; Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Mar 26 20:09:36 2018 (r331574) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Mar 26 20:10:49 2018 (r331575) @@ -618,8 +618,8 @@ static const char *mlx5_port_module_event_error_type_t return "No EEPROM/retry timeout"; case MLX5_MODULE_EVENT_ERROR_ENFORCE_PART_NUMBER_LIST: return "Enforce part number list"; - case MLX5_MODULE_EVENT_ERROR_UNKNOWN_IDENTIFIER: - return "Unknown identifier"; + case MLX5_MODULE_EVENT_ERROR_UNSUPPORTED_CABLE: + return "Unsupported Cable"; case MLX5_MODULE_EVENT_ERROR_HIGH_TEMPERATURE: return "High Temperature"; case MLX5_MODULE_EVENT_ERROR_CABLE_IS_SHORTED: @@ -655,8 +655,8 @@ static void mlx5_port_module_event(struct mlx5_core_de PORT_MODULE_EVENT_ERROR_TYPE_MASK; switch (module_status) { - case MLX5_MODULE_STATUS_PLUGGED: - device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: plugged\n", module_num); + case MLX5_MODULE_STATUS_PLUGGED_ENABLED: + device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: plugged and enabled\n", module_num); break; case MLX5_MODULE_STATUS_UNPLUGGED: @@ -665,6 +665,10 @@ static void mlx5_port_module_event(struct mlx5_core_de case MLX5_MODULE_STATUS_ERROR: device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: error, %s\n", module_num, mlx5_port_module_event_error_type_to_string(error_type)); + break; + + case MLX5_MODULE_STATUS_PLUGGED_DISABLED: + device_printf((&pdev->dev)->bsddev, "INFO: ""Module %u, status: plugged but disabled\n", module_num); break; default: Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 20:09:36 2018 (r331574) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 20:10:49 2018 (r331575) @@ -2534,6 +2534,7 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t int error = 0; int mask = 0; int size_read = 0; + int module_status; int module_num; int max_mtu; uint8_t read_addr; @@ -2723,8 +2724,9 @@ out: goto err_i2c; } /* Check if module is present before doing an access */ - if (mlx5_query_module_status(priv->mdev, module_num) != - MLX5_MODULE_STATUS_PLUGGED) { + module_status = mlx5_query_module_status(priv->mdev, module_num); + if (module_status != MLX5_MODULE_STATUS_PLUGGED_ENABLED && + module_status != MLX5_MODULE_STATUS_PLUGGED_DISABLED) { error = EINVAL; goto err_i2c; } From owner-svn-src-all@freebsd.org Mon Mar 26 20:25:26 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E86EDF6889F; Mon, 26 Mar 2018 20:25:25 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9BF6771FFD; Mon, 26 Mar 2018 20:25:25 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 96A4D11D33; Mon, 26 Mar 2018 20:25:25 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKPP2q016392; Mon, 26 Mar 2018 20:25:25 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKPOgv016385; Mon, 26 Mar 2018 20:25:24 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262025.w2QKPOgv016385@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:25:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331576 - in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en mlx5_ib X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en mlx5_ib X-SVN-Commit-Revision: 331576 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:25:26 -0000 Author: hselasky Date: Mon Mar 26 20:25:24 2018 New Revision: 331576 URL: https://svnweb.freebsd.org/changeset/base/331576 Log: MFC r330606: Implement support for querying the current port rate in mlx5core. The mlx5ib(4) part will be merged separately. - Factor out port speed definitions into new port.h header file, similarly as done in Linux upstream. - Correct two existing port speed definitions in mlx5en according to Linux upstream. Sponsored by: Mellanox Technologies Added: stable/11/sys/dev/mlx5/port.h - copied unchanged from r330606, head/sys/dev/mlx5/port.h Modified: stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:10:49 2018 (r331575) +++ stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:25:24 2018 (r331576) @@ -928,41 +928,7 @@ int mlx5_core_access_reg(struct mlx5_core_dev *dev, vo u16 reg_num, int arg, int write); void mlx5_toggle_port_link(struct mlx5_core_dev *dev); -int mlx5_set_port_caps(struct mlx5_core_dev *dev, u8 port_num, u32 caps); -int mlx5_query_port_ptys(struct mlx5_core_dev *dev, u32 *ptys, - int ptys_size, int proto_mask); -int mlx5_query_port_proto_cap(struct mlx5_core_dev *dev, - u32 *proto_cap, int proto_mask); -int mlx5_query_port_autoneg(struct mlx5_core_dev *dev, int proto_mask, - u8 *an_disable_cap, u8 *an_disable_status); -int mlx5_set_port_autoneg(struct mlx5_core_dev *dev, bool disable, - u32 eth_proto_admin, int proto_mask); -int mlx5_query_port_proto_admin(struct mlx5_core_dev *dev, - u32 *proto_admin, int proto_mask); -int mlx5_set_port_proto(struct mlx5_core_dev *dev, u32 proto_admin, - int proto_mask); -int mlx5_set_port_status(struct mlx5_core_dev *dev, - enum mlx5_port_status status); -int mlx5_query_port_status(struct mlx5_core_dev *dev, u8 *status); -int mlx5_query_port_admin_status(struct mlx5_core_dev *dev, - enum mlx5_port_status *status); -int mlx5_set_port_pause(struct mlx5_core_dev *dev, u32 port, - u32 rx_pause, u32 tx_pause); -int mlx5_query_port_pause(struct mlx5_core_dev *dev, u32 port, - u32 *rx_pause, u32 *tx_pause); -int mlx5_set_port_pfc(struct mlx5_core_dev *dev, u8 pfc_en_tx, u8 pfc_en_rx); -int mlx5_query_port_pfc(struct mlx5_core_dev *dev, u8 *pfc_en_tx, u8 *pfc_en_rx); -int mlx5_set_port_mtu(struct mlx5_core_dev *dev, int mtu); -int mlx5_query_port_max_mtu(struct mlx5_core_dev *dev, int *max_mtu); -int mlx5_query_port_oper_mtu(struct mlx5_core_dev *dev, int *oper_mtu); - -unsigned int mlx5_query_module_status(struct mlx5_core_dev *dev, int module_num); -int mlx5_query_module_num(struct mlx5_core_dev *dev, int *module_num); -int mlx5_query_eeprom(struct mlx5_core_dev *dev, int i2c_addr, int page_num, - int device_addr, int size, int module_num, u32 *data, - int *size_read); - int mlx5_debug_eq_add(struct mlx5_core_dev *dev, struct mlx5_eq *eq); void mlx5_debug_eq_remove(struct mlx5_core_dev *dev, struct mlx5_eq *eq); int mlx5_core_eq_query(struct mlx5_core_dev *dev, struct mlx5_eq *eq, @@ -1067,8 +1033,4 @@ static inline int mlx5_core_is_pf(struct mlx5_core_dev return !(dev->priv.pci_dev_data & MLX5_PCI_DEV_IS_VF); } -#define MLX5_EEPROM_MAX_BYTES 32 -#define MLX5_EEPROM_IDENTIFIER_BYTE_MASK 0x000000ff -#define MLX5_EEPROM_REVISION_ID_BYTE_MASK 0x0000ff00 -#define MLX5_EEPROM_PAGE_3_VALID_BIT_MASK 0x00040000 #endif /* MLX5_DRIVER_H */ Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Mar 26 20:10:49 2018 (r331575) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Mar 26 20:25:24 2018 (r331576) @@ -27,7 +27,7 @@ #include #include -#include +#include #include #include "mlx5_core.h" Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Mar 26 20:10:49 2018 (r331575) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Mar 26 20:25:24 2018 (r331576) @@ -26,7 +26,7 @@ */ #include -#include +#include #include "mlx5_core.h" int mlx5_core_access_reg(struct mlx5_core_dev *dev, void *data_in, @@ -110,13 +110,13 @@ int mlx5_set_port_caps(struct mlx5_core_dev *dev, u8 p EXPORT_SYMBOL_GPL(mlx5_set_port_caps); int mlx5_query_port_ptys(struct mlx5_core_dev *dev, u32 *ptys, - int ptys_size, int proto_mask) + int ptys_size, int proto_mask, u8 local_port) { u32 in[MLX5_ST_SZ_DW(ptys_reg)]; int err; memset(in, 0, sizeof(in)); - MLX5_SET(ptys_reg, in, local_port, 1); + MLX5_SET(ptys_reg, in, local_port, local_port); MLX5_SET(ptys_reg, in, proto_mask, proto_mask); err = mlx5_core_access_reg(dev, in, sizeof(in), ptys, @@ -132,7 +132,7 @@ int mlx5_query_port_proto_cap(struct mlx5_core_dev *de u32 out[MLX5_ST_SZ_DW(ptys_reg)]; int err; - err = mlx5_query_port_ptys(dev, out, sizeof(out), proto_mask); + err = mlx5_query_port_ptys(dev, out, sizeof(out), proto_mask, 1); if (err) return err; @@ -151,7 +151,7 @@ int mlx5_query_port_autoneg(struct mlx5_core_dev *dev, u32 out[MLX5_ST_SZ_DW(ptys_reg)]; int err; - err = mlx5_query_port_ptys(dev, out, sizeof(out), proto_mask); + err = mlx5_query_port_ptys(dev, out, sizeof(out), proto_mask, 1); if (err) return err; @@ -198,7 +198,7 @@ int mlx5_query_port_proto_admin(struct mlx5_core_dev * u32 out[MLX5_ST_SZ_DW(ptys_reg)]; int err; - err = mlx5_query_port_ptys(dev, out, sizeof(out), proto_mask); + err = mlx5_query_port_ptys(dev, out, sizeof(out), proto_mask, 1); if (err) return err; @@ -210,6 +210,23 @@ int mlx5_query_port_proto_admin(struct mlx5_core_dev * return 0; } EXPORT_SYMBOL_GPL(mlx5_query_port_proto_admin); + +int mlx5_query_port_eth_proto_oper(struct mlx5_core_dev *dev, + u32 *proto_oper, u8 local_port) +{ + u32 out[MLX5_ST_SZ_DW(ptys_reg)]; + int err; + + err = mlx5_query_port_ptys(dev, out, sizeof(out), MLX5_PTYS_EN, + local_port); + if (err) + return err; + + *proto_oper = MLX5_GET(ptys_reg, out, eth_proto_oper); + + return 0; +} +EXPORT_SYMBOL(mlx5_query_port_eth_proto_oper); int mlx5_set_port_proto(struct mlx5_core_dev *dev, u32 proto_admin, int proto_mask) Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 20:10:49 2018 (r331575) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 20:25:24 2018 (r331576) @@ -62,6 +62,7 @@ #include #include #include +#include #include #include @@ -731,37 +732,6 @@ struct mlx5e_eeprom { u32 *data; }; -enum mlx5e_link_mode { - MLX5E_1000BASE_CX_SGMII = 0, - MLX5E_1000BASE_KX = 1, - MLX5E_10GBASE_CX4 = 2, - MLX5E_10GBASE_KX4 = 3, - MLX5E_10GBASE_KR = 4, - MLX5E_20GBASE_KR2 = 5, - MLX5E_40GBASE_CR4 = 6, - MLX5E_40GBASE_KR4 = 7, - MLX5E_56GBASE_R4 = 8, - MLX5E_10GBASE_CR = 12, - MLX5E_10GBASE_SR = 13, - MLX5E_10GBASE_LR = 14, - MLX5E_40GBASE_SR4 = 15, - MLX5E_40GBASE_LR4 = 16, - MLX5E_100GBASE_CR4 = 20, - MLX5E_100GBASE_SR4 = 21, - MLX5E_100GBASE_KR4 = 22, - MLX5E_100GBASE_LR4 = 23, - MLX5E_100BASE_TX = 24, - MLX5E_100BASE_T = 25, - MLX5E_10GBASE_T = 26, - MLX5E_25GBASE_CR = 27, - MLX5E_25GBASE_KR = 28, - MLX5E_25GBASE_SR = 29, - MLX5E_50GBASE_CR2 = 30, - MLX5E_50GBASE_KR2 = 31, - MLX5E_LINK_MODES_NUMBER, -}; - -#define MLX5E_PROT_MASK(link_mode) (1 << (link_mode)) #define MLX5E_FLD_MAX(typ, fld) ((1ULL << __mlx5_bit_sz(typ, fld)) - 1ULL) int mlx5e_xmit(struct ifnet *, struct mbuf *); Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 20:10:49 2018 (r331575) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 20:25:24 2018 (r331576) @@ -90,8 +90,8 @@ static const struct { .subtype = IFM_10G_SR, .baudrate = IF_Gbps(10ULL), }, - [MLX5E_10GBASE_LR] = { - .subtype = IFM_10G_LR, + [MLX5E_10GBASE_ER] = { + .subtype = IFM_10G_ER, .baudrate = IF_Gbps(10ULL), }, [MLX5E_40GBASE_SR4] = { @@ -122,9 +122,9 @@ static const struct { .subtype = IFM_100_TX, .baudrate = IF_Mbps(100ULL), }, - [MLX5E_100BASE_T] = { - .subtype = IFM_100_T, - .baudrate = IF_Mbps(100ULL), + [MLX5E_1000BASE_T] = { + .subtype = IFM_1000_T, + .baudrate = IF_Mbps(1000ULL), }, [MLX5E_10GBASE_T] = { .subtype = IFM_10G_T, @@ -176,7 +176,7 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) return; } - error = mlx5_query_port_ptys(mdev, out, sizeof(out), MLX5_PTYS_EN); + error = mlx5_query_port_ptys(mdev, out, sizeof(out), MLX5_PTYS_EN, 1); if (error) { priv->media_active_last = IFM_ETHER; priv->ifp->if_baudrate = 1; Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Mon Mar 26 20:10:49 2018 (r331575) +++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c Mon Mar 26 20:25:24 2018 (r331576) @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include Copied: stable/11/sys/dev/mlx5/port.h (from r330606, head/sys/dev/mlx5/port.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/dev/mlx5/port.h Mon Mar 26 20:25:24 2018 (r331576, copy of r330606, head/sys/dev/mlx5/port.h) @@ -0,0 +1,147 @@ +/*- + * Copyright (c) 2016, Mellanox Technologies, Ltd. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, 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 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 AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef __MLX5_PORT_H__ +#define __MLX5_PORT_H__ + +#include + +enum mlx5_beacon_duration { + MLX5_BEACON_DURATION_OFF = 0x0, + MLX5_BEACON_DURATION_INF = 0xffff, +}; + +enum mlx5_module_id { + MLX5_MODULE_ID_SFP = 0x3, + MLX5_MODULE_ID_QSFP = 0xC, + MLX5_MODULE_ID_QSFP_PLUS = 0xD, + MLX5_MODULE_ID_QSFP28 = 0x11, +}; + +enum mlx5_an_status { + MLX5_AN_UNAVAILABLE = 0, + MLX5_AN_COMPLETE = 1, + MLX5_AN_FAILED = 2, + MLX5_AN_LINK_UP = 3, + MLX5_AN_LINK_DOWN = 4, +}; + +#define MLX5_EEPROM_MAX_BYTES 32 +#define MLX5_EEPROM_IDENTIFIER_BYTE_MASK 0x000000ff +#define MLX5_EEPROM_REVISION_ID_BYTE_MASK 0x0000ff00 +#define MLX5_EEPROM_PAGE_3_VALID_BIT_MASK 0x00040000 +#define MLX5_I2C_ADDR_LOW 0x50 +#define MLX5_I2C_ADDR_HIGH 0x51 +#define MLX5_EEPROM_PAGE_LENGTH 256 + +enum mlx5e_link_mode { + MLX5E_1000BASE_CX_SGMII = 0, + MLX5E_1000BASE_KX = 1, + MLX5E_10GBASE_CX4 = 2, + MLX5E_10GBASE_KX4 = 3, + MLX5E_10GBASE_KR = 4, + MLX5E_20GBASE_KR2 = 5, + MLX5E_40GBASE_CR4 = 6, + MLX5E_40GBASE_KR4 = 7, + MLX5E_56GBASE_R4 = 8, + MLX5E_10GBASE_CR = 12, + MLX5E_10GBASE_SR = 13, + MLX5E_10GBASE_ER = 14, + MLX5E_40GBASE_SR4 = 15, + MLX5E_40GBASE_LR4 = 16, + MLX5E_50GBASE_SR2 = 18, + MLX5E_100GBASE_CR4 = 20, + MLX5E_100GBASE_SR4 = 21, + MLX5E_100GBASE_KR4 = 22, + MLX5E_100GBASE_LR4 = 23, + MLX5E_100BASE_TX = 24, + MLX5E_1000BASE_T = 25, + MLX5E_10GBASE_T = 26, + MLX5E_25GBASE_CR = 27, + MLX5E_25GBASE_KR = 28, + MLX5E_25GBASE_SR = 29, + MLX5E_50GBASE_CR2 = 30, + MLX5E_50GBASE_KR2 = 31, + MLX5E_LINK_MODES_NUMBER, +}; + +enum mlx5e_connector_type { + MLX5E_PORT_UNKNOWN = 0, + MLX5E_PORT_NONE = 1, + MLX5E_PORT_TP = 2, + MLX5E_PORT_AUI = 3, + MLX5E_PORT_BNC = 4, + MLX5E_PORT_MII = 5, + MLX5E_PORT_FIBRE = 6, + MLX5E_PORT_DA = 7, + MLX5E_PORT_OTHER = 8, + MLX5E_CONNECTOR_TYPE_NUMBER, +}; + +#define MLX5E_PROT_MASK(link_mode) (1 << (link_mode)) + +#define PORT_MODULE_EVENT_MODULE_STATUS_MASK 0xF +#define PORT_MODULE_EVENT_ERROR_TYPE_MASK 0xF + +int mlx5_set_port_caps(struct mlx5_core_dev *dev, u8 port_num, u32 caps); +int mlx5_query_port_ptys(struct mlx5_core_dev *dev, u32 *ptys, + int ptys_size, int proto_mask, u8 local_port); +int mlx5_query_port_proto_cap(struct mlx5_core_dev *dev, + u32 *proto_cap, int proto_mask); +int mlx5_query_port_autoneg(struct mlx5_core_dev *dev, int proto_mask, + u8 *an_disable_cap, u8 *an_disable_status); +int mlx5_set_port_autoneg(struct mlx5_core_dev *dev, bool disable, + u32 eth_proto_admin, int proto_mask); +int mlx5_query_port_proto_admin(struct mlx5_core_dev *dev, + u32 *proto_admin, int proto_mask); +int mlx5_query_port_eth_proto_oper(struct mlx5_core_dev *dev, + u32 *proto_oper, u8 local_port); +int mlx5_set_port_proto(struct mlx5_core_dev *dev, u32 proto_admin, + int proto_mask); +int mlx5_set_port_status(struct mlx5_core_dev *dev, + enum mlx5_port_status status); +int mlx5_query_port_status(struct mlx5_core_dev *dev, u8 *status); +int mlx5_query_port_admin_status(struct mlx5_core_dev *dev, + enum mlx5_port_status *status); +int mlx5_set_port_pause(struct mlx5_core_dev *dev, u32 port, + u32 rx_pause, u32 tx_pause); +int mlx5_query_port_pause(struct mlx5_core_dev *dev, u32 port, + u32 *rx_pause, u32 *tx_pause); +int mlx5_set_port_pfc(struct mlx5_core_dev *dev, u8 pfc_en_tx, u8 pfc_en_rx); +int mlx5_query_port_pfc(struct mlx5_core_dev *dev, u8 *pfc_en_tx, u8 *pfc_en_rx); + +int mlx5_set_port_mtu(struct mlx5_core_dev *dev, int mtu); +int mlx5_query_port_max_mtu(struct mlx5_core_dev *dev, int *max_mtu); +int mlx5_query_port_oper_mtu(struct mlx5_core_dev *dev, int *oper_mtu); + +unsigned int mlx5_query_module_status(struct mlx5_core_dev *dev, int module_num); +int mlx5_query_module_num(struct mlx5_core_dev *dev, int *module_num); +int mlx5_query_eeprom(struct mlx5_core_dev *dev, int i2c_addr, int page_num, + int device_addr, int size, int module_num, u32 *data, + int *size_read); + +#endif /* __MLX5_PORT_H__ */ From owner-svn-src-all@freebsd.org Mon Mar 26 20:27:09 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 616D6F68AD1; Mon, 26 Mar 2018 20:27:09 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0FA6E721D1; Mon, 26 Mar 2018 20:27:09 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0A8F711D40; Mon, 26 Mar 2018 20:27:09 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKR88C016513; Mon, 26 Mar 2018 20:27:08 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKR8op016507; Mon, 26 Mar 2018 20:27:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262027.w2QKR8op016507@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:27:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331577 - in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Commit-Revision: 331577 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:27:09 -0000 Author: hselasky Date: Mon Mar 26 20:27:08 2018 New Revision: 331577 URL: https://svnweb.freebsd.org/changeset/base/331577 Log: MFC r330607: Implement rate limit per traffic class in mlx5core. Add support for rate limiting traffic class via sysctl. Submitted by: Slava Shwartsman Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/11/sys/dev/mlx5/mlx5_ifc.h stable/11/sys/dev/mlx5/port.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Mar 26 20:25:24 2018 (r331576) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Mar 26 20:27:08 2018 (r331577) @@ -860,6 +860,89 @@ int mlx5_query_port_cong_params(struct mlx5_core_dev * out, out_size); } +static int mlx5_query_port_qetcr_reg(struct mlx5_core_dev *mdev, u32 *out, + int outlen) +{ + u32 in[MLX5_ST_SZ_DW(qtct_reg)]; + + if (!MLX5_CAP_GEN(mdev, ets)) + return -ENOTSUPP; + + memset(in, 0, sizeof(in)); + return mlx5_core_access_reg(mdev, in, sizeof(in), out, outlen, + MLX5_REG_QETCR, 0, 0); +} + +int mlx5_max_tc(struct mlx5_core_dev *mdev) +{ + u8 num_tc = MLX5_CAP_GEN(mdev, max_tc) ? : 8; + + return num_tc - 1; +} +EXPORT_SYMBOL_GPL(mlx5_max_tc); + +static int mlx5_set_port_qetcr_reg(struct mlx5_core_dev *mdev, u32 *in, + int inlen) +{ + u32 out[MLX5_ST_SZ_DW(qtct_reg)]; + + if (!MLX5_CAP_GEN(mdev, ets)) + return -ENOTSUPP; + + return mlx5_core_access_reg(mdev, in, inlen, out, sizeof(out), + MLX5_REG_QETCR, 0, 1); +} + +int mlx5_query_port_tc_rate_limit(struct mlx5_core_dev *mdev, + u8 *max_bw_value, + u8 *max_bw_units) +{ + u32 out[MLX5_ST_SZ_DW(qetc_reg)]; + void *ets_tcn_conf; + int err; + int i; + + err = mlx5_query_port_qetcr_reg(mdev, out, sizeof(out)); + if (err) + return err; + + for (i = 0; i <= mlx5_max_tc(mdev); i++) { + ets_tcn_conf = MLX5_ADDR_OF(qetc_reg, out, tc_configuration[i]); + + max_bw_value[i] = MLX5_GET(ets_tcn_config_reg, ets_tcn_conf, + max_bw_value); + max_bw_units[i] = MLX5_GET(ets_tcn_config_reg, ets_tcn_conf, + max_bw_units); + } + + return 0; +} +EXPORT_SYMBOL_GPL(mlx5_query_port_tc_rate_limit); + +int mlx5_modify_port_tc_rate_limit(struct mlx5_core_dev *mdev, + const u8 *max_bw_value, + const u8 *max_bw_units) +{ + u32 in[MLX5_ST_SZ_DW(qetc_reg)] = {}; + void *ets_tcn_conf; + int i; + + MLX5_SET(qetc_reg, in, port_number, 1); + + for (i = 0; i <= mlx5_max_tc(mdev); i++) { + ets_tcn_conf = MLX5_ADDR_OF(qetc_reg, in, tc_configuration[i]); + + MLX5_SET(ets_tcn_config_reg, ets_tcn_conf, r, 1); + MLX5_SET(ets_tcn_config_reg, ets_tcn_conf, max_bw_units, + max_bw_units[i]); + MLX5_SET(ets_tcn_config_reg, ets_tcn_conf, max_bw_value, + max_bw_value[i]); + } + + return mlx5_set_port_qetcr_reg(mdev, in, sizeof(in)); +} +EXPORT_SYMBOL_GPL(mlx5_modify_port_tc_rate_limit); + int mlx5_modify_port_cong_params(struct mlx5_core_dev *mdev, void *in, int in_size) { Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 20:25:24 2018 (r331576) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 20:27:08 2018 (r331577) @@ -70,6 +70,8 @@ #include #include +#define IEEE_8021QAZ_MAX_TCS 8 + #define MLX5E_PARAMS_MINIMUM_LOG_SQ_SIZE 0x7 #define MLX5E_PARAMS_DEFAULT_LOG_SQ_SIZE 0xa #define MLX5E_PARAMS_MAXIMUM_LOG_SQ_SIZE 0xe @@ -114,6 +116,9 @@ (MLX5E_MAX_TX_HEADER - sizeof(struct mlx5e_tx_wqe) + \ sizeof(((struct mlx5e_tx_wqe *)0)->eth.inline_hdr_start)) /* bytes */ +#define MLX5E_100MB (100000) +#define MLX5E_1GB (1000000) + MALLOC_DECLARE(M_MLX5EN); struct mlx5_core_dev; @@ -417,11 +422,13 @@ struct mlx5e_params { m(+1, u64 mc_local_lb, "mc_local_lb", "0: Local multicast loopback enabled 1: Disabled") \ m(+1, u64 uc_local_lb, "uc_local_lb", "0: Local unicast loopback enabled 1: Disabled") + #define MLX5E_PARAMS_NUM (0 MLX5E_PARAMS(MLX5E_STATS_COUNT)) struct mlx5e_params_ethtool { u64 arg [0]; MLX5E_PARAMS(MLX5E_STATS_VAR) + u64 max_bw_value[IEEE_8021QAZ_MAX_TCS]; }; /* EEPROM Standards for plug in modules */ @@ -629,6 +636,12 @@ enum { MLX5E_STATE_OPENED, }; +enum { + MLX5_BW_NO_LIMIT = 0, + MLX5_100_MBPS_UNIT = 3, + MLX5_GBPS_UNIT = 4, +}; + struct mlx5e_vlan_db { unsigned long active_vlans[BITS_TO_LONGS(VLAN_N_VID)]; struct mlx5_flow_rule *active_vlans_ft_rule[VLAN_N_VID]; @@ -731,6 +744,19 @@ struct mlx5e_eeprom { int page_valid; u32 *data; }; + +/* + * This structure contains rate limit extension to the IEEE 802.1Qaz ETS + * managed object. + * Values are 64 bits long and specified in Kbps to enable usage over both + * slow and very fast networks. + * + * @tc_maxrate: maximal tc tx bandwidth indexed by traffic class + */ +struct ieee_maxrate { + __u64 tc_maxrate[IEEE_8021QAZ_MAX_TCS]; +}; + #define MLX5E_FLD_MAX(typ, fld) ((1ULL << __mlx5_bit_sz(typ, fld)) - 1ULL) Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Mar 26 20:25:24 2018 (r331576) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Mar 26 20:27:08 2018 (r331577) @@ -84,6 +84,97 @@ mlx5e_ethtool_sync_tx_completion_fact(struct mlx5e_pri priv->params_ethtool.tx_completion_fact = max; } +static int +mlx5e_getmaxrate(struct mlx5e_priv *priv) +{ + struct mlx5_core_dev *mdev = priv->mdev; + u8 max_bw_unit[IEEE_8021QAZ_MAX_TCS]; + u8 max_bw_value[IEEE_8021QAZ_MAX_TCS]; + int err; + int i; + + PRIV_LOCK(priv); + err = -mlx5_query_port_tc_rate_limit(mdev, max_bw_value, max_bw_unit); + if (err) + goto done; + + for (i = 0; i <= mlx5_max_tc(mdev); i++) { + switch (max_bw_unit[i]) { + case MLX5_100_MBPS_UNIT: + priv->params_ethtool.max_bw_value[i] = max_bw_value[i] * MLX5E_100MB; + break; + case MLX5_GBPS_UNIT: + priv->params_ethtool.max_bw_value[i] = max_bw_value[i] * MLX5E_1GB; + break; + case MLX5_BW_NO_LIMIT: + priv->params_ethtool.max_bw_value[i] = 0; + break; + default: + priv->params_ethtool.max_bw_value[i] = -1; + WARN_ONCE(true, "non-supported BW unit"); + break; + } + } +done: + PRIV_UNLOCK(priv); + return (err); +} + +static int +mlx5e_tc_maxrate_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + int prio_index = arg2; + struct mlx5_core_dev *mdev = priv->mdev; + u8 max_bw_unit[IEEE_8021QAZ_MAX_TCS]; + u8 max_bw_value[IEEE_8021QAZ_MAX_TCS]; + int i, err; + u64 bw_val; + u64 result = priv->params_ethtool.max_bw_value[prio_index]; + const u64 upper_limit_mbps = 255 * MLX5E_100MB; + const u64 upper_limit_gbps = 255 * MLX5E_1GB; + + PRIV_LOCK(priv); + err = sysctl_handle_64(oidp, &result, 0, req); + if (err || !req->newptr || + result == priv->params_ethtool.max_bw_value[prio_index]) + goto done; + + if (result % MLX5E_100MB) { + err = ERANGE; + goto done; + } + + memset(max_bw_value, 0, sizeof(max_bw_value)); + memset(max_bw_unit, 0, sizeof(max_bw_unit)); + + for (i = 0; i <= mlx5_max_tc(mdev); i++) { + bw_val = (i == prio_index) ? result : priv->params_ethtool.max_bw_value[i]; + + if (!bw_val) { + max_bw_unit[i] = MLX5_BW_NO_LIMIT; + } else if (bw_val > upper_limit_gbps) { + result = 0; + max_bw_unit[i] = MLX5_BW_NO_LIMIT; + } else if (bw_val <= upper_limit_mbps) { + max_bw_value[i] = howmany(bw_val, MLX5E_100MB); + max_bw_unit[i] = MLX5_100_MBPS_UNIT; + } else { + max_bw_value[i] = howmany(bw_val, MLX5E_1GB); + max_bw_unit[i] = MLX5_GBPS_UNIT; + } + } + + err = -mlx5_modify_port_tc_rate_limit(mdev, max_bw_value, max_bw_unit); + if (err) + goto done; + + priv->params_ethtool.max_bw_value[prio_index] = result; +done: + PRIV_UNLOCK(priv); + return (err); +} + #define MLX5_PARAM_OFFSET(n) \ __offsetof(struct mlx5e_priv, params_ethtool.n) @@ -734,9 +825,11 @@ mlx5e_create_diagnostics(struct mlx5e_priv *priv) void mlx5e_create_ethtool(struct mlx5e_priv *priv) { - struct sysctl_oid *node; + struct mlx5_core_dev *mdev = priv->mdev; + struct sysctl_oid *node, *qos_node; const char *pnameunit; unsigned x; + int i; /* set some defaults */ priv->params_ethtool.tx_queue_size_max = 1 << MLX5E_PARAMS_MAXIMUM_LOG_SQ_SIZE; @@ -830,4 +923,25 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) /* Diagnostics support */ mlx5e_create_diagnostics(priv); + + /* create qos node */ + qos_node = SYSCTL_ADD_NODE(&priv->sysctl_ctx, + SYSCTL_CHILDREN(node), OID_AUTO, + "qos", CTLFLAG_RW, NULL, "Quality Of Service configuration"); + if (node == NULL) + return; + + /* Prioriry rate limit support */ + if (mlx5e_getmaxrate(priv)) + return; + + for (i = 0; i <= mlx5_max_tc(mdev); i++) { + char name[32]; + snprintf(name, sizeof(name), "tc_%d_max_rate", i); + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(qos_node), + OID_AUTO, name, CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE, + priv, i, mlx5e_tc_maxrate_handler, "QU", + "Max rate for priority, specified in kilobits, where kilo=1000, \ + max_rate must be divisible by 100000"); + } } Modified: stable/11/sys/dev/mlx5/mlx5_ifc.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Mar 26 20:25:24 2018 (r331576) +++ stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Mar 26 20:27:08 2018 (r331577) @@ -9096,6 +9096,15 @@ struct mlx5_ifc_ets_global_config_reg_bits { u8 max_bw_value[0x8]; }; +struct mlx5_ifc_qetc_reg_bits { + u8 reserved_at_0[0x8]; + u8 port_number[0x8]; + u8 reserved_at_10[0x30]; + + struct mlx5_ifc_ets_tcn_config_reg_bits tc_configuration[0x8]; + struct mlx5_ifc_ets_global_config_reg_bits global_configuration; +}; + struct mlx5_ifc_nodnic_mac_filters_bits { struct mlx5_ifc_mac_address_layout_bits mac_filter0; Modified: stable/11/sys/dev/mlx5/port.h ============================================================================== --- stable/11/sys/dev/mlx5/port.h Mon Mar 26 20:25:24 2018 (r331576) +++ stable/11/sys/dev/mlx5/port.h Mon Mar 26 20:27:08 2018 (r331577) @@ -144,4 +144,11 @@ int mlx5_query_eeprom(struct mlx5_core_dev *dev, int i int device_addr, int size, int module_num, u32 *data, int *size_read); +int mlx5_max_tc(struct mlx5_core_dev *mdev); +int mlx5_query_port_tc_rate_limit(struct mlx5_core_dev *mdev, + u8 *max_bw_value, + u8 *max_bw_units); +int mlx5_modify_port_tc_rate_limit(struct mlx5_core_dev *mdev, + const u8 *max_bw_value, + const u8 *max_bw_units); #endif /* __MLX5_PORT_H__ */ From owner-svn-src-all@freebsd.org Mon Mar 26 20:28:51 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5804EF68C9A; Mon, 26 Mar 2018 20:28:51 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 08A4E7234E; Mon, 26 Mar 2018 20:28:51 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F35C811D41; Mon, 26 Mar 2018 20:28:50 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKSoMb016638; Mon, 26 Mar 2018 20:28:50 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKSoT0016633; Mon, 26 Mar 2018 20:28:50 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262028.w2QKSoT0016633@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:28:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331578 - in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Commit-Revision: 331578 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:28:51 -0000 Author: hselasky Date: Mon Mar 26 20:28:50 2018 New Revision: 331578 URL: https://svnweb.freebsd.org/changeset/base/331578 Log: MFC r330608: Implement priority to traffic class mapping in mlx5core. Add support for mapping priority to traffic class via sysctl Submitted by: Slava Shwartsman Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c stable/11/sys/dev/mlx5/port.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Mar 26 20:27:08 2018 (r331577) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Mar 26 20:28:50 2018 (r331578) @@ -943,6 +943,48 @@ int mlx5_modify_port_tc_rate_limit(struct mlx5_core_de } EXPORT_SYMBOL_GPL(mlx5_modify_port_tc_rate_limit); +int mlx5_query_port_prio_tc(struct mlx5_core_dev *mdev, + u8 prio, u8 *tc) +{ + u32 in[MLX5_ST_SZ_DW(qtct_reg)]; + u32 out[MLX5_ST_SZ_DW(qtct_reg)]; + int err; + + memset(in, 0, sizeof(in)); + memset(out, 0, sizeof(out)); + + MLX5_SET(qtct_reg, in, port_number, 1); + MLX5_SET(qtct_reg, in, prio, prio); + + err = mlx5_core_access_reg(mdev, in, sizeof(in), out, + sizeof(out), MLX5_REG_QTCT, 0, 0); + if (!err) + *tc = MLX5_GET(qtct_reg, out, tclass); + + return err; +} +EXPORT_SYMBOL_GPL(mlx5_query_port_prio_tc); + +int mlx5_set_port_prio_tc(struct mlx5_core_dev *mdev, int prio_index, + const u8 prio_tc) +{ + u32 in[MLX5_ST_SZ_DW(qtct_reg)] = {}; + u32 out[MLX5_ST_SZ_DW(qtct_reg)]; + int err; + + if (prio_tc > mlx5_max_tc(mdev)) + return -EINVAL; + + MLX5_SET(qtct_reg, in, prio, prio_index); + MLX5_SET(qtct_reg, in, tclass, prio_tc); + + err = mlx5_core_access_reg(mdev, in, sizeof(in), out, + sizeof(out), MLX5_REG_QTCT, 0, 1); + + return (err); +} +EXPORT_SYMBOL_GPL(mlx5_set_port_prio_tc); + int mlx5_modify_port_cong_params(struct mlx5_core_dev *mdev, void *in, int in_size) { Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 20:27:08 2018 (r331577) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 20:28:50 2018 (r331578) @@ -429,6 +429,7 @@ struct mlx5e_params_ethtool { u64 arg [0]; MLX5E_PARAMS(MLX5E_STATS_VAR) u64 max_bw_value[IEEE_8021QAZ_MAX_TCS]; + u8 prio_tc[IEEE_8021QAZ_MAX_TCS]; }; /* EEPROM Standards for plug in modules */ Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Mar 26 20:27:08 2018 (r331577) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c Mon Mar 26 20:28:50 2018 (r331578) @@ -175,6 +175,60 @@ done: return (err); } +static int +mlx5e_get_prio_tc(struct mlx5e_priv *priv) +{ + struct mlx5_core_dev *mdev = priv->mdev; + int err = 0; + int i; + + PRIV_LOCK(priv); + if (!MLX5_CAP_GEN(priv->mdev, ets)) { + PRIV_UNLOCK(priv); + return (EOPNOTSUPP); + } + + for (i = 0; i <= mlx5_max_tc(priv->mdev); i++) { + err = -mlx5_query_port_prio_tc(mdev, i, &(priv->params_ethtool.prio_tc[i])); + if (err) + break; + } + + PRIV_UNLOCK(priv); + return (err); +} + +static int +mlx5e_prio_to_tc_handler(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + int prio_index = arg2; + struct mlx5_core_dev *mdev = priv->mdev; + int err; + uint8_t result = priv->params_ethtool.prio_tc[prio_index]; + + PRIV_LOCK(priv); + err = sysctl_handle_8(oidp, &result, 0, req); + if (err || !req->newptr || + result == priv->params_ethtool.prio_tc[prio_index]) + goto done; + + if (result > mlx5_max_tc(mdev)) { + err = ERANGE; + goto done; + } + + err = -mlx5_set_port_prio_tc(mdev, prio_index, result); + if (err) + goto done; + + priv->params_ethtool.prio_tc[prio_index] = result; + +done: + PRIV_UNLOCK(priv); + return (err); +} + #define MLX5_PARAM_OFFSET(n) \ __offsetof(struct mlx5e_priv, params_ethtool.n) @@ -943,5 +997,17 @@ mlx5e_create_ethtool(struct mlx5e_priv *priv) priv, i, mlx5e_tc_maxrate_handler, "QU", "Max rate for priority, specified in kilobits, where kilo=1000, \ max_rate must be divisible by 100000"); + } + + if (mlx5e_get_prio_tc(priv)) + return; + + for (i = 0; i <= mlx5_max_tc(mdev); i++) { + char name[32]; + snprintf(name, sizeof(name), "prio_%d_to_tc", i); + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(qos_node), + OID_AUTO, name, CTLTYPE_U8 | CTLFLAG_RW | CTLFLAG_MPSAFE, + priv, i, mlx5e_prio_to_tc_handler, "CU", + "Set priority to traffic class"); } } Modified: stable/11/sys/dev/mlx5/port.h ============================================================================== --- stable/11/sys/dev/mlx5/port.h Mon Mar 26 20:27:08 2018 (r331577) +++ stable/11/sys/dev/mlx5/port.h Mon Mar 26 20:28:50 2018 (r331578) @@ -151,4 +151,8 @@ int mlx5_query_port_tc_rate_limit(struct mlx5_core_dev int mlx5_modify_port_tc_rate_limit(struct mlx5_core_dev *mdev, const u8 *max_bw_value, const u8 *max_bw_units); +int mlx5_query_port_prio_tc(struct mlx5_core_dev *mdev, + u8 prio, u8 *tc); +int mlx5_set_port_prio_tc(struct mlx5_core_dev *mdev, int prio_index, + const u8 prio_tc); #endif /* __MLX5_PORT_H__ */ From owner-svn-src-all@freebsd.org Mon Mar 26 20:30:08 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4047FF68E57; Mon, 26 Mar 2018 20:30:08 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EB614724B9; Mon, 26 Mar 2018 20:30:07 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E646C11D45; Mon, 26 Mar 2018 20:30:07 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKU7tS016768; Mon, 26 Mar 2018 20:30:07 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKU7cB016767; Mon, 26 Mar 2018 20:30:07 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201803262030.w2QKU7cB016767@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 26 Mar 2018 20:30:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331579 - head/sys/opencrypto X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/opencrypto X-SVN-Commit-Revision: 331579 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:30:08 -0000 Author: cem Date: Mon Mar 26 20:30:07 2018 New Revision: 331579 URL: https://svnweb.freebsd.org/changeset/base/331579 Log: cryptodev: Match intent for enc_xform ciphers with blocksize != ivsize No functional change for Skipjack, AES-ICM, Blowfish, CAST-128, Camellia, DES3, Rijndael128, DES. All of these have identical IV and blocksizes declared in the associated enc_xform. Functional changes for: * AES-GCM: block len of 1, IV len of 12 * AES-XTS: block len of 16, IV len of 8 * NULL: block len of 4, IV len of 0 For these, it seems like the IV specified in the enc_xform is correct (and the blocksize used before was wrong). Additionally, the not-yet-OCFed cipher Chacha20 has a logical block length of 1 byte, and a 16 byte IV + nonce. Rationalize references to IV lengths to refer to the declared ivsize, rather than declared blocksize. Sponsored by: Dell EMC Isilon Modified: head/sys/opencrypto/cryptodev.c Modified: head/sys/opencrypto/cryptodev.c ============================================================================== --- head/sys/opencrypto/cryptodev.c Mon Mar 26 20:28:50 2018 (r331578) +++ head/sys/opencrypto/cryptodev.c Mon Mar 26 20:30:07 2018 (r331579) @@ -854,7 +854,7 @@ cryptodev_op( goto bail; } if ((error = copyin(cop->iv, crde->crd_iv, - cse->txform->blocksize))) { + cse->txform->ivsize))) { SDT_PROBE1(opencrypto, dev, ioctl, error, __LINE__); goto bail; } @@ -864,8 +864,8 @@ cryptodev_op( crde->crd_skip = 0; } else if (crde) { crde->crd_flags |= CRD_F_IV_PRESENT; - crde->crd_skip = cse->txform->blocksize; - crde->crd_len -= cse->txform->blocksize; + crde->crd_skip = cse->txform->ivsize; + crde->crd_len -= cse->txform->ivsize; } if (cop->mac && crda == NULL) { @@ -1032,8 +1032,8 @@ cryptodev_aead( crde->crd_flags |= CRD_F_IV_EXPLICIT | CRD_F_IV_PRESENT; } else { crde->crd_flags |= CRD_F_IV_PRESENT; - crde->crd_skip += cse->txform->blocksize; - crde->crd_len -= cse->txform->blocksize; + crde->crd_skip += cse->txform->ivsize; + crde->crd_len -= cse->txform->ivsize; } if ((error = copyin(caead->tag, (caddr_t)cod->uio.uio_iov[0].iov_base + From owner-svn-src-all@freebsd.org Mon Mar 26 20:33:33 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C1059F69605; Mon, 26 Mar 2018 20:33:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7310572997; Mon, 26 Mar 2018 20:33:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6DB2711EDB; Mon, 26 Mar 2018 20:33:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKXWJX021513; Mon, 26 Mar 2018 20:33:32 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKXVRx021502; Mon, 26 Mar 2018 20:33:31 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262033.w2QKXVRx021502@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:33:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331580 - in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 331580 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:33:33 -0000 Author: hselasky Date: Mon Mar 26 20:33:31 2018 New Revision: 331580 URL: https://svnweb.freebsd.org/changeset/base/331580 Log: MFC r330644 and r330714: Updates for PCI and health monitor recovery in mlx5core. This patch accumulates the following Linux commits: mlx5_health.c - 78ccb25861d76a8fc5c678d762180e6918834200 mlx5_core: Fix wrong name in struct - 171bb2c560f45c0427ca3776a4c8f4e26e559400 mlx5_core: Update health syndromes - 0144a95e2ad53a40c62148f44fb0c1f9d2a0d1e9 mlx5_core: Use accessor functions to read from device memory - ac6ea6e81a80172612e0c9ef93720f371b198918 mlx5_core: Use private health thread for each device - fd76ee4da55abb21babfc69310d321b9cb9a32e0 mlx5_core: Fix internal error detection conditions - 2241007b3d783cbdbaa78c30bdb1994278b6f9b9 mlx5: Clear health sick bit when starting health poll - 712bfef60912d91033cb25739f7444d5b8d8c59f mlx5: Fix version printout in case of health issue - 89d44f0a6c732db23b219be708e2fe1e03ee4842 mlx5_core: Add pci error handlers to mlx5_core driver mlx5_cmd.c - be87544de8df2b1eb34bcb5e32691287d96f9ec4 mlx5_core: Fix async commands return code - a31208b1e11df334d443ec8cace7636150bb8ce2 mlx5_core: New init and exit flow for mlx5_core - 020446e01eebc9dbe7eda038e570ab9c7ab13586 mlx5_core: Prepare cmd interface to system errors handling - 89d44f0a6c732db23b219be708e2fe1e03ee4842 mlx5_core: Add pci error handlers to mlx5_core driver - 0d834442cc247c7b3f3bd6019512ae03e96dd99a mlx5: Fix teardown errors that happen in pci error handler mlx5_main.c - 5fc7197d3a256d9c5de3134870304b24892a4908 mlx5: Add pci shutdown callback Submitted by: Matthew Finlay Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/device.h stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_cq.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_mr.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_qp.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_srq.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/device.h ============================================================================== --- stable/11/sys/dev/mlx5/device.h Mon Mar 26 20:30:07 2018 (r331579) +++ stable/11/sys/dev/mlx5/device.h Mon Mar 26 20:33:31 2018 (r331580) @@ -417,7 +417,7 @@ struct mlx5_health_buffer { __be32 rsvd2; u8 irisc_index; u8 synd; - __be16 ext_sync; + __be16 ext_synd; }; struct mlx5_init_seg { Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:30:07 2018 (r331579) +++ stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:33:31 2018 (r331580) @@ -479,9 +479,11 @@ struct mlx5_core_health { struct mlx5_health_buffer __iomem *health; __be32 __iomem *health_counter; struct timer_list timer; - struct list_head list; u32 prev; int miss_counter; + bool sick; + struct workqueue_struct *wq; + struct work_struct work; }; #define MLX5_CQ_LINEAR_ARRAY_SIZE 1024 @@ -583,6 +585,17 @@ enum mlx5_device_state { MLX5_DEVICE_STATE_INTERNAL_ERROR, }; +enum mlx5_interface_state { + MLX5_INTERFACE_STATE_DOWN = BIT(0), + MLX5_INTERFACE_STATE_UP = BIT(1), + MLX5_INTERFACE_STATE_SHUTDOWN = BIT(2), +}; + +enum mlx5_pci_status { + MLX5_PCI_STATUS_DISABLED, + MLX5_PCI_STATUS_ENABLED, +}; + struct mlx5_special_contexts { int resd_lkey; }; @@ -590,6 +603,9 @@ struct mlx5_special_contexts { struct mlx5_flow_root_namespace; struct mlx5_core_dev { struct pci_dev *pdev; + /* sync pci state */ + struct mutex pci_status_mutex; + enum mlx5_pci_status pci_status; char board_id[MLX5_BOARD_ID_LEN]; struct mlx5_cmd cmd; struct mlx5_port_caps port_caps[MLX5_MAX_PORTS]; @@ -598,6 +614,9 @@ struct mlx5_core_dev { phys_addr_t iseg_base; struct mlx5_init_seg __iomem *iseg; enum mlx5_device_state state; + /* sync interface state */ + struct mutex intf_state_mutex; + unsigned long intf_state; void (*event) (struct mlx5_core_dev *dev, enum mlx5_dev_event event, unsigned long param); @@ -829,7 +848,6 @@ static inline u32 mlx5_base_mkey(const u32 key) return key & 0xffffff00u; } -void mlx5_enter_error_state(struct mlx5_core_dev *dev); int mlx5_cmd_init(struct mlx5_core_dev *dev); void mlx5_cmd_cleanup(struct mlx5_core_dev *dev); void mlx5_cmd_use_events(struct mlx5_core_dev *dev); @@ -849,8 +867,8 @@ int mlx5_alloc_uuars(struct mlx5_core_dev *dev, struct int mlx5_free_uuars(struct mlx5_core_dev *dev, struct mlx5_uuar_info *uuari); int mlx5_alloc_map_uar(struct mlx5_core_dev *mdev, struct mlx5_uar *uar); void mlx5_unmap_free_uar(struct mlx5_core_dev *mdev, struct mlx5_uar *uar); -void mlx5_health_cleanup(void); -void __init mlx5_health_init(void); +void mlx5_health_cleanup(struct mlx5_core_dev *dev); +int mlx5_health_init(struct mlx5_core_dev *dev); void mlx5_start_health_poll(struct mlx5_core_dev *dev); void mlx5_stop_health_poll(struct mlx5_core_dev *dev); @@ -908,7 +926,6 @@ void mlx5_rsc_event(struct mlx5_core_dev *dev, u32 rsn void mlx5_srq_event(struct mlx5_core_dev *dev, u32 srqn, int event_type); struct mlx5_core_srq *mlx5_core_get_srq(struct mlx5_core_dev *dev, u32 srqn); void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u32 vector); -void mlx5_trigger_cmd_completions(struct mlx5_core_dev *dev); void mlx5_cq_event(struct mlx5_core_dev *dev, u32 cqn, int event_type); int mlx5_create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq, u8 vecidx, int nent, u64 mask, const char *name, struct mlx5_uar *uar); @@ -1026,6 +1043,10 @@ struct mlx5_profile { enum { MLX5_PCI_DEV_IS_VF = 1 << 0, +}; + +enum { + MLX5_TRIGGERED_CMD_COMP = (u64)1 << 32, }; static inline int mlx5_core_is_pf(struct mlx5_core_dev *dev) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Mar 26 20:30:07 2018 (r331579) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c Mon Mar 26 20:33:31 2018 (r331580) @@ -295,6 +295,158 @@ static void dump_buf(void *buf, int size, int data_onl pr_debug("\n"); } +enum { + MLX5_DRIVER_STATUS_ABORTED = 0xfe, + MLX5_DRIVER_SYND = 0xbadd00de, +}; + +static int mlx5_internal_err_ret_value(struct mlx5_core_dev *dev, u16 op, + u32 *synd, u8 *status) +{ + *synd = 0; + *status = 0; + + switch (op) { + case MLX5_CMD_OP_TEARDOWN_HCA: + case MLX5_CMD_OP_DISABLE_HCA: + case MLX5_CMD_OP_MANAGE_PAGES: + case MLX5_CMD_OP_DESTROY_MKEY: + case MLX5_CMD_OP_DESTROY_EQ: + case MLX5_CMD_OP_DESTROY_CQ: + case MLX5_CMD_OP_DESTROY_QP: + case MLX5_CMD_OP_DESTROY_PSV: + case MLX5_CMD_OP_DESTROY_SRQ: + case MLX5_CMD_OP_DESTROY_XRC_SRQ: + case MLX5_CMD_OP_DESTROY_DCT: + case MLX5_CMD_OP_DEALLOC_Q_COUNTER: + case MLX5_CMD_OP_DEALLOC_PD: + case MLX5_CMD_OP_DEALLOC_UAR: + case MLX5_CMD_OP_DETACH_FROM_MCG: + case MLX5_CMD_OP_DEALLOC_XRCD: + case MLX5_CMD_OP_DEALLOC_TRANSPORT_DOMAIN: + case MLX5_CMD_OP_DELETE_VXLAN_UDP_DPORT: + case MLX5_CMD_OP_DELETE_L2_TABLE_ENTRY: + case MLX5_CMD_OP_DESTROY_TIR: + case MLX5_CMD_OP_DESTROY_SQ: + case MLX5_CMD_OP_DESTROY_RQ: + case MLX5_CMD_OP_DESTROY_RMP: + case MLX5_CMD_OP_DESTROY_TIS: + case MLX5_CMD_OP_DESTROY_RQT: + case MLX5_CMD_OP_DESTROY_FLOW_TABLE: + case MLX5_CMD_OP_DESTROY_FLOW_GROUP: + case MLX5_CMD_OP_DELETE_FLOW_TABLE_ENTRY: + case MLX5_CMD_OP_2ERR_QP: + case MLX5_CMD_OP_2RST_QP: + case MLX5_CMD_OP_MODIFY_NIC_VPORT_CONTEXT: + case MLX5_CMD_OP_MODIFY_FLOW_TABLE: + case MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY: + case MLX5_CMD_OP_SET_FLOW_TABLE_ROOT: + return MLX5_CMD_STAT_OK; + + case MLX5_CMD_OP_QUERY_HCA_CAP: + case MLX5_CMD_OP_QUERY_ADAPTER: + case MLX5_CMD_OP_INIT_HCA: + case MLX5_CMD_OP_ENABLE_HCA: + case MLX5_CMD_OP_QUERY_PAGES: + case MLX5_CMD_OP_SET_HCA_CAP: + case MLX5_CMD_OP_QUERY_ISSI: + case MLX5_CMD_OP_SET_ISSI: + case MLX5_CMD_OP_CREATE_MKEY: + case MLX5_CMD_OP_QUERY_MKEY: + case MLX5_CMD_OP_QUERY_SPECIAL_CONTEXTS: + case MLX5_CMD_OP_PAGE_FAULT_RESUME: + case MLX5_CMD_OP_CREATE_EQ: + case MLX5_CMD_OP_QUERY_EQ: + case MLX5_CMD_OP_GEN_EQE: + case MLX5_CMD_OP_CREATE_CQ: + case MLX5_CMD_OP_QUERY_CQ: + case MLX5_CMD_OP_MODIFY_CQ: + case MLX5_CMD_OP_CREATE_QP: + case MLX5_CMD_OP_RST2INIT_QP: + case MLX5_CMD_OP_INIT2RTR_QP: + case MLX5_CMD_OP_RTR2RTS_QP: + case MLX5_CMD_OP_RTS2RTS_QP: + case MLX5_CMD_OP_SQERR2RTS_QP: + case MLX5_CMD_OP_QUERY_QP: + case MLX5_CMD_OP_SQD_RTS_QP: + case MLX5_CMD_OP_INIT2INIT_QP: + case MLX5_CMD_OP_CREATE_PSV: + case MLX5_CMD_OP_CREATE_SRQ: + case MLX5_CMD_OP_QUERY_SRQ: + case MLX5_CMD_OP_ARM_RQ: + case MLX5_CMD_OP_CREATE_XRC_SRQ: + case MLX5_CMD_OP_QUERY_XRC_SRQ: + case MLX5_CMD_OP_ARM_XRC_SRQ: + case MLX5_CMD_OP_CREATE_DCT: + case MLX5_CMD_OP_DRAIN_DCT: + case MLX5_CMD_OP_QUERY_DCT: + case MLX5_CMD_OP_ARM_DCT_FOR_KEY_VIOLATION: + case MLX5_CMD_OP_QUERY_VPORT_STATE: + case MLX5_CMD_OP_MODIFY_VPORT_STATE: + case MLX5_CMD_OP_QUERY_ESW_VPORT_CONTEXT: + case MLX5_CMD_OP_MODIFY_ESW_VPORT_CONTEXT: + case MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT: + case MLX5_CMD_OP_QUERY_ROCE_ADDRESS: + case MLX5_CMD_OP_SET_ROCE_ADDRESS: + case MLX5_CMD_OP_QUERY_HCA_VPORT_CONTEXT: + case MLX5_CMD_OP_MODIFY_HCA_VPORT_CONTEXT: + case MLX5_CMD_OP_QUERY_HCA_VPORT_GID: + case MLX5_CMD_OP_QUERY_HCA_VPORT_PKEY: + case MLX5_CMD_OP_QUERY_VPORT_COUNTER: + case MLX5_CMD_OP_ALLOC_Q_COUNTER: + case MLX5_CMD_OP_QUERY_Q_COUNTER: + case MLX5_CMD_OP_ALLOC_PD: + case MLX5_CMD_OP_ALLOC_UAR: + case MLX5_CMD_OP_CONFIG_INT_MODERATION: + case MLX5_CMD_OP_ACCESS_REG: + case MLX5_CMD_OP_ATTACH_TO_MCG: + case MLX5_CMD_OP_GET_DROPPED_PACKET_LOG: + case MLX5_CMD_OP_MAD_IFC: + case MLX5_CMD_OP_QUERY_MAD_DEMUX: + case MLX5_CMD_OP_SET_MAD_DEMUX: + case MLX5_CMD_OP_NOP: + case MLX5_CMD_OP_ALLOC_XRCD: + case MLX5_CMD_OP_ALLOC_TRANSPORT_DOMAIN: + case MLX5_CMD_OP_QUERY_CONG_STATUS: + case MLX5_CMD_OP_MODIFY_CONG_STATUS: + case MLX5_CMD_OP_QUERY_CONG_PARAMS: + case MLX5_CMD_OP_MODIFY_CONG_PARAMS: + case MLX5_CMD_OP_QUERY_CONG_STATISTICS: + case MLX5_CMD_OP_ADD_VXLAN_UDP_DPORT: + case MLX5_CMD_OP_SET_L2_TABLE_ENTRY: + case MLX5_CMD_OP_QUERY_L2_TABLE_ENTRY: + case MLX5_CMD_OP_CREATE_TIR: + case MLX5_CMD_OP_MODIFY_TIR: + case MLX5_CMD_OP_QUERY_TIR: + case MLX5_CMD_OP_CREATE_SQ: + case MLX5_CMD_OP_MODIFY_SQ: + case MLX5_CMD_OP_QUERY_SQ: + case MLX5_CMD_OP_CREATE_RQ: + case MLX5_CMD_OP_MODIFY_RQ: + case MLX5_CMD_OP_QUERY_RQ: + case MLX5_CMD_OP_CREATE_RMP: + case MLX5_CMD_OP_MODIFY_RMP: + case MLX5_CMD_OP_QUERY_RMP: + case MLX5_CMD_OP_CREATE_TIS: + case MLX5_CMD_OP_MODIFY_TIS: + case MLX5_CMD_OP_QUERY_TIS: + case MLX5_CMD_OP_CREATE_RQT: + case MLX5_CMD_OP_MODIFY_RQT: + case MLX5_CMD_OP_QUERY_RQT: + case MLX5_CMD_OP_CREATE_FLOW_TABLE: + case MLX5_CMD_OP_QUERY_FLOW_TABLE: + case MLX5_CMD_OP_CREATE_FLOW_GROUP: + case MLX5_CMD_OP_QUERY_FLOW_GROUP: + case MLX5_CMD_OP_QUERY_FLOW_TABLE_ENTRY: + *status = MLX5_DRIVER_STATUS_ABORTED; + *synd = MLX5_DRIVER_SYND; + return -EIO; + default: + mlx5_core_err(dev, "Unknown FW command (%d)\n", op); + return -EINVAL; + } +} + const char *mlx5_command_str(int command) { #define MLX5_COMMAND_STR_CASE(__cmd) case MLX5_CMD_OP_ ## __cmd: return #__cmd @@ -743,6 +895,7 @@ static void complete_command(struct mlx5_cmd_work_ent mlx5_free_cmd_msg(dev, ent->out); free_msg(dev, ent->in); + err = err ? err : ent->status; free_cmd(ent); callback(err, context); } else { @@ -861,6 +1014,16 @@ static int wait_func(struct mlx5_core_dev *dev, struct return err; } +static __be32 *get_synd_ptr(struct mlx5_outbox_hdr *out) +{ + return &out->syndrome; +} + +static u8 *get_status_ptr(struct mlx5_outbox_hdr *out) +{ + return &out->status; +} + /* Notes: * 1. Callback functions may not sleep * 2. page queue commands do not support asynchrous completion @@ -1102,6 +1265,10 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, else ent->ret = 0; ent->status = ent->lay->status_own >> 1; + if (vector & MLX5_TRIGGERED_CMD_COMP) + ent->status = MLX5_DRIVER_STATUS_ABORTED; + else + ent->status = ent->lay->status_own >> 1; mlx5_core_dbg(dev, "FW command ret 0x%x, status %s(0x%x)\n", @@ -1115,33 +1282,6 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, } EXPORT_SYMBOL(mlx5_cmd_comp_handler); -void mlx5_trigger_cmd_completions(struct mlx5_core_dev *dev) -{ - unsigned long vector; - int i = 0; - unsigned long flags; - synchronize_irq(dev->priv.eq_table.cmd_eq.irqn); - spin_lock_irqsave(&dev->cmd.alloc_lock, flags); - vector = ~dev->cmd.bitmask & ((1ul << (1 << dev->cmd.log_sz)) - 1); - spin_unlock_irqrestore(&dev->cmd.alloc_lock, flags); - - if (!vector) - return; - - for (i = 0; i < (1 << dev->cmd.log_sz); i++) { - struct mlx5_cmd_work_ent *ent = dev->cmd.ent_arr[i]; - - if (!test_bit(i, &vector)) - continue; - - while (ent->busy) - usleep_range(1000, 1100); - free_ent(&dev->cmd, i); - complete_command(ent); - } -} -EXPORT_SYMBOL(mlx5_trigger_cmd_completions); - static int status_to_err(u8 status) { return status ? -1 : 0; /* TBD more meaningful codes */ @@ -1175,6 +1315,11 @@ static struct mlx5_cmd_msg *alloc_msg(struct mlx5_core return msg; } +static u16 opcode_from_in(struct mlx5_inbox_hdr *in) +{ + return be16_to_cpu(in->opcode); +} + static int is_manage_pages(struct mlx5_inbox_hdr *in) { return be16_to_cpu(in->opcode) == MLX5_CMD_OP_MANAGE_PAGES; @@ -1191,7 +1336,16 @@ static int cmd_exec_helper(struct mlx5_core_dev *dev, const gfp_t gfp = GFP_KERNEL; int err; u8 status = 0; + u32 drv_synd; + if (pci_channel_offline(dev->pdev) || + dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) { + err = mlx5_internal_err_ret_value(dev, opcode_from_in(in), &drv_synd, &status); + *get_synd_ptr(out) = cpu_to_be32(drv_synd); + *get_status_ptr(out) = status; + return err; + } + pages_queue = is_manage_pages(in); inb = alloc_msg(dev, in_size, gfp); @@ -1377,6 +1531,7 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev) int err; int i; + memset(cmd, 0, sizeof(*cmd)); cmd_if_rev = cmdif_rev_get(dev); if (cmd_if_rev != CMD_IF_REV) { device_printf((&dev->pdev->dev)->bsddev, "ERR: ""Driver cmdif rev(%d) differs from firmware's(%d)\n", CMD_IF_REV, cmd_if_rev); Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Mar 26 20:30:07 2018 (r331579) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Mar 26 20:33:31 2018 (r331580) @@ -70,6 +70,10 @@ int mlx5_query_hca_caps(struct mlx5_core_dev *dev); int mlx5_query_board_id(struct mlx5_core_dev *dev); int mlx5_cmd_init_hca(struct mlx5_core_dev *dev); int mlx5_cmd_teardown_hca(struct mlx5_core_dev *dev); +void mlx5_core_event(struct mlx5_core_dev *dev, enum mlx5_dev_event event, + unsigned long param); +void mlx5_enter_error_state(struct mlx5_core_dev *dev); +void mlx5_disable_device(struct mlx5_core_dev *dev); void mlx5e_init(void); void mlx5e_cleanup(void); Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cq.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_cq.c Mon Mar 26 20:30:07 2018 (r331579) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_cq.c Mon Mar 26 20:33:31 2018 (r331580) @@ -294,6 +294,7 @@ int mlx5_init_cq_table(struct mlx5_core_dev *dev) int err; int x; + memset(table, 0, sizeof(*table)); spin_lock_init(&table->lock); for (x = 0; x != MLX5_CQ_LINEAR_ARRAY_SIZE; x++) spin_lock_init(&table->linear_array[x].lock); Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Mar 26 20:30:07 2018 (r331579) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c Mon Mar 26 20:33:31 2018 (r331580) @@ -398,6 +398,7 @@ int mlx5_create_map_eq(struct mlx5_core_dev *dev, stru int inlen; eq->nent = roundup_pow_of_two(nent + MLX5_NUM_SPARE_EQE); + eq->cons_index = 0; err = mlx5_buf_alloc(dev, eq->nent * MLX5_EQE_SIZE, 2 * PAGE_SIZE, &eq->buf); if (err) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Mar 26 20:30:07 2018 (r331579) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Mar 26 20:33:31 2018 (r331580) @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include "mlx5_core.h" @@ -36,31 +37,113 @@ #define MLX5_HEALTH_POLL_INTERVAL (2 * HZ) #define MAX_MISSES 3 -static DEFINE_SPINLOCK(health_lock); -static LIST_HEAD(health_list); -static struct work_struct health_work; +enum { + MLX5_NIC_IFC_FULL = 0, + MLX5_NIC_IFC_DISABLED = 1, + MLX5_NIC_IFC_NO_DRAM_NIC = 2 +}; +static u8 get_nic_interface(struct mlx5_core_dev *dev) +{ + return (ioread32be(&dev->iseg->cmdq_addr_l_sz) >> 8) & 3; +} + +static void mlx5_trigger_cmd_completions(struct mlx5_core_dev *dev) +{ + unsigned long flags; + u64 vector; + + /* wait for pending handlers to complete */ + synchronize_irq(dev->priv.msix_arr[MLX5_EQ_VEC_CMD].vector); + spin_lock_irqsave(&dev->cmd.alloc_lock, flags); + vector = ~dev->cmd.bitmask & ((1ul << (1 << dev->cmd.log_sz)) - 1); + if (!vector) + goto no_trig; + + vector |= MLX5_TRIGGERED_CMD_COMP; + spin_unlock_irqrestore(&dev->cmd.alloc_lock, flags); + + mlx5_core_dbg(dev, "vector 0x%lx\n", vector); + mlx5_cmd_comp_handler(dev, vector); + return; + +no_trig: + spin_unlock_irqrestore(&dev->cmd.alloc_lock, flags); +} + +static int in_fatal(struct mlx5_core_dev *dev) +{ + struct mlx5_core_health *health = &dev->priv.health; + struct mlx5_health_buffer __iomem *h = health->health; + + if (get_nic_interface(dev) == MLX5_NIC_IFC_DISABLED) + return 1; + + if (ioread32be(&h->fw_ver) == 0xffffffff) + return 1; + + return 0; +} + +void mlx5_enter_error_state(struct mlx5_core_dev *dev) +{ + if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) + return; + + mlx5_core_err(dev, "start\n"); + if (pci_channel_offline(dev->pdev) || in_fatal(dev)) + dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR; + + mlx5_core_event(dev, MLX5_DEV_EVENT_SYS_ERROR, 0); + mlx5_core_err(dev, "end\n"); +} + +static void mlx5_handle_bad_state(struct mlx5_core_dev *dev) +{ + u8 nic_interface = get_nic_interface(dev); + + switch (nic_interface) { + case MLX5_NIC_IFC_FULL: + mlx5_core_warn(dev, "Expected to see disabled NIC but it is full driver\n"); + break; + + case MLX5_NIC_IFC_DISABLED: + mlx5_core_warn(dev, "starting teardown\n"); + break; + + case MLX5_NIC_IFC_NO_DRAM_NIC: + mlx5_core_warn(dev, "Expected to see disabled NIC but it is no dram nic\n"); + break; + default: + mlx5_core_warn(dev, "Expected to see disabled NIC but it is has invalid value %d\n", + nic_interface); + } + + mlx5_disable_device(dev); +} + static void health_care(struct work_struct *work) { - struct mlx5_core_health *health, *n; + struct mlx5_core_health *health; struct mlx5_core_dev *dev; struct mlx5_priv *priv; - LIST_HEAD(tlist); - spin_lock_irq(&health_lock); - list_splice_init(&health_list, &tlist); + health = container_of(work, struct mlx5_core_health, work); + priv = container_of(health, struct mlx5_priv, health); + dev = container_of(priv, struct mlx5_core_dev, priv); + mlx5_core_warn(dev, "handling bad device here\n"); + mlx5_handle_bad_state(dev); +} - spin_unlock_irq(&health_lock); +static int get_next_poll_jiffies(void) +{ + unsigned long next; - list_for_each_entry_safe(health, n, &tlist, list) { - priv = container_of(health, struct mlx5_priv, health); - dev = container_of(priv, struct mlx5_core_dev, priv); - mlx5_core_warn(dev, "handling bad device here\n"); - /* nothing yet */ - spin_lock_irq(&health_lock); - list_del_init(&health->list); - spin_unlock_irq(&health_lock); - } + get_random_bytes(&next, sizeof(next)); + next %= HZ; + next += jiffies + MLX5_HEALTH_POLL_INTERVAL; + + return next; } static const char *hsynd_str(u8 synd) @@ -70,6 +153,8 @@ static const char *hsynd_str(u8 synd) return "firmware internal error"; case MLX5_HEALTH_SYNDR_IRISC_ERR: return "irisc not responding"; + case MLX5_HEALTH_SYNDR_HW_UNRECOVERABLE_ERR: + return "unrecoverable hardware error"; case MLX5_HEALTH_SYNDR_CRC_ERR: return "firmware CRC error"; case MLX5_HEALTH_SYNDR_FETCH_PCI_ERR: @@ -80,51 +165,59 @@ static const char *hsynd_str(u8 synd) return "async EQ buffer overrun"; case MLX5_HEALTH_SYNDR_EQ_ERR: return "EQ error"; + case MLX5_HEALTH_SYNDR_EQ_INV: + return "Invalid EQ referenced"; case MLX5_HEALTH_SYNDR_FFSER_ERR: return "FFSER error"; + case MLX5_HEALTH_SYNDR_HIGH_TEMP: + return "High temprature"; default: return "unrecognized error"; } } -static u16 read_be16(__be16 __iomem *p) -{ - return swab16(readl((__force u16 __iomem *) p)); -} - -static u32 read_be32(__be32 __iomem *p) -{ - return swab32(readl((__force u32 __iomem *) p)); -} - static void print_health_info(struct mlx5_core_dev *dev) { struct mlx5_core_health *health = &dev->priv.health; struct mlx5_health_buffer __iomem *h = health->health; + char fw_str[18]; + u32 fw; int i; + /* If the syndrom is 0, the device is OK and no need to print buffer */ + if (!ioread8(&h->synd)) + return; + for (i = 0; i < ARRAY_SIZE(h->assert_var); i++) - printf("mlx5_core: INFO: ""assert_var[%d] 0x%08x\n", i, read_be32(h->assert_var + i)); + printf("mlx5_core: INFO: ""assert_var[%d] 0x%08x\n", i, ioread32be(h->assert_var + i)); - printf("mlx5_core: INFO: ""assert_exit_ptr 0x%08x\n", read_be32(&h->assert_exit_ptr)); - printf("mlx5_core: INFO: ""assert_callra 0x%08x\n", read_be32(&h->assert_callra)); - printf("mlx5_core: INFO: ""fw_ver 0x%08x\n", read_be32(&h->fw_ver)); - printf("mlx5_core: INFO: ""hw_id 0x%08x\n", read_be32(&h->hw_id)); - printf("mlx5_core: INFO: ""irisc_index %d\n", readb(&h->irisc_index)); - printf("mlx5_core: INFO: ""synd 0x%x: %s\n", readb(&h->synd), hsynd_str(readb(&h->synd))); - printf("mlx5_core: INFO: ""ext_sync 0x%04x\n", read_be16(&h->ext_sync)); + printf("mlx5_core: INFO: ""assert_exit_ptr 0x%08x\n", ioread32be(&h->assert_exit_ptr)); + printf("mlx5_core: INFO: ""assert_callra 0x%08x\n", ioread32be(&h->assert_callra)); + snprintf(fw_str, sizeof(fw_str), "%d.%d.%d", fw_rev_maj(dev), fw_rev_min(dev), fw_rev_sub(dev)); + printf("mlx5_core: INFO: ""fw_ver %s\n", fw_str); + printf("mlx5_core: INFO: ""hw_id 0x%08x\n", ioread32be(&h->hw_id)); + printf("mlx5_core: INFO: ""irisc_index %d\n", ioread8(&h->irisc_index)); + printf("mlx5_core: INFO: ""synd 0x%x: %s\n", ioread8(&h->synd), hsynd_str(ioread8(&h->synd))); + printf("mlx5_core: INFO: ""ext_synd 0x%04x\n", ioread16be(&h->ext_synd)); + fw = ioread32be(&h->fw_ver); + printf("mlx5_core: INFO: ""raw fw_ver 0x%08x\n", fw); } static void poll_health(unsigned long data) { struct mlx5_core_dev *dev = (struct mlx5_core_dev *)data; struct mlx5_core_health *health = &dev->priv.health; - int next; u32 count; if (dev->state != MLX5_DEVICE_STATE_UP) return; + if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) { + mlx5_trigger_cmd_completions(dev); + mod_timer(&health->timer, get_next_poll_jiffies()); + return; + } + count = ioread32be(health->health_counter); if (count == health->prev) ++health->miss_counter; @@ -133,28 +226,25 @@ static void poll_health(unsigned long data) health->prev = count; if (health->miss_counter == MAX_MISSES) { - mlx5_core_err(dev, "device's health compromised\n"); + mlx5_core_err(dev, "device's health compromised - reached miss count\n"); print_health_info(dev); - spin_lock_irq(&health_lock); - list_add_tail(&health->list, &health_list); - spin_unlock_irq(&health_lock); - - if (!queue_work(mlx5_core_wq, &health_work)) - mlx5_core_warn(dev, "failed to queue health work\n"); } else { - get_random_bytes(&next, sizeof(next)); - next %= HZ; - next += jiffies + MLX5_HEALTH_POLL_INTERVAL; - mod_timer(&health->timer, next); + mod_timer(&health->timer, get_next_poll_jiffies()); } + + if (in_fatal(dev) && !health->sick) { + health->sick = true; + print_health_info(dev); + queue_work(health->wq, &health->work); + } } void mlx5_start_health_poll(struct mlx5_core_dev *dev) { struct mlx5_core_health *health = &dev->priv.health; - INIT_LIST_HEAD(&health->list); init_timer(&health->timer); + health->sick = 0; health->health = &dev->iseg->health; health->health_counter = &dev->iseg->health_counter; @@ -168,19 +258,35 @@ void mlx5_stop_health_poll(struct mlx5_core_dev *dev) struct mlx5_core_health *health = &dev->priv.health; del_timer_sync(&health->timer); - - spin_lock_irq(&health_lock); - if (!list_empty(&health->list)) - list_del_init(&health->list); - spin_unlock_irq(&health_lock); } -void mlx5_health_cleanup(void) +void mlx5_health_cleanup(struct mlx5_core_dev *dev) { + struct mlx5_core_health *health = &dev->priv.health; + + destroy_workqueue(health->wq); } -void __init mlx5_health_init(void) +#define HEALTH_NAME "mlx5_health" +int mlx5_health_init(struct mlx5_core_dev *dev) { + struct mlx5_core_health *health; + char *name; + int len; - INIT_WORK(&health_work, health_care); + health = &dev->priv.health; + len = strlen(HEALTH_NAME) + strlen(dev_name(&dev->pdev->dev)); + name = kmalloc(len + 1, GFP_KERNEL); + if (!name) + return -ENOMEM; + + snprintf(name, len, "%s:%s", HEALTH_NAME, dev_name(&dev->pdev->dev)); + health->wq = create_singlethread_workqueue(name); + kfree(name); + if (!health->wq) + return -ENOMEM; + + INIT_WORK(&health->work, health_care); + + return 0; } Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Mar 26 20:30:07 2018 (r331579) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Mar 26 20:33:31 2018 (r331580) @@ -63,7 +63,6 @@ MODULE_PARM_DESC(prof_sel, "profile selector. Valid ra #define NUMA_NO_NODE -1 -struct workqueue_struct *mlx5_core_wq; static LIST_HEAD(intf_list); static LIST_HEAD(dev_list); static DEFINE_MUTEX(intf_mutex); @@ -186,6 +185,34 @@ static int set_dma_caps(struct pci_dev *pdev) return err; } +static int mlx5_pci_enable_device(struct mlx5_core_dev *dev) +{ + struct pci_dev *pdev = dev->pdev; + int err = 0; + + mutex_lock(&dev->pci_status_mutex); + if (dev->pci_status == MLX5_PCI_STATUS_DISABLED) { + err = pci_enable_device(pdev); + if (!err) + dev->pci_status = MLX5_PCI_STATUS_ENABLED; + } + mutex_unlock(&dev->pci_status_mutex); + + return err; +} + +static void mlx5_pci_disable_device(struct mlx5_core_dev *dev) +{ + struct pci_dev *pdev = dev->pdev; + + mutex_lock(&dev->pci_status_mutex); + if (dev->pci_status == MLX5_PCI_STATUS_ENABLED) { + pci_disable_device(pdev); + dev->pci_status = MLX5_PCI_STATUS_DISABLED; + } + mutex_unlock(&dev->pci_status_mutex); +} + static int request_bar(struct pci_dev *pdev) { int err = 0; @@ -680,12 +707,128 @@ static int wait_fw_init(struct mlx5_core_dev *dev, u32 return err; } -static int mlx5_dev_init(struct mlx5_core_dev *dev, struct pci_dev *pdev) +static void mlx5_add_device(struct mlx5_interface *intf, struct mlx5_priv *priv) { + struct mlx5_device_context *dev_ctx; + struct mlx5_core_dev *dev = container_of(priv, struct mlx5_core_dev, priv); + + dev_ctx = kzalloc(sizeof(*dev_ctx), GFP_KERNEL); + if (!dev_ctx) + return; + + dev_ctx->intf = intf; + CURVNET_SET_QUIET(vnet0); + dev_ctx->context = intf->add(dev); + CURVNET_RESTORE(); + + if (dev_ctx->context) { + spin_lock_irq(&priv->ctx_lock); + list_add_tail(&dev_ctx->list, &priv->ctx_list); + spin_unlock_irq(&priv->ctx_lock); + } else { + kfree(dev_ctx); + } +} + +static void mlx5_remove_device(struct mlx5_interface *intf, struct mlx5_priv *priv) +{ + struct mlx5_device_context *dev_ctx; + struct mlx5_core_dev *dev = container_of(priv, struct mlx5_core_dev, priv); + + list_for_each_entry(dev_ctx, &priv->ctx_list, list) + if (dev_ctx->intf == intf) { + spin_lock_irq(&priv->ctx_lock); + list_del(&dev_ctx->list); + spin_unlock_irq(&priv->ctx_lock); + + intf->remove(dev, dev_ctx->context); + kfree(dev_ctx); + return; + } +} + +static int mlx5_register_device(struct mlx5_core_dev *dev) +{ struct mlx5_priv *priv = &dev->priv; - int err; + struct mlx5_interface *intf; - dev->pdev = pdev; + mutex_lock(&intf_mutex); + list_add_tail(&priv->dev_list, &dev_list); + list_for_each_entry(intf, &intf_list, list) + mlx5_add_device(intf, priv); + mutex_unlock(&intf_mutex); + + return 0; +} + +static void mlx5_unregister_device(struct mlx5_core_dev *dev) +{ + struct mlx5_priv *priv = &dev->priv; + struct mlx5_interface *intf; + + mutex_lock(&intf_mutex); + list_for_each_entry(intf, &intf_list, list) + mlx5_remove_device(intf, priv); + list_del(&priv->dev_list); + mutex_unlock(&intf_mutex); +} + +int mlx5_register_interface(struct mlx5_interface *intf) +{ + struct mlx5_priv *priv; + + if (!intf->add || !intf->remove) + return -EINVAL; + + mutex_lock(&intf_mutex); + list_add_tail(&intf->list, &intf_list); + list_for_each_entry(priv, &dev_list, dev_list) + mlx5_add_device(intf, priv); + mutex_unlock(&intf_mutex); + + return 0; +} +EXPORT_SYMBOL(mlx5_register_interface); + +void mlx5_unregister_interface(struct mlx5_interface *intf) +{ + struct mlx5_priv *priv; + + mutex_lock(&intf_mutex); + list_for_each_entry(priv, &dev_list, dev_list) + mlx5_remove_device(intf, priv); + list_del(&intf->list); + mutex_unlock(&intf_mutex); +} +EXPORT_SYMBOL(mlx5_unregister_interface); + +void *mlx5_get_protocol_dev(struct mlx5_core_dev *mdev, int protocol) +{ + struct mlx5_priv *priv = &mdev->priv; + struct mlx5_device_context *dev_ctx; + unsigned long flags; + void *result = NULL; + + spin_lock_irqsave(&priv->ctx_lock, flags); + + list_for_each_entry(dev_ctx, &mdev->priv.ctx_list, list) + if ((dev_ctx->intf->protocol == protocol) && + dev_ctx->intf->get_dev) { + result = dev_ctx->intf->get_dev(dev_ctx->context); + break; + } + + spin_unlock_irqrestore(&priv->ctx_lock, flags); + + return result; +} +EXPORT_SYMBOL(mlx5_get_protocol_dev); + +static int mlx5_pci_init(struct mlx5_core_dev *dev, struct mlx5_priv *priv) +{ + struct pci_dev *pdev = dev->pdev; + int err = 0; + pci_set_drvdata(dev->pdev, dev); strncpy(priv->name, dev_name(&pdev->dev), MLX5_MAX_NAME_LEN); priv->name[MLX5_MAX_NAME_LEN - 1] = 0; @@ -696,7 +839,7 @@ static int mlx5_dev_init(struct mlx5_core_dev *dev, st priv->numa_node = NUMA_NO_NODE; - err = pci_enable_device(pdev); + err = mlx5_pci_enable_device(dev); if (err) { device_printf((&pdev->dev)->bsddev, "ERR: ""Cannot enable PCI device, aborting\n"); goto err_dbg; @@ -723,6 +866,38 @@ static int mlx5_dev_init(struct mlx5_core_dev *dev, st device_printf((&pdev->dev)->bsddev, "ERR: ""Failed mapping initialization segment, aborting\n"); goto err_clr_master; } + + return 0; + +err_clr_master: + pci_clear_master(dev->pdev); + release_bar(dev->pdev); +err_disable: + mlx5_pci_disable_device(dev); +err_dbg: + return err; +} + +static void mlx5_pci_close(struct mlx5_core_dev *dev, struct mlx5_priv *priv) +{ + iounmap(dev->iseg); + pci_clear_master(dev->pdev); + release_bar(dev->pdev); + mlx5_pci_disable_device(dev); +} + +static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv) +{ + struct pci_dev *pdev = dev->pdev; + int err; + + mutex_lock(&dev->intf_state_mutex); + if (test_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state)) { + dev_warn(&dev->pdev->dev, "%s: interface is up, NOP\n", + __func__); + goto out; + } + device_printf((&pdev->dev)->bsddev, "INFO: ""firmware version: %d.%d.%d\n", fw_rev_maj(dev), fw_rev_min(dev), fw_rev_sub(dev)); /* @@ -734,7 +909,7 @@ static int mlx5_dev_init(struct mlx5_core_dev *dev, st err = mlx5_cmd_init(dev); if (err) { device_printf((&pdev->dev)->bsddev, "ERR: ""Failed initializing command interface, aborting\n"); - goto err_unmap; + goto out_err; } err = wait_fw_init(dev, FW_INIT_TIMEOUT_MILI); @@ -859,8 +1034,21 @@ static int mlx5_dev_init(struct mlx5_core_dev *dev, st goto err_init_tables; } + err = mlx5_register_device(dev); + if (err) { + dev_err(&pdev->dev, "mlx5_register_device failed %d\n", err); + goto err_reg_dev; + } + + clear_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state); + set_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state); + +out: + mutex_unlock(&dev->intf_state_mutex); return 0; +err_reg_dev: + mlx5_cleanup_fs(dev); err_init_tables: mlx5_cleanup_mr_table(dev); mlx5_cleanup_srq_table(dev); @@ -884,7 +1072,7 @@ err_stop_poll: mlx5_stop_health_poll(dev); if (mlx5_cmd_teardown_hca(dev)) { device_printf((&dev->pdev->dev)->bsddev, "ERR: ""tear_down_hca failed, skip cleanup\n"); - return err; + goto out_err; } reclaim_boot_pages: @@ -898,28 +1086,29 @@ err_disable_hca: err_pagealloc_cleanup: mlx5_pagealloc_cleanup(dev); + err_cmd_cleanup: mlx5_cmd_cleanup(dev); -err_unmap: - iounmap(dev->iseg); - -err_clr_master: - pci_clear_master(dev->pdev); - release_bar(dev->pdev); - -err_disable: - pci_disable_device(dev->pdev); - -err_dbg: +out_err: dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Mar 26 20:35:13 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B810F697F3; Mon, 26 Mar 2018 20:35:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 62E0D72ACA; Mon, 26 Mar 2018 20:35:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 596F111EDC; Mon, 26 Mar 2018 20:35:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKZDOA021638; Mon, 26 Mar 2018 20:35:13 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKZD3r021637; Mon, 26 Mar 2018 20:35:13 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262035.w2QKZD3r021637@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:35:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331581 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 331581 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:35:13 -0000 Author: hselasky Date: Mon Mar 26 20:35:12 2018 New Revision: 331581 URL: https://svnweb.freebsd.org/changeset/base/331581 Log: MFC r330645: Avoid calling sleeping function from the health poll thread in mlx5core. linux commit c1d4d2e92ad670168a17a57dfa182a5a5baa72d4 Submitted by: Matthew Finlay Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Mar 26 20:33:31 2018 (r331580) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Mar 26 20:35:12 2018 (r331581) @@ -87,15 +87,23 @@ static int in_fatal(struct mlx5_core_dev *dev) void mlx5_enter_error_state(struct mlx5_core_dev *dev) { - if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) + mutex_lock(&dev->intf_state_mutex); + if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) { + goto unlock; return; + } mlx5_core_err(dev, "start\n"); - if (pci_channel_offline(dev->pdev) || in_fatal(dev)) + if (pci_channel_offline(dev->pdev) || in_fatal(dev)) { dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR; + mlx5_trigger_cmd_completions(dev); + } mlx5_core_event(dev, MLX5_DEV_EVENT_SYS_ERROR, 0); mlx5_core_err(dev, "end\n"); + +unlock: + mutex_unlock(&dev->intf_state_mutex); } static void mlx5_handle_bad_state(struct mlx5_core_dev *dev) @@ -213,7 +221,6 @@ static void poll_health(unsigned long data) return; if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) { - mlx5_trigger_cmd_completions(dev); mod_timer(&health->timer, get_next_poll_jiffies()); return; } From owner-svn-src-all@freebsd.org Mon Mar 26 20:36:33 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15A13F69A63; Mon, 26 Mar 2018 20:36:33 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BF82D72C39; Mon, 26 Mar 2018 20:36:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B9CC111EDD; Mon, 26 Mar 2018 20:36:32 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKaWvN021740; Mon, 26 Mar 2018 20:36:32 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKaWOO021737; Mon, 26 Mar 2018 20:36:32 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262036.w2QKaWOO021737@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:36:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331582 - in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core X-SVN-Commit-Revision: 331582 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:36:33 -0000 Author: hselasky Date: Mon Mar 26 20:36:32 2018 New Revision: 331582 URL: https://svnweb.freebsd.org/changeset/base/331582 Log: MFC r330646: Fix race between PCI error handlers and health work in mlx5core. linux commit 05ac2c0b7438ea08c5d54b48797acf9b22cb2f6f Submitted by: Matthew Finlay Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:35:12 2018 (r331581) +++ stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:36:32 2018 (r331582) @@ -482,7 +482,10 @@ struct mlx5_core_health { u32 prev; int miss_counter; bool sick; + /* wq spinlock to synchronize draining */ + spinlock_t wq_lock; struct workqueue_struct *wq; + unsigned long flags; struct work_struct work; }; @@ -871,6 +874,7 @@ void mlx5_health_cleanup(struct mlx5_core_dev *dev); int mlx5_health_init(struct mlx5_core_dev *dev); void mlx5_start_health_poll(struct mlx5_core_dev *dev); void mlx5_stop_health_poll(struct mlx5_core_dev *dev); +void mlx5_drain_health_wq(struct mlx5_core_dev *dev); #define mlx5_buf_alloc_node(dev, size, direct, buf, node) \ mlx5_buf_alloc(dev, size, direct, buf) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Mar 26 20:35:12 2018 (r331581) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Mar 26 20:36:32 2018 (r331582) @@ -43,6 +43,10 @@ enum { MLX5_NIC_IFC_NO_DRAM_NIC = 2 }; +enum { + MLX5_DROP_NEW_HEALTH_WORK, +}; + static u8 get_nic_interface(struct mlx5_core_dev *dev) { return (ioread32be(&dev->iseg->cmdq_addr_l_sz) >> 8) & 3; @@ -242,7 +246,13 @@ static void poll_health(unsigned long data) if (in_fatal(dev) && !health->sick) { health->sick = true; print_health_info(dev); - queue_work(health->wq, &health->work); + spin_lock(&health->wq_lock); + if (!test_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags)) + queue_work(health->wq, &health->work); + else + dev_err(&dev->pdev->dev, + "new health works are not permitted at this stage\n"); + spin_unlock(&health->wq_lock); } } @@ -252,6 +262,7 @@ void mlx5_start_health_poll(struct mlx5_core_dev *dev) init_timer(&health->timer); health->sick = 0; + clear_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags); health->health = &dev->iseg->health; health->health_counter = &dev->iseg->health_counter; @@ -267,6 +278,16 @@ void mlx5_stop_health_poll(struct mlx5_core_dev *dev) del_timer_sync(&health->timer); } +void mlx5_drain_health_wq(struct mlx5_core_dev *dev) +{ + struct mlx5_core_health *health = &dev->priv.health; + + spin_lock(&health->wq_lock); + set_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags); + spin_unlock(&health->wq_lock); + cancel_work_sync(&health->work); +} + void mlx5_health_cleanup(struct mlx5_core_dev *dev) { struct mlx5_core_health *health = &dev->priv.health; @@ -293,6 +314,7 @@ int mlx5_health_init(struct mlx5_core_dev *dev) if (!health->wq) return -ENOMEM; + spin_lock_init(&health->wq_lock); INIT_WORK(&health->work, health_care); return 0; Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Mar 26 20:35:12 2018 (r331581) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Mar 26 20:36:32 2018 (r331582) @@ -1243,7 +1243,12 @@ static pci_ers_result_t mlx5_pci_err_detected(struct p dev_info(&pdev->dev, "%s was called\n", __func__); mlx5_enter_error_state(dev); mlx5_unload_one(dev, priv); - mlx5_pci_disable_device(dev); + if (state) { + pci_save_state(pdev->dev.bsddev); + mlx5_drain_health_wq(dev); + mlx5_pci_disable_device(dev); + } + return state == pci_channel_io_perm_failure ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_NEED_RESET; } From owner-svn-src-all@freebsd.org Mon Mar 26 20:50:30 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E4AB8F6AA40; Mon, 26 Mar 2018 20:50:29 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 90275734E7; Mon, 26 Mar 2018 20:50:29 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 86CBC1208E; Mon, 26 Mar 2018 20:50:29 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKoTPE026893; Mon, 26 Mar 2018 20:50:29 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKoTt1026889; Mon, 26 Mar 2018 20:50:29 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262050.w2QKoTt1026889@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:50:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331583 - in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en X-SVN-Commit-Revision: 331583 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:50:30 -0000 Author: hselasky Date: Mon Mar 26 20:50:28 2018 New Revision: 331583 URL: https://svnweb.freebsd.org/changeset/base/331583 Log: MFC r330649: Add support for per priority flow control, PFC, to mlx5en(4). Add support for PFC and implement reading the per priority statistics using the sysctl(8) interface. PFC is used together with VLAN priority and can be enabled and disabled on a per priority basis. Global pause frames and PFC are incompatible features and surrounding logic has been added to warn the user about misconfiguration. Update relevant mlx5core APIs for PFC configuration. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c stable/11/sys/dev/mlx5/mlx5_en/en.h stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/11/sys/dev/mlx5/port.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Mar 26 20:36:32 2018 (r331582) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c Mon Mar 26 20:50:28 2018 (r331583) @@ -352,18 +352,26 @@ int mlx5_query_port_max_mtu(struct mlx5_core_dev *dev, } EXPORT_SYMBOL_GPL(mlx5_query_port_max_mtu); -int mlx5_set_port_pause(struct mlx5_core_dev *dev, u32 port, - u32 rx_pause, u32 tx_pause) +int mlx5_set_port_pause_and_pfc(struct mlx5_core_dev *dev, u32 port, + u8 rx_pause, u8 tx_pause, + u8 pfc_en_rx, u8 pfc_en_tx) { - u32 in[MLX5_ST_SZ_DW(pfcc_reg)]; - u32 out[MLX5_ST_SZ_DW(pfcc_reg)]; + u32 in[MLX5_ST_SZ_DW(pfcc_reg)] = {0}; + u32 out[MLX5_ST_SZ_DW(pfcc_reg)] = {0}; - memset(in, 0, sizeof(in)); - memset(out, 0, sizeof(out)); + if (pfc_en_rx || pfc_en_tx) { + /* PFC and global pauseframes are incompatible features */ + if (tx_pause || rx_pause) + return -EINVAL; + } MLX5_SET(pfcc_reg, in, local_port, port); MLX5_SET(pfcc_reg, in, pptx, tx_pause); MLX5_SET(pfcc_reg, in, pprx, rx_pause); + MLX5_SET(pfcc_reg, in, pfctx, pfc_en_tx); + MLX5_SET(pfcc_reg, in, pfcrx, pfc_en_rx); + MLX5_SET(pfcc_reg, in, prio_mask_tx, pfc_en_tx); + MLX5_SET(pfcc_reg, in, prio_mask_rx, pfc_en_rx); return mlx5_core_access_reg(dev, in, sizeof(in), out, sizeof(out), MLX5_REG_PFCC, 0, 1); @@ -392,25 +400,9 @@ int mlx5_query_port_pause(struct mlx5_core_dev *dev, u return 0; } -int mlx5_set_port_pfc(struct mlx5_core_dev *dev, u8 pfc_en_tx, u8 pfc_en_rx) -{ - u32 in[MLX5_ST_SZ_DW(pfcc_reg)] = {0}; - u32 out[MLX5_ST_SZ_DW(pfcc_reg)]; - - MLX5_SET(pfcc_reg, in, local_port, 1); - MLX5_SET(pfcc_reg, in, pfctx, pfc_en_tx); - MLX5_SET(pfcc_reg, in, pfcrx, pfc_en_rx); - MLX5_SET_TO_ONES(pfcc_reg, in, prio_mask_tx); - MLX5_SET_TO_ONES(pfcc_reg, in, prio_mask_rx); - - return mlx5_core_access_reg(dev, in, sizeof(in), out, - sizeof(out), MLX5_REG_PFCC, 0, 1); -} -EXPORT_SYMBOL_GPL(mlx5_set_port_pfc); - int mlx5_query_port_pfc(struct mlx5_core_dev *dev, u8 *pfc_en_tx, u8 *pfc_en_rx) { - u32 in[MLX5_ST_SZ_DW(pfcc_reg)] = {0}; + u32 in[MLX5_ST_SZ_DW(pfcc_reg)] = {}; u32 out[MLX5_ST_SZ_DW(pfcc_reg)]; int err; @@ -420,12 +412,10 @@ int mlx5_query_port_pfc(struct mlx5_core_dev *dev, u8 if (err) return err; - if (pfc_en_tx) + if (pfc_en_tx != NULL) *pfc_en_tx = MLX5_GET(pfcc_reg, out, pfctx); - - if (pfc_en_rx) + if (pfc_en_rx != NULL) *pfc_en_rx = MLX5_GET(pfcc_reg, out, pfcrx); - return 0; } EXPORT_SYMBOL_GPL(mlx5_query_port_pfc); Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 20:36:32 2018 (r331582) +++ stable/11/sys/dev/mlx5/mlx5_en/en.h Mon Mar 26 20:50:28 2018 (r331583) @@ -276,13 +276,55 @@ struct mlx5e_vport_stats { m(+1, u64 rs_corrected_symbols_lane2, "rs_corrected_symbols_lane2", \ "FEC corrected symbol counter lane 2") \ m(+1, u64 rs_corrected_symbols_lane3, "rs_corrected_symbols_lane3", \ - "FEC corrected symbol counter lane 3") \ + "FEC corrected symbol counter lane 3") +/* Per priority statistics for PFC */ +#define MLX5E_PPORT_PER_PRIO_STATS_SUB(m,n,p) \ + m(n, p, +1, u64, rx_octets, "rx_octets", "Received octets") \ + m(n, p, +1, u64, reserved_0, "reserved_0", "Reserved") \ + m(n, p, +1, u64, reserved_1, "reserved_1", "Reserved") \ + m(n, p, +1, u64, reserved_2, "reserved_2", "Reserved") \ + m(n, p, +1, u64, rx_frames, "rx_frames", "Received frames") \ + m(n, p, +1, u64, tx_octets, "tx_octets", "Transmitted octets") \ + m(n, p, +1, u64, reserved_3, "reserved_3", "Reserved") \ + m(n, p, +1, u64, reserved_4, "reserved_4", "Reserved") \ + m(n, p, +1, u64, reserved_5, "reserved_5", "Reserved") \ + m(n, p, +1, u64, tx_frames, "tx_frames", "Transmitted frames") \ + m(n, p, +1, u64, rx_pause, "rx_pause", "Received pause frames") \ + m(n, p, +1, u64, rx_pause_duration, "rx_pause_duration", \ + "Received pause duration") \ + m(n, p, +1, u64, tx_pause, "tx_pause", "Transmitted pause frames") \ + m(n, p, +1, u64, tx_pause_duration, "tx_pause_duration", \ + "Transmitted pause duration") \ + m(n, p, +1, u64, rx_pause_transition, "rx_pause_transition", \ + "Received pause transitions") \ + m(n, p, +1, u64, rx_discards, "rx_discards", "Discarded received frames") \ + m(n, p, +1, u64, device_stall_minor_watermark, \ + "device_stall_minor_watermark", "Device stall minor watermark") \ + m(n, p, +1, u64, device_stall_critical_watermark, \ + "device_stall_critical_watermark", "Device stall critical watermark") + +#define MLX5E_PPORT_PER_PRIO_STATS_PREFIX(m,p,c,t,f,s,d) \ + m(c, t pri_##p##_##f, "prio" #p "_" s, "Priority " #p " - " d) + +#define MLX5E_PPORT_PER_PRIO_STATS_NUM_PRIO 8 + +#define MLX5E_PPORT_PER_PRIO_STATS(m) \ + MLX5E_PPORT_PER_PRIO_STATS_SUB(MLX5E_PPORT_PER_PRIO_STATS_PREFIX,m,0) \ + MLX5E_PPORT_PER_PRIO_STATS_SUB(MLX5E_PPORT_PER_PRIO_STATS_PREFIX,m,1) \ + MLX5E_PPORT_PER_PRIO_STATS_SUB(MLX5E_PPORT_PER_PRIO_STATS_PREFIX,m,2) \ + MLX5E_PPORT_PER_PRIO_STATS_SUB(MLX5E_PPORT_PER_PRIO_STATS_PREFIX,m,3) \ + MLX5E_PPORT_PER_PRIO_STATS_SUB(MLX5E_PPORT_PER_PRIO_STATS_PREFIX,m,4) \ + MLX5E_PPORT_PER_PRIO_STATS_SUB(MLX5E_PPORT_PER_PRIO_STATS_PREFIX,m,5) \ + MLX5E_PPORT_PER_PRIO_STATS_SUB(MLX5E_PPORT_PER_PRIO_STATS_PREFIX,m,6) \ + MLX5E_PPORT_PER_PRIO_STATS_SUB(MLX5E_PPORT_PER_PRIO_STATS_PREFIX,m,7) + /* * Make sure to update mlx5e_update_pport_counters() * when adding a new MLX5E_PPORT_STATS block */ #define MLX5E_PPORT_STATS(m) \ + MLX5E_PPORT_PER_PRIO_STATS(m) \ MLX5E_PPORT_IEEE802_3_STATS(m) \ MLX5E_PPORT_RFC2819_STATS(m) @@ -298,6 +340,8 @@ struct mlx5e_vport_stats { #define MLX5E_PPORT_STATS_NUM \ (0 MLX5E_PPORT_STATS(MLX5E_STATS_COUNT)) +#define MLX5E_PPORT_PER_PRIO_STATS_NUM \ + (0 MLX5E_PPORT_PER_PRIO_STATS(MLX5E_STATS_COUNT)) #define MLX5E_PPORT_RFC2819_STATS_DEBUG_NUM \ (0 MLX5E_PPORT_RFC2819_STATS_DEBUG(MLX5E_STATS_COUNT)) #define MLX5E_PPORT_RFC2863_STATS_DEBUG_NUM \ @@ -391,8 +435,10 @@ struct mlx5e_params { bool cqe_zipping_en; u32 lro_wqe_sz; u16 rx_hash_log_tbl_sz; - u32 tx_pauseframe_control; - u32 rx_pauseframe_control; + u32 tx_pauseframe_control __aligned(4); + u32 rx_pauseframe_control __aligned(4); + u32 tx_priority_flow_control __aligned(4); + u32 rx_priority_flow_control __aligned(4); }; #define MLX5E_PARAMS(m) \ Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 20:36:32 2018 (r331582) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 20:50:28 2018 (r331583) @@ -228,6 +228,32 @@ mlx5e_find_link_mode(u32 subtype) } static int +mlx5e_set_port_pause_and_pfc(struct mlx5e_priv *priv) +{ + return (mlx5_set_port_pause_and_pfc(priv->mdev, 1, + priv->params.rx_pauseframe_control, + priv->params.tx_pauseframe_control, + priv->params.rx_priority_flow_control, + priv->params.tx_priority_flow_control)); +} + +static int +mlx5e_set_port_pfc(struct mlx5e_priv *priv) +{ + int error; + + if (priv->params.rx_pauseframe_control || + priv->params.tx_pauseframe_control) { + if_printf(priv->ifp, + "Global pauseframes must be disabled before enabling PFC.\n"); + error = -EINVAL; + } else { + error = mlx5e_set_port_pause_and_pfc(priv); + } + return (error); +} + +static int mlx5e_media_change(struct ifnet *dev) { struct mlx5e_priv *priv = dev->if_softc; @@ -270,6 +296,15 @@ mlx5e_media_change(struct ifnet *dev) goto done; } } + if (priv->media.ifm_media & (IFM_ETH_RXPAUSE | IFM_ETH_TXPAUSE)) { + /* check if PFC is enabled */ + if (priv->params.rx_priority_flow_control || + priv->params.tx_priority_flow_control) { + if_printf(dev, "PFC must be disabled before enabling global pauseframes.\n"); + error = EINVAL; + goto done; + } + } /* update pauseframe control bits */ priv->params.rx_pauseframe_control = (priv->media.ifm_media & IFM_ETH_RXPAUSE) ? 1 : 0; @@ -282,9 +317,7 @@ mlx5e_media_change(struct ifnet *dev) /* reconfigure the hardware */ mlx5_set_port_status(mdev, MLX5_PORT_DOWN); mlx5_set_port_proto(mdev, link_mode, MLX5_PTYS_EN); - mlx5_set_port_pause(mdev, 1, - priv->params.rx_pauseframe_control, - priv->params.tx_pauseframe_control); + error = -mlx5e_set_port_pause_and_pfc(priv); if (was_opened) mlx5_set_port_status(mdev, MLX5_PORT_UP); @@ -324,6 +357,7 @@ mlx5e_update_pport_counters(struct mlx5e_priv *priv) unsigned sz = MLX5_ST_SZ_BYTES(ppcnt_reg); unsigned x; unsigned y; + unsigned z; /* allocate firmware request structures */ in = mlx5_vzalloc(sz); @@ -342,7 +376,8 @@ mlx5e_update_pport_counters(struct mlx5e_priv *priv) /* read IEEE802_3 counter group using predefined counter layout */ MLX5_SET(ppcnt_reg, in, grp, MLX5_IEEE_802_3_COUNTERS_GROUP); mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPCNT, 0, 0); - for (x = y = 0; x != MLX5E_PPORT_IEEE802_3_STATS_NUM; x++, y++) + for (x = 0, y = MLX5E_PPORT_PER_PRIO_STATS_NUM; + x != MLX5E_PPORT_IEEE802_3_STATS_NUM; x++, y++) s->arg[y] = be64toh(ptr[x]); /* read RFC2819 counter group using predefined counter layout */ @@ -365,6 +400,20 @@ mlx5e_update_pport_counters(struct mlx5e_priv *priv) mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPCNT, 0, 0); for (x = 0; x != MLX5E_PPORT_PHYSICAL_LAYER_STATS_DEBUG_NUM; x++, y++) s_debug->arg[y] = be64toh(ptr[x]); + + /* read per-priority counters */ + MLX5_SET(ppcnt_reg, in, grp, MLX5_PER_PRIORITY_COUNTERS_GROUP); + + /* iterate all the priorities */ + for (y = z = 0; z != MLX5E_PPORT_PER_PRIO_STATS_NUM_PRIO; z++) { + MLX5_SET(ppcnt_reg, in, prio_tc, z); + mlx5_core_access_reg(mdev, in, sz, out, sz, MLX5_REG_PPCNT, 0, 0); + + /* read per priority stats counter group using predefined counter layout */ + for (x = 0; x != (MLX5E_PPORT_PER_PRIO_STATS_NUM / + MLX5E_PPORT_PER_PRIO_STATS_NUM_PRIO); x++, y++) + s->arg[y] = be64toh(ptr[x]); + } free_out: /* free firmware request structures */ kvfree(in); @@ -3103,17 +3152,93 @@ mlx5e_add_hw_stats(struct mlx5e_priv *priv) "Board ID"); } +static int +mlx5e_sysctl_tx_priority_flow_control(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + uint32_t tx_pfc; + uint32_t value; + int error; + + PRIV_LOCK(priv); + + tx_pfc = priv->params.tx_priority_flow_control; + + /* get current value */ + value = (tx_pfc >> arg2) & 1; + + error = sysctl_handle_32(oidp, &value, 0, req); + + /* range check value */ + if (value != 0) + priv->params.tx_priority_flow_control |= (1 << arg2); + else + priv->params.tx_priority_flow_control &= ~(1 << arg2); + + /* check if update is required */ + if (error == 0 && priv->gone == 0 && + tx_pfc != priv->params.tx_priority_flow_control) { + error = -mlx5e_set_port_pfc(priv); + /* restore previous value */ + if (error != 0) + priv->params.tx_priority_flow_control= tx_pfc; + } + PRIV_UNLOCK(priv); + + return (error); +} + +static int +mlx5e_sysctl_rx_priority_flow_control(SYSCTL_HANDLER_ARGS) +{ + struct mlx5e_priv *priv = arg1; + uint32_t rx_pfc; + uint32_t value; + int error; + + PRIV_LOCK(priv); + + rx_pfc = priv->params.rx_priority_flow_control; + + /* get current value */ + value = (rx_pfc >> arg2) & 1; + + error = sysctl_handle_32(oidp, &value, 0, req); + + /* range check value */ + if (value != 0) + priv->params.rx_priority_flow_control |= (1 << arg2); + else + priv->params.rx_priority_flow_control &= ~(1 << arg2); + + /* check if update is required */ + if (error == 0 && priv->gone == 0 && + rx_pfc != priv->params.rx_priority_flow_control) { + error = -mlx5e_set_port_pfc(priv); + /* restore previous value */ + if (error != 0) + priv->params.rx_priority_flow_control= rx_pfc; + } + PRIV_UNLOCK(priv); + + return (error); +} + static void mlx5e_setup_pauseframes(struct mlx5e_priv *priv) { -#if (__FreeBSD_version < 1100000) - char path[64]; + unsigned int x; + char path[96]; + int error; -#endif /* Only receiving pauseframes is enabled by default */ priv->params.tx_pauseframe_control = 0; priv->params.rx_pauseframe_control = 1; + /* disable ports flow control, PFC, by default */ + priv->params.tx_priority_flow_control = 0; + priv->params.rx_priority_flow_control = 0; + #if (__FreeBSD_version < 1100000) /* compute path for sysctl */ snprintf(path, sizeof(path), "dev.mce.%d.tx_pauseframe_control", @@ -3128,9 +3253,28 @@ mlx5e_setup_pauseframes(struct mlx5e_priv *priv) /* try to fetch tunable, if any */ TUNABLE_INT_FETCH(path, &priv->params.rx_pauseframe_control); + + for (x = 0; x != 8; x++) { + + /* compute path for sysctl */ + snprintf(path, sizeof(path), "dev.mce.%d.tx_priority_flow_control_%u", + device_get_unit(priv->mdev->pdev->dev.bsddev), x); + + /* try to fetch tunable, if any */ + if (TUNABLE_INT_FETCH(path, &value) == 0 && value != 0) + priv->params.tx_priority_flow_control |= 1 << x; + + /* compute path for sysctl */ + snprintf(path, sizeof(path), "dev.mce.%d.rx_priority_flow_control_%u", + device_get_unit(priv->mdev->pdev->dev.bsddev), x); + + /* try to fetch tunable, if any */ + if (TUNABLE_INT_FETCH(path, &value) == 0 && value != 0) + priv->params.rx_priority_flow_control |= 1 << x; + } #endif - /* register pausframe SYSCTLs */ + /* register pauseframe SYSCTLs */ SYSCTL_ADD_INT(&priv->sysctl_ctx, SYSCTL_CHILDREN(priv->sysctl_ifnet), OID_AUTO, "tx_pauseframe_control", CTLFLAG_RDTUN, &priv->params.tx_pauseframe_control, 0, @@ -3141,6 +3285,25 @@ mlx5e_setup_pauseframes(struct mlx5e_priv *priv) &priv->params.rx_pauseframe_control, 0, "Set to enable RX pause frames. Clear to disable."); + /* register priority_flow control, PFC, SYSCTLs */ + for (x = 0; x != 8; x++) { + snprintf(path, sizeof(path), "tx_priority_flow_control_%u", x); + + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(priv->sysctl_ifnet), + OID_AUTO, path, CTLTYPE_UINT | CTLFLAG_RWTUN | + CTLFLAG_MPSAFE, priv, x, &mlx5e_sysctl_tx_priority_flow_control, "IU", + "Set to enable TX ports flow control frames for given priority. Clear to disable."); + + snprintf(path, sizeof(path), "rx_priority_flow_control_%u", x); + + SYSCTL_ADD_PROC(&priv->sysctl_ctx, SYSCTL_CHILDREN(priv->sysctl_ifnet), + OID_AUTO, path, CTLTYPE_UINT | CTLFLAG_RWTUN | + CTLFLAG_MPSAFE, priv, x, &mlx5e_sysctl_rx_priority_flow_control, "IU", + "Set to enable RX ports flow control frames for given priority. Clear to disable."); + } + + PRIV_LOCK(priv); + /* range check */ priv->params.tx_pauseframe_control = priv->params.tx_pauseframe_control ? 1 : 0; @@ -3148,9 +3311,17 @@ mlx5e_setup_pauseframes(struct mlx5e_priv *priv) priv->params.rx_pauseframe_control ? 1 : 0; /* update firmware */ - mlx5_set_port_pause(priv->mdev, 1, - priv->params.rx_pauseframe_control, - priv->params.tx_pauseframe_control); + error = mlx5e_set_port_pause_and_pfc(priv); + if (error == -EINVAL) { + if_printf(priv->ifp, + "Global pauseframes must be disabled before enabling PFC.\n"); + priv->params.rx_priority_flow_control = 0; + priv->params.tx_priority_flow_control = 0; + + /* update firmware */ + (void) mlx5e_set_port_pause_and_pfc(priv); + } + PRIV_UNLOCK(priv); } static void * Modified: stable/11/sys/dev/mlx5/port.h ============================================================================== --- stable/11/sys/dev/mlx5/port.h Mon Mar 26 20:36:32 2018 (r331582) +++ stable/11/sys/dev/mlx5/port.h Mon Mar 26 20:50:28 2018 (r331583) @@ -127,11 +127,11 @@ int mlx5_set_port_status(struct mlx5_core_dev *dev, int mlx5_query_port_status(struct mlx5_core_dev *dev, u8 *status); int mlx5_query_port_admin_status(struct mlx5_core_dev *dev, enum mlx5_port_status *status); -int mlx5_set_port_pause(struct mlx5_core_dev *dev, u32 port, - u32 rx_pause, u32 tx_pause); +int mlx5_set_port_pause_and_pfc(struct mlx5_core_dev *dev, u32 port, + u8 rx_pause, u8 tx_pause, + u8 pfc_en_rx, u8 pfc_en_tx); int mlx5_query_port_pause(struct mlx5_core_dev *dev, u32 port, u32 *rx_pause, u32 *tx_pause); -int mlx5_set_port_pfc(struct mlx5_core_dev *dev, u8 pfc_en_tx, u8 pfc_en_rx); int mlx5_query_port_pfc(struct mlx5_core_dev *dev, u8 *pfc_en_tx, u8 *pfc_en_rx); int mlx5_set_port_mtu(struct mlx5_core_dev *dev, int mtu); From owner-svn-src-all@freebsd.org Mon Mar 26 20:52:03 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3C4B6F6AD53; Mon, 26 Mar 2018 20:52:03 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E2CDD73813; Mon, 26 Mar 2018 20:52:02 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DD997121FB; Mon, 26 Mar 2018 20:52:02 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKq2Mk029871; Mon, 26 Mar 2018 20:52:02 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKq2Dp029870; Mon, 26 Mar 2018 20:52:02 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262052.w2QKq2Dp029870@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:52:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331584 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 331584 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:52:03 -0000 Author: hselasky Date: Mon Mar 26 20:52:02 2018 New Revision: 331584 URL: https://svnweb.freebsd.org/changeset/base/331584 Log: MFC r330650: Use device_printf() instead of printf() when printing warnings and errors to dmesg(8) in mlx5core. Submitted by: Matthew Finlay Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Mar 26 20:50:28 2018 (r331583) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Mar 26 20:52:02 2018 (r331584) @@ -49,14 +49,14 @@ do { \ mlx5_core_dbg(dev, format, ##__VA_ARGS__); \ } while (0) -#define mlx5_core_err(dev, format, ...) \ - printf("mlx5_core: ERR: ""%s:%s:%d:(pid %d): " format, \ - (dev)->priv.name, __func__, __LINE__, curthread->td_proc->p_pid, \ - ##__VA_ARGS__) +#define mlx5_core_err(_dev, format, ...) \ + device_printf((&(_dev)->pdev->dev)->bsddev, "ERR: ""%s:%d:(pid %d): " format, \ + __func__, __LINE__, curthread->td_proc->p_pid, \ + ##__VA_ARGS__) -#define mlx5_core_warn(dev, format, ...) \ - printf("mlx5_core: WARN: ""%s:%s:%d:(pid %d): " format, \ - (dev)->priv.name, __func__, __LINE__, curthread->td_proc->p_pid, \ +#define mlx5_core_warn(_dev, format, ...) \ + device_printf((&(_dev)->pdev->dev)->bsddev, "WARN: ""%s:%d:(pid %d): " format, \ + __func__, __LINE__, curthread->td_proc->p_pid, \ ##__VA_ARGS__) enum { From owner-svn-src-all@freebsd.org Mon Mar 26 20:54:22 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 80089F6B018; Mon, 26 Mar 2018 20:54:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1B28573A9E; Mon, 26 Mar 2018 20:54:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 106C91221C; Mon, 26 Mar 2018 20:54:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKsL3o031697; Mon, 26 Mar 2018 20:54:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKsLDd031690; Mon, 26 Mar 2018 20:54:21 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262054.w2QKsLDd031690@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:54:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331585 - in stable/11/sys: conf dev/mlx5 dev/mlx5/mlx5_core modules/mlx5 X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys: conf dev/mlx5 dev/mlx5/mlx5_core modules/mlx5 X-SVN-Commit-Revision: 331585 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:54:22 -0000 Author: hselasky Date: Mon Mar 26 20:54:21 2018 New Revision: 331585 URL: https://svnweb.freebsd.org/changeset/base/331585 Log: MFC r330651: Add vendor specific capability interface support in mlx5core. Add the ability to access the vendor specific space gateway in order to support reading and writing data into the different configuration domains. Submitted by: Matthew Finlay Sponsored by: Mellanox Technologies Added: stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c - copied unchanged from r330651, head/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Modified: stable/11/sys/conf/files stable/11/sys/dev/mlx5/device.h stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c stable/11/sys/dev/mlx5/mlx5_ifc.h stable/11/sys/modules/mlx5/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/files ============================================================================== --- stable/11/sys/conf/files Mon Mar 26 20:52:02 2018 (r331584) +++ stable/11/sys/conf/files Mon Mar 26 20:54:21 2018 (r331585) @@ -4503,6 +4503,8 @@ dev/mlx5/mlx5_core/mlx5_uar.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_vport.c optional mlx5 pci \ compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_vsc.c optional mlx5 pci \ + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_wq.c optional mlx5 pci \ compile-with "${OFED_C}" Modified: stable/11/sys/dev/mlx5/device.h ============================================================================== --- stable/11/sys/dev/mlx5/device.h Mon Mar 26 20:52:02 2018 (r331584) +++ stable/11/sys/dev/mlx5/device.h Mon Mar 26 20:54:21 2018 (r331585) @@ -129,6 +129,26 @@ __mlx5_mask(typ, fld)) MLX5_BY_PASS_NUM_DONT_TRAP_PRIOS +\ MLX5_BY_PASS_NUM_MULTICAST_PRIOS) +/* insert a value to a struct */ +#define MLX5_VSC_SET(typ, p, fld, v) do { \ + BUILD_BUG_ON(__mlx5_st_sz_bits(typ) % 32); \ + BUILD_BUG_ON(__mlx5_bit_sz(typ, fld) > 32); \ + *((__le32 *)(p) + __mlx5_dw_off(typ, fld)) = \ + cpu_to_le32((le32_to_cpu(*((__le32 *)(p) + __mlx5_dw_off(typ, fld))) & \ + (~__mlx5_dw_mask(typ, fld))) | (((v) & __mlx5_mask(typ, fld)) \ + << __mlx5_dw_bit_off(typ, fld))); \ +} while (0) + +#define MLX5_VSC_GET(typ, p, fld) ((le32_to_cpu(*((__le32 *)(p) +\ +__mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \ +__mlx5_mask(typ, fld)) + +#define MLX5_VSC_GET_PR(typ, p, fld) ({ \ + u32 ___t = MLX5_VSC_GET(typ, p, fld); \ + pr_debug(#fld " = 0x%x\n", ___t); \ + ___t; \ +}) + enum { MLX5_MAX_COMMANDS = 32, MLX5_CMD_DATA_BLOCK_SIZE = 512, Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:52:02 2018 (r331584) +++ stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:54:21 2018 (r331585) @@ -220,6 +220,16 @@ enum mlx5_link_mode { MLX5_LINK_MODES_NUMBER, }; +enum { + MLX5_VSC_SPACE_SUPPORTED = 0x1, + MLX5_VSC_SPACE_OFFSET = 0x4, + MLX5_VSC_COUNTER_OFFSET = 0x8, + MLX5_VSC_SEMA_OFFSET = 0xC, + MLX5_VSC_ADDR_OFFSET = 0x10, + MLX5_VSC_DATA_OFFSET = 0x14, + MLX5_VSC_MAX_RETRIES = 0x1000, +}; + #define MLX5_PROT_MASK(link_mode) (1 << link_mode) struct mlx5_uuar_info { @@ -626,6 +636,7 @@ struct mlx5_core_dev { struct mlx5_priv priv; struct mlx5_profile *profile; atomic_t num_qps; + u32 vsc_addr; u32 issi; struct mlx5_special_contexts special_contexts; unsigned int module_status[MLX5_MAX_PORTS]; @@ -998,6 +1009,12 @@ int mlx5_set_diagnostic_params(struct mlx5_core_dev *m int mlx5_query_diagnostic_counters(struct mlx5_core_dev *mdev, u8 num_of_samples, u16 sample_index, void *out, int out_size); +int mlx5_vsc_find_cap(struct mlx5_core_dev *mdev); +int mlx5_vsc_lock(struct mlx5_core_dev *mdev); +void mlx5_vsc_unlock(struct mlx5_core_dev *mdev); +int mlx5_vsc_set_space(struct mlx5_core_dev *mdev, u16 space); +int mlx5_vsc_write(struct mlx5_core_dev *mdev, u32 addr, u32 *data); +int mlx5_vsc_read(struct mlx5_core_dev *mdev, u32 addr, u32 *data); static inline u32 mlx5_mkey_to_idx(u32 mkey) { return mkey >> 8; Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Mar 26 20:52:02 2018 (r331584) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Mar 26 20:54:21 2018 (r331585) @@ -867,6 +867,9 @@ static int mlx5_pci_init(struct mlx5_core_dev *dev, st goto err_clr_master; } + if (mlx5_vsc_find_cap(dev)) + dev_err(&pdev->dev, "Unable to find vendor specific capabilities\n"); + return 0; err_clr_master: @@ -1204,7 +1207,6 @@ static int init_one(struct pci_dev *pdev, device_printf((&pdev->dev)->bsddev, "ERR: ""mlx5_register_device failed %d\n", err); goto clean_health; } - return 0; Copied: stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c (from r330651, head/sys/dev/mlx5/mlx5_core/mlx5_vsc.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_vsc.c Mon Mar 26 20:54:21 2018 (r331585, copy of r330651, head/sys/dev/mlx5/mlx5_core/mlx5_vsc.c) @@ -0,0 +1,204 @@ +/*- + * Copyright (c) 2013-2017, Mellanox Technologies, Ltd. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, 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 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 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$ + */ + +#include +#include +#include + +struct mlx5_ifc_vsc_space_bits { + u8 status[0x3]; + u8 reserved0[0xd]; + u8 space[0x10]; +}; + +struct mlx5_ifc_vsc_addr_bits { + u8 flag[0x1]; + u8 reserved0[0x1]; + u8 address[0x1e]; +}; + +int mlx5_vsc_lock(struct mlx5_core_dev *mdev) +{ + device_t dev = mdev->pdev->dev.bsddev; + int vsc_addr = mdev->vsc_addr; + int retries = 0; + u32 lock_val; + u32 counter; + + if (!vsc_addr) { + mlx5_core_warn(mdev, "Unable to acquire vsc lock, vsc_addr not initialized\n"); + return EINVAL; + } + + while (true) { + if (retries > MLX5_VSC_MAX_RETRIES) + return EBUSY; + + if (pci_read_config(dev, vsc_addr + MLX5_VSC_SEMA_OFFSET, 4)) { + retries++; + /* + * The PRM suggests random 0 - 10ms to prevent multiple + * waiters on the same interval in order to avoid starvation + */ + DELAY((random() % 11) * 1000); + continue; + } + + counter = pci_read_config(dev, vsc_addr + MLX5_VSC_COUNTER_OFFSET, 4); + pci_write_config(dev, vsc_addr + MLX5_VSC_SEMA_OFFSET, counter, 4); + lock_val = pci_read_config(dev, vsc_addr + MLX5_VSC_SEMA_OFFSET, 4); + + if (lock_val == counter) + break; + + retries++; + } + + return 0; +} + +void mlx5_vsc_unlock(struct mlx5_core_dev *mdev) +{ + device_t dev = mdev->pdev->dev.bsddev; + int vsc_addr = mdev->vsc_addr; + + if (!vsc_addr) { + mlx5_core_warn(mdev, "Unable to release vsc lock, vsc_addr not initialized\n"); + return; + } + + pci_write_config(dev, vsc_addr + MLX5_VSC_SEMA_OFFSET, 0, 4); +} + +static int mlx5_vsc_wait_on_flag(struct mlx5_core_dev *mdev, u32 expected) +{ + device_t dev = mdev->pdev->dev.bsddev; + int vsc_addr = mdev->vsc_addr; + int retries = 0; + u32 flag; + + while (true) { + if (retries > MLX5_VSC_MAX_RETRIES) + return EBUSY; + + flag = pci_read_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, 4); + if (expected == MLX5_VSC_GET(vsc_addr, &flag, flag)) + break; + + retries++; + DELAY(10); + } + + return 0; +} + +int mlx5_vsc_set_space(struct mlx5_core_dev *mdev, u16 space) +{ + device_t dev = mdev->pdev->dev.bsddev; + int vsc_addr = mdev->vsc_addr; + u32 vsc_space = 0; + + if (!vsc_addr) { + mlx5_core_warn(mdev, "Unable to set vsc space, vsc_addr not initialized\n"); + return EINVAL; + } + + MLX5_VSC_SET(vsc_space, &vsc_space, space, space); + pci_write_config(dev, vsc_addr + MLX5_VSC_SPACE_OFFSET, vsc_space, 4); + vsc_space = pci_read_config(dev, vsc_addr + MLX5_VSC_SPACE_OFFSET, 4); + + if (MLX5_VSC_GET(vsc_space, &vsc_space, status) != MLX5_VSC_SPACE_SUPPORTED) { + mlx5_core_warn(mdev, "Space 0x%x is not supported.\n", space); + return ENOTSUP; + } + + return 0; +} + +int mlx5_vsc_write(struct mlx5_core_dev *mdev, u32 addr, u32 *data) +{ + device_t dev = mdev->pdev->dev.bsddev; + int vsc_addr = mdev->vsc_addr; + u32 in = 0; + int err; + + if (!vsc_addr) { + mlx5_core_warn(mdev, "Unable to call vsc write, vsc_addr not initialized\n"); + return EINVAL; + } + + MLX5_VSC_SET(vsc_addr, &in, address, addr); + MLX5_VSC_SET(vsc_addr, &in, flag, 1); + pci_write_config(dev, vsc_addr + MLX5_VSC_DATA_OFFSET, *data, 4); + pci_write_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, in, 4); + + err = mlx5_vsc_wait_on_flag(mdev, 0); + if (err) + mlx5_core_warn(mdev, "Failed waiting for write flag!\n"); + + return err; +} + +int mlx5_vsc_read(struct mlx5_core_dev *mdev, u32 addr, u32 *data) +{ + device_t dev = mdev->pdev->dev.bsddev; + int vsc_addr = mdev->vsc_addr; + int err; + u32 in; + + if (!vsc_addr) { + mlx5_core_warn(mdev, "Unable to call vsc read, vsc_addr not initialized\n"); + return EINVAL; + } + + MLX5_VSC_SET(vsc_addr, &in, address, addr); + pci_write_config(dev, vsc_addr + MLX5_VSC_ADDR_OFFSET, in, 4); + + err = mlx5_vsc_wait_on_flag(mdev, 1); + if (err) { + mlx5_core_warn(mdev, "Failed waiting for read complete flag!\n"); + return err; + } + + *data = pci_read_config(dev, vsc_addr + MLX5_VSC_DATA_OFFSET, 4); + + return 0; +} + +int mlx5_vsc_find_cap(struct mlx5_core_dev *mdev) +{ + int *capreg = &mdev->vsc_addr; + int err; + + err = pci_find_cap(mdev->pdev->dev.bsddev, PCIY_VENDOR, capreg); + + if (err) + *capreg = 0; + + return err; +} + Modified: stable/11/sys/dev/mlx5/mlx5_ifc.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Mar 26 20:52:02 2018 (r331584) +++ stable/11/sys/dev/mlx5/mlx5_ifc.h Mon Mar 26 20:54:21 2018 (r331585) @@ -9331,6 +9331,13 @@ struct mlx5_ifc_mtt_bits { u8 rd_en[0x1]; }; +/* Vendor Specific Capabilities, VSC */ +enum { + MLX5_VSC_DOMAIN_ICMD = 0x1, + MLX5_VSC_DOMAIN_PROTECTED_CRSPACE = 0x6, + MLX5_VSC_DOMAIN_SEMAPHORES = 0xA, +}; + struct mlx5_ifc_vendor_specific_cap_bits { u8 type[0x8]; u8 length[0x8]; Modified: stable/11/sys/modules/mlx5/Makefile ============================================================================== --- stable/11/sys/modules/mlx5/Makefile Mon Mar 26 20:52:02 2018 (r331584) +++ stable/11/sys/modules/mlx5/Makefile Mon Mar 26 20:54:21 2018 (r331585) @@ -24,6 +24,7 @@ mlx5_srq.c \ mlx5_transobj.c \ mlx5_uar.c \ mlx5_vport.c \ +mlx5_vsc.c \ mlx5_wq.c \ device_if.h bus_if.h vnode_if.h pci_if.h \ opt_inet.h opt_inet6.h opt_rss.h From owner-svn-src-all@freebsd.org Mon Mar 26 20:59:28 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDB7CF6B49D; Mon, 26 Mar 2018 20:59:27 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 693DC73D0F; Mon, 26 Mar 2018 20:59:27 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 63E661221E; Mon, 26 Mar 2018 20:59:27 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QKxRGn032083; Mon, 26 Mar 2018 20:59:27 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QKxQAM032070; Mon, 26 Mar 2018 20:59:26 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262059.w2QKxQAM032070@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 20:59:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331586 - in stable/11: etc/mtree include share/man/man4 share/man/man5 share/mk sys/conf sys/dev/mlx5 sys/dev/mlx5/mlx5_core sys/modules/mlx5 targets/pseudo/userland tools/build/option... X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11: etc/mtree include share/man/man4 share/man/man5 share/mk sys/conf sys/dev/mlx5 sys/dev/mlx5/mlx5_core sys/modules/mlx5 targets/pseudo/userland tools/build/options usr.sbin usr.sbin/mlx5t... X-SVN-Commit-Revision: 331586 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 20:59:28 -0000 Author: hselasky Date: Mon Mar 26 20:59:26 2018 New Revision: 331586 URL: https://svnweb.freebsd.org/changeset/base/331586 Log: MFC r330653: Add kernel and userspace code to dump the firmware state of supported ConnectX-4/5 devices in mlx5core. The dump is obtained by reading a predefined register map from the non-destructive crspace, accessible by the vendor-specific PCIe capability (VSC). The dump is stored in preallocated kernel memory and managed by the mlx5tool(8), which communicates with the driver using a character device node. The utility allows to store the dump in format
into a file, to reset the dump content, and to manually initiate the dump. A call to mlx5_fwdump() should be added at the places where a dump must be fetched automatically. The most likely place is right before a firmware reset request. Submitted by: kib@ Sponsored by: Mellanox Technologies Added: stable/11/share/man/man4/mlx5io.4 - copied unchanged from r330653, head/share/man/man4/mlx5io.4 stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c - copied unchanged from r330653, head/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c - copied unchanged from r330653, head/sys/dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c stable/11/sys/dev/mlx5/mlx5io.h - copied unchanged from r330653, head/sys/dev/mlx5/mlx5io.h stable/11/tools/build/options/WITHOUT_MLX5TOOL - copied unchanged from r330653, head/tools/build/options/WITHOUT_MLX5TOOL stable/11/tools/build/options/WITH_MLX5TOOL - copied unchanged from r330653, head/tools/build/options/WITH_MLX5TOOL stable/11/usr.sbin/mlx5tool/ - copied from r330653, head/usr.sbin/mlx5tool/ Modified: stable/11/etc/mtree/BSD.include.dist stable/11/include/Makefile stable/11/share/man/man4/Makefile stable/11/share/man/man5/src.conf.5 stable/11/share/mk/src.opts.mk stable/11/sys/conf/files stable/11/sys/dev/mlx5/driver.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c stable/11/sys/modules/mlx5/Makefile stable/11/targets/pseudo/userland/Makefile.depend stable/11/usr.sbin/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/etc/mtree/BSD.include.dist ============================================================================== --- stable/11/etc/mtree/BSD.include.dist Mon Mar 26 20:54:21 2018 (r331585) +++ stable/11/etc/mtree/BSD.include.dist Mon Mar 26 20:59:26 2018 (r331586) @@ -130,6 +130,8 @@ .. mfi .. + mlx5 + .. mmc .. mpt Modified: stable/11/include/Makefile ============================================================================== --- stable/11/include/Makefile Mon Mar 26 20:54:21 2018 (r331585) +++ stable/11/include/Makefile Mon Mar 26 20:59:26 2018 (r331586) @@ -253,6 +253,11 @@ copies: .PHONY .META ${INSTALL} -C ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 444 nvpair.h \ ${DESTDIR}${INCLUDEDIR}/sys .endif +.if ${MK_MLX5TOOL} != "no" + cd ${SRCTOP}/sys/dev/mlx5; \ + ${INSTALL} -C ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 444 mlx5io.h \ + ${SDESTDIR}${INCLUDEDIR}/dev/mlx5 +.endif symlinks: .PHONY .META @${ECHO} "Setting up symlinks to kernel source tree..." @@ -382,6 +387,10 @@ symlinks: .PHONY .META ${INSTALL_SYMLINK} ${TAG_ARGS} ../../../sys/rpc/$$h \ ${DESTDIR}${INCLUDEDIR}/rpc; \ done +.if ${MK_MLX5TOOL} != "no" + ${INSTALL_SYMLINK} ${TAG_ARGS} ../../../../sys/dev/mlx5/mlx5io.h \ + ${SDESTDIR}${INCLUDEDIR}/dev/mlx5 +.endif .include Modified: stable/11/share/man/man4/Makefile ============================================================================== --- stable/11/share/man/man4/Makefile Mon Mar 26 20:54:21 2018 (r331585) +++ stable/11/share/man/man4/Makefile Mon Mar 26 20:59:26 2018 (r331586) @@ -920,6 +920,10 @@ MAN+= mlx4ib.4 MAN+= mlx5ib.4 .endif +.if ${MK_MLX5TOOL} != "no" +MAN+= mlx5io.4 +.endif + .if ${MK_TESTS} != "no" ATF= ${.CURDIR}/../../../contrib/atf .PATH: ${ATF}/doc Copied: stable/11/share/man/man4/mlx5io.4 (from r330653, head/share/man/man4/mlx5io.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/share/man/man4/mlx5io.4 Mon Mar 26 20:59:26 2018 (r331586, copy of r330653, head/share/man/man4/mlx5io.4) @@ -0,0 +1,142 @@ +.\" +.\" Copyright (c) 2018 Mellanox Technologies +.\" 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$ +.\" +.Dd February 20, 2018 +.Dt mlx5io 4 +.Os +.Sh NAME +.Nm mlx5io +.Nd IOCTL interface to manage Connect-X 4/5 Mellanox network adapters +.Sh SYNOPSIS +.In dev/mlx5/mlx5io.h +.Sh DESCRIPTION +The +.Nm +interface is provided for management of the Connect-X 4 and 5 network adapters +in the aspects not covered by the generic network configuration, +mostly related to the PCIe attachment and internal card working. +Interface consists of the commands, which are passed by means of +.Xr ioctl 2 +on the file descriptor, opened from the +.Pa /dev/mlx5ctl +device node. +.Pp +The following commands are implemented: +.Bl -tag -width indent +.It Dv MLX5_FWDUMP_FORCE +Take the snapshot of the firmware registers state and store it in the +kernel buffer. +The buffer must be empty, in other words, no dumps should be written so +far, or existing dump cleared with the +.Dv MLX5_FWDUMP_RESET +command for the specified device. +The argument for the command should point to the +.Vt struct mlx5_fwdump_addr +structure, containing the PCIe bus address of the device. +.Bd -literal +struct mlx5_fwdump_addr { + uint32_t domain; + uint8_t bus; + uint8_t slot; + uint8_t func; +}; +.Ed +.It Dv MLX5_FWDUMP_RESET +Clear the stored firmware dump, preparing the kernel buffer for +the next dump. +The argument for the command should point to the +.Vt struct mlx5_fwdump_addr +structure, containing the PCIe bus address of the device. +.It Dv MLX5_FWDUMP_GET +Fetch the stored firmware dump into the user memory. +The argument to the command should point to the input/output +.Vt struct mlx5_fwdump_get +structure. +Its +.Dv devaddr +field specifies the address of the device, the +.Dv buf +fields points to the array of +.Vt struct mlx5_fwdump_reg +of records of the registers values, the size of the array is specified +in the +.Dv reg_cnt +field. +.Bd -literal +struct mlx5_fwdump_get { + struct mlx5_fwdump_addr devaddr; + struct mlx5_fwdump_reg *buf; + size_t reg_cnt; + size_t reg_filled; /* out */ +}; +.Ed +.Pp +On successfull return, the +.Dv reg_filled +field reports the number of the +.Dv buf +array elements actually filled with the registers values. +If +.Dv buf +contains the +.Dv NULL +pointer, no registers are filled, but +.Dv reg_filled +still contains the number of registers that should be passed for +the complete dump. +.Pp +The +.Vt struct mlx5_fwdump_reg +element contains the address of the register in the field +.Dv addr , +and its value in the field +.Dv val . +.Bd -literal +struct mlx5_fwdump_reg { + uint32_t addr; + uint32_t val; +}; +.Ed +.El +.Sh FILES +The +.Pa /dev/mlx5ctl +.Xr devfs 5 +node is used to pass commands to the driver. +.Sh RETURN VALUES +If successful, the IOCTL returns zero. +Otherwise, -1 is returned and the global variable +.Va errno +is set to indicate the error. +.Sh SEE ALSO +.Xr errno 2 , +.Xr ioctl 2 , +.Xr mlx5en 4 , +.Xr mlx5ib 4 , +.Xr mlx5tool 8 +and +.Xr pci 9 . Modified: stable/11/share/man/man5/src.conf.5 ============================================================================== --- stable/11/share/man/man5/src.conf.5 Mon Mar 26 20:54:21 2018 (r331585) +++ stable/11/share/man/man5/src.conf.5 Mon Mar 26 20:59:26 2018 (r331586) @@ -431,12 +431,18 @@ Set to not build CUSE-related programs and libraries. .It Va WITHOUT_CXGBETOOL Set to not build .Xr cxgbetool 8 +.It Va WITHOUT_MLX5TOOL +Set to not build +.Xr mlx5tool 8 .Pp This is a default setting on arm/arm, arm/armeb, arm/armv6, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32 and powerpc/powerpc. .It Va WITH_CXGBETOOL Set to build .Xr cxgbetool 8 +.It Va WITH_MLX5TOOL +Set to build +.Xr mlx5tool 8 .Pp This is a default setting on amd64/amd64, arm64/aarch64, i386/i386, pc98/i386, powerpc/powerpc64 and sparc64/sparc64. Modified: stable/11/share/mk/src.opts.mk ============================================================================== --- stable/11/share/mk/src.opts.mk Mon Mar 26 20:54:21 2018 (r331585) +++ stable/11/share/mk/src.opts.mk Mon Mar 26 20:59:26 2018 (r331586) @@ -286,8 +286,10 @@ BROKEN_OPTIONS+=PROFILE .if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" || \ ${__T} == "powerpc64" || ${__T} == "sparc64" __DEFAULT_YES_OPTIONS+=CXGBETOOL +__DEFAULT_YES_OPTIONS+=MLX5TOOL .else __DEFAULT_NO_OPTIONS+=CXGBETOOL +__DEFAULT_NO_OPTIONS+=MLX5TOOL .endif .include Modified: stable/11/sys/conf/files ============================================================================== --- stable/11/sys/conf/files Mon Mar 26 20:54:21 2018 (r331585) +++ stable/11/sys/conf/files Mon Mar 26 20:59:26 2018 (r331586) @@ -4477,6 +4477,10 @@ dev/mlx5/mlx5_core/mlx5_fs_tree.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fw.c optional mlx5 pci \ compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_fwdump.c optional mlx5 pci \ + compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c optional mlx5 pci \ + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_health.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mad.c optional mlx5 pci \ Modified: stable/11/sys/dev/mlx5/driver.h ============================================================================== --- stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:54:21 2018 (r331585) +++ stable/11/sys/dev/mlx5/driver.h Mon Mar 26 20:59:26 2018 (r331586) @@ -614,6 +614,7 @@ struct mlx5_special_contexts { }; struct mlx5_flow_root_namespace; +struct mlx5_dump_data; struct mlx5_core_dev { struct pci_dev *pdev; /* sync pci state */ @@ -647,6 +648,7 @@ struct mlx5_core_dev { struct mlx5_flow_root_namespace *sniffer_rx_root_ns; struct mlx5_flow_root_namespace *sniffer_tx_root_ns; u32 num_q_counter_allocated[MLX5_INTERFACE_NUMBER]; + struct mlx5_dump_data *dump_data; }; enum { Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Mar 26 20:54:21 2018 (r331585) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Mar 26 20:59:26 2018 (r331586) @@ -95,4 +95,17 @@ static inline int mlx5_cmd_exec_check_status(struct ml int mlx5_rename_eq(struct mlx5_core_dev *dev, int eq_ix, char *name); +int mlx5_fwdump_init(void); +void mlx5_fwdump_fini(void); +int mlx5_fwdump_prep(struct mlx5_core_dev *mdev); +void mlx5_fwdump(struct mlx5_core_dev *mdev); +void mlx5_fwdump_clean(struct mlx5_core_dev *mdev); + +struct mlx5_crspace_regmap { + uint32_t addr; + unsigned cnt; +}; + +extern struct pci_driver mlx5_core_driver; + #endif /* __MLX5_CORE_H__ */ Copied: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c (from r330653, head/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Mar 26 20:59:26 2018 (r331586, copy of r330653, head/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c) @@ -0,0 +1,308 @@ +/*- + * Copyright (c) 2018, Mellanox Technologies, Ltd. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, 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 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 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 + +extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_mt4117[]; +extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_mt4115[]; +extern const struct mlx5_crspace_regmap mlx5_crspace_regmap_connectx5[]; + +struct mlx5_dump_data { + const struct mlx5_crspace_regmap *rege; + uint32_t *dump; + unsigned dump_size; + int dump_valid; + struct mtx dump_lock; +}; + +static MALLOC_DEFINE(M_MLX5_DUMP, "MLX5DUMP", "MLX5 Firmware dump"); + +static unsigned +mlx5_fwdump_getsize(const struct mlx5_crspace_regmap *rege) +{ + const struct mlx5_crspace_regmap *r; + unsigned sz; + + for (sz = 0, r = rege; r->cnt != 0; r++) + sz += r->cnt; + return (sz); +} + +static void +mlx5_fwdump_destroy_dd(struct mlx5_dump_data *dd) +{ + + mtx_destroy(&dd->dump_lock); + free(dd->dump, M_MLX5_DUMP); + free(dd, M_MLX5_DUMP); +} + +int +mlx5_fwdump_prep(struct mlx5_core_dev *mdev) +{ + struct mlx5_dump_data *dd; + int error; + + error = mlx5_vsc_find_cap(mdev); + if (error != 0) + return (error); + dd = malloc(sizeof(struct mlx5_dump_data), M_MLX5_DUMP, M_WAITOK); + switch (pci_get_device(mdev->pdev->dev.bsddev)) { + case 0x1013: + dd->rege = mlx5_crspace_regmap_mt4115; + break; + case 0x1015: + dd->rege = mlx5_crspace_regmap_mt4117; + break; + case 0x1017: + case 0x1019: + dd->rege = mlx5_crspace_regmap_connectx5; + break; + default: + free(dd, M_MLX5_DUMP); + return (0); /* silently fail to not prevent driver attach */ + } + dd->dump_size = mlx5_fwdump_getsize(dd->rege); + dd->dump = malloc(dd->dump_size * sizeof(uint32_t), M_MLX5_DUMP, + M_WAITOK | M_ZERO); + dd->dump_valid = 0; + mtx_init(&dd->dump_lock, "mlx5dmp", NULL, MTX_DEF | MTX_NEW); + if (atomic_cmpset_rel_ptr((uintptr_t *)&mdev->dump_data, 0, + (uintptr_t)dd) == 0) + mlx5_fwdump_destroy_dd(dd); + return (0); +} + +void +mlx5_fwdump(struct mlx5_core_dev *mdev) +{ + struct mlx5_dump_data *dd; + const struct mlx5_crspace_regmap *r; + uint32_t i, ri; + int error; + + dd = (struct mlx5_dump_data *)atomic_load_acq_ptr((uintptr_t *) + &mdev->dump_data); + if (dd == NULL) + return; + mtx_lock(&dd->dump_lock); + if (dd->dump_valid) + /* only one dump */ + goto failed; + + /* mlx5_vsc already warns, be silent. */ + error = mlx5_vsc_lock(mdev); + if (error != 0) + goto failed; + error = mlx5_vsc_set_space(mdev, MLX5_VSC_DOMAIN_PROTECTED_CRSPACE); + if (error != 0) + goto unlock_vsc; + for (i = 0, r = dd->rege; r->cnt != 0; r++) { + for (ri = 0; ri < r->cnt; ri++) { + error = mlx5_vsc_read(mdev, r->addr + ri * 4, + &dd->dump[i]); + if (error != 0) + goto unlock_vsc; + i++; + } + } + atomic_store_rel_int(&dd->dump_valid, 1); +unlock_vsc: + mlx5_vsc_unlock(mdev); +failed: + mtx_unlock(&dd->dump_lock); +} + +void +mlx5_fwdump_clean(struct mlx5_core_dev *mdev) +{ + struct mlx5_dump_data *dd; + + for (;;) { + dd = mdev->dump_data; + if (dd == NULL) + return; + if (atomic_cmpset_ptr((uintptr_t *)&mdev->dump_data, + (uintptr_t)dd, 0) == 1) { + mlx5_fwdump_destroy_dd(dd); + return; + } + } +} + +static int +mlx5_dbsf_to_core(const struct mlx5_fwdump_addr *devaddr, + struct mlx5_core_dev **mdev) +{ + device_t dev; + struct pci_dev *pdev; + + dev = pci_find_dbsf(devaddr->domain, devaddr->bus, devaddr->slot, + devaddr->func); + if (dev == NULL) + return (ENOENT); + if (device_get_devclass(dev) != mlx5_core_driver.bsdclass) + return (EINVAL); + pdev = device_get_softc(dev); + *mdev = pci_get_drvdata(pdev); + if (*mdev == NULL) + return (ENOENT); + return (0); +} + +static int +mlx5_fwdump_copyout(struct mlx5_dump_data *dd, struct mlx5_fwdump_get *fwg) +{ + const struct mlx5_crspace_regmap *r; + struct mlx5_fwdump_reg rv, *urv; + uint32_t i, ri; + int error; + + if (dd == NULL) + return (ENOENT); + if (fwg->buf == NULL) { + fwg->reg_filled = dd->dump_size; + return (0); + } + if (atomic_load_acq_int(&dd->dump_valid) == 0) + return (ENOENT); + + urv = fwg->buf; + for (i = 0, r = dd->rege; r->cnt != 0; r++) { + for (ri = 0; ri < r->cnt; ri++) { + if (i >= fwg->reg_cnt) + goto out; + rv.addr = r->addr + ri * 4; + rv.val = dd->dump[i]; + error = copyout(&rv, urv, sizeof(rv)); + if (error != 0) + return (error); + urv++; + i++; + } + } +out: + fwg->reg_filled = i; + return (0); +} + +static int +mlx5_fwdump_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, + struct thread *td) +{ + struct mlx5_core_dev *mdev; + struct mlx5_fwdump_get *fwg; + struct mlx5_fwdump_addr *devaddr; + struct mlx5_dump_data *dd; + int error; + + error = 0; + switch (cmd) { + case MLX5_FWDUMP_GET: + if ((fflag & FREAD) == 0) { + error = EBADF; + break; + } + fwg = (struct mlx5_fwdump_get *)data; + devaddr = &fwg->devaddr; + error = mlx5_dbsf_to_core(devaddr, &mdev); + if (error != 0) + break; + error = mlx5_fwdump_copyout(mdev->dump_data, fwg); + break; + case MLX5_FWDUMP_RESET: + if ((fflag & FWRITE) == 0) { + error = EBADF; + break; + } + devaddr = (struct mlx5_fwdump_addr *)data; + error = mlx5_dbsf_to_core(devaddr, &mdev); + if (error != 0) + break; + dd = mdev->dump_data; + if (dd != NULL) + atomic_store_rel_int(&dd->dump_valid, 0); + else + error = ENOENT; + break; + case MLX5_FWDUMP_FORCE: + if ((fflag & FWRITE) == 0) { + error = EBADF; + break; + } + devaddr = (struct mlx5_fwdump_addr *)data; + error = mlx5_dbsf_to_core(devaddr, &mdev); + if (error != 0) + break; + mlx5_fwdump(mdev); + break; + default: + error = ENOTTY; + break; + } + return (error); +} + +static struct cdevsw mlx5_fwdump_devsw = { + .d_version = D_VERSION, + .d_ioctl = mlx5_fwdump_ioctl, +}; + +static struct cdev *mlx5_fwdump_dev; + +int +mlx5_fwdump_init(void) +{ + struct make_dev_args mda; + int error; + + make_dev_args_init(&mda); + mda.mda_flags = MAKEDEV_WAITOK | MAKEDEV_CHECKNAME; + mda.mda_devsw = &mlx5_fwdump_devsw; + mda.mda_uid = UID_ROOT; + mda.mda_gid = GID_OPERATOR; + mda.mda_mode = 0640; + error = make_dev_s(&mda, &mlx5_fwdump_dev, "mlx5ctl"); + return (-error); +} + +void +mlx5_fwdump_fini(void) +{ + + if (mlx5_fwdump_dev != NULL) + destroy_dev(mlx5_fwdump_dev); + +} Copied: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c (from r330653, head/sys/dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c Mon Mar 26 20:59:26 2018 (r331586, copy of r330653, head/sys/dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c) @@ -0,0 +1,11187 @@ +/*- + * Copyright (c) 2018, Mellanox Technologies, Ltd. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, 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 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 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 + +const struct mlx5_crspace_regmap mlx5_crspace_regmap_mt4117[] = { + {0x000000, 16388}, + {0x010084, 1}, + {0x01008c, 2}, + {0x010180, 6}, + {0x01019c, 9}, + {0x010304, 1}, + {0x0103bc, 52}, + {0x010500, 35}, + {0x010604, 1}, + {0x01060c, 1}, + {0x010624, 1}, + {0x01062c, 1}, + {0x010644, 1}, + {0x01064c, 3}, + {0x010800, 1}, + {0x010814, 3}, + {0x010844, 1}, + {0x01084c, 4}, + {0x011000, 32}, + {0x011200, 32}, + {0x011400, 32}, + {0x011600, 32}, + {0x011800, 32}, + {0x011a00, 5}, + {0x011a24, 1}, + {0x011a2c, 1}, + {0x011a34, 3}, + {0x011a44, 1}, + {0x011a4c, 2}, + {0x012000, 20}, + {0x012088, 22}, + {0x012100, 18}, + {0x012200, 36}, + {0x012300, 3}, + {0x012310, 1}, + {0x012320, 1}, + {0x012330, 1}, + {0x012340, 1}, + {0x012350, 1}, + {0x012360, 1}, + {0x012370, 1}, + {0x012400, 166}, + {0x0126a0, 1}, + {0x012700, 32}, + {0x012800, 1}, + {0x012808, 1}, + {0x012810, 1}, + {0x012818, 1}, + {0x012820, 1}, + {0x012828, 1}, + {0x012830, 1}, + {0x012838, 1}, + {0x012850, 1}, + {0x012858, 1}, + {0x012860, 1}, + {0x012868, 1}, + {0x012870, 1}, + {0x012878, 1}, + {0x012880, 1}, + {0x012888, 1}, + {0x012890, 5}, + {0x012900, 10}, + {0x012940, 6}, + {0x012960, 6}, + {0x012980, 5}, + {0x012a00, 6}, + {0x012a40, 5}, + {0x012a80, 9}, + {0x012ac0, 19}, + {0x012b10, 2}, + {0x014000, 1}, + {0x014010, 10}, + {0x014104, 1}, + {0x01410c, 4}, + {0x014200, 1}, + {0x014210, 4}, + {0x014300, 4}, + {0x014400, 3}, + {0x014410, 1}, + {0x014444, 1}, + {0x01444c, 4}, + {0x014480, 2}, + {0x014500, 35}, + {0x014590, 1}, + {0x014600, 32}, + {0x014704, 1}, + {0x01470c, 1}, + {0x014804, 2}, + {0x014814, 3}, + {0x014824, 2}, + {0x014834, 3}, + {0x014844, 2}, + {0x014854, 5}, + {0x014a00, 4}, + {0x014a14, 2}, + {0x015004, 1}, + {0x01500c, 4}, + {0x015204, 1}, + {0x015214, 4}, + {0x015228, 1}, + {0x015244, 1}, + {0x015250, 4}, + {0x015274, 1}, + {0x01527c, 1}, + {0x0152a4, 1}, + {0x015300, 4}, + {0x015314, 1}, + {0x01531c, 3}, + {0x015404, 2}, + {0x015430, 20}, + {0x015484, 2}, + {0x015498, 5}, + {0x0154bc, 1}, + {0x0154c8, 1}, + {0x0154d4, 2}, + {0x01550c, 3}, + {0x015524, 3}, + {0x015608, 3}, + {0x015618, 4}, + {0x015680, 16}, + {0x015704, 2}, + {0x015730, 20}, + {0x015784, 3}, + {0x015794, 3}, + {0x0157c0, 6}, + {0x015800, 52}, + {0x0158d4, 1}, + {0x0158dc, 1}, + {0x0158e4, 3}, + {0x0158f4, 1}, + {0x0158fc, 52}, + {0x015b04, 2}, + {0x015b14, 3}, + {0x015b24, 2}, + {0x015b38, 6}, + {0x015b60, 5}, + {0x015c04, 1}, + {0x015cb8, 18}, + {0x015d98, 1}, + {0x015e00, 1}, + {0x015e08, 1}, + {0x015e10, 1}, + {0x016000, 32}, + {0x016100, 7}, + {0x016120, 2}, + {0x016144, 3}, + {0x016204, 1}, + {0x01620c, 1}, + {0x016224, 1}, + {0x01622c, 1}, + {0x016234, 1}, + {0x01623c, 1}, + {0x016244, 1}, + {0x01624c, 1}, + {0x016254, 1}, + {0x01625c, 2}, + {0x016270, 1}, + {0x016280, 1}, + {0x016290, 1}, + {0x0162a0, 1}, + {0x0162b0, 1}, + {0x0162c0, 1}, + {0x0162d0, 1}, + {0x0162e0, 1}, + {0x0162f0, 1}, + {0x016300, 1}, + {0x016310, 1}, + {0x016320, 1}, + {0x016330, 1}, + {0x016340, 32}, + {0x016400, 19}, + {0x016454, 7}, + {0x016484, 1}, + {0x01648c, 1}, + {0x016800, 9}, + {0x016840, 16}, + {0x017800, 1}, + {0x017828, 1}, + {0x017850, 1}, + {0x017878, 1}, + {0x0178a0, 12}, + {0x0179ac, 1}, + {0x0179d8, 4}, + {0x017a00, 6}, + {0x017a20, 6}, + {0x017a40, 3}, + {0x017c00, 6}, + {0x017c20, 6}, + {0x017c40, 6}, + {0x017c60, 6}, + {0x017c80, 6}, + {0x017ca0, 6}, + {0x017cc0, 6}, + {0x017ce0, 6}, + {0x017d00, 3}, + {0x017d10, 6}, + {0x018400, 11}, + {0x018430, 2}, + {0x018440, 4}, + {0x018604, 1}, + {0x018618, 2}, + {0x018640, 4}, + {0x018660, 2}, + {0x018800, 1}, + {0x018810, 4}, + {0x018844, 1}, + {0x01884c, 4}, + {0x018880, 2}, + {0x01a400, 12}, + {0x01a444, 1}, + {0x01a44c, 1}, + {0x01a800, 1}, + {0x01a814, 3}, + {0x01a844, 1}, + {0x01a84c, 4}, + {0x01c400, 7}, + {0x01c500, 8}, + {0x01c544, 1}, + {0x01c554, 3}, + {0x01c564, 3}, + {0x01c574, 3}, + {0x01c604, 1}, + {0x01c60c, 3}, + {0x01c800, 1}, + {0x01c814, 3}, + {0x01c844, 1}, + {0x01c84c, 4}, + {0x01f000, 1}, + {0x01f400, 1}, + {0x01f408, 4}, + {0x01f41c, 3}, + {0x01f500, 2}, + {0x01f800, 1}, + {0x01f814, 3}, + {0x01f844, 1}, + {0x01f84c, 4}, + {0x01f880, 3}, + {0x020004, 1}, + {0x02000c, 4}, + {0x020080, 3}, + {0x020090, 5}, + {0x020800, 16}, + {0x020900, 192}, + {0x021004, 1}, + {0x02100c, 4}, + {0x021400, 5}, + {0x021418, 5}, + {0x021480, 1}, + {0x021704, 2}, + {0x02173c, 17}, + {0x0217fc, 2}, + {0x021844, 1}, + {0x022280, 12}, + {0x022408, 6}, + {0x022444, 1}, + {0x022454, 3}, + {0x022504, 1}, + {0x02250c, 4}, + {0x022624, 1}, + {0x02262c, 3}, + {0x02263c, 1}, + {0x022804, 1}, + {0x02280c, 4}, + {0x022904, 4}, + {0x022924, 4}, + {0x024000, 36}, + {0x0240c0, 21}, + {0x024120, 11}, + {0x024200, 5}, + {0x024220, 1}, + {0x024230, 8}, + {0x024258, 1}, + {0x024260, 1}, + {0x024270, 9}, + {0x0242a0, 1}, + {0x0242b0, 4}, + {0x0242c8, 2}, + {0x024300, 5}, + {0x024318, 2}, + {0x02439c, 25}, + {0x024424, 4}, + {0x024464, 13}, + {0x0244a4, 1}, + {0x0244ac, 3}, + {0x0244c0, 2}, + {0x0244d0, 3}, + {0x0244e0, 3}, + {0x0244f0, 3}, + {0x024500, 3}, + {0x024510, 3}, + {0x024520, 3}, + {0x024530, 3}, + {0x024884, 11}, + {0x0248b4, 3}, + {0x0248c4, 1}, + {0x0248cc, 1}, + {0x0248d4, 1}, + {0x0248dc, 1}, + {0x0248f0, 2}, + {0x024908, 6}, + {0x024928, 6}, + {0x024968, 6}, + {0x024984, 3}, + {0x024994, 1}, + {0x02499c, 6}, + {0x0249b8, 7}, + {0x024a08, 6}, + {0x024a28, 6}, + {0x024a68, 6}, + {0x024a84, 1}, + {0x024a8c, 1}, + {0x024a94, 1}, + {0x024a9c, 13}, + {0x024ae0, 6}, + {0x024b00, 7}, + {0x024b20, 6}, + {0x024b40, 8}, + {0x024c00, 2}, + {0x024c24, 3}, + {0x024c34, 3}, + {0x025004, 6}, + {0x025800, 37}, + {0x025904, 1}, + {0x02590c, 1}, + {0x026000, 99}, + {0x026200, 1}, + {0x026800, 7}, + {0x026824, 6}, + {0x026840, 2}, + {0x026864, 1}, + {0x02686c, 1}, + {0x026874, 3}, + {0x026884, 1}, + {0x0268a4, 7}, + {0x026904, 1}, + {0x02690c, 4}, + {0x026940, 1}, + {0x026980, 33}, + {0x026a0c, 7}, + {0x026a30, 1}, + {0x026a44, 4}, + {0x026a60, 1}, + {0x026a70, 1}, + {0x026b00, 9}, + {0x026b44, 2}, + {0x026b68, 6}, + {0x026b84, 2}, + {0x026ba8, 14}, + {0x026c00, 16}, + {0x026c44, 1}, + {0x026c4c, 1}, + {0x026c84, 1}, + {0x026c8c, 4}, + {0x026cc4, 1}, + {0x026ccc, 4}, + {0x026d00, 2}, + {0x028800, 2}, + {0x028844, 1}, + {0x02884c, 4}, + {0x029004, 7}, + {0x029b30, 2}, + {0x029b50, 4}, + {0x02a004, 1}, + {0x02a00c, 4}, + {0x02a040, 6}, + {0x02a200, 1}, + {0x02a210, 11}, + {0x02a240, 8}, + {0x02a484, 1}, + {0x02a4c0, 16}, + {0x02a780, 1}, + {0x02a7a0, 4}, + {0x02a7c0, 1}, + {0x02a900, 1}, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Mar 26 21:00:58 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 610ACF6B758; Mon, 26 Mar 2018 21:00:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 12C9D73E99; Mon, 26 Mar 2018 21:00:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D4C412249; Mon, 26 Mar 2018 21:00:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QL0vpR033152; Mon, 26 Mar 2018 21:00:57 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QL0vxA033151; Mon, 26 Mar 2018 21:00:57 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262100.w2QL0vxA033151@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 21:00:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331587 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 331587 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 21:00:58 -0000 Author: hselasky Date: Mon Mar 26 21:00:57 2018 New Revision: 331587 URL: https://svnweb.freebsd.org/changeset/base/331587 Log: MFC r330656: Use the device unit number for naming the ifnet interface in mlx5en(4). Currently the ifnet interface is named mceX, where X is a monotonically incremented value. If the device is reset due to a fatal error, then the interface name will change. Using the device unit number will keep the naming consistent across the reset logic. Submitted by: Matthew Finlay Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 20:59:26 2018 (r331586) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 21:00:57 2018 (r331587) @@ -3327,7 +3327,6 @@ mlx5e_setup_pauseframes(struct mlx5e_priv *priv) static void * mlx5e_create_ifp(struct mlx5_core_dev *mdev) { - static volatile int mlx5_en_unit; struct ifnet *ifp; struct mlx5e_priv *priv; u8 dev_addr[ETHER_ADDR_LEN] __aligned(4); @@ -3351,7 +3350,7 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) goto err_free_priv; } ifp->if_softc = priv; - if_initname(ifp, "mce", atomic_fetchadd_int(&mlx5_en_unit, 1)); + if_initname(ifp, "mce", device_get_unit(mdev->pdev->dev.bsddev)); ifp->if_mtu = ETHERMTU; ifp->if_init = mlx5e_open; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; From owner-svn-src-all@freebsd.org Mon Mar 26 21:02:21 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7278AF6B8CC; Mon, 26 Mar 2018 21:02:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 17C85741D3; Mon, 26 Mar 2018 21:02:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 12A44123A8; Mon, 26 Mar 2018 21:02:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QL2KjV036916; Mon, 26 Mar 2018 21:02:20 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QL2KPm036915; Mon, 26 Mar 2018 21:02:20 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262102.w2QL2KPm036915@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 21:02:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331588 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 331588 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 21:02:21 -0000 Author: hselasky Date: Mon Mar 26 21:02:20 2018 New Revision: 331588 URL: https://svnweb.freebsd.org/changeset/base/331588 Log: MFC r330657: Use vport rather than physical-port MTU in mlx5en(4). Set and report vport MTU rather than physical MTU, The driver will set both vport and physical port mtu and will rely on the query of vport mtu. SRIOV VFs have to report their MTU to their vport manager (PF), and this will allow them to work with any MTU they need without failing the request. Also for some cases where the PF is not a port owner, PF can work with MTU less than the physical port mtu if set physical port mtu didn't take effect. Based on Linux upstream commit: cd255efff9baadd654d6160e52d17ae7c568c9d3 Submitted by: Meny Yossefi Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 21:00:57 2018 (r331587) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 21:02:20 2018 (r331588) @@ -2341,15 +2341,29 @@ mlx5e_set_dev_port_mtu(struct ifnet *ifp, int sw_mtu) int hw_mtu; int err; - err = mlx5_set_port_mtu(mdev, MLX5E_SW2HW_MTU(sw_mtu)); + hw_mtu = MLX5E_SW2HW_MTU(sw_mtu); + + err = mlx5_set_port_mtu(mdev, hw_mtu); if (err) { if_printf(ifp, "%s: mlx5_set_port_mtu failed setting %d, err=%d\n", __func__, sw_mtu, err); return (err); } + /* Update vport context MTU */ + err = mlx5_set_vport_mtu(mdev, hw_mtu); + if (err) { + if_printf(ifp, "%s: Failed updating vport context with MTU size, err=%d\n", + __func__, err); + } + ifp->if_mtu = sw_mtu; - err = mlx5_query_port_oper_mtu(mdev, &hw_mtu); + + err = mlx5_query_vport_mtu(mdev, &hw_mtu); + if (err || !hw_mtu) { + /* fallback to port oper mtu */ + err = mlx5_query_port_oper_mtu(mdev, &hw_mtu); + } if (err) { if_printf(ifp, "Query port MTU, after setting new " "MTU value, failed\n"); From owner-svn-src-all@freebsd.org Mon Mar 26 21:03:34 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67A5EF6B9F5; Mon, 26 Mar 2018 21:03:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 169A4742F8; Mon, 26 Mar 2018 21:03:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EB578123B5; Mon, 26 Mar 2018 21:03:33 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QL3Xlt037013; Mon, 26 Mar 2018 21:03:33 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QL3XsK037012; Mon, 26 Mar 2018 21:03:33 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262103.w2QL3XsK037012@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 21:03:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331589 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 331589 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 21:03:34 -0000 Author: hselasky Date: Mon Mar 26 21:03:33 2018 New Revision: 331589 URL: https://svnweb.freebsd.org/changeset/base/331589 Log: MFC r330658: Fix mlx5en(4) driver to properly call m_defrag(). When the mlx5en(4) driver was converted to using BUSDMA(9) the call to m_defrag() was moved after the part of the TX routine that strips the header from the mbuf chain. Before it called m_defrag it first trimmed off the now-empty mbufs from the start of the chain. This has the side effect of also removing the head of the chain that has M_PKTHDR set. m_defrag() will not defrag a chain that does not have M_PKTHDR set, thus it was effectively never defragging the mbuf chains. As it turns out, trimming the mbufs in this fashion is unnecessary since the call to bus_dmamap_load_mbuf_sg doesn't map empty mbufs anyway, so remove it. Differential Revision: https://reviews.freebsd.org/D12050 Submitted by: mjoras@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Mon Mar 26 21:02:20 2018 (r331588) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Mon Mar 26 21:03:33 2018 (r331589) @@ -311,22 +311,9 @@ mlx5e_sq_xmit(struct mlx5e_sq *sq, struct mbuf **mbp) } dseg = ((struct mlx5_wqe_data_seg *)&wqe->ctrl) + ds_cnt; - /* Trim off empty mbufs */ - while (mb->m_len == 0) { - mb = m_free(mb); - /* Check if all data has been inlined */ - if (mb == NULL) - goto skip_dma; - } - err = bus_dmamap_load_mbuf_sg(sq->dma_tag, sq->mbuf[pi].dma_map, mb, segs, &nsegs, BUS_DMA_NOWAIT); if (err == EFBIG) { - /* - * Update *mbp before defrag in case it was trimmed in the - * loop above - */ - *mbp = mb; /* Update statistics */ sq->stats.defragged++; /* Too many mbuf fragments */ @@ -343,6 +330,17 @@ mlx5e_sq_xmit(struct mlx5e_sq *sq, struct mbuf **mbp) if (err != 0) goto tx_drop; + /* Make sure all mbuf data, if any, is written to RAM */ + if (nsegs != 0) { + bus_dmamap_sync(sq->dma_tag, sq->mbuf[pi].dma_map, + BUS_DMASYNC_PREWRITE); + } else { + /* All data was inlined, free the mbuf. */ + bus_dmamap_unload(sq->dma_tag, sq->mbuf[pi].dma_map); + m_freem(mb); + mb = NULL; + } + for (x = 0; x != nsegs; x++) { if (segs[x].ds_len == 0) continue; @@ -351,7 +349,7 @@ mlx5e_sq_xmit(struct mlx5e_sq *sq, struct mbuf **mbp) dseg->byte_count = cpu_to_be32((uint32_t)segs[x].ds_len); dseg++; } -skip_dma: + ds_cnt = (dseg - ((struct mlx5_wqe_data_seg *)&wqe->ctrl)); wqe->ctrl.opmod_idx_opcode = cpu_to_be32((sq->pc << 8) | opcode); @@ -368,10 +366,6 @@ skip_dma: sq->mbuf[pi].mbuf = mb; sq->mbuf[pi].num_wqebbs = DIV_ROUND_UP(ds_cnt, MLX5_SEND_WQEBB_NUM_DS); sq->pc += sq->mbuf[pi].num_wqebbs; - - /* Make sure all mbuf data is written to RAM */ - if (mb != NULL) - bus_dmamap_sync(sq->dma_tag, sq->mbuf[pi].dma_map, BUS_DMASYNC_PREWRITE); sq->stats.packets++; *mbp = NULL; /* safety clear */ From owner-svn-src-all@freebsd.org Mon Mar 26 21:04:48 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0E7CBF6BB15; Mon, 26 Mar 2018 21:04:48 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B951E74414; Mon, 26 Mar 2018 21:04:47 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B4313123C2; Mon, 26 Mar 2018 21:04:47 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QL4ltO037114; Mon, 26 Mar 2018 21:04:47 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QL4lA3037111; Mon, 26 Mar 2018 21:04:47 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262104.w2QL4lA3037111@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 21:04:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331590 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 331590 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 21:04:48 -0000 Author: hselasky Date: Mon Mar 26 21:04:47 2018 New Revision: 331590 URL: https://svnweb.freebsd.org/changeset/base/331590 Log: MFC r330659: Avoid more LFENCE/SFENCe on x86 in mlx5en(4), by using the FreeBSD native fences. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 21:03:33 2018 (r331589) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Mar 26 21:04:47 2018 (r331590) @@ -1256,7 +1256,7 @@ mlx5e_sq_send_nops_locked(struct mlx5e_sq *sq, int can } /* send a single NOP */ mlx5e_send_nop(sq, 1); - wmb(); + atomic_thread_fence_rel(); } done: /* Check if we need to write the doorbell */ Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Mon Mar 26 21:03:33 2018 (r331589) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c Mon Mar 26 21:04:47 2018 (r331590) @@ -429,7 +429,7 @@ mlx5e_poll_tx_cq(struct mlx5e_sq *sq, int budget) mlx5_cqwq_update_db_record(&sq->cq.wq); /* Ensure cq space is freed before enabling more cqes */ - wmb(); + atomic_thread_fence_rel(); sq->cc = sqcc; Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Mon Mar 26 21:03:33 2018 (r331589) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_txrx.c Mon Mar 26 21:04:47 2018 (r331590) @@ -38,7 +38,7 @@ mlx5e_get_cqe(struct mlx5e_cq *cq) return (NULL); /* ensure cqe content is read after cqe ownership bit */ - rmb(); + atomic_thread_fence_acq(); return (cqe); } From owner-svn-src-all@freebsd.org Mon Mar 26 21:06:24 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9B78EF6BD17; Mon, 26 Mar 2018 21:06:24 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 502317453E; Mon, 26 Mar 2018 21:06:24 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4AAF7123C3; Mon, 26 Mar 2018 21:06:24 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QL6OHk037239; Mon, 26 Mar 2018 21:06:24 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QL6Ngg037236; Mon, 26 Mar 2018 21:06:23 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262106.w2QL6Ngg037236@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 21:06:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331591 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 331591 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 21:06:24 -0000 Author: hselasky Date: Mon Mar 26 21:06:23 2018 New Revision: 331591 URL: https://svnweb.freebsd.org/changeset/base/331591 Log: MFC r330660: Add call to setup firmware data dump structure during device load in mlx5core. Do not consider the inability to create a firmware dump fatal, but inform about the situation and allow the driver to attach. The device might not implement the needed VSC, or we might not know the layout of the registers map. In either case, only firmware dump functionality is limited, the network operations should be fine. Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Mar 26 21:04:47 2018 (r331590) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h Mon Mar 26 21:06:23 2018 (r331591) @@ -97,7 +97,7 @@ int mlx5_rename_eq(struct mlx5_core_dev *dev, int eq_i int mlx5_fwdump_init(void); void mlx5_fwdump_fini(void); -int mlx5_fwdump_prep(struct mlx5_core_dev *mdev); +void mlx5_fwdump_prep(struct mlx5_core_dev *mdev); void mlx5_fwdump(struct mlx5_core_dev *mdev); void mlx5_fwdump_clean(struct mlx5_core_dev *mdev); Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Mar 26 21:04:47 2018 (r331590) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c Mon Mar 26 21:06:23 2018 (r331591) @@ -69,15 +69,19 @@ mlx5_fwdump_destroy_dd(struct mlx5_dump_data *dd) free(dd, M_MLX5_DUMP); } -int +void mlx5_fwdump_prep(struct mlx5_core_dev *mdev) { struct mlx5_dump_data *dd; int error; error = mlx5_vsc_find_cap(mdev); - if (error != 0) - return (error); + if (error != 0) { + /* Inability to create a firmware dump is not fatal. */ + device_printf((&mdev->pdev->dev)->bsddev, "WARN: " + "mlx5_fwdump_prep failed %d\n", error); + return; + } dd = malloc(sizeof(struct mlx5_dump_data), M_MLX5_DUMP, M_WAITOK); switch (pci_get_device(mdev->pdev->dev.bsddev)) { case 0x1013: @@ -92,7 +96,7 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) break; default: free(dd, M_MLX5_DUMP); - return (0); /* silently fail to not prevent driver attach */ + return; /* silently fail, do not prevent driver attach */ } dd->dump_size = mlx5_fwdump_getsize(dd->rege); dd->dump = malloc(dd->dump_size * sizeof(uint32_t), M_MLX5_DUMP, @@ -102,7 +106,6 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) if (atomic_cmpset_rel_ptr((uintptr_t *)&mdev->dump_data, 0, (uintptr_t)dd) == 0) mlx5_fwdump_destroy_dd(dd); - return (0); } void Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Mar 26 21:04:47 2018 (r331590) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c Mon Mar 26 21:06:23 2018 (r331591) @@ -1043,6 +1043,8 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st goto err_reg_dev; } + mlx5_fwdump_prep(dev); + clear_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state); set_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state); From owner-svn-src-all@freebsd.org Mon Mar 26 21:11:44 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EFC90F6C283; Mon, 26 Mar 2018 21:11:43 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A2E44748BA; Mon, 26 Mar 2018 21:11:43 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9DB8712514; Mon, 26 Mar 2018 21:11:43 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QLBhZU038420; Mon, 26 Mar 2018 21:11:43 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QLBhT5038419; Mon, 26 Mar 2018 21:11:43 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262111.w2QLBhT5038419@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 21:11:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331592 - stable/11/sys/dev/mlx5/mlx5_core X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core X-SVN-Commit-Revision: 331592 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 21:11:44 -0000 Author: hselasky Date: Mon Mar 26 21:11:43 2018 New Revision: 331592 URL: https://svnweb.freebsd.org/changeset/base/331592 Log: MFC r330670: Make mlx5 compilable on ILP32 arches. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Mar 26 21:06:23 2018 (r331591) +++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c Mon Mar 26 21:11:43 2018 (r331592) @@ -67,7 +67,7 @@ static void mlx5_trigger_cmd_completions(struct mlx5_c vector |= MLX5_TRIGGERED_CMD_COMP; spin_unlock_irqrestore(&dev->cmd.alloc_lock, flags); - mlx5_core_dbg(dev, "vector 0x%lx\n", vector); + mlx5_core_dbg(dev, "vector 0x%jx\n", (uintmax_t)vector); mlx5_cmd_comp_handler(dev, vector); return; From owner-svn-src-all@freebsd.org Mon Mar 26 21:14:21 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EA3B7F6C51A; Mon, 26 Mar 2018 21:14:20 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A0FD474AD6; Mon, 26 Mar 2018 21:14:20 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9B98912560; Mon, 26 Mar 2018 21:14:20 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QLEKC6042411; Mon, 26 Mar 2018 21:14:20 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QLEKEB042410; Mon, 26 Mar 2018 21:14:20 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262114.w2QLEKEB042410@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 21:14:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331593 - stable/11/usr.sbin/mlx5tool X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/usr.sbin/mlx5tool X-SVN-Commit-Revision: 331593 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 21:14:21 -0000 Author: hselasky Date: Mon Mar 26 21:14:20 2018 New Revision: 331593 URL: https://svnweb.freebsd.org/changeset/base/331593 Log: MFC r330654: Check that the address is specified in mlx5tool(8). Submitted by: kib@ Sponsored by: Mellanox Technologies Modified: stable/11/usr.sbin/mlx5tool/mlx5tool.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/mlx5tool/mlx5tool.c ============================================================================== --- stable/11/usr.sbin/mlx5tool/mlx5tool.c Mon Mar 26 21:11:43 2018 (r331592) +++ stable/11/usr.sbin/mlx5tool/mlx5tool.c Mon Mar 26 21:14:20 2018 (r331593) @@ -47,6 +47,10 @@ parse_pci_addr(const char *addrstr, struct mlx5_fwdump unsigned long selarr[4]; int i; + if (addrstr == NULL) { + warnx("no pci address specified"); + return (1); + } if (strncmp(addrstr, "pci", 3) == 0) { addrstr += 3; i = 0; From owner-svn-src-all@freebsd.org Mon Mar 26 21:57:45 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 207B9F6EECC; Mon, 26 Mar 2018 21:57:45 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C310D764FE; Mon, 26 Mar 2018 21:57:44 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B9AAC12C4B; Mon, 26 Mar 2018 21:57:44 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QLviVk062795; Mon, 26 Mar 2018 21:57:44 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QLvinQ062794; Mon, 26 Mar 2018 21:57:44 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201803262157.w2QLvinQ062794@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 26 Mar 2018 21:57:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331594 - head/cddl/contrib/opensolaris/lib/libctf/common X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/lib/libctf/common X-SVN-Commit-Revision: 331594 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 21:57:45 -0000 Author: cem Date: Mon Mar 26 21:57:44 2018 New Revision: 331594 URL: https://svnweb.freebsd.org/changeset/base/331594 Log: libctf: Appease Coverity overrun warnings Rather than zeroing and reading into the a smaller union member the full union size, just zero and read directly into the union. No functional change intended. Reported by: Coverity Sponsored by: Dell EMC Isilon Modified: head/cddl/contrib/opensolaris/lib/libctf/common/ctf_lib.c Modified: head/cddl/contrib/opensolaris/lib/libctf/common/ctf_lib.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libctf/common/ctf_lib.c Mon Mar 26 21:14:20 2018 (r331593) +++ head/cddl/contrib/opensolaris/lib/libctf/common/ctf_lib.c Mon Mar 26 21:57:44 2018 (r331594) @@ -230,12 +230,12 @@ ctf_fdopen(int fd, int *errp) bzero(&ctfsect, sizeof (ctf_sect_t)); bzero(&symsect, sizeof (ctf_sect_t)); bzero(&strsect, sizeof (ctf_sect_t)); - bzero(&hdr.ctf, sizeof (hdr)); + bzero(&hdr, sizeof (hdr)); if (fstat64(fd, &st) == -1) return (ctf_set_open_errno(errp, errno)); - if ((nbytes = pread64(fd, &hdr.ctf, sizeof (hdr), 0)) <= 0) + if ((nbytes = pread64(fd, &hdr, sizeof (hdr), 0)) <= 0) return (ctf_set_open_errno(errp, nbytes < 0? errno : ECTF_FMT)); /* From owner-svn-src-all@freebsd.org Mon Mar 26 22:02:37 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 259E2F6F567; Mon, 26 Mar 2018 22:02:37 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7659776C96; Mon, 26 Mar 2018 22:02:36 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7155812DF3; Mon, 26 Mar 2018 22:02:36 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QM2ae6067800; Mon, 26 Mar 2018 22:02:36 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QM2aJh067799; Mon, 26 Mar 2018 22:02:36 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201803262202.w2QM2aJh067799@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 26 Mar 2018 22:02:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331595 - head/cddl/contrib/opensolaris/common/ctf X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/common/ctf X-SVN-Commit-Revision: 331595 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 22:02:37 -0000 Author: cem Date: Mon Mar 26 22:02:36 2018 New Revision: 331595 URL: https://svnweb.freebsd.org/changeset/base/331595 Log: libctf: Don't construct pointers to out of bounds array offsets Just attempting to do the pointer arithmetic is undefined behavior. No functional change intended. Reported by: Coverity Sponsored by: Dell EMC Isilon Modified: head/cddl/contrib/opensolaris/common/ctf/ctf_lookup.c Modified: head/cddl/contrib/opensolaris/common/ctf/ctf_lookup.c ============================================================================== --- head/cddl/contrib/opensolaris/common/ctf/ctf_lookup.c Mon Mar 26 21:57:44 2018 (r331594) +++ head/cddl/contrib/opensolaris/common/ctf/ctf_lookup.c Mon Mar 26 22:02:36 2018 (r331595) @@ -59,10 +59,12 @@ isqualifier(const char *s, size_t len) }; int h = s[len - 1] + (int)len - 105; - const struct qual *qp = &qhash[h]; + const struct qual *qp; - return (h >= 0 && h < sizeof (qhash) / sizeof (qhash[0]) && - len == qp->q_len && strncmp(qp->q_name, s, qp->q_len) == 0); + if (h < 0 || h >= sizeof (qhash) / sizeof (qhash[0])) + return (0); + qp = &qhash[h]; + return (len == qp->q_len && strncmp(qp->q_name, s, qp->q_len) == 0); } /* From owner-svn-src-all@freebsd.org Mon Mar 26 22:04:57 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 202F7F6F816; Mon, 26 Mar 2018 22:04:57 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 88A8076EC2; Mon, 26 Mar 2018 22:04:56 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) by mail.baldwin.cx (Postfix) with ESMTPSA id BAAB310A8BA; Mon, 26 Mar 2018 18:04:55 -0400 (EDT) From: John Baldwin To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r331591 - stable/11/sys/dev/mlx5/mlx5_core Date: Mon, 26 Mar 2018 15:04:49 -0700 Message-ID: <8910480.84UKvZQndd@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: <201803262106.w2QL6Ngg037236@repo.freebsd.org> References: <201803262106.w2QL6Ngg037236@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Mon, 26 Mar 2018 18:04:55 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 22:04:57 -0000 On Monday, March 26, 2018 09:06:23 PM Hans Petter Selasky wrote: > Author: hselasky > Date: Mon Mar 26 21:06:23 2018 > New Revision: 331591 > URL: https://svnweb.freebsd.org/changeset/base/331591 > > Log: > MFC r330660: > Add call to setup firmware data dump structure during device load in > mlx5core. > > Do not consider the inability to create a firmware dump fatal, but > inform about the situation and allow the driver to attach. The device > might not implement the needed VSC, or we might not know the layout of > the registers map. In either case, only firmware dump functionality is > limited, the network operations should be fine. > > Submitted by: kib@ > Sponsored by: Mellanox Technologies Please batch up MFC commits at least enough to ensure they compile. We really should not be breaking the build on stable branches. If you are merging a commit that required followup fixes in head, the MFC needs to include those followup fixes. I'm getting this failure on a tree at this revision: /usr/src/usr.sbin/mlx5tool/mlx5tool.c:31:10: fatal error: 'dev/mlx5/mlx5io.h' file not found #include ^~~~~~~~~~~~~~~~~~~ 1 error generated. --- mlx5tool.o --- *** [mlx5tool.o] Error code 1 See also: https://ci.freebsd.org/job/FreeBSD-stable-11-amd64-build/2930/console -- John Baldwin From owner-svn-src-all@freebsd.org Mon Mar 26 22:10:21 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 84691F6FE16; Mon, 26 Mar 2018 22:10:21 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F251977272; Mon, 26 Mar 2018 22:10:20 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ED44312DF8; Mon, 26 Mar 2018 22:10:20 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QMAK8M068145; Mon, 26 Mar 2018 22:10:20 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QMAK7c068144; Mon, 26 Mar 2018 22:10:20 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201803262210.w2QMAK7c068144@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 26 Mar 2018 22:10:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331596 - head/usr.sbin/wpa/wpa_supplicant X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/usr.sbin/wpa/wpa_supplicant X-SVN-Commit-Revision: 331596 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 22:10:21 -0000 Author: cem Date: Mon Mar 26 22:10:20 2018 New Revision: 331596 URL: https://svnweb.freebsd.org/changeset/base/331596 Log: wpa_supplicant.conf.5: Document minimal eduroam configuration PR: 226939 Submitted by: Mateusz Piotrowski (0mp@) Sponsored by: Dell EMC Isilon Modified: head/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 Modified: head/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 ============================================================================== --- head/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 Mon Mar 26 22:02:36 2018 (r331595) +++ head/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 Mon Mar 26 22:10:20 2018 (r331596) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 10, 2010 +.Dd March 26, 2018 .Dt WPA_SUPPLICANT.CONF 5 .Os .Sh NAME @@ -554,6 +554,21 @@ network={ wep_key0=42FEEDDEAFBABEDEAFBEEFAA55 # ASCII keys denoted with quotes. wep_key1="FreeBSDr0cks!" +} +.Ed +.Pp +Minimal eduroam configuration. +.Bd -literal +ctrl_interface=/var/run/wpa_supplicant +ctrl_interface_group=wheel +network={ + ssid="eduroam" + scan_ssid=1 + key_mgmt=WPA-EAP + eap=TTLS + identity="user@example.org" + password="foobar" + phase2="auth=MSCHAPV2" } .Ed .Sh SEE ALSO From owner-svn-src-all@freebsd.org Mon Mar 26 22:15:42 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF0F7F70583; Mon, 26 Mar 2018 22:15:42 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [IPv6:2a01:4f8:c17:6c4b::2]) (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 4F52877977; Mon, 26 Mar 2018 22:15:42 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.128.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id A84972602E6; Tue, 27 Mar 2018 00:15:40 +0200 (CEST) Subject: Re: svn commit: r331591 - stable/11/sys/dev/mlx5/mlx5_core To: John Baldwin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org References: <201803262106.w2QL6Ngg037236@repo.freebsd.org> <8910480.84UKvZQndd@ralph.baldwin.cx> From: Hans Petter Selasky Message-ID: <822e108c-160f-80b1-eedc-d5221f0b300d@selasky.org> Date: Tue, 27 Mar 2018 00:15:33 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <8910480.84UKvZQndd@ralph.baldwin.cx> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 22:15:42 -0000 On 03/27/18 00:04, John Baldwin wrote: > On Monday, March 26, 2018 09:06:23 PM Hans Petter Selasky wrote: >> Author: hselasky >> Date: Mon Mar 26 21:06:23 2018 >> New Revision: 331591 >> URL: https://svnweb.freebsd.org/changeset/base/331591 >> >> Log: >> MFC r330660: >> Add call to setup firmware data dump structure during device load in >> mlx5core. >> >> Do not consider the inability to create a firmware dump fatal, but >> inform about the situation and allow the driver to attach. The device >> might not implement the needed VSC, or we might not know the layout of >> the registers map. In either case, only firmware dump functionality is >> limited, the network operations should be fine. >> >> Submitted by: kib@ >> Sponsored by: Mellanox Technologies > > Please batch up MFC commits at least enough to ensure they compile. We > really should not be breaking the build on stable branches. If you are > merging a commit that required followup fixes in head, the MFC needs to > include those followup fixes. > > I'm getting this failure on a tree at this revision: > > /usr/src/usr.sbin/mlx5tool/mlx5tool.c:31:10: fatal error: 'dev/mlx5/mlx5io.h' file not found > #include > ^~~~~~~~~~~~~~~~~~~ > 1 error generated. > --- mlx5tool.o --- > *** [mlx5tool.o] Error code 1 > Hi, All the bits and pieces needed are part of: https://svnweb.freebsd.org/changeset/base/331586 I'll dig into it. > See also: > > https://ci.freebsd.org/job/FreeBSD-stable-11-amd64-build/2930/console > --HPS From owner-svn-src-all@freebsd.org Mon Mar 26 22:28:58 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06746F7166D; Mon, 26 Mar 2018 22:28:58 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A9F0C78567; Mon, 26 Mar 2018 22:28:57 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) by mail.baldwin.cx (Postfix) with ESMTPSA id D331A10A87D; Mon, 26 Mar 2018 18:28:56 -0400 (EDT) From: John Baldwin To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r331591 - stable/11/sys/dev/mlx5/mlx5_core Date: Mon, 26 Mar 2018 15:28:48 -0700 Message-ID: <8157345.u3tjflj27M@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: <822e108c-160f-80b1-eedc-d5221f0b300d@selasky.org> References: <201803262106.w2QL6Ngg037236@repo.freebsd.org> <8910480.84UKvZQndd@ralph.baldwin.cx> <822e108c-160f-80b1-eedc-d5221f0b300d@selasky.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Mon, 26 Mar 2018 18:28:56 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 22:28:58 -0000 On Tuesday, March 27, 2018 12:15:33 AM Hans Petter Selasky wrote: > On 03/27/18 00:04, John Baldwin wrote: > > On Monday, March 26, 2018 09:06:23 PM Hans Petter Selasky wrote: > >> Author: hselasky > >> Date: Mon Mar 26 21:06:23 2018 > >> New Revision: 331591 > >> URL: https://svnweb.freebsd.org/changeset/base/331591 > >> > >> Log: > >> MFC r330660: > >> Add call to setup firmware data dump structure during device load in > >> mlx5core. > >> > >> Do not consider the inability to create a firmware dump fatal, but > >> inform about the situation and allow the driver to attach. The device > >> might not implement the needed VSC, or we might not know the layout of > >> the registers map. In either case, only firmware dump functionality is > >> limited, the network operations should be fine. > >> > >> Submitted by: kib@ > >> Sponsored by: Mellanox Technologies > > > > Please batch up MFC commits at least enough to ensure they compile. We > > really should not be breaking the build on stable branches. If you are > > merging a commit that required followup fixes in head, the MFC needs to > > include those followup fixes. > > > > I'm getting this failure on a tree at this revision: > > > > /usr/src/usr.sbin/mlx5tool/mlx5tool.c:31:10: fatal error: 'dev/mlx5/mlx5io.h' file not found > > #include > > ^~~~~~~~~~~~~~~~~~~ > > 1 error generated. > > --- mlx5tool.o --- > > *** [mlx5tool.o] Error code 1 > > > > Hi, > > All the bits and pieces needed are part of: > > https://svnweb.freebsd.org/changeset/base/331586 > > I'll dig into it. I'm testing this now: Index: include/Makefile =================================================================== --- include/Makefile (revision 331591) +++ include/Makefile (working copy) @@ -254,7 +254,7 @@ ${DESTDIR}${INCLUDEDIR}/sys .endif .if ${MK_MLX5TOOL} != "no" - cd ${SRCTOP}/sys/dev/mlx5; \ + cd ${.CURDIR}/../sys/dev/mlx5; \ ${INSTALL} -C ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 444 mlx5io.h \ ${SDESTDIR}${INCLUDEDIR}/dev/mlx5 .endif However, you should at least do an amd64 buildworld/buildkernel on each MFC commit (I have bhyve VMs for amd64 and i386 on my desktop for testing MFCs). -- John Baldwin From owner-svn-src-all@freebsd.org Mon Mar 26 22:30:18 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DDAFFF718BD; Mon, 26 Mar 2018 22:30:18 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3FDFD78789; Mon, 26 Mar 2018 22:30:18 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3657F13119; Mon, 26 Mar 2018 22:30:18 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QMUIl1078289; Mon, 26 Mar 2018 22:30:18 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QMUIls078288; Mon, 26 Mar 2018 22:30:18 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201803262230.w2QMUIls078288@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 26 Mar 2018 22:30:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331597 - head/tools/tools/crypto X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/tools/tools/crypto X-SVN-Commit-Revision: 331597 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 22:30:19 -0000 Author: jhb Date: Mon Mar 26 22:30:17 2018 New Revision: 331597 URL: https://svnweb.freebsd.org/changeset/base/331597 Log: Update the license to note my work on cryptocheck was sponsored. Sponsored by: Chelsio Communications Modified: head/tools/tools/crypto/cryptocheck.c Modified: head/tools/tools/crypto/cryptocheck.c ============================================================================== --- head/tools/tools/crypto/cryptocheck.c Mon Mar 26 22:10:20 2018 (r331596) +++ head/tools/tools/crypto/cryptocheck.c Mon Mar 26 22:30:17 2018 (r331597) @@ -1,5 +1,30 @@ /*- - * Copyright (c) 2017 John Baldwin, + * Copyright (c) 2017 Chelsio Communications, Inc. + * All rights reserved. + * Written by: John Baldwin + * + * 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. + */ +/*- * Copyright (c) 2004 Sam Leffler, Errno Consulting * All rights reserved. * From owner-svn-src-all@freebsd.org Mon Mar 26 22:31:30 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6F9BCF71BBE; Mon, 26 Mar 2018 22:31:30 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 257BA78A77; Mon, 26 Mar 2018 22:31:30 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 204691315F; Mon, 26 Mar 2018 22:31:30 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QMVTnl078372; Mon, 26 Mar 2018 22:31:29 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QMVTt7078370; Mon, 26 Mar 2018 22:31:29 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201803262231.w2QMVTt7078370@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 26 Mar 2018 22:31:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331598 - head/sys/opencrypto X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/opencrypto X-SVN-Commit-Revision: 331598 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 22:31:30 -0000 Author: cem Date: Mon Mar 26 22:31:29 2018 New Revision: 331598 URL: https://svnweb.freebsd.org/changeset/base/331598 Log: OCF: CRYPTDEB(): Enhance to allow formatted logging Sponsored by: Dell EMC Isilon Modified: head/sys/opencrypto/crypto.c head/sys/opencrypto/cryptodev.h Modified: head/sys/opencrypto/crypto.c ============================================================================== --- head/sys/opencrypto/crypto.c Mon Mar 26 22:30:17 2018 (r331597) +++ head/sys/opencrypto/crypto.c Mon Mar 26 22:31:29 2018 (r331598) @@ -525,7 +525,7 @@ crypto_newsession(u_int64_t *sid, struct cryptoini *cr (*sid) |= (lid & 0xffffffff); cap->cc_sessions++; } else - CRYPTDEB("dev newsession failed"); + CRYPTDEB("dev newsession failed: %d", err); } else { CRYPTDEB("no driver"); err = EOPNOTSUPP; Modified: head/sys/opencrypto/cryptodev.h ============================================================================== --- head/sys/opencrypto/cryptodev.h Mon Mar 26 22:30:17 2018 (r331597) +++ head/sys/opencrypto/cryptodev.h Mon Mar 26 22:31:29 2018 (r331598) @@ -348,10 +348,11 @@ struct cryptostats { #ifdef _KERNEL #if 0 -#define CRYPTDEB(s) do { printf("%s:%d: %s\n", __FILE__, __LINE__, s); \ - } while (0) +#define CRYPTDEB(s, ...) do { \ + printf("%s:%d: " s "\n", __FILE__, __LINE__, ## __VA_ARGS__); \ +} while (0) #else -#define CRYPTDEB(s) do { } while (0) +#define CRYPTDEB(...) do { } while (0) #endif /* Standard initialization structure beginning */ From owner-svn-src-all@freebsd.org Mon Mar 26 23:20:39 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E61D6F51468; Mon, 26 Mar 2018 23:20:38 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 59B337C39E; Mon, 26 Mar 2018 23:20:38 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 54A5813966; Mon, 26 Mar 2018 23:20:38 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QNKcvs003775; Mon, 26 Mar 2018 23:20:38 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QNKc2R003774; Mon, 26 Mar 2018 23:20:38 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201803262320.w2QNKc2R003774@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 26 Mar 2018 23:20:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331600 - head/cddl/contrib/opensolaris/tools/ctf/cvt X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/tools/ctf/cvt X-SVN-Commit-Revision: 331600 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 23:20:39 -0000 Author: cem Date: Mon Mar 26 23:20:37 2018 New Revision: 331600 URL: https://svnweb.freebsd.org/changeset/base/331600 Log: ctfconvert/ctfmerge: Fix a memory leak enumerating DWARF files Reported by: Coverity Sponsored by: Dell EMC Isilon Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c ============================================================================== --- head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c Mon Mar 26 22:39:48 2018 (r331599) +++ head/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c Mon Mar 26 23:20:37 2018 (r331600) @@ -1613,6 +1613,7 @@ die_function_create(dwarf_t *dw, Dwarf_Die die, Dwarf_ ii->ii_vargs = 1; continue; } + free(name1); ii->ii_nargs++; } From owner-svn-src-all@freebsd.org Mon Mar 26 23:23:12 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6124FF519AE; Mon, 26 Mar 2018 23:23:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 131277C7D6; Mon, 26 Mar 2018 23:23:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0DFEF13AF5; Mon, 26 Mar 2018 23:23:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QNNBOO008583; Mon, 26 Mar 2018 23:23:11 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QNNBlJ008582; Mon, 26 Mar 2018 23:23:11 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201803262323.w2QNNBlJ008582@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 26 Mar 2018 23:23:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r331601 - stable/11/include X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/include X-SVN-Commit-Revision: 331601 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 23:23:12 -0000 Author: hselasky Date: Mon Mar 26 23:23:11 2018 New Revision: 331601 URL: https://svnweb.freebsd.org/changeset/base/331601 Log: Fix buildworld after r331586 by adapting the installation of dev/mlx5/mlx5io.h to the build system in FreeBSD 11-stable. This is a direct commit. Found by: jhb@ Pointy hat: hselasky@ Sponsored by: Mellanox Technologies Modified: stable/11/include/Makefile Modified: stable/11/include/Makefile ============================================================================== --- stable/11/include/Makefile Mon Mar 26 23:20:37 2018 (r331600) +++ stable/11/include/Makefile Mon Mar 26 23:23:11 2018 (r331601) @@ -254,9 +254,9 @@ copies: .PHONY .META ${DESTDIR}${INCLUDEDIR}/sys .endif .if ${MK_MLX5TOOL} != "no" - cd ${SRCTOP}/sys/dev/mlx5; \ + cd ${.CURDIR}/../sys/dev/mlx5; \ ${INSTALL} -C ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m 444 mlx5io.h \ - ${SDESTDIR}${INCLUDEDIR}/dev/mlx5 + ${DESTDIR}${INCLUDEDIR}/dev/mlx5 .endif symlinks: .PHONY .META @@ -389,7 +389,7 @@ symlinks: .PHONY .META done .if ${MK_MLX5TOOL} != "no" ${INSTALL_SYMLINK} ${TAG_ARGS} ../../../../sys/dev/mlx5/mlx5io.h \ - ${SDESTDIR}${INCLUDEDIR}/dev/mlx5 + ${DESTDIR}${INCLUDEDIR}/dev/mlx5 .endif .include From owner-svn-src-all@freebsd.org Mon Mar 26 23:28:57 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 18646F52043; Mon, 26 Mar 2018 23:28:57 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [88.99.82.50]) (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 A38777CAE1; Mon, 26 Mar 2018 23:28:56 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.128.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id DC3E92602E6; Tue, 27 Mar 2018 01:28:48 +0200 (CEST) Subject: Re: svn commit: r331591 - stable/11/sys/dev/mlx5/mlx5_core From: Hans Petter Selasky To: John Baldwin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org References: <201803262106.w2QL6Ngg037236@repo.freebsd.org> <8910480.84UKvZQndd@ralph.baldwin.cx> <822e108c-160f-80b1-eedc-d5221f0b300d@selasky.org> Message-ID: <068bffec-b1fe-0c07-1853-88a07b029931@selasky.org> Date: Tue, 27 Mar 2018 01:28:41 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <822e108c-160f-80b1-eedc-d5221f0b300d@selasky.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 23:28:57 -0000 On 03/27/18 00:15, Hans Petter Selasky wrote: > On 03/27/18 00:04, John Baldwin wrote: >> On Monday, March 26, 2018 09:06:23 PM Hans Petter Selasky wrote: >>> Author: hselasky >>> Date: Mon Mar 26 21:06:23 2018 >>> New Revision: 331591 >>> URL: https://svnweb.freebsd.org/changeset/base/331591 >>> >>> Log: >>>    MFC r330660: >>>    Add call to setup firmware data dump structure during device load in >>>    mlx5core. >>>    Do not consider the inability to create a firmware dump fatal, but >>>    inform about the situation and allow the driver to attach. The device >>>    might not implement the needed VSC, or we might not know the >>> layout of >>>    the registers map. In either case, only firmware dump >>> functionality is >>>    limited, the network operations should be fine. >>>    Submitted by:    kib@ >>>    Sponsored by:    Mellanox Technologies >> >> Please batch up MFC commits at least enough to ensure they compile.  We >> really should not be breaking the build on stable branches.  If you are >> merging a commit that required followup fixes in head, the MFC needs to >> include those followup fixes. >> >> I'm getting this failure on a tree at this revision: >> >> /usr/src/usr.sbin/mlx5tool/mlx5tool.c:31:10: fatal error: >> 'dev/mlx5/mlx5io.h' file not found >> #include >>           ^~~~~~~~~~~~~~~~~~~ >> 1 error generated. >> --- mlx5tool.o --- >> *** [mlx5tool.o] Error code 1 >> > > Hi, > > All the bits and pieces needed are part of: > > https://svnweb.freebsd.org/changeset/base/331586 > > I'll dig into it. > >> See also: >> >> https://ci.freebsd.org/job/FreeBSD-stable-11-amd64-build/2930/console >> Hi, 11-stable amd64 buildworld should be back to normal as of: https://svnweb.freebsd.org/changeset/base/331601 Tested both buildworld and installworld. It might have been that the mlx5io.h header file was already installed locally on my build box. --HPS From owner-svn-src-all@freebsd.org Mon Mar 26 23:32:51 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 34A42F526E6; Mon, 26 Mar 2018 23:32:51 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DFF347D102; Mon, 26 Mar 2018 23:32:50 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) by mail.baldwin.cx (Postfix) with ESMTPSA id A1A5410A7DB; Mon, 26 Mar 2018 19:32:49 -0400 (EDT) From: John Baldwin To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r331601 - stable/11/include Date: Mon, 26 Mar 2018 16:32:46 -0700 Message-ID: <5002957.SZHSDDv6m3@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: <201803262323.w2QNNBlJ008582@repo.freebsd.org> References: <201803262323.w2QNNBlJ008582@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Mon, 26 Mar 2018 19:32:49 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 23:32:51 -0000 On Monday, March 26, 2018 11:23:11 PM Hans Petter Selasky wrote: > Author: hselasky > Date: Mon Mar 26 23:23:11 2018 > New Revision: 331601 > URL: https://svnweb.freebsd.org/changeset/base/331601 > > Log: > Fix buildworld after r331586 by adapting the installation of > dev/mlx5/mlx5io.h to the build system in FreeBSD 11-stable. > > This is a direct commit. Thanks! -- John Baldwin From owner-svn-src-all@freebsd.org Mon Mar 26 23:55:02 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CD4C2F54108; Mon, 26 Mar 2018 23:55:01 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7F2B87DF11; Mon, 26 Mar 2018 23:55:01 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5C27013FDE; Mon, 26 Mar 2018 23:55:01 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2QNt1PU023682; Mon, 26 Mar 2018 23:55:01 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2QNt00j023669; Mon, 26 Mar 2018 23:55:00 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201803262355.w2QNt00j023669@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 26 Mar 2018 23:55:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r331602 - in head/sys/contrib/zstd: . contrib/gen_html contrib/meson contrib/seekable_format doc doc/images lib lib/common lib/compress lib/decompress lib/dictBuilder lib/legacy program... X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: in head/sys/contrib/zstd: . contrib/gen_html contrib/meson contrib/seekable_format doc doc/images lib lib/common lib/compress lib/decompress lib/dictBuilder lib/legacy programs tests tests/fuzz zlibWr... X-SVN-Commit-Revision: 331602 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2018 23:55:02 -0000 Author: cem Date: Mon Mar 26 23:54:59 2018 New Revision: 331602 URL: https://svnweb.freebsd.org/changeset/base/331602 Log: Update to Zstandard 1.3.4 Includes our local patch to conditionalize use of __builtin_clz(ll) on Clang's __has_builtin() (which is just defined to false when building with GCC). The issue is tracked upstream at https://github.com/facebook/zstd/pull/884 . Otherwise, these are vanilla Zstandard 1.3.4 files. Reported by: allanjude, Yann Collet Sponsored by: Dell EMC Isilon Added: head/sys/contrib/zstd/doc/images/CSpeed2.png (contents, props changed) head/sys/contrib/zstd/doc/images/DSpeed3.png (contents, props changed) head/sys/contrib/zstd/lib/common/cpu.h (contents, props changed) head/sys/contrib/zstd/tests/checkTag.c (contents, props changed) Deleted: head/sys/contrib/zstd/doc/images/Cspeed4.png head/sys/contrib/zstd/doc/images/Dspeed4.png Modified: head/sys/contrib/zstd/Makefile head/sys/contrib/zstd/NEWS head/sys/contrib/zstd/README.md head/sys/contrib/zstd/appveyor.yml head/sys/contrib/zstd/contrib/gen_html/Makefile head/sys/contrib/zstd/contrib/meson/meson.build head/sys/contrib/zstd/contrib/meson/meson_options.txt head/sys/contrib/zstd/contrib/seekable_format/zstdseek_compress.c head/sys/contrib/zstd/contrib/seekable_format/zstdseek_decompress.c head/sys/contrib/zstd/doc/README.md head/sys/contrib/zstd/doc/images/dict-cr.png head/sys/contrib/zstd/doc/images/dict-cs.png head/sys/contrib/zstd/doc/images/dict-ds.png head/sys/contrib/zstd/doc/zstd_compression_format.md head/sys/contrib/zstd/doc/zstd_manual.html head/sys/contrib/zstd/lib/BUCK head/sys/contrib/zstd/lib/README.md head/sys/contrib/zstd/lib/common/bitstream.h head/sys/contrib/zstd/lib/common/compiler.h head/sys/contrib/zstd/lib/common/error_private.c head/sys/contrib/zstd/lib/common/fse.h head/sys/contrib/zstd/lib/common/fse_decompress.c head/sys/contrib/zstd/lib/common/huf.h head/sys/contrib/zstd/lib/common/pool.c head/sys/contrib/zstd/lib/common/pool.h head/sys/contrib/zstd/lib/common/threading.h head/sys/contrib/zstd/lib/common/zstd_errors.h head/sys/contrib/zstd/lib/common/zstd_internal.h head/sys/contrib/zstd/lib/compress/fse_compress.c head/sys/contrib/zstd/lib/compress/huf_compress.c head/sys/contrib/zstd/lib/compress/zstd_compress.c head/sys/contrib/zstd/lib/compress/zstd_compress_internal.h head/sys/contrib/zstd/lib/compress/zstd_double_fast.c head/sys/contrib/zstd/lib/compress/zstd_double_fast.h head/sys/contrib/zstd/lib/compress/zstd_fast.c head/sys/contrib/zstd/lib/compress/zstd_fast.h head/sys/contrib/zstd/lib/compress/zstd_lazy.c head/sys/contrib/zstd/lib/compress/zstd_lazy.h head/sys/contrib/zstd/lib/compress/zstd_ldm.c head/sys/contrib/zstd/lib/compress/zstd_ldm.h head/sys/contrib/zstd/lib/compress/zstd_opt.c head/sys/contrib/zstd/lib/compress/zstd_opt.h head/sys/contrib/zstd/lib/compress/zstdmt_compress.c head/sys/contrib/zstd/lib/compress/zstdmt_compress.h head/sys/contrib/zstd/lib/decompress/huf_decompress.c head/sys/contrib/zstd/lib/decompress/zstd_decompress.c head/sys/contrib/zstd/lib/dictBuilder/cover.c head/sys/contrib/zstd/lib/dictBuilder/zdict.c head/sys/contrib/zstd/lib/dictBuilder/zdict.h head/sys/contrib/zstd/lib/legacy/zstd_legacy.h head/sys/contrib/zstd/lib/legacy/zstd_v04.c head/sys/contrib/zstd/lib/legacy/zstd_v06.c head/sys/contrib/zstd/lib/legacy/zstd_v07.c head/sys/contrib/zstd/lib/zstd.h head/sys/contrib/zstd/programs/Makefile head/sys/contrib/zstd/programs/README.md head/sys/contrib/zstd/programs/bench.c head/sys/contrib/zstd/programs/bench.h head/sys/contrib/zstd/programs/fileio.c head/sys/contrib/zstd/programs/fileio.h head/sys/contrib/zstd/programs/platform.h head/sys/contrib/zstd/programs/util.h head/sys/contrib/zstd/programs/zstd.1 head/sys/contrib/zstd/programs/zstd.1.md head/sys/contrib/zstd/programs/zstdcli.c head/sys/contrib/zstd/tests/.gitignore head/sys/contrib/zstd/tests/Makefile head/sys/contrib/zstd/tests/fullbench.c head/sys/contrib/zstd/tests/fuzz/zstd_helpers.c head/sys/contrib/zstd/tests/fuzzer.c head/sys/contrib/zstd/tests/legacy.c head/sys/contrib/zstd/tests/paramgrill.c head/sys/contrib/zstd/tests/playTests.sh head/sys/contrib/zstd/tests/roundTripCrash.c head/sys/contrib/zstd/tests/zstreamtest.c head/sys/contrib/zstd/zlibWrapper/examples/zwrapbench.c Modified: head/sys/contrib/zstd/Makefile ============================================================================== --- head/sys/contrib/zstd/Makefile Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/Makefile Mon Mar 26 23:54:59 2018 (r331602) @@ -27,7 +27,7 @@ endif default: lib-release zstd-release .PHONY: all -all: | allmost examples manual +all: | allmost examples manual contrib .PHONY: allmost allmost: allzstd @@ -72,14 +72,18 @@ zstdmt: zlibwrapper: $(MAKE) -C $(ZWRAPDIR) test -.PHONY: check -check: shortest +.PHONY: test +test: + $(MAKE) -C $(PRGDIR) allVariants MOREFLAGS+="-g -DZSTD_DEBUG=1" + $(MAKE) -C $(TESTDIR) $@ -.PHONY: test shortest -test shortest: - $(MAKE) -C $(PRGDIR) allVariants MOREFLAGS="-g -DZSTD_DEBUG=1" +.PHONY: shortest +shortest: $(MAKE) -C $(TESTDIR) $@ +.PHONY: check +check: shortest + .PHONY: examples examples: CPPFLAGS=-I../lib LDFLAGS=-L../lib $(MAKE) -C examples/ all @@ -88,6 +92,12 @@ examples: manual: $(MAKE) -C contrib/gen_html $@ +.PHONY: contrib +contrib: lib + $(MAKE) -C contrib/pzstd all + $(MAKE) -C contrib/seekable_format/examples all + $(MAKE) -C contrib/adaptive-compression all + .PHONY: cleanTabs cleanTabs: cd contrib; ./cleanTabs @@ -100,6 +110,9 @@ clean: @$(MAKE) -C $(ZWRAPDIR) $@ > $(VOID) @$(MAKE) -C examples/ $@ > $(VOID) @$(MAKE) -C contrib/gen_html $@ > $(VOID) + @$(MAKE) -C contrib/pzstd $@ > $(VOID) + @$(MAKE) -C contrib/seekable_format/examples $@ > $(VOID) + @$(MAKE) -C contrib/adaptive-compression $@ > $(VOID) @$(RM) zstd$(EXT) zstdmt$(EXT) tmp* @$(RM) -r lz4 @echo Cleaning completed @@ -231,31 +244,31 @@ msanregressiontest: # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63303 usan: clean - $(MAKE) test CC=clang MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=signed-integer-overflow -fsanitize=undefined" + $(MAKE) test CC=clang MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=signed-integer-overflow -fsanitize=undefined -Werror" asan: clean - $(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=address" + $(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=address -Werror" asan-%: clean - LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=address" $(MAKE) -C $(TESTDIR) $* + LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=address -Werror" $(MAKE) -C $(TESTDIR) $* msan: clean - $(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=memory -fno-omit-frame-pointer" HAVE_LZMA=0 # datagen.c fails this test for no obvious reason + $(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=memory -fno-omit-frame-pointer -Werror" HAVE_LZMA=0 # datagen.c fails this test for no obvious reason msan-%: clean - LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=memory -fno-omit-frame-pointer" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) HAVE_LZMA=0 $* + LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=memory -fno-omit-frame-pointer -Werror" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) HAVE_LZMA=0 $* asan32: clean $(MAKE) -C $(TESTDIR) test32 CC=clang MOREFLAGS="-g -fsanitize=address" uasan: clean - $(MAKE) test CC=clang MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=signed-integer-overflow -fsanitize=address,undefined" + $(MAKE) test CC=clang MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=signed-integer-overflow -fsanitize=address,undefined -Werror" uasan-%: clean - LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=signed-integer-overflow -fsanitize=address,undefined" $(MAKE) -C $(TESTDIR) $* + LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=signed-integer-overflow -fsanitize=address,undefined -Werror" $(MAKE) -C $(TESTDIR) $* tsan-%: clean - LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=thread" $(MAKE) -C $(TESTDIR) $* FUZZER_FLAGS=--no-big-tests + LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=thread -Werror" $(MAKE) -C $(TESTDIR) $* FUZZER_FLAGS=--no-big-tests apt-install: sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install $(APT_PACKAGES) @@ -278,6 +291,9 @@ libc6install: gcc6install: apt-add-repo APT_PACKAGES="libc6-dev-i386 gcc-multilib gcc-6 gcc-6-multilib" $(MAKE) apt-install + +gcc7install: apt-add-repo + APT_PACKAGES="libc6-dev-i386 gcc-multilib gcc-7 gcc-7-multilib" $(MAKE) apt-install gpp6install: apt-add-repo APT_PACKAGES="libc6-dev-i386 g++-multilib gcc-6 g++-6 g++-6-multilib" $(MAKE) apt-install Modified: head/sys/contrib/zstd/NEWS ============================================================================== --- head/sys/contrib/zstd/NEWS Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/NEWS Mon Mar 26 23:54:59 2018 (r331602) @@ -1,5 +1,23 @@ +v1.3.4 +perf: faster speed (especially decoding speed) on recent cpus (haswell+) +perf: much better performance associating --long with multi-threading, by @terrelln +perf: better compression at levels 13-15 +cli : asynchronous compression by default, for faster experience (use --single-thread for former behavior) +cli : smoother status report in multi-threading mode +cli : added command --fast=#, for faster compression modes +cli : fix crash when not overwriting existing files, by Pádraig Brady (@pixelb) +api : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode +api : compression levels can be negative, for even more speed +api : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime +api : ZSTDMT can accept new compression parameters during compression +api : implemented all advanced dictionary decompression prototypes +build: improved meson recipe, by Shawn Landden (@shawnl) +build: VS2017 scripts, by @HaydnTrigg +misc: all /contrib projects fixed +misc: added /contrib/docker script by @gyscos + v1.3.3 -perf: faster zstd_opt strategy (levels 17-19) +perf: faster zstd_opt strategy (levels 16-19) fix : bug #944 : multithreading with shared ditionary and large data, reported by @gsliepen cli : fix : content size written in header by default cli : fix : improved LZ4 format support, by @felixhandte Modified: head/sys/contrib/zstd/README.md ============================================================================== --- head/sys/contrib/zstd/README.md Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/README.md Mon Mar 26 23:54:59 2018 (r331602) @@ -1,4 +1,4 @@ -

Zstandard

+

Zstandard

__Zstandard__, or `zstd` as short version, is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level and better compression ratios. @@ -21,24 +21,25 @@ Development branch status : [![Build Status][travisDev ### Benchmarks For reference, several fast compression algorithms were tested and compared -on a server running Linux Debian (`Linux version 4.8.0-1-amd64`), +on a server running Linux Debian (`Linux version 4.14.0-3-amd64`), with a Core i7-6700K CPU @ 4.0GHz, using [lzbench], an open-source in-memory benchmark by @inikep -compiled with GCC 6.3.0, +compiled with [gcc] 7.3.0, on the [Silesia compression corpus]. [lzbench]: https://github.com/inikep/lzbench [Silesia compression corpus]: http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia +[gcc]: https://gcc.gnu.org/ | Compressor name | Ratio | Compression| Decompress.| | --------------- | ------| -----------| ---------- | -| **zstd 1.1.3 -1** | 2.877 | 430 MB/s | 1110 MB/s | -| zlib 1.2.8 -1 | 2.743 | 110 MB/s | 400 MB/s | -| brotli 0.5.2 -0 | 2.708 | 400 MB/s | 430 MB/s | +| **zstd 1.3.4 -1** | 2.877 | 470 MB/s | 1380 MB/s | +| zlib 1.2.11 -1 | 2.743 | 110 MB/s | 400 MB/s | +| brotli 1.0.2 -0 | 2.701 | 410 MB/s | 430 MB/s | | quicklz 1.5.0 -1 | 2.238 | 550 MB/s | 710 MB/s | | lzo1x 2.09 -1 | 2.108 | 650 MB/s | 830 MB/s | -| lz4 1.7.5 | 2.101 | 720 MB/s | 3600 MB/s | -| snappy 1.1.3 | 2.091 | 500 MB/s | 1650 MB/s | +| lz4 1.8.1 | 2.101 | 750 MB/s | 3700 MB/s | +| snappy 1.1.4 | 2.091 | 530 MB/s | 1800 MB/s | | lzf 3.6 -1 | 2.077 | 400 MB/s | 860 MB/s | [zlib]:http://www.zlib.net/ @@ -50,15 +51,15 @@ Decompression speed is preserved and remains roughly t a property shared by most LZ compression algorithms, such as [zlib] or lzma. The following tests were run -on a server running Linux Debian (`Linux version 4.8.0-1-amd64`) +on a server running Linux Debian (`Linux version 4.14.0-3-amd64`) with a Core i7-6700K CPU @ 4.0GHz, using [lzbench], an open-source in-memory benchmark by @inikep -compiled with GCC 6.3.0, +compiled with [gcc] 7.3.0, on the [Silesia compression corpus]. Compression Speed vs Ratio | Decompression Speed ---------------------------|-------------------- -![Compression Speed vs Ratio](doc/images/Cspeed4.png "Compression Speed vs Ratio") | ![Decompression Speed](doc/images/Dspeed4.png "Decompression Speed") +![Compression Speed vs Ratio](doc/images/CSpeed2.png "Compression Speed vs Ratio") | ![Decompression Speed](doc/images/DSpeed3.png "Decompression Speed") A few other algorithms can produce higher compression ratios at slower speeds, falling outside of the graph. For a larger picture including slow modes, [click on this link](doc/images/DCspeed5.png). @@ -128,8 +129,8 @@ A Meson project is provided within `contrib/meson`. Going into `build` directory, you will find additional possibilities: - Projects for Visual Studio 2005, 2008 and 2010. - + VS2010 project is compatible with VS2012, VS2013 and VS2015. -- Automated build scripts for Visual compiler by @KrzysFR , in `build/VS_scripts`, + + VS2010 project is compatible with VS2012, VS2013, VS2015 and VS2017. +- Automated build scripts for Visual compiler by [@KrzysFR](https://github.com/KrzysFR), in `build/VS_scripts`, which will build `zstd` cli and `libzstd` library without any need to open Visual Studio solution. Modified: head/sys/contrib/zstd/appveyor.yml ============================================================================== --- head/sys/contrib/zstd/appveyor.yml Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/appveyor.yml Mon Mar 26 23:54:59 2018 (r331602) @@ -2,14 +2,13 @@ version: 1.0.{build} branches: only: - - dev - master environment: matrix: - COMPILER: "gcc" HOST: "mingw" PLATFORM: "x64" - SCRIPT: "make allzstd MOREFLAGS=-static && make -C tests test-symbols fullbench-dll fullbench-lib" + SCRIPT: "make allzstd MOREFLAGS=-static && make -C tests test-symbols fullbench-lib" ARTIFACT: "true" BUILD: "true" - COMPILER: "gcc" @@ -80,12 +79,22 @@ SET "LDFLAGS=../../zlib/libz.a" && sh -c "%SCRIPT%" && ( if [%COMPILER%]==[gcc] if [%ARTIFACT%]==[true] + ECHO Creating artifacts && + ECHO %cd% && lib\dll\example\build_package.bat && make -C programs DEBUGFLAGS= clean zstd && cd programs\ && 7z a -tzip -mx9 zstd-win-binary-%PLATFORM%.zip zstd.exe && appveyor PushArtifact zstd-win-binary-%PLATFORM%.zip && cp zstd.exe ..\bin\zstd.exe && - cd ..\bin\ && 7z a -tzip -mx9 zstd-win-release-%PLATFORM%.zip * && + git clone --depth 1 --branch master https://github.com/facebook/zstd && + cd zstd && + git archive --format=tar master -o zstd-src.tar && + ..\zstd -19 zstd-src.tar && + appveyor PushArtifact zstd-src.tar.zst && + certUtil -hashfile zstd-src.tar.zst SHA256 > zstd-src.tar.zst.sha256.sig && + appveyor PushArtifact zstd-src.tar.zst.sha256.sig && + cd ..\..\bin\ && + 7z a -tzip -mx9 zstd-win-release-%PLATFORM%.zip * && appveyor PushArtifact zstd-win-release-%PLATFORM%.zip ) ) Modified: head/sys/contrib/zstd/contrib/gen_html/Makefile ============================================================================== --- head/sys/contrib/zstd/contrib/gen_html/Makefile Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/contrib/gen_html/Makefile Mon Mar 26 23:54:59 2018 (r331602) @@ -7,10 +7,10 @@ # in the COPYING file in the root directory of this source tree). # ################################################################ -CFLAGS ?= -O3 -CFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow -Wstrict-aliasing=1 -Wswitch-enum -Wno-comment -CFLAGS += $(MOREFLAGS) -FLAGS = $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) $(LDFLAGS) +CXXFLAGS ?= -O3 +CXXFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow -Wstrict-aliasing=1 -Wswitch-enum -Wno-comment +CXXFLAGS += $(MOREFLAGS) +FLAGS = $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) ZSTDAPI = ../../lib/zstd.h ZSTDMANUAL = ../../doc/zstd_manual.html Modified: head/sys/contrib/zstd/contrib/meson/meson.build ============================================================================== --- head/sys/contrib/zstd/contrib/meson/meson.build Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/contrib/meson/meson.build Mon Mar 26 23:54:59 2018 (r331602) @@ -38,21 +38,45 @@ libzstd_srcs = [ libzstd_includes = [include_directories(common_dir, dictbuilder_dir, compress_dir, lib_dir)] -if get_option('legacy_support') - message('Enabling legacy support') - libzstd_cflags = ['-DZSTD_LEGACY_SUPPORT=4'] +legacy = get_option('legacy_support') +if legacy == '0' + legacy = 'false' +endif +if legacy != 'false' + if legacy == 'true' + legacy = '1' + endif + #See ZSTD_LEGACY_SUPPORT of programs/README.md + message('Enabling legacy support back to version 0.' + legacy) + legacy_int = legacy.to_int() + if legacy_int > 7 + legacy_int = 7 + endif + libzstd_cflags = ['-DZSTD_LEGACY_SUPPORT=' + legacy] legacy_dir = join_paths(lib_dir, 'legacy') libzstd_includes += [include_directories(legacy_dir)] - libzstd_srcs += [ - join_paths(legacy_dir, 'zstd_v01.c'), - join_paths(legacy_dir, 'zstd_v02.c'), - join_paths(legacy_dir, 'zstd_v03.c'), - join_paths(legacy_dir, 'zstd_v04.c'), - join_paths(legacy_dir, 'zstd_v05.c'), - join_paths(legacy_dir, 'zstd_v06.c'), - join_paths(legacy_dir, 'zstd_v07.c') - ] + if legacy_int <= 1 + libzstd_srcs += join_paths(legacy_dir, 'zstd_v01.c') + endif + if legacy_int <= 2 + libzstd_srcs += join_paths(legacy_dir, 'zstd_v02.c') + endif + if legacy_int <= 3 + libzstd_srcs += join_paths(legacy_dir, 'zstd_v03.c') + endif + if legacy_int <= 4 + libzstd_srcs += join_paths(legacy_dir, 'zstd_v04.c') + endif + if legacy_int <= 5 + libzstd_srcs += join_paths(legacy_dir, 'zstd_v05.c') + endif + if legacy_int <= 6 + libzstd_srcs += join_paths(legacy_dir, 'zstd_v06.c') + endif + if legacy_int <= 7 + libzstd_srcs += join_paths(legacy_dir, 'zstd_v07.c') + endif else libzstd_cflags = [] endif @@ -70,7 +94,9 @@ libzstd = library('zstd', include_directories: libzstd_includes, c_args: libzstd_cflags, dependencies: libzstd_deps, - install: true) + install: true, + soversion: '1', + ) programs_dir = join_paths('..', '..', 'programs') Modified: head/sys/contrib/zstd/contrib/meson/meson_options.txt ============================================================================== --- head/sys/contrib/zstd/contrib/meson/meson_options.txt Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/contrib/meson/meson_options.txt Mon Mar 26 23:54:59 2018 (r331602) @@ -1,2 +1,3 @@ option('multithread', type: 'boolean', value: false) -option('legacy_support', type: 'boolean', value: false) +option('legacy_support', type: 'string', value: '4', + description: 'True or false, or 7 to 1 for v0.7+ to v0.1+.') Modified: head/sys/contrib/zstd/contrib/seekable_format/zstdseek_compress.c ============================================================================== --- head/sys/contrib/zstd/contrib/seekable_format/zstdseek_compress.c Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/contrib/seekable_format/zstdseek_compress.c Mon Mar 26 23:54:59 2018 (r331602) @@ -147,7 +147,7 @@ size_t ZSTD_seekable_initCStream(ZSTD_seekable_CStream /* make sure maxFrameSize has a reasonable value */ if (maxFrameSize > ZSTD_SEEKABLE_MAX_FRAME_DECOMPRESSED_SIZE) { - return ERROR(compressionParameter_unsupported); + return ERROR(frameParameter_unsupported); } zcs->maxFrameSize = maxFrameSize Modified: head/sys/contrib/zstd/contrib/seekable_format/zstdseek_decompress.c ============================================================================== --- head/sys/contrib/zstd/contrib/seekable_format/zstdseek_decompress.c Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/contrib/seekable_format/zstdseek_decompress.c Mon Mar 26 23:54:59 2018 (r331602) @@ -125,7 +125,7 @@ static int ZSTD_seekable_seek_buff(void* opaque, S64 o newOffset = (unsigned long long)buff->size - offset; break; } - if (newOffset < 0 || newOffset > buff->size) { + if (newOffset > buff->size) { return -1; } buff->pos = newOffset; @@ -145,7 +145,7 @@ typedef struct { int checksumFlag; } seekTable_t; -#define SEEKABLE_BUFF_SIZE ZSTD_BLOCKSIZE_ABSOLUTEMAX +#define SEEKABLE_BUFF_SIZE ZSTD_BLOCKSIZE_MAX struct ZSTD_seekable_s { ZSTD_DStream* dstream; Modified: head/sys/contrib/zstd/doc/README.md ============================================================================== --- head/sys/contrib/zstd/doc/README.md Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/doc/README.md Mon Mar 26 23:54:59 2018 (r331602) @@ -2,19 +2,24 @@ Zstandard Documentation ======================= This directory contains material defining the Zstandard format, -as well as for help using the `zstd` library. +as well as detailed instructions to use `zstd` library. +__`zstd_manual.html`__ : Documentation of `zstd.h` API, in html format. +Click on this link: [http://zstd.net/zstd_manual.html](http://zstd.net/zstd_manual.html) +to display documentation of latest release in readable format within a browser. + __`zstd_compression_format.md`__ : This document defines the Zstandard compression format. Compliant decoders must adhere to this document, and compliant encoders must generate data that follows it. +Should you look for ressources to develop your own port of Zstandard algorithm, +you may find the following ressources useful : + __`educational_decoder`__ : This directory contains an implementation of a Zstandard decoder, compliant with the Zstandard compression format. It can be used, for example, to better understand the format, -or as the basis for a separate implementation a Zstandard decoder/encoder. +or as the basis for a separate implementation of Zstandard decoder. -__`zstd_manual.html`__ : Documentation on the functions found in `zstd.h`. -See [http://zstd.net/zstd_manual.html](http://zstd.net/zstd_manual.html) for -the manual released with the latest official `zstd` release. - - +[__`decode_corpus`__](https://github.com/facebook/zstd/tree/dev/tests#decodecorpus---tool-to-generate-zstandard-frames-for-decoder-testing) : +This tool, stored in `/tests` directory, is able to generate random valid frames, +which is useful if you wish to test your decoder and verify it fully supports the specification. Added: head/sys/contrib/zstd/doc/images/CSpeed2.png ============================================================================== Binary file. No diff available. Added: head/sys/contrib/zstd/doc/images/DSpeed3.png ============================================================================== Binary file. No diff available. Modified: head/sys/contrib/zstd/doc/images/dict-cr.png ============================================================================== Binary file (source and/or target). No diff available. Modified: head/sys/contrib/zstd/doc/images/dict-cs.png ============================================================================== Binary file (source and/or target). No diff available. Modified: head/sys/contrib/zstd/doc/images/dict-ds.png ============================================================================== Binary file (source and/or target). No diff available. Modified: head/sys/contrib/zstd/doc/zstd_compression_format.md ============================================================================== --- head/sys/contrib/zstd/doc/zstd_compression_format.md Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/doc/zstd_compression_format.md Mon Mar 26 23:54:59 2018 (r331602) @@ -257,7 +257,7 @@ a decoder is allowed to reject a compressed frame which requests a memory size beyond decoder's authorized range. For improved interoperability, -decoders are recommended to be compatible with `Window_Size >= 8 MB`, +decoders are recommended to be compatible with `Window_Size <= 8 MB`, and encoders are recommended to not request more than 8 MB. It's merely a recommendation though, decoders are free to support larger or lower limits, Modified: head/sys/contrib/zstd/doc/zstd_manual.html ============================================================================== --- head/sys/contrib/zstd/doc/zstd_manual.html Mon Mar 26 23:23:11 2018 (r331601) +++ head/sys/contrib/zstd/doc/zstd_manual.html Mon Mar 26 23:54:59 2018 (r331602) @@ -1,17 +1,17 @@ -zstd 1.3.3 Manual +zstd 1.3.4 Manual -

zstd 1.3.3 Manual

+

zstd 1.3.4 Manual


Contents

  1. Introduction
  2. Version
  3. Simple API
  4. -
  5. Explicit memory management
  6. +
  7. Explicit context
  8. Simple dictionary API
  9. Bulk processing dictionary API
  10. Streaming
  11. @@ -19,17 +19,16 @@
  12. Streaming decompression - HowTo
  13. START OF ADVANCED AND EXPERIMENTAL FUNCTIONS
  14. Advanced types
  15. -
  16. Custom memory allocation functions
  17. -
  18. Frame size functions
  19. -
  20. Context memory usage
  21. -
  22. Advanced compression functions
  23. -
  24. Advanced decompression functions
  25. -
  26. Advanced streaming functions
  27. -
  28. Buffer-less and synchronous inner streaming functions
  29. -
  30. Buffer-less streaming compression (synchronous mode)
  31. -
  32. Buffer-less streaming decompression (synchronous mode)
  33. -
  34. New advanced API (experimental)
  35. -
  36. Block level API
  37. +
  38. Frame size functions
  39. +
  40. Memory management
  41. +
  42. Advanced compression functions
  43. +
  44. Advanced decompression functions
  45. +
  46. Advanced streaming functions
  47. +
  48. Buffer-less and synchronous inner streaming functions
  49. +
  50. Buffer-less streaming compression (synchronous mode)
  51. +
  52. Buffer-less streaming decompression (synchronous mode)
  53. +
  54. New advanced API (experimental)
  55. +
  56. Block level API

Introduction

@@ -40,11 +39,11 @@
   Levels >= 20, labeled `--ultra`, should be used with caution, as they require more memory.
   Compression can be done in:
     - a single step (described as Simple API)
-    - a single step, reusing a context (described as Explicit memory management)
+    - a single step, reusing a context (described as Explicit context)
     - unbounded multiple steps (described as Streaming compression)
   The compression ratio achievable on small data can be highly improved using a dictionary in:
     - a single step (described as Simple dictionary API)
-    - a single step, reusing a dictionary (described as Fast dictionary API)
+    - a single step, reusing a dictionary (described as Bulk-processing dictionary API)
 
   Advanced experimental functions can be accessed using #define ZSTD_STATIC_LINKING_ONLY before including zstd.h.
   Advanced experimental APIs shall never be used with a dynamic library.
@@ -103,22 +102,20 @@ unsigned long long ZSTD_getFrameContentSize(const void
 
 
unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize);
 

NOTE: This function is now obsolete, in favor of ZSTD_getFrameContentSize(). - Both functions work the same way, - but ZSTD_getDecompressedSize() blends - "empty", "unknown" and "error" results in the same return value (0), - while ZSTD_getFrameContentSize() distinguishes them. - - 'src' is the start of a zstd compressed frame. - @return : content size to be decompressed, as a 64-bits value _if known and not empty_, 0 otherwise. + Both functions work the same way, but ZSTD_getDecompressedSize() blends + "empty", "unknown" and "error" results to the same return value (0), + while ZSTD_getFrameContentSize() gives them separate return values. + `src` is the start of a zstd compressed frame. + @return : content size to be decompressed, as a 64-bits value _if known and not empty_, 0 otherwise.


Helper functions

#define ZSTD_COMPRESSBOUND(srcSize)   ((srcSize) + ((srcSize)>>8) + (((srcSize) < (128<<10)) ? (((128<<10) - (srcSize)) >> 11) /* margin, from 64 to 0 */ : 0))  /* this formula ensures that bound(A) + bound(B) <= bound(A+B) as long as A and B >= 128 KB */
-size_t      ZSTD_compressBound(size_t srcSize); /*!< maximum compressed size in worst case scenario */
+size_t      ZSTD_compressBound(size_t srcSize); /*!< maximum compressed size in worst case single-pass scenario */
 unsigned    ZSTD_isError(size_t code);          /*!< tells if a `size_t` function result is an error code */
 const char* ZSTD_getErrorName(size_t code);     /*!< provides readable string from an error code */
 int         ZSTD_maxCLevel(void);               /*!< maximum compression level available */
 

-

Explicit memory management


+

Explicit context


 
 

Compression context

  When compressing many times,
   it is recommended to allocate a context just once, and re-use it for each successive compression operation.
@@ -347,11 +344,18 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_o
     ZSTD_frameParameters fParams;
 } ZSTD_parameters;
 

-

Custom memory allocation functions


-
-
typedef struct { ZSTD_allocFunction customAlloc; ZSTD_freeFunction customFree; void* opaque; } ZSTD_customMem;
+
typedef enum {
+    ZSTD_dct_auto=0,      /* dictionary is "full" when starting with ZSTD_MAGIC_DICTIONARY, otherwise it is "rawContent" */
+    ZSTD_dct_rawContent,  /* ensures dictionary is always loaded as rawContent, even if it starts with ZSTD_MAGIC_DICTIONARY */
+    ZSTD_dct_fullDict     /* refuses to load a dictionary if it does not respect Zstandard's specification */
+} ZSTD_dictContentType_e;
 

-

Frame size functions


+
typedef enum {
+    ZSTD_dlm_byCopy = 0, /**< Copy dictionary content internally */
+    ZSTD_dlm_byRef,      /**< Reference dictionary content -- the dictionary buffer must outlive its users. */
+} ZSTD_dictLoadMethod_e;
+

+

Frame size functions


 
 
size_t ZSTD_findFrameCompressedSize(const void* src, size_t srcSize);
 

`src` should point to the start of a ZSTD encoded frame or skippable frame @@ -390,7 +394,7 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_o @return : size of the Frame Header


-

Context memory usage


+

Memory management


 
 
size_t ZSTD_sizeof_CCtx(const ZSTD_CCtx* cctx);
 size_t ZSTD_sizeof_DCtx(const ZSTD_DCtx* dctx);
@@ -399,7 +403,7 @@ size_t ZSTD_sizeof_DStream(const ZSTD_DStream* zds);
 size_t ZSTD_sizeof_CDict(const ZSTD_CDict* cdict);
 size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
 

These functions give the current memory usage of selected object. - Object memory usage can evolve when re-used multiple times. + Object memory usage can evolve when re-used.


size_t ZSTD_estimateCCtxSize(int compressionLevel);
@@ -412,8 +416,8 @@ size_t ZSTD_estimateDCtxSize(void);
   It will also consider src size to be arbitrarily "large", which is worst case.
   If srcSize is known to always be small, ZSTD_estimateCCtxSize_usingCParams() can provide a tighter estimation.
   ZSTD_estimateCCtxSize_usingCParams() can be used in tandem with ZSTD_getCParams() to create cParams from compressionLevel.
-  ZSTD_estimateCCtxSize_usingCCtxParams() can be used in tandem with ZSTD_CCtxParam_setParameter(). Only single-threaded compression is supported. This function will return an error code if ZSTD_p_nbThreads is > 1.
-  Note : CCtx estimation is only correct for single-threaded compression 
+  ZSTD_estimateCCtxSize_usingCCtxParams() can be used in tandem with ZSTD_CCtxParam_setParameter(). Only single-threaded compression is supported. This function will return an error code if ZSTD_p_nbWorkers is >= 1.
+  Note : CCtx size estimation is only correct for single-threaded compression. 
 


size_t ZSTD_estimateCStreamSize(int compressionLevel);
@@ -425,8 +429,8 @@ size_t ZSTD_estimateDStreamSize_fromFrame(const void* 
   It will also consider src size to be arbitrarily "large", which is worst case.
   If srcSize is known to always be small, ZSTD_estimateCStreamSize_usingCParams() can provide a tighter estimation.
   ZSTD_estimateCStreamSize_usingCParams() can be used in tandem with ZSTD_getCParams() to create cParams from compressionLevel.
-  ZSTD_estimateCStreamSize_usingCCtxParams() can be used in tandem with ZSTD_CCtxParam_setParameter(). Only single-threaded compression is supported. This function will return an error code if ZSTD_p_nbThreads is set to a value > 1.
-  Note : CStream estimation is only correct for single-threaded compression.
+  ZSTD_estimateCStreamSize_usingCCtxParams() can be used in tandem with ZSTD_CCtxParam_setParameter(). Only single-threaded compression is supported. This function will return an error code if ZSTD_p_nbWorkers is >= 1.
+  Note : CStream size estimation is only correct for single-threaded compression.
   ZSTD_DStream memory budget depends on window Size.
   This information can be passed manually, using ZSTD_estimateDStreamSize,
   or deducted from a valid frame Header, using ZSTD_estimateDStreamSize_fromFrame();
@@ -435,83 +439,59 @@ size_t ZSTD_estimateDStreamSize_fromFrame(const void* 
          In this case, get total size by adding ZSTD_estimate?DictSize 
 


-
typedef enum {
-    ZSTD_dlm_byCopy = 0,     /**< Copy dictionary content internally */
-    ZSTD_dlm_byRef,          /**< Reference dictionary content -- the dictionary buffer must outlive its users. */
-} ZSTD_dictLoadMethod_e;
-

size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel);
 size_t ZSTD_estimateCDictSize_advanced(size_t dictSize, ZSTD_compressionParameters cParams, ZSTD_dictLoadMethod_e dictLoadMethod);
 size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod);
 

ZSTD_estimateCDictSize() will bet that src size is relatively "small", and content is copied, like ZSTD_createCDict(). - ZSTD_estimateCStreamSize_advanced_usingCParams() makes it possible to control precisely compression parameters, like ZSTD_createCDict_advanced(). - Note : dictionary created by reference using ZSTD_dlm_byRef are smaller + ZSTD_estimateCDictSize_advanced() makes it possible to control compression parameters precisely, like ZSTD_createCDict_advanced(). + Note : dictionaries created by reference (`ZSTD_dlm_byRef`) are logically smaller.


-

Advanced compression functions


-
-
ZSTD_CCtx* ZSTD_createCCtx_advanced(ZSTD_customMem customMem);
-

Create a ZSTD compression context using external alloc and free functions +

ZSTD_CCtx*    ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize);
+ZSTD_CStream* ZSTD_initStaticCStream(void* workspace, size_t workspaceSize);    /**< same as ZSTD_initStaticCCtx() */
+

Initialize an object using a pre-allocated fixed-size buffer. + workspace: The memory area to emplace the object into. + Provided pointer *must be 8-bytes aligned*. + Buffer must outlive object. + workspaceSize: Use ZSTD_estimate*Size() to determine + how large workspace must be to support target scenario. + @return : pointer to object (same address as workspace, just different type), + or NULL if error (size too small, incorrect alignment, etc.) + Note : zstd will never resize nor malloc() when using a static buffer. + If the object requires more memory than available, + zstd will just error out (typically ZSTD_error_memory_allocation). + Note 2 : there is no corresponding "free" function. + Since workspace is allocated externally, it must be freed externally too. + Note 3 : cParams : use ZSTD_getCParams() to convert a compression level + into its associated cParams. + Limitation 1 : currently not compatible with internal dictionary creation, triggered by + ZSTD_CCtx_loadDictionary(), ZSTD_initCStream_usingDict() or ZSTD_initDStream_usingDict(). + Limitation 2 : static cctx currently not compatible with multi-threading. + Limitation 3 : static dctx is incompatible with legacy support. +


-
ZSTD_CCtx* ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize);
-

workspace: The memory area to emplace the context into. - Provided pointer must 8-bytes aligned. - It must outlive context usage. - workspaceSize: Use ZSTD_estimateCCtxSize() or ZSTD_estimateCStreamSize() - to determine how large workspace must be to support scenario. - @return : pointer to ZSTD_CCtx* (same address as workspace, but different type), - or NULL if error (typically size too small) - Note : zstd will never resize nor malloc() when using a static cctx. - If it needs more memory than available, it will simply error out. - Note 2 : there is no corresponding "free" function. - Since workspace was allocated externally, it must be freed externally too. - Limitation 1 : currently not compatible with internal CDict creation, such as - ZSTD_CCtx_loadDictionary() or ZSTD_initCStream_usingDict(). - Limitation 2 : currently not compatible with multi-threading +

ZSTD_DStream* ZSTD_initStaticDStream(void* workspace, size_t workspaceSize);    /**< same as ZSTD_initStaticDCtx() */
+

+
typedef void* (*ZSTD_allocFunction) (void* opaque, size_t size);
+typedef void  (*ZSTD_freeFunction) (void* opaque, void* address);
+typedef struct { ZSTD_allocFunction customAlloc; ZSTD_freeFunction customFree; void* opaque; } ZSTD_customMem;
+static ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  /**< this constant defers to stdlib's functions */
+

These prototypes make it possible to pass your own allocation/free functions. + ZSTD_customMem is provided at creation time, using ZSTD_create*_advanced() variants listed below. + All allocation/free operations will be completed using these custom variants instead of regular ones.


+

Advanced compression functions


+
 
ZSTD_CDict* ZSTD_createCDict_byReference(const void* dictBuffer, size_t dictSize, int compressionLevel);
 

Create a digested dictionary for compression Dictionary content is simply referenced, and therefore stays in dictBuffer. It is important that dictBuffer outlives CDict, it must remain read accessible throughout the lifetime of CDict


-
typedef enum { ZSTD_dm_auto=0,        /* dictionary is "full" if it starts with ZSTD_MAGIC_DICTIONARY, otherwise it is "rawContent" */
-               ZSTD_dm_rawContent,    /* ensures dictionary is always loaded as rawContent, even if it starts with ZSTD_MAGIC_DICTIONARY */
-               ZSTD_dm_fullDict       /* refuses to load a dictionary if it does not respect Zstandard's specification */
-} ZSTD_dictMode_e;
-

-
ZSTD_CDict* ZSTD_createCDict_advanced(const void* dict, size_t dictSize,
-                                      ZSTD_dictLoadMethod_e dictLoadMethod,
-                                      ZSTD_dictMode_e dictMode,
-                                      ZSTD_compressionParameters cParams,
-                                      ZSTD_customMem customMem);
-

Create a ZSTD_CDict using external alloc and free, and customized compression parameters -


- -
ZSTD_CDict* ZSTD_initStaticCDict(
-                void* workspace, size_t workspaceSize,
-          const void* dict, size_t dictSize,
-                ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictMode_e dictMode,
-                ZSTD_compressionParameters cParams);
-

Generate a digested dictionary in provided memory area. - workspace: The memory area to emplace the dictionary into. - Provided pointer must 8-bytes aligned. - It must outlive dictionary usage. - workspaceSize: Use ZSTD_estimateCDictSize() - to determine how large workspace must be. - cParams : use ZSTD_getCParams() to transform a compression level - into its relevants cParams. - @return : pointer to ZSTD_CDict* (same address as workspace, but different type), - or NULL if error (typically, size too small). - Note : there is no corresponding "free" function. - Since workspace was allocated externally, it must be freed externally. - -


-
ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, unsigned long long estimatedSrcSize, size_t dictSize);
 

@return ZSTD_compressionParameters structure for a selected compression level and estimated srcSize. `estimatedSrcSize` value is optional, select 0 if not known @@ -546,7 +526,7 @@ size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_di

Same as ZSTD_compress_usingCDict(), with fine-tune control over frame parameters


-

Advanced decompression functions


+

Advanced decompression functions


 
 
unsigned ZSTD_isFrame(const void* buffer, size_t size);
 

Tells if the content of `buffer` starts with a valid Frame Identifier. @@ -555,28 +535,6 @@ size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_di Note 3 : Skippable Frame Identifiers are considered valid.


-
ZSTD_DCtx* ZSTD_createDCtx_advanced(ZSTD_customMem customMem);
-

Create a ZSTD decompression context using external alloc and free functions -


- -
ZSTD_DCtx* ZSTD_initStaticDCtx(void* workspace, size_t workspaceSize);
-

workspace: The memory area to emplace the context into. - Provided pointer must 8-bytes aligned. - It must outlive context usage. - workspaceSize: Use ZSTD_estimateDCtxSize() or ZSTD_estimateDStreamSize() - to determine how large workspace must be to support scenario. - @return : pointer to ZSTD_DCtx* (same address as workspace, but different type), - or NULL if error (typically size too small) - Note : zstd will never resize nor malloc() when using a static dctx. - If it needs more memory than available, it will simply error out. - Note 2 : static dctx is incompatible with legacy support - Note 3 : there is no corresponding "free" function. - Since workspace was allocated externally, it must be freed externally. - Limitation : currently not compatible with internal DDict creation, - such as ZSTD_initDStream_usingDict(). - -


-
ZSTD_DDict* ZSTD_createDDict_byReference(const void* dictBuffer, size_t dictSize);
 

Create a digested dictionary, ready to start decompression operation without startup delay. Dictionary content is referenced, and therefore stays in dictBuffer. @@ -584,27 +542,6 @@ size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_di it must remain read accessible throughout the lifetime of DDict


-
ZSTD_DDict* ZSTD_createDDict_advanced(const void* dict, size_t dictSize,
-                                      ZSTD_dictLoadMethod_e dictLoadMethod,
-                                      ZSTD_customMem customMem);
-

Create a ZSTD_DDict using external alloc and free, optionally by reference -


- -
ZSTD_DDict* ZSTD_initStaticDDict(void* workspace, size_t workspaceSize,
-                                 const void* dict, size_t dictSize,
-                                 ZSTD_dictLoadMethod_e dictLoadMethod);
-

Generate a digested dictionary in provided memory area. - workspace: The memory area to emplace the dictionary into. - Provided pointer must 8-bytes aligned. - It must outlive dictionary usage. - workspaceSize: Use ZSTD_estimateDDictSize() - to determine how large workspace must be. - @return : pointer to ZSTD_DDict*, or NULL if error (size too small) - Note : there is no corresponding "free" function. - Since workspace was allocated externally, it must be freed externally. - -


-
unsigned ZSTD_getDictID_fromDict(const void* dict, size_t dictSize);
 

Provides the dictID stored within dictionary. if @return == 0, the dictionary is not conformant with Zstandard specification. @@ -629,11 +566,9 @@ size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_di When identifying the exact failure cause, it's possible to use ZSTD_getFrameHeader(), which will provide a more precise error code.


-

Advanced streaming functions


+

Advanced streaming functions


 
-

Advanced Streaming compression functions

ZSTD_CStream* ZSTD_createCStream_advanced(ZSTD_customMem customMem);
-ZSTD_CStream* ZSTD_initStaticCStream(void* workspace, size_t workspaceSize);    /**< same as ZSTD_initStaticCCtx() */
-size_t ZSTD_initCStream_srcSize(ZSTD_CStream* zcs, int compressionLevel, unsigned long long pledgedSrcSize);   /**< pledgedSrcSize must be correct. If it is not known at init time, use ZSTD_CONTENTSIZE_UNKNOWN. Note that, for compatibility with older programs, "0" also disables frame content size field. It may be enabled in the future. */
+

Advanced Streaming compression functions

size_t ZSTD_initCStream_srcSize(ZSTD_CStream* zcs, int compressionLevel, unsigned long long pledgedSrcSize);   /**< pledgedSrcSize must be correct. If it is not known at init time, use ZSTD_CONTENTSIZE_UNKNOWN. Note that, for compatibility with older programs, "0" also disables frame content size field. It may be enabled in the future. */
 size_t ZSTD_initCStream_usingDict(ZSTD_CStream* zcs, const void* dict, size_t dictSize, int compressionLevel); /**< creates of an internal CDict (incompatible with static CCtx), except if dict == NULL or dictSize < 8, in which case no dict is used. Note: dict is loaded with ZSTD_dm_auto (treated as a full zstd dictionary if it begins with ZSTD_MAGIC_DICTIONARY, else as raw content) and ZSTD_dlm_byCopy.*/
 size_t ZSTD_initCStream_advanced(ZSTD_CStream* zcs, const void* dict, size_t dictSize,
                                              ZSTD_parameters params, unsigned long long pledgedSrcSize);  /**< pledgedSrcSize must be correct. If srcSize is not known at init time, use value ZSTD_CONTENTSIZE_UNKNOWN. dict is loaded with ZSTD_dm_auto and ZSTD_dlm_byCopy. */
@@ -647,26 +582,30 @@ size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStre
   If pledgedSrcSize is not known at reset time, use macro ZSTD_CONTENTSIZE_UNKNOWN.
   If pledgedSrcSize > 0, its value must be correct, as it will be written in header, and controlled at the end.
   For the time being, pledgedSrcSize==0 is interpreted as "srcSize unknown" for compatibility with older programs,
-  but it may change to mean "empty" in some future version, so prefer using macro ZSTD_CONTENTSIZE_UNKNOWN.
+  but it will change to mean "empty" in future version, so use macro ZSTD_CONTENTSIZE_UNKNOWN instead.
  @return : 0, or an error code (which can be tested using ZSTD_isError()) 
 


-

Advanced Streaming decompression functions

ZSTD_DStream* ZSTD_createDStream_advanced(ZSTD_customMem customMem);
-ZSTD_DStream* ZSTD_initStaticDStream(void* workspace, size_t workspaceSize);    /**< same as ZSTD_initStaticDCtx() */
-typedef enum { DStream_p_maxWindowSize } ZSTD_DStreamParameter_e;
+
typedef struct {
+    unsigned long long ingested;
+    unsigned long long consumed;
+    unsigned long long produced;
+} ZSTD_frameProgression;
+

+

Advanced Streaming decompression functions

typedef enum { DStream_p_maxWindowSize } ZSTD_DStreamParameter_e;
 size_t ZSTD_setDStreamParameter(ZSTD_DStream* zds, ZSTD_DStreamParameter_e paramType, unsigned paramValue);   /* obsolete : this API will be removed in a future version */
 size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, size_t dictSize); /**< note: no dictionary will be used if dict == NULL or dictSize < 8 */
 size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* zds, const ZSTD_DDict* ddict);  /**< note : ddict is referenced, it must outlive decompression session */
 size_t ZSTD_resetDStream(ZSTD_DStream* zds);  /**< re-use decompression parameters from previous init; saves dictionary loading */
 

-

Buffer-less and synchronous inner streaming functions

+

Buffer-less and synchronous inner streaming functions

   This is an advanced API, giving full control over buffer management, for users which need direct control over memory.
   But it's also a complex one, with several restrictions, documented below.
   Prefer normal streaming API for an easier experience.
  
 
-

Buffer-less streaming compression (synchronous mode)

+

Buffer-less streaming compression (synchronous mode)

   A ZSTD_CCtx object is required to track streaming operations.
   Use ZSTD_createCCtx() / ZSTD_freeCCtx() to manage resource.
   ZSTD_CCtx object can be re-used multiple times within successive compression operations.
@@ -702,7 +641,7 @@ size_t ZSTD_compressBegin_usingCDict(ZSTD_CCtx* cctx, 
 size_t ZSTD_compressBegin_usingCDict_advanced(ZSTD_CCtx* const cctx, const ZSTD_CDict* const cdict, ZSTD_frameParameters const fParams, unsigned long long const pledgedSrcSize);   /* compression parameters are already set within cdict. pledgedSrcSize must be correct. If srcSize is not known, use macro ZSTD_CONTENTSIZE_UNKNOWN */
 size_t ZSTD_copyCCtx(ZSTD_CCtx* cctx, const ZSTD_CCtx* preparedCCtx, unsigned long long pledgedSrcSize); /**<  note: if pledgedSrcSize is not known, use ZSTD_CONTENTSIZE_UNKNOWN */
 

-

Buffer-less streaming decompression (synchronous mode)

+

Buffer-less streaming decompression (synchronous mode)

   A ZSTD_DCtx object is required to track streaming operations.
   Use ZSTD_createDCtx() / ZSTD_freeDCtx() to manage it.
   A ZSTD_DCtx object can be re-used multiple times.
@@ -788,15 +727,15 @@ size_t ZSTD_decodingBufferSize_min(unsigned long long 
 

typedef enum { ZSTDnit_frameHeader, ZSTDnit_blockHeader, ZSTDnit_block, ZSTDnit_lastBlock, ZSTDnit_checksum, ZSTDnit_skippableFrame } ZSTD_nextInputType_e;
 

-

New advanced API (experimental)


+

New advanced API (experimental)


 
 
typedef enum {
-    /* Question : should we have a format ZSTD_f_auto ?
-     * For the time being, it would mean exactly the same as ZSTD_f_zstd1.
-     * But, in the future, should several formats be supported,
+    /* Opened question : should we have a format ZSTD_f_auto ?
+     * Today, it would mean exactly the same as ZSTD_f_zstd1.
+     * But, in the future, should several formats become supported,
      * on the compression side, it would mean "default format".
-     * On the decompression side, it would mean "multi format",
-     * and ZSTD_f_zstd1 could be reserved to mean "accept *only* zstd frames".
+     * On the decompression side, it would mean "automatic format detection",
+     * so that ZSTD_f_zstd1 would mean "accept *only* zstd frames".
      * Since meaning is a little different, another option could be to define different enums for compression and decompression.
      * This question could be kept for later, when there are actually multiple formats to support,
      * but there is also the question of pinning enum values, and pinning value `0` is especially important */
@@ -814,43 +753,77 @@ size_t ZSTD_decodingBufferSize_min(unsigned long long 
     /* compression parameters */
     ZSTD_p_compressionLevel=100, /* Update all compression parameters according to pre-defined cLevel table
                               * Default level is ZSTD_CLEVEL_DEFAULT==3.
-                              * Special: value 0 means "do not change cLevel". */
+                              * Special: value 0 means "do not change cLevel".
+                              * Note 1 : it's possible to pass a negative compression level by casting it to unsigned type.
+                              * Note 2 : setting a level sets all default values of other compression parameters.
+                              * Note 3 : setting compressionLevel automatically updates ZSTD_p_compressLiterals. */
     ZSTD_p_windowLog,        /* Maximum allowed back-reference distance, expressed as power of 2.
                               * Must be clamped between ZSTD_WINDOWLOG_MIN and ZSTD_WINDOWLOG_MAX.
-                              * Special: value 0 means "do not change windowLog".
+                              * Special: value 0 means "use default windowLog".
                               * Note: Using a window size greater than ZSTD_MAXWINDOWSIZE_DEFAULT (default: 2^27)
-                              * requires setting the maximum window size at least as large during decompression. */
+                              *       requires explicitly allowing such window size during decompression stage. */
     ZSTD_p_hashLog,          /* Size of the probe table, as a power of 2.
                               * Resulting table size is (1 << (hashLog+2)).
                               * Must be clamped between ZSTD_HASHLOG_MIN and ZSTD_HASHLOG_MAX.
                               * Larger tables improve compression ratio of strategies <= dFast,
                               * and improve speed of strategies > dFast.
-                              * Special: value 0 means "do not change hashLog". */
+                              * Special: value 0 means "use default hashLog". */
     ZSTD_p_chainLog,         /* Size of the full-search table, as a power of 2.
                               * Resulting table size is (1 << (chainLog+2)).
                               * Larger tables result in better and slower compression.
                               * This parameter is useless when using "fast" strategy.
-                              * Special: value 0 means "do not change chainLog". */
+                              * Special: value 0 means "use default chainLog". */
     ZSTD_p_searchLog,        /* Number of search attempts, as a power of 2.
                               * More attempts result in better and slower compression.
                               * This parameter is useless when using "fast" and "dFast" strategies.
-                              * Special: value 0 means "do not change searchLog". */
+                              * Special: value 0 means "use default searchLog". */
     ZSTD_p_minMatch,         /* Minimum size of searched matches (note : repCode matches can be smaller).
                               * Larger values make faster compression and decompression, but decrease ratio.
                               * Must be clamped between ZSTD_SEARCHLENGTH_MIN and ZSTD_SEARCHLENGTH_MAX.
                               * Note that currently, for all strategies < btopt, effective minimum is 4.
-                              * Note that currently, for all strategies > fast, effective maximum is 6.
-                              * Special: value 0 means "do not change minMatchLength". */
-    ZSTD_p_targetLength,     /* Only useful for strategies >= btopt.
-                              * Length of Match considered "good enough" to stop search.
-                              * Larger values make compression stronger and slower.
-                              * Special: value 0 means "do not change targetLength". */
+                              *                    , for all strategies > fast, effective maximum is 6.
+                              * Special: value 0 means "use default minMatchLength". */
+    ZSTD_p_targetLength,     /* Impact of this field depends on strategy.
+                              * For strategies btopt & btultra:
+                              *     Length of Match considered "good enough" to stop search.
+                              *     Larger values make compression stronger, and slower.
+                              * For strategy fast:
+                              *     Distance between match sampling.
+                              *     Larger values make compression faster, and weaker.
+                              * Special: value 0 means "use default targetLength". */
     ZSTD_p_compressionStrategy, /* See ZSTD_strategy enum definition.
                               * Cast selected strategy as unsigned for ZSTD_CCtx_setParameter() compatibility.
                               * The higher the value of selected strategy, the more complex it is,
                               * resulting in stronger and slower compression.
-                              * Special: value 0 means "do not change strategy". */
+                              * Special: value 0 means "use default strategy". */
 
+    ZSTD_p_enableLongDistanceMatching=160, /* Enable long distance matching.
+                                         * This parameter is designed to improve compression ratio
+                                         * for large inputs, by finding large matches at long distance.
+                                         * It increases memory usage and window size.
+                                         * Note: enabling this parameter increases ZSTD_p_windowLog to 128 MB
+                                         * except when expressly set to a different value. */
+    ZSTD_p_ldmHashLog,       /* Size of the table for long distance matching, as a power of 2.
+                              * Larger values increase memory usage and compression ratio,
+                              * but decrease compression speed.
+                              * Must be clamped between ZSTD_HASHLOG_MIN and ZSTD_HASHLOG_MAX
+                              * default: windowlog - 7.
+                              * Special: value 0 means "automatically determine hashlog". */
+    ZSTD_p_ldmMinMatch,      /* Minimum match size for long distance matcher.
+                              * Larger/too small values usually decrease compression ratio.
+                              * Must be clamped between ZSTD_LDM_MINMATCH_MIN and ZSTD_LDM_MINMATCH_MAX.
+                              * Special: value 0 means "use default value" (default: 64). */
+    ZSTD_p_ldmBucketSizeLog, /* Log size of each bucket in the LDM hash table for collision resolution.
+                              * Larger values improve collision resolution but decrease compression speed.
+                              * The maximum value is ZSTD_LDM_BUCKETSIZELOG_MAX .
+                              * Special: value 0 means "use default value" (default: 3). */
+    ZSTD_p_ldmHashEveryLog,  /* Frequency of inserting/looking up entries in the LDM hash table.
+                              * Must be clamped between 0 and (ZSTD_WINDOWLOG_MAX - ZSTD_HASHLOG_MIN).
+                              * Default is MAX(0, (windowLog - ldmHashLog)), optimizing hash table usage.
+                              * Larger values improve compression speed.
+                              * Deviating far from default value will likely result in a compression ratio decrease.
+                              * Special: value 0 means "automatically determine hashEveryLog". */
+
     /* frame parameters */
     ZSTD_p_contentSizeFlag=200, /* Content size will be written into frame header _whenever known_ (default:1)
                               * Content size must be known at the beginning of compression,
@@ -859,57 +832,44 @@ size_t ZSTD_decodingBufferSize_min(unsigned long long 
     ZSTD_p_dictIDFlag,       /* When applicable, dictionary's ID is written into frame header (default:1) */
 
     /* multi-threading parameters */
-    ZSTD_p_nbThreads=400,    /* Select how many threads a compression job can spawn (default:1)
-                              * More threads improve speed, but also increase memory usage.
-                              * Can only receive a value > 1 if ZSTD_MULTITHREAD is enabled.
-                              * Special: value 0 means "do not change nbThreads" */
-    ZSTD_p_jobSize,          /* Size of a compression job. This value is only enforced in streaming (non-blocking) mode.
-                              * Each compression job is completed in parallel, so indirectly controls the nb of active threads.
+    /* These parameters are only useful if multi-threading is enabled (ZSTD_MULTITHREAD).
+     * They return an error otherwise. */
+    ZSTD_p_nbWorkers=400,    /* Select how many threads will be spawned to compress in parallel.
+                              * When nbWorkers >= 1, triggers asynchronous mode :
+                              * ZSTD_compress_generic() consumes some input, flush some output if possible, and immediately gives back control to caller,
+                              * while compression work is performed in parallel, within worker threads.
+                              * (note : a strong exception to this rule is when first invocation sets ZSTD_e_end : it becomes a blocking call).
+                              * More workers improve speed, but also increase memory usage.
+                              * Default value is `0`, aka "single-threaded mode" : no worker is spawned, compression is performed inside Caller's thread, all invocations are blocking */
+    ZSTD_p_jobSize,          /* Size of a compression job. This value is enforced only in non-blocking mode.
+                              * Each compression job is completed in parallel, so this value indirectly controls the nb of active threads.
                               * 0 means default, which is dynamically determined based on compression parameters.
-                              * Job size must be a minimum of overlapSize, or 1 KB, whichever is largest
+                              * Job size must be a minimum of overlapSize, or 1 MB, whichever is largest.
                               * The minimum size is automatically and transparently enforced */
     ZSTD_p_overlapSizeLog,   /* Size of previous input reloaded at the beginning of each job.
                               * 0 => no overlap, 6(default) => use 1/8th of windowSize, >=9 => use full windowSize */
 
-    /* advanced parameters - may not remain available after API update */
+    /* =================================================================== */
+    /* experimental parameters - no stability guaranteed                   */
+    /* =================================================================== */
+
+    ZSTD_p_compressLiterals=1000, /* control huffman compression of literals (enabled) by default.
+                              * disabling it improves speed and decreases compression ratio by a large amount.
+                              * note : this setting is automatically updated when changing compression level.
+                              *        positive compression levels set ZSTD_p_compressLiterals to 1.
+                              *        negative compression levels set ZSTD_p_compressLiterals to 0. */
+
     ZSTD_p_forceMaxWindow=1100, /* Force back-reference distances to remain < windowSize,
                               * even when referencing into Dictionary content (default:0) */
-    ZSTD_p_enableLongDistanceMatching=1200,  /* Enable long distance matching.
-                                         * This parameter is designed to improve the compression
-                                         * ratio for large inputs with long distance matches.
-                                         * This increases the memory usage as well as window size.
-                                         * Note: setting this parameter sets all the LDM parameters
-                                         * as well as ZSTD_p_windowLog. It should be set after
-                                         * ZSTD_p_compressionLevel and before ZSTD_p_windowLog and
-                                         * other LDM parameters. Setting the compression level
-                                         * after this parameter overrides the window log, though LDM
-                                         * will remain enabled until explicitly disabled. */
-    ZSTD_p_ldmHashLog,   /* Size of the table for long distance matching, as a power of 2.
-                          * Larger values increase memory usage and compression ratio, but decrease
-                          * compression speed.
-                          * Must be clamped between ZSTD_HASHLOG_MIN and ZSTD_HASHLOG_MAX
-                          * (default: windowlog - 7). */
-    ZSTD_p_ldmMinMatch,  /* Minimum size of searched matches for long distance matcher.
-                          * Larger/too small values usually decrease compression ratio.
-                          * Must be clamped between ZSTD_LDM_MINMATCH_MIN
-                          * and ZSTD_LDM_MINMATCH_MAX (default: 64). */
-    ZSTD_p_ldmBucketSizeLog,  /* Log size of each bucket in the LDM hash table for collision resolution.
-                               * Larger values usually improve collision resolution but may decrease
-                               * compression speed.
-                               * The maximum value is ZSTD_LDM_BUCKETSIZELOG_MAX (default: 3). */
-    ZSTD_p_ldmHashEveryLog,  /* Frequency of inserting/looking up entries in the LDM hash table.

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Tue Mar 27 00:25:39 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D637F56AA3;
 Tue, 27 Mar 2018 00:25:39 +0000 (UTC) (envelope-from devin@shxd.cx)
Received: from shxd.cx (mail.shxd.cx [64.201.244.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 2EC1A7F3CB;
 Tue, 27 Mar 2018 00:25:39 +0000 (UTC) (envelope-from devin@shxd.cx)
Received: from [74.217.198.10] (port=59888 helo=[10.1.4.66])
 by shxd.cx with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.77 (FreeBSD))
 (envelope-from )
 id 1f0Z1k-000BEs-AB; Mon, 26 Mar 2018 20:47:36 +0000
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: svn commit: r331563 - head/stand/lua
From: Devin Teske 
In-Reply-To: <201803261901.w2QJ1MUj074381@repo.freebsd.org>
Date: Mon, 26 Mar 2018 17:25:31 -0700
Cc: Devin Teske ,
 src-committers , svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <9CF74768-8B7D-4F29-AAD1-A2802665635E@freebsd.org>
References: <201803261901.w2QJ1MUj074381@repo.freebsd.org>
To: Kyle Evans 
X-Mailer: Apple Mail (2.3273)
Sender: devin@shxd.cx
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 00:25:39 -0000

Woot!

That is all.
--=20
Devin

> On Mar 26, 2018, at 12:01 PM, Kyle Evans  wrote:
>=20
> Author: kevans
> Date: Mon Mar 26 19:01:22 2018
> New Revision: 331563
> URL: https://svnweb.freebsd.org/changeset/base/331563
>=20
> Log:
>  lualoader: Implement try_include and use it for including the local =
module
>=20
>  This provides a way to optionally include a module without having to =
wrap it
>  in filesystem checks. try_include is a little more robust, using the =
lua
>  search path instead of forcing us to explicitly consider all of the =
places
>  we could want to include a module. Errors are still generally raised =
from
>  trying to load the module, but ENOENT will not get raised unless =
we're doing
>  a verbose load.
>=20
>  This will also be used to split out logo/brand graphics into their =
own files
>  so that we can safely scale up the number of graphics included =
without
>  worrying about the extra memory consumption- opting to lazily load =
graphics
>  instead.
>=20
>  Reviewed by:	cem
>  Differential Revision:	https://reviews.freebsd.org/D14658
>=20
> Modified:
>  head/stand/lua/core.lua
>  head/stand/lua/loader.lua
>=20
> Modified: head/stand/lua/core.lua
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/stand/lua/core.lua	Mon Mar 26 18:39:38 2018	=
(r331562)
> +++ head/stand/lua/core.lua	Mon Mar 26 19:01:22 2018	=
(r331563)
> @@ -41,6 +41,26 @@ local function composeLoaderCmd(cmd_name, argstr)
> 	return cmd_name
> end
>=20
> +-- Globals
> +-- try_include will return the loaded module on success, or nil on =
failure.
> +-- A message will also be printed on failure, with one exception: =
non-verbose
> +-- loading will suppress 'module not found' errors.
> +function try_include(module)
> +	local status, ret =3D pcall(require, module)
> +	-- ret is the module if we succeeded.
> +	if status then
> +		return ret
> +	end
> +	-- Otherwise, ret is just a message; filter out ENOENT unless =
we're
> +	-- doing a verbose load. As a consequence, try_include prior to =
loading
> +	-- configuration will not display 'module not found'. All other =
errors
> +	-- in loading will be printed.
> +	if config.verbose or ret:match("^module .+ not found") =3D=3D =
nil then
> +		print(ret)
> +	end
> +	return nil
> +end
> +
> -- Module exports
> -- Commonly appearing constants
> core.KEY_BACKSPACE	=3D 8
>=20
> Modified: head/stand/lua/loader.lua
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/stand/lua/loader.lua	Mon Mar 26 18:39:38 2018	=
(r331562)
> +++ head/stand/lua/loader.lua	Mon Mar 26 19:01:22 2018	=
(r331563)
> @@ -43,11 +43,7 @@ if not core.isMenuSkipped() then
> end
> local password =3D require("password")
>=20
> -local result =3D lfs.attributes("/boot/lua/local.lua")
> --- Effectively discard any errors; we'll just act if it succeeds.
> -if result ~=3D nil then
> -	require("local")
> -end
> +try_include("local")
>=20
> config.load()
> if core.isUEFIBoot() then
>=20


From owner-svn-src-all@freebsd.org  Tue Mar 27 00:35:36 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 42354F5782E;
 Tue, 27 Mar 2018 00:35:36 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EB8E67FBE3;
 Tue, 27 Mar 2018 00:35:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DDB1114679;
 Tue, 27 Mar 2018 00:35:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2R0ZZNd044382;
 Tue, 27 Mar 2018 00:35:35 GMT (envelope-from jhb@FreeBSD.org)
Received: (from jhb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2R0ZZ6K044380;
 Tue, 27 Mar 2018 00:35:35 GMT (envelope-from jhb@FreeBSD.org)
Message-Id: <201803270035.w2R0ZZ6K044380@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org
 using -f
From: John Baldwin 
Date: Tue, 27 Mar 2018 00:35:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331603 - stable/11/sbin/sysctl
X-SVN-Group: stable-11
X-SVN-Commit-Author: jhb
X-SVN-Commit-Paths: stable/11/sbin/sysctl
X-SVN-Commit-Revision: 331603
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 00:35:36 -0000

Author: jhb
Date: Tue Mar 27 00:35:35 2018
New Revision: 331603
URL: https://svnweb.freebsd.org/changeset/base/331603

Log:
  MFC 330711:
  Permit sysctl(8) to set an array of numeric values for a single node.
  
  Most sysctl nodes only return a single value, but some nodes return an
  array of values (e.g. kern.cp_time).  sysctl(8) understand how to display
  the values of a node that returns multiple values (it prints out each
  numeric value separated by spaces).  However, until now sysctl(8) has
  only been able to set sysctl nodes to a single value.  This change
  allows sysctl to accept a new value for a numeric sysctl node that contains
  multiple values separated by either spaces or commas.  sysctl(8) parses
  this list into an array of values and passes the array as the "new" value
  to sysctl(2).
  
  Sponsored by:	Chelsio Communications

Modified:
  stable/11/sbin/sysctl/sysctl.8
  stable/11/sbin/sysctl/sysctl.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sbin/sysctl/sysctl.8
==============================================================================
--- stable/11/sbin/sysctl/sysctl.8	Mon Mar 26 23:54:59 2018	(r331602)
+++ stable/11/sbin/sysctl/sysctl.8	Tue Mar 27 00:35:35 2018	(r331603)
@@ -28,7 +28,7 @@
 .\"	From: @(#)sysctl.8	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd December 10, 2015
+.Dd March 9, 2018
 .Dt SYSCTL 8
 .Os
 .Sh NAME
@@ -39,7 +39,7 @@
 .Op Fl bdehiNnoRTtqx
 .Op Fl B Ar bufsize
 .Op Fl f Ar filename
-.Ar name Ns Op = Ns Ar value
+.Ar name Ns Op = Ns Ar value Ns Op , Ns Ar value
 .Ar ...
 .Nm
 .Op Fl bdehNnoRTtqx

Modified: stable/11/sbin/sysctl/sysctl.c
==============================================================================
--- stable/11/sbin/sysctl/sysctl.c	Mon Mar 26 23:54:59 2018	(r331602)
+++ stable/11/sbin/sysctl/sysctl.c	Tue Mar 27 00:35:35 2018	(r331603)
@@ -65,6 +65,7 @@ static const char rcsid[] =
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -234,16 +235,17 @@ main(int argc, char **argv)
 }
 
 /*
- * Parse a name into a MIB entry.
- * Lookup and print out the MIB entry if it exists.
- * Set a new value if requested.
+ * Parse a single numeric value, append it to 'newbuf', and update
+ * 'newsize'.  Returns true if the value was parsed and false if the
+ * value was invalid.  Non-numeric types (strings) are handled
+ * directly in parse().
  */
-static int
-parse(const char *string, int lineno)
+static bool
+parse_numeric(const char *newvalstr, const char *fmt, u_int kind,
+    void **newbufp, size_t *newsizep)
 {
-	int len, i, j;
+	void *newbuf;
 	const void *newval;
-	const char *newvalstr = NULL;
 	int8_t i8val;
 	uint8_t u8val;
 	int16_t i16val;
@@ -254,11 +256,111 @@ parse(const char *string, int lineno)
 	unsigned int uintval;
 	long longval;
 	unsigned long ulongval;
-	size_t newsize = Bflag;
 	int64_t i64val;
 	uint64_t u64val;
+	size_t valsize;
+	char *endptr = NULL;
+	
+	errno = 0;
+
+	switch (kind & CTLTYPE) {
+	case CTLTYPE_INT:
+		if (strncmp(fmt, "IK", 2) == 0)
+			intval = strIKtoi(newvalstr, &endptr, fmt);
+		else
+			intval = (int)strtol(newvalstr, &endptr, 0);
+		newval = &intval;
+		valsize = sizeof(intval);
+		break;
+	case CTLTYPE_UINT:
+		uintval = (int) strtoul(newvalstr, &endptr, 0);
+		newval = &uintval;
+		valsize = sizeof(uintval);
+		break;
+	case CTLTYPE_LONG:
+		longval = strtol(newvalstr, &endptr, 0);
+		newval = &longval;
+		valsize = sizeof(longval);
+		break;
+	case CTLTYPE_ULONG:
+		ulongval = strtoul(newvalstr, &endptr, 0);
+		newval = &ulongval;
+		valsize = sizeof(ulongval);
+		break;
+	case CTLTYPE_S8:
+		i8val = (int8_t)strtol(newvalstr, &endptr, 0);
+		newval = &i8val;
+		valsize = sizeof(i8val);
+		break;
+	case CTLTYPE_S16:
+		i16val = (int16_t)strtol(newvalstr, &endptr, 0);
+		newval = &i16val;
+		valsize = sizeof(i16val);
+		break;
+	case CTLTYPE_S32:
+		i32val = (int32_t)strtol(newvalstr, &endptr, 0);
+		newval = &i32val;
+		valsize = sizeof(i32val);
+		break;
+	case CTLTYPE_S64:
+		i64val = strtoimax(newvalstr, &endptr, 0);
+		newval = &i64val;
+		valsize = sizeof(i64val);
+		break;
+	case CTLTYPE_U8:
+		u8val = (uint8_t)strtoul(newvalstr, &endptr, 0);
+		newval = &u8val;
+		valsize = sizeof(u8val);
+		break;
+	case CTLTYPE_U16:
+		u16val = (uint16_t)strtoul(newvalstr, &endptr, 0);
+		newval = &u16val;
+		valsize = sizeof(u16val);
+		break;
+	case CTLTYPE_U32:
+		u32val = (uint32_t)strtoul(newvalstr, &endptr, 0);
+		newval = &u32val;
+		valsize = sizeof(u32val);
+		break;
+	case CTLTYPE_U64:
+		u64val = strtoumax(newvalstr, &endptr, 0);
+		newval = &u64val;
+		valsize = sizeof(u64val);
+		break;
+	default:
+		/* NOTREACHED */
+		abort();
+	}
+	
+	if (errno != 0 || endptr == newvalstr ||
+	    (endptr != NULL && *endptr != '\0'))
+		return (false);
+
+	newbuf = realloc(*newbufp, *newsizep + valsize);
+	if (newbuf == NULL)
+		err(1, "out of memory");
+	memcpy((char *)newbuf + *newsizep, newval, valsize);
+	*newbufp = newbuf;
+	*newsizep += valsize;
+	
+	return (true);
+}
+
+/*
+ * Parse a name into a MIB entry.
+ * Lookup and print out the MIB entry if it exists.
+ * Set a new value if requested.
+ */
+static int
+parse(const char *string, int lineno)
+{
+	int len, i, j;
+	const void *newval;
+	char *newvalstr = NULL;
+	void *newbuf;
+	size_t newsize = Bflag;
 	int mib[CTL_MAXNAME];
-	char *cp, *bufp, buf[BUFSIZ], *endptr = NULL, fmt[BUFSIZ], line[BUFSIZ];
+	char *cp, *bufp, buf[BUFSIZ], fmt[BUFSIZ], line[BUFSIZ];
 	u_int kind;
 
 	if (lineno)
@@ -377,94 +479,33 @@ parse(const char *string, int lineno)
 			return (1);
 		}
 
-		errno = 0;
+		newbuf = NULL;
 
 		switch (kind & CTLTYPE) {
-			case CTLTYPE_INT:
-				if (strncmp(fmt, "IK", 2) == 0)
-					intval = strIKtoi(newvalstr, &endptr, fmt);
-				else
-					intval = (int)strtol(newvalstr, &endptr,
-					    0);
-				newval = &intval;
-				newsize = sizeof(intval);
-				break;
-			case CTLTYPE_UINT:
-				uintval = (int) strtoul(newvalstr, &endptr, 0);
-				newval = &uintval;
-				newsize = sizeof(uintval);
-				break;
-			case CTLTYPE_LONG:
-				longval = strtol(newvalstr, &endptr, 0);
-				newval = &longval;
-				newsize = sizeof(longval);
-				break;
-			case CTLTYPE_ULONG:
-				ulongval = strtoul(newvalstr, &endptr, 0);
-				newval = &ulongval;
-				newsize = sizeof(ulongval);
-				break;
-			case CTLTYPE_STRING:
-				newval = newvalstr;
-				break;
-			case CTLTYPE_S8:
-				i8val = (int8_t)strtol(newvalstr, &endptr, 0);
-				newval = &i8val;
-				newsize = sizeof(i8val);
-				break;
-			case CTLTYPE_S16:
-				i16val = (int16_t)strtol(newvalstr, &endptr,
-				    0);
-				newval = &i16val;
-				newsize = sizeof(i16val);
-				break;
-			case CTLTYPE_S32:
-				i32val = (int32_t)strtol(newvalstr, &endptr,
-				    0);
-				newval = &i32val;
-				newsize = sizeof(i32val);
-				break;
-			case CTLTYPE_S64:
-				i64val = strtoimax(newvalstr, &endptr, 0);
-				newval = &i64val;
-				newsize = sizeof(i64val);
-				break;
-			case CTLTYPE_U8:
-				u8val = (uint8_t)strtoul(newvalstr, &endptr, 0);
-				newval = &u8val;
-				newsize = sizeof(u8val);
-				break;
-			case CTLTYPE_U16:
-				u16val = (uint16_t)strtoul(newvalstr, &endptr,
-				    0);
-				newval = &u16val;
-				newsize = sizeof(u16val);
-				break;
-			case CTLTYPE_U32:
-				u32val = (uint32_t)strtoul(newvalstr, &endptr,
-				    0);
-				newval = &u32val;
-				newsize = sizeof(u32val);
-				break;
-			case CTLTYPE_U64:
-				u64val = strtoumax(newvalstr, &endptr, 0);
-				newval = &u64val;
-				newsize = sizeof(u64val);
-				break;
-			default:
-				/* NOTREACHED */
-				abort();
+		case CTLTYPE_STRING:
+			newval = newvalstr;
+			break;
+		default:
+			newsize = 0;
+			while ((cp = strsep(&newvalstr, " ,")) != NULL) {
+				if (*cp == '\0')
+					continue;
+				if (!parse_numeric(cp, fmt, kind, &newbuf,
+				    &newsize)) {
+					warnx("invalid %s '%s'%s",
+					    ctl_typename[kind & CTLTYPE],
+					    cp, line);
+					free(newbuf);
+					return (1);
+				}
+			}
+			newval = newbuf;
+			break;
 		}
 
-		if (errno != 0 || endptr == newvalstr ||
-		    (endptr != NULL && *endptr != '\0')) {
-			warnx("invalid %s '%s'%s", ctl_typename[kind & CTLTYPE],
-			    newvalstr, line);
-			return (1);
-		}
-
 		i = show_var(mib, len);
 		if (sysctl(mib, len, 0, 0, newval, newsize) == -1) {
+			free(newbuf);
 			if (!i && !bflag)
 				putchar('\n');
 			switch (errno) {
@@ -485,6 +526,7 @@ parse(const char *string, int lineno)
 				return (1);
 			}
 		}
+		free(newbuf);
 		if (!bflag)
 			printf(" -> ");
 		i = nflag;

From owner-svn-src-all@freebsd.org  Tue Mar 27 01:02:43 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26691F5A7EB;
 Tue, 27 Mar 2018 01:02:43 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id CBF8780D7C;
 Tue, 27 Mar 2018 01:02:42 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ADEE014B43;
 Tue, 27 Mar 2018 01:02:42 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2R12ggC059811;
 Tue, 27 Mar 2018 01:02:42 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2R12gON059810;
 Tue, 27 Mar 2018 01:02:42 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803270102.w2R12gON059810@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Tue, 27 Mar 2018 01:02:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331604 - stable/11/sys/i386/linux
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/11/sys/i386/linux
X-SVN-Commit-Revision: 331604
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 01:02:43 -0000

Author: emaste
Date: Tue Mar 27 01:02:42 2018
New Revision: 331604
URL: https://svnweb.freebsd.org/changeset/base/331604

Log:
  MFC r331234: Rationalize license text on Linuxolator files
  
  i386 linux.h missed in previous update.
  
  Approved by:	sos
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/sys/i386/linux/linux.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/i386/linux/linux.h
==============================================================================
--- stable/11/sys/i386/linux/linux.h	Tue Mar 27 00:35:35 2018	(r331603)
+++ stable/11/sys/i386/linux/linux.h	Tue Mar 27 01:02:42 2018	(r331604)
@@ -1,5 +1,5 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
  *
  * Copyright (c) 1994-1996 Søren Schmidt
  * All rights reserved.
@@ -8,25 +8,22 @@
  * 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
- *    in this position and unchanged.
+ *    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. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission
  *
- * 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.
- *
+ * 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$
  */
 

From owner-svn-src-all@freebsd.org  Tue Mar 27 03:27:03 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D160F6D266;
 Tue, 27 Mar 2018 03:27:03 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B558768F91;
 Tue, 27 Mar 2018 03:27:02 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B02BE16675;
 Tue, 27 Mar 2018 03:27:02 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2R3R2ir030320;
 Tue, 27 Mar 2018 03:27:02 GMT (envelope-from jeff@FreeBSD.org)
Received: (from jeff@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2R3R2f9030318;
 Tue, 27 Mar 2018 03:27:02 GMT (envelope-from jeff@FreeBSD.org)
Message-Id: <201803270327.w2R3R2f9030318@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jeff set sender to
 jeff@FreeBSD.org using -f
From: Jeff Roberson 
Date: Tue, 27 Mar 2018 03:27:02 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331605 - head/sys/vm
X-SVN-Group: head
X-SVN-Commit-Author: jeff
X-SVN-Commit-Paths: head/sys/vm
X-SVN-Commit-Revision: 331605
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 03:27:03 -0000

Author: jeff
Date: Tue Mar 27 03:27:02 2018
New Revision: 331605
URL: https://svnweb.freebsd.org/changeset/base/331605

Log:
  Move vm_ndomains to vm.h where it can be used with a single header include
  rather than requiring a half-dozen.  Many non-vm files may want to know
  the number of valid domains.
  
  Sponsored by:	Netflix, Dell/EMC Isilon

Modified:
  head/sys/vm/vm.h
  head/sys/vm/vm_phys.h

Modified: head/sys/vm/vm.h
==============================================================================
--- head/sys/vm/vm.h	Tue Mar 27 01:02:42 2018	(r331604)
+++ head/sys/vm/vm.h	Tue Mar 27 03:27:02 2018	(r331605)
@@ -148,6 +148,8 @@ extern void vm_ksubmap_init(struct kva_md_info *);
 
 extern int old_mlock;
 
+extern int vm_ndomains;
+
 struct ucred;
 int swap_reserve(vm_ooffset_t incr);
 int swap_reserve_by_cred(vm_ooffset_t incr, struct ucred *cred);

Modified: head/sys/vm/vm_phys.h
==============================================================================
--- head/sys/vm/vm_phys.h	Tue Mar 27 01:02:42 2018	(r331604)
+++ head/sys/vm/vm_phys.h	Tue Mar 27 03:27:02 2018	(r331605)
@@ -52,7 +52,6 @@ struct mem_affinity {
 extern struct mem_affinity *mem_affinity;
 extern int *mem_locality;
 #endif
-extern int vm_ndomains;
 
 struct vm_freelist {
 	struct pglist pl;

From owner-svn-src-all@freebsd.org  Tue Mar 27 03:37:05 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 90B93F6E005;
 Tue, 27 Mar 2018 03:37:05 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 676FE697EB;
 Tue, 27 Mar 2018 03:37:05 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6263F16829;
 Tue, 27 Mar 2018 03:37:05 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2R3b5sO035292;
 Tue, 27 Mar 2018 03:37:05 GMT (envelope-from jeff@FreeBSD.org)
Received: (from jeff@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2R3b4iv035285;
 Tue, 27 Mar 2018 03:37:04 GMT (envelope-from jeff@FreeBSD.org)
Message-Id: <201803270337.w2R3b4iv035285@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jeff set sender to
 jeff@FreeBSD.org using -f
From: Jeff Roberson 
Date: Tue, 27 Mar 2018 03:37:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331606 - in head/sys: amd64/include i386/include x86/x86
 x86/xen
X-SVN-Group: head
X-SVN-Commit-Author: jeff
X-SVN-Commit-Paths: in head/sys: amd64/include i386/include x86/x86 x86/xen
X-SVN-Commit-Revision: 331606
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 03:37:05 -0000

Author: jeff
Date: Tue Mar 27 03:37:04 2018
New Revision: 331606
URL: https://svnweb.freebsd.org/changeset/base/331606

Log:
  Only use CPUs in the domain the device is attached to for default
  assignment.  Device drivers are able to override the default assignment
  if they bind directly.  There are severe performance penalties for
  handling interrupts on remote CPUs and this should only be done in
  very controlled circumstances.
  
  Reviewed by:	jhb, kib
  Tested by:	pho (earlier version)
  Sponsored by:	Netflix, Dell/EMC Isilon
  Differential Revision:	https://reviews.freebsd.org/D14838

Modified:
  head/sys/amd64/include/intr_machdep.h
  head/sys/i386/include/intr_machdep.h
  head/sys/x86/x86/intr_machdep.c
  head/sys/x86/x86/io_apic.c
  head/sys/x86/x86/msi.c
  head/sys/x86/x86/nexus.c
  head/sys/x86/xen/xen_intr.c

Modified: head/sys/amd64/include/intr_machdep.h
==============================================================================
--- head/sys/amd64/include/intr_machdep.h	Tue Mar 27 03:27:02 2018	(r331605)
+++ head/sys/amd64/include/intr_machdep.h	Tue Mar 27 03:37:04 2018	(r331606)
@@ -132,6 +132,7 @@ struct intsrc {
 	u_long *is_straycount;
 	u_int is_index;
 	u_int is_handlers;
+	u_int is_domain;
 	u_int is_cpu;
 };
 
@@ -168,7 +169,7 @@ void	intr_add_cpu(u_int cpu);
 #endif
 int	intr_add_handler(const char *name, int vector, driver_filter_t filter, 
 			 driver_intr_t handler, void *arg, enum intr_type flags, 
-			 void **cookiep);    
+			 void **cookiep, int domain);    
 #ifdef SMP
 int	intr_bind(u_int vector, u_char cpu);
 #endif
@@ -176,7 +177,7 @@ int	intr_config_intr(int vector, enum intr_trigger tri
     enum intr_polarity pol);
 int	intr_describe(u_int vector, void *ih, const char *descr);
 void	intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame);
-u_int	intr_next_cpu(void);
+u_int	intr_next_cpu(int domain);
 struct intsrc *intr_lookup_source(int vector);
 int	intr_register_pic(struct pic *pic);
 int	intr_register_source(struct intsrc *isrc);

Modified: head/sys/i386/include/intr_machdep.h
==============================================================================
--- head/sys/i386/include/intr_machdep.h	Tue Mar 27 03:27:02 2018	(r331605)
+++ head/sys/i386/include/intr_machdep.h	Tue Mar 27 03:37:04 2018	(r331606)
@@ -132,6 +132,7 @@ struct intsrc {
 	u_long *is_straycount;
 	u_int is_index;
 	u_int is_handlers;
+	u_int is_domain;
 	u_int is_cpu;
 };
 
@@ -158,7 +159,8 @@ void	elcr_write_trigger(u_int irq, enum intr_trigger t
 void	intr_add_cpu(u_int cpu);
 #endif
 int	intr_add_handler(const char *name, int vector, driver_filter_t filter,
-    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep);
+    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
+    int domain);
 #ifdef SMP
 int	intr_bind(u_int vector, u_char cpu);
 #endif
@@ -166,7 +168,7 @@ int	intr_config_intr(int vector, enum intr_trigger tri
     enum intr_polarity pol);
 int	intr_describe(u_int vector, void *ih, const char *descr);
 void	intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame);
-u_int	intr_next_cpu(void);
+u_int	intr_next_cpu(int domain);
 struct intsrc *intr_lookup_source(int vector);
 int	intr_register_pic(struct pic *pic);
 int	intr_register_source(struct intsrc *isrc);

Modified: head/sys/x86/x86/intr_machdep.c
==============================================================================
--- head/sys/x86/x86/intr_machdep.c	Tue Mar 27 03:27:02 2018	(r331605)
+++ head/sys/x86/x86/intr_machdep.c	Tue Mar 27 03:37:04 2018	(r331606)
@@ -71,6 +71,8 @@
 #include 
 #endif
 
+#include 
+
 #define	MAX_STRAY_LOG	5
 
 typedef void (*mask_fn)(void *);
@@ -185,7 +187,8 @@ intr_lookup_source(int vector)
 
 int
 intr_add_handler(const char *name, int vector, driver_filter_t filter,
-    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep)
+    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
+    int domain)
 {
 	struct intsrc *isrc;
 	int error;
@@ -200,6 +203,7 @@ intr_add_handler(const char *name, int vector, driver_
 		intrcnt_updatename(isrc);
 		isrc->is_handlers++;
 		if (isrc->is_handlers == 1) {
+			isrc->is_domain = domain;
 			isrc->is_pic->pic_enable_intr(isrc);
 			isrc->is_pic->pic_enable_source(isrc);
 		}
@@ -507,14 +511,27 @@ DB_SHOW_COMMAND(irqs, db_show_irqs)
  */
 
 cpuset_t intr_cpus = CPUSET_T_INITIALIZER(0x1);
-static int current_cpu;
+static int current_cpu[MAXMEMDOM];
 
+static void
+intr_init_cpus(void)
+{
+	int i;
+
+	for (i = 0; i < vm_ndomains; i++) {
+		current_cpu[i] = 0;
+		if (!CPU_ISSET(current_cpu[i], &intr_cpus) ||
+		    !CPU_ISSET(current_cpu[i], &cpuset_domain[i]))
+			intr_next_cpu(i);
+	}
+}
+
 /*
  * Return the CPU that the next interrupt source should use.  For now
  * this just returns the next local APIC according to round-robin.
  */
 u_int
-intr_next_cpu(void)
+intr_next_cpu(int domain)
 {
 	u_int apic_id;
 
@@ -529,12 +546,13 @@ intr_next_cpu(void)
 #endif
 
 	mtx_lock_spin(&icu_lock);
-	apic_id = cpu_apic_ids[current_cpu];
+	apic_id = cpu_apic_ids[current_cpu[domain]];
 	do {
-		current_cpu++;
-		if (current_cpu > mp_maxid)
-			current_cpu = 0;
-	} while (!CPU_ISSET(current_cpu, &intr_cpus));
+		current_cpu[domain]++;
+		if (current_cpu[domain] > mp_maxid)
+			current_cpu[domain] = 0;
+	} while (!CPU_ISSET(current_cpu[domain], &intr_cpus) ||
+	    !CPU_ISSET(current_cpu[domain], &cpuset_domain[domain]));
 	mtx_unlock_spin(&icu_lock);
 	return (apic_id);
 }
@@ -568,7 +586,18 @@ intr_add_cpu(u_int cpu)
 	CPU_SET(cpu, &intr_cpus);
 }
 
-#ifndef EARLY_AP_STARTUP
+#ifdef EARLY_AP_STARTUP
+static void
+intr_smp_startup(void *arg __unused)
+{
+
+	intr_init_cpus();
+	return;
+}
+SYSINIT(intr_smp_startup, SI_SUB_SMP, SI_ORDER_SECOND, intr_smp_startup,
+    NULL);
+
+#else
 /*
  * Distribute all the interrupt sources among the available CPUs once the
  * AP's have been launched.
@@ -580,6 +609,7 @@ intr_shuffle_irqs(void *arg __unused)
 	u_int cpu;
 	int i;
 
+	intr_init_cpus();
 	/* Don't bother on UP. */
 	if (mp_ncpus == 1)
 		return;
@@ -599,12 +629,12 @@ intr_shuffle_irqs(void *arg __unused)
 			 */
 			cpu = isrc->is_event->ie_cpu;
 			if (cpu == NOCPU)
-				cpu = current_cpu;
+				cpu = current_cpu[isrc->is_domain];
 			if (isrc->is_pic->pic_assign_cpu(isrc,
 			    cpu_apic_ids[cpu]) == 0) {
 				isrc->is_cpu = cpu;
 				if (isrc->is_event->ie_cpu == NOCPU)
-					intr_next_cpu();
+					intr_next_cpu(isrc->is_domain);
 			}
 		}
 	}
@@ -635,10 +665,11 @@ sysctl_hw_intrs(SYSCTL_HANDLER_ARGS)
 		isrc = interrupt_sources[i];
 		if (isrc == NULL)
 			continue;
-		sbuf_printf(&sbuf, "%s:%d @%d: %ld\n",
+		sbuf_printf(&sbuf, "%s:%d @cpu%d(domain%d): %ld\n",
 		    isrc->is_event->ie_fullname,
 		    isrc->is_index,
 		    isrc->is_cpu,
+		    isrc->is_domain,
 		    *isrc->is_count);
 	}
 
@@ -697,7 +728,7 @@ intr_balance(void *dummy __unused, int pending __unuse
 	 * Restart the scan from the same location to avoid moving in the
 	 * common case.
 	 */
-	current_cpu = 0;
+	intr_init_cpus();
 
 	/*
 	 * Assign round-robin from most loaded to least.
@@ -706,8 +737,8 @@ intr_balance(void *dummy __unused, int pending __unuse
 		isrc = interrupt_sorted[i];
 		if (isrc == NULL  || isrc->is_event->ie_cpu != NOCPU)
 			continue;
-		cpu = current_cpu;
-		intr_next_cpu();
+		cpu = current_cpu[isrc->is_domain];
+		intr_next_cpu(isrc->is_domain);
 		if (isrc->is_cpu != cpu &&
 		    isrc->is_pic->pic_assign_cpu(isrc,
 		    cpu_apic_ids[cpu]) == 0)
@@ -735,7 +766,7 @@ SYSINIT(intr_balance_init, SI_SUB_SMP, SI_ORDER_ANY, i
  * Always route interrupts to the current processor in the UP case.
  */
 u_int
-intr_next_cpu(void)
+intr_next_cpu(int domain)
 {
 
 	return (PCPU_GET(apic_id));

Modified: head/sys/x86/x86/io_apic.c
==============================================================================
--- head/sys/x86/x86/io_apic.c	Tue Mar 27 03:27:02 2018	(r331605)
+++ head/sys/x86/x86/io_apic.c	Tue Mar 27 03:37:04 2018	(r331606)
@@ -499,7 +499,7 @@ ioapic_enable_intr(struct intsrc *isrc)
 	struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc;
 
 	if (intpin->io_vector == 0)
-		if (ioapic_assign_cpu(isrc, intr_next_cpu()) != 0)
+		if (ioapic_assign_cpu(isrc, intr_next_cpu(isrc->is_domain)) != 0)
 			panic("Couldn't find an APIC vector for IRQ %d",
 			    intpin->io_irq);
 	apic_enable_vector(intpin->io_cpu, intpin->io_vector);

Modified: head/sys/x86/x86/msi.c
==============================================================================
--- head/sys/x86/x86/msi.c	Tue Mar 27 03:27:02 2018	(r331605)
+++ head/sys/x86/x86/msi.c	Tue Mar 27 03:37:04 2018	(r331606)
@@ -363,7 +363,7 @@ int
 msi_alloc(device_t dev, int count, int maxcount, int *irqs)
 {
 	struct msi_intsrc *msi, *fsrc;
-	u_int cpu;
+	u_int cpu, domain;
 	int cnt, i, *mirqs, vector;
 #ifdef ACPI_DMAR
 	u_int cookies[count];
@@ -373,6 +373,9 @@ msi_alloc(device_t dev, int count, int maxcount, int *
 	if (!msi_enabled)
 		return (ENXIO);
 
+	if (bus_get_domain(dev, &domain) != 0)
+		domain = 0;
+
 	if (count > 1)
 		mirqs = malloc(count * sizeof(*mirqs), M_MSI, M_WAITOK);
 	else
@@ -420,7 +423,7 @@ again:
 	KASSERT(cnt == count, ("count mismatch"));
 
 	/* Allocate 'count' IDT vectors. */
-	cpu = intr_next_cpu();
+	cpu = intr_next_cpu(domain);
 	vector = apic_alloc_vectors(cpu, irqs, count, maxcount);
 	if (vector == 0) {
 		mtx_unlock(&msi_lock);
@@ -610,7 +613,7 @@ int
 msix_alloc(device_t dev, int *irq)
 {
 	struct msi_intsrc *msi;
-	u_int cpu;
+	u_int cpu, domain;
 	int i, vector;
 #ifdef ACPI_DMAR
 	u_int cookie;
@@ -620,6 +623,9 @@ msix_alloc(device_t dev, int *irq)
 	if (!msi_enabled)
 		return (ENXIO);
 
+	if (bus_get_domain(dev, &domain) != 0)
+		domain = 0;
+
 again:
 	mtx_lock(&msi_lock);
 
@@ -651,7 +657,7 @@ again:
 	}
 
 	/* Allocate an IDT vector. */
-	cpu = intr_next_cpu();
+	cpu = intr_next_cpu(domain);
 	vector = apic_alloc_vector(cpu, i);
 	if (vector == 0) {
 		mtx_unlock(&msi_lock);

Modified: head/sys/x86/x86/nexus.c
==============================================================================
--- head/sys/x86/x86/nexus.c	Tue Mar 27 03:27:02 2018	(r331605)
+++ head/sys/x86/x86/nexus.c	Tue Mar 27 03:37:04 2018	(r331606)
@@ -573,7 +573,7 @@ nexus_setup_intr(device_t bus, device_t child, struct 
 		 int flags, driver_filter_t filter, void (*ihand)(void *),
 		 void *arg, void **cookiep)
 {
-	int		error;
+	int		error, domain;
 
 	/* somebody tried to setup an irq that failed to allocate! */
 	if (irq == NULL)
@@ -589,9 +589,11 @@ nexus_setup_intr(device_t bus, device_t child, struct 
 	error = rman_activate_resource(irq);
 	if (error)
 		return (error);
+	if (bus_get_domain(child, &domain) != 0)
+		domain = 0;
 
 	error = intr_add_handler(device_get_nameunit(child),
-	    rman_get_start(irq), filter, ihand, arg, flags, cookiep);
+	    rman_get_start(irq), filter, ihand, arg, flags, cookiep, domain);
 
 	return (error);
 }

Modified: head/sys/x86/xen/xen_intr.c
==============================================================================
--- head/sys/x86/xen/xen_intr.c	Tue Mar 27 03:27:02 2018	(r331605)
+++ head/sys/x86/xen/xen_intr.c	Tue Mar 27 03:37:04 2018	(r331606)
@@ -430,7 +430,7 @@ xen_intr_bind_isrc(struct xenisrc **isrcp, evtchn_port
 		 * unless specified otherwise, so shuffle them to balance
 		 * the interrupt load.
 		 */
-		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu());
+		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu(0));
 	}
 #endif
 
@@ -1562,7 +1562,7 @@ xen_intr_add_handler(const char *name, driver_filter_t
 		return (EINVAL);
 
 	error = intr_add_handler(name, isrc->xi_vector,filter, handler, arg,
-	    flags|INTR_EXCL, &isrc->xi_cookie);
+	    flags|INTR_EXCL, &isrc->xi_cookie, 0);
 	if (error != 0) {
 		printf(
 		    "%s: xen_intr_add_handler: intr_add_handler failed: %d\n",

From owner-svn-src-all@freebsd.org  Tue Mar 27 05:19:13 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 58927F4E4DE;
 Tue, 27 Mar 2018 05:19:13 +0000 (UTC)
 (envelope-from danfe@freebsd.org)
Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "freefall.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 0C13B6D6F8;
 Tue, 27 Mar 2018 05:19:13 +0000 (UTC)
 (envelope-from danfe@freebsd.org)
Received: by freefall.freebsd.org (Postfix, from userid 1033)
 id 0297C1C031; Tue, 27 Mar 2018 05:19:12 +0000 (UTC)
Date: Tue, 27 Mar 2018 05:19:12 +0000
From: Alexey Dokuchaev 
To: John Baldwin 
Cc: Warner Losh , Kyle Evans ,
 svn-src-head@freebsd.org, svn-src-all@freebsd.org,
 src-committers 
Subject: Re: svn commit: r331209 - head
Message-ID: <20180327051912.GA5729@FreeBSD.org>
References: <201803191527.w2JFRr7B058668@repo.freebsd.org>
 
 <20180322043938.GA8311@FreeBSD.org>
 <3226647.aiAOVF4eaK@ralph.baldwin.cx>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3226647.aiAOVF4eaK@ralph.baldwin.cx>
User-Agent: Mutt/1.9.2 (2017-12-15)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 05:19:13 -0000

On Thu, Mar 22, 2018 at 08:52:47AM -0700, John Baldwin wrote:
> On Thursday, March 22, 2018 04:39:38 AM Alexey Dokuchaev wrote:
> > > ...
> > Right, but John had mentioned extra reboot *between* installkernel and
> > installworld, which I've never heard of before.
> 
> From the end up of src/UPDATING:
> 
>         
>         make buildworld
>         make kernel KERNCONF=YOUR_KERNEL_HERE
>         

If by "reboot" in your original message you meant "drop to single user"
then there's no confusion.  It's just that in my understanding "reboot"
means, well, reboot.

./danfe

From owner-svn-src-all@freebsd.org  Tue Mar 27 06:15:54 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E56B7F5211B;
 Tue, 27 Mar 2018 06:15:53 +0000 (UTC)
 (envelope-from ohartmann@walstatt.org)
Received: from mout.gmx.net (mout.gmx.net [212.227.17.21])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4D39F6FE1A;
 Tue, 27 Mar 2018 06:15:52 +0000 (UTC)
 (envelope-from ohartmann@walstatt.org)
Received: from freyja.zeit4.iv.bundesimmobilien.de ([87.138.105.249]) by
 mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id
 0LkSOt-1ePSKw36Mt-00cO5C; Tue, 27 Mar 2018 08:15:45 +0200
Date: Tue, 27 Mar 2018 08:15:35 +0200
From: "O. Hartmann" 
To: Jeff Roberson 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: Re: svn commit: r331606 - in head/sys: amd64/include i386/include
 x86/x86 x86/xen
Message-ID: <20180327081535.0dacffcb@freyja.zeit4.iv.bundesimmobilien.de>
In-Reply-To: <201803270337.w2R3b4iv035285@repo.freebsd.org>
References: <201803270337.w2R3b4iv035285@repo.freebsd.org>
Organization: Walstatt
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:ozmCPne46YJYThQ9vFU2u/r++3JOuYy/JqhAnwU/6Z0Nz8stslX
 ZEBT5bByn7yQn6Fo/FNAAtWD/xPIQ0xWeEmzrXnGRaw1/McckAz5xxHnUdyyribyA0NIhg0
 ky3WOkL/v3ACtHA+JKBDNRsyehcsQl8A2RYrJDS1ffxb3tIz6AXLjZleZqmvFLlsh9UkNwC
 YcwPPuMwQ0WHXOOMW9NXA==
X-UI-Out-Filterresults: notjunk:1;V01:K0:jksG2GyoapA=:YgwsPycWyXESzAu9kPiVAi
 VjeHu4E1au/GjOX/cvp/TamTefRAQvsPg8kyrSZVTkdYYTe8evB26fpeBk5fzc0QwVZ0Qzgmd
 jVq9I5TdXmKYya43vlkDakbKDolkX7Ra++qeZz6gvjRRw/ur1jl3WbGDYysuEpsMhkyw2RH9f
 pNlXQjIMCQl2sOE9u9N1LGgHudQQpbSqtAbO/rN9zovMP4dmire1RwqxiMJLA1k6RSkcYMx7V
 sK7KOgaw6+MnrOAQg2Xvskgvje6xSnjCpoGAABvC5eLlV2kQzJfRDevpA+keaEagt8fTJedeC
 g195grn0OHOe5SadY95h1DDhdx89xQ6dZpIj1kLyFCZmP4mmFnlqh31bIexN+kZR8IoERywv0
 bEz8xTlvSDoMtncIJEfzQCUbSbnnbuxul0cmMRU9IwJ4dtsw6m+QcQacVIB2u8phLEA9ZmMWi
 /6ppOW7AS1Uy/G95K8Q3MnuZsi0DWT6/rNwZxQzBxy83aKPwEAWyzusvQOjGPQX358d3GFIA7
 iShG79x1OAC4sk93AnSrlhHrHQBZUtDxJbrSSgnGy9rmAjOXhOVxdYAd4A5LLiGUAI1iIonBg
 KwS2efaBOFgnFi+m57b6IjXvnDyLe2LoqmFhEj3jYLct9ILcSQyr8EO2+UnqQh958TQQz7wgm
 NVZMUuoRdrTL6fwuO5Zo9J0PrM5CzC2Sql3D0JKKoX32T4aa5sMdwgwPMQJPDQvw1+styIBXH
 6CIU7vJHxhvBpgkPMzOlY/HU8hhdF4kmM8iGlpNc8EDfbBdhCb8J9ZPqqilmwBEzjY+Ohb2oZ
 uffdCaU3+1h6vcNMZ9qU7LnfG/Hf+qFoURy3RJb3rvHLyKNZIY=
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 06:15:54 -0000

On Tue, 27 Mar 2018 03:37:04 +0000 (UTC)
Jeff Roberson  wrote:

> Author: jeff
> Date: Tue Mar 27 03:37:04 2018
> New Revision: 331606
> URL: https://svnweb.freebsd.org/changeset/base/331606
> 
> Log:
>   Only use CPUs in the domain the device is attached to for default
>   assignment.  Device drivers are able to override the default assignment
>   if they bind directly.  There are severe performance penalties for
>   handling interrupts on remote CPUs and this should only be done in
>   very controlled circumstances.
>   
>   Reviewed by:	jhb, kib
>   Tested by:	pho (earlier version)
>   Sponsored by:	Netflix, Dell/EMC Isilon
>   Differential Revision:	https://reviews.freebsd.org/D14838
> 
> Modified:
>   head/sys/amd64/include/intr_machdep.h
>   head/sys/i386/include/intr_machdep.h
>   head/sys/x86/x86/intr_machdep.c
>   head/sys/x86/x86/io_apic.c
>   head/sys/x86/x86/msi.c
>   head/sys/x86/x86/nexus.c
>   head/sys/x86/xen/xen_intr.c
> 
> Modified: head/sys/amd64/include/intr_machdep.h
> ==============================================================================
> --- head/sys/amd64/include/intr_machdep.h	Tue Mar 27 03:27:02
> 2018	(r331605) +++ head/sys/amd64/include/intr_machdep.h	Tue
> Mar 27 03:37:04 2018	(r331606) @@ -132,6 +132,7 @@ struct intsrc {
>  	u_long *is_straycount;
>  	u_int is_index;
>  	u_int is_handlers;
> +	u_int is_domain;
>  	u_int is_cpu;
>  };
>  
> @@ -168,7 +169,7 @@ void	intr_add_cpu(u_int cpu);
>  #endif
>  int	intr_add_handler(const char *name, int vector, driver_filter_t
> filter, driver_intr_t handler, void *arg, enum intr_type flags, 
> -			 void **cookiep);    
> +			 void **cookiep, int domain);    
>  #ifdef SMP
>  int	intr_bind(u_int vector, u_char cpu);
>  #endif
> @@ -176,7 +177,7 @@ int	intr_config_intr(int vector, enum intr_trigger
> tri enum intr_polarity pol);
>  int	intr_describe(u_int vector, void *ih, const char *descr);
>  void	intr_execute_handlers(struct intsrc *isrc, struct trapframe
> *frame); -u_int	intr_next_cpu(void);
> +u_int	intr_next_cpu(int domain);
>  struct intsrc *intr_lookup_source(int vector);
>  int	intr_register_pic(struct pic *pic);
>  int	intr_register_source(struct intsrc *isrc);
> 
> Modified: head/sys/i386/include/intr_machdep.h
> ==============================================================================
> --- head/sys/i386/include/intr_machdep.h	Tue Mar 27 03:27:02
> 2018	(r331605) +++ head/sys/i386/include/intr_machdep.h	Tue Mar
> 27 03:37:04 2018	(r331606) @@ -132,6 +132,7 @@ struct intsrc {
>  	u_long *is_straycount;
>  	u_int is_index;
>  	u_int is_handlers;
> +	u_int is_domain;
>  	u_int is_cpu;
>  };
>  
> @@ -158,7 +159,8 @@ void	elcr_write_trigger(u_int irq, enum
> intr_trigger t void	intr_add_cpu(u_int cpu);
>  #endif
>  int	intr_add_handler(const char *name, int vector, driver_filter_t
> filter,
> -    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep);
> +    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
> +    int domain);
>  #ifdef SMP
>  int	intr_bind(u_int vector, u_char cpu);
>  #endif
> @@ -166,7 +168,7 @@ int	intr_config_intr(int vector, enum intr_trigger
> tri enum intr_polarity pol);
>  int	intr_describe(u_int vector, void *ih, const char *descr);
>  void	intr_execute_handlers(struct intsrc *isrc, struct trapframe
> *frame); -u_int	intr_next_cpu(void);
> +u_int	intr_next_cpu(int domain);
>  struct intsrc *intr_lookup_source(int vector);
>  int	intr_register_pic(struct pic *pic);
>  int	intr_register_source(struct intsrc *isrc);
> 
> Modified: head/sys/x86/x86/intr_machdep.c
> ==============================================================================
> --- head/sys/x86/x86/intr_machdep.c	Tue Mar 27 03:27:02 2018
> (r331605) +++ head/sys/x86/x86/intr_machdep.c	Tue Mar 27 03:37:04
> 2018	(r331606) @@ -71,6 +71,8 @@
>  #include 
>  #endif
>  
> +#include 
> +
>  #define	MAX_STRAY_LOG	5
>  
>  typedef void (*mask_fn)(void *);
> @@ -185,7 +187,8 @@ intr_lookup_source(int vector)
>  
>  int
>  intr_add_handler(const char *name, int vector, driver_filter_t filter,
> -    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep)
> +    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
> +    int domain)
>  {
>  	struct intsrc *isrc;
>  	int error;
> @@ -200,6 +203,7 @@ intr_add_handler(const char *name, int vector, driver_
>  		intrcnt_updatename(isrc);
>  		isrc->is_handlers++;
>  		if (isrc->is_handlers == 1) {
> +			isrc->is_domain = domain;
>  			isrc->is_pic->pic_enable_intr(isrc);
>  			isrc->is_pic->pic_enable_source(isrc);
>  		}
> @@ -507,14 +511,27 @@ DB_SHOW_COMMAND(irqs, db_show_irqs)
>   */
>  
>  cpuset_t intr_cpus = CPUSET_T_INITIALIZER(0x1);
> -static int current_cpu;
> +static int current_cpu[MAXMEMDOM];
>  
> +static void
> +intr_init_cpus(void)
> +{
> +	int i;
> +
> +	for (i = 0; i < vm_ndomains; i++) {
> +		current_cpu[i] = 0;
> +		if (!CPU_ISSET(current_cpu[i], &intr_cpus) ||
> +		    !CPU_ISSET(current_cpu[i], &cpuset_domain[i]))
> +			intr_next_cpu(i);
> +	}
> +}
> +
>  /*
>   * Return the CPU that the next interrupt source should use.  For now
>   * this just returns the next local APIC according to round-robin.
>   */
>  u_int
> -intr_next_cpu(void)
> +intr_next_cpu(int domain)
>  {
>  	u_int apic_id;
>  
> @@ -529,12 +546,13 @@ intr_next_cpu(void)
>  #endif
>  
>  	mtx_lock_spin(&icu_lock);
> -	apic_id = cpu_apic_ids[current_cpu];
> +	apic_id = cpu_apic_ids[current_cpu[domain]];
>  	do {
> -		current_cpu++;
> -		if (current_cpu > mp_maxid)
> -			current_cpu = 0;
> -	} while (!CPU_ISSET(current_cpu, &intr_cpus));
> +		current_cpu[domain]++;
> +		if (current_cpu[domain] > mp_maxid)
> +			current_cpu[domain] = 0;
> +	} while (!CPU_ISSET(current_cpu[domain], &intr_cpus) ||
> +	    !CPU_ISSET(current_cpu[domain], &cpuset_domain[domain]));
>  	mtx_unlock_spin(&icu_lock);
>  	return (apic_id);
>  }
> @@ -568,7 +586,18 @@ intr_add_cpu(u_int cpu)
>  	CPU_SET(cpu, &intr_cpus);
>  }
>  
> -#ifndef EARLY_AP_STARTUP
> +#ifdef EARLY_AP_STARTUP
> +static void
> +intr_smp_startup(void *arg __unused)
> +{
> +
> +	intr_init_cpus();
> +	return;
> +}
> +SYSINIT(intr_smp_startup, SI_SUB_SMP, SI_ORDER_SECOND, intr_smp_startup,
> +    NULL);
> +
> +#else
>  /*
>   * Distribute all the interrupt sources among the available CPUs once the
>   * AP's have been launched.
> @@ -580,6 +609,7 @@ intr_shuffle_irqs(void *arg __unused)
>  	u_int cpu;
>  	int i;
>  
> +	intr_init_cpus();
>  	/* Don't bother on UP. */
>  	if (mp_ncpus == 1)
>  		return;
> @@ -599,12 +629,12 @@ intr_shuffle_irqs(void *arg __unused)
>  			 */
>  			cpu = isrc->is_event->ie_cpu;
>  			if (cpu == NOCPU)
> -				cpu = current_cpu;
> +				cpu = current_cpu[isrc->is_domain];
>  			if (isrc->is_pic->pic_assign_cpu(isrc,
>  			    cpu_apic_ids[cpu]) == 0) {
>  				isrc->is_cpu = cpu;
>  				if (isrc->is_event->ie_cpu == NOCPU)
> -					intr_next_cpu();
> +					intr_next_cpu(isrc->is_domain);
>  			}
>  		}
>  	}
> @@ -635,10 +665,11 @@ sysctl_hw_intrs(SYSCTL_HANDLER_ARGS)
>  		isrc = interrupt_sources[i];
>  		if (isrc == NULL)
>  			continue;
> -		sbuf_printf(&sbuf, "%s:%d @%d: %ld\n",
> +		sbuf_printf(&sbuf, "%s:%d @cpu%d(domain%d): %ld\n",
>  		    isrc->is_event->ie_fullname,
>  		    isrc->is_index,
>  		    isrc->is_cpu,
> +		    isrc->is_domain,
>  		    *isrc->is_count);
>  	}
>  
> @@ -697,7 +728,7 @@ intr_balance(void *dummy __unused, int pending __unuse
>  	 * Restart the scan from the same location to avoid moving in the
>  	 * common case.
>  	 */
> -	current_cpu = 0;
> +	intr_init_cpus();
>  
>  	/*
>  	 * Assign round-robin from most loaded to least.
> @@ -706,8 +737,8 @@ intr_balance(void *dummy __unused, int pending __unuse
>  		isrc = interrupt_sorted[i];
>  		if (isrc == NULL  || isrc->is_event->ie_cpu != NOCPU)
>  			continue;
> -		cpu = current_cpu;
> -		intr_next_cpu();
> +		cpu = current_cpu[isrc->is_domain];
> +		intr_next_cpu(isrc->is_domain);
>  		if (isrc->is_cpu != cpu &&
>  		    isrc->is_pic->pic_assign_cpu(isrc,
>  		    cpu_apic_ids[cpu]) == 0)
> @@ -735,7 +766,7 @@ SYSINIT(intr_balance_init, SI_SUB_SMP, SI_ORDER_ANY, i
>   * Always route interrupts to the current processor in the UP case.
>   */
>  u_int
> -intr_next_cpu(void)
> +intr_next_cpu(int domain)
>  {
>  
>  	return (PCPU_GET(apic_id));
> 
> Modified: head/sys/x86/x86/io_apic.c
> ==============================================================================
> --- head/sys/x86/x86/io_apic.c	Tue Mar 27 03:27:02 2018
> (r331605) +++ head/sys/x86/x86/io_apic.c	Tue Mar 27 03:37:04
> 2018	(r331606) @@ -499,7 +499,7 @@ ioapic_enable_intr(struct intsrc
> *isrc) struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc;
>  
>  	if (intpin->io_vector == 0)
> -		if (ioapic_assign_cpu(isrc, intr_next_cpu()) != 0)
> +		if (ioapic_assign_cpu(isrc,
> intr_next_cpu(isrc->is_domain)) != 0) panic("Couldn't find an APIC vector for
> IRQ %d", intpin->io_irq);
>  	apic_enable_vector(intpin->io_cpu, intpin->io_vector);
> 
> Modified: head/sys/x86/x86/msi.c
> ==============================================================================
> --- head/sys/x86/x86/msi.c	Tue Mar 27 03:27:02 2018	(r331605)
> +++ head/sys/x86/x86/msi.c	Tue Mar 27 03:37:04 2018	(r331606)
> @@ -363,7 +363,7 @@ int
>  msi_alloc(device_t dev, int count, int maxcount, int *irqs)
>  {
>  	struct msi_intsrc *msi, *fsrc;
> -	u_int cpu;
> +	u_int cpu, domain;
>  	int cnt, i, *mirqs, vector;
>  #ifdef ACPI_DMAR
>  	u_int cookies[count];
> @@ -373,6 +373,9 @@ msi_alloc(device_t dev, int count, int maxcount, int *
>  	if (!msi_enabled)
>  		return (ENXIO);
>  
> +	if (bus_get_domain(dev, &domain) != 0)
> +		domain = 0;
> +
>  	if (count > 1)
>  		mirqs = malloc(count * sizeof(*mirqs), M_MSI, M_WAITOK);
>  	else
> @@ -420,7 +423,7 @@ again:
>  	KASSERT(cnt == count, ("count mismatch"));
>  
>  	/* Allocate 'count' IDT vectors. */
> -	cpu = intr_next_cpu();
> +	cpu = intr_next_cpu(domain);
>  	vector = apic_alloc_vectors(cpu, irqs, count, maxcount);
>  	if (vector == 0) {
>  		mtx_unlock(&msi_lock);
> @@ -610,7 +613,7 @@ int
>  msix_alloc(device_t dev, int *irq)
>  {
>  	struct msi_intsrc *msi;
> -	u_int cpu;
> +	u_int cpu, domain;
>  	int i, vector;
>  #ifdef ACPI_DMAR
>  	u_int cookie;
> @@ -620,6 +623,9 @@ msix_alloc(device_t dev, int *irq)
>  	if (!msi_enabled)
>  		return (ENXIO);
>  
> +	if (bus_get_domain(dev, &domain) != 0)
> +		domain = 0;
> +
>  again:
>  	mtx_lock(&msi_lock);
>  
> @@ -651,7 +657,7 @@ again:
>  	}
>  
>  	/* Allocate an IDT vector. */
> -	cpu = intr_next_cpu();
> +	cpu = intr_next_cpu(domain);
>  	vector = apic_alloc_vector(cpu, i);
>  	if (vector == 0) {
>  		mtx_unlock(&msi_lock);
> 
> Modified: head/sys/x86/x86/nexus.c
> ==============================================================================
> --- head/sys/x86/x86/nexus.c	Tue Mar 27 03:27:02 2018	(r331605)
> +++ head/sys/x86/x86/nexus.c	Tue Mar 27 03:37:04 2018	(r331606)
> @@ -573,7 +573,7 @@ nexus_setup_intr(device_t bus, device_t child, struct 
>  		 int flags, driver_filter_t filter, void (*ihand)(void *),
>  		 void *arg, void **cookiep)
>  {
> -	int		error;
> +	int		error, domain;
>  
>  	/* somebody tried to setup an irq that failed to allocate! */
>  	if (irq == NULL)
> @@ -589,9 +589,11 @@ nexus_setup_intr(device_t bus, device_t child, struct 
>  	error = rman_activate_resource(irq);
>  	if (error)
>  		return (error);
> +	if (bus_get_domain(child, &domain) != 0)
> +		domain = 0;
>  
>  	error = intr_add_handler(device_get_nameunit(child),
> -	    rman_get_start(irq), filter, ihand, arg, flags, cookiep);
> +	    rman_get_start(irq), filter, ihand, arg, flags, cookiep, domain);
>  
>  	return (error);
>  }
> 
> Modified: head/sys/x86/xen/xen_intr.c
> ==============================================================================
> --- head/sys/x86/xen/xen_intr.c	Tue Mar 27 03:27:02 2018
> (r331605) +++ head/sys/x86/xen/xen_intr.c	Tue Mar 27 03:37:04
> 2018	(r331606) @@ -430,7 +430,7 @@ xen_intr_bind_isrc(struct xenisrc
> **isrcp, evtchn_port
>  		 * unless specified otherwise, so shuffle them to balance
>  		 * the interrupt load.
>  		 */
> -		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu());
> +		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu(0));
>  	}
>  #endif
>  
> @@ -1562,7 +1562,7 @@ xen_intr_add_handler(const char *name, driver_filter_t
>  		return (EINVAL);
>  
>  	error = intr_add_handler(name, isrc->xi_vector,filter, handler, arg,
> -	    flags|INTR_EXCL, &isrc->xi_cookie);
> +	    flags|INTR_EXCL, &isrc->xi_cookie, 0);
>  	if (error != 0) {
>  		printf(
>  		    "%s: xen_intr_add_handler: intr_add_handler failed:
> %d\n", _______________________________________________
> svn-src-head@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org"

Has this been ever tested?

This commit makes ALL multi CPU systems I tested it on getting stuck on
detecting and reporting the physical and virtual (SMP) CPUs on all boxes.

Boot process is then stuck forever.

Kind regards

oh

From owner-svn-src-all@freebsd.org  Tue Mar 27 06:32:11 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF417F538FE;
 Tue, 27 Mar 2018 06:32:10 +0000 (UTC)
 (envelope-from o.hartmann@walstatt.org)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.15])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3CE3C70AEB;
 Tue, 27 Mar 2018 06:32:10 +0000 (UTC)
 (envelope-from o.hartmann@walstatt.org)
Received: from freyja.zeit4.iv.bundesimmobilien.de ([87.138.105.249]) by
 mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id
 0LvVYZ-1eaLkN0OlX-010e7z; Tue, 27 Mar 2018 08:26:52 +0200
Date: Tue, 27 Mar 2018 08:26:51 +0200
From: "O. Hartmann" 
Cc: Jeff Roberson , svn-src-head@freebsd.org,
 svn-src-all@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r331606 - in head/sys: amd64/include i386/include
 x86/x86 x86/xen
Message-ID: <20180327082651.28258a8c@freyja.zeit4.iv.bundesimmobilien.de>
In-Reply-To: <20180327081535.0dacffcb@freyja.zeit4.iv.bundesimmobilien.de>
References: <201803270337.w2R3b4iv035285@repo.freebsd.org>
 <20180327081535.0dacffcb@freyja.zeit4.iv.bundesimmobilien.de>
Organization: Walstatt
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:vJ8wdcAw/BvXBIpJbhR7apMWcDwgOkK55thTQpLn1brhi+O5a9b
 jsk5T2HRvezauYzX7uVn3xXG/6EZrAkz4cKYEmvKDWsMv2Yos1tdctCPCIVgywLN0j9x073
 JmdkmZTuqccupjWf0n56vCxey09c6K6Qk0VP6IfaCj3fN9EnHaPOHolnSFj1LRzEn6ygcdw
 +dapFNqBMtsmlM8NpRAqw==
X-UI-Out-Filterresults: notjunk:1;V01:K0:VbJ0Iew+aJc=:62UIWDh7GHLPhlbY7MpjPN
 m4LPw7gyjbftXji7m2MM+uaQeHaATpoG6POpELRW5aaNXD/vBp7v4szpd0ixjDgZBYgqSwRbe
 UrIhbPe7TmrWbHd7YUxhb7frpyPBcEDIwoiMT9s7sfEPqIz/GSIkEYCWIPG/AY8NNyfVYH8Is
 aVG/guscP7rRPXKsrhQUhkyUM/Beidp19qh4lXy0Kcbg9v3X/f8XZ/w3SDQKzsKzViOKMbPHX
 76fqBNOHAXQpyo7sFn5BhG31DU28ck/1zJyjn6GCcihQeLjCtH66I+kv2aBHbLj+//02OY/Eo
 efse8vDEdsmxes8padF5DNtwKGTYpSgcktWS4k2WdKfkDgxn9xmxJMNgmjSi81tcbxUCj1e6Y
 islKu4b/qpedCv6tec5pj9z3rt1JgOKwIUxrmz3J67fVSiXpXs5sv+mFA7WeJgoho5FG7w4G2
 CqH2fp/MA7lSX5FoomZekF1vWLFC/UMVaWcgxLOkLjpjyAA9q/yIWOc1vbPjh71/rKGrVtRce
 70mzqtWLXUGoV2aW6oMVN8yfp7U5c389zemt5u3BkH+l0T53yjTxNZ+PKHL8ZvIzxazRc05K1
 dFMwhvEE4gT6zqWYBY4velapiwsx5mQFwqmlFjZlzBamCxKAS8OwvVrkbYqmkDsYnjagbQsrF
 Qpr+Xir97s+6XPUfV2vWO3S23p7/s0OWvxkXSax01qxi3UQscYQHCokNU3kvJgD8fvK/x+mTL
 5Semmh5qPriE8VntEAK5MVgH7sTK2xZqEy86DU7j2gNchnQHG+HYjAH5rtvY1OqOxi0U+HK0n
 E/UFPKQmjPmz7Lumb1rCWAmzOK9W4T/F2SKQ9feIxsNIpSfAt8=
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 06:32:11 -0000

On Tue, 27 Mar 2018 08:15:35 +0200
"O. Hartmann"  wrote:

> On Tue, 27 Mar 2018 03:37:04 +0000 (UTC)
> Jeff Roberson  wrote:
> 
> > Author: jeff
> > Date: Tue Mar 27 03:37:04 2018
> > New Revision: 331606
> > URL: https://svnweb.freebsd.org/changeset/base/331606
> > 
> > Log:
> >   Only use CPUs in the domain the device is attached to for default
> >   assignment.  Device drivers are able to override the default assignment
> >   if they bind directly.  There are severe performance penalties for
> >   handling interrupts on remote CPUs and this should only be done in
> >   very controlled circumstances.
> >   
> >   Reviewed by:	jhb, kib
> >   Tested by:	pho (earlier version)
> >   Sponsored by:	Netflix, Dell/EMC Isilon
> >   Differential Revision:	https://reviews.freebsd.org/D14838
> > 
> > Modified:
> >   head/sys/amd64/include/intr_machdep.h
> >   head/sys/i386/include/intr_machdep.h
> >   head/sys/x86/x86/intr_machdep.c
> >   head/sys/x86/x86/io_apic.c
> >   head/sys/x86/x86/msi.c
> >   head/sys/x86/x86/nexus.c
> >   head/sys/x86/xen/xen_intr.c
> > 
> > Modified: head/sys/amd64/include/intr_machdep.h
> > ==============================================================================
> > --- head/sys/amd64/include/intr_machdep.h	Tue Mar 27 03:27:02
> > 2018	(r331605) +++ head/sys/amd64/include/intr_machdep.h	Tue
> > Mar 27 03:37:04 2018	(r331606) @@ -132,6 +132,7 @@ struct intsrc {
> >  	u_long *is_straycount;
> >  	u_int is_index;
> >  	u_int is_handlers;
> > +	u_int is_domain;
> >  	u_int is_cpu;
> >  };
> >  
> > @@ -168,7 +169,7 @@ void	intr_add_cpu(u_int cpu);
> >  #endif
> >  int	intr_add_handler(const char *name, int vector, driver_filter_t
> > filter, driver_intr_t handler, void *arg, enum intr_type flags, 
> > -			 void **cookiep);    
> > +			 void **cookiep, int domain);    
> >  #ifdef SMP
> >  int	intr_bind(u_int vector, u_char cpu);
> >  #endif
> > @@ -176,7 +177,7 @@ int	intr_config_intr(int vector, enum
> > intr_trigger tri enum intr_polarity pol);
> >  int	intr_describe(u_int vector, void *ih, const char *descr);
> >  void	intr_execute_handlers(struct intsrc *isrc, struct trapframe
> > *frame); -u_int	intr_next_cpu(void);
> > +u_int	intr_next_cpu(int domain);
> >  struct intsrc *intr_lookup_source(int vector);
> >  int	intr_register_pic(struct pic *pic);
> >  int	intr_register_source(struct intsrc *isrc);
> > 
> > Modified: head/sys/i386/include/intr_machdep.h
> > ==============================================================================
> > --- head/sys/i386/include/intr_machdep.h	Tue Mar 27 03:27:02
> > 2018	(r331605) +++ head/sys/i386/include/intr_machdep.h	Tue
> > Mar 27 03:37:04 2018	(r331606) @@ -132,6 +132,7 @@ struct intsrc {
> >  	u_long *is_straycount;
> >  	u_int is_index;
> >  	u_int is_handlers;
> > +	u_int is_domain;
> >  	u_int is_cpu;
> >  };
> >  
> > @@ -158,7 +159,8 @@ void	elcr_write_trigger(u_int irq, enum
> > intr_trigger t void	intr_add_cpu(u_int cpu);
> >  #endif
> >  int	intr_add_handler(const char *name, int vector, driver_filter_t
> > filter,
> > -    driver_intr_t handler, void *arg, enum intr_type flags, void
> > **cookiep);
> > +    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
> > +    int domain);
> >  #ifdef SMP
> >  int	intr_bind(u_int vector, u_char cpu);
> >  #endif
> > @@ -166,7 +168,7 @@ int	intr_config_intr(int vector, enum
> > intr_trigger tri enum intr_polarity pol);
> >  int	intr_describe(u_int vector, void *ih, const char *descr);
> >  void	intr_execute_handlers(struct intsrc *isrc, struct trapframe
> > *frame); -u_int	intr_next_cpu(void);
> > +u_int	intr_next_cpu(int domain);
> >  struct intsrc *intr_lookup_source(int vector);
> >  int	intr_register_pic(struct pic *pic);
> >  int	intr_register_source(struct intsrc *isrc);
> > 
> > Modified: head/sys/x86/x86/intr_machdep.c
> > ==============================================================================
> > --- head/sys/x86/x86/intr_machdep.c	Tue Mar 27 03:27:02 2018
> > (r331605) +++ head/sys/x86/x86/intr_machdep.c	Tue Mar 27 03:37:04
> > 2018	(r331606) @@ -71,6 +71,8 @@
> >  #include 
> >  #endif
> >  
> > +#include 
> > +
> >  #define	MAX_STRAY_LOG	5
> >  
> >  typedef void (*mask_fn)(void *);
> > @@ -185,7 +187,8 @@ intr_lookup_source(int vector)
> >  
> >  int
> >  intr_add_handler(const char *name, int vector, driver_filter_t filter,
> > -    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep)
> > +    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
> > +    int domain)
> >  {
> >  	struct intsrc *isrc;
> >  	int error;
> > @@ -200,6 +203,7 @@ intr_add_handler(const char *name, int vector, driver_
> >  		intrcnt_updatename(isrc);
> >  		isrc->is_handlers++;
> >  		if (isrc->is_handlers == 1) {
> > +			isrc->is_domain = domain;
> >  			isrc->is_pic->pic_enable_intr(isrc);
> >  			isrc->is_pic->pic_enable_source(isrc);
> >  		}
> > @@ -507,14 +511,27 @@ DB_SHOW_COMMAND(irqs, db_show_irqs)
> >   */
> >  
> >  cpuset_t intr_cpus = CPUSET_T_INITIALIZER(0x1);
> > -static int current_cpu;
> > +static int current_cpu[MAXMEMDOM];
> >  
> > +static void
> > +intr_init_cpus(void)
> > +{
> > +	int i;
> > +
> > +	for (i = 0; i < vm_ndomains; i++) {
> > +		current_cpu[i] = 0;
> > +		if (!CPU_ISSET(current_cpu[i], &intr_cpus) ||
> > +		    !CPU_ISSET(current_cpu[i], &cpuset_domain[i]))
> > +			intr_next_cpu(i);
> > +	}
> > +}
> > +
> >  /*
> >   * Return the CPU that the next interrupt source should use.  For now
> >   * this just returns the next local APIC according to round-robin.
> >   */
> >  u_int
> > -intr_next_cpu(void)
> > +intr_next_cpu(int domain)
> >  {
> >  	u_int apic_id;
> >  
> > @@ -529,12 +546,13 @@ intr_next_cpu(void)
> >  #endif
> >  
> >  	mtx_lock_spin(&icu_lock);
> > -	apic_id = cpu_apic_ids[current_cpu];
> > +	apic_id = cpu_apic_ids[current_cpu[domain]];
> >  	do {
> > -		current_cpu++;
> > -		if (current_cpu > mp_maxid)
> > -			current_cpu = 0;
> > -	} while (!CPU_ISSET(current_cpu, &intr_cpus));
> > +		current_cpu[domain]++;
> > +		if (current_cpu[domain] > mp_maxid)
> > +			current_cpu[domain] = 0;
> > +	} while (!CPU_ISSET(current_cpu[domain], &intr_cpus) ||
> > +	    !CPU_ISSET(current_cpu[domain], &cpuset_domain[domain]));
> >  	mtx_unlock_spin(&icu_lock);
> >  	return (apic_id);
> >  }
> > @@ -568,7 +586,18 @@ intr_add_cpu(u_int cpu)
> >  	CPU_SET(cpu, &intr_cpus);
> >  }
> >  
> > -#ifndef EARLY_AP_STARTUP
> > +#ifdef EARLY_AP_STARTUP
> > +static void
> > +intr_smp_startup(void *arg __unused)
> > +{
> > +
> > +	intr_init_cpus();
> > +	return;
> > +}
> > +SYSINIT(intr_smp_startup, SI_SUB_SMP, SI_ORDER_SECOND, intr_smp_startup,
> > +    NULL);
> > +
> > +#else
> >  /*
> >   * Distribute all the interrupt sources among the available CPUs once the
> >   * AP's have been launched.
> > @@ -580,6 +609,7 @@ intr_shuffle_irqs(void *arg __unused)
> >  	u_int cpu;
> >  	int i;
> >  
> > +	intr_init_cpus();
> >  	/* Don't bother on UP. */
> >  	if (mp_ncpus == 1)
> >  		return;
> > @@ -599,12 +629,12 @@ intr_shuffle_irqs(void *arg __unused)
> >  			 */
> >  			cpu = isrc->is_event->ie_cpu;
> >  			if (cpu == NOCPU)
> > -				cpu = current_cpu;
> > +				cpu = current_cpu[isrc->is_domain];
> >  			if (isrc->is_pic->pic_assign_cpu(isrc,
> >  			    cpu_apic_ids[cpu]) == 0) {
> >  				isrc->is_cpu = cpu;
> >  				if (isrc->is_event->ie_cpu == NOCPU)
> > -					intr_next_cpu();
> > +					intr_next_cpu(isrc->is_domain);
> >  			}
> >  		}
> >  	}
> > @@ -635,10 +665,11 @@ sysctl_hw_intrs(SYSCTL_HANDLER_ARGS)
> >  		isrc = interrupt_sources[i];
> >  		if (isrc == NULL)
> >  			continue;
> > -		sbuf_printf(&sbuf, "%s:%d @%d: %ld\n",
> > +		sbuf_printf(&sbuf, "%s:%d @cpu%d(domain%d): %ld\n",
> >  		    isrc->is_event->ie_fullname,
> >  		    isrc->is_index,
> >  		    isrc->is_cpu,
> > +		    isrc->is_domain,
> >  		    *isrc->is_count);
> >  	}
> >  
> > @@ -697,7 +728,7 @@ intr_balance(void *dummy __unused, int pending __unuse
> >  	 * Restart the scan from the same location to avoid moving in the
> >  	 * common case.
> >  	 */
> > -	current_cpu = 0;
> > +	intr_init_cpus();
> >  
> >  	/*
> >  	 * Assign round-robin from most loaded to least.
> > @@ -706,8 +737,8 @@ intr_balance(void *dummy __unused, int pending __unuse
> >  		isrc = interrupt_sorted[i];
> >  		if (isrc == NULL  || isrc->is_event->ie_cpu != NOCPU)
> >  			continue;
> > -		cpu = current_cpu;
> > -		intr_next_cpu();
> > +		cpu = current_cpu[isrc->is_domain];
> > +		intr_next_cpu(isrc->is_domain);
> >  		if (isrc->is_cpu != cpu &&
> >  		    isrc->is_pic->pic_assign_cpu(isrc,
> >  		    cpu_apic_ids[cpu]) == 0)
> > @@ -735,7 +766,7 @@ SYSINIT(intr_balance_init, SI_SUB_SMP, SI_ORDER_ANY, i
> >   * Always route interrupts to the current processor in the UP case.
> >   */
> >  u_int
> > -intr_next_cpu(void)
> > +intr_next_cpu(int domain)
> >  {
> >  
> >  	return (PCPU_GET(apic_id));
> > 
> > Modified: head/sys/x86/x86/io_apic.c
> > ==============================================================================
> > --- head/sys/x86/x86/io_apic.c	Tue Mar 27 03:27:02 2018
> > (r331605) +++ head/sys/x86/x86/io_apic.c	Tue Mar 27 03:37:04
> > 2018	(r331606) @@ -499,7 +499,7 @@ ioapic_enable_intr(struct intsrc
> > *isrc) struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc;
> >  
> >  	if (intpin->io_vector == 0)
> > -		if (ioapic_assign_cpu(isrc, intr_next_cpu()) != 0)
> > +		if (ioapic_assign_cpu(isrc,
> > intr_next_cpu(isrc->is_domain)) != 0) panic("Couldn't find an APIC vector
> > for IRQ %d", intpin->io_irq);
> >  	apic_enable_vector(intpin->io_cpu, intpin->io_vector);
> > 
> > Modified: head/sys/x86/x86/msi.c
> > ==============================================================================
> > --- head/sys/x86/x86/msi.c	Tue Mar 27 03:27:02 2018	(r331605)
> > +++ head/sys/x86/x86/msi.c	Tue Mar 27 03:37:04 2018	(r331606)
> > @@ -363,7 +363,7 @@ int
> >  msi_alloc(device_t dev, int count, int maxcount, int *irqs)
> >  {
> >  	struct msi_intsrc *msi, *fsrc;
> > -	u_int cpu;
> > +	u_int cpu, domain;
> >  	int cnt, i, *mirqs, vector;
> >  #ifdef ACPI_DMAR
> >  	u_int cookies[count];
> > @@ -373,6 +373,9 @@ msi_alloc(device_t dev, int count, int maxcount, int *
> >  	if (!msi_enabled)
> >  		return (ENXIO);
> >  
> > +	if (bus_get_domain(dev, &domain) != 0)
> > +		domain = 0;
> > +
> >  	if (count > 1)
> >  		mirqs = malloc(count * sizeof(*mirqs), M_MSI, M_WAITOK);
> >  	else
> > @@ -420,7 +423,7 @@ again:
> >  	KASSERT(cnt == count, ("count mismatch"));
> >  
> >  	/* Allocate 'count' IDT vectors. */
> > -	cpu = intr_next_cpu();
> > +	cpu = intr_next_cpu(domain);
> >  	vector = apic_alloc_vectors(cpu, irqs, count, maxcount);
> >  	if (vector == 0) {
> >  		mtx_unlock(&msi_lock);
> > @@ -610,7 +613,7 @@ int
> >  msix_alloc(device_t dev, int *irq)
> >  {
> >  	struct msi_intsrc *msi;
> > -	u_int cpu;
> > +	u_int cpu, domain;
> >  	int i, vector;
> >  #ifdef ACPI_DMAR
> >  	u_int cookie;
> > @@ -620,6 +623,9 @@ msix_alloc(device_t dev, int *irq)
> >  	if (!msi_enabled)
> >  		return (ENXIO);
> >  
> > +	if (bus_get_domain(dev, &domain) != 0)
> > +		domain = 0;
> > +
> >  again:
> >  	mtx_lock(&msi_lock);
> >  
> > @@ -651,7 +657,7 @@ again:
> >  	}
> >  
> >  	/* Allocate an IDT vector. */
> > -	cpu = intr_next_cpu();
> > +	cpu = intr_next_cpu(domain);
> >  	vector = apic_alloc_vector(cpu, i);
> >  	if (vector == 0) {
> >  		mtx_unlock(&msi_lock);
> > 
> > Modified: head/sys/x86/x86/nexus.c
> > ==============================================================================
> > --- head/sys/x86/x86/nexus.c	Tue Mar 27 03:27:02 2018
> > (r331605) +++ head/sys/x86/x86/nexus.c	Tue Mar 27 03:37:04
> > 2018	(r331606) @@ -573,7 +573,7 @@ nexus_setup_intr(device_t bus,
> > device_t child, struct int flags, driver_filter_t filter, void
> > (*ihand)(void *), void *arg, void **cookiep)
> >  {
> > -	int		error;
> > +	int		error, domain;
> >  
> >  	/* somebody tried to setup an irq that failed to allocate! */
> >  	if (irq == NULL)
> > @@ -589,9 +589,11 @@ nexus_setup_intr(device_t bus, device_t child, struct 
> >  	error = rman_activate_resource(irq);
> >  	if (error)
> >  		return (error);
> > +	if (bus_get_domain(child, &domain) != 0)
> > +		domain = 0;
> >  
> >  	error = intr_add_handler(device_get_nameunit(child),
> > -	    rman_get_start(irq), filter, ihand, arg, flags, cookiep);
> > +	    rman_get_start(irq), filter, ihand, arg, flags, cookiep,
> > domain); 
> >  	return (error);
> >  }
> > 
> > Modified: head/sys/x86/xen/xen_intr.c
> > ==============================================================================
> > --- head/sys/x86/xen/xen_intr.c	Tue Mar 27 03:27:02 2018
> > (r331605) +++ head/sys/x86/xen/xen_intr.c	Tue Mar 27 03:37:04
> > 2018	(r331606) @@ -430,7 +430,7 @@ xen_intr_bind_isrc(struct xenisrc
> > **isrcp, evtchn_port
> >  		 * unless specified otherwise, so shuffle them to balance
> >  		 * the interrupt load.
> >  		 */
> > -		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu());
> > +		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu(0));
> >  	}
> >  #endif
> >  
> > @@ -1562,7 +1562,7 @@ xen_intr_add_handler(const char *name, driver_filter_t
> >  		return (EINVAL);
> >  
> >  	error = intr_add_handler(name, isrc->xi_vector,filter, handler,
> > arg,
> > -	    flags|INTR_EXCL, &isrc->xi_cookie);
> > +	    flags|INTR_EXCL, &isrc->xi_cookie, 0);
> >  	if (error != 0) {
> >  		printf(
> >  		    "%s: xen_intr_add_handler: intr_add_handler failed:
> > %d\n", _______________________________________________
> > svn-src-head@freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/svn-src-head
> > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org"  
> 
> Has this been ever tested?
> 
> This commit makes ALL multi CPU systems I tested it on getting stuck on
> detecting and reporting the physical and virtual (SMP) CPUs on all boxes.
> 
> Boot process is then stuck forever.
> 
> Kind regards
> 
> oh
> _______________________________________________
> svn-src-head@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org"


Reverting to r331605 solves booting failure.

From owner-svn-src-all@freebsd.org  Tue Mar 27 06:33:03 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70672F53B44;
 Tue, 27 Mar 2018 06:33:03 +0000 (UTC) (envelope-from mp@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 1E77270C9F;
 Tue, 27 Mar 2018 06:33:03 +0000 (UTC) (envelope-from mp@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1951318619;
 Tue, 27 Mar 2018 06:33:03 +0000 (UTC) (envelope-from mp@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2R6X3iS024388;
 Tue, 27 Mar 2018 06:33:03 GMT (envelope-from mp@FreeBSD.org)
Received: (from mp@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2R6X0Vh024356;
 Tue, 27 Mar 2018 06:33:00 GMT (envelope-from mp@FreeBSD.org)
Message-Id: <201803270633.w2R6X0Vh024356@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mp set sender to mp@FreeBSD.org
 using -f
From: Mark Peek 
Date: Tue, 27 Mar 2018 06:33:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331609 - in head: share/man/man4 sys/dev/vmware/vmci
 sys/modules/vmware/vmci
X-SVN-Group: head
X-SVN-Commit-Author: mp
X-SVN-Commit-Paths: in head: share/man/man4 sys/dev/vmware/vmci
 sys/modules/vmware/vmci
X-SVN-Commit-Revision: 331609
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 06:33:03 -0000

Author: mp
Date: Tue Mar 27 06:33:00 2018
New Revision: 331609
URL: https://svnweb.freebsd.org/changeset/base/331609

Log:
  Rectify VMCI SPDX license
  
  Approved by: Vishnu Dasa 

Modified:
  head/share/man/man4/vmci.4
  head/sys/dev/vmware/vmci/vmci.c
  head/sys/dev/vmware/vmci/vmci.h
  head/sys/dev/vmware/vmci/vmci_call_defs.h
  head/sys/dev/vmware/vmci/vmci_datagram.c
  head/sys/dev/vmware/vmci/vmci_datagram.h
  head/sys/dev/vmware/vmci/vmci_defs.h
  head/sys/dev/vmware/vmci/vmci_doorbell.c
  head/sys/dev/vmware/vmci/vmci_doorbell.h
  head/sys/dev/vmware/vmci/vmci_driver.c
  head/sys/dev/vmware/vmci/vmci_driver.h
  head/sys/dev/vmware/vmci/vmci_event.c
  head/sys/dev/vmware/vmci/vmci_event.h
  head/sys/dev/vmware/vmci/vmci_hashtable.c
  head/sys/dev/vmware/vmci/vmci_hashtable.h
  head/sys/dev/vmware/vmci/vmci_kernel_api.h
  head/sys/dev/vmware/vmci/vmci_kernel_api_1.h
  head/sys/dev/vmware/vmci/vmci_kernel_api_2.h
  head/sys/dev/vmware/vmci/vmci_kernel_defs.h
  head/sys/dev/vmware/vmci/vmci_kernel_if.c
  head/sys/dev/vmware/vmci/vmci_kernel_if.h
  head/sys/dev/vmware/vmci/vmci_qpair.c
  head/sys/dev/vmware/vmci/vmci_queue.h
  head/sys/dev/vmware/vmci/vmci_queue_pair.c
  head/sys/dev/vmware/vmci/vmci_queue_pair.h
  head/sys/dev/vmware/vmci/vmci_resource.c
  head/sys/dev/vmware/vmci/vmci_resource.h
  head/sys/dev/vmware/vmci/vmci_utils.h
  head/sys/modules/vmware/vmci/Makefile

Modified: head/share/man/man4/vmci.4
==============================================================================
--- head/share/man/man4/vmci.4	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/share/man/man4/vmci.4	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,6 +1,6 @@
 .\" Copyright (c) 2018 VMware, Inc. All Rights Reserved.
 .\"
-.\" SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+.\" SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
 .\"
 .\" $FreeBSD$
 .Dd February 10, 2018

Modified: head/sys/dev/vmware/vmci/vmci.c
==============================================================================
--- head/sys/dev/vmware/vmci/vmci.c	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci.c	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  */
 
 /* Driver for VMware Virtual Machine Communication Interface (VMCI) device. */

Modified: head/sys/dev/vmware/vmci/vmci.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_call_defs.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_call_defs.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_call_defs.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_datagram.c
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_datagram.c	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_datagram.c	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  */
 
 /* This file implements the VMCI Simple Datagram API on the host. */

Modified: head/sys/dev/vmware/vmci/vmci_datagram.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_datagram.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_datagram.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_defs.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_defs.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_defs.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_doorbell.c
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_doorbell.c	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_doorbell.c	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  */
 
 /* This file implements the VMCI doorbell API. */

Modified: head/sys/dev/vmware/vmci/vmci_doorbell.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_doorbell.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_doorbell.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_driver.c
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_driver.c	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_driver.c	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  */
 
 /* VMCI initialization. */

Modified: head/sys/dev/vmware/vmci/vmci_driver.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_driver.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_driver.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_event.c
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_event.c	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_event.c	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  */
 
 /* This file implements VMCI Event code. */

Modified: head/sys/dev/vmware/vmci/vmci_event.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_event.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_event.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_hashtable.c
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_hashtable.c	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_hashtable.c	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  */
 
 /* Implementation of the VMCI Hashtable. */

Modified: head/sys/dev/vmware/vmci/vmci_hashtable.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_hashtable.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_hashtable.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_kernel_api.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_kernel_api.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_kernel_api.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_kernel_api_1.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_kernel_api_1.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_kernel_api_1.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_kernel_api_2.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_kernel_api_2.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_kernel_api_2.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_kernel_defs.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_kernel_defs.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_kernel_defs.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_kernel_if.c
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_kernel_if.c	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_kernel_if.c	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  */
 
 /* This file implements defines and helper functions. */

Modified: head/sys/dev/vmware/vmci/vmci_kernel_if.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_kernel_if.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_kernel_if.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_qpair.c
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_qpair.c	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_qpair.c	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  */
 
 /* This file implements Queue accessor methods. */

Modified: head/sys/dev/vmware/vmci/vmci_queue.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_queue.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_queue.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_queue_pair.c
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_queue_pair.c	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_queue_pair.c	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  */
 
 /* VMCI QueuePair API implementation. */

Modified: head/sys/dev/vmware/vmci/vmci_queue_pair.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_queue_pair.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_queue_pair.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_resource.c
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_resource.c	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_resource.c	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  */
 
 /* Implementation of the VMCI Resource Access Control API. */

Modified: head/sys/dev/vmware/vmci/vmci_resource.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_resource.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_resource.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/dev/vmware/vmci/vmci_utils.h
==============================================================================
--- head/sys/dev/vmware/vmci/vmci_utils.h	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/dev/vmware/vmci/vmci_utils.h	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 /*-
  * Copyright (c) 2018 VMware, Inc. All Rights Reserved.
  *
- * SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+ * SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
  *
  * $FreeBSD$
  */

Modified: head/sys/modules/vmware/vmci/Makefile
==============================================================================
--- head/sys/modules/vmware/vmci/Makefile	Tue Mar 27 05:33:44 2018	(r331608)
+++ head/sys/modules/vmware/vmci/Makefile	Tue Mar 27 06:33:00 2018	(r331609)
@@ -1,7 +1,7 @@
 #
 # Copyright (c) 2018 VMware, Inc. All Rights Reserved.
 #
-# SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0)
+# SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0)
 #
 # $FreeBSD$
 

From owner-svn-src-all@freebsd.org  Tue Mar 27 06:36:21 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3ABB6F5403D
 for ;
 Tue, 27 Mar 2018 06:36:21 +0000 (UTC)
 (envelope-from jroberson@jroberson.net)
Received: from mail-io0-x244.google.com (mail-io0-x244.google.com
 [IPv6:2607:f8b0:4001:c06::244])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id C1D9070F26
 for ; Tue, 27 Mar 2018 06:36:20 +0000 (UTC)
 (envelope-from jroberson@jroberson.net)
Received: by mail-io0-x244.google.com with SMTP id e7so26206881iof.2
 for ; Mon, 26 Mar 2018 23:36:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=jroberson-net.20150623.gappssmtp.com; s=20150623;
 h=date:from:to:cc:subject:in-reply-to:message-id:references
 :user-agent:mime-version;
 bh=tlK8mbPfeZntgUFN/VaFzZzTnQk4sbOrQRuBOjbKgME=;
 b=vO3Y1R692kus/SYr3KKepluEfC3vx4JmQ1HENZ1USrFS6T8Zi7Wwghig+35DJygu3M
 vO6tukMwmtD6ZBZBNLEcFxUWNc/J2HqcXTGecldMZNSoXYsb+0a4zDateCDLMRO0NyAO
 TnUYn90fVfnZGEvEmtyMyMmAqaZiK2fFuVojj91AOEU1rkn1W2sCI11Tfmr7zinf7Z5O
 x3DGboy6TZE5onbwFaV/tQXixmsxTylmYvGpYIbev4JUgJdyK9xxUTviJO6mhRtWu7D1
 AokayYAcZDkXznX+Tux48QU0XMlb/smu+uk4CrrTY1Hu3AK9pSBKwkpVjsUYXgAezwGh
 tYrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id
 :references:user-agent:mime-version;
 bh=tlK8mbPfeZntgUFN/VaFzZzTnQk4sbOrQRuBOjbKgME=;
 b=p+ZOOn8p3c7/JNVQg2daJ3M3+ZfVGUi0i9DpdWgiQnjp2+YDOPRn+jn9CPx5A4JCtz
 B3/pXm5e360/eae6SI7OdU32rgY/FhI/KL8/Dgn8QomGCd9apZjNaCXwfYKpb0u3blT3
 oU4J781jooi8/d76LAN4yI1B2E/MyilhAPwj965hehOVGsU7uYTmFCjZzlxxVoIg3rS5
 bxyvmsZjPuF3BOGo7lP7cmIaGhUGHJrQ4lF7+JKLVug7RIG5+kRaOXywU32j+GD9Tqqb
 QHzqtWg42HE+wQbNMRlmNVfpo6vvCP62aIU5n6Bg3ua8ybX1tH8YtciIR8niSCltUWmV
 LJow==
X-Gm-Message-State: AElRT7GkAQicetZG7W2pVjxyWWSs8AVJrzhheuaKrLqirRCzBlXi9kpI
 k9RKFNPiPzNCBn5Xr/d1DG53KnVM
X-Google-Smtp-Source: AG47ELvWnRxkBZhaYulL4pAkMIwIMWZ3byhNqepl+VpcDE0of4v/RZMY5t+aDSkRpwJWeS3a9W6l6w==
X-Received: by 10.107.178.70 with SMTP id b67mr41063413iof.186.1522132579751; 
 Mon, 26 Mar 2018 23:36:19 -0700 (PDT)
Received: from rrcs-66-91-135-210.west.biz.rr.com
 (rrcs-66-91-135-210.west.biz.rr.com. [66.91.135.210])
 by smtp.gmail.com with ESMTPSA id b34-v6sm507008itd.12.2018.03.26.23.36.18
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 26 Mar 2018 23:36:19 -0700 (PDT)
Date: Mon, 26 Mar 2018 20:35:12 -1000 (HST)
From: Jeff Roberson 
X-X-Sender: jroberson@desktop
To: "O. Hartmann" 
cc: Jeff Roberson , svn-src-head@freebsd.org, 
 svn-src-all@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r331606 - in head/sys: amd64/include i386/include
 x86/x86 x86/xen
In-Reply-To: <20180327082651.28258a8c@freyja.zeit4.iv.bundesimmobilien.de>
Message-ID: 
References: <201803270337.w2R3b4iv035285@repo.freebsd.org>
 <20180327081535.0dacffcb@freyja.zeit4.iv.bundesimmobilien.de>
 <20180327082651.28258a8c@freyja.zeit4.iv.bundesimmobilien.de>
User-Agent: Alpine 2.21 (BSF 202 2017-01-01)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII; format=flowed
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 06:36:21 -0000

On Tue, 27 Mar 2018, O. Hartmann wrote:

> On Tue, 27 Mar 2018 08:15:35 +0200
> "O. Hartmann"  wrote:
>
>> On Tue, 27 Mar 2018 03:37:04 +0000 (UTC)
>> Jeff Roberson  wrote:
>>
>>> Author: jeff
>>> Date: Tue Mar 27 03:37:04 2018
>>> New Revision: 331606
>>> URL: https://svnweb.freebsd.org/changeset/base/331606
>>>
>>> Log:
>>>   Only use CPUs in the domain the device is attached to for default
>>>   assignment.  Device drivers are able to override the default assignment
>>>   if they bind directly.  There are severe performance penalties for
>>>   handling interrupts on remote CPUs and this should only be done in
>>>   very controlled circumstances.
>>>
>>>   Reviewed by:	jhb, kib
>>>   Tested by:	pho (earlier version)
>>>   Sponsored by:	Netflix, Dell/EMC Isilon
>>>   Differential Revision:	https://reviews.freebsd.org/D14838
>>>
>>> Modified:
>>>   head/sys/amd64/include/intr_machdep.h
>>>   head/sys/i386/include/intr_machdep.h
>>>   head/sys/x86/x86/intr_machdep.c
>>>   head/sys/x86/x86/io_apic.c
>>>   head/sys/x86/x86/msi.c
>>>   head/sys/x86/x86/nexus.c
>>>   head/sys/x86/xen/xen_intr.c
>>>
>>> Modified: head/sys/amd64/include/intr_machdep.h
>>> ==============================================================================
>>> --- head/sys/amd64/include/intr_machdep.h	Tue Mar 27 03:27:02
>>> 2018	(r331605) +++ head/sys/amd64/include/intr_machdep.h	Tue
>>> Mar 27 03:37:04 2018	(r331606) @@ -132,6 +132,7 @@ struct intsrc {
>>>  	u_long *is_straycount;
>>>  	u_int is_index;
>>>  	u_int is_handlers;
>>> +	u_int is_domain;
>>>  	u_int is_cpu;
>>>  };
>>>
>>> @@ -168,7 +169,7 @@ void	intr_add_cpu(u_int cpu);
>>>  #endif
>>>  int	intr_add_handler(const char *name, int vector, driver_filter_t
>>> filter, driver_intr_t handler, void *arg, enum intr_type flags,
>>> -			 void **cookiep);
>>> +			 void **cookiep, int domain);
>>>  #ifdef SMP
>>>  int	intr_bind(u_int vector, u_char cpu);
>>>  #endif
>>> @@ -176,7 +177,7 @@ int	intr_config_intr(int vector, enum
>>> intr_trigger tri enum intr_polarity pol);
>>>  int	intr_describe(u_int vector, void *ih, const char *descr);
>>>  void	intr_execute_handlers(struct intsrc *isrc, struct trapframe
>>> *frame); -u_int	intr_next_cpu(void);
>>> +u_int	intr_next_cpu(int domain);
>>>  struct intsrc *intr_lookup_source(int vector);
>>>  int	intr_register_pic(struct pic *pic);
>>>  int	intr_register_source(struct intsrc *isrc);
>>>
>>> Modified: head/sys/i386/include/intr_machdep.h
>>> ==============================================================================
>>> --- head/sys/i386/include/intr_machdep.h	Tue Mar 27 03:27:02
>>> 2018	(r331605) +++ head/sys/i386/include/intr_machdep.h	Tue
>>> Mar 27 03:37:04 2018	(r331606) @@ -132,6 +132,7 @@ struct intsrc {
>>>  	u_long *is_straycount;
>>>  	u_int is_index;
>>>  	u_int is_handlers;
>>> +	u_int is_domain;
>>>  	u_int is_cpu;
>>>  };
>>>
>>> @@ -158,7 +159,8 @@ void	elcr_write_trigger(u_int irq, enum
>>> intr_trigger t void	intr_add_cpu(u_int cpu);
>>>  #endif
>>>  int	intr_add_handler(const char *name, int vector, driver_filter_t
>>> filter,
>>> -    driver_intr_t handler, void *arg, enum intr_type flags, void
>>> **cookiep);
>>> +    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
>>> +    int domain);
>>>  #ifdef SMP
>>>  int	intr_bind(u_int vector, u_char cpu);
>>>  #endif
>>> @@ -166,7 +168,7 @@ int	intr_config_intr(int vector, enum
>>> intr_trigger tri enum intr_polarity pol);
>>>  int	intr_describe(u_int vector, void *ih, const char *descr);
>>>  void	intr_execute_handlers(struct intsrc *isrc, struct trapframe
>>> *frame); -u_int	intr_next_cpu(void);
>>> +u_int	intr_next_cpu(int domain);
>>>  struct intsrc *intr_lookup_source(int vector);
>>>  int	intr_register_pic(struct pic *pic);
>>>  int	intr_register_source(struct intsrc *isrc);
>>>
>>> Modified: head/sys/x86/x86/intr_machdep.c
>>> ==============================================================================
>>> --- head/sys/x86/x86/intr_machdep.c	Tue Mar 27 03:27:02 2018
>>> (r331605) +++ head/sys/x86/x86/intr_machdep.c	Tue Mar 27 03:37:04
>>> 2018	(r331606) @@ -71,6 +71,8 @@
>>>  #include 
>>>  #endif
>>>
>>> +#include 
>>> +
>>>  #define	MAX_STRAY_LOG	5
>>>
>>>  typedef void (*mask_fn)(void *);
>>> @@ -185,7 +187,8 @@ intr_lookup_source(int vector)
>>>
>>>  int
>>>  intr_add_handler(const char *name, int vector, driver_filter_t filter,
>>> -    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep)
>>> +    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
>>> +    int domain)
>>>  {
>>>  	struct intsrc *isrc;
>>>  	int error;
>>> @@ -200,6 +203,7 @@ intr_add_handler(const char *name, int vector, driver_
>>>  		intrcnt_updatename(isrc);
>>>  		isrc->is_handlers++;
>>>  		if (isrc->is_handlers == 1) {
>>> +			isrc->is_domain = domain;
>>>  			isrc->is_pic->pic_enable_intr(isrc);
>>>  			isrc->is_pic->pic_enable_source(isrc);
>>>  		}
>>> @@ -507,14 +511,27 @@ DB_SHOW_COMMAND(irqs, db_show_irqs)
>>>   */
>>>
>>>  cpuset_t intr_cpus = CPUSET_T_INITIALIZER(0x1);
>>> -static int current_cpu;
>>> +static int current_cpu[MAXMEMDOM];
>>>
>>> +static void
>>> +intr_init_cpus(void)
>>> +{
>>> +	int i;
>>> +
>>> +	for (i = 0; i < vm_ndomains; i++) {
>>> +		current_cpu[i] = 0;
>>> +		if (!CPU_ISSET(current_cpu[i], &intr_cpus) ||
>>> +		    !CPU_ISSET(current_cpu[i], &cpuset_domain[i]))
>>> +			intr_next_cpu(i);
>>> +	}
>>> +}
>>> +
>>>  /*
>>>   * Return the CPU that the next interrupt source should use.  For now
>>>   * this just returns the next local APIC according to round-robin.
>>>   */
>>>  u_int
>>> -intr_next_cpu(void)
>>> +intr_next_cpu(int domain)
>>>  {
>>>  	u_int apic_id;
>>>
>>> @@ -529,12 +546,13 @@ intr_next_cpu(void)
>>>  #endif
>>>
>>>  	mtx_lock_spin(&icu_lock);
>>> -	apic_id = cpu_apic_ids[current_cpu];
>>> +	apic_id = cpu_apic_ids[current_cpu[domain]];
>>>  	do {
>>> -		current_cpu++;
>>> -		if (current_cpu > mp_maxid)
>>> -			current_cpu = 0;
>>> -	} while (!CPU_ISSET(current_cpu, &intr_cpus));
>>> +		current_cpu[domain]++;
>>> +		if (current_cpu[domain] > mp_maxid)
>>> +			current_cpu[domain] = 0;
>>> +	} while (!CPU_ISSET(current_cpu[domain], &intr_cpus) ||
>>> +	    !CPU_ISSET(current_cpu[domain], &cpuset_domain[domain]));
>>>  	mtx_unlock_spin(&icu_lock);
>>>  	return (apic_id);
>>>  }
>>> @@ -568,7 +586,18 @@ intr_add_cpu(u_int cpu)
>>>  	CPU_SET(cpu, &intr_cpus);
>>>  }
>>>
>>> -#ifndef EARLY_AP_STARTUP
>>> +#ifdef EARLY_AP_STARTUP
>>> +static void
>>> +intr_smp_startup(void *arg __unused)
>>> +{
>>> +
>>> +	intr_init_cpus();
>>> +	return;
>>> +}
>>> +SYSINIT(intr_smp_startup, SI_SUB_SMP, SI_ORDER_SECOND, intr_smp_startup,
>>> +    NULL);
>>> +
>>> +#else
>>>  /*
>>>   * Distribute all the interrupt sources among the available CPUs once the
>>>   * AP's have been launched.
>>> @@ -580,6 +609,7 @@ intr_shuffle_irqs(void *arg __unused)
>>>  	u_int cpu;
>>>  	int i;
>>>
>>> +	intr_init_cpus();
>>>  	/* Don't bother on UP. */
>>>  	if (mp_ncpus == 1)
>>>  		return;
>>> @@ -599,12 +629,12 @@ intr_shuffle_irqs(void *arg __unused)
>>>  			 */
>>>  			cpu = isrc->is_event->ie_cpu;
>>>  			if (cpu == NOCPU)
>>> -				cpu = current_cpu;
>>> +				cpu = current_cpu[isrc->is_domain];
>>>  			if (isrc->is_pic->pic_assign_cpu(isrc,
>>>  			    cpu_apic_ids[cpu]) == 0) {
>>>  				isrc->is_cpu = cpu;
>>>  				if (isrc->is_event->ie_cpu == NOCPU)
>>> -					intr_next_cpu();
>>> +					intr_next_cpu(isrc->is_domain);
>>>  			}
>>>  		}
>>>  	}
>>> @@ -635,10 +665,11 @@ sysctl_hw_intrs(SYSCTL_HANDLER_ARGS)
>>>  		isrc = interrupt_sources[i];
>>>  		if (isrc == NULL)
>>>  			continue;
>>> -		sbuf_printf(&sbuf, "%s:%d @%d: %ld\n",
>>> +		sbuf_printf(&sbuf, "%s:%d @cpu%d(domain%d): %ld\n",
>>>  		    isrc->is_event->ie_fullname,
>>>  		    isrc->is_index,
>>>  		    isrc->is_cpu,
>>> +		    isrc->is_domain,
>>>  		    *isrc->is_count);
>>>  	}
>>>
>>> @@ -697,7 +728,7 @@ intr_balance(void *dummy __unused, int pending __unuse
>>>  	 * Restart the scan from the same location to avoid moving in the
>>>  	 * common case.
>>>  	 */
>>> -	current_cpu = 0;
>>> +	intr_init_cpus();
>>>
>>>  	/*
>>>  	 * Assign round-robin from most loaded to least.
>>> @@ -706,8 +737,8 @@ intr_balance(void *dummy __unused, int pending __unuse
>>>  		isrc = interrupt_sorted[i];
>>>  		if (isrc == NULL  || isrc->is_event->ie_cpu != NOCPU)
>>>  			continue;
>>> -		cpu = current_cpu;
>>> -		intr_next_cpu();
>>> +		cpu = current_cpu[isrc->is_domain];
>>> +		intr_next_cpu(isrc->is_domain);
>>>  		if (isrc->is_cpu != cpu &&
>>>  		    isrc->is_pic->pic_assign_cpu(isrc,
>>>  		    cpu_apic_ids[cpu]) == 0)
>>> @@ -735,7 +766,7 @@ SYSINIT(intr_balance_init, SI_SUB_SMP, SI_ORDER_ANY, i
>>>   * Always route interrupts to the current processor in the UP case.
>>>   */
>>>  u_int
>>> -intr_next_cpu(void)
>>> +intr_next_cpu(int domain)
>>>  {
>>>
>>>  	return (PCPU_GET(apic_id));
>>>
>>> Modified: head/sys/x86/x86/io_apic.c
>>> ==============================================================================
>>> --- head/sys/x86/x86/io_apic.c	Tue Mar 27 03:27:02 2018
>>> (r331605) +++ head/sys/x86/x86/io_apic.c	Tue Mar 27 03:37:04
>>> 2018	(r331606) @@ -499,7 +499,7 @@ ioapic_enable_intr(struct intsrc
>>> *isrc) struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc;
>>>
>>>  	if (intpin->io_vector == 0)
>>> -		if (ioapic_assign_cpu(isrc, intr_next_cpu()) != 0)
>>> +		if (ioapic_assign_cpu(isrc,
>>> intr_next_cpu(isrc->is_domain)) != 0) panic("Couldn't find an APIC vector
>>> for IRQ %d", intpin->io_irq);
>>>  	apic_enable_vector(intpin->io_cpu, intpin->io_vector);
>>>
>>> Modified: head/sys/x86/x86/msi.c
>>> ==============================================================================
>>> --- head/sys/x86/x86/msi.c	Tue Mar 27 03:27:02 2018	(r331605)
>>> +++ head/sys/x86/x86/msi.c	Tue Mar 27 03:37:04 2018	(r331606)
>>> @@ -363,7 +363,7 @@ int
>>>  msi_alloc(device_t dev, int count, int maxcount, int *irqs)
>>>  {
>>>  	struct msi_intsrc *msi, *fsrc;
>>> -	u_int cpu;
>>> +	u_int cpu, domain;
>>>  	int cnt, i, *mirqs, vector;
>>>  #ifdef ACPI_DMAR
>>>  	u_int cookies[count];
>>> @@ -373,6 +373,9 @@ msi_alloc(device_t dev, int count, int maxcount, int *
>>>  	if (!msi_enabled)
>>>  		return (ENXIO);
>>>
>>> +	if (bus_get_domain(dev, &domain) != 0)
>>> +		domain = 0;
>>> +
>>>  	if (count > 1)
>>>  		mirqs = malloc(count * sizeof(*mirqs), M_MSI, M_WAITOK);
>>>  	else
>>> @@ -420,7 +423,7 @@ again:
>>>  	KASSERT(cnt == count, ("count mismatch"));
>>>
>>>  	/* Allocate 'count' IDT vectors. */
>>> -	cpu = intr_next_cpu();
>>> +	cpu = intr_next_cpu(domain);
>>>  	vector = apic_alloc_vectors(cpu, irqs, count, maxcount);
>>>  	if (vector == 0) {
>>>  		mtx_unlock(&msi_lock);
>>> @@ -610,7 +613,7 @@ int
>>>  msix_alloc(device_t dev, int *irq)
>>>  {
>>>  	struct msi_intsrc *msi;
>>> -	u_int cpu;
>>> +	u_int cpu, domain;
>>>  	int i, vector;
>>>  #ifdef ACPI_DMAR
>>>  	u_int cookie;
>>> @@ -620,6 +623,9 @@ msix_alloc(device_t dev, int *irq)
>>>  	if (!msi_enabled)
>>>  		return (ENXIO);
>>>
>>> +	if (bus_get_domain(dev, &domain) != 0)
>>> +		domain = 0;
>>> +
>>>  again:
>>>  	mtx_lock(&msi_lock);
>>>
>>> @@ -651,7 +657,7 @@ again:
>>>  	}
>>>
>>>  	/* Allocate an IDT vector. */
>>> -	cpu = intr_next_cpu();
>>> +	cpu = intr_next_cpu(domain);
>>>  	vector = apic_alloc_vector(cpu, i);
>>>  	if (vector == 0) {
>>>  		mtx_unlock(&msi_lock);
>>>
>>> Modified: head/sys/x86/x86/nexus.c
>>> ==============================================================================
>>> --- head/sys/x86/x86/nexus.c	Tue Mar 27 03:27:02 2018
>>> (r331605) +++ head/sys/x86/x86/nexus.c	Tue Mar 27 03:37:04
>>> 2018	(r331606) @@ -573,7 +573,7 @@ nexus_setup_intr(device_t bus,
>>> device_t child, struct int flags, driver_filter_t filter, void
>>> (*ihand)(void *), void *arg, void **cookiep)
>>>  {
>>> -	int		error;
>>> +	int		error, domain;
>>>
>>>  	/* somebody tried to setup an irq that failed to allocate! */
>>>  	if (irq == NULL)
>>> @@ -589,9 +589,11 @@ nexus_setup_intr(device_t bus, device_t child, struct
>>>  	error = rman_activate_resource(irq);
>>>  	if (error)
>>>  		return (error);
>>> +	if (bus_get_domain(child, &domain) != 0)
>>> +		domain = 0;
>>>
>>>  	error = intr_add_handler(device_get_nameunit(child),
>>> -	    rman_get_start(irq), filter, ihand, arg, flags, cookiep);
>>> +	    rman_get_start(irq), filter, ihand, arg, flags, cookiep,
>>> domain);
>>>  	return (error);
>>>  }
>>>
>>> Modified: head/sys/x86/xen/xen_intr.c
>>> ==============================================================================
>>> --- head/sys/x86/xen/xen_intr.c	Tue Mar 27 03:27:02 2018
>>> (r331605) +++ head/sys/x86/xen/xen_intr.c	Tue Mar 27 03:37:04
>>> 2018	(r331606) @@ -430,7 +430,7 @@ xen_intr_bind_isrc(struct xenisrc
>>> **isrcp, evtchn_port
>>>  		 * unless specified otherwise, so shuffle them to balance
>>>  		 * the interrupt load.
>>>  		 */
>>> -		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu());
>>> +		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu(0));
>>>  	}
>>>  #endif
>>>
>>> @@ -1562,7 +1562,7 @@ xen_intr_add_handler(const char *name, driver_filter_t
>>>  		return (EINVAL);
>>>
>>>  	error = intr_add_handler(name, isrc->xi_vector,filter, handler,
>>> arg,
>>> -	    flags|INTR_EXCL, &isrc->xi_cookie);
>>> +	    flags|INTR_EXCL, &isrc->xi_cookie, 0);
>>>  	if (error != 0) {
>>>  		printf(
>>>  		    "%s: xen_intr_add_handler: intr_add_handler failed:
>>> %d\n", _______________________________________________
>>> svn-src-head@freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/svn-src-head
>>> To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org"
>>
>> Has this been ever tested?
>>
>> This commit makes ALL multi CPU systems I tested it on getting stuck on
>> detecting and reporting the physical and virtual (SMP) CPUs on all boxes.
>>
>> Boot process is then stuck forever.
>>
>> Kind regards
>>
>> oh
>> _______________________________________________
>> svn-src-head@freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/svn-src-head
>> To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org"
>
>
> Reverting to r331605 solves booting failure.
>

The patch has been on my branch for weeks and has been tested by a half 
dozen people.  I'm sorry it does not work for you.  If you reverted 331605 
the change that followed should not have built properly.  Did you build 
cleanly?  Can you share your kernel config?

I tried with and without EARLY_AP_STARTUP and with and without NUMA.  I'm 
not having any trouble booting.  Did you make cleandepend && make depend?

Thanks,
Jeff

From owner-svn-src-all@freebsd.org  Tue Mar 27 07:30:35 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 24BA0F594A1;
 Tue, 27 Mar 2018 07:30:35 +0000 (UTC)
 (envelope-from brde@optusnet.com.au)
Received: from mail109.syd.optusnet.com.au (mail109.syd.optusnet.com.au
 [211.29.132.80])
 by mx1.freebsd.org (Postfix) with ESMTP id 97188734FD;
 Tue, 27 Mar 2018 07:30:34 +0000 (UTC)
 (envelope-from brde@optusnet.com.au)
Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au
 [110.21.101.228])
 by mail109.syd.optusnet.com.au (Postfix) with ESMTPS id 843A3D76207;
 Tue, 27 Mar 2018 18:30:26 +1100 (AEDT)
Date: Tue, 27 Mar 2018 18:30:25 +1100 (EST)
From: Bruce Evans 
X-X-Sender: bde@besplex.bde.org
To: Jeff Roberson 
cc: src-committers@freebsd.org, svn-src-all@freebsd.org, 
 svn-src-head@freebsd.org
Subject: Re: svn commit: r331605 - head/sys/vm
In-Reply-To: <201803270327.w2R3R2f9030318@repo.freebsd.org>
Message-ID: <20180327173756.A876@besplex.bde.org>
References: <201803270327.w2R3R2f9030318@repo.freebsd.org>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
X-Optus-CM-Score: 0
X-Optus-CM-Analysis: v=2.2 cv=VJytp5HX c=1 sm=1 tr=0
 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17
 a=kj9zAlcOel0A:10 a=0HglesBrfFw4nKaTcNAA:9 a=CjuIK1q_8ugA:10
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 07:30:35 -0000

On Tue, 27 Mar 2018, Jeff Roberson wrote:

> Log:
>  Move vm_ndomains to vm.h where it can be used with a single header include
>  rather than requiring a half-dozen.  Many non-vm files may want to know
>  the number of valid domains.

Shouldn't it go in vm_extern.h?  What is the point of having vm_extern.h
if you don't declare extern variables in it?

Well, vm_extern.h contains (implicitly extern) prototypes but no externs
variables , so the main style bugs are actually its name and having
prototypes in vm.h instead if in vm_extern.h.

Extern variables should probably go in vm_extern.h too, leaving only
central type definitions and macros in vm.h, and vm_extern.h should
have been named vm_var.h.

There are mounds of other style bugs in vm.h and vm_extern.h.  vm.h was
almost correct in FreeBSD-4.  Then it had no prototypes, no namespace
pollution, and only minor style bugs like naming its include guard VM_H
(which is not namespace pollution since VM_* is reserved for other reasons).

> Modified: head/sys/vm/vm.h
> ==============================================================================
> --- head/sys/vm/vm.h	Tue Mar 27 01:02:42 2018	(r331604)
> +++ head/sys/vm/vm.h	Tue Mar 27 03:27:02 2018	(r331605)
> @@ -148,6 +148,8 @@ extern void vm_ksubmap_init(struct kva_md_info *);
>
> extern int old_mlock;

This is especially gratuitous namespace pollution.  The obj* names at
least have something to do with vm.

>
> +extern int vm_ndomains;
> +
> struct ucred;
> int swap_reserve(vm_ooffset_t incr);
> int swap_reserve_by_cred(vm_ooffset_t incr, struct ucred *cred);

swap_* also has something to do with vm, but needs a vm_ prefix more
for exporting out of vm.

Kernel prototypes don't belong here.  One reason they are supposed to
be in vm_extern.h is to keep them out of here so that userland can
include this without getting kernel prototypes and/or so this file
doesn't need so many ifdefs.

Parameter names in prototypes are documented as being kernel style in
style(9), but this is a bug in style(9).  This is optional, and old vm
prototypes in vm_extern.h don't do it.

Bruce

From owner-svn-src-all@freebsd.org  Tue Mar 27 08:45:24 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0756CF5FFAD;
 Tue, 27 Mar 2018 08:45:24 +0000 (UTC) (envelope-from hps@selasky.org)
Received: from mail.turbocat.net (turbocat.net [88.99.82.50])
 (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 9B60B76842;
 Tue, 27 Mar 2018 08:45:22 +0000 (UTC) (envelope-from hps@selasky.org)
Received: from hps2016.home.selasky.org (unknown [62.141.128.70])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mail.turbocat.net (Postfix) with ESMTPSA id CA5E026027E;
 Tue, 27 Mar 2018 10:45:20 +0200 (CEST)
Subject: Re: svn commit: r331606 - in head/sys: amd64/include i386/include
 x86/x86 x86/xen
To: Jeff Roberson , src-committers@freebsd.org,
 svn-src-all@freebsd.org, svn-src-head@freebsd.org
References: <201803270337.w2R3b4iv035285@repo.freebsd.org>
From: Hans Petter Selasky 
Message-ID: 
Date: Tue, 27 Mar 2018 10:45:15 +0200
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101
 Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <201803270337.w2R3b4iv035285@repo.freebsd.org>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 08:45:24 -0000

On 03/27/18 05:37, Jeff Roberson wrote:
>   	do {
> -		current_cpu++;
> -		if (current_cpu > mp_maxid)
> -			current_cpu = 0;
> -	} while (!CPU_ISSET(current_cpu, &intr_cpus));
> +		current_cpu[domain]++;
> +		if (current_cpu[domain] > mp_maxid)
> +			current_cpu[domain] = 0;
> +	} while (!CPU_ISSET(current_cpu[domain], &intr_cpus) ||
> +	    !CPU_ISSET(current_cpu[domain], &cpuset_domain[domain]));

Can it happen that cpuset_domain[domain] is all zero? Won't this loop 
hang then?

--HPS

From owner-svn-src-all@freebsd.org  Tue Mar 27 09:52:10 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6C267F67241
 for ;
 Tue, 27 Mar 2018 09:52:10 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: from mail-yw0-x236.google.com (mail-yw0-x236.google.com
 [IPv6:2607:f8b0:4002:c05::236])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 07F567A520
 for ; Tue, 27 Mar 2018 09:52:09 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: by mail-yw0-x236.google.com with SMTP id y23so7051573ywy.4
 for ; Tue, 27 Mar 2018 02:52:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=eitanadler.com; s=0xdeadbeef;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=lCM5xOkcWquCo97eK4TXjJkXEgQg3nCmDxbFriu46WI=;
 b=EDRCUUsMWMKYCuwxBnnF41JExf/ddpbjQO2SAGIGds+U/2t8fLZDI/YitmmNnj/CNh
 7JCUeOpUgGDD8UjjC0x+mnn09gt0sP2iZ2CH+gOkhk3NkFV7yqSeyMZIybiA5HOTzh7s
 dZH06F69pOjlOLQovGTQ2LlkO2qhvo9IlUpbo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=lCM5xOkcWquCo97eK4TXjJkXEgQg3nCmDxbFriu46WI=;
 b=CB7Uq8CC8y+sQTvUIZfhGjsMWWXgj+v9Cd/eR7GtfojqTfN8A+9nSpis8vmpr0CATh
 lvNgvjiuRiG5I1rE572d8Bnqr7v+oJ/A9hqodTcPwglgrLObmnD8bv0KU/ENJ9vqFeyL
 QTlrcs0e6TYE3tduuxUODxvZBCL94g1HZcOb5mORBc9nZ2txh2A2sZfdEV2FUjU/lUGK
 7K3mGLGQkOdydH+/Gy/ljWyPfvvHgFNPEJftmpMZdbh8GkfHUz7SmXRmHrsiM40r+RT3
 5cJvqL4I43Lvf4ldQrsFSiAyhdHUfTTpsUV7qOidCctKpzbv1EO3N38tjeX1lzmKBjm5
 fRyA==
X-Gm-Message-State: AElRT7EEUhqhrXEVT6IgrWyUMTXV/JzrSrlyOxxPE/UTb8lsDXnl5xWi
 Dnl15HQDQO6cEOoSz/LspTJZXA0GDy8VZqC53+pnqA==
X-Google-Smtp-Source: AG47ELuqdpxoYq/6Ug8GWIZm6uW5SdxZIIAk108ep3sv15pz8uAp54BrSAttjP9UB4AmgtyBY7blUteVo4QM/+rrjnQ=
X-Received: by 10.129.114.6 with SMTP id n6mr21470525ywc.113.1522144329281;
 Tue, 27 Mar 2018 02:52:09 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a5b:990:0:0:0:0:0 with HTTP;
 Tue, 27 Mar 2018 02:51:38 -0700 (PDT)
In-Reply-To: 
References: <201803270337.w2R3b4iv035285@repo.freebsd.org>
 
From: Eitan Adler 
Date: Tue, 27 Mar 2018 02:51:38 -0700
Message-ID: 
Subject: Re: svn commit: r331606 - in head/sys: amd64/include i386/include
 x86/x86 x86/xen
To: Hans Petter Selasky 
Cc: Jeff Roberson ,
 src-committers , 
 svn-src-all@freebsd.org, svn-src-head@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 09:52:10 -0000

On 27 March 2018 at 01:45, Hans Petter Selasky  wrote:
> On 03/27/18 05:37, Jeff Roberson wrote:
>>
>>         do {
>> -               current_cpu++;
>> -               if (current_cpu > mp_maxid)
>> -                       current_cpu = 0;
>> -       } while (!CPU_ISSET(current_cpu, &intr_cpus));
>> +               current_cpu[domain]++;
>> +               if (current_cpu[domain] > mp_maxid)
>> +                       current_cpu[domain] = 0;
>> +       } while (!CPU_ISSET(current_cpu[domain], &intr_cpus) ||
>> +           !CPU_ISSET(current_cpu[domain], &cpuset_domain[domain]));
>
>
> Can it happen that cpuset_domain[domain] is all zero? Won't this loop hang
> then?

I can replicate the hang. Let me know what other debugging information
you might need.



-- 
Eitan Adler

From owner-svn-src-all@freebsd.org  Tue Mar 27 10:13:09 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7EE24F6967A;
 Tue, 27 Mar 2018 10:13:09 +0000 (UTC)
 (envelope-from lwhsu@freebsd.org)
Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "freefall.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 2EC787B795;
 Tue, 27 Mar 2018 10:13:09 +0000 (UTC)
 (envelope-from lwhsu@freebsd.org)
Received: by freefall.freebsd.org (Postfix, from userid 1129)
 id 2805B29F5; Tue, 27 Mar 2018 10:13:09 +0000 (UTC)
Date: Tue, 27 Mar 2018 10:13:09 +0000
From: Li-Wen Hsu 
To: Jeff Roberson 
Cc: "O. Hartmann" ,
 Jeff Roberson , svn-src-head@freebsd.org,
 svn-src-all@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r331606 - in head/sys: amd64/include i386/include
 x86/x86 x86/xen
Message-ID: <20180327101309.GA75720@freefall.freebsd.org>
References: <201803270337.w2R3b4iv035285@repo.freebsd.org>
 <20180327081535.0dacffcb@freyja.zeit4.iv.bundesimmobilien.de>
 <20180327082651.28258a8c@freyja.zeit4.iv.bundesimmobilien.de>
 
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: 
User-Agent: Mutt/1.9.2 (2017-12-15)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 10:13:09 -0000

On Mon, Mar 26, 2018 at 20:35:12 -1000, Jeff Roberson wrote:
> The patch has been on my branch for weeks and has been tested by a half 
> dozen people.  I'm sorry it does not work for you.  If you reverted 331605 
> the change that followed should not have built properly.  Did you build 
> cleanly?  Can you share your kernel config?
> 
> I tried with and without EARLY_AP_STARTUP and with and without NUMA.  I'm 
> not having any trouble booting.  Did you make cleandepend && make depend?

It also hangs in our testing system:

https://ci.freebsd.org/job/FreeBSD-head-amd64-test/6817/console
https://ci.freebsd.org/job/FreeBSD-head-i386-test/1000/console

It is built cleanly and uses unmodified GENERIC config.

The artifacts used are available here:

https://artifact.ci.freebsd.org/snapshot/head/r331606/amd64/amd64/
https://artifact.ci.freebsd.org/snapshot/head/r331606/i386/i386/

Hope these information help.

Li-Wen

-- 
Li-Wen Hsu 
https://lwhsu.org

From owner-svn-src-all@freebsd.org  Tue Mar 27 10:20:52 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6F49F6A646;
 Tue, 27 Mar 2018 10:20:51 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6D76B7BD40;
 Tue, 27 Mar 2018 10:20:51 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 686511AB71;
 Tue, 27 Mar 2018 10:20:51 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RAKpvm037405;
 Tue, 27 Mar 2018 10:20:51 GMT (envelope-from jeff@FreeBSD.org)
Received: (from jeff@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RAKoBP037397;
 Tue, 27 Mar 2018 10:20:50 GMT (envelope-from jeff@FreeBSD.org)
Message-Id: <201803271020.w2RAKoBP037397@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jeff set sender to
 jeff@FreeBSD.org using -f
From: Jeff Roberson 
Date: Tue, 27 Mar 2018 10:20:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331610 - in head/sys: amd64/include i386/include x86/x86
 x86/xen
X-SVN-Group: head
X-SVN-Commit-Author: jeff
X-SVN-Commit-Paths: in head/sys: amd64/include i386/include x86/x86 x86/xen
X-SVN-Commit-Revision: 331610
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 10:20:52 -0000

Author: jeff
Date: Tue Mar 27 10:20:50 2018
New Revision: 331610
URL: https://svnweb.freebsd.org/changeset/base/331610

Log:
  Backout r331606 until I can identify why it does not boot on some
  machines.

Modified:
  head/sys/amd64/include/intr_machdep.h
  head/sys/i386/include/intr_machdep.h
  head/sys/x86/x86/intr_machdep.c
  head/sys/x86/x86/io_apic.c
  head/sys/x86/x86/msi.c
  head/sys/x86/x86/nexus.c
  head/sys/x86/xen/xen_intr.c

Modified: head/sys/amd64/include/intr_machdep.h
==============================================================================
--- head/sys/amd64/include/intr_machdep.h	Tue Mar 27 06:33:00 2018	(r331609)
+++ head/sys/amd64/include/intr_machdep.h	Tue Mar 27 10:20:50 2018	(r331610)
@@ -132,7 +132,6 @@ struct intsrc {
 	u_long *is_straycount;
 	u_int is_index;
 	u_int is_handlers;
-	u_int is_domain;
 	u_int is_cpu;
 };
 
@@ -169,7 +168,7 @@ void	intr_add_cpu(u_int cpu);
 #endif
 int	intr_add_handler(const char *name, int vector, driver_filter_t filter, 
 			 driver_intr_t handler, void *arg, enum intr_type flags, 
-			 void **cookiep, int domain);    
+			 void **cookiep);    
 #ifdef SMP
 int	intr_bind(u_int vector, u_char cpu);
 #endif
@@ -177,7 +176,7 @@ int	intr_config_intr(int vector, enum intr_trigger tri
     enum intr_polarity pol);
 int	intr_describe(u_int vector, void *ih, const char *descr);
 void	intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame);
-u_int	intr_next_cpu(int domain);
+u_int	intr_next_cpu(void);
 struct intsrc *intr_lookup_source(int vector);
 int	intr_register_pic(struct pic *pic);
 int	intr_register_source(struct intsrc *isrc);

Modified: head/sys/i386/include/intr_machdep.h
==============================================================================
--- head/sys/i386/include/intr_machdep.h	Tue Mar 27 06:33:00 2018	(r331609)
+++ head/sys/i386/include/intr_machdep.h	Tue Mar 27 10:20:50 2018	(r331610)
@@ -132,7 +132,6 @@ struct intsrc {
 	u_long *is_straycount;
 	u_int is_index;
 	u_int is_handlers;
-	u_int is_domain;
 	u_int is_cpu;
 };
 
@@ -159,8 +158,7 @@ void	elcr_write_trigger(u_int irq, enum intr_trigger t
 void	intr_add_cpu(u_int cpu);
 #endif
 int	intr_add_handler(const char *name, int vector, driver_filter_t filter,
-    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
-    int domain);
+    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep);
 #ifdef SMP
 int	intr_bind(u_int vector, u_char cpu);
 #endif
@@ -168,7 +166,7 @@ int	intr_config_intr(int vector, enum intr_trigger tri
     enum intr_polarity pol);
 int	intr_describe(u_int vector, void *ih, const char *descr);
 void	intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame);
-u_int	intr_next_cpu(int domain);
+u_int	intr_next_cpu(void);
 struct intsrc *intr_lookup_source(int vector);
 int	intr_register_pic(struct pic *pic);
 int	intr_register_source(struct intsrc *isrc);

Modified: head/sys/x86/x86/intr_machdep.c
==============================================================================
--- head/sys/x86/x86/intr_machdep.c	Tue Mar 27 06:33:00 2018	(r331609)
+++ head/sys/x86/x86/intr_machdep.c	Tue Mar 27 10:20:50 2018	(r331610)
@@ -71,8 +71,6 @@
 #include 
 #endif
 
-#include 
-
 #define	MAX_STRAY_LOG	5
 
 typedef void (*mask_fn)(void *);
@@ -187,8 +185,7 @@ intr_lookup_source(int vector)
 
 int
 intr_add_handler(const char *name, int vector, driver_filter_t filter,
-    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
-    int domain)
+    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep)
 {
 	struct intsrc *isrc;
 	int error;
@@ -203,7 +200,6 @@ intr_add_handler(const char *name, int vector, driver_
 		intrcnt_updatename(isrc);
 		isrc->is_handlers++;
 		if (isrc->is_handlers == 1) {
-			isrc->is_domain = domain;
 			isrc->is_pic->pic_enable_intr(isrc);
 			isrc->is_pic->pic_enable_source(isrc);
 		}
@@ -511,27 +507,14 @@ DB_SHOW_COMMAND(irqs, db_show_irqs)
  */
 
 cpuset_t intr_cpus = CPUSET_T_INITIALIZER(0x1);
-static int current_cpu[MAXMEMDOM];
+static int current_cpu;
 
-static void
-intr_init_cpus(void)
-{
-	int i;
-
-	for (i = 0; i < vm_ndomains; i++) {
-		current_cpu[i] = 0;
-		if (!CPU_ISSET(current_cpu[i], &intr_cpus) ||
-		    !CPU_ISSET(current_cpu[i], &cpuset_domain[i]))
-			intr_next_cpu(i);
-	}
-}
-
 /*
  * Return the CPU that the next interrupt source should use.  For now
  * this just returns the next local APIC according to round-robin.
  */
 u_int
-intr_next_cpu(int domain)
+intr_next_cpu(void)
 {
 	u_int apic_id;
 
@@ -546,13 +529,12 @@ intr_next_cpu(int domain)
 #endif
 
 	mtx_lock_spin(&icu_lock);
-	apic_id = cpu_apic_ids[current_cpu[domain]];
+	apic_id = cpu_apic_ids[current_cpu];
 	do {
-		current_cpu[domain]++;
-		if (current_cpu[domain] > mp_maxid)
-			current_cpu[domain] = 0;
-	} while (!CPU_ISSET(current_cpu[domain], &intr_cpus) ||
-	    !CPU_ISSET(current_cpu[domain], &cpuset_domain[domain]));
+		current_cpu++;
+		if (current_cpu > mp_maxid)
+			current_cpu = 0;
+	} while (!CPU_ISSET(current_cpu, &intr_cpus));
 	mtx_unlock_spin(&icu_lock);
 	return (apic_id);
 }
@@ -586,18 +568,7 @@ intr_add_cpu(u_int cpu)
 	CPU_SET(cpu, &intr_cpus);
 }
 
-#ifdef EARLY_AP_STARTUP
-static void
-intr_smp_startup(void *arg __unused)
-{
-
-	intr_init_cpus();
-	return;
-}
-SYSINIT(intr_smp_startup, SI_SUB_SMP, SI_ORDER_SECOND, intr_smp_startup,
-    NULL);
-
-#else
+#ifndef EARLY_AP_STARTUP
 /*
  * Distribute all the interrupt sources among the available CPUs once the
  * AP's have been launched.
@@ -609,7 +580,6 @@ intr_shuffle_irqs(void *arg __unused)
 	u_int cpu;
 	int i;
 
-	intr_init_cpus();
 	/* Don't bother on UP. */
 	if (mp_ncpus == 1)
 		return;
@@ -629,12 +599,12 @@ intr_shuffle_irqs(void *arg __unused)
 			 */
 			cpu = isrc->is_event->ie_cpu;
 			if (cpu == NOCPU)
-				cpu = current_cpu[isrc->is_domain];
+				cpu = current_cpu;
 			if (isrc->is_pic->pic_assign_cpu(isrc,
 			    cpu_apic_ids[cpu]) == 0) {
 				isrc->is_cpu = cpu;
 				if (isrc->is_event->ie_cpu == NOCPU)
-					intr_next_cpu(isrc->is_domain);
+					intr_next_cpu();
 			}
 		}
 	}
@@ -665,11 +635,10 @@ sysctl_hw_intrs(SYSCTL_HANDLER_ARGS)
 		isrc = interrupt_sources[i];
 		if (isrc == NULL)
 			continue;
-		sbuf_printf(&sbuf, "%s:%d @cpu%d(domain%d): %ld\n",
+		sbuf_printf(&sbuf, "%s:%d @%d: %ld\n",
 		    isrc->is_event->ie_fullname,
 		    isrc->is_index,
 		    isrc->is_cpu,
-		    isrc->is_domain,
 		    *isrc->is_count);
 	}
 
@@ -728,7 +697,7 @@ intr_balance(void *dummy __unused, int pending __unuse
 	 * Restart the scan from the same location to avoid moving in the
 	 * common case.
 	 */
-	intr_init_cpus();
+	current_cpu = 0;
 
 	/*
 	 * Assign round-robin from most loaded to least.
@@ -737,8 +706,8 @@ intr_balance(void *dummy __unused, int pending __unuse
 		isrc = interrupt_sorted[i];
 		if (isrc == NULL  || isrc->is_event->ie_cpu != NOCPU)
 			continue;
-		cpu = current_cpu[isrc->is_domain];
-		intr_next_cpu(isrc->is_domain);
+		cpu = current_cpu;
+		intr_next_cpu();
 		if (isrc->is_cpu != cpu &&
 		    isrc->is_pic->pic_assign_cpu(isrc,
 		    cpu_apic_ids[cpu]) == 0)
@@ -766,7 +735,7 @@ SYSINIT(intr_balance_init, SI_SUB_SMP, SI_ORDER_ANY, i
  * Always route interrupts to the current processor in the UP case.
  */
 u_int
-intr_next_cpu(int domain)
+intr_next_cpu(void)
 {
 
 	return (PCPU_GET(apic_id));

Modified: head/sys/x86/x86/io_apic.c
==============================================================================
--- head/sys/x86/x86/io_apic.c	Tue Mar 27 06:33:00 2018	(r331609)
+++ head/sys/x86/x86/io_apic.c	Tue Mar 27 10:20:50 2018	(r331610)
@@ -499,7 +499,7 @@ ioapic_enable_intr(struct intsrc *isrc)
 	struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc;
 
 	if (intpin->io_vector == 0)
-		if (ioapic_assign_cpu(isrc, intr_next_cpu(isrc->is_domain)) != 0)
+		if (ioapic_assign_cpu(isrc, intr_next_cpu()) != 0)
 			panic("Couldn't find an APIC vector for IRQ %d",
 			    intpin->io_irq);
 	apic_enable_vector(intpin->io_cpu, intpin->io_vector);

Modified: head/sys/x86/x86/msi.c
==============================================================================
--- head/sys/x86/x86/msi.c	Tue Mar 27 06:33:00 2018	(r331609)
+++ head/sys/x86/x86/msi.c	Tue Mar 27 10:20:50 2018	(r331610)
@@ -363,7 +363,7 @@ int
 msi_alloc(device_t dev, int count, int maxcount, int *irqs)
 {
 	struct msi_intsrc *msi, *fsrc;
-	u_int cpu, domain;
+	u_int cpu;
 	int cnt, i, *mirqs, vector;
 #ifdef ACPI_DMAR
 	u_int cookies[count];
@@ -373,9 +373,6 @@ msi_alloc(device_t dev, int count, int maxcount, int *
 	if (!msi_enabled)
 		return (ENXIO);
 
-	if (bus_get_domain(dev, &domain) != 0)
-		domain = 0;
-
 	if (count > 1)
 		mirqs = malloc(count * sizeof(*mirqs), M_MSI, M_WAITOK);
 	else
@@ -423,7 +420,7 @@ again:
 	KASSERT(cnt == count, ("count mismatch"));
 
 	/* Allocate 'count' IDT vectors. */
-	cpu = intr_next_cpu(domain);
+	cpu = intr_next_cpu();
 	vector = apic_alloc_vectors(cpu, irqs, count, maxcount);
 	if (vector == 0) {
 		mtx_unlock(&msi_lock);
@@ -613,7 +610,7 @@ int
 msix_alloc(device_t dev, int *irq)
 {
 	struct msi_intsrc *msi;
-	u_int cpu, domain;
+	u_int cpu;
 	int i, vector;
 #ifdef ACPI_DMAR
 	u_int cookie;
@@ -623,9 +620,6 @@ msix_alloc(device_t dev, int *irq)
 	if (!msi_enabled)
 		return (ENXIO);
 
-	if (bus_get_domain(dev, &domain) != 0)
-		domain = 0;
-
 again:
 	mtx_lock(&msi_lock);
 
@@ -657,7 +651,7 @@ again:
 	}
 
 	/* Allocate an IDT vector. */
-	cpu = intr_next_cpu(domain);
+	cpu = intr_next_cpu();
 	vector = apic_alloc_vector(cpu, i);
 	if (vector == 0) {
 		mtx_unlock(&msi_lock);

Modified: head/sys/x86/x86/nexus.c
==============================================================================
--- head/sys/x86/x86/nexus.c	Tue Mar 27 06:33:00 2018	(r331609)
+++ head/sys/x86/x86/nexus.c	Tue Mar 27 10:20:50 2018	(r331610)
@@ -573,7 +573,7 @@ nexus_setup_intr(device_t bus, device_t child, struct 
 		 int flags, driver_filter_t filter, void (*ihand)(void *),
 		 void *arg, void **cookiep)
 {
-	int		error, domain;
+	int		error;
 
 	/* somebody tried to setup an irq that failed to allocate! */
 	if (irq == NULL)
@@ -589,11 +589,9 @@ nexus_setup_intr(device_t bus, device_t child, struct 
 	error = rman_activate_resource(irq);
 	if (error)
 		return (error);
-	if (bus_get_domain(child, &domain) != 0)
-		domain = 0;
 
 	error = intr_add_handler(device_get_nameunit(child),
-	    rman_get_start(irq), filter, ihand, arg, flags, cookiep, domain);
+	    rman_get_start(irq), filter, ihand, arg, flags, cookiep);
 
 	return (error);
 }

Modified: head/sys/x86/xen/xen_intr.c
==============================================================================
--- head/sys/x86/xen/xen_intr.c	Tue Mar 27 06:33:00 2018	(r331609)
+++ head/sys/x86/xen/xen_intr.c	Tue Mar 27 10:20:50 2018	(r331610)
@@ -430,7 +430,7 @@ xen_intr_bind_isrc(struct xenisrc **isrcp, evtchn_port
 		 * unless specified otherwise, so shuffle them to balance
 		 * the interrupt load.
 		 */
-		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu(0));
+		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu());
 	}
 #endif
 
@@ -1562,7 +1562,7 @@ xen_intr_add_handler(const char *name, driver_filter_t
 		return (EINVAL);
 
 	error = intr_add_handler(name, isrc->xi_vector,filter, handler, arg,
-	    flags|INTR_EXCL, &isrc->xi_cookie, 0);
+	    flags|INTR_EXCL, &isrc->xi_cookie);
 	if (error != 0) {
 		printf(
 		    "%s: xen_intr_add_handler: intr_add_handler failed: %d\n",

From owner-svn-src-all@freebsd.org  Tue Mar 27 11:33:23 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E7BBF70C7D;
 Tue, 27 Mar 2018 11:33:23 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id A05227F367;
 Tue, 27 Mar 2018 11:33:22 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CDF561B8B7;
 Tue, 27 Mar 2018 11:33:21 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RBXL77076556;
 Tue, 27 Mar 2018 11:33:21 GMT (envelope-from avg@FreeBSD.org)
Received: (from avg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RBXLKw076553;
 Tue, 27 Mar 2018 11:33:21 GMT (envelope-from avg@FreeBSD.org)
Message-Id: <201803271133.w2RBXLKw076553@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org
 using -f
From: Andriy Gapon 
Date: Tue, 27 Mar 2018 11:33:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331611 - in
 stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys
X-SVN-Group: stable-11
X-SVN-Commit-Author: avg
X-SVN-Commit-Paths: in
 stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys
X-SVN-Commit-Revision: 331611
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 11:33:23 -0000

Author: avg
Date: Tue Mar 27 11:33:21 2018
New Revision: 331611
URL: https://svnweb.freebsd.org/changeset/base/331611

Log:
  MFC r330974: MFV r330973: 9164 assert: newds == os->os_dsl_dataset
  
  PR:		225877

Modified:
  stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
  stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
  stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	Tue Mar 27 10:20:50 2018	(r331610)
+++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	Tue Mar 27 11:33:21 2018	(r331611)
@@ -658,23 +658,21 @@ dmu_objset_rele(objset_t *os, void *tag)
  * same name so that it can be partially torn down and reconstructed.
  */
 void
-dmu_objset_refresh_ownership(objset_t *os, void *tag)
+dmu_objset_refresh_ownership(dsl_dataset_t *ds, dsl_dataset_t **newds,
+    void *tag)
 {
 	dsl_pool_t *dp;
-	dsl_dataset_t *ds, *newds;
 	char name[ZFS_MAX_DATASET_NAME_LEN];
 
-	ds = os->os_dsl_dataset;
 	VERIFY3P(ds, !=, NULL);
 	VERIFY3P(ds->ds_owner, ==, tag);
 	VERIFY(dsl_dataset_long_held(ds));
 
 	dsl_dataset_name(ds, name);
-	dp = dmu_objset_pool(os);
+	dp = ds->ds_dir->dd_pool;
 	dsl_pool_config_enter(dp, FTAG);
-	dmu_objset_disown(os, tag);
-	VERIFY0(dsl_dataset_own(dp, name, tag, &newds));
-	VERIFY3P(newds, ==, os->os_dsl_dataset);
+	dsl_dataset_disown(ds, tag);
+	VERIFY0(dsl_dataset_own(dp, name, tag, newds));
 	dsl_pool_config_exit(dp, FTAG);
 }
 

Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	Tue Mar 27 10:20:50 2018	(r331610)
+++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	Tue Mar 27 11:33:21 2018	(r331611)
@@ -153,7 +153,8 @@ int dmu_objset_own(const char *name, dmu_objset_type_t
     boolean_t readonly, void *tag, objset_t **osp);
 int dmu_objset_own_obj(struct dsl_pool *dp, uint64_t obj,
     dmu_objset_type_t type, boolean_t readonly, void *tag, objset_t **osp);
-void dmu_objset_refresh_ownership(objset_t *os, void *tag);
+void dmu_objset_refresh_ownership(struct dsl_dataset *ds,
+    struct dsl_dataset **newds, void *tag);
 void dmu_objset_rele(objset_t *os, void *tag);
 void dmu_objset_disown(objset_t *os, void *tag);
 int dmu_objset_from_ds(struct dsl_dataset *ds, objset_t **osp);

Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Tue Mar 27 10:20:50 2018	(r331610)
+++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Tue Mar 27 11:33:21 2018	(r331611)
@@ -5092,14 +5092,14 @@ zfs_ioc_userspace_upgrade(zfs_cmd_t *zc)
 			 * objset needs to be closed & reopened (to grow the
 			 * objset_phys_t).  Suspend/resume the fs will do that.
 			 */
-			dsl_dataset_t *ds;
+			dsl_dataset_t *ds, *newds;
 
 			ds = dmu_objset_ds(zfsvfs->z_os);
 			error = zfs_suspend_fs(zfsvfs);
 			if (error == 0) {
-				dmu_objset_refresh_ownership(zfsvfs->z_os,
+				dmu_objset_refresh_ownership(ds, &newds,
 				    zfsvfs);
-				error = zfs_resume_fs(zfsvfs, ds);
+				error = zfs_resume_fs(zfsvfs, newds);
 			}
 		}
 		if (error == 0)

From owner-svn-src-all@freebsd.org  Tue Mar 27 11:34:35 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DBDFCF70E64;
 Tue, 27 Mar 2018 11:34:34 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8A8A67F547;
 Tue, 27 Mar 2018 11:34:34 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 855FF1B8BC;
 Tue, 27 Mar 2018 11:34:34 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RBYY3T076686;
 Tue, 27 Mar 2018 11:34:34 GMT (envelope-from avg@FreeBSD.org)
Received: (from avg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RBYYBJ076683;
 Tue, 27 Mar 2018 11:34:34 GMT (envelope-from avg@FreeBSD.org)
Message-Id: <201803271134.w2RBYYBJ076683@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org
 using -f
From: Andriy Gapon 
Date: Tue, 27 Mar 2018 11:34:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331612 - in
 stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys
X-SVN-Group: stable-10
X-SVN-Commit-Author: avg
X-SVN-Commit-Paths: in
 stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys
X-SVN-Commit-Revision: 331612
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 11:34:35 -0000

Author: avg
Date: Tue Mar 27 11:34:34 2018
New Revision: 331612
URL: https://svnweb.freebsd.org/changeset/base/331612

Log:
  MFC r330974: MFV r330973: 9164 assert: newds == os->os_dsl_dataset
  
  PR:		225877

Modified:
  stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
  stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
  stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
==============================================================================
--- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	Tue Mar 27 11:33:21 2018	(r331611)
+++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	Tue Mar 27 11:34:34 2018	(r331612)
@@ -615,23 +615,21 @@ dmu_objset_rele(objset_t *os, void *tag)
  * same name so that it can be partially torn down and reconstructed.
  */
 void
-dmu_objset_refresh_ownership(objset_t *os, void *tag)
+dmu_objset_refresh_ownership(dsl_dataset_t *ds, dsl_dataset_t **newds,
+    void *tag)
 {
 	dsl_pool_t *dp;
-	dsl_dataset_t *ds, *newds;
 	char name[ZFS_MAX_DATASET_NAME_LEN];
 
-	ds = os->os_dsl_dataset;
 	VERIFY3P(ds, !=, NULL);
 	VERIFY3P(ds->ds_owner, ==, tag);
 	VERIFY(dsl_dataset_long_held(ds));
 
 	dsl_dataset_name(ds, name);
-	dp = dmu_objset_pool(os);
+	dp = ds->ds_dir->dd_pool;
 	dsl_pool_config_enter(dp, FTAG);
-	dmu_objset_disown(os, tag);
-	VERIFY0(dsl_dataset_own(dp, name, tag, &newds));
-	VERIFY3P(newds, ==, os->os_dsl_dataset);
+	dsl_dataset_disown(ds, tag);
+	VERIFY0(dsl_dataset_own(dp, name, tag, newds));
 	dsl_pool_config_exit(dp, FTAG);
 }
 

Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
==============================================================================
--- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	Tue Mar 27 11:33:21 2018	(r331611)
+++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h	Tue Mar 27 11:34:34 2018	(r331612)
@@ -149,7 +149,8 @@ int dmu_objset_own(const char *name, dmu_objset_type_t
     boolean_t readonly, void *tag, objset_t **osp);
 int dmu_objset_own_obj(struct dsl_pool *dp, uint64_t obj,
     dmu_objset_type_t type, boolean_t readonly, void *tag, objset_t **osp);
-void dmu_objset_refresh_ownership(objset_t *os, void *tag);
+void dmu_objset_refresh_ownership(struct dsl_dataset *ds,
+    struct dsl_dataset **newds, void *tag);
 void dmu_objset_rele(objset_t *os, void *tag);
 void dmu_objset_disown(objset_t *os, void *tag);
 int dmu_objset_from_ds(struct dsl_dataset *ds, objset_t **osp);

Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
==============================================================================
--- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Tue Mar 27 11:33:21 2018	(r331611)
+++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c	Tue Mar 27 11:34:34 2018	(r331612)
@@ -5007,14 +5007,14 @@ zfs_ioc_userspace_upgrade(zfs_cmd_t *zc)
 			 * objset needs to be closed & reopened (to grow the
 			 * objset_phys_t).  Suspend/resume the fs will do that.
 			 */
-			dsl_dataset_t *ds;
+			dsl_dataset_t *ds, *newds;
 
 			ds = dmu_objset_ds(zfsvfs->z_os);
 			error = zfs_suspend_fs(zfsvfs);
 			if (error == 0) {
-				dmu_objset_refresh_ownership(zfsvfs->z_os,
+				dmu_objset_refresh_ownership(ds, &newds,
 				    zfsvfs);
-				error = zfs_resume_fs(zfsvfs, ds);
+				error = zfs_resume_fs(zfsvfs, newds);
 			}
 		}
 		if (error == 0)

From owner-svn-src-all@freebsd.org  Tue Mar 27 11:49:20 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E393EF71F9D;
 Tue, 27 Mar 2018 11:49:19 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8DADF7FF41;
 Tue, 27 Mar 2018 11:49:19 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 871FD1BA72;
 Tue, 27 Mar 2018 11:49:19 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RBnJnP082200;
 Tue, 27 Mar 2018 11:49:19 GMT (envelope-from avg@FreeBSD.org)
Received: (from avg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RBnGIx082165;
 Tue, 27 Mar 2018 11:49:16 GMT (envelope-from avg@FreeBSD.org)
Message-Id: <201803271149.w2RBnGIx082165@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org
 using -f
From: Andriy Gapon 
Date: Tue, 27 Mar 2018 11:49:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331613 - in head/tests/sys/cddl/zfs: bin include
 tests/cli_root/zpool_add tests/delegate tests/devices tests/hotspare
 tests/interop tests/largest_pool tests/slog tests/utils_test tests...
X-SVN-Group: head
X-SVN-Commit-Author: avg
X-SVN-Commit-Paths: in head/tests/sys/cddl/zfs: bin include
 tests/cli_root/zpool_add tests/delegate tests/devices tests/hotspare
 tests/interop tests/largest_pool tests/slog tests/utils_test tests/xattr
 tests/zones tests/...
X-SVN-Commit-Revision: 331613
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 11:49:20 -0000

Author: avg
Date: Tue Mar 27 11:49:15 2018
New Revision: 331613
URL: https://svnweb.freebsd.org/changeset/base/331613

Log:
  ZFS test suite: fix uses of illumos /dev/[r]dsk/ and /dev/zvol/[r]dsk/

Modified:
  head/tests/sys/cddl/zfs/bin/devname2devid.c
  head/tests/sys/cddl/zfs/bin/zpool_bsd.ksh
  head/tests/sys/cddl/zfs/bin/zpool_smi.ksh
  head/tests/sys/cddl/zfs/include/libtest.kshlib
  head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add.kshlib
  head/tests/sys/cddl/zfs/tests/delegate/delegate_common.kshlib
  head/tests/sys/cddl/zfs/tests/devices/devices_common.kshlib
  head/tests/sys/cddl/zfs/tests/hotspare/hotspare_add_003_neg.ksh
  head/tests/sys/cddl/zfs/tests/hotspare/hotspare_create_001_neg.ksh
  head/tests/sys/cddl/zfs/tests/hotspare/hotspare_remove_002_neg.ksh
  head/tests/sys/cddl/zfs/tests/interop/interop.cfg
  head/tests/sys/cddl/zfs/tests/largest_pool/largest_pool.cfg
  head/tests/sys/cddl/zfs/tests/slog/slog_013_pos.ksh
  head/tests/sys/cddl/zfs/tests/utils_test/utils_test_001_pos.ksh
  head/tests/sys/cddl/zfs/tests/utils_test/utils_test_002_pos.ksh
  head/tests/sys/cddl/zfs/tests/utils_test/utils_test_005_pos.ksh
  head/tests/sys/cddl/zfs/tests/utils_test/utils_test_006_pos.ksh
  head/tests/sys/cddl/zfs/tests/utils_test/utils_test_008_pos.ksh
  head/tests/sys/cddl/zfs/tests/utils_test/utils_test_009_pos.ksh
  head/tests/sys/cddl/zfs/tests/xattr/xattr_004_pos.ksh
  head/tests/sys/cddl/zfs/tests/zones/zones_001_pos.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_common.kshlib
  head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_001_neg.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_003_neg.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_004_pos.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_005_neg.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_006_pos.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/cleanup.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_001_pos.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_002_pos.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_003_pos.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_004_pos.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_005_pos.ksh
  head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_006_pos.ksh

Modified: head/tests/sys/cddl/zfs/bin/devname2devid.c
==============================================================================
--- head/tests/sys/cddl/zfs/bin/devname2devid.c	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/bin/devname2devid.c	Tue Mar 27 11:49:15 2018	(r331613)
@@ -39,11 +39,11 @@
  * Usage: devname2devid 
  *
  * Examples:
- *	# ./devname2devid /dev/dsk/c1t4d0s0
+ *	# ./devname2devid /dev/c1t4d0s0
  *	devid id1,sd@SSEAGATE_ST318404LSUN18G_3BT2G0Z300002146G4CR/a
- *	# ./devname2devid /dev/dsk/c1t4d0
+ *	# ./devname2devid /dev/c1t4d0
  *	devid id1,sd@SSEAGATE_ST318404LSUN18G_3BT2G0Z300002146G4CR/wd
- *	# ./devname2devid /dev/dsk/c1t4d0s1
+ *	# ./devname2devid /dev/c1t4d0s1
  *	devid id1,sd@SSEAGATE_ST318404LSUN18G_3BT2G0Z300002146G4CR/b
  *	#
  *
@@ -99,7 +99,7 @@ main(int argc, char *argv[])
 	if (argc == 3) {
 		search_path = argv[2];
 	} else {
-		search_path = "/dev/rdsk";
+		search_path = "/dev/";
 	}
 
 	if (devid_deviceid_to_nmlist(search_path, devid, DEVID_MINOR_NAME_ALL,

Modified: head/tests/sys/cddl/zfs/bin/zpool_bsd.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/bin/zpool_bsd.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/bin/zpool_bsd.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -16,8 +16,8 @@ typeset option
 case $cmd in
 	create|add|attach|detach|replace|remove|online|offline|clear)
 		for arg in $@; do
-			if [[ $arg == "/dev/dsk/"* ]]; then
-				arg=${arg#/dev/dsk/}
+			if [[ $arg == "/dev/"* ]]; then
+				arg=${arg#/dev/}
 				arg="/dev/"$arg
 			fi
 			if [[ $arg == "/dev/"* ]]; then

Modified: head/tests/sys/cddl/zfs/bin/zpool_smi.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/bin/zpool_smi.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/bin/zpool_smi.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -42,7 +42,7 @@ label
 yes
 _EOF
 
-	labeltype=$(/usr/sbin/prtvtoc -fh /dev/rdsk/${disk}s2 | \
+	labeltype=$(/usr/sbin/prtvtoc -fh /dev/${disk}s2 | \
 		awk '{print $1}' | awk -F= '{print $2}' )
 	if [[ -z $labeltype ]]; then
 		print "${disk} not exist."
@@ -61,7 +61,7 @@ _EOF
 		 	print "q" >> $label_file
 		 	print "q" >> $label_file
 
-		 	fdisk -B /dev/rdsk/${disk}p0 >/dev/null 2>&1
+		 	fdisk -B /dev/${disk}p0 >/dev/null 2>&1
 		 	# wait a while for fdisk finishes
 			/usr/sbin/devfsadm > /dev/null 2>&1
 		elif [[ $arch == "sparc" ]]; then
@@ -105,8 +105,8 @@ typeset option
 case $cmd in
 	create|add|attach|detach|replace|remove|online|offline|clear)
 		for arg in $@; do
-			if [[ $arg == "/dev/dsk/"* ]]; then
-				arg=${arg#/dev/dsk/}
+			if [[ $arg == "/dev/"* ]]; then
+				arg=${arg#/dev/}
 			fi
 
 			print $arg | egrep "^c[0-F]+([td][0-F]+)+$" > /dev/null 2>&1

Modified: head/tests/sys/cddl/zfs/include/libtest.kshlib
==============================================================================
--- head/tests/sys/cddl/zfs/include/libtest.kshlib	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/include/libtest.kshlib	Tue Mar 27 11:49:15 2018	(r331613)
@@ -1235,12 +1235,12 @@ function zfs_zones_setup #zone_name zone_root zone_ip
 
 	# add our zvol to the zone
 	$ECHO "add device" >> $zone_conf
-	$ECHO "set match=/dev/zvol/dsk/$pool_name/zone_zvol" >> $zone_conf
+	$ECHO "set match=/dev/zvol/$pool_name/zone_zvol" >> $zone_conf
 	$ECHO "end" >> $zone_conf
 
-	# add a corresponding zvol rdsk to the zone
+	# add a corresponding zvol to the zone
 	$ECHO "add device" >> $zone_conf
-	$ECHO "set match=/dev/zvol/rdsk/$pool_name/zone_zvol" >> $zone_conf
+	$ECHO "set match=/dev/zvol/$pool_name/zone_zvol" >> $zone_conf
 	$ECHO "end" >> $zone_conf
 	
 	# once it's supported, we'll add our filesystem to the zone
@@ -1349,9 +1349,9 @@ function wait_for # timeout dt  [args...]
 function check_state # pool disk stateexpr
 {
 	typeset pool=$1
-	typeset disk=${2#/dev/dsk/}
-	disk=${disk#/dev/rdsk/}
+	typeset disk=${2#/dev/}
 	disk=${disk#/dev/}
+	disk=${disk#/dev/}
 	typeset stateexpr=$3
 
 	$ZPOOL status -v $pool | grep "$disk"  \
@@ -1561,9 +1561,9 @@ function check_version # 
 function check_hotspare_state # pool disk state{inuse,avail}
 {
 	typeset pool=$1
-	typeset disk=${2#/dev/dsk/}
-	disk=${disk#/dev/rdsk/}
+	typeset disk=${2#/dev/}
 	disk=${disk#/dev/}
+	disk=${disk#/dev/}
 	typeset state=$3
 
 	cur_state=$(get_device_state $pool $disk "spares")
@@ -1582,9 +1582,9 @@ function check_hotspare_state # pool disk state{inuse,
 function check_slog_state # pool disk state{online,offline,unavail}
 {
 	typeset pool=$1
-	typeset disk=${2#/dev/dsk/}
-	disk=${disk#/dev/rdsk/}
+	typeset disk=${2#/dev/}
 	disk=${disk#/dev/}
+	disk=${disk#/dev/}
 	typeset state=$3
 
 	cur_state=$(get_device_state $pool $disk "logs")
@@ -1603,9 +1603,9 @@ function check_slog_state # pool disk state{online,off
 function check_vdev_state # pool disk state{online,offline,unavail}
 {
 	typeset pool=$1
-	typeset disk=${2#/dev/dsk/}
-	disk=${disk#/dev/rdsk/}
+	typeset disk=${2#/dev/}
 	disk=${disk#/dev/}
+	disk=${disk#/dev/}
 	typeset state=$3
 
 	if [[ $WRAPPER == *"smi"* ]]; then
@@ -2176,7 +2176,7 @@ function safe_to_destroy_pool { # $1 the pool name
 			$AWK '{print $1}')
 
 		# this is a list of the zvols that make up the pool
-		ZVOLPOOL=$($ZPOOL status -v $pool | $GREP "/dev/zvol/dsk/$1$" | \
+		ZVOLPOOL=$($ZPOOL status -v $pool | $GREP "/dev/zvol/$1$" | \
 			$AWK '{print $1}')
 
 		# also want to determine if it's a file-based pool using an
@@ -2728,8 +2728,8 @@ function checksum
 function get_device_state #pool disk field("", "spares","logs")
 {
 	typeset pool=$1
-	typeset disk=${2#/dev/dsk/}
-	disk=${disk#/dev/rdsk/}
+	typeset disk=${2#/dev/}
+	disk=${disk#/dev/}
 	disk=${disk#/dev/}
 	typeset field=${3:-$pool}
 

Modified: head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add.kshlib
==============================================================================
--- head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add.kshlib	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add.kshlib	Tue Mar 27 11:49:15 2018	(r331613)
@@ -54,7 +54,7 @@ function iscontained
 
 	for vdev in $@; do
 
-# remove /dev/dsk in vdev if there is
+# remove /dev/ in vdev if there is
 		vdev=${vdev#/dev/}
 
 		$ZPOOL status "$pool" | $AWK '$1 == vdevname {exit 1}' \

Modified: head/tests/sys/cddl/zfs/tests/delegate/delegate_common.kshlib
==============================================================================
--- head/tests/sys/cddl/zfs/tests/delegate/delegate_common.kshlib	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/delegate/delegate_common.kshlib	Tue Mar 27 11:49:15 2018	(r331613)
@@ -1531,7 +1531,7 @@ function verify_vol_rollback
 	log_must $ZFS snapshot $snap
 	oldval=$(datasetcksum $vol)
 
-	log_must $DD if=/dev/random of=/dev/zvol/rdsk/$vol \
+	log_must $DD if=/dev/random of=/dev/zvol/$vol \
 		bs=512 count=1
 
 	user_run $user $ZFS rollback -R $snap

Modified: head/tests/sys/cddl/zfs/tests/devices/devices_common.kshlib
==============================================================================
--- head/tests/sys/cddl/zfs/tests/devices/devices_common.kshlib	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/devices/devices_common.kshlib	Tue Mar 27 11:49:15 2018	(r331613)
@@ -57,7 +57,7 @@ function create_dev_file
 						$AWK '{print $1}')
 					[[ -z $devstr ]] && \
 						log_fail "Can not get block device file."
-					devstr=/dev/dsk/${devstr}
+					devstr=/dev/${devstr}
 					;;
 				ufs)
 			#
@@ -65,7 +65,7 @@ function create_dev_file
 			# And bring out the first one.
 			#
 					devstr=$($DF -lht ufs | \
-						$GREP "^/dev/dsk" | \
+						$GREP "^/dev/" | \
 						$AWK '{print $1}')
 					devstr=$($ECHO "$devstr" | \
 						$AWK '{print $1}')
@@ -81,7 +81,7 @@ function create_dev_file
 
 			#
 			# Get the device file information. i.e:
-			# /dev/dsk/c0t0d0s0:      block special (28/768)
+			# /dev/c0t0d0s0:      block special (28/768)
 			#
 			devstr=$($FILE $devstr)
 

Modified: head/tests/sys/cddl/zfs/tests/hotspare/hotspare_add_003_neg.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/hotspare/hotspare_add_003_neg.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/hotspare/hotspare_add_003_neg.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -130,7 +130,7 @@ done
 # This part of the test can only be run on platforms for which DUMPADM is
 # defined; ie Solaris
 if [[ -n $DUMPADM ]]; then
-	log_must $DUMPADM -u -d /dev/dsk/$dump_dev
+	log_must $DUMPADM -u -d /dev/$dump_dev
 	log_mustnot $ZPOOL add "$TESTPOOL" spare $dump_dev
 	log_mustnot $ZPOOL add -f "$TESTPOOL" spare $dump_dev
 fi

Modified: head/tests/sys/cddl/zfs/tests/hotspare/hotspare_create_001_neg.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/hotspare/hotspare_create_001_neg.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/hotspare/hotspare_create_001_neg.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -131,7 +131,7 @@ if [[ -n $DUMPADM ]]; then
     # back to something normal so we can use this $disk as a dump device
     cleanup_devices $dump_dev
 
-    log_must $DUMPADM -u -d /dev/dsk/$dump_dev
+    log_must $DUMPADM -u -d /dev/$dump_dev
     log_mustnot $ZPOOL create $TESTPOOL1 ${pooldevs[1]} spare "$dump_dev"
     log_mustnot $ZPOOL create -f $TESTPOOL1 ${pooldevs[1]} spare "$dump_dev"
 fi

Modified: head/tests/sys/cddl/zfs/tests/hotspare/hotspare_remove_002_neg.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/hotspare/hotspare_remove_002_neg.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/hotspare/hotspare_remove_002_neg.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -86,11 +86,11 @@ typeset dev_nonexist dev_notinlist
 
 case $DISK_ARRAY_NUM in
 0|1)
-	dev_nonexist=/dev/dsk/${disk}sbad_slice_num
+	dev_nonexist=/dev/${disk}sbad_slice_num
 	dev_notinlist=${disk}
 	;;
 2|*)
-	dev_nonexist=/dev/dsk/${DISK0}sbad_slice_num
+	dev_nonexist=/dev/${DISK0}sbad_slice_num
 	dev_notinlist="${DISK0} ${DISK1}"
 	;;
 esac

Modified: head/tests/sys/cddl/zfs/tests/interop/interop.cfg
==============================================================================
--- head/tests/sys/cddl/zfs/tests/interop/interop.cfg	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/interop/interop.cfg	Tue Mar 27 11:49:15 2018	(r331613)
@@ -77,6 +77,6 @@ export META_SIDE0 META_SIDE1 ZFS_SIDE2 SINGLE_DISK
 export TESTFILE=testfile
 export FS_SIZE=500m
 export META_DEVICE_ID=d99
-export META_DEVICE_PATH=/dev/md/dsk/$META_DEVICE_ID
+export META_DEVICE_PATH=/dev/md/$META_DEVICE_ID
 export FILE_COUNT=20
 export FILE_SIZE=$(( 1024 * 1024 ))

Modified: head/tests/sys/cddl/zfs/tests/largest_pool/largest_pool.cfg
==============================================================================
--- head/tests/sys/cddl/zfs/tests/largest_pool/largest_pool.cfg	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/largest_pool/largest_pool.cfg	Tue Mar 27 11:49:15 2018	(r331613)
@@ -31,7 +31,7 @@
 
 export TESTVOL=testvol${TESTCASE_ID}
 export STF_TIMEOUT=1800
-export VOL_PATH=/dev/zvol/dsk/${TESTPOOL2}/$TESTVOL
+export VOL_PATH=/dev/zvol/${TESTPOOL2}/$TESTVOL
 export VOLSIZES=${VOLSIZES-"2pb 5pb 10pb 2eb 5eb 8eb 9eb"}
 
 # There're 3 different prompt messages while create

Modified: head/tests/sys/cddl/zfs/tests/slog/slog_013_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/slog/slog_013_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/slog/slog_013_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -104,4 +104,4 @@ log_must $ZPOOL add $TESTPOOL $mntpnt/vdev
 # Add ZFS volume
 vol=$TESTPOOL/vol
 log_must $ZPOOL create -V 64M $vol
-log_must $ZPOOL add $TESTPOOL /dev/zvol/dsk/$vol
+log_must $ZPOOL add $TESTPOOL /dev/zvol/$vol

Modified: head/tests/sys/cddl/zfs/tests/utils_test/utils_test_001_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/utils_test/utils_test_001_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/utils_test/utils_test_001_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -69,7 +69,7 @@ log_assert "Ensure that the clri(1M) utility fails on 
 populate_dir $TESTDIR/$TESTFILE $NUM_FILES $WRITE_COUNT $BLOCKSZ $DATA
 
 inode=`$LS -i $TESTDIR/$TESTFILE.0 | $AWK '{print $1}'`
-log_mustnot $CLRI /dev/rdsk/$DISK $inode
-log_mustnot $CLRI -F zfs /dev/rdsk/$DISK $inode
+log_mustnot $CLRI /dev/$DISK $inode
+log_mustnot $CLRI -F zfs /dev/$DISK $inode
 
 log_pass "clri(1M) returned an error as expected."

Modified: head/tests/sys/cddl/zfs/tests/utils_test/utils_test_002_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/utils_test/utils_test_002_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/utils_test/utils_test_002_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -76,6 +76,6 @@ populate_dir $TESTDIR/$TESTFILE $NUM_FILES $WRITE_COUN
 
 log_must $ZFS unmount $TESTDIR
 
-log_mustnot $LABELIT /dev/rdsk/${DISK}s0 mfiles ${DISK}s0
+log_mustnot $LABELIT /dev/${DISK}s0 mfiles ${DISK}s0
 
 log_pass "labelit(1M) returned an error as expected."

Modified: head/tests/sys/cddl/zfs/tests/utils_test/utils_test_005_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/utils_test/utils_test_005_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/utils_test/utils_test_005_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -70,6 +70,6 @@ log_assert "Ensure that the ff(1M) utility fails on a 
 
 populate_dir $TESTDIR/$TESTFILE $NUM_FILES $WRITE_COUNT $BLOCKSZ $DATA
 
-log_mustnot $FF -F zfs /dev/rdsk/${DISK}s0
+log_mustnot $FF -F zfs /dev/${DISK}s0
 
 log_pass "ff(1M) returned an error as expected."

Modified: head/tests/sys/cddl/zfs/tests/utils_test/utils_test_006_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/utils_test/utils_test_006_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/utils_test/utils_test_006_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -74,6 +74,6 @@ populate_dir $TESTDIR/$TESTFILE $NUM_FILES $WRITE_COUN
 
 log_must $ZFS unmount $TESTDIR
 
-log_mustnot $FSIRAND /dev/rdsk/${DISK}s0
+log_mustnot $FSIRAND /dev/${DISK}s0
 
 log_pass "fsirand(1M) returned an error as expected."

Modified: head/tests/sys/cddl/zfs/tests/utils_test/utils_test_008_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/utils_test/utils_test_008_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/utils_test/utils_test_008_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -76,6 +76,6 @@ populate_dir $TESTDIR/$TESTFILE $NUM_FILES $WRITE_COUN
 
 log_must $ZFS unmount $TESTDIR
 
-log_mustnot $NCHECK /dev/rdsk/${DISK}s0
+log_mustnot $NCHECK /dev/${DISK}s0
 
 log_pass "ncheck(1M) returned an error as expected."

Modified: head/tests/sys/cddl/zfs/tests/utils_test/utils_test_009_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/utils_test/utils_test_009_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/utils_test/utils_test_009_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -68,6 +68,6 @@ log_assert "Ensure that the tunefs(1M) utility fails o
 
 populate_dir $TESTDIR/$TESTFILE $NUM_FILES $WRITE_COUNT $BLOCKSZ $DATA
 
-log_mustnot $TUNEFS -m 80 /dev/dsk/${DISK}s0
+log_mustnot $TUNEFS -m 80 /dev/${DISK}s0
 
 log_pass "tunefs(1M) returned an error as expected."

Modified: head/tests/sys/cddl/zfs/tests/xattr/xattr_004_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/xattr/xattr_004_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/xattr/xattr_004_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -78,10 +78,10 @@ test_requires RUNAT
 
 # Create a UFS file system that we can work in
 log_must $ZFS create -V128m $TESTPOOL/$TESTFS/zvol
-log_must eval "$ECHO y | $NEWFS /dev/zvol/dsk/$TESTPOOL/$TESTFS/zvol > /dev/null 2>&1"
+log_must eval "$ECHO y | $NEWFS /dev/zvol/$TESTPOOL/$TESTFS/zvol > /dev/null 2>&1"
 
 log_must $MKDIR $TMPDIR/ufs.${TESTCASE_ID}
-log_must $MOUNT /dev/zvol/dsk/$TESTPOOL/$TESTFS/zvol $TMPDIR/ufs.${TESTCASE_ID}
+log_must $MOUNT /dev/zvol/$TESTPOOL/$TESTFS/zvol $TMPDIR/ufs.${TESTCASE_ID}
 
 # Create files in ufs and tmpfs, and set some xattrs on them.
 log_must $TOUCH $TMPDIR/ufs.${TESTCASE_ID}/ufs-file.${TESTCASE_ID}

Modified: head/tests/sys/cddl/zfs/tests/zones/zones_001_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zones/zones_001_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zones/zones_001_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -64,18 +64,18 @@ log_assert "Local zone contains ZFS datasets as expect
 
 
 # check to see if our zvol exists:
-if [ ! -b /dev/zvol/dsk/zonepool/zone_zvol ]
+if [ ! -b /dev/zvol/zonepool/zone_zvol ]
 then
-    log_fail "block device /dev/zvol/dsk/zonepool/zone_zvol not found!"
+    log_fail "block device /dev/zvol/zonepool/zone_zvol not found!"
 fi
 
-if [ ! -c /dev/zvol/rdsk/zonepool/zone_zvol ]
+if [ ! -c /dev/zvol/zonepool/zone_zvol ]
 then
-    log_fail "char device /dev/zvol/rdsk/zonepool/zone_zvol not found!"
+    log_fail "char device /dev/zvol/zonepool/zone_zvol not found!"
 fi
 
 # check to see if the device appears sane - create a UFS filesystem on it.
-$ECHO y | $NEWFS /dev/zvol/rdsk/zonepool/zone_zvol > /dev/null
+$ECHO y | $NEWFS /dev/zvol/zonepool/zone_zvol > /dev/null
 
 if [ $? -ne 0 ]
 then
@@ -83,7 +83,7 @@ then
 fi
 
 $MKDIR /ufs.${TESTCASE_ID}
-log_must $MOUNT /dev/zvol/dsk/zonepool/zone_zvol /ufs.${TESTCASE_ID}
+log_must $MOUNT /dev/zvol/zonepool/zone_zvol /ufs.${TESTCASE_ID}
 log_must $UMOUNT /ufs.${TESTCASE_ID}
 $RM -rf /ufs.${TESTCASE_ID}
 

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_common.kshlib
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_common.kshlib	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_common.kshlib	Tue Mar 27 11:49:15 2018	(r331613)
@@ -106,7 +106,7 @@ function set_dumpsize
 
 	log_must $ZFS set volsize=64m $volume
 
-	output=$($DUMPADM -d /dev/zvol/dsk/$volume 2>&1 | \
+	output=$($DUMPADM -d /dev/zvol/$volume 2>&1 | \
 			$TAIL -1 | $AWK '{print $3}')
 
 	if [[ -n $output ]]; then
@@ -125,8 +125,8 @@ function safe_dumpadm
 		log_note "No dump device volume specified."
 		return 1
 	fi
-	if [[ $device == "/dev/zvol/dsk/"* ]] ; then
-		typeset volume=${device#/dev/zvol/dsk/}
+	if [[ $device == "/dev/zvol/"* ]] ; then
+		typeset volume=${device#/dev/zvol/}
 		set_dumpsize $volume
 		log_must $DUMPADM -d $device
 	else

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_001_neg.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_001_neg.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_001_neg.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -73,7 +73,7 @@ log_onexit cleanup
 
 test_requires DUMPADM
 
-voldev=/dev/zvol/dsk/$TESTPOOL/$TESTVOL
+voldev=/dev/zvol/$TESTPOOL/$TESTVOL
 savedumpdev=$(get_dumpdevice)
 
 if ! is_dumpswap_supported $TESTPOOL ; then

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_003_neg.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_003_neg.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_003_neg.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -78,7 +78,7 @@ log_onexit cleanup
 
 test_requires DUMPADM
 
-voldev=/dev/zvol/dsk/$TESTPOOL/$TESTVOL
+voldev=/dev/zvol/$TESTPOOL/$TESTVOL
 savedumpdev=$(get_dumpdevice)
 
 safe_dumpadm $voldev

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_004_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_004_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_004_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -104,7 +104,7 @@ log_onexit cleanup
 
 test_requires DUMPADM
 
-voldev=/dev/zvol/dsk/$TESTPOOL/$TESTVOL
+voldev=/dev/zvol/$TESTPOOL/$TESTVOL
 savedumpdev=$(get_dumpdevice)
 
 # create snapshot over dump zvol

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_005_neg.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_005_neg.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_005_neg.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -79,7 +79,7 @@ log_onexit cleanup
 
 test_requires DUMPADM
 
-voldev=/dev/zvol/dsk/$TESTPOOL/$TESTVOL
+voldev=/dev/zvol/$TESTPOOL/$TESTVOL
 savedumpdev=$(get_dumpdevice)
 
 # If device in swap list, it cannot be dump device

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_006_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_006_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_misc/zvol_misc_006_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -75,7 +75,7 @@ log_onexit cleanup
 
 test_requires DUMPADM
 
-voldev=/dev/zvol/dsk/$TESTPOOL/$TESTVOL
+voldev=/dev/zvol/$TESTPOOL/$TESTVOL
 savedumpdev=$(get_dumpdevice)
 
 typeset oblksize=$($ZFS get -H -o value volblocksize $TESTPOOL/$TESTVOL)

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/cleanup.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/cleanup.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/cleanup.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -42,7 +42,7 @@ do
 	fi
 done
 
-voldev=/dev/zvol/dsk/$TESTPOOL/$TESTVOL
+voldev=/dev/zvol/$TESTPOOL/$TESTVOL
 if is_swap_inuse $voldev ; then
 	log_must $SWAP -d $voldev
 fi

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_001_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_001_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_001_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -74,7 +74,7 @@ log_onexit cleanup
 
 test_requires SWAP
 
-voldev=/dev/zvol/dsk/$TESTPOOL/$TESTVOL
+voldev=/dev/zvol/$TESTPOOL/$TESTVOL
 log_note "Add zvol volume as swap space"
 log_must $SWAP -a $voldev
 

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_002_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_002_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_002_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -78,7 +78,7 @@ fi
 
 log_onexit cleanup
 
-voldev=/dev/zvol/dsk/$TESTPOOL/$TESTVOL
+voldev=/dev/zvol/$TESTPOOL/$TESTVOL
 
 $SWAP -l | $GREP zvol
 if (( $? != 0 )) ; then

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_003_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_003_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_003_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -97,7 +97,7 @@ log_onexit cleanup
 
 test_requires SWAPADD
 
-voldev=/dev/zvol/dsk/$TESTPOOL/$TESTVOL
+voldev=/dev/zvol/$TESTPOOL/$TESTVOL
 VFSTAB_FILE=/etc/vfstab
 NEW_VFSTAB_FILE=$TMPDIR/zvol_vfstab.${TESTCASE_ID}
 PREV_VFSTAB_FILE=$TMPDIR/zvol_vfstab.PREV.${TESTCASE_ID}

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_004_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_004_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_004_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -94,7 +94,7 @@ while ((i < ${#array[@]})); do
 	
 	log_must $ZFS create -b $volblksize -V ${array[$i]} $vol
 
-	swapname="/dev/zvol/dsk/$vol"
+	swapname="/dev/zvol/$vol"
 	if [[ ${array[((i+1))]} == "fail" ]]; then
 		log_mustnot $SWAP -a $swapname
 	else

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_005_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_005_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_005_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -95,7 +95,7 @@ while ((i < 10)) ; do
 	# The minimum swap size should be 2 pagesize.
 	((swaplow + swaplen < pageblocks * 2)) && continue
 
-	swapname="/dev/zvol/dsk/$vol"
+	swapname="/dev/zvol/$vol"
 	if is_swap_inuse $swapname ; then
 		log_must $SWAP -d $swapname
 	fi

Modified: head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_006_pos.ksh
==============================================================================
--- head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_006_pos.ksh	Tue Mar 27 11:34:34 2018	(r331612)
+++ head/tests/sys/cddl/zfs/tests/zvol/zvol_swap/zvol_swap_006_pos.ksh	Tue Mar 27 11:49:15 2018	(r331613)
@@ -95,7 +95,7 @@ set -A swap_opt	$((pageblocks))	    \
 		$(((volblocks*2) / 3))  \
 		$((pageblocks * ((RANDOM % 50) + 1) + (RANDOM % pageblocks) )) 
 
-swapname=/dev/zvol/dsk/$vol
+swapname=/dev/zvol/$vol
 typeset -i i=0 count=0
 
 if is_swap_inuse $swapname ; then

From owner-svn-src-all@freebsd.org  Tue Mar 27 13:09:35 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF401F50ED2;
 Tue, 27 Mar 2018 13:09:35 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 81639838A4;
 Tue, 27 Mar 2018 13:09:35 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7C5BD1C754;
 Tue, 27 Mar 2018 13:09:35 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RD9ZEo022909;
 Tue, 27 Mar 2018 13:09:35 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RD9ZGC022908;
 Tue, 27 Mar 2018 13:09:35 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803271309.w2RD9ZGC022908@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Tue, 27 Mar 2018 13:09:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331614 - stable/11/sys/vm
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: stable/11/sys/vm
X-SVN-Commit-Revision: 331614
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 13:09:36 -0000

Author: kib
Date: Tue Mar 27 13:09:35 2018
New Revision: 331614
URL: https://svnweb.freebsd.org/changeset/base/331614

Log:
  MFC r331247:
  Check for wrap-around in vm_phys_alloc_seg_contig().

Modified:
  stable/11/sys/vm/vm_phys.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/vm/vm_phys.c
==============================================================================
--- stable/11/sys/vm/vm_phys.c	Tue Mar 27 11:49:15 2018	(r331613)
+++ stable/11/sys/vm/vm_phys.c	Tue Mar 27 13:09:35 2018	(r331614)
@@ -1396,6 +1396,8 @@ vm_phys_alloc_seg_contig(struct vm_phys_seg *seg, u_lo
 					 */
 					pa = VM_PAGE_TO_PHYS(m_ret);
 					pa_end = pa + size;
+					if (pa_end < pa)
+						continue;
 					for (;;) {
 						pa += 1 << (PAGE_SHIFT +
 						    VM_NFREEORDER - 1);

From owner-svn-src-all@freebsd.org  Tue Mar 27 13:59:58 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 62DF3F562DC;
 Tue, 27 Mar 2018 13:59:58 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 01C1986AB0;
 Tue, 27 Mar 2018 13:59:58 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ECA401CF5E;
 Tue, 27 Mar 2018 13:59:57 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RDxvY4048028;
 Tue, 27 Mar 2018 13:59:57 GMT (envelope-from kevans@FreeBSD.org)
Received: (from kevans@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RDxvxr048026;
 Tue, 27 Mar 2018 13:59:57 GMT (envelope-from kevans@FreeBSD.org)
Message-Id: <201803271359.w2RDxvxr048026@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kevans set sender to
 kevans@FreeBSD.org using -f
From: Kyle Evans 
Date: Tue, 27 Mar 2018 13:59:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331615 - in stable/11/stand: efi/libefi i386/libi386
X-SVN-Group: stable-11
X-SVN-Commit-Author: kevans
X-SVN-Commit-Paths: in stable/11/stand: efi/libefi i386/libi386
X-SVN-Commit-Revision: 331615
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 13:59:58 -0000

Author: kevans
Date: Tue Mar 27 13:59:57 2018
New Revision: 331615
URL: https://svnweb.freebsd.org/changeset/base/331615

Log:
  MFC r331475: loader consoles: Implement SGR 24, 25
  
  Mostly for completeness sake- implement 24 (no underline) and 25 (no blink)

Modified:
  stable/11/stand/efi/libefi/efi_console.c
  stable/11/stand/i386/libi386/vidconsole.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/stand/efi/libefi/efi_console.c
==============================================================================
--- stable/11/stand/efi/libefi/efi_console.c	Tue Mar 27 13:09:35 2018	(r331614)
+++ stable/11/stand/efi/libefi/efi_console.c	Tue Mar 27 13:59:57 2018	(r331615)
@@ -386,6 +386,10 @@ efi_term_emu(int c)
 				case 22:	/* normal intensity */
 					fg_c &= ~0x8;
 					break;
+				case 24:	/* not underline */
+				case 25:	/* not blinking */
+					bg_c &= ~0x8;
+					break;
 				case 30: case 31: case 32: case 33:
 				case 34: case 35: case 36: case 37:
 					fg_c = ansi_col[args[i] - 30];

Modified: stable/11/stand/i386/libi386/vidconsole.c
==============================================================================
--- stable/11/stand/i386/libi386/vidconsole.c	Tue Mar 27 13:09:35 2018	(r331614)
+++ stable/11/stand/i386/libi386/vidconsole.c	Tue Mar 27 13:59:57 2018	(r331615)
@@ -452,6 +452,10 @@ vidc_term_emu(int c)
 		case 22:	/* normal intensity */
 		    fg_c &= ~0x8;
 		    break;
+		case 24:	/* not underline */
+		case 25:	/* not blinking */
+		    bg_c &= ~0x8;
+		    break;
 		case 30: case 31: case 32: case 33:
 		case 34: case 35: case 36: case 37:
 		    fg_c = ansi_col[args[i] - 30];

From owner-svn-src-all@freebsd.org  Tue Mar 27 14:31:42 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C412FF5A4AB;
 Tue, 27 Mar 2018 14:31:42 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 7661E6884B;
 Tue, 27 Mar 2018 14:31:42 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 715B01D4C3;
 Tue, 27 Mar 2018 14:31:42 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2REVglH065595;
 Tue, 27 Mar 2018 14:31:42 GMT (envelope-from avg@FreeBSD.org)
Received: (from avg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2REVgO7065593;
 Tue, 27 Mar 2018 14:31:42 GMT (envelope-from avg@FreeBSD.org)
Message-Id: <201803271431.w2REVgO7065593@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org
 using -f
From: Andriy Gapon 
Date: Tue, 27 Mar 2018 14:31:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331616 - in head: sbin/mount sys/kern
X-SVN-Group: head
X-SVN-Commit-Author: avg
X-SVN-Commit-Paths: in head: sbin/mount sys/kern
X-SVN-Commit-Revision: 331616
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 14:31:43 -0000

Author: avg
Date: Tue Mar 27 14:31:42 2018
New Revision: 331616
URL: https://svnweb.freebsd.org/changeset/base/331616

Log:
  vfs_donmount: in certain cases try r/o mount if r/w mount fails
  
  If the operation is not an update, if neither r/w nor r/o mode is
  explicitly requested, if the error code hints at the possibility of the
  media being read-only, and if the fallback is allowed, then we can try
  to automatically downgrade to the readonly mode.
  
  This is especially useful for auto-mounting of removable media that
  sometimes can happen to be write-protected.
  
  The fallback to r/o is not enabled by default.  It can be requested on a
  per-mount basis with a new mount option, 'autoro'.  Or it can be
  globally allowed by setting vfs.default_autoro.
  
  Reviewed by:	cem, kib
  MFC after:	3 weeks
  Relnotes:	yes
  Differential Revision: https://reviews.freebsd.org/D13361

Modified:
  head/sbin/mount/mount.8
  head/sys/kern/vfs_mount.c

Modified: head/sbin/mount/mount.8
==============================================================================
--- head/sbin/mount/mount.8	Tue Mar 27 13:59:57 2018	(r331615)
+++ head/sbin/mount/mount.8	Tue Mar 27 14:31:42 2018	(r331616)
@@ -155,6 +155,10 @@ This flag indicates that the file system was mounted b
 .Xr automountd 8 .
 Automounted file systems are automatically unmounted by
 .Xr autounmountd 8 .
+.It Cm autoro
+Mount the file system read-write.
+If that fails with an error that suggests that the media could be read-only,
+then automatically try to mount the file system read-only.
 .It Cm current
 When used with the
 .Fl u

Modified: head/sys/kern/vfs_mount.c
==============================================================================
--- head/sys/kern/vfs_mount.c	Tue Mar 27 13:59:57 2018	(r331615)
+++ head/sys/kern/vfs_mount.c	Tue Mar 27 14:31:42 2018	(r331616)
@@ -81,6 +81,10 @@ static int	usermount = 0;
 SYSCTL_INT(_vfs, OID_AUTO, usermount, CTLFLAG_RW, &usermount, 0,
     "Unprivileged users may mount and unmount file systems");
 
+static bool	default_autoro = false;
+SYSCTL_BOOL(_vfs, OID_AUTO, default_autoro, CTLFLAG_RW, &default_autoro, 0,
+    "Retry failed r/w mount as r/o if no explicit ro/rw option is specified");
+
 MALLOC_DEFINE(M_MOUNT, "mount", "vfs mount structure");
 MALLOC_DEFINE(M_STATFS, "statfs", "statfs structure");
 static uma_zone_t mount_zone;
@@ -546,6 +550,31 @@ vfs_mount_destroy(struct mount *mp)
 	uma_zfree(mount_zone, mp);
 }
 
+static bool
+vfs_should_downgrade_to_ro_mount(uint64_t fsflags, int error)
+{
+	/* This is an upgrade of an exisiting mount. */
+	if ((fsflags & MNT_UPDATE) != 0)
+		return (false);
+	/* This is already an R/O mount. */
+	if ((fsflags & MNT_RDONLY) != 0)
+		return (false);
+
+	switch (error) {
+	case ENODEV:	/* generic, geom, ... */
+	case EACCES:	/* cam/scsi, ... */
+	case EROFS:	/* md, mmcsd, ... */
+		/*
+		 * These errors can be returned by the storage layer to signal
+		 * that the media is read-only.  No harm in the R/O mount
+		 * attempt if the error was returned for some other reason.
+		 */
+		return (true);
+	default:
+		return (false);
+	}
+}
+
 int
 vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions)
 {
@@ -553,10 +582,12 @@ vfs_donmount(struct thread *td, uint64_t fsflags, stru
 	struct vfsopt *opt, *tmp_opt;
 	char *fstype, *fspath, *errmsg;
 	int error, fstypelen, fspathlen, errmsg_len, errmsg_pos;
+	bool autoro;
 
 	errmsg = fspath = NULL;
 	errmsg_len = fspathlen = 0;
 	errmsg_pos = -1;
+	autoro = default_autoro;
 
 	error = vfs_buildopts(fsoptions, &optlist);
 	if (error)
@@ -648,17 +679,28 @@ vfs_donmount(struct thread *td, uint64_t fsflags, stru
 			free(opt->name, M_MOUNT);
 			opt->name = strdup("nonosymfollow", M_MOUNT);
 		}
-		else if (strcmp(opt->name, "noro") == 0)
+		else if (strcmp(opt->name, "noro") == 0) {
 			fsflags &= ~MNT_RDONLY;
-		else if (strcmp(opt->name, "rw") == 0)
+			autoro = false;
+		}
+		else if (strcmp(opt->name, "rw") == 0) {
 			fsflags &= ~MNT_RDONLY;
-		else if (strcmp(opt->name, "ro") == 0)
+			autoro = false;
+		}
+		else if (strcmp(opt->name, "ro") == 0) {
 			fsflags |= MNT_RDONLY;
+			autoro = false;
+		}
 		else if (strcmp(opt->name, "rdonly") == 0) {
 			free(opt->name, M_MOUNT);
 			opt->name = strdup("ro", M_MOUNT);
 			fsflags |= MNT_RDONLY;
+			autoro = false;
 		}
+		else if (strcmp(opt->name, "autoro") == 0) {
+			vfs_freeopt(optlist, opt);
+			autoro = true;
+		}
 		else if (strcmp(opt->name, "suiddir") == 0)
 			fsflags |= MNT_SUIDDIR;
 		else if (strcmp(opt->name, "sync") == 0)
@@ -682,6 +724,19 @@ vfs_donmount(struct thread *td, uint64_t fsflags, stru
 	}
 
 	error = vfs_domount(td, fstype, fspath, fsflags, &optlist);
+
+	/*
+	 * See if we can mount in the read-only mode if the error code suggests
+	 * that it could be possible and the mount options allow for that.
+	 * Never try it if "[no]{ro|rw}" has been explicitly requested and not
+	 * overridden by "autoro".
+	 */
+	if (autoro && vfs_should_downgrade_to_ro_mount(fsflags, error)) {
+		printf("%s: R/W mount failed, possibly R/O media,"
+		    " trying R/O mount\n", __func__);
+		fsflags |= MNT_RDONLY;
+		error = vfs_domount(td, fstype, fspath, fsflags, &optlist);
+	}
 bail:
 	/* copyout the errmsg */
 	if (errmsg_pos != -1 && ((2 * errmsg_pos + 1) < fsoptions->uio_iovcnt)

From owner-svn-src-all@freebsd.org  Tue Mar 27 14:50:13 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 53DEEF5C3BC;
 Tue, 27 Mar 2018 14:50:13 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id F188769972;
 Tue, 27 Mar 2018 14:50:12 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E815D1D7C0;
 Tue, 27 Mar 2018 14:50:12 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2REoC2L074199;
 Tue, 27 Mar 2018 14:50:12 GMT (envelope-from trasz@FreeBSD.org)
Received: (from trasz@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2REoCAN074198;
 Tue, 27 Mar 2018 14:50:12 GMT (envelope-from trasz@FreeBSD.org)
Message-Id: <201803271450.w2REoCAN074198@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: trasz set sender to
 trasz@FreeBSD.org using -f
From: Edward Tomasz Napierala 
Date: Tue, 27 Mar 2018 14:50:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331617 - head/share/man/man7
X-SVN-Group: head
X-SVN-Commit-Author: trasz
X-SVN-Commit-Paths: head/share/man/man7
X-SVN-Commit-Revision: 331617
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 14:50:13 -0000

Author: trasz
Date: Tue Mar 27 14:50:12 2018
New Revision: 331617
URL: https://svnweb.freebsd.org/changeset/base/331617

Log:
  Fix capitalization.
  
  MFC after:	2 weeks

Modified:
  head/share/man/man7/development.7

Modified: head/share/man/man7/development.7
==============================================================================
--- head/share/man/man7/development.7	Tue Mar 27 14:31:42 2018	(r331616)
+++ head/share/man/man7/development.7	Tue Mar 27 14:50:12 2018	(r331617)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 13, 2018
+.Dd March 27, 2018
 .Dt DEVELOPMENT 7
 .Os
 .Sh NAME
@@ -83,7 +83,7 @@ such as freebsd-arch@ and freebsd-hackers@:
 .Pp
 .Lk https://lists.FreeBSD.org/
 .Pp
-To get your patches integrated into the main freebsd repository use Phabricator;
+To get your patches integrated into the main FreeBSD repository use Phabricator;
 it is a code review tool that allows other developers to review the changes,
 suggest improvements, and, eventually, allows them to pick up the change and
 commit it:

From owner-svn-src-all@freebsd.org  Tue Mar 27 14:51:20 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 417C0F5C5DD;
 Tue, 27 Mar 2018 14:51:20 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 189DF69DB4;
 Tue, 27 Mar 2018 14:51:20 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1381E1D805;
 Tue, 27 Mar 2018 14:51:20 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2REpJhL078198;
 Tue, 27 Mar 2018 14:51:19 GMT (envelope-from trasz@FreeBSD.org)
Received: (from trasz@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2REpJP9078197;
 Tue, 27 Mar 2018 14:51:19 GMT (envelope-from trasz@FreeBSD.org)
Message-Id: <201803271451.w2REpJP9078197@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: trasz set sender to
 trasz@FreeBSD.org using -f
From: Edward Tomasz Napierala 
Date: Tue, 27 Mar 2018 14:51:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331618 - head/share/man/man7
X-SVN-Group: head
X-SVN-Commit-Author: trasz
X-SVN-Commit-Paths: head/share/man/man7
X-SVN-Commit-Revision: 331618
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 14:51:20 -0000

Author: trasz
Date: Tue Mar 27 14:51:19 2018
New Revision: 331618
URL: https://svnweb.freebsd.org/changeset/base/331618

Log:
  Use https:// instead of http://.
  
  MFC after:	2 weeks

Modified:
  head/share/man/man7/development.7

Modified: head/share/man/man7/development.7
==============================================================================
--- head/share/man/man7/development.7	Tue Mar 27 14:50:12 2018	(r331617)
+++ head/share/man/man7/development.7	Tue Mar 27 14:51:19 2018	(r331618)
@@ -57,7 +57,7 @@ can be found at:
 FreeBSD src development takes place in the CURRENT branch in Subversion,
 located at:
 .Pp
-.Lk http://svn.FreeBSD.org/base/head
+.Lk https://svn.FreeBSD.org/base/head
 .Pp
 There is also a read-only GitHub mirror at:
 .Pp

From owner-svn-src-all@freebsd.org  Tue Mar 27 14:54:03 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A6FB5F5CC2F;
 Tue, 27 Mar 2018 14:54:03 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4B6C16A25B;
 Tue, 27 Mar 2018 14:54:03 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 45DB91D950;
 Tue, 27 Mar 2018 14:54:03 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2REs3J8079347;
 Tue, 27 Mar 2018 14:54:03 GMT (envelope-from trasz@FreeBSD.org)
Received: (from trasz@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2REs3sw079346;
 Tue, 27 Mar 2018 14:54:03 GMT (envelope-from trasz@FreeBSD.org)
Message-Id: <201803271454.w2REs3sw079346@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: trasz set sender to
 trasz@FreeBSD.org using -f
From: Edward Tomasz Napierala 
Date: Tue, 27 Mar 2018 14:54:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331619 - head/share/man/man7
X-SVN-Group: head
X-SVN-Commit-Author: trasz
X-SVN-Commit-Paths: head/share/man/man7
X-SVN-Commit-Revision: 331619
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 14:54:03 -0000

Author: trasz
Date: Tue Mar 27 14:54:02 2018
New Revision: 331619
URL: https://svnweb.freebsd.org/changeset/base/331619

Log:
  Add trailing slash for consistency.
  
  For some reason, the other link - https://lists.FreeBSD.org/ - needs
  the trailing slash, otherwise man(8) renders it in a weird way.  No
  idea why's that.  At least try to be consistent.  Revert it when the
  other link gets fixed.
  
  MFC after:	2 weeks

Modified:
  head/share/man/man7/development.7

Modified: head/share/man/man7/development.7
==============================================================================
--- head/share/man/man7/development.7	Tue Mar 27 14:51:19 2018	(r331618)
+++ head/share/man/man7/development.7	Tue Mar 27 14:54:02 2018	(r331619)
@@ -88,7 +88,7 @@ it is a code review tool that allows other developers 
 suggest improvements, and, eventually, allows them to pick up the change and
 commit it:
 .Pp
-.Lk https://reviews.FreeBSD.org
+.Lk https://reviews.FreeBSD.org/
 .Pp
 .Sh EXAMPLES
 Check out the CURRENT branch, build it, and install, overwriting the current

From owner-svn-src-all@freebsd.org  Tue Mar 27 14:55:02 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0536CF5CDA0;
 Tue, 27 Mar 2018 14:55:02 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id AC6EF6A3C8;
 Tue, 27 Mar 2018 14:55:01 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A73F31D951;
 Tue, 27 Mar 2018 14:55:01 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2REt1mn079480;
 Tue, 27 Mar 2018 14:55:01 GMT (envelope-from cem@FreeBSD.org)
Received: (from cem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2REt1Cs079478;
 Tue, 27 Mar 2018 14:55:01 GMT (envelope-from cem@FreeBSD.org)
Message-Id: <201803271455.w2REt1Cs079478@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org
 using -f
From: Conrad Meyer 
Date: Tue, 27 Mar 2018 14:55:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331620 - in head/sys: contrib/libb2 crypto/blake2
X-SVN-Group: head
X-SVN-Commit-Author: cem
X-SVN-Commit-Paths: in head/sys: contrib/libb2 crypto/blake2
X-SVN-Commit-Revision: 331620
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 14:55:02 -0000

Author: cem
Date: Tue Mar 27 14:55:01 2018
New Revision: 331620
URL: https://svnweb.freebsd.org/changeset/base/331620

Log:
  MFV: libb2: use native calls for secure memory clearance
  
  Drop our local patch and restore full vanilla upstream code in
  contrib/libb2.
  
  No functional change intended.  explicit_bzero() should continue to be used.
  
  Obtained from:	libb2 b4b241a34824b51956a7866606329a065d397525
  Sponsored by:	Dell EMC Isilon

Modified:
  head/sys/contrib/libb2/blake2-impl.h
  head/sys/crypto/blake2/config.h

Modified: head/sys/contrib/libb2/blake2-impl.h
==============================================================================
--- head/sys/contrib/libb2/blake2-impl.h	Tue Mar 27 14:54:02 2018	(r331619)
+++ head/sys/contrib/libb2/blake2-impl.h	Tue Mar 27 14:55:01 2018	(r331620)
@@ -131,11 +131,20 @@ static inline uint64_t rotr64( const uint64_t w, const
 /* prevents compiler optimizing out memset() */
 static inline void secure_zero_memory(void *v, size_t n)
 {
-#ifdef __FreeBSD__
+#if defined(_WIN32) || defined(WIN32)
+  SecureZeroMemory(v, n);
+#else
+// prioritize first the general C11 call
+#if defined(HAVE_MEMSET_S)
+  memset_s(v, n, 0, n);
+#elif defined(HAVE_EXPLICIT_BZERO)
   explicit_bzero(v, n);
+#elif defined(HAVE_EXPLICIT_MEMSET)
+  explicit_memset(v, 0, n);
 #else
-  static void *(*const volatile memset_v)(void *, int, size_t) = &memset;
-  memset_v(v, 0, n);
+  memset(v, 0, n);
+  __asm__ __volatile__("" :: "r"(v) : "memory");
+#endif
 #endif
 }
 

Modified: head/sys/crypto/blake2/config.h
==============================================================================
--- head/sys/crypto/blake2/config.h	Tue Mar 27 14:54:02 2018	(r331619)
+++ head/sys/crypto/blake2/config.h	Tue Mar 27 14:55:01 2018	(r331620)
@@ -17,3 +17,5 @@
 #else
 #define HAVE_ALIGNED_ACCESS_REQUIRED 1
 #endif
+
+#define HAVE_EXPLICIT_BZERO 1

From owner-svn-src-all@freebsd.org  Tue Mar 27 14:57:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9454CF5D13F;
 Tue, 27 Mar 2018 14:57:08 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id C7A476A5D3;
 Tue, 27 Mar 2018 14:57:07 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2REv6j2052498;
 Tue, 27 Mar 2018 07:57:06 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2REv6tH052497;
 Tue, 27 Mar 2018 07:57:06 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803271457.w2REv6tH052497@pdx.rh.CN85.dnsmgr.net>
Subject: Re: svn commit: r331618 - head/share/man/man7
In-Reply-To: <201803271451.w2REpJP9078197@repo.freebsd.org>
To: Edward Tomasz Napierala 
Date: Tue, 27 Mar 2018 07:57:06 -0700 (PDT)
CC: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 14:57:08 -0000

> Author: trasz
> Date: Tue Mar 27 14:51:19 2018
> New Revision: 331618
> URL: https://svnweb.freebsd.org/changeset/base/331618
> 
> Log:
>   Use https:// instead of http://.
>   
>   MFC after:	2 weeks
> 
> Modified:
>   head/share/man/man7/development.7
> 
> Modified: head/share/man/man7/development.7
> ==============================================================================
> --- head/share/man/man7/development.7	Tue Mar 27 14:50:12 2018	(r331617)
> +++ head/share/man/man7/development.7	Tue Mar 27 14:51:19 2018	(r331618)
> @@ -57,7 +57,7 @@ can be found at:
>  FreeBSD src development takes place in the CURRENT branch in Subversion,
>  located at:
>  .Pp
> -.Lk http://svn.FreeBSD.org/base/head
> +.Lk https://svn.FreeBSD.org/base/head
>  .Pp
>  There is also a read-only GitHub mirror at:
>  .Pp

Why do we want to run the load of TLS for what are public bits?
And fyi a default install of FreeBSD can not use https, you have
to install certs from ports before any of these https links
can even work, and that can be a royal pita in some situations.

I spent an hour one night in IRC helping a user get around this
specific issue, it was not fun!

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Tue Mar 27 15:01:34 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 795F2F5DA15;
 Tue, 27 Mar 2018 15:01:34 +0000 (UTC)
 (envelope-from bjkfbsd@gmail.com)
Received: from mail-oi0-x231.google.com (mail-oi0-x231.google.com
 [IPv6:2607:f8b0:4003:c06::231])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 177886AB3F;
 Tue, 27 Mar 2018 15:01:34 +0000 (UTC)
 (envelope-from bjkfbsd@gmail.com)
Received: by mail-oi0-x231.google.com with SMTP id z8-v6so1014506oix.2;
 Tue, 27 Mar 2018 08:01:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=B5LfCLzC5wPDrmrE9Z+nm9Z7P9CNE7wDRsGB2lgEUos=;
 b=V7vK01iKEyJrT6glo3bxSpYj76cFBrDNw6NssUMOjAeuvbxlBpQBIaXcYBmjlLnpyr
 E3EgF8IU1CAtSxqNMWwYDMdtP5N/mr+Cb4CtXCmQYgF3f+k+8Ch7Eg+mnZNFvWLxhqiK
 W3KSQLOLb48wd/2w3t7JZeSd+Sa4UASAMNHgdnLoyBlHTIwgZ6OEVwPlSC4jAkvmwbQq
 tFWeXcRaQo97PXjx9GM8GsouoshyaF0gZrP8bkTpCG5U3EOIRLdm2GaBOLK9nnskkN9+
 Lz7Dn+cRhKfficACv0Ape/ovYpfc74rMDn9JMnlubebC6Y+CB8IoGqwt1SVLHyhWGGzn
 qf6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=B5LfCLzC5wPDrmrE9Z+nm9Z7P9CNE7wDRsGB2lgEUos=;
 b=OfOWiDesUW9MU2/ncv06NYngn/Lw17aD+piDKAsMVHBg4nHYk8wWVpzxzrYzjA+Mql
 V8GPUvjUuwTpOkTG5GYEfNSW4KzJKWQ04/0MbiXLoqrmeynPKJXKxg9Xr+PH2PcgRHZB
 iL2GTats8EYMzpDPIe6F2rbNCRrr7ICvgizpzzqP2lw9xux8F1ezANv5cjJtvr8g41ZO
 A6NyuMYJgCotfR+IrxTcPlT0gB5MCLOoNPq8y0ic/F76Rf5StS9HgApC8dliR46hB0jP
 H1aQrm6Nbf5ToVAn0xXtZkAaK8Il+M5TcVy0dD6/101w8H/dCXZlQYi6GEoLR7jeLvKt
 tJlg==
X-Gm-Message-State: AElRT7GVllQLb0TtGn7XAU2gNTaQ9zvk42n+vTSrRa9JQl8gOOpnlig1
 Xw0j9CGeHZPuvDfpJOy+MK/FU6zH0ZFhT6VkbiU=
X-Google-Smtp-Source: AG47ELuKTvHm0ylqBy0MMLNZr7Y969nZgm0kqbQAyFfiG5mjXKDsP312fupHYD6avni/W6Pwaug6O3XV+SSdBMTZZWE=
X-Received: by 10.202.212.146 with SMTP id l140mr17310823oig.325.1522162892433; 
 Tue, 27 Mar 2018 08:01:32 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a9d:34b1:0:0:0:0:0 with HTTP; Tue, 27 Mar 2018 08:01:32
 -0700 (PDT)
In-Reply-To: <201803271457.w2REv6tH052497@pdx.rh.CN85.dnsmgr.net>
References: <201803271451.w2REpJP9078197@repo.freebsd.org>
 <201803271457.w2REv6tH052497@pdx.rh.CN85.dnsmgr.net>
From: Benjamin Kaduk 
Date: Tue, 27 Mar 2018 10:01:32 -0500
Message-ID: 
Subject: Re: svn commit: r331618 - head/share/man/man7
To: rgrimes@freebsd.org
Cc: Edward Tomasz Napierala , svn-src-head@freebsd.org,
 svn-src-all@freebsd.org, src-committers 
Content-Type: text/plain; charset="UTF-8"
X-Content-Filtered-By: Mailman/MimeDel 2.1.25
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 15:01:34 -0000

On Tue, Mar 27, 2018 at 9:57 AM, Rodney W. Grimes <
freebsd@pdx.rh.cn85.dnsmgr.net> wrote:

> > Author: trasz
> > Date: Tue Mar 27 14:51:19 2018
> > New Revision: 331618
> > URL: https://svnweb.freebsd.org/changeset/base/331618
> >
> > Log:
> >   Use https:// instead of http://.
> >
> >   MFC after:  2 weeks
> >
> > Modified:
> >   head/share/man/man7/development.7
> >
> > Modified: head/share/man/man7/development.7
> > ============================================================
> ==================
> > --- head/share/man/man7/development.7 Tue Mar 27 14:50:12 2018
> (r331617)
> > +++ head/share/man/man7/development.7 Tue Mar 27 14:51:19 2018
> (r331618)
> > @@ -57,7 +57,7 @@ can be found at:
> >  FreeBSD src development takes place in the CURRENT branch in Subversion,
> >  located at:
> >  .Pp
> > -.Lk http://svn.FreeBSD.org/base/head
> > +.Lk https://svn.FreeBSD.org/base/head
> >  .Pp
> >  There is also a read-only GitHub mirror at:
> >  .Pp
>
> Why do we want to run the load of TLS for what are public bits?
> And fyi a default install of FreeBSD can not use https, you have
> to install certs from ports before any of these https links
> can even work, and that can be a royal pita in some situations.
>

Many of us are used to thinking of the network as controlled by an attacker.
Running http-not-s to fetch the sources lets "the attacker" supply an
arbitrary
collection of bits under the name FreeBSD without a good way for the user to
check that the bits on their disk match what the FreeBSD Project expects
them to be.
TLS provides data integrity as well as confidentiality...

-Ben

From owner-svn-src-all@freebsd.org  Tue Mar 27 15:20:04 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B0035F5F679;
 Tue, 27 Mar 2018 15:20:04 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 631E86BB01;
 Tue, 27 Mar 2018 15:20:04 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5DD661DC9A;
 Tue, 27 Mar 2018 15:20:04 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RFK4Fb091237;
 Tue, 27 Mar 2018 15:20:04 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RFK3Rr091228;
 Tue, 27 Mar 2018 15:20:03 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271520.w2RFK3Rr091228@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 15:20:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331621 - in head/sys: compat/freebsd32 dev/md kern sys
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in head/sys: compat/freebsd32 dev/md kern sys
X-SVN-Commit-Revision: 331621
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 15:20:05 -0000

Author: brooks
Date: Tue Mar 27 15:20:03 2018
New Revision: 331621
URL: https://svnweb.freebsd.org/changeset/base/331621

Log:
  Move uio enums to sys/_uio.h.
  
  Include _uio.h instead of uio.h in several headers to reduce header
  polution.
  
  Fix a few places that relied on header polution to get the uio.h header.
  
  I have not moved struct uio as many more things that use it rely on
  header polution to get other definitions from uio.h.
  
  Reviewed by:	cem, kib, markj
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14811

Added:
  head/sys/sys/_uio.h   (contents, props changed)
Modified:
  head/sys/compat/freebsd32/freebsd32_ioctl.c
  head/sys/dev/md/md.c
  head/sys/kern/tty_pts.c
  head/sys/kern/uipc_syscalls.c
  head/sys/sys/imgact.h
  head/sys/sys/namei.h
  head/sys/sys/syscallsubr.h
  head/sys/sys/uio.h

Modified: head/sys/compat/freebsd32/freebsd32_ioctl.c
==============================================================================
--- head/sys/compat/freebsd32/freebsd32_ioctl.c	Tue Mar 27 14:55:01 2018	(r331620)
+++ head/sys/compat/freebsd32/freebsd32_ioctl.c	Tue Mar 27 15:20:03 2018	(r331621)
@@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 

Modified: head/sys/dev/md/md.c
==============================================================================
--- head/sys/dev/md/md.c	Tue Mar 27 14:55:01 2018	(r331620)
+++ head/sys/dev/md/md.c	Tue Mar 27 15:20:03 2018	(r331621)
@@ -89,6 +89,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 

Modified: head/sys/kern/tty_pts.c
==============================================================================
--- head/sys/kern/tty_pts.c	Tue Mar 27 14:55:01 2018	(r331620)
+++ head/sys/kern/tty_pts.c	Tue Mar 27 15:20:03 2018	(r331621)
@@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 
 #include 

Modified: head/sys/kern/uipc_syscalls.c
==============================================================================
--- head/sys/kern/uipc_syscalls.c	Tue Mar 27 14:55:01 2018	(r331620)
+++ head/sys/kern/uipc_syscalls.c	Tue Mar 27 15:20:03 2018	(r331621)
@@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #ifdef KTRACE
 #include 
 #endif

Added: head/sys/sys/_uio.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/sys/_uio.h	Tue Mar 27 15:20:03 2018	(r331621)
@@ -0,0 +1,52 @@
+/*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 1982, 1986, 1993, 1994
+ *	The Regents of the University of California.  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.
+ * 3. Neither the name of the University 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 REGENTS 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 REGENTS 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.
+ *
+ *	@(#)uio.h	8.5 (Berkeley) 2/22/94
+ * $FreeBSD$
+ */
+
+#ifndef _SYS__UIO_H_
+#define	_SYS__UIO_H_
+
+#if __BSD_VISIBLE
+enum uio_rw {
+	UIO_READ,
+	UIO_WRITE
+};
+
+/* Segment flag values. */
+enum uio_seg {
+	UIO_USERSPACE,		/* from user data space */
+	UIO_SYSSPACE,		/* from system space */
+	UIO_NOCOPY		/* don't copy, already in object */
+};
+#endif /* __BSD_VISIBLE */
+
+#endif /* !_SYS__UIO_H_ */

Modified: head/sys/sys/imgact.h
==============================================================================
--- head/sys/sys/imgact.h	Tue Mar 27 14:55:01 2018	(r331620)
+++ head/sys/sys/imgact.h	Tue Mar 27 15:20:03 2018	(r331621)
@@ -34,7 +34,7 @@
 #ifndef _SYS_IMGACT_H_
 #define	_SYS_IMGACT_H_
 
-#include 
+#include 
 
 #include 
 

Modified: head/sys/sys/namei.h
==============================================================================
--- head/sys/sys/namei.h	Tue Mar 27 14:55:01 2018	(r331620)
+++ head/sys/sys/namei.h	Tue Mar 27 15:20:03 2018	(r331621)
@@ -38,7 +38,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 
 struct componentname {
 	/*

Modified: head/sys/sys/syscallsubr.h
==============================================================================
--- head/sys/sys/syscallsubr.h	Tue Mar 27 14:55:01 2018	(r331620)
+++ head/sys/sys/syscallsubr.h	Tue Mar 27 15:20:03 2018	(r331621)
@@ -31,13 +31,14 @@
 #define _SYS_SYSCALLSUBR_H_
 
 #include 
-#include 
 #include 
 #include 
 #include 
 #include 
 #include 
+#include 
 
+struct __wrusage;
 struct file;
 struct filecaps;
 enum idtype;
@@ -55,12 +56,12 @@ struct pollfd;
 struct ogetdirentries_args;
 struct rlimit;
 struct rusage;
+struct sched_param;
 union semun;
 struct sockaddr;
 struct stat;
 struct thr_param;
-struct sched_param;
-struct __wrusage;
+struct uio;
 
 int	kern___getcwd(struct thread *td, char *buf, enum uio_seg bufseg,
 	    size_t buflen, size_t path_max);

Modified: head/sys/sys/uio.h
==============================================================================
--- head/sys/sys/uio.h	Tue Mar 27 14:55:01 2018	(r331620)
+++ head/sys/sys/uio.h	Tue Mar 27 15:20:03 2018	(r331621)
@@ -38,6 +38,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #ifndef _SSIZE_T_DECLARED
 typedef	__ssize_t	ssize_t;
@@ -47,17 +48,6 @@ typedef	__ssize_t	ssize_t;
 #ifndef _OFF_T_DECLARED
 typedef	__off_t	off_t;
 #define	_OFF_T_DECLARED
-#endif
-
-#if __BSD_VISIBLE
-enum	uio_rw { UIO_READ, UIO_WRITE };
-
-/* Segment flag values. */
-enum uio_seg {
-	UIO_USERSPACE,		/* from user data space */
-	UIO_SYSSPACE,		/* from system space */
-	UIO_NOCOPY		/* don't copy, already in object */
-};
 #endif
 
 #ifdef _KERNEL

From owner-svn-src-all@freebsd.org  Tue Mar 27 15:29:34 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D7002F60729;
 Tue, 27 Mar 2018 15:29:33 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 89CB36C3F3;
 Tue, 27 Mar 2018 15:29:33 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 679451DE35;
 Tue, 27 Mar 2018 15:29:33 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RFTX6Z096757;
 Tue, 27 Mar 2018 15:29:33 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RFTWx1096745;
 Tue, 27 Mar 2018 15:29:32 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803271529.w2RFTWx1096745@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Tue, 27 Mar 2018 15:29:32 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331622 - in head: sbin/ifconfig sys/net sys/sys
X-SVN-Group: head
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: in head: sbin/ifconfig sys/net sys/sys
X-SVN-Commit-Revision: 331622
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 15:29:34 -0000

Author: kib
Date: Tue Mar 27 15:29:32 2018
New Revision: 331622
URL: https://svnweb.freebsd.org/changeset/base/331622

Log:
  Allow to specify PCP on packets not belonging to any VLAN.
  
  According to 802.1Q-2014, VLAN tagged packets with VLAN id 0 should be
  considered as untagged, and only PCP and DEI values from the VLAN tag
  are meaningful.  See for instance
  https://www.cisco.com/c/en/us/td/docs/switches/connectedgrid/cg-switch-sw-master/software/configuration/guide/vlan0/b_vlan_0.html.
  
  Make it possible to specify PCP value for outgoing packets on an
  ethernet interface.  When PCP is supplied, the tag is appended, VLAN
  id set to 0, and PCP is filled by the supplied value.  The code to do
  VLAN tag encapsulation is refactored from the if_vlan.c and moved into
  if_ethersubr.c.
  
  Drivers might have issues with filtering VID 0 packets on
  receive.  This bug should be fixed for each driver.
  
  Reviewed by:	ae (previous version), hselasky, melifaro
  Sponsored by:	Mellanox Technologies
  MFC after:	2 weeks
  Differential revision:	https://reviews.freebsd.org/D14702

Modified:
  head/sbin/ifconfig/af_link.c
  head/sbin/ifconfig/ifconfig.c
  head/sys/net/ethernet.h
  head/sys/net/if.c
  head/sys/net/if.h
  head/sys/net/if_ethersubr.c
  head/sys/net/if_var.h
  head/sys/net/if_vlan.c
  head/sys/net/if_vlan_var.h
  head/sys/sys/priv.h
  head/sys/sys/sockio.h

Modified: head/sbin/ifconfig/af_link.c
==============================================================================
--- head/sbin/ifconfig/af_link.c	Tue Mar 27 15:20:03 2018	(r331621)
+++ head/sbin/ifconfig/af_link.c	Tue Mar 27 15:29:32 2018	(r331622)
@@ -60,78 +60,78 @@ static void
 link_status(int s __unused, const struct ifaddrs *ifa)
 {
 	/* XXX no const 'cuz LLADDR is defined wrong */
-	struct sockaddr_dl *sdl = (struct sockaddr_dl *) ifa->ifa_addr;
+	struct sockaddr_dl *sdl;
 	char *ether_format, *format_char;
+	struct ifreq ifr;
+	int n, rc, sock_hw;
+	static const u_char laggaddr[6] = {0};
 
-	if (sdl != NULL && sdl->sdl_alen > 0) {
-		if ((sdl->sdl_type == IFT_ETHER ||
-		    sdl->sdl_type == IFT_L2VLAN ||
-		    sdl->sdl_type == IFT_BRIDGE) &&
-		    sdl->sdl_alen == ETHER_ADDR_LEN) {
-			ether_format = ether_ntoa((struct ether_addr *)LLADDR(sdl));
-			if (f_ether != NULL && strcmp(f_ether, "dash") == 0) {
-				for (format_char = strchr(ether_format, ':');
-				    format_char != NULL; 
-				    format_char = strchr(ether_format, ':'))
-					*format_char = '-';
-			}
-			printf("\tether %s\n", ether_format);
-		} else {
-			int n = sdl->sdl_nlen > 0 ? sdl->sdl_nlen + 1 : 0;
+	sdl = (struct sockaddr_dl *) ifa->ifa_addr;
+	if (sdl == NULL || sdl->sdl_alen == 0)
+		return;
 
-			printf("\tlladdr %s\n", link_ntoa(sdl) + n);
+	if ((sdl->sdl_type == IFT_ETHER || sdl->sdl_type == IFT_L2VLAN ||
+	    sdl->sdl_type == IFT_BRIDGE) && sdl->sdl_alen == ETHER_ADDR_LEN) {
+		ether_format = ether_ntoa((struct ether_addr *)LLADDR(sdl));
+		if (f_ether != NULL && strcmp(f_ether, "dash") == 0) {
+			for (format_char = strchr(ether_format, ':');
+			    format_char != NULL;
+			    format_char = strchr(ether_format, ':'))
+				*format_char = '-';
 		}
-		/* Best-effort (i.e. failures are silent) to get original
-		 * hardware address, as read by NIC driver at attach time. Only
-		 * applies to Ethernet NICs (IFT_ETHER). However, laggX
-		 * interfaces claim to be IFT_ETHER, and re-type their component
-		 * Ethernet NICs as IFT_IEEE8023ADLAG. So, check for both. If
-		 * the MAC is zeroed, then it's actually a lagg.
-		 */
-		if ((sdl->sdl_type == IFT_ETHER ||
-		    sdl->sdl_type == IFT_IEEE8023ADLAG) &&
-		    sdl->sdl_alen == ETHER_ADDR_LEN) {
-			struct ifreq ifr;
-			int sock_hw;
-			int rc;
-			static const u_char laggaddr[6] = {0};
+		printf("\tether %s\n", ether_format);
+	} else {
+		n = sdl->sdl_nlen > 0 ? sdl->sdl_nlen + 1 : 0;
+		printf("\tlladdr %s\n", link_ntoa(sdl) + n);
+	}
 
-			strncpy(ifr.ifr_name, ifa->ifa_name,
-			    sizeof(ifr.ifr_name));
-			memcpy(&ifr.ifr_addr, ifa->ifa_addr,
-			    sizeof(ifa->ifa_addr->sa_len));
-			ifr.ifr_addr.sa_family = AF_LOCAL;
-			if ((sock_hw = socket(AF_LOCAL, SOCK_DGRAM, 0)) < 0) {
-				warn("socket(AF_LOCAL,SOCK_DGRAM)");
-				return;
-			}
-			rc = ioctl(sock_hw, SIOCGHWADDR, &ifr);
-			close(sock_hw);
-			if (rc != 0) {
-				return;
-			}
+	/*
+	 * Best-effort (i.e. failures are silent) to get original
+	 * hardware address, as read by NIC driver at attach time. Only
+	 * applies to Ethernet NICs (IFT_ETHER). However, laggX
+	 * interfaces claim to be IFT_ETHER, and re-type their component
+	 * Ethernet NICs as IFT_IEEE8023ADLAG. So, check for both. If
+	 * the MAC is zeroed, then it's actually a lagg.
+	 */
+	if ((sdl->sdl_type != IFT_ETHER &&
+	    sdl->sdl_type != IFT_IEEE8023ADLAG) ||
+	    sdl->sdl_alen != ETHER_ADDR_LEN)
+		return;
 
-			/*
-			 * If this is definitely a lagg device or the hwaddr
-			 * matches the link addr, don't bother.
-			 */
-			if (memcmp(ifr.ifr_addr.sa_data, laggaddr,
-			    sdl->sdl_alen) == 0 ||
-			    memcmp(ifr.ifr_addr.sa_data, LLADDR(sdl),
-			    sdl->sdl_alen) == 0) {
-				return;
-			}
-			ether_format = ether_ntoa((const struct ether_addr *)
-			    &ifr.ifr_addr.sa_data);
-			if (f_ether != NULL && strcmp(f_ether, "dash") == 0) {
-				for (format_char = strchr(ether_format, ':');
-				    format_char != NULL; 
-				    format_char = strchr(ether_format, ':'))
-					*format_char = '-';
-			}
-			printf("\thwaddr %s\n", ether_format);
-		}
+	strncpy(ifr.ifr_name, ifa->ifa_name, sizeof(ifr.ifr_name));
+	memcpy(&ifr.ifr_addr, ifa->ifa_addr, sizeof(ifa->ifa_addr->sa_len));
+	ifr.ifr_addr.sa_family = AF_LOCAL;
+	if ((sock_hw = socket(AF_LOCAL, SOCK_DGRAM, 0)) < 0) {
+		warn("socket(AF_LOCAL,SOCK_DGRAM)");
+		return;
 	}
+	rc = ioctl(sock_hw, SIOCGHWADDR, &ifr);
+	close(sock_hw);
+	if (rc != 0)
+		return;
+
+	/*
+	 * If this is definitely a lagg device or the hwaddr
+	 * matches the link addr, don't bother.
+	 */
+	if (memcmp(ifr.ifr_addr.sa_data, laggaddr, sdl->sdl_alen) == 0 ||
+	    memcmp(ifr.ifr_addr.sa_data, LLADDR(sdl), sdl->sdl_alen) == 0)
+		goto pcp;
+
+	ether_format = ether_ntoa((const struct ether_addr *)
+	    &ifr.ifr_addr.sa_data);
+	if (f_ether != NULL && strcmp(f_ether, "dash") == 0) {
+		for (format_char = strchr(ether_format, ':');
+		     format_char != NULL;
+		     format_char = strchr(ether_format, ':'))
+			*format_char = '-';
+	}
+	printf("\thwaddr %s\n", ether_format);
+
+pcp:
+	if (ioctl(s, SIOCGLANPCP, (caddr_t)&ifr) == 0 &&
+	    ifr.ifr_lan_pcp != IFNET_PCP_NONE)
+		printf("\tpcp %d\n", ifr.ifr_lan_pcp);
 }
 
 static void

Modified: head/sbin/ifconfig/ifconfig.c
==============================================================================
--- head/sbin/ifconfig/ifconfig.c	Tue Mar 27 15:20:03 2018	(r331621)
+++ head/sbin/ifconfig/ifconfig.c	Tue Mar 27 15:29:32 2018	(r331622)
@@ -1080,6 +1080,32 @@ setifmtu(const char *val, int dummy __unused, int s, 
 }
 
 static void
+setifpcp(const char *val, int arg __unused, int s, const struct afswtch *afp)
+{
+	u_long ul;
+	char *endp;
+
+	ul = strtoul(val, &endp, 0);
+	if (*endp != '\0')
+		errx(1, "invalid value for pcp");
+	if (ul > 7)
+		errx(1, "value for pcp out of range");
+	ifr.ifr_lan_pcp = ul;
+	if (ioctl(s, SIOCSLANPCP, (caddr_t)&ifr) == -1)
+		err(1, "SIOCSLANPCP");
+}
+
+static void
+disableifpcp(const char *val, int arg __unused, int s,
+    const struct afswtch *afp)
+{
+
+	ifr.ifr_lan_pcp = IFNET_PCP_NONE;
+	if (ioctl(s, SIOCSLANPCP, (caddr_t)&ifr) == -1)
+		err(1, "SIOCSLANPCP");
+}
+
+static void
 setifname(const char *val, int dummy __unused, int s, 
     const struct afswtch *afp)
 {
@@ -1436,6 +1462,8 @@ static struct cmd basic_cmds[] = {
 	DEF_CMD("-txcsum",	-IFCAP_TXCSUM,	setifcap),
 	DEF_CMD("netcons",	IFCAP_NETCONS,	setifcap),
 	DEF_CMD("-netcons",	-IFCAP_NETCONS,	setifcap),
+	DEF_CMD_ARG("pcp",			setifpcp),
+	DEF_CMD("-pcp", 0,			disableifpcp),
 	DEF_CMD("polling",	IFCAP_POLLING,	setifcap),
 	DEF_CMD("-polling",	-IFCAP_POLLING,	setifcap),
 	DEF_CMD("tso6",		IFCAP_TSO6,	setifcap),

Modified: head/sys/net/ethernet.h
==============================================================================
--- head/sys/net/ethernet.h	Tue Mar 27 15:20:03 2018	(r331621)
+++ head/sys/net/ethernet.h	Tue Mar 27 15:29:32 2018	(r331622)
@@ -385,6 +385,20 @@ struct ether_vlan_header {
 	}								\
 } while (0)
 
+/*
+ * Names for 802.1q priorities ("802.1p").  Notice that in this scheme,
+ * (0 < 1), allowing default 0-tagged traffic to take priority over background
+ * tagged traffic.
+ */
+#define	IEEE8021Q_PCP_BK	1	/* Background (lowest) */
+#define	IEEE8021Q_PCP_BE	0	/* Best effort (default) */
+#define	IEEE8021Q_PCP_EE	2	/* Excellent effort */
+#define	IEEE8021Q_PCP_CA	3	/* Critical applications */
+#define	IEEE8021Q_PCP_VI	4	/* Video, < 100ms latency */
+#define	IEEE8021Q_PCP_VO	5	/* Video, < 10ms latency */
+#define	IEEE8021Q_PCP_IC	6	/* Internetwork control */
+#define	IEEE8021Q_PCP_NC	7	/* Network control (highest) */
+
 #ifdef _KERNEL
 
 struct ifnet;
@@ -406,6 +420,8 @@ extern	char *ether_sprintf(const u_int8_t *);
 void	ether_vlan_mtap(struct bpf_if *, struct mbuf *,
 	    void *, u_int);
 struct mbuf  *ether_vlanencap(struct mbuf *, uint16_t);
+bool	ether_8021q_frame(struct mbuf **mp, struct ifnet *ife, struct ifnet *p,
+	    uint16_t vid, uint8_t pcp);
 
 #ifdef _SYS_EVENTHANDLER_H_
 /* new ethernet interface attached event */

Modified: head/sys/net/if.c
==============================================================================
--- head/sys/net/if.c	Tue Mar 27 15:20:03 2018	(r331621)
+++ head/sys/net/if.c	Tue Mar 27 15:29:32 2018	(r331622)
@@ -485,6 +485,7 @@ if_alloc(u_char type)
 	for (int i = 0; i < IFCOUNTERS; i++)
 		ifp->if_counters[i] = counter_u64_alloc(M_WAITOK);
 	ifp->if_get_counter = if_get_counter_default;
+	ifp->if_pcp = IFNET_PCP_NONE;
 	ifnet_setbyindex(ifp->if_index, ifp);
 	return (ifp);
 }

Modified: head/sys/net/if.h
==============================================================================
--- head/sys/net/if.h	Tue Mar 27 15:20:03 2018	(r331621)
+++ head/sys/net/if.h	Tue Mar 27 15:29:32 2018	(r331622)
@@ -416,6 +416,7 @@ struct	ifreq {
 #define	ifr_index	ifr_ifru.ifru_index	/* interface index */
 #define	ifr_fib		ifr_ifru.ifru_fib	/* interface fib */
 #define	ifr_vlan_pcp	ifr_ifru.ifru_vlan_pcp	/* VLAN priority */
+#define	ifr_lan_pcp	ifr_ifru.ifru_vlan_pcp	/* VLAN priority */
 };
 
 #define	_SIZEOF_ADDR_IFREQ(ifr) \
@@ -564,6 +565,8 @@ struct ifrsshash {
 	uint16_t	ifrh_spare1;
 	uint32_t	ifrh_types;		/* RSS_TYPE_ */
 };
+
+#define	IFNET_PCP_NONE	0xff	/* PCP disabled */
 
 #endif /* __BSD_VISIBLE */
 

Modified: head/sys/net/if_ethersubr.c
==============================================================================
--- head/sys/net/if_ethersubr.c	Tue Mar 27 15:20:03 2018	(r331621)
+++ head/sys/net/if_ethersubr.c	Tue Mar 27 15:29:32 2018	(r331622)
@@ -47,6 +47,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -437,6 +438,19 @@ bad:			if (m != NULL)
 	return ether_output_frame(ifp, m);
 }
 
+static bool
+ether_set_pcp(struct mbuf **mp, struct ifnet *ifp, uint8_t pcp)
+{
+	struct ether_header *eh;
+
+	eh = mtod(*mp, struct ether_header *);
+	if (ntohs(eh->ether_type) == ETHERTYPE_VLAN ||
+	    ether_8021q_frame(mp, ifp, ifp, 0, pcp))
+		return (true);
+	if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
+	return (false);
+}
+
 /*
  * Ethernet link layer output routine to send a raw frame to the device.
  *
@@ -446,13 +460,17 @@ bad:			if (m != NULL)
 int
 ether_output_frame(struct ifnet *ifp, struct mbuf *m)
 {
-	int i;
+	int error;
+	uint8_t pcp;
 
-	if (PFIL_HOOKED(&V_link_pfil_hook)) {
-		i = pfil_run_hooks(&V_link_pfil_hook, &m, ifp, PFIL_OUT, 0,
-		    NULL);
+	pcp = ifp->if_pcp;
+	if (pcp != IFNET_PCP_NONE && !ether_set_pcp(&m, ifp, pcp))
+		return (0);
 
-		if (i != 0)
+	if (PFIL_HOOKED(&V_link_pfil_hook)) {
+		error = pfil_run_hooks(&V_link_pfil_hook, &m, ifp,
+		    PFIL_OUT, 0, NULL);
+		if (error != 0)
 			return (EACCES);
 
 		if (m == NULL)
@@ -1109,6 +1127,22 @@ ether_ioctl(struct ifnet *ifp, u_long command, caddr_t
 			ifp->if_mtu = ifr->ifr_mtu;
 		}
 		break;
+
+	case SIOCSLANPCP:
+		error = priv_check(curthread, PRIV_NET_SETLANPCP);
+		if (error != 0)
+			break;
+		if (ifr->ifr_lan_pcp > 7 &&
+		    ifr->ifr_lan_pcp != IFNET_PCP_NONE)
+			error = EINVAL;
+		else
+			ifp->if_pcp = ifr->ifr_lan_pcp;
+		break;
+
+	case SIOCGLANPCP:
+		ifr->ifr_lan_pcp = ifp->if_pcp;
+		break;
+
 	default:
 		error = EINVAL;			/* XXX netbsd has ENOTTY??? */
 		break;
@@ -1255,6 +1289,87 @@ ether_vlanencap(struct mbuf *m, uint16_t tag)
 	evl->evl_encap_proto = htons(ETHERTYPE_VLAN);
 	evl->evl_tag = htons(tag);
 	return (m);
+}
+
+static SYSCTL_NODE(_net_link, IFT_L2VLAN, vlan, CTLFLAG_RW, 0,
+    "IEEE 802.1Q VLAN");
+static SYSCTL_NODE(_net_link_vlan, PF_LINK, link, CTLFLAG_RW, 0,
+    "for consistency");
+
+static VNET_DEFINE(int, soft_pad);
+#define	V_soft_pad	VNET(soft_pad)
+SYSCTL_INT(_net_link_vlan, OID_AUTO, soft_pad, CTLFLAG_RW | CTLFLAG_VNET,
+    &VNET_NAME(soft_pad), 0,
+    "pad short frames before tagging");
+
+/*
+ * For now, make preserving PCP via an mbuf tag optional, as it increases
+ * per-packet memory allocations and frees.  In the future, it would be
+ * preferable to reuse ether_vtag for this, or similar.
+ */
+int vlan_mtag_pcp = 0;
+SYSCTL_INT(_net_link_vlan, OID_AUTO, mtag_pcp, CTLFLAG_RW,
+    &vlan_mtag_pcp, 0,
+    "Retain VLAN PCP information as packets are passed up the stack");
+
+bool
+ether_8021q_frame(struct mbuf **mp, struct ifnet *ife, struct ifnet *p,
+    uint16_t vid, uint8_t pcp)
+{
+	struct m_tag *mtag;
+	int n;
+	uint16_t tag;
+	static const char pad[8];	/* just zeros */
+
+	/*
+	 * Pad the frame to the minimum size allowed if told to.
+	 * This option is in accord with IEEE Std 802.1Q, 2003 Ed.,
+	 * paragraph C.4.4.3.b.  It can help to work around buggy
+	 * bridges that violate paragraph C.4.4.3.a from the same
+	 * document, i.e., fail to pad short frames after untagging.
+	 * E.g., a tagged frame 66 bytes long (incl. FCS) is OK, but
+	 * untagging it will produce a 62-byte frame, which is a runt
+	 * and requires padding.  There are VLAN-enabled network
+	 * devices that just discard such runts instead or mishandle
+	 * them somehow.
+	 */
+	if (V_soft_pad && p->if_type == IFT_ETHER) {
+		for (n = ETHERMIN + ETHER_HDR_LEN - (*mp)->m_pkthdr.len;
+		     n > 0; n -= sizeof(pad)) {
+			if (!m_append(*mp, min(n, sizeof(pad)), pad))
+				break;
+		}
+		if (n > 0) {
+			m_freem(*mp);
+			*mp = NULL;
+			if_printf(ife, "cannot pad short frame");
+			return (false);
+		}
+	}
+
+	/*
+	 * If underlying interface can do VLAN tag insertion itself,
+	 * just pass the packet along. However, we need some way to
+	 * tell the interface where the packet came from so that it
+	 * knows how to find the VLAN tag to use, so we attach a
+	 * packet tag that holds it.
+	 */
+	if (vlan_mtag_pcp && (mtag = m_tag_locate(*mp, MTAG_8021Q,
+	    MTAG_8021Q_PCP_OUT, NULL)) != NULL)
+		tag = EVL_MAKETAG(vid, *(uint8_t *)(mtag + 1), 0);
+	else
+		tag = EVL_MAKETAG(vid, pcp, 0);
+	if (p->if_capenable & IFCAP_VLAN_HWTAGGING) {
+		(*mp)->m_pkthdr.ether_vtag = tag;
+		(*mp)->m_flags |= M_VLANTAG;
+	} else {
+		*mp = ether_vlanencap(*mp, tag);
+		if (*mp == NULL) {
+			if_printf(ife, "unable to prepend 802.1Q header");
+			return (false);
+		}
+	}
+	return (true);
 }
 
 DECLARE_MODULE(ether, ether_mod, SI_SUB_INIT_IF, SI_ORDER_ANY);

Modified: head/sys/net/if_var.h
==============================================================================
--- head/sys/net/if_var.h	Tue Mar 27 15:20:03 2018	(r331621)
+++ head/sys/net/if_var.h	Tue Mar 27 15:29:32 2018	(r331622)
@@ -365,6 +365,9 @@ struct ifnet {
 	if_snd_tag_query_t *if_snd_tag_query;
 	if_snd_tag_free_t *if_snd_tag_free;
 
+	/* Ethernet PCP */
+	uint8_t if_pcp;
+
 	/*
 	 * Spare fields to be added before branching a stable branch, so
 	 * that structure can be enhanced without changing the kernel

Modified: head/sys/net/if_vlan.c
==============================================================================
--- head/sys/net/if_vlan.c	Tue Mar 27 15:20:03 2018	(r331621)
+++ head/sys/net/if_vlan.c	Tue Mar 27 15:29:32 2018	(r331622)
@@ -196,26 +196,8 @@ static struct {
 	{0, NULL}
 };
 
-SYSCTL_DECL(_net_link);
-static SYSCTL_NODE(_net_link, IFT_L2VLAN, vlan, CTLFLAG_RW, 0,
-    "IEEE 802.1Q VLAN");
-static SYSCTL_NODE(_net_link_vlan, PF_LINK, link, CTLFLAG_RW, 0,
-    "for consistency");
+extern int vlan_mtag_pcp;
 
-static VNET_DEFINE(int, soft_pad);
-#define	V_soft_pad	VNET(soft_pad)
-SYSCTL_INT(_net_link_vlan, OID_AUTO, soft_pad, CTLFLAG_RW | CTLFLAG_VNET,
-    &VNET_NAME(soft_pad), 0, "pad short frames before tagging");
-
-/*
- * For now, make preserving PCP via an mbuf tag optional, as it increases
- * per-packet memory allocations and frees.  In the future, it would be
- * preferable to reuse ether_vtag for this, or similar.
- */
-static int vlan_mtag_pcp = 0;
-SYSCTL_INT(_net_link_vlan, OID_AUTO, mtag_pcp, CTLFLAG_RW, &vlan_mtag_pcp, 0,
-	"Retain VLAN PCP information as packets are passed up the stack");
-
 static const char vlanname[] = "vlan";
 static MALLOC_DEFINE(M_VLAN, vlanname, "802.1Q Virtual LAN Interface");
 
@@ -1171,8 +1153,6 @@ vlan_transmit(struct ifnet *ifp, struct mbuf *m)
 {
 	struct ifvlan *ifv;
 	struct ifnet *p;
-	struct m_tag *mtag;
-	uint16_t tag;
 	int error, len, mcast;
 	VLAN_LOCK_READER;
 
@@ -1201,59 +1181,10 @@ vlan_transmit(struct ifnet *ifp, struct mbuf *m)
 		return (ENETDOWN);
 	}
 
-	/*
-	 * Pad the frame to the minimum size allowed if told to.
-	 * This option is in accord with IEEE Std 802.1Q, 2003 Ed.,
-	 * paragraph C.4.4.3.b.  It can help to work around buggy
-	 * bridges that violate paragraph C.4.4.3.a from the same
-	 * document, i.e., fail to pad short frames after untagging.
-	 * E.g., a tagged frame 66 bytes long (incl. FCS) is OK, but
-	 * untagging it will produce a 62-byte frame, which is a runt
-	 * and requires padding.  There are VLAN-enabled network
-	 * devices that just discard such runts instead or mishandle
-	 * them somehow.
-	 */
-	if (V_soft_pad && p->if_type == IFT_ETHER) {
-		static char pad[8];	/* just zeros */
-		int n;
-
-		for (n = ETHERMIN + ETHER_HDR_LEN - m->m_pkthdr.len;
-		     n > 0; n -= sizeof(pad))
-			if (!m_append(m, min(n, sizeof(pad)), pad))
-				break;
-
-		if (n > 0) {
-			if_printf(ifp, "cannot pad short frame\n");
-			if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
-			VLAN_RUNLOCK();
-			m_freem(m);
-			return (0);
-		}
-	}
-
-	/*
-	 * If underlying interface can do VLAN tag insertion itself,
-	 * just pass the packet along. However, we need some way to
-	 * tell the interface where the packet came from so that it
-	 * knows how to find the VLAN tag to use, so we attach a
-	 * packet tag that holds it.
-	 */
-	if (vlan_mtag_pcp && (mtag = m_tag_locate(m, MTAG_8021Q,
-	    MTAG_8021Q_PCP_OUT, NULL)) != NULL)
-		tag = EVL_MAKETAG(ifv->ifv_vid, *(uint8_t *)(mtag + 1), 0);
-	else
-              tag = ifv->ifv_tag;
-	if (p->if_capenable & IFCAP_VLAN_HWTAGGING) {
-		m->m_pkthdr.ether_vtag = tag;
-		m->m_flags |= M_VLANTAG;
-	} else {
-		m = ether_vlanencap(m, tag);
-		if (m == NULL) {
-			if_printf(ifp, "unable to prepend VLAN header\n");
-			if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
-			VLAN_RUNLOCK();
-			return (0);
-		}
+	if (!ether_8021q_frame(&m, ifp, p, ifv->ifv_vid, ifv->ifv_pcp)) {
+		if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
+		VLAN_RUNLOCK();
+		return (0);
 	}
 
 	/*

Modified: head/sys/net/if_vlan_var.h
==============================================================================
--- head/sys/net/if_vlan_var.h	Tue Mar 27 15:20:03 2018	(r331621)
+++ head/sys/net/if_vlan_var.h	Tue Mar 27 15:29:32 2018	(r331622)
@@ -73,22 +73,8 @@ struct	vlanreq {
 #define	SIOCSETVLAN	SIOCSIFGENERIC
 #define	SIOCGETVLAN	SIOCGIFGENERIC
 
-#define	SIOCGVLANPCP	_IOWR('i', 152, struct ifreq)	/* Get VLAN PCP */
-#define	SIOCSVLANPCP	 _IOW('i', 153, struct ifreq)	/* Set VLAN PCP */
-
-/*
- * Names for 802.1q priorities ("802.1p").  Notice that in this scheme,
- * (0 < 1), allowing default 0-tagged traffic to take priority over background
- * tagged traffic.
- */
-#define	IEEE8021Q_PCP_BK	1	/* Background (lowest) */
-#define	IEEE8021Q_PCP_BE	0	/* Best effort (default) */
-#define	IEEE8021Q_PCP_EE	2	/* Excellent effort */
-#define	IEEE8021Q_PCP_CA	3	/* Critical applications */
-#define	IEEE8021Q_PCP_VI	4	/* Video, < 100ms latency */
-#define	IEEE8021Q_PCP_VO	5	/* Video, < 10ms latency */
-#define	IEEE8021Q_PCP_IC	6	/* Internetwork control */
-#define	IEEE8021Q_PCP_NC	7	/* Network control (highest) */
+#define	SIOCGVLANPCP	SIOCGLANPCP	/* Get VLAN PCP */
+#define	SIOCSVLANPCP	SIOCSLANPCP	/* Set VLAN PCP */
 
 #ifdef _KERNEL
 /*

Modified: head/sys/sys/priv.h
==============================================================================
--- head/sys/sys/priv.h	Tue Mar 27 15:20:03 2018	(r331621)
+++ head/sys/sys/priv.h	Tue Mar 27 15:29:32 2018	(r331622)
@@ -344,7 +344,8 @@
 #define	PRIV_NET_SETIFDESCR	418	/* Set interface description. */
 #define	PRIV_NET_SETIFFIB	419	/* Set interface fib. */
 #define	PRIV_NET_VXLAN		420	/* Administer vxlan. */
-#define	PRIV_NET_SETVLANPCP	421	/* Set VLAN priority. */
+#define	PRIV_NET_SETLANPCP	421	/* Set LAN priority. */
+#define	PRIV_NET_SETVLANPCP	PRIV_NET_SETLANPCP /* Alias Set VLAN priority */
 
 /*
  * 802.11-related privileges.

Modified: head/sys/sys/sockio.h
==============================================================================
--- head/sys/sys/sockio.h	Tue Mar 27 15:20:03 2018	(r331621)
+++ head/sys/sys/sockio.h	Tue Mar 27 15:29:32 2018	(r331622)
@@ -140,4 +140,7 @@
 #define	SIOCGIFRSSHASH	_IOWR('i', 151, struct ifrsshash)/* get the current RSS
 							type/func settings */
 
+#define	SIOCGLANPCP	_IOWR('i', 152, struct ifreq)	/* Get (V)LAN PCP */
+#define	SIOCSLANPCP	 _IOW('i', 153, struct ifreq)	/* Set (V)LAN PCP */
+
 #endif /* !_SYS_SOCKIO_H_ */

From owner-svn-src-all@freebsd.org  Tue Mar 27 15:30:11 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 50886F607E9;
 Tue, 27 Mar 2018 15:30:11 +0000 (UTC)
 (envelope-from cse.cem@gmail.com)
Received: from mail-io0-f178.google.com (mail-io0-f178.google.com
 [209.85.223.178])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id DD1FE6C5BC;
 Tue, 27 Mar 2018 15:30:10 +0000 (UTC)
 (envelope-from cse.cem@gmail.com)
Received: by mail-io0-f178.google.com with SMTP id q80so17161894ioi.13;
 Tue, 27 Mar 2018 08:30:10 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:reply-to:in-reply-to:references
 :from:date:message-id:subject:to:cc:content-transfer-encoding;
 bh=pmSdjxBghO1vqyU3uibPtwbrI/QppnU2Lr1ja3qdr84=;
 b=EKWJK5sNF/D/vMOdfuHXuJ7MN4XOO7yrRQP4W77MyoU0YxdDAhWv5KYallYhmwVVqY
 4tTso7zTUPoRdx7hLKq4g2ngtgilZ46y2rjU7Elat0n3OO1m3vPxsm9b55qFhccBXIYG
 oLnnsxnfbikkgQ0V6MvIoGyMmPnRkyQ6B6ZqR0PzaCilQsUpZs2hs1YQ3Z1XpJ7OFgIn
 0MTyqAHba7Yb6fpmr0tKoAOX5Js4YEJxASJkWfsabKksjiitGb3v+gNP6fdqx83QCZak
 CBvFgcq9DLOU8MFBGVx/Q8JbuZkXxO6flIn6vKsgx0Ya9hspy/pZ+fhTbrZesEtxIPCK
 Czfg==
X-Gm-Message-State: AElRT7E96cHkKop+1fQSdRyOAp8FoJKE+JaGzjamqb/3tfFWJ88wK8Ob
 z3R1Tdw7G92pJe8zpgj146GYsntb
X-Google-Smtp-Source: AIpwx48hP3QtutDDIbRwavPs1LufinpUCge4mzy/+Umsff9xtPg4/mDjeBjolsJ7UERWQnn7QnoPSA==
X-Received: by 10.107.178.200 with SMTP id b191mr3641700iof.138.1522164609663; 
 Tue, 27 Mar 2018 08:30:09 -0700 (PDT)
Received: from mail-io0-f179.google.com (mail-io0-f179.google.com.
 [209.85.223.179])
 by smtp.gmail.com with ESMTPSA id k4-v6sm1310029ith.4.2018.03.27.08.30.09
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 27 Mar 2018 08:30:09 -0700 (PDT)
Received: by mail-io0-f179.google.com with SMTP id b20so28084514iof.5;
 Tue, 27 Mar 2018 08:30:09 -0700 (PDT)
X-Received: by 10.107.181.72 with SMTP id e69mr29772476iof.267.1522164608767; 
 Tue, 27 Mar 2018 08:30:08 -0700 (PDT)
MIME-Version: 1.0
Reply-To: cem@freebsd.org
Received: by 10.2.62.19 with HTTP; Tue, 27 Mar 2018 08:30:08 -0700 (PDT)
In-Reply-To: 
References: <201803271451.w2REpJP9078197@repo.freebsd.org>
 <201803271457.w2REv6tH052497@pdx.rh.CN85.dnsmgr.net>
 
From: Conrad Meyer 
Date: Tue, 27 Mar 2018 08:30:08 -0700
X-Gmail-Original-Message-ID: 
Message-ID: 
Subject: Re: svn commit: r331618 - head/share/man/man7
To: Benjamin Kaduk 
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, 
 src-committers 
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 15:30:11 -0000

Thinking of the network as attacker-controlled is fine, but without
the CA certificate database in ports, TLS provides neither data
integrity nor confidentiality.[0]

Even with certificate validation, it's unlikely that TLS provides
meaningful confidentiality for svn.freebsd.org =E2=80=94 IP still exposes t=
he
server's address:

$ host 8.8.178.107
107.178.8.8.in-addr.arpa domain name pointer svnmir.ysv.freebsd.org

Even a naive network attacker can determine that you are interacting
with a FreeBSD source mirror, and can determine the direction of the
flow of information based on simple count of upload / download bytes.

Best,
Conrad

P.S., we should probably ship a CA database in base.  Maybe with an
override version in ports to match our release model.  But, base
should be able to authenticate certificates out of the box.

[0]: https://github.com/moxie0/sslsniff

On Tue, Mar 27, 2018 at 8:01 AM, Benjamin Kaduk  wrote:
> On Tue, Mar 27, 2018 at 9:57 AM, Rodney W. Grimes
>  wrote:
>>
>> > Author: trasz
>> > Date: Tue Mar 27 14:51:19 2018
>> > New Revision: 331618
>> > URL: https://svnweb.freebsd.org/changeset/base/331618
>> >
>> > Log:
>> >   Use https:// instead of http://.
>> >
>> >   MFC after:  2 weeks
>> >
>> > Modified:
>> >   head/share/man/man7/development.7
>> >
>> > Modified: head/share/man/man7/development.7
>> >
>> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
>> > --- head/share/man/man7/development.7 Tue Mar 27 14:50:12 2018
>> > (r331617)
>> > +++ head/share/man/man7/development.7 Tue Mar 27 14:51:19 2018
>> > (r331618)
>> > @@ -57,7 +57,7 @@ can be found at:
>> >  FreeBSD src development takes place in the CURRENT branch in
>> > Subversion,
>> >  located at:
>> >  .Pp
>> > -.Lk http://svn.FreeBSD.org/base/head
>> > +.Lk https://svn.FreeBSD.org/base/head
>> >  .Pp
>> >  There is also a read-only GitHub mirror at:
>> >  .Pp
>>
>> Why do we want to run the load of TLS for what are public bits?
>> And fyi a default install of FreeBSD can not use https, you have
>> to install certs from ports before any of these https links
>> can even work, and that can be a royal pita in some situations.
>
>
> Many of us are used to thinking of the network as controlled by an attack=
er.
> Running http-not-s to fetch the sources lets "the attacker" supply an
> arbitrary
> collection of bits under the name FreeBSD without a good way for the user=
 to
> check that the bits on their disk match what the FreeBSD Project expects
> them to be.
> TLS provides data integrity as well as confidentiality...
>
> -Ben

From owner-svn-src-all@freebsd.org  Tue Mar 27 15:41:04 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C22C8F627CC;
 Tue, 27 Mar 2018 15:41:04 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 476736CF10;
 Tue, 27 Mar 2018 15:41:04 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2RFf2dO052689;
 Tue, 27 Mar 2018 08:41:02 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2RFf2YM052688;
 Tue, 27 Mar 2018 08:41:02 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803271541.w2RFf2YM052688@pdx.rh.CN85.dnsmgr.net>
Subject: Re: svn commit: r331618 - head/share/man/man7
In-Reply-To: 
To: cem@freebsd.org
Date: Tue, 27 Mar 2018 08:41:02 -0700 (PDT)
CC: Benjamin Kaduk , svn-src-head@freebsd.org,
 svn-src-all@freebsd.org, src-committers 
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 15:41:04 -0000

> Thinking of the network as attacker-controlled is fine, but without
> the CA certificate database in ports, TLS provides neither data
> integrity nor confidentiality.[0]
> 
> Even with certificate validation, it's unlikely that TLS provides
> meaningful confidentiality for svn.freebsd.org ? IP still exposes the
> server's address:
> 
> $ host 8.8.178.107
> 107.178.8.8.in-addr.arpa domain name pointer svnmir.ysv.freebsd.org
> 
> Even a naive network attacker can determine that you are interacting
> with a FreeBSD source mirror, and can determine the direction of the
> flow of information based on simple count of upload / download bytes.

Without the private part of the TLS they can not alter that data,
correct?

I know there are TLS intercepts, but they require you to get the
client to accept an alternate cert to proxy the connection.

> 
> Best,
> Conrad
> 
> P.S., we should probably ship a CA database in base.  Maybe with an
> override version in ports to match our release model.  But, base
> should be able to authenticate certificates out of the box.

I believe there is a group of people working on that issue
some place, or at least I recall seeing it as an adgenda item.

> [0]: https://github.com/moxie0/sslsniff
> 
> On Tue, Mar 27, 2018 at 8:01 AM, Benjamin Kaduk  wrote:
> > On Tue, Mar 27, 2018 at 9:57 AM, Rodney W. Grimes
> >  wrote:
> >>
> >> > Author: trasz
> >> > Date: Tue Mar 27 14:51:19 2018
> >> > New Revision: 331618
> >> > URL: https://svnweb.freebsd.org/changeset/base/331618
...

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Tue Mar 27 15:50:04 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DCEE2F635E1;
 Tue, 27 Mar 2018 15:50:03 +0000 (UTC)
 (envelope-from cse.cem@gmail.com)
Received: from mail-io0-f179.google.com (mail-io0-f179.google.com
 [209.85.223.179])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 779116D7B4;
 Tue, 27 Mar 2018 15:50:03 +0000 (UTC)
 (envelope-from cse.cem@gmail.com)
Received: by mail-io0-f179.google.com with SMTP id d7so12777196ioc.11;
 Tue, 27 Mar 2018 08:50:03 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:reply-to:in-reply-to:references
 :from:date:message-id:subject:to:cc:content-transfer-encoding;
 bh=94JsRnegbCDdQ20stDw+aoJ1CsUltrSEIdvNYRky4qY=;
 b=hs7B92L742g7lUEybTc9/F61YVNxL+m8eciJsXx9wJu67Pkz6EEdf6OzRUgr/wXDCq
 gY+FZKckwT+TJaxUSXHIOGJUy3i8oOi8+S4iyem/duesL0L5QBCyc+HDcW+y9jr8O6Ds
 P33N3S6ihTuzft7rMvdHM+OzibtUDC6kasP2HZ/7vSL2CG3y37tn+3uj0j29wyCiRErT
 zAGYQqnl8juSNINQMqn2yTmUnoFRWpWn15C7VGaN/hUBE5MAjT2LcJiQRQHKXU3s0sdN
 Gr4gLSfiOTjxigtDgJSvsxW6Zyiktwdp2gSXlkUUZdzfvi26BPd2YuLQ7k+vn1GI3kmb
 xnkA==
X-Gm-Message-State: AElRT7FxHHSaG7wlUxlFGZ5oZ5GiNblLYKFqswjU9Fm68FozrCJ/bfbo
 wl6czIdwSZiY0E5g1ErCCmgHd4w1
X-Google-Smtp-Source: AIpwx48yKzpWH0IyXWvqz7Qo52pRNdf2HPAtYIlBOn+WVFUvEgj6O0OwwfcchugQK7vKxnE2ZJ87ww==
X-Received: by 10.107.80.15 with SMTP id e15mr6049270iob.40.1522165796630;
 Tue, 27 Mar 2018 08:49:56 -0700 (PDT)
Received: from mail-it0-f49.google.com (mail-it0-f49.google.com.
 [209.85.214.49])
 by smtp.gmail.com with ESMTPSA id m75sm1098034iom.71.2018.03.27.08.49.55
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 27 Mar 2018 08:49:56 -0700 (PDT)
Received: by mail-it0-f49.google.com with SMTP id y20-v6so15878685itc.5;
 Tue, 27 Mar 2018 08:49:55 -0700 (PDT)
X-Received: by 2002:a24:e14e:: with SMTP id
 n75-v6mr26985508ith.58.1522165795780; 
 Tue, 27 Mar 2018 08:49:55 -0700 (PDT)
MIME-Version: 1.0
Reply-To: cem@freebsd.org
Received: by 10.2.62.19 with HTTP; Tue, 27 Mar 2018 08:49:55 -0700 (PDT)
In-Reply-To: <201803271541.w2RFf2YM052688@pdx.rh.CN85.dnsmgr.net>
References: 
 <201803271541.w2RFf2YM052688@pdx.rh.CN85.dnsmgr.net>
From: Conrad Meyer 
Date: Tue, 27 Mar 2018 08:49:55 -0700
X-Gmail-Original-Message-ID: 
Message-ID: 
Subject: Re: svn commit: r331618 - head/share/man/man7
To: "Rodney W. Grimes" 
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, 
 src-committers 
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 15:50:04 -0000

On Tue, Mar 27, 2018 at 8:41 AM, Rodney W. Grimes
 wrote:
> Without the private part of the TLS they can not alter that data,
> correct?

Correct =E2=80=94 a property typically referred to as "integrity."  (Well,
obviously they can truncate streams with RST, but that isn't very
subtle to any client.)

> I know there are TLS intercepts, but they require you to get the
> client to accept an alternate cert to proxy the connection.

Yep.  Without a CA trust database, clients cannot distinguish valid
certifications from invalid ones.

>> P.S., we should probably ship a CA database in base.  Maybe with an
>> override version in ports to match our release model.  But, base
>> should be able to authenticate certificates out of the box.
>
> I believe there is a group of people working on that issue
> some place, or at least I recall seeing it as an adgenda item.

There was some contention even having the port install somewhere base
SSL libraries could access it.  We've made that change, though there
is a non-default port option to turn it off.  I too have seen it on
Core's agenda for months, without any outward visible progress.

Best,
Conrad

From owner-svn-src-all@freebsd.org  Tue Mar 27 16:07:55 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3CF08F65564;
 Tue, 27 Mar 2018 16:07:55 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E03206E8C7;
 Tue, 27 Mar 2018 16:07:54 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DAE1C1E4D0;
 Tue, 27 Mar 2018 16:07:54 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RG7ski018083;
 Tue, 27 Mar 2018 16:07:54 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RG7svT018080;
 Tue, 27 Mar 2018 16:07:54 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271607.w2RG7svT018080@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 16:07:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331623 - in head/sys: compat/freebsd32 dev/md
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in head/sys: compat/freebsd32 dev/md
X-SVN-Commit-Revision: 331623
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 16:07:55 -0000

Author: brooks
Date: Tue Mar 27 16:07:54 2018
New Revision: 331623
URL: https://svnweb.freebsd.org/changeset/base/331623

Log:
  Move 32-bit compat for md(4) ioctls into the md code.
  
  This is more correct in that ioctl commands have no meaning until they
  hit the handler associated with the file descriptor.
  
  Add support for MDIOCRESIZE_32 which was missed when it was added.
  
  Reviewed by:	cem, kib, markj (various versions)
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14714

Modified:
  head/sys/compat/freebsd32/freebsd32_ioctl.c
  head/sys/compat/freebsd32/freebsd32_ioctl.h
  head/sys/dev/md/md.c

Modified: head/sys/compat/freebsd32/freebsd32_ioctl.c
==============================================================================
--- head/sys/compat/freebsd32/freebsd32_ioctl.c	Tue Mar 27 15:29:32 2018	(r331622)
+++ head/sys/compat/freebsd32/freebsd32_ioctl.c	Tue Mar 27 16:07:54 2018	(r331623)
@@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -58,90 +57,13 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
-CTASSERT((sizeof(struct md_ioctl32)) == 436);
 CTASSERT(sizeof(struct ioc_read_toc_entry32) == 8);
 CTASSERT(sizeof(struct mem_range_op32) == 12);
 CTASSERT(sizeof(struct pci_conf_io32) == 36);
 CTASSERT(sizeof(struct pci_match_conf32) == 44);
 CTASSERT(sizeof(struct pci_conf32) == 44);
 
-
 static int
-freebsd32_ioctl_md(struct thread *td, struct freebsd32_ioctl_args *uap,
-    struct file *fp)
-{
-	struct md_ioctl mdv;
-	struct md_ioctl32 md32;
-	u_long com = 0;
-	int i, error;
-
-	if (uap->com & IOC_IN) {
-		if ((error = copyin(uap->data, &md32, sizeof(md32)))) {
-			return (error);
-		}
-		CP(md32, mdv, md_version);
-		CP(md32, mdv, md_unit);
-		CP(md32, mdv, md_type);
-		PTRIN_CP(md32, mdv, md_file);
-		CP(md32, mdv, md_mediasize);
-		CP(md32, mdv, md_sectorsize);
-		CP(md32, mdv, md_options);
-		CP(md32, mdv, md_base);
-		CP(md32, mdv, md_fwheads);
-		CP(md32, mdv, md_fwsectors);
-		PTRIN_CP(md32, mdv, md_label);
-	} else if (uap->com & IOC_OUT) {
-		/*
-		 * Zero the buffer so the user always
-		 * gets back something deterministic.
-		 */
-		bzero(&mdv, sizeof mdv);
-	}
-
-	switch (uap->com) {
-	case MDIOCATTACH_32:
-		com = MDIOCATTACH;
-		break;
-	case MDIOCDETACH_32:
-		com = MDIOCDETACH;
-		break;
-	case MDIOCQUERY_32:
-		com = MDIOCQUERY;
-		break;
-	case MDIOCLIST_32:
-		com = MDIOCLIST;
-		break;
-	default:
-		panic("%s: unknown MDIOC %#x", __func__, uap->com);
-	}
-	error = fo_ioctl(fp, com, (caddr_t)&mdv, td->td_ucred, td);
-	if (error == 0 && (com & IOC_OUT)) {
-		CP(mdv, md32, md_version);
-		CP(mdv, md32, md_unit);
-		CP(mdv, md32, md_type);
-		PTROUT_CP(mdv, md32, md_file);
-		CP(mdv, md32, md_mediasize);
-		CP(mdv, md32, md_sectorsize);
-		CP(mdv, md32, md_options);
-		CP(mdv, md32, md_base);
-		CP(mdv, md32, md_fwheads);
-		CP(mdv, md32, md_fwsectors);
-		PTROUT_CP(mdv, md32, md_label);
-		if (com == MDIOCLIST) {
-			/*
-			 * Use MDNPAD, and not MDNPAD32.  Padding is
-			 * allocated and used by compat32 ABI.
-			 */
-			for (i = 0; i < MDNPAD; i++)
-				CP(mdv, md32, md_pad[i]);
-		}
-		error = copyout(&md32, uap->data, sizeof(md32));
-	}
-	return error;
-}
-
-
-static int
 freebsd32_ioctl_ioc_read_toc(struct thread *td,
     struct freebsd32_ioctl_args *uap, struct file *fp)
 {
@@ -414,13 +336,6 @@ freebsd32_ioctl(struct thread *td, struct freebsd32_io
 	}
 
 	switch (uap->com) {
-	case MDIOCATTACH_32:	/* FALLTHROUGH */
-	case MDIOCDETACH_32:	/* FALLTHROUGH */
-	case MDIOCQUERY_32:	/* FALLTHROUGH */
-	case MDIOCLIST_32:
-		error = freebsd32_ioctl_md(td, uap, fp);
-		break;
-
 	case CDIOREADTOCENTRYS_32:
 		error = freebsd32_ioctl_ioc_read_toc(td, uap, fp);
 		break;

Modified: head/sys/compat/freebsd32/freebsd32_ioctl.h
==============================================================================
--- head/sys/compat/freebsd32/freebsd32_ioctl.h	Tue Mar 27 15:29:32 2018	(r331622)
+++ head/sys/compat/freebsd32/freebsd32_ioctl.h	Tue Mar 27 16:07:54 2018	(r331623)
@@ -45,22 +45,6 @@ struct ioc_read_toc_entry32 {
 	uint32_t data;		/* struct cd_toc_entry* */
 };
 
-#define	MDNPAD32	MDNPAD
-struct md_ioctl32 {
-	unsigned	md_version;	/* Structure layout version */
-	unsigned	md_unit;	/* unit number */
-	enum md_types	md_type;	/* type of disk */
-	caddr_t32	md_file;	/* pathname of file to mount */
-	off_t		md_mediasize;	/* size of disk in bytes */
-	unsigned	md_sectorsize;	/* sectorsize */
-	unsigned	md_options;	/* options */
-	u_int64_t	md_base;	/* base address */
-	int		md_fwheads;	/* firmware heads */
-	int		md_fwsectors;	/* firmware sectors */
-	caddr_t32	md_label;	/* label of the device */
-	int		md_pad[MDNPAD32]; /* padding for future ideas */
-} __attribute__((__packed__));
-
 struct fiodgname_arg32 {
 	int		len;
 	caddr_t32	buf;
@@ -112,10 +96,6 @@ struct pci_conf_io32 {
 };
 
 #define	CDIOREADTOCENTRYS_32 _IOWR('c', 5, struct ioc_read_toc_entry32)
-#define	MDIOCATTACH_32	_IOC(IOC_INOUT, 'm', 0, sizeof(struct md_ioctl32))
-#define	MDIOCDETACH_32	_IOC(IOC_INOUT, 'm', 1, sizeof(struct md_ioctl32))
-#define	MDIOCQUERY_32	_IOC(IOC_INOUT, 'm', 2, sizeof(struct md_ioctl32))
-#define	MDIOCLIST_32	_IOC(IOC_INOUT, 'm', 3, sizeof(struct md_ioctl32))
 #define	FIODGNAME_32	_IOW('f', 120, struct fiodgname_arg32)
 #define	MEMRANGE_GET32	_IOWR('m', 50, struct mem_range_op32)
 #define	MEMRANGE_SET32	_IOW('m', 51, struct mem_range_op32)

Modified: head/sys/dev/md/md.c
==============================================================================
--- head/sys/dev/md/md.c	Tue Mar 27 15:29:32 2018	(r331622)
+++ head/sys/dev/md/md.c	Tue Mar 27 16:07:54 2018	(r331623)
@@ -60,6 +60,7 @@
  * From: src/sys/dev/vn/vn.c,v 1.122 2000/12/16 16:06:03
  */
 
+#include "opt_compat.h"
 #include "opt_rootdevname.h"
 #include "opt_geom.h"
 #include "opt_md.h"
@@ -130,6 +131,30 @@ struct md_req {
 	size_t		md_units_nitems; /* items in md_units array */
 };
 
+#ifdef COMPAT_FREEBSD32
+struct md_ioctl32 {
+	unsigned	md_version;
+	unsigned	md_unit;
+	enum md_types	md_type;
+	uint32_t	md_file;
+	off_t		md_mediasize;
+	unsigned	md_sectorsize;
+	unsigned	md_options;
+	uint64_t	md_base;
+	int		md_fwheads;
+	int		md_fwsectors;
+	uint32_t	md_label;
+	int		md_pad[MDNPAD];
+} __attribute__((__packed__));
+CTASSERT((sizeof(struct md_ioctl32)) == 436);
+
+#define	MDIOCATTACH_32	_IOC_NEWTYPE(MDIOCATTACH, struct md_ioctl32)
+#define	MDIOCDETACH_32	_IOC_NEWTYPE(MDIOCDETACH, struct md_ioctl32)
+#define	MDIOCQUERY_32	_IOC_NEWTYPE(MDIOCQUERY, struct md_ioctl32)
+#define	MDIOCLIST_32	_IOC_NEWTYPE(MDIOCLIST, struct md_ioctl32)
+#define	MDIOCRESIZE_32	_IOC_NEWTYPE(MDIOCRESIZE, struct md_ioctl32)
+#endif /* COMPAT_FREEBSD32 */
+
 static MALLOC_DEFINE(M_MD, "md_disk", "Memory Disk");
 static MALLOC_DEFINE(M_MDSECT, "md_sectors", "Memory Disk Sectors");
 
@@ -1396,8 +1421,10 @@ mdcreate_vnode(struct md_s *sc, struct md_req *mdr, st
 		error = copyinstr(fname, sc->file, sizeof(sc->file), NULL);
 		if (error != 0)
 			return (error);
-	} else
+	} else if (mdr->md_file_seg == UIO_SYSSPACE)
 		strlcpy(sc->file, fname, sizeof(sc->file));
+	else
+		return (EDOOFUS);
 
 	/*
 	 * If the user specified that this is a read only device, don't
@@ -1859,61 +1886,111 @@ kern_mdlist(struct md_req *mdr)
 	return (error);
 }
 
+/* Copy members that are not userspace pointers. */
+#define	MD_IOCTL2REQ(mdio, mdr) do {					\
+	(mdr)->md_unit = (mdio)->md_unit;				\
+	(mdr)->md_type = (mdio)->md_type;				\
+	(mdr)->md_mediasize = (mdio)->md_mediasize;			\
+	(mdr)->md_sectorsize = (mdio)->md_sectorsize;			\
+	(mdr)->md_options = (mdio)->md_options;				\
+	(mdr)->md_fwheads = (mdio)->md_fwheads;				\
+	(mdr)->md_fwsectors = (mdio)->md_fwsectors;			\
+	(mdr)->md_units = &(mdio)->md_pad[0];				\
+	(mdr)->md_units_nitems = nitems((mdio)->md_pad);		\
+} while(0)
+
+/* Copy members that might have been updated */
+#define MD_REQ2IOCTL(mdr, mdio) do {					\
+	(mdio)->md_unit = (mdr)->md_unit;				\
+	(mdio)->md_type = (mdr)->md_type;				\
+	(mdio)->md_mediasize = (mdr)->md_mediasize;			\
+	(mdio)->md_sectorsize = (mdr)->md_sectorsize;			\
+	(mdio)->md_options = (mdr)->md_options;				\
+	(mdio)->md_fwheads = (mdr)->md_fwheads;				\
+	(mdio)->md_fwsectors = (mdr)->md_fwsectors;			\
+} while(0)
+
 static int
 mdctlioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags,
     struct thread *td)
 {
 	struct md_req mdr;
-	struct md_ioctl *mdio;
 	int error;
 
 	if (md_debug)
 		printf("mdctlioctl(%s %lx %p %x %p)\n",
 			devtoname(dev), cmd, addr, flags, td);
 
+	bzero(&mdr, sizeof(mdr));
 	switch (cmd) {
 	case MDIOCATTACH:
 	case MDIOCDETACH:
 	case MDIOCRESIZE:
 	case MDIOCQUERY:
-	case MDIOCLIST:
-		mdio = (struct md_ioctl *)addr;
+	case MDIOCLIST: {
+		struct md_ioctl *mdio = (struct md_ioctl *)addr;
 		if (mdio->md_version != MDIOVERSION)
 			return (EINVAL);
-		mdr.md_unit = mdio->md_unit;
-		mdr.md_type = mdio->md_type;
-		mdr.md_mediasize = mdio->md_mediasize;
-		mdr.md_sectorsize = mdio->md_sectorsize;
-		mdr.md_options = mdio->md_options;
-		mdr.md_fwheads = mdio->md_fwheads;
-		mdr.md_fwsectors = mdio->md_fwsectors;
+		MD_IOCTL2REQ(mdio, &mdr);
 		mdr.md_file = mdio->md_file;
+		mdr.md_file_seg = UIO_USERSPACE;
 		/* If the file is adjacent to the md_ioctl it's in kernel. */
 		if ((void *)mdio->md_file == (void *)(mdio + 1))
 			mdr.md_file_seg = UIO_SYSSPACE;
-		else
-			mdr.md_file_seg = UIO_USERSPACE;
 		mdr.md_label = mdio->md_label;
-		mdr.md_units = &mdio->md_pad[0];
-		mdr.md_units_nitems = nitems(mdio->md_pad);
 		break;
 	}
+#ifdef COMPAT_FREEBSD32
+	case MDIOCATTACH_32:
+	case MDIOCDETACH_32:
+	case MDIOCRESIZE_32:
+	case MDIOCQUERY_32:
+	case MDIOCLIST_32: {
+		struct md_ioctl32 *mdio = (struct md_ioctl32 *)addr;
+		if (mdio->md_version != MDIOVERSION)
+			return (EINVAL);
+		MD_IOCTL2REQ(mdio, &mdr);
+		mdr.md_file = (void *)(uintptr_t)mdio->md_file;
+		mdr.md_file_seg = UIO_USERSPACE;
+		mdr.md_label = (void *)(uintptr_t)mdio->md_label;
+		break;
+	}
+#endif
+	default:
+		/* Fall through to handler switch. */
+		break;
+	}
 
 	error = 0;
 	switch (cmd) {
 	case MDIOCATTACH:
+#ifdef COMPAT_FREEBSD32
+	case MDIOCATTACH_32:
+#endif
 		error = kern_mdattach(td, &mdr);
 		break;
 	case MDIOCDETACH:
+#ifdef COMPAT_FREEBSD32
+	case MDIOCDETACH_32:
+#endif
 		error = kern_mddetach(td, &mdr);
 		break;
 	case MDIOCRESIZE:
+#ifdef COMPAT_FREEBSD32
+	case MDIOCRESIZE_32:
+#endif
 		error = kern_mdresize(&mdr);
 		break;
 	case MDIOCQUERY:
+#ifdef COMPAT_FREEBSD32
+	case MDIOCQUERY_32:
+#endif
 		error = kern_mdquery(&mdr);
 		break;
 	case MDIOCLIST:
+#ifdef COMPAT_FREEBSD32
+	case MDIOCLIST_32:
+#endif
 		error = kern_mdlist(&mdr);
 		break;
 	default:
@@ -1922,14 +1999,21 @@ mdctlioctl(struct cdev *dev, u_long cmd, caddr_t addr,
 
 	switch (cmd) {
 	case MDIOCATTACH:
-	case MDIOCQUERY:
-		mdio->md_unit = mdr.md_unit;
-		mdio->md_type = mdr.md_type;
-		mdio->md_mediasize = mdr.md_mediasize;
-		mdio->md_sectorsize = mdr.md_sectorsize;
-		mdio->md_options = mdr.md_options;
-		mdio->md_fwheads = mdr.md_fwheads;
-		mdio->md_fwsectors = mdr.md_fwsectors;
+	case MDIOCQUERY: {
+		struct md_ioctl *mdio = (struct md_ioctl *)addr;
+		MD_REQ2IOCTL(&mdr, mdio);
+		break;
+	}
+#ifdef COMPAT_FREEBSD32
+	case MDIOCATTACH_32:
+	case MDIOCQUERY_32: {
+		struct md_ioctl32 *mdio = (struct md_ioctl32 *)addr;
+		MD_REQ2IOCTL(&mdr, mdio);
+		break;
+	}
+#endif
+	default:
+		/* Other commands to not alter mdr. */
 		break;
 	}
 

From owner-svn-src-all@freebsd.org  Tue Mar 27 16:38:32 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DE5FCF6878A;
 Tue, 27 Mar 2018 16:38:32 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 9248D704F4;
 Tue, 27 Mar 2018 16:38:32 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 891001E9B2;
 Tue, 27 Mar 2018 16:38:32 +0000 (UTC)
 (envelope-from trasz@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RGcWHG034188;
 Tue, 27 Mar 2018 16:38:32 GMT (envelope-from trasz@FreeBSD.org)
Received: (from trasz@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RGcWtb034187;
 Tue, 27 Mar 2018 16:38:32 GMT (envelope-from trasz@FreeBSD.org)
Message-Id: <201803271638.w2RGcWtb034187@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: trasz set sender to
 trasz@FreeBSD.org using -f
From: Edward Tomasz Napierala 
Date: Tue, 27 Mar 2018 16:38:32 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331624 - head/sbin/savecore
X-SVN-Group: head
X-SVN-Commit-Author: trasz
X-SVN-Commit-Paths: head/sbin/savecore
X-SVN-Commit-Revision: 331624
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 16:38:33 -0000

Author: trasz
Date: Tue Mar 27 16:38:32 2018
New Revision: 331624
URL: https://svnweb.freebsd.org/changeset/base/331624

Log:
  Bump .Dd after r331113.
  
  Reported by:	oshogbo@
  MFC after:	2 weeks

Modified:
  head/sbin/savecore/savecore.8

Modified: head/sbin/savecore/savecore.8
==============================================================================
--- head/sbin/savecore/savecore.8	Tue Mar 27 16:07:54 2018	(r331623)
+++ head/sbin/savecore/savecore.8	Tue Mar 27 16:38:32 2018	(r331624)
@@ -28,7 +28,7 @@
 .\"     From: @(#)savecore.8	8.1 (Berkeley) 6/5/93
 .\" $FreeBSD$
 .\"
-.Dd October 24, 2017
+.Dd March 17, 2018
 .Dt SAVECORE 8
 .Os
 .Sh NAME

From owner-svn-src-all@freebsd.org  Tue Mar 27 16:45:28 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id EFAE4F693F2;
 Tue, 27 Mar 2018 16:45:27 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1])
 (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 7D6CA70F44;
 Tue, 27 Mar 2018 16:45:27 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215])
 by mail.baldwin.cx (Postfix) with ESMTPSA id 7CC4310A87D;
 Tue, 27 Mar 2018 12:45:26 -0400 (EDT)
From: John Baldwin 
To: Conrad Meyer 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: Re: svn commit: r331602 - in head/sys/contrib/zstd: .
 contrib/gen_html contrib/meson contrib/seekable_format doc doc/images lib
 lib/common lib/compress lib/decompress lib/dictBuilder lib/legacy program...
Date: Tue, 27 Mar 2018 09:41:44 -0700
Message-ID: <1800672.WX48MoC0qd@ralph.baldwin.cx>
User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; )
In-Reply-To: <201803262355.w2QNt00j023669@repo.freebsd.org>
References: <201803262355.w2QNt00j023669@repo.freebsd.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3
 (mail.baldwin.cx); Tue, 27 Mar 2018 12:45:26 -0400 (EDT)
X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx
X-Virus-Status: Clean
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 16:45:28 -0000

On Monday, March 26, 2018 11:55:00 PM Conrad Meyer wrote:
> Author: cem
> Date: Mon Mar 26 23:54:59 2018
> New Revision: 331602
> URL: https://svnweb.freebsd.org/changeset/base/331602
> 
> Log:
>   Update to Zstandard 1.3.4
>   
>   Includes our local patch to conditionalize use of __builtin_clz(ll) on
>   Clang's __has_builtin() (which is just defined to false when building with
>   GCC).
>   
>   The issue is tracked upstream at https://github.com/facebook/zstd/pull/884 .
>   Otherwise, these are vanilla Zstandard 1.3.4 files.

Note that there is an existing ^/vendor/zstd tree that zstd updates should probably
be committed to first and then merged over.  You can probably repair this by importing
1.3.4 as normal to the vendor area following the normal instructions and then doing
an 'svn merge --record-only' to update the merge info.

-- 
John Baldwin

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:03:04 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 318D4F6B1B6;
 Tue, 27 Mar 2018 17:03:04 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id D50BE72301;
 Tue, 27 Mar 2018 17:03:03 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CFA3A1EEE1;
 Tue, 27 Mar 2018 17:03:03 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RH33cP049484;
 Tue, 27 Mar 2018 17:03:03 GMT (envelope-from jkim@FreeBSD.org)
Received: (from jkim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RH316x049460;
 Tue, 27 Mar 2018 17:03:01 GMT (envelope-from jkim@FreeBSD.org)
Message-Id: <201803271703.w2RH316x049460@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jkim set sender to
 jkim@FreeBSD.org using -f
From: Jung-uk Kim 
Date: Tue, 27 Mar 2018 17:03:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331625 - in vendor-crypto/openssl/dist: . apps crypto
 crypto/asn1 crypto/bf crypto/bio crypto/bn crypto/conf crypto/des crypto/dh
 crypto/dsa crypto/ec crypto/ecdh crypto/engine crypto/...
X-SVN-Group: vendor-crypto
X-SVN-Commit-Author: jkim
X-SVN-Commit-Paths: in vendor-crypto/openssl/dist: . apps crypto crypto/asn1
 crypto/bf crypto/bio crypto/bn crypto/conf crypto/des crypto/dh crypto/dsa
 crypto/ec crypto/ecdh crypto/engine crypto/err crypto/evp crypto/hma...
X-SVN-Commit-Revision: 331625
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:03:04 -0000

Author: jkim
Date: Tue Mar 27 17:03:01 2018
New Revision: 331625
URL: https://svnweb.freebsd.org/changeset/base/331625

Log:
  Import OpenSSL 1.0.2o.

Modified:
  vendor-crypto/openssl/dist/CHANGES
  vendor-crypto/openssl/dist/Configure
  vendor-crypto/openssl/dist/FREEBSD-upgrade
  vendor-crypto/openssl/dist/LICENSE
  vendor-crypto/openssl/dist/Makefile
  vendor-crypto/openssl/dist/NEWS
  vendor-crypto/openssl/dist/README
  vendor-crypto/openssl/dist/apps/app_rand.c
  vendor-crypto/openssl/dist/apps/apps.c
  vendor-crypto/openssl/dist/apps/ca.c
  vendor-crypto/openssl/dist/apps/ciphers.c
  vendor-crypto/openssl/dist/apps/cms.c
  vendor-crypto/openssl/dist/apps/dgst.c
  vendor-crypto/openssl/dist/apps/dsaparam.c
  vendor-crypto/openssl/dist/apps/ecparam.c
  vendor-crypto/openssl/dist/apps/enc.c
  vendor-crypto/openssl/dist/apps/errstr.c
  vendor-crypto/openssl/dist/apps/ocsp.c
  vendor-crypto/openssl/dist/apps/openssl.c
  vendor-crypto/openssl/dist/apps/passwd.c
  vendor-crypto/openssl/dist/apps/pkcs12.c
  vendor-crypto/openssl/dist/apps/pkcs8.c
  vendor-crypto/openssl/dist/apps/rand.c
  vendor-crypto/openssl/dist/apps/req.c
  vendor-crypto/openssl/dist/apps/s_client.c
  vendor-crypto/openssl/dist/apps/s_server.c
  vendor-crypto/openssl/dist/apps/s_socket.c
  vendor-crypto/openssl/dist/apps/s_time.c
  vendor-crypto/openssl/dist/apps/speed.c
  vendor-crypto/openssl/dist/apps/x509.c
  vendor-crypto/openssl/dist/crypto/asn1/a_gentm.c
  vendor-crypto/openssl/dist/crypto/asn1/a_mbstr.c
  vendor-crypto/openssl/dist/crypto/asn1/a_object.c
  vendor-crypto/openssl/dist/crypto/asn1/a_strex.c
  vendor-crypto/openssl/dist/crypto/asn1/a_time.c
  vendor-crypto/openssl/dist/crypto/asn1/a_utctm.c
  vendor-crypto/openssl/dist/crypto/asn1/asn1.h
  vendor-crypto/openssl/dist/crypto/asn1/asn1_err.c
  vendor-crypto/openssl/dist/crypto/asn1/asn1_lib.c
  vendor-crypto/openssl/dist/crypto/asn1/asn1_par.c
  vendor-crypto/openssl/dist/crypto/asn1/asn_mime.c
  vendor-crypto/openssl/dist/crypto/asn1/t_x509a.c
  vendor-crypto/openssl/dist/crypto/asn1/tasn_dec.c
  vendor-crypto/openssl/dist/crypto/asn1/tasn_prn.c
  vendor-crypto/openssl/dist/crypto/bf/bftest.c
  vendor-crypto/openssl/dist/crypto/bio/b_dump.c
  vendor-crypto/openssl/dist/crypto/bio/b_print.c
  vendor-crypto/openssl/dist/crypto/bio/bio_cb.c
  vendor-crypto/openssl/dist/crypto/bio/bss_bio.c
  vendor-crypto/openssl/dist/crypto/bio/bss_conn.c
  vendor-crypto/openssl/dist/crypto/bio/bss_file.c
  vendor-crypto/openssl/dist/crypto/bn/bn_exp.c
  vendor-crypto/openssl/dist/crypto/bn/bn_lib.c
  vendor-crypto/openssl/dist/crypto/bn/bn_mont.c
  vendor-crypto/openssl/dist/crypto/bn/bn_print.c
  vendor-crypto/openssl/dist/crypto/bn/bntest.c
  vendor-crypto/openssl/dist/crypto/bn/expspeed.c
  vendor-crypto/openssl/dist/crypto/bn/exptest.c
  vendor-crypto/openssl/dist/crypto/conf/conf_def.c
  vendor-crypto/openssl/dist/crypto/conf/conf_mod.c
  vendor-crypto/openssl/dist/crypto/des/destest.c
  vendor-crypto/openssl/dist/crypto/des/ecb_enc.c
  vendor-crypto/openssl/dist/crypto/des/fcrypt.c
  vendor-crypto/openssl/dist/crypto/des/read_pwd.c
  vendor-crypto/openssl/dist/crypto/des/set_key.c
  vendor-crypto/openssl/dist/crypto/dh/dhtest.c
  vendor-crypto/openssl/dist/crypto/dsa/dsatest.c
  vendor-crypto/openssl/dist/crypto/ec/ec_lib.c
  vendor-crypto/openssl/dist/crypto/ec/ec_mult.c
  vendor-crypto/openssl/dist/crypto/ec/ecp_nistp224.c
  vendor-crypto/openssl/dist/crypto/ec/ecp_nistp256.c
  vendor-crypto/openssl/dist/crypto/ec/ecp_nistp521.c
  vendor-crypto/openssl/dist/crypto/ec/ecp_nistz256.c
  vendor-crypto/openssl/dist/crypto/ec/ecp_smpl.c
  vendor-crypto/openssl/dist/crypto/ec/ectest.c
  vendor-crypto/openssl/dist/crypto/ecdh/ecdhtest.c
  vendor-crypto/openssl/dist/crypto/engine/eng_cryptodev.c
  vendor-crypto/openssl/dist/crypto/engine/eng_table.c
  vendor-crypto/openssl/dist/crypto/err/err.c
  vendor-crypto/openssl/dist/crypto/err/err_prn.c
  vendor-crypto/openssl/dist/crypto/evp/bio_b64.c
  vendor-crypto/openssl/dist/crypto/evp/digest.c
  vendor-crypto/openssl/dist/crypto/evp/e_aes.c
  vendor-crypto/openssl/dist/crypto/evp/e_camellia.c
  vendor-crypto/openssl/dist/crypto/evp/evp_enc.c
  vendor-crypto/openssl/dist/crypto/evp/evp_locl.h
  vendor-crypto/openssl/dist/crypto/evp/evp_pbe.c
  vendor-crypto/openssl/dist/crypto/evp/evp_test.c
  vendor-crypto/openssl/dist/crypto/evp/openbsd_hw.c
  vendor-crypto/openssl/dist/crypto/evp/p5_crpt2.c
  vendor-crypto/openssl/dist/crypto/hmac/hmac.c
  vendor-crypto/openssl/dist/crypto/jpake/jpake.c
  vendor-crypto/openssl/dist/crypto/md2/md2_dgst.c
  vendor-crypto/openssl/dist/crypto/md4/md4.c
  vendor-crypto/openssl/dist/crypto/mem_dbg.c
  vendor-crypto/openssl/dist/crypto/o_init.c
  vendor-crypto/openssl/dist/crypto/o_time.c
  vendor-crypto/openssl/dist/crypto/objects/o_names.c
  vendor-crypto/openssl/dist/crypto/objects/obj_dat.c
  vendor-crypto/openssl/dist/crypto/opensslv.h
  vendor-crypto/openssl/dist/crypto/pem/pem_info.c
  vendor-crypto/openssl/dist/crypto/pem/pem_lib.c
  vendor-crypto/openssl/dist/crypto/pkcs7/pk7_doit.c
  vendor-crypto/openssl/dist/crypto/rand/md_rand.c
  vendor-crypto/openssl/dist/crypto/rand/rand_egd.c
  vendor-crypto/openssl/dist/crypto/rand/rand_unix.c
  vendor-crypto/openssl/dist/crypto/rsa/rsa_crpt.c
  vendor-crypto/openssl/dist/crypto/rsa/rsa_gen.c
  vendor-crypto/openssl/dist/crypto/rsa/rsa_pss.c
  vendor-crypto/openssl/dist/crypto/rsa/rsa_test.c
  vendor-crypto/openssl/dist/crypto/srp/srp_grps.h
  vendor-crypto/openssl/dist/crypto/threads/mttest.c
  vendor-crypto/openssl/dist/crypto/ts/Makefile
  vendor-crypto/openssl/dist/crypto/ts/ts_rsp_sign.c
  vendor-crypto/openssl/dist/crypto/ui/ui_openssl.c
  vendor-crypto/openssl/dist/crypto/x509/x509_txt.c
  vendor-crypto/openssl/dist/crypto/x509/x509_v3.c
  vendor-crypto/openssl/dist/crypto/x509/x509_vpm.c
  vendor-crypto/openssl/dist/crypto/x509v3/v3_alt.c
  vendor-crypto/openssl/dist/crypto/x509v3/v3_conf.c
  vendor-crypto/openssl/dist/crypto/x509v3/v3_info.c
  vendor-crypto/openssl/dist/doc/apps/ca.pod
  vendor-crypto/openssl/dist/doc/apps/ecparam.pod
  vendor-crypto/openssl/dist/doc/apps/s_client.pod
  vendor-crypto/openssl/dist/doc/apps/verify.pod
  vendor-crypto/openssl/dist/doc/apps/x509.pod
  vendor-crypto/openssl/dist/doc/crypto/ASN1_STRING_length.pod
  vendor-crypto/openssl/dist/doc/crypto/BIO_s_mem.pod
  vendor-crypto/openssl/dist/doc/crypto/BN_zero.pod
  vendor-crypto/openssl/dist/doc/crypto/EVP_EncryptInit.pod
  vendor-crypto/openssl/dist/doc/crypto/X509_VERIFY_PARAM_set_flags.pod
  vendor-crypto/openssl/dist/doc/crypto/threads.pod
  vendor-crypto/openssl/dist/engines/ccgost/README.gost
  vendor-crypto/openssl/dist/engines/ccgost/gost_eng.c
  vendor-crypto/openssl/dist/engines/e_atalla.c
  vendor-crypto/openssl/dist/ssl/Makefile
  vendor-crypto/openssl/dist/ssl/bad_dtls_test.c
  vendor-crypto/openssl/dist/ssl/d1_lib.c
  vendor-crypto/openssl/dist/ssl/d1_pkt.c
  vendor-crypto/openssl/dist/ssl/fatalerrtest.c
  vendor-crypto/openssl/dist/ssl/kssl.c
  vendor-crypto/openssl/dist/ssl/s23_srvr.c
  vendor-crypto/openssl/dist/ssl/s2_clnt.c
  vendor-crypto/openssl/dist/ssl/s2_enc.c
  vendor-crypto/openssl/dist/ssl/s2_lib.c
  vendor-crypto/openssl/dist/ssl/s2_srvr.c
  vendor-crypto/openssl/dist/ssl/s3_clnt.c
  vendor-crypto/openssl/dist/ssl/s3_lib.c
  vendor-crypto/openssl/dist/ssl/s3_pkt.c
  vendor-crypto/openssl/dist/ssl/s3_srvr.c
  vendor-crypto/openssl/dist/ssl/ssl_cert.c
  vendor-crypto/openssl/dist/ssl/ssl_lib.c
  vendor-crypto/openssl/dist/ssl/ssl_sess.c
  vendor-crypto/openssl/dist/ssl/ssltest.c
  vendor-crypto/openssl/dist/ssl/t1_enc.c
  vendor-crypto/openssl/dist/ssl/t1_lib.c
  vendor-crypto/openssl/dist/ssl/t1_trce.c

Modified: vendor-crypto/openssl/dist/CHANGES
==============================================================================
--- vendor-crypto/openssl/dist/CHANGES	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/CHANGES	Tue Mar 27 17:03:01 2018	(r331625)
@@ -7,6 +7,21 @@
  https://github.com/openssl/openssl/commits/ and pick the appropriate
  release branch.
 
+ Changes between 1.0.2n and 1.0.2o [27 Mar 2018]
+
+  *) Constructed ASN.1 types with a recursive definition could exceed the stack
+
+     Constructed ASN.1 types with a recursive definition (such as can be found
+     in PKCS7) could eventually exceed the stack given malicious input with
+     excessive recursion. This could result in a Denial Of Service attack. There
+     are no such structures used within SSL/TLS that come from untrusted sources
+     so this is considered safe.
+
+     This issue was reported to OpenSSL on 4th January 2018 by the OSS-fuzz
+     project.
+     (CVE-2018-0739)
+     [Matt Caswell]
+
  Changes between 1.0.2m and 1.0.2n [7 Dec 2017]
 
   *) Read/write after SSL object in error state
@@ -2012,8 +2027,11 @@
      to work with OPENSSL_NO_SSL_INTERN defined.
      [Steve Henson]
 
-  *) Add SRP support.
-     [Tom Wu  and Ben Laurie]
+  *) A long standing patch to add support for SRP from EdelWeb (Peter
+     Sylvester and Christophe Renou) was integrated.
+     [Christophe Renou , Peter Sylvester
+     , Tom Wu , and
+     Ben Laurie]
 
   *) Add functions to copy EVP_PKEY_METHOD and retrieve flags and id.
      [Steve Henson]

Modified: vendor-crypto/openssl/dist/Configure
==============================================================================
--- vendor-crypto/openssl/dist/Configure	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/Configure	Tue Mar 27 17:03:01 2018	(r331625)
@@ -354,7 +354,7 @@ my %table=(
 "hpux-gcc",	"gcc:-DB_ENDIAN -DBN_DIV2W -O3::(unknown)::-Wl,+s -ldld:DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
 #### HP MPE/iX http://jazz.external.hp.com/src/openssl/
-"MPE/iX-gcc",	"gcc:-D_ENDIAN -DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):MPE:-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
+"MPE/iX-gcc",	"gcc:-DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):MPE:-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
 
 # DEC Alpha OSF/1/Tru64 targets.
 #
@@ -1269,7 +1269,7 @@ my ($prelflags,$postlflags)=split('%',$lflags);
 if (defined($postlflags))	{ $lflags=$postlflags;	}
 else				{ $lflags=$prelflags; undef $prelflags;	}
 
-if ($target =~ /^mingw/ && `$cc --target-help 2>&1` !~ m/\-mno\-cygwin/m)
+if ($target =~ /^mingw/ && `$cross_compile_prefix$cc --target-help 2>&1` !~ m/\-mno\-cygwin/m)
 	{
 	$cflags =~ s/\-mno\-cygwin\s*//;
 	$shared_ldflag =~ s/\-mno\-cygwin\s*//;
@@ -1661,18 +1661,25 @@ if ($shlib_version_number =~ /(^[0-9]*)\.([0-9\.]*)/)
 	$shlib_minor=$2;
 	}
 
-my $ecc = $cc;
-$ecc = "clang" if `$cc --version 2>&1` =~ /clang/;
+my %predefined;
 
+# collect compiler pre-defines from gcc or gcc-alike...
+open(PIPE, "$cross_compile_prefix$cc -dM -E -x c /dev/null 2>&1 |");
+while () {
+  m/^#define\s+(\w+(?:\(\w+\))?)(?:\s+(.+))?/ or last;
+  $predefined{$1} = defined($2) ? $2 : "";
+}
+close(PIPE);
+
 if ($strict_warnings)
 	{
 	my $wopt;
-	die "ERROR --strict-warnings requires gcc or clang" unless ($ecc =~ /gcc$/ or $ecc =~ /clang$/);
+	die "ERROR --strict-warnings requires gcc or clang" unless defined($predefined{__GNUC__});
 	foreach $wopt (split /\s+/, $gcc_devteam_warn)
 		{
 		$cflags .= " $wopt" unless ($cflags =~ /(^|\s)$wopt(\s|$)/)
 		}
-	if ($ecc eq "clang")
+	if (defined($predefined{__clang__}))
 		{
 		foreach $wopt (split /\s+/, $clang_devteam_warn)
 			{
@@ -1723,15 +1730,14 @@ while ()
 		s/^NM=\s*/NM= \$\(CROSS_COMPILE\)/;
 		s/^RANLIB=\s*/RANLIB= \$\(CROSS_COMPILE\)/;
 		s/^RC=\s*/RC= \$\(CROSS_COMPILE\)/;
-		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= \$\(CROSS_COMPILE\)$cc/ if $cc eq "gcc";
+		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= \$\(CROSS_COMPILE\)$cc/ if $predefined{__GNUC__} >= 3;
 		}
 	else	{
 		s/^CC=.*$/CC= $cc/;
 		s/^AR=\s*ar/AR= $ar/;
 		s/^RANLIB=.*/RANLIB= $ranlib/;
 		s/^RC=.*/RC= $windres/;
-		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc";
-		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $ecc eq "gcc" || $ecc eq "clang";
+		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $predefined{__GNUC__} >= 3;
 		}
 	s/^CFLAG=.*$/CFLAG= $cflags/;
 	s/^DEPFLAG=.*$/DEPFLAG=$depflags/;

Modified: vendor-crypto/openssl/dist/FREEBSD-upgrade
==============================================================================
--- vendor-crypto/openssl/dist/FREEBSD-upgrade	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/FREEBSD-upgrade	Tue Mar 27 17:03:01 2018	(r331625)
@@ -11,8 +11,8 @@ First, read http://wiki.freebsd.org/SubversionPrimer/V
 # Xlist
 setenv XLIST /FreeBSD/work/openssl/svn-FREEBSD-files/FREEBSD-Xlist
 setenv FSVN "svn+ssh://repo.freebsd.org/base"
-setenv OSSLVER 1.0.2n
-# OSSLTAG format: v1_0_2n
+setenv OSSLVER 1.0.2o
+# OSSLTAG format: v1_0_2o
 
 ###setenv OSSLTAG v`echo ${OSSLVER} | tr . _`
 

Modified: vendor-crypto/openssl/dist/LICENSE
==============================================================================
--- vendor-crypto/openssl/dist/LICENSE	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/LICENSE	Tue Mar 27 17:03:01 2018	(r331625)
@@ -12,7 +12,7 @@
   ---------------
 
 /* ====================================================================
- * Copyright (c) 1998-2017 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions

Modified: vendor-crypto/openssl/dist/Makefile
==============================================================================
--- vendor-crypto/openssl/dist/Makefile	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/Makefile	Tue Mar 27 17:03:01 2018	(r331625)
@@ -4,7 +4,7 @@
 ## Makefile for OpenSSL
 ##
 
-VERSION=1.0.2n
+VERSION=1.0.2o
 MAJOR=1
 MINOR=0.2
 SHLIB_VERSION_NUMBER=1.0.0
@@ -73,7 +73,7 @@ NM= nm
 PERL= /usr/bin/perl
 TAR= tar
 TARFLAGS= --no-recursion
-MAKEDEPPROG=makedepend
+MAKEDEPPROG= cc
 LIBDIR=lib
 
 # We let the C compiler driver to take care of .s files. This is done in

Modified: vendor-crypto/openssl/dist/NEWS
==============================================================================
--- vendor-crypto/openssl/dist/NEWS	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/NEWS	Tue Mar 27 17:03:01 2018	(r331625)
@@ -5,6 +5,11 @@
   This file gives a brief overview of the major changes between each OpenSSL
   release. For more details please read the CHANGES file.
 
+  Major changes between OpenSSL 1.0.2n and OpenSSL 1.0.2o [27 Mar 2018]
+
+      o Constructed ASN.1 types with a recursive definition could exceed the
+        stack (CVE-2018-0739)
+
   Major changes between OpenSSL 1.0.2m and OpenSSL 1.0.2n [7 Dec 2017]
 
       o Read/write after SSL object in error state (CVE-2017-3737)

Modified: vendor-crypto/openssl/dist/README
==============================================================================
--- vendor-crypto/openssl/dist/README	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/README	Tue Mar 27 17:03:01 2018	(r331625)
@@ -1,5 +1,5 @@
 
- OpenSSL 1.0.2n 7 Dec 2017
+ OpenSSL 1.0.2o 27 Mar 2018
 
  Copyright (c) 1998-2015 The OpenSSL Project
  Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson

Modified: vendor-crypto/openssl/dist/apps/app_rand.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/app_rand.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/app_rand.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -128,7 +128,7 @@ int app_RAND_load_file(const char *file, BIO *bio_e, i
 #endif
 
     if (file == NULL)
-        file = RAND_file_name(buffer, sizeof buffer);
+        file = RAND_file_name(buffer, sizeof(buffer));
     else if (RAND_egd(file) > 0) {
         /*
          * we try if the given filename is an EGD socket. if it is, we don't
@@ -203,7 +203,7 @@ int app_RAND_write_file(const char *file, BIO *bio_e)
         return 0;
 
     if (file == NULL)
-        file = RAND_file_name(buffer, sizeof buffer);
+        file = RAND_file_name(buffer, sizeof(buffer));
     if (file == NULL || !RAND_write_file(file)) {
         BIO_printf(bio_e, "unable to write 'random state'\n");
         return 0;

Modified: vendor-crypto/openssl/dist/apps/apps.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/apps.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/apps.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -1738,9 +1738,9 @@ int save_serial(char *serialfile, char *suffix, BIGNUM
         BUF_strlcpy(buf[0], serialfile, BSIZE);
     else {
 #ifndef OPENSSL_SYS_VMS
-        j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", serialfile, suffix);
+        j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", serialfile, suffix);
 #else
-        j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", serialfile, suffix);
+        j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", serialfile, suffix);
 #endif
     }
 #ifdef RL_DEBUG
@@ -1789,14 +1789,14 @@ int rotate_serial(char *serialfile, char *new_suffix, 
         goto err;
     }
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", serialfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", serialfile, new_suffix);
 #else
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", serialfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", serialfile, new_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s.%s", serialfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s.%s", serialfile, old_suffix);
 #else
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s-%s", serialfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s-%s", serialfile, old_suffix);
 #endif
 #ifdef RL_DEBUG
     BIO_printf(bio_err, "DEBUG: renaming \"%s\" to \"%s\"\n",
@@ -1877,9 +1877,9 @@ CA_DB *load_index(char *dbfile, DB_ATTR *db_attr)
         goto err;
 
 #ifndef OPENSSL_SYS_VMS
-    BIO_snprintf(buf[0], sizeof buf[0], "%s.attr", dbfile);
+    BIO_snprintf(buf[0], sizeof(buf[0]), "%s.attr", dbfile);
 #else
-    BIO_snprintf(buf[0], sizeof buf[0], "%s-attr", dbfile);
+    BIO_snprintf(buf[0], sizeof(buf[0]), "%s-attr", dbfile);
 #endif
     dbattr_conf = NCONF_new(NULL);
     if (NCONF_load(dbattr_conf, buf[0], &errorline) <= 0) {
@@ -1967,19 +1967,19 @@ int save_index(const char *dbfile, const char *suffix,
         goto err;
     }
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s.attr", dbfile);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s.attr", dbfile);
 #else
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s-attr", dbfile);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s-attr", dbfile);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s.attr.%s", dbfile, suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s.attr.%s", dbfile, suffix);
 #else
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s-attr-%s", dbfile, suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s-attr-%s", dbfile, suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", dbfile, suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", dbfile, suffix);
 #else
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", dbfile, suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", dbfile, suffix);
 #endif
 #ifdef RL_DEBUG
     BIO_printf(bio_err, "DEBUG: writing \"%s\"\n", buf[0]);
@@ -2028,29 +2028,29 @@ int rotate_index(const char *dbfile, const char *new_s
         goto err;
     }
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[4], sizeof buf[4], "%s.attr", dbfile);
+    j = BIO_snprintf(buf[4], sizeof(buf[4]), "%s.attr", dbfile);
 #else
-    j = BIO_snprintf(buf[4], sizeof buf[4], "%s-attr", dbfile);
+    j = BIO_snprintf(buf[4], sizeof(buf[4]), "%s-attr", dbfile);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s.attr.%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s.attr.%s", dbfile, new_suffix);
 #else
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s-attr-%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s-attr-%s", dbfile, new_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", dbfile, new_suffix);
 #else
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", dbfile, new_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s.%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s.%s", dbfile, old_suffix);
 #else
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s-%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s-%s", dbfile, old_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[3], sizeof buf[3], "%s.attr.%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[3], sizeof(buf[3]), "%s.attr.%s", dbfile, old_suffix);
 #else
-    j = BIO_snprintf(buf[3], sizeof buf[3], "%s-attr-%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[3], sizeof(buf[3]), "%s-attr-%s", dbfile, old_suffix);
 #endif
 #ifdef RL_DEBUG
     BIO_printf(bio_err, "DEBUG: renaming \"%s\" to \"%s\"\n", dbfile, buf[1]);
@@ -2604,7 +2604,7 @@ static void jpake_send_step3a(BIO *bconn, JPAKE_CTX *c
 
     JPAKE_STEP3A_init(&s3a);
     JPAKE_STEP3A_generate(&s3a, ctx);
-    BIO_write(bconn, s3a.hhk, sizeof s3a.hhk);
+    BIO_write(bconn, s3a.hhk, sizeof(s3a.hhk));
     (void)BIO_flush(bconn);
     JPAKE_STEP3A_release(&s3a);
 }
@@ -2615,7 +2615,7 @@ static void jpake_send_step3b(BIO *bconn, JPAKE_CTX *c
 
     JPAKE_STEP3B_init(&s3b);
     JPAKE_STEP3B_generate(&s3b, ctx);
-    BIO_write(bconn, s3b.hk, sizeof s3b.hk);
+    BIO_write(bconn, s3b.hk, sizeof(s3b.hk));
     (void)BIO_flush(bconn);
     JPAKE_STEP3B_release(&s3b);
 }
@@ -2625,7 +2625,7 @@ static void readbn(BIGNUM **bn, BIO *bconn)
     char buf[10240];
     int l;
 
-    l = BIO_gets(bconn, buf, sizeof buf);
+    l = BIO_gets(bconn, buf, sizeof(buf));
     assert(l > 0);
     assert(buf[l - 1] == '\n');
     buf[l - 1] = '\0';
@@ -2672,8 +2672,8 @@ static void jpake_receive_step3a(JPAKE_CTX *ctx, BIO *
     int l;
 
     JPAKE_STEP3A_init(&s3a);
-    l = BIO_read(bconn, s3a.hhk, sizeof s3a.hhk);
-    assert(l == sizeof s3a.hhk);
+    l = BIO_read(bconn, s3a.hhk, sizeof(s3a.hhk));
+    assert(l == sizeof(s3a.hhk));
     if (!JPAKE_STEP3A_process(ctx, &s3a)) {
         ERR_print_errors(bio_err);
         exit(1);
@@ -2687,8 +2687,8 @@ static void jpake_receive_step3b(JPAKE_CTX *ctx, BIO *
     int l;
 
     JPAKE_STEP3B_init(&s3b);
-    l = BIO_read(bconn, s3b.hk, sizeof s3b.hk);
-    assert(l == sizeof s3b.hk);
+    l = BIO_read(bconn, s3b.hk, sizeof(s3b.hk));
+    assert(l == sizeof(s3b.hk));
     if (!JPAKE_STEP3B_process(ctx, &s3b)) {
         ERR_print_errors(bio_err);
         exit(1);

Modified: vendor-crypto/openssl/dist/apps/ca.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/ca.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/ca.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -1628,8 +1628,7 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
                    CONF *lconf, unsigned long certopt, unsigned long nameopt,
                    int default_op, int ext_copy, int selfsign)
 {
-    X509_NAME *name = NULL, *CAname = NULL, *subject = NULL, *dn_subject =
-        NULL;
+    X509_NAME *name = NULL, *CAname = NULL, *subject = NULL;
     ASN1_UTCTIME *tm, *tmptm;
     ASN1_STRING *str, *str2;
     ASN1_OBJECT *obj;
@@ -1817,8 +1816,6 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
 
             if (push != NULL) {
                 if (!X509_NAME_add_entry(subject, push, -1, 0)) {
-                    if (push != NULL)
-                        X509_NAME_ENTRY_free(push);
                     BIO_printf(bio_err, "Memory allocation failure\n");
                     goto err;
                 }
@@ -1836,104 +1833,6 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
             goto err;
     }
 
-    if (verbose)
-        BIO_printf(bio_err,
-                   "The subject name appears to be ok, checking data base for clashes\n");
-
-    /* Build the correct Subject if no e-mail is wanted in the subject */
-    /*
-     * and add it later on because of the method extensions are added
-     * (altName)
-     */
-
-    if (email_dn)
-        dn_subject = subject;
-    else {
-        X509_NAME_ENTRY *tmpne;
-        /*
-         * Its best to dup the subject DN and then delete any email addresses
-         * because this retains its structure.
-         */
-        if (!(dn_subject = X509_NAME_dup(subject))) {
-            BIO_printf(bio_err, "Memory allocation failure\n");
-            goto err;
-        }
-        while ((i = X509_NAME_get_index_by_NID(dn_subject,
-                                               NID_pkcs9_emailAddress,
-                                               -1)) >= 0) {
-            tmpne = X509_NAME_get_entry(dn_subject, i);
-            X509_NAME_delete_entry(dn_subject, i);
-            X509_NAME_ENTRY_free(tmpne);
-        }
-    }
-
-    if (BN_is_zero(serial))
-        row[DB_serial] = BUF_strdup("00");
-    else
-        row[DB_serial] = BN_bn2hex(serial);
-    if (row[DB_serial] == NULL) {
-        BIO_printf(bio_err, "Memory allocation failure\n");
-        goto err;
-    }
-
-    if (db->attributes.unique_subject) {
-        OPENSSL_STRING *crow = row;
-
-        rrow = TXT_DB_get_by_index(db->db, DB_name, crow);
-        if (rrow != NULL) {
-            BIO_printf(bio_err,
-                       "ERROR:There is already a certificate for %s\n",
-                       row[DB_name]);
-        }
-    }
-    if (rrow == NULL) {
-        rrow = TXT_DB_get_by_index(db->db, DB_serial, row);
-        if (rrow != NULL) {
-            BIO_printf(bio_err,
-                       "ERROR:Serial number %s has already been issued,\n",
-                       row[DB_serial]);
-            BIO_printf(bio_err,
-                       "      check the database/serial_file for corruption\n");
-        }
-    }
-
-    if (rrow != NULL) {
-        BIO_printf(bio_err, "The matching entry has the following details\n");
-        if (rrow[DB_type][0] == 'E')
-            p = "Expired";
-        else if (rrow[DB_type][0] == 'R')
-            p = "Revoked";
-        else if (rrow[DB_type][0] == 'V')
-            p = "Valid";
-        else
-            p = "\ninvalid type, Data base error\n";
-        BIO_printf(bio_err, "Type          :%s\n", p);;
-        if (rrow[DB_type][0] == 'R') {
-            p = rrow[DB_exp_date];
-            if (p == NULL)
-                p = "undef";
-            BIO_printf(bio_err, "Was revoked on:%s\n", p);
-        }
-        p = rrow[DB_exp_date];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "Expires on    :%s\n", p);
-        p = rrow[DB_serial];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "Serial Number :%s\n", p);
-        p = rrow[DB_file];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "File name     :%s\n", p);
-        p = rrow[DB_name];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "Subject Name  :%s\n", p);
-        ok = -1;                /* This is now a 'bad' error. */
-        goto err;
-    }
-
     /* We are now totally happy, lets make and sign the certificate */
     if (verbose)
         BIO_printf(bio_err,
@@ -2056,12 +1955,126 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
                 goto err;
     }
 
-    /* Set the right value for the noemailDN option */
-    if (email_dn == 0) {
-        if (!X509_set_subject_name(ret, dn_subject))
+    if (verbose)
+        BIO_printf(bio_err,
+                   "The subject name appears to be ok, checking data base for clashes\n");
+
+    /* Build the correct Subject if no e-mail is wanted in the subject */
+
+    if (!email_dn) {
+        X509_NAME_ENTRY *tmpne;
+        X509_NAME *dn_subject;
+
+        /*
+         * Its best to dup the subject DN and then delete any email addresses
+         * because this retains its structure.
+         */
+        if (!(dn_subject = X509_NAME_dup(subject))) {
+            BIO_printf(bio_err, "Memory allocation failure\n");
             goto err;
+        }
+        while ((i = X509_NAME_get_index_by_NID(dn_subject,
+                                               NID_pkcs9_emailAddress,
+                                               -1)) >= 0) {
+            tmpne = X509_NAME_get_entry(dn_subject, i);
+            X509_NAME_delete_entry(dn_subject, i);
+            X509_NAME_ENTRY_free(tmpne);
+        }
+
+        if (!X509_set_subject_name(ret, dn_subject)) {
+            X509_NAME_free(dn_subject);
+            goto err;
+        }
+        X509_NAME_free(dn_subject);
     }
 
+    row[DB_name] = X509_NAME_oneline(X509_get_subject_name(ret), NULL, 0);
+    if (row[DB_name] == NULL) {
+        BIO_printf(bio_err, "Memory allocation failure\n");
+        goto err;
+    }
+
+    if (BN_is_zero(serial))
+        row[DB_serial] = BUF_strdup("00");
+    else
+        row[DB_serial] = BN_bn2hex(serial);
+    if (row[DB_serial] == NULL) {
+        BIO_printf(bio_err, "Memory allocation failure\n");
+        goto err;
+    }
+
+    if (row[DB_name][0] == '\0') {
+        /*
+         * An empty subject! We'll use the serial number instead. If
+         * unique_subject is in use then we don't want different entries with
+         * empty subjects matching each other.
+         */
+        OPENSSL_free(row[DB_name]);
+        row[DB_name] = OPENSSL_strdup(row[DB_serial]);
+        if (row[DB_name] == NULL) {
+            BIO_printf(bio_err, "Memory allocation failure\n");
+            goto err;
+        }
+    }
+
+    if (db->attributes.unique_subject) {
+        OPENSSL_STRING *crow = row;
+
+        rrow = TXT_DB_get_by_index(db->db, DB_name, crow);
+        if (rrow != NULL) {
+            BIO_printf(bio_err,
+                       "ERROR:There is already a certificate for %s\n",
+                       row[DB_name]);
+        }
+    }
+    if (rrow == NULL) {
+        rrow = TXT_DB_get_by_index(db->db, DB_serial, row);
+        if (rrow != NULL) {
+            BIO_printf(bio_err,
+                       "ERROR:Serial number %s has already been issued,\n",
+                       row[DB_serial]);
+            BIO_printf(bio_err,
+                       "      check the database/serial_file for corruption\n");
+        }
+    }
+
+    if (rrow != NULL) {
+        BIO_printf(bio_err, "The matching entry has the following details\n");
+        if (rrow[DB_type][0] == 'E')
+            p = "Expired";
+        else if (rrow[DB_type][0] == 'R')
+            p = "Revoked";
+        else if (rrow[DB_type][0] == 'V')
+            p = "Valid";
+        else
+            p = "\ninvalid type, Data base error\n";
+        BIO_printf(bio_err, "Type          :%s\n", p);;
+        if (rrow[DB_type][0] == 'R') {
+            p = rrow[DB_exp_date];
+            if (p == NULL)
+                p = "undef";
+            BIO_printf(bio_err, "Was revoked on:%s\n", p);
+        }
+        p = rrow[DB_exp_date];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "Expires on    :%s\n", p);
+        p = rrow[DB_serial];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "Serial Number :%s\n", p);
+        p = rrow[DB_file];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "File name     :%s\n", p);
+        p = rrow[DB_name];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "Subject Name  :%s\n", p);
+        ok = -1;                /* This is now a 'bad' error. */
+        goto err;
+    }
+
     if (!default_op) {
         BIO_printf(bio_err, "Certificate Details:\n");
         /*
@@ -2110,10 +2123,9 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
     row[DB_exp_date] = OPENSSL_malloc(tm->length + 1);
     row[DB_rev_date] = OPENSSL_malloc(1);
     row[DB_file] = OPENSSL_malloc(8);
-    row[DB_name] = X509_NAME_oneline(X509_get_subject_name(ret), NULL, 0);
     if ((row[DB_type] == NULL) || (row[DB_exp_date] == NULL) ||
         (row[DB_rev_date] == NULL) ||
-        (row[DB_file] == NULL) || (row[DB_name] == NULL)) {
+        (row[DB_file] == NULL)) {
         BIO_printf(bio_err, "Memory allocation failure\n");
         goto err;
     }
@@ -2143,18 +2155,16 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
     irow = NULL;
     ok = 1;
  err:
-    if (irow != NULL) {
+    if (ok != 1) {
         for (i = 0; i < DB_NUMBER; i++)
             OPENSSL_free(row[i]);
-        OPENSSL_free(irow);
     }
+    OPENSSL_free(irow);
 
     if (CAname != NULL)
         X509_NAME_free(CAname);
     if (subject != NULL)
         X509_NAME_free(subject);
-    if ((dn_subject != NULL) && !email_dn)
-        X509_NAME_free(dn_subject);
     if (tmptm != NULL)
         ASN1_UTCTIME_free(tmptm);
     if (ok <= 0) {
@@ -2357,6 +2367,11 @@ static int do_revoke(X509 *x509, CA_DB *db, int type, 
     else
         row[DB_serial] = BN_bn2hex(bn);
     BN_free(bn);
+    if (row[DB_name] != NULL && row[DB_name][0] == '\0') {
+        /* Entries with empty Subjects actually use the serial number instead */
+        OPENSSL_free(row[DB_name]);
+        row[DB_name] = OPENSSL_strdup(row[DB_serial]);
+    }
     if ((row[DB_name] == NULL) || (row[DB_serial] == NULL)) {
         BIO_printf(bio_err, "Memory allocation failure\n");
         goto err;

Modified: vendor-crypto/openssl/dist/apps/ciphers.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/ciphers.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/ciphers.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -217,7 +217,7 @@ int MAIN(int argc, char **argv)
                 BIO_printf(STDout, "%s - ", nm);
             }
 #endif
-            BIO_puts(STDout, SSL_CIPHER_description(c, buf, sizeof buf));
+            BIO_puts(STDout, SSL_CIPHER_description(c, buf, sizeof(buf)));
         }
     }
 

Modified: vendor-crypto/openssl/dist/apps/cms.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/cms.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/cms.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -4,7 +4,7 @@
  * project.
  */
 /* ====================================================================
- * Copyright (c) 2008 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 2008-2018 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -977,12 +977,16 @@ int MAIN(int argc, char **argv)
 
             signer = load_cert(bio_err, signerfile, FORMAT_PEM, NULL,
                                e, "signer certificate");
-            if (!signer)
+            if (!signer) {
+                ret = 2;
                 goto end;
+            }
             key = load_key(bio_err, keyfile, keyform, 0, passin, e,
                            "signing key file");
-            if (!key)
+            if (!key) {
+                ret = 2;
                 goto end;
+            }
             for (kparam = key_first; kparam; kparam = kparam->next) {
                 if (kparam->idx == i) {
                     tflags |= CMS_KEY_PARAM;

Modified: vendor-crypto/openssl/dist/apps/dgst.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/dgst.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/dgst.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -145,7 +145,7 @@ int MAIN(int argc, char **argv)
         goto end;
 
     /* first check the program name */
-    program_name(argv[0], pname, sizeof pname);
+    program_name(argv[0], pname, sizeof(pname));
 
     md = EVP_get_digestbyname(pname);
 

Modified: vendor-crypto/openssl/dist/apps/dsaparam.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/dsaparam.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/dsaparam.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -382,6 +382,9 @@ int MAIN(int argc, char **argv)
         printf("\treturn(dsa);\n\t}\n");
     }
 
+    if (outformat == FORMAT_ASN1 && genkey)
+        noout = 1;
+
     if (!noout) {
         if (outformat == FORMAT_ASN1)
             i = i2d_DSAparams_bio(out, dsa);

Modified: vendor-crypto/openssl/dist/apps/ecparam.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/ecparam.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/ecparam.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -3,7 +3,7 @@
  * Written by Nils Larsch for the OpenSSL project.
  */
 /* ====================================================================
- * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -546,6 +546,9 @@ int MAIN(int argc, char **argv)
         BIO_printf(out, "\treturn(group);\n\t}\n");
     }
 
+    if (outformat == FORMAT_ASN1 && genkey)
+        noout = 1;
+
     if (!noout) {
         if (outformat == FORMAT_ASN1)
             i = i2d_ECPKParameters_bio(out, group);
@@ -581,6 +584,9 @@ int MAIN(int argc, char **argv)
 
         if (EC_KEY_set_group(eckey, group) == 0)
             goto end;
+
+        if (new_form)
+            EC_KEY_set_conv_form(eckey, form);
 
         if (!EC_KEY_generate_key(eckey)) {
             EC_KEY_free(eckey);

Modified: vendor-crypto/openssl/dist/apps/enc.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/enc.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/enc.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -114,7 +114,7 @@ int MAIN(int, char **);
 int MAIN(int argc, char **argv)
 {
     static const char magic[] = "Salted__";
-    char mbuf[sizeof magic - 1];
+    char mbuf[sizeof(magic) - 1];
     char *strbuf = NULL;
     unsigned char *buff = NULL, *bufsize = NULL;
     int bsize = BSIZE, verbose = 0;
@@ -154,7 +154,7 @@ int MAIN(int argc, char **argv)
         goto end;
 
     /* first check the program name */
-    program_name(argv[0], pname, sizeof pname);
+    program_name(argv[0], pname, sizeof(pname));
     if (strcmp(pname, "base64") == 0)
         base64 = 1;
 #ifdef ZLIB
@@ -247,7 +247,7 @@ int MAIN(int argc, char **argv)
                 goto bad;
             }
             buf[0] = '\0';
-            if (!fgets(buf, sizeof buf, infile)) {
+            if (!fgets(buf, sizeof(buf), infile)) {
                 BIO_printf(bio_err, "unable to read key from '%s'\n", file);
                 goto bad;
             }
@@ -432,7 +432,7 @@ int MAIN(int argc, char **argv)
         for (;;) {
             char buf[200];
 
-            BIO_snprintf(buf, sizeof buf, "enter %s %s password:",
+            BIO_snprintf(buf, sizeof(buf), "enter %s %s password:",
                          OBJ_nid2ln(EVP_CIPHER_nid(cipher)),
                          (enc) ? "encryption" : "decryption");
             strbuf[0] = '\0';
@@ -517,31 +517,31 @@ int MAIN(int argc, char **argv)
             else {
                 if (enc) {
                     if (hsalt) {
-                        if (!set_hex(hsalt, salt, sizeof salt)) {
+                        if (!set_hex(hsalt, salt, sizeof(salt))) {
                             BIO_printf(bio_err, "invalid hex salt value\n");
                             goto end;
                         }
-                    } else if (RAND_bytes(salt, sizeof salt) <= 0)
+                    } else if (RAND_bytes(salt, sizeof(salt)) <= 0)
                         goto end;
                     /*
                      * If -P option then don't bother writing
                      */
                     if ((printkey != 2)
                         && (BIO_write(wbio, magic,
-                                      sizeof magic - 1) != sizeof magic - 1
+                                      sizeof(magic) - 1) != sizeof(magic) - 1
                             || BIO_write(wbio,
                                          (char *)salt,
-                                         sizeof salt) != sizeof salt)) {
+                                         sizeof(salt)) != sizeof(salt))) {
                         BIO_printf(bio_err, "error writing output file\n");
                         goto end;
                     }
-                } else if (BIO_read(rbio, mbuf, sizeof mbuf) != sizeof mbuf
+                } else if (BIO_read(rbio, mbuf, sizeof(mbuf)) != sizeof(mbuf)
                            || BIO_read(rbio,
                                        (unsigned char *)salt,
-                                       sizeof salt) != sizeof salt) {
+                                       sizeof(salt)) != sizeof(salt)) {
                     BIO_printf(bio_err, "error reading input file\n");
                     goto end;
-                } else if (memcmp(mbuf, magic, sizeof magic - 1)) {
+                } else if (memcmp(mbuf, magic, sizeof(magic) - 1)) {
                     BIO_printf(bio_err, "bad magic number\n");
                     goto end;
                 }
@@ -564,7 +564,7 @@ int MAIN(int argc, char **argv)
             int siz = EVP_CIPHER_iv_length(cipher);
             if (siz == 0) {
                 BIO_printf(bio_err, "warning: iv not use by this cipher\n");
-            } else if (!set_hex(hiv, iv, sizeof iv)) {
+            } else if (!set_hex(hiv, iv, sizeof(iv))) {
                 BIO_printf(bio_err, "invalid hex iv value\n");
                 goto end;
             }

Modified: vendor-crypto/openssl/dist/apps/errstr.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/errstr.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/errstr.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -108,7 +108,7 @@ int MAIN(int argc, char **argv)
 
     for (i = 1; i < argc; i++) {
         if (sscanf(argv[i], "%lx", &l)) {
-            ERR_error_string_n(l, buf, sizeof buf);
+            ERR_error_string_n(l, buf, sizeof(buf));
             printf("%s\n", buf);
         } else {
             printf("%s: bad error code\n", argv[i]);

Modified: vendor-crypto/openssl/dist/apps/ocsp.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/ocsp.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/ocsp.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -1195,7 +1195,7 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcb
     *pcbio = cbio;
 
     for (;;) {
-        len = BIO_gets(cbio, inbuf, sizeof inbuf);
+        len = BIO_gets(cbio, inbuf, sizeof(inbuf));
         if (len <= 0)
             return 1;
         /* Look for "POST" signalling start of query */

Modified: vendor-crypto/openssl/dist/apps/openssl.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/openssl.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/openssl.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -351,7 +351,7 @@ int main(int Argc, char *ARGV[])
     prog = prog_init();
 
     /* first check the program name */
-    program_name(Argv[0], pname, sizeof pname);
+    program_name(Argv[0], pname, sizeof(pname));
 
     f.name = pname;
     fp = lh_FUNCTION_retrieve(prog, &f);
@@ -379,7 +379,7 @@ int main(int Argc, char *ARGV[])
     for (;;) {
         ret = 0;
         p = buf;
-        n = sizeof buf;
+        n = sizeof(buf);
         i = 0;
         for (;;) {
             p[0] = '\0';
@@ -685,7 +685,7 @@ static LHASH_OF(FUNCTION) *prog_init(void)
 
     /* Purely so it looks nice when the user hits ? */
     for (i = 0, f = functions; f->name != NULL; ++f, ++i) ;
-    qsort(functions, i, sizeof *functions, SortFnByName);
+    qsort(functions, i, sizeof(*functions), SortFnByName);
 
     if ((ret = lh_FUNCTION_new()) == NULL)
         return (NULL);

Modified: vendor-crypto/openssl/dist/apps/passwd.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/passwd.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/passwd.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -252,7 +252,7 @@ int MAIN(int argc, char **argv)
                     /* ignore rest of line */
                     char trash[BUFSIZ];
                     do
-                        r = BIO_gets(in, trash, sizeof trash);
+                        r = BIO_gets(in, trash, sizeof(trash));
                     while ((r > 0) && (!strchr(trash, '\n')));
                 }
 
@@ -329,8 +329,8 @@ static char *md5crypt(const char *passwd, const char *
     EVP_DigestUpdate(&md2, passwd, passwd_len);
     EVP_DigestFinal_ex(&md2, buf, NULL);
 
-    for (i = passwd_len; i > sizeof buf; i -= sizeof buf)
-        EVP_DigestUpdate(&md, buf, sizeof buf);
+    for (i = passwd_len; i > sizeof(buf); i -= sizeof(buf))
+        EVP_DigestUpdate(&md, buf, sizeof(buf));
     EVP_DigestUpdate(&md, buf, i);
 
     n = passwd_len;
@@ -343,13 +343,13 @@ static char *md5crypt(const char *passwd, const char *
     for (i = 0; i < 1000; i++) {
         EVP_DigestInit_ex(&md2, EVP_md5(), NULL);
         EVP_DigestUpdate(&md2, (i & 1) ? (unsigned const char *)passwd : buf,
-                         (i & 1) ? passwd_len : sizeof buf);
+                         (i & 1) ? passwd_len : sizeof(buf));
         if (i % 3)
             EVP_DigestUpdate(&md2, salt_out, salt_len);
         if (i % 7)
             EVP_DigestUpdate(&md2, passwd, passwd_len);
         EVP_DigestUpdate(&md2, (i & 1) ? buf : (unsigned const char *)passwd,
-                         (i & 1) ? sizeof buf : passwd_len);
+                         (i & 1) ? sizeof(buf) : passwd_len);
         EVP_DigestFinal_ex(&md2, buf, NULL);
     }
     EVP_MD_CTX_cleanup(&md2);
@@ -357,7 +357,7 @@ static char *md5crypt(const char *passwd, const char *
     {
         /* transform buf into output string */
 
-        unsigned char buf_perm[sizeof buf];
+        unsigned char buf_perm[sizeof(buf)];
         int dest, source;
         char *output;
 
@@ -369,7 +369,7 @@ static char *md5crypt(const char *passwd, const char *
         buf_perm[15] = buf[11];
 #  ifndef PEDANTIC              /* Unfortunately, this generates a "no
                                  * effect" warning */
-        assert(16 == sizeof buf_perm);
+        assert(16 == sizeof(buf_perm));
 #  endif
 
         output = salt_out + salt_len;

Modified: vendor-crypto/openssl/dist/apps/pkcs12.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/pkcs12.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/pkcs12.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -481,7 +481,7 @@ int MAIN(int argc, char **argv)
         CRYPTO_push_info("read MAC password");
 # endif
         if (EVP_read_pw_string
-            (macpass, sizeof macpass, "Enter MAC Password:", export_cert)) {
+            (macpass, sizeof(macpass), "Enter MAC Password:", export_cert)) {
             BIO_printf(bio_err, "Can't read Password\n");
             goto end;
         }
@@ -629,13 +629,13 @@ int MAIN(int argc, char **argv)
 # endif
 
         if (!noprompt &&
-            EVP_read_pw_string(pass, sizeof pass, "Enter Export Password:",
+            EVP_read_pw_string(pass, sizeof(pass), "Enter Export Password:",
                                1)) {
             BIO_printf(bio_err, "Can't read Password\n");
             goto export_end;
         }
         if (!twopass)
-            BUF_strlcpy(macpass, pass, sizeof macpass);
+            BUF_strlcpy(macpass, pass, sizeof(macpass));
 
 # ifdef CRYPTO_MDEBUG
         CRYPTO_pop_info();
@@ -698,7 +698,7 @@ int MAIN(int argc, char **argv)
     CRYPTO_push_info("read import password");
 # endif
     if (!noprompt
-        && EVP_read_pw_string(pass, sizeof pass, "Enter Import Password:",
+        && EVP_read_pw_string(pass, sizeof(pass), "Enter Import Password:",
                               0)) {
         BIO_printf(bio_err, "Can't read Password\n");
         goto end;
@@ -708,7 +708,7 @@ int MAIN(int argc, char **argv)
 # endif
 
     if (!twopass)
-        BUF_strlcpy(macpass, pass, sizeof macpass);
+        BUF_strlcpy(macpass, pass, sizeof(macpass));
 
     if ((options & INFO) && p12->mac)
         BIO_printf(bio_err, "MAC Iteration %ld\n",

Modified: vendor-crypto/openssl/dist/apps/pkcs8.c
==============================================================================
--- vendor-crypto/openssl/dist/apps/pkcs8.c	Tue Mar 27 16:38:32 2018	(r331624)
+++ vendor-crypto/openssl/dist/apps/pkcs8.c	Tue Mar 27 17:03:01 2018	(r331625)
@@ -277,7 +277,7 @@ int MAIN(int argc, char **argv)
             else {
                 p8pass = pass;
                 if (EVP_read_pw_string
-                    (pass, sizeof pass, "Enter Encryption Password:", 1))
+                    (pass, sizeof(pass), "Enter Encryption Password:", 1))
                     goto end;
             }
             app_RAND_load_file(NULL, bio_err, 0);
@@ -331,7 +331,7 @@ int MAIN(int argc, char **argv)
             p8pass = passin;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:04:02 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91D0CF6B2EB;
 Tue, 27 Mar 2018 17:04:02 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 457527247F;
 Tue, 27 Mar 2018 17:04:02 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 25F711EEE2;
 Tue, 27 Mar 2018 17:04:02 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RH41w8049565;
 Tue, 27 Mar 2018 17:04:01 GMT (envelope-from jkim@FreeBSD.org)
Received: (from jkim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RH41OU049564;
 Tue, 27 Mar 2018 17:04:01 GMT (envelope-from jkim@FreeBSD.org)
Message-Id: <201803271704.w2RH41OU049564@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jkim set sender to
 jkim@FreeBSD.org using -f
From: Jung-uk Kim 
Date: Tue, 27 Mar 2018 17:04:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331626 - vendor-crypto/openssl/1.0.2o
X-SVN-Group: vendor-crypto
X-SVN-Commit-Author: jkim
X-SVN-Commit-Paths: vendor-crypto/openssl/1.0.2o
X-SVN-Commit-Revision: 331626
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:04:02 -0000

Author: jkim
Date: Tue Mar 27 17:04:01 2018
New Revision: 331626
URL: https://svnweb.freebsd.org/changeset/base/331626

Log:
  Tag OpenSSL 1.0.2o.

Added:
  vendor-crypto/openssl/1.0.2o/
     - copied from r331625, vendor-crypto/openssl/dist/

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:18:02 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D5DBF6CA38;
 Tue, 27 Mar 2018 17:18:01 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 35B4473033;
 Tue, 27 Mar 2018 17:18:01 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2E8AE1F094;
 Tue, 27 Mar 2018 17:18:01 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHI1xs054837;
 Tue, 27 Mar 2018 17:18:01 GMT (envelope-from jkim@FreeBSD.org)
Received: (from jkim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHHw8X054810;
 Tue, 27 Mar 2018 17:17:58 GMT (envelope-from jkim@FreeBSD.org)
Message-Id: <201803271717.w2RHHw8X054810@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jkim set sender to
 jkim@FreeBSD.org using -f
From: Jung-uk Kim 
Date: Tue, 27 Mar 2018 17:17:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331627 - in head: crypto/openssl crypto/openssl/apps
 crypto/openssl/crypto crypto/openssl/crypto/asn1 crypto/openssl/crypto/bf
 crypto/openssl/crypto/bio crypto/openssl/crypto/bn crypto...
X-SVN-Group: head
X-SVN-Commit-Author: jkim
X-SVN-Commit-Paths: in head: crypto/openssl crypto/openssl/apps
 crypto/openssl/crypto crypto/openssl/crypto/asn1 crypto/openssl/crypto/bf
 crypto/openssl/crypto/bio crypto/openssl/crypto/bn crypto/openssl/crypto/conf
 cryp...
X-SVN-Commit-Revision: 331627
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:18:02 -0000

Author: jkim
Date: Tue Mar 27 17:17:58 2018
New Revision: 331627
URL: https://svnweb.freebsd.org/changeset/base/331627

Log:
  Merge OpenSSL 1.0.2o.

Modified:
  head/crypto/openssl/CHANGES
  head/crypto/openssl/Configure
  head/crypto/openssl/LICENSE
  head/crypto/openssl/Makefile
  head/crypto/openssl/NEWS
  head/crypto/openssl/README
  head/crypto/openssl/apps/app_rand.c
  head/crypto/openssl/apps/apps.c
  head/crypto/openssl/apps/ca.c
  head/crypto/openssl/apps/ciphers.c
  head/crypto/openssl/apps/cms.c
  head/crypto/openssl/apps/dgst.c
  head/crypto/openssl/apps/dsaparam.c
  head/crypto/openssl/apps/ecparam.c
  head/crypto/openssl/apps/enc.c
  head/crypto/openssl/apps/errstr.c
  head/crypto/openssl/apps/ocsp.c
  head/crypto/openssl/apps/openssl.c
  head/crypto/openssl/apps/passwd.c
  head/crypto/openssl/apps/pkcs12.c
  head/crypto/openssl/apps/pkcs8.c
  head/crypto/openssl/apps/rand.c
  head/crypto/openssl/apps/req.c
  head/crypto/openssl/apps/s_client.c
  head/crypto/openssl/apps/s_server.c
  head/crypto/openssl/apps/s_socket.c
  head/crypto/openssl/apps/s_time.c
  head/crypto/openssl/apps/speed.c
  head/crypto/openssl/apps/x509.c
  head/crypto/openssl/crypto/asn1/a_gentm.c
  head/crypto/openssl/crypto/asn1/a_mbstr.c
  head/crypto/openssl/crypto/asn1/a_object.c
  head/crypto/openssl/crypto/asn1/a_strex.c
  head/crypto/openssl/crypto/asn1/a_time.c
  head/crypto/openssl/crypto/asn1/a_utctm.c
  head/crypto/openssl/crypto/asn1/asn1.h
  head/crypto/openssl/crypto/asn1/asn1_err.c
  head/crypto/openssl/crypto/asn1/asn1_lib.c
  head/crypto/openssl/crypto/asn1/asn1_par.c
  head/crypto/openssl/crypto/asn1/asn_mime.c
  head/crypto/openssl/crypto/asn1/t_x509a.c
  head/crypto/openssl/crypto/asn1/tasn_dec.c
  head/crypto/openssl/crypto/asn1/tasn_prn.c
  head/crypto/openssl/crypto/bf/bftest.c
  head/crypto/openssl/crypto/bio/b_dump.c
  head/crypto/openssl/crypto/bio/b_print.c
  head/crypto/openssl/crypto/bio/bio_cb.c
  head/crypto/openssl/crypto/bio/bss_bio.c
  head/crypto/openssl/crypto/bio/bss_conn.c
  head/crypto/openssl/crypto/bio/bss_file.c
  head/crypto/openssl/crypto/bn/bn_exp.c
  head/crypto/openssl/crypto/bn/bn_lib.c
  head/crypto/openssl/crypto/bn/bn_mont.c
  head/crypto/openssl/crypto/bn/bn_print.c
  head/crypto/openssl/crypto/bn/bntest.c
  head/crypto/openssl/crypto/bn/expspeed.c
  head/crypto/openssl/crypto/bn/exptest.c
  head/crypto/openssl/crypto/conf/conf_def.c
  head/crypto/openssl/crypto/conf/conf_mod.c
  head/crypto/openssl/crypto/des/destest.c
  head/crypto/openssl/crypto/des/ecb_enc.c
  head/crypto/openssl/crypto/des/fcrypt.c
  head/crypto/openssl/crypto/des/read_pwd.c
  head/crypto/openssl/crypto/des/set_key.c
  head/crypto/openssl/crypto/dh/dhtest.c
  head/crypto/openssl/crypto/dsa/dsatest.c
  head/crypto/openssl/crypto/ec/ec_lib.c
  head/crypto/openssl/crypto/ec/ec_mult.c
  head/crypto/openssl/crypto/ec/ecp_nistp224.c
  head/crypto/openssl/crypto/ec/ecp_nistp256.c
  head/crypto/openssl/crypto/ec/ecp_nistp521.c
  head/crypto/openssl/crypto/ec/ecp_nistz256.c
  head/crypto/openssl/crypto/ec/ecp_smpl.c
  head/crypto/openssl/crypto/ec/ectest.c
  head/crypto/openssl/crypto/ecdh/ecdhtest.c
  head/crypto/openssl/crypto/engine/eng_cryptodev.c
  head/crypto/openssl/crypto/engine/eng_table.c
  head/crypto/openssl/crypto/err/err.c
  head/crypto/openssl/crypto/err/err_prn.c
  head/crypto/openssl/crypto/evp/bio_b64.c
  head/crypto/openssl/crypto/evp/digest.c
  head/crypto/openssl/crypto/evp/e_aes.c
  head/crypto/openssl/crypto/evp/e_camellia.c
  head/crypto/openssl/crypto/evp/evp_enc.c
  head/crypto/openssl/crypto/evp/evp_locl.h
  head/crypto/openssl/crypto/evp/evp_pbe.c
  head/crypto/openssl/crypto/evp/evp_test.c
  head/crypto/openssl/crypto/evp/openbsd_hw.c
  head/crypto/openssl/crypto/evp/p5_crpt2.c
  head/crypto/openssl/crypto/hmac/hmac.c
  head/crypto/openssl/crypto/jpake/jpake.c
  head/crypto/openssl/crypto/md2/md2_dgst.c
  head/crypto/openssl/crypto/md4/md4.c
  head/crypto/openssl/crypto/mem_dbg.c
  head/crypto/openssl/crypto/o_init.c
  head/crypto/openssl/crypto/o_time.c
  head/crypto/openssl/crypto/objects/o_names.c
  head/crypto/openssl/crypto/objects/obj_dat.c
  head/crypto/openssl/crypto/opensslv.h
  head/crypto/openssl/crypto/pem/pem_info.c
  head/crypto/openssl/crypto/pem/pem_lib.c
  head/crypto/openssl/crypto/pkcs7/pk7_doit.c
  head/crypto/openssl/crypto/rand/md_rand.c
  head/crypto/openssl/crypto/rand/rand_egd.c
  head/crypto/openssl/crypto/rand/rand_unix.c
  head/crypto/openssl/crypto/rsa/rsa_crpt.c
  head/crypto/openssl/crypto/rsa/rsa_gen.c
  head/crypto/openssl/crypto/rsa/rsa_pss.c
  head/crypto/openssl/crypto/rsa/rsa_test.c
  head/crypto/openssl/crypto/srp/srp_grps.h
  head/crypto/openssl/crypto/threads/mttest.c
  head/crypto/openssl/crypto/ts/Makefile
  head/crypto/openssl/crypto/ts/ts_rsp_sign.c
  head/crypto/openssl/crypto/ui/ui_openssl.c
  head/crypto/openssl/crypto/x509/x509_txt.c
  head/crypto/openssl/crypto/x509/x509_v3.c
  head/crypto/openssl/crypto/x509/x509_vpm.c
  head/crypto/openssl/crypto/x509v3/v3_alt.c
  head/crypto/openssl/crypto/x509v3/v3_conf.c
  head/crypto/openssl/crypto/x509v3/v3_info.c
  head/crypto/openssl/doc/apps/ca.pod
  head/crypto/openssl/doc/apps/ecparam.pod
  head/crypto/openssl/doc/apps/s_client.pod
  head/crypto/openssl/doc/apps/verify.pod
  head/crypto/openssl/doc/apps/x509.pod
  head/crypto/openssl/doc/crypto/ASN1_STRING_length.pod
  head/crypto/openssl/doc/crypto/BIO_s_mem.pod
  head/crypto/openssl/doc/crypto/BN_zero.pod
  head/crypto/openssl/doc/crypto/EVP_EncryptInit.pod
  head/crypto/openssl/doc/crypto/X509_VERIFY_PARAM_set_flags.pod
  head/crypto/openssl/doc/crypto/threads.pod
  head/crypto/openssl/engines/ccgost/README.gost
  head/crypto/openssl/engines/ccgost/gost_eng.c
  head/crypto/openssl/engines/e_atalla.c
  head/crypto/openssl/ssl/Makefile
  head/crypto/openssl/ssl/bad_dtls_test.c
  head/crypto/openssl/ssl/d1_lib.c
  head/crypto/openssl/ssl/d1_pkt.c
  head/crypto/openssl/ssl/fatalerrtest.c
  head/crypto/openssl/ssl/kssl.c
  head/crypto/openssl/ssl/s23_srvr.c
  head/crypto/openssl/ssl/s2_clnt.c
  head/crypto/openssl/ssl/s2_enc.c
  head/crypto/openssl/ssl/s2_lib.c
  head/crypto/openssl/ssl/s2_srvr.c
  head/crypto/openssl/ssl/s3_clnt.c
  head/crypto/openssl/ssl/s3_lib.c
  head/crypto/openssl/ssl/s3_pkt.c
  head/crypto/openssl/ssl/s3_srvr.c
  head/crypto/openssl/ssl/ssl_cert.c
  head/crypto/openssl/ssl/ssl_lib.c
  head/crypto/openssl/ssl/ssl_sess.c
  head/crypto/openssl/ssl/ssltest.c
  head/crypto/openssl/ssl/t1_enc.c
  head/crypto/openssl/ssl/t1_lib.c
  head/crypto/openssl/ssl/t1_trce.c
  head/secure/lib/libcrypto/Makefile.inc
  head/secure/lib/libcrypto/man/ASN1_OBJECT_new.3
  head/secure/lib/libcrypto/man/ASN1_STRING_length.3
  head/secure/lib/libcrypto/man/ASN1_STRING_new.3
  head/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3
  head/secure/lib/libcrypto/man/ASN1_TIME_set.3
  head/secure/lib/libcrypto/man/ASN1_generate_nconf.3
  head/secure/lib/libcrypto/man/BIO_ctrl.3
  head/secure/lib/libcrypto/man/BIO_f_base64.3
  head/secure/lib/libcrypto/man/BIO_f_buffer.3
  head/secure/lib/libcrypto/man/BIO_f_cipher.3
  head/secure/lib/libcrypto/man/BIO_f_md.3
  head/secure/lib/libcrypto/man/BIO_f_null.3
  head/secure/lib/libcrypto/man/BIO_f_ssl.3
  head/secure/lib/libcrypto/man/BIO_find_type.3
  head/secure/lib/libcrypto/man/BIO_new.3
  head/secure/lib/libcrypto/man/BIO_new_CMS.3
  head/secure/lib/libcrypto/man/BIO_push.3
  head/secure/lib/libcrypto/man/BIO_read.3
  head/secure/lib/libcrypto/man/BIO_s_accept.3
  head/secure/lib/libcrypto/man/BIO_s_bio.3
  head/secure/lib/libcrypto/man/BIO_s_connect.3
  head/secure/lib/libcrypto/man/BIO_s_fd.3
  head/secure/lib/libcrypto/man/BIO_s_file.3
  head/secure/lib/libcrypto/man/BIO_s_mem.3
  head/secure/lib/libcrypto/man/BIO_s_null.3
  head/secure/lib/libcrypto/man/BIO_s_socket.3
  head/secure/lib/libcrypto/man/BIO_set_callback.3
  head/secure/lib/libcrypto/man/BIO_should_retry.3
  head/secure/lib/libcrypto/man/BN_BLINDING_new.3
  head/secure/lib/libcrypto/man/BN_CTX_new.3
  head/secure/lib/libcrypto/man/BN_CTX_start.3
  head/secure/lib/libcrypto/man/BN_add.3
  head/secure/lib/libcrypto/man/BN_add_word.3
  head/secure/lib/libcrypto/man/BN_bn2bin.3
  head/secure/lib/libcrypto/man/BN_cmp.3
  head/secure/lib/libcrypto/man/BN_copy.3
  head/secure/lib/libcrypto/man/BN_generate_prime.3
  head/secure/lib/libcrypto/man/BN_mod_inverse.3
  head/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3
  head/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3
  head/secure/lib/libcrypto/man/BN_new.3
  head/secure/lib/libcrypto/man/BN_num_bytes.3
  head/secure/lib/libcrypto/man/BN_rand.3
  head/secure/lib/libcrypto/man/BN_set_bit.3
  head/secure/lib/libcrypto/man/BN_swap.3
  head/secure/lib/libcrypto/man/BN_zero.3
  head/secure/lib/libcrypto/man/CMS_add0_cert.3
  head/secure/lib/libcrypto/man/CMS_add1_recipient_cert.3
  head/secure/lib/libcrypto/man/CMS_add1_signer.3
  head/secure/lib/libcrypto/man/CMS_compress.3
  head/secure/lib/libcrypto/man/CMS_decrypt.3
  head/secure/lib/libcrypto/man/CMS_encrypt.3
  head/secure/lib/libcrypto/man/CMS_final.3
  head/secure/lib/libcrypto/man/CMS_get0_RecipientInfos.3
  head/secure/lib/libcrypto/man/CMS_get0_SignerInfos.3
  head/secure/lib/libcrypto/man/CMS_get0_type.3
  head/secure/lib/libcrypto/man/CMS_get1_ReceiptRequest.3
  head/secure/lib/libcrypto/man/CMS_sign.3
  head/secure/lib/libcrypto/man/CMS_sign_receipt.3
  head/secure/lib/libcrypto/man/CMS_uncompress.3
  head/secure/lib/libcrypto/man/CMS_verify.3
  head/secure/lib/libcrypto/man/CMS_verify_receipt.3
  head/secure/lib/libcrypto/man/CONF_modules_free.3
  head/secure/lib/libcrypto/man/CONF_modules_load_file.3
  head/secure/lib/libcrypto/man/CRYPTO_set_ex_data.3
  head/secure/lib/libcrypto/man/DH_generate_key.3
  head/secure/lib/libcrypto/man/DH_generate_parameters.3
  head/secure/lib/libcrypto/man/DH_get_ex_new_index.3
  head/secure/lib/libcrypto/man/DH_new.3
  head/secure/lib/libcrypto/man/DH_set_method.3
  head/secure/lib/libcrypto/man/DH_size.3
  head/secure/lib/libcrypto/man/DSA_SIG_new.3
  head/secure/lib/libcrypto/man/DSA_do_sign.3
  head/secure/lib/libcrypto/man/DSA_dup_DH.3
  head/secure/lib/libcrypto/man/DSA_generate_key.3
  head/secure/lib/libcrypto/man/DSA_generate_parameters.3
  head/secure/lib/libcrypto/man/DSA_get_ex_new_index.3
  head/secure/lib/libcrypto/man/DSA_new.3
  head/secure/lib/libcrypto/man/DSA_set_method.3
  head/secure/lib/libcrypto/man/DSA_sign.3
  head/secure/lib/libcrypto/man/DSA_size.3
  head/secure/lib/libcrypto/man/EC_GFp_simple_method.3
  head/secure/lib/libcrypto/man/EC_GROUP_copy.3
  head/secure/lib/libcrypto/man/EC_GROUP_new.3
  head/secure/lib/libcrypto/man/EC_KEY_new.3
  head/secure/lib/libcrypto/man/EC_POINT_add.3
  head/secure/lib/libcrypto/man/EC_POINT_new.3
  head/secure/lib/libcrypto/man/ERR_GET_LIB.3
  head/secure/lib/libcrypto/man/ERR_clear_error.3
  head/secure/lib/libcrypto/man/ERR_error_string.3
  head/secure/lib/libcrypto/man/ERR_get_error.3
  head/secure/lib/libcrypto/man/ERR_load_crypto_strings.3
  head/secure/lib/libcrypto/man/ERR_load_strings.3
  head/secure/lib/libcrypto/man/ERR_print_errors.3
  head/secure/lib/libcrypto/man/ERR_put_error.3
  head/secure/lib/libcrypto/man/ERR_remove_state.3
  head/secure/lib/libcrypto/man/ERR_set_mark.3
  head/secure/lib/libcrypto/man/EVP_BytesToKey.3
  head/secure/lib/libcrypto/man/EVP_DigestInit.3
  head/secure/lib/libcrypto/man/EVP_DigestSignInit.3
  head/secure/lib/libcrypto/man/EVP_DigestVerifyInit.3
  head/secure/lib/libcrypto/man/EVP_EncodeInit.3
  head/secure/lib/libcrypto/man/EVP_EncryptInit.3
  head/secure/lib/libcrypto/man/EVP_OpenInit.3
  head/secure/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3
  head/secure/lib/libcrypto/man/EVP_PKEY_CTX_new.3
  head/secure/lib/libcrypto/man/EVP_PKEY_cmp.3
  head/secure/lib/libcrypto/man/EVP_PKEY_decrypt.3
  head/secure/lib/libcrypto/man/EVP_PKEY_derive.3
  head/secure/lib/libcrypto/man/EVP_PKEY_encrypt.3
  head/secure/lib/libcrypto/man/EVP_PKEY_get_default_digest.3
  head/secure/lib/libcrypto/man/EVP_PKEY_keygen.3
  head/secure/lib/libcrypto/man/EVP_PKEY_meth_new.3
  head/secure/lib/libcrypto/man/EVP_PKEY_new.3
  head/secure/lib/libcrypto/man/EVP_PKEY_print_private.3
  head/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3
  head/secure/lib/libcrypto/man/EVP_PKEY_sign.3
  head/secure/lib/libcrypto/man/EVP_PKEY_verify.3
  head/secure/lib/libcrypto/man/EVP_PKEY_verify_recover.3
  head/secure/lib/libcrypto/man/EVP_SealInit.3
  head/secure/lib/libcrypto/man/EVP_SignInit.3
  head/secure/lib/libcrypto/man/EVP_VerifyInit.3
  head/secure/lib/libcrypto/man/OBJ_nid2obj.3
  head/secure/lib/libcrypto/man/OPENSSL_Applink.3
  head/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3
  head/secure/lib/libcrypto/man/OPENSSL_config.3
  head/secure/lib/libcrypto/man/OPENSSL_ia32cap.3
  head/secure/lib/libcrypto/man/OPENSSL_instrument_bus.3
  head/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3
  head/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3
  head/secure/lib/libcrypto/man/PEM_write_bio_CMS_stream.3
  head/secure/lib/libcrypto/man/PEM_write_bio_PKCS7_stream.3
  head/secure/lib/libcrypto/man/PKCS12_create.3
  head/secure/lib/libcrypto/man/PKCS12_parse.3
  head/secure/lib/libcrypto/man/PKCS7_decrypt.3
  head/secure/lib/libcrypto/man/PKCS7_encrypt.3
  head/secure/lib/libcrypto/man/PKCS7_sign.3
  head/secure/lib/libcrypto/man/PKCS7_sign_add_signer.3
  head/secure/lib/libcrypto/man/PKCS7_verify.3
  head/secure/lib/libcrypto/man/RAND_add.3
  head/secure/lib/libcrypto/man/RAND_bytes.3
  head/secure/lib/libcrypto/man/RAND_cleanup.3
  head/secure/lib/libcrypto/man/RAND_egd.3
  head/secure/lib/libcrypto/man/RAND_load_file.3
  head/secure/lib/libcrypto/man/RAND_set_rand_method.3
  head/secure/lib/libcrypto/man/RSA_blinding_on.3
  head/secure/lib/libcrypto/man/RSA_check_key.3
  head/secure/lib/libcrypto/man/RSA_generate_key.3
  head/secure/lib/libcrypto/man/RSA_get_ex_new_index.3
  head/secure/lib/libcrypto/man/RSA_new.3
  head/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3
  head/secure/lib/libcrypto/man/RSA_print.3
  head/secure/lib/libcrypto/man/RSA_private_encrypt.3
  head/secure/lib/libcrypto/man/RSA_public_encrypt.3
  head/secure/lib/libcrypto/man/RSA_set_method.3
  head/secure/lib/libcrypto/man/RSA_sign.3
  head/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3
  head/secure/lib/libcrypto/man/RSA_size.3
  head/secure/lib/libcrypto/man/SMIME_read_CMS.3
  head/secure/lib/libcrypto/man/SMIME_read_PKCS7.3
  head/secure/lib/libcrypto/man/SMIME_write_CMS.3
  head/secure/lib/libcrypto/man/SMIME_write_PKCS7.3
  head/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3
  head/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3
  head/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3
  head/secure/lib/libcrypto/man/X509_NAME_print_ex.3
  head/secure/lib/libcrypto/man/X509_STORE_CTX_get_error.3
  head/secure/lib/libcrypto/man/X509_STORE_CTX_get_ex_new_index.3
  head/secure/lib/libcrypto/man/X509_STORE_CTX_new.3
  head/secure/lib/libcrypto/man/X509_STORE_CTX_set_verify_cb.3
  head/secure/lib/libcrypto/man/X509_STORE_set_verify_cb_func.3
  head/secure/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3
  head/secure/lib/libcrypto/man/X509_check_host.3
  head/secure/lib/libcrypto/man/X509_check_private_key.3
  head/secure/lib/libcrypto/man/X509_new.3
  head/secure/lib/libcrypto/man/X509_verify_cert.3
  head/secure/lib/libcrypto/man/bio.3
  head/secure/lib/libcrypto/man/blowfish.3
  head/secure/lib/libcrypto/man/bn.3
  head/secure/lib/libcrypto/man/bn_internal.3
  head/secure/lib/libcrypto/man/buffer.3
  head/secure/lib/libcrypto/man/crypto.3
  head/secure/lib/libcrypto/man/d2i_ASN1_OBJECT.3
  head/secure/lib/libcrypto/man/d2i_CMS_ContentInfo.3
  head/secure/lib/libcrypto/man/d2i_DHparams.3
  head/secure/lib/libcrypto/man/d2i_DSAPublicKey.3
  head/secure/lib/libcrypto/man/d2i_ECPKParameters.3
  head/secure/lib/libcrypto/man/d2i_ECPrivateKey.3
  head/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey.3
  head/secure/lib/libcrypto/man/d2i_PrivateKey.3
  head/secure/lib/libcrypto/man/d2i_RSAPublicKey.3
  head/secure/lib/libcrypto/man/d2i_X509.3
  head/secure/lib/libcrypto/man/d2i_X509_ALGOR.3
  head/secure/lib/libcrypto/man/d2i_X509_CRL.3
  head/secure/lib/libcrypto/man/d2i_X509_NAME.3
  head/secure/lib/libcrypto/man/d2i_X509_REQ.3
  head/secure/lib/libcrypto/man/d2i_X509_SIG.3
  head/secure/lib/libcrypto/man/des.3
  head/secure/lib/libcrypto/man/dh.3
  head/secure/lib/libcrypto/man/dsa.3
  head/secure/lib/libcrypto/man/ec.3
  head/secure/lib/libcrypto/man/ecdsa.3
  head/secure/lib/libcrypto/man/engine.3
  head/secure/lib/libcrypto/man/err.3
  head/secure/lib/libcrypto/man/evp.3
  head/secure/lib/libcrypto/man/hmac.3
  head/secure/lib/libcrypto/man/i2d_CMS_bio_stream.3
  head/secure/lib/libcrypto/man/i2d_PKCS7_bio_stream.3
  head/secure/lib/libcrypto/man/lh_stats.3
  head/secure/lib/libcrypto/man/lhash.3
  head/secure/lib/libcrypto/man/md5.3
  head/secure/lib/libcrypto/man/mdc2.3
  head/secure/lib/libcrypto/man/pem.3
  head/secure/lib/libcrypto/man/rand.3
  head/secure/lib/libcrypto/man/rc4.3
  head/secure/lib/libcrypto/man/ripemd.3
  head/secure/lib/libcrypto/man/rsa.3
  head/secure/lib/libcrypto/man/sha.3
  head/secure/lib/libcrypto/man/threads.3
  head/secure/lib/libcrypto/man/ui.3
  head/secure/lib/libcrypto/man/ui_compat.3
  head/secure/lib/libcrypto/man/x509.3
  head/secure/lib/libssl/man/SSL_CIPHER_get_name.3
  head/secure/lib/libssl/man/SSL_COMP_add_compression_method.3
  head/secure/lib/libssl/man/SSL_CONF_CTX_new.3
  head/secure/lib/libssl/man/SSL_CONF_CTX_set1_prefix.3
  head/secure/lib/libssl/man/SSL_CONF_CTX_set_flags.3
  head/secure/lib/libssl/man/SSL_CONF_CTX_set_ssl_ctx.3
  head/secure/lib/libssl/man/SSL_CONF_cmd.3
  head/secure/lib/libssl/man/SSL_CONF_cmd_argv.3
  head/secure/lib/libssl/man/SSL_CTX_add1_chain_cert.3
  head/secure/lib/libssl/man/SSL_CTX_add_extra_chain_cert.3
  head/secure/lib/libssl/man/SSL_CTX_add_session.3
  head/secure/lib/libssl/man/SSL_CTX_ctrl.3
  head/secure/lib/libssl/man/SSL_CTX_flush_sessions.3
  head/secure/lib/libssl/man/SSL_CTX_free.3
  head/secure/lib/libssl/man/SSL_CTX_get0_param.3
  head/secure/lib/libssl/man/SSL_CTX_get_ex_new_index.3
  head/secure/lib/libssl/man/SSL_CTX_get_verify_mode.3
  head/secure/lib/libssl/man/SSL_CTX_load_verify_locations.3
  head/secure/lib/libssl/man/SSL_CTX_new.3
  head/secure/lib/libssl/man/SSL_CTX_sess_number.3
  head/secure/lib/libssl/man/SSL_CTX_sess_set_cache_size.3
  head/secure/lib/libssl/man/SSL_CTX_sess_set_get_cb.3
  head/secure/lib/libssl/man/SSL_CTX_sessions.3
  head/secure/lib/libssl/man/SSL_CTX_set1_curves.3
  head/secure/lib/libssl/man/SSL_CTX_set1_verify_cert_store.3
  head/secure/lib/libssl/man/SSL_CTX_set_alpn_select_cb.3
  head/secure/lib/libssl/man/SSL_CTX_set_cert_cb.3
  head/secure/lib/libssl/man/SSL_CTX_set_cert_store.3
  head/secure/lib/libssl/man/SSL_CTX_set_cert_verify_callback.3
  head/secure/lib/libssl/man/SSL_CTX_set_cipher_list.3
  head/secure/lib/libssl/man/SSL_CTX_set_client_CA_list.3
  head/secure/lib/libssl/man/SSL_CTX_set_client_cert_cb.3
  head/secure/lib/libssl/man/SSL_CTX_set_custom_cli_ext.3
  head/secure/lib/libssl/man/SSL_CTX_set_default_passwd_cb.3
  head/secure/lib/libssl/man/SSL_CTX_set_generate_session_id.3
  head/secure/lib/libssl/man/SSL_CTX_set_info_callback.3
  head/secure/lib/libssl/man/SSL_CTX_set_max_cert_list.3
  head/secure/lib/libssl/man/SSL_CTX_set_mode.3
  head/secure/lib/libssl/man/SSL_CTX_set_msg_callback.3
  head/secure/lib/libssl/man/SSL_CTX_set_options.3
  head/secure/lib/libssl/man/SSL_CTX_set_psk_client_callback.3
  head/secure/lib/libssl/man/SSL_CTX_set_quiet_shutdown.3
  head/secure/lib/libssl/man/SSL_CTX_set_read_ahead.3
  head/secure/lib/libssl/man/SSL_CTX_set_session_cache_mode.3
  head/secure/lib/libssl/man/SSL_CTX_set_session_id_context.3
  head/secure/lib/libssl/man/SSL_CTX_set_ssl_version.3
  head/secure/lib/libssl/man/SSL_CTX_set_timeout.3
  head/secure/lib/libssl/man/SSL_CTX_set_tlsext_servername_callback.3
  head/secure/lib/libssl/man/SSL_CTX_set_tlsext_status_cb.3
  head/secure/lib/libssl/man/SSL_CTX_set_tlsext_ticket_key_cb.3
  head/secure/lib/libssl/man/SSL_CTX_set_tmp_dh_callback.3
  head/secure/lib/libssl/man/SSL_CTX_set_tmp_rsa_callback.3
  head/secure/lib/libssl/man/SSL_CTX_set_verify.3
  head/secure/lib/libssl/man/SSL_CTX_use_certificate.3
  head/secure/lib/libssl/man/SSL_CTX_use_psk_identity_hint.3
  head/secure/lib/libssl/man/SSL_CTX_use_serverinfo.3
  head/secure/lib/libssl/man/SSL_SESSION_free.3
  head/secure/lib/libssl/man/SSL_SESSION_get_ex_new_index.3
  head/secure/lib/libssl/man/SSL_SESSION_get_time.3
  head/secure/lib/libssl/man/SSL_accept.3
  head/secure/lib/libssl/man/SSL_alert_type_string.3
  head/secure/lib/libssl/man/SSL_check_chain.3
  head/secure/lib/libssl/man/SSL_clear.3
  head/secure/lib/libssl/man/SSL_connect.3
  head/secure/lib/libssl/man/SSL_do_handshake.3
  head/secure/lib/libssl/man/SSL_export_keying_material.3
  head/secure/lib/libssl/man/SSL_free.3
  head/secure/lib/libssl/man/SSL_get_SSL_CTX.3
  head/secure/lib/libssl/man/SSL_get_ciphers.3
  head/secure/lib/libssl/man/SSL_get_client_CA_list.3
  head/secure/lib/libssl/man/SSL_get_current_cipher.3
  head/secure/lib/libssl/man/SSL_get_default_timeout.3
  head/secure/lib/libssl/man/SSL_get_error.3
  head/secure/lib/libssl/man/SSL_get_ex_data_X509_STORE_CTX_idx.3
  head/secure/lib/libssl/man/SSL_get_ex_new_index.3
  head/secure/lib/libssl/man/SSL_get_fd.3
  head/secure/lib/libssl/man/SSL_get_peer_cert_chain.3
  head/secure/lib/libssl/man/SSL_get_peer_certificate.3
  head/secure/lib/libssl/man/SSL_get_psk_identity.3
  head/secure/lib/libssl/man/SSL_get_rbio.3
  head/secure/lib/libssl/man/SSL_get_session.3
  head/secure/lib/libssl/man/SSL_get_verify_result.3
  head/secure/lib/libssl/man/SSL_get_version.3
  head/secure/lib/libssl/man/SSL_library_init.3
  head/secure/lib/libssl/man/SSL_load_client_CA_file.3
  head/secure/lib/libssl/man/SSL_new.3
  head/secure/lib/libssl/man/SSL_pending.3
  head/secure/lib/libssl/man/SSL_read.3
  head/secure/lib/libssl/man/SSL_rstate_string.3
  head/secure/lib/libssl/man/SSL_session_reused.3
  head/secure/lib/libssl/man/SSL_set_bio.3
  head/secure/lib/libssl/man/SSL_set_connect_state.3
  head/secure/lib/libssl/man/SSL_set_fd.3
  head/secure/lib/libssl/man/SSL_set_session.3
  head/secure/lib/libssl/man/SSL_set_shutdown.3
  head/secure/lib/libssl/man/SSL_set_verify_result.3
  head/secure/lib/libssl/man/SSL_shutdown.3
  head/secure/lib/libssl/man/SSL_state_string.3
  head/secure/lib/libssl/man/SSL_want.3
  head/secure/lib/libssl/man/SSL_write.3
  head/secure/lib/libssl/man/d2i_SSL_SESSION.3
  head/secure/lib/libssl/man/ssl.3
  head/secure/usr.bin/openssl/man/CA.pl.1
  head/secure/usr.bin/openssl/man/asn1parse.1
  head/secure/usr.bin/openssl/man/ca.1
  head/secure/usr.bin/openssl/man/ciphers.1
  head/secure/usr.bin/openssl/man/cms.1
  head/secure/usr.bin/openssl/man/crl.1
  head/secure/usr.bin/openssl/man/crl2pkcs7.1
  head/secure/usr.bin/openssl/man/dgst.1
  head/secure/usr.bin/openssl/man/dhparam.1
  head/secure/usr.bin/openssl/man/dsa.1
  head/secure/usr.bin/openssl/man/dsaparam.1
  head/secure/usr.bin/openssl/man/ec.1
  head/secure/usr.bin/openssl/man/ecparam.1
  head/secure/usr.bin/openssl/man/enc.1
  head/secure/usr.bin/openssl/man/errstr.1
  head/secure/usr.bin/openssl/man/gendsa.1
  head/secure/usr.bin/openssl/man/genpkey.1
  head/secure/usr.bin/openssl/man/genrsa.1
  head/secure/usr.bin/openssl/man/nseq.1
  head/secure/usr.bin/openssl/man/ocsp.1
  head/secure/usr.bin/openssl/man/openssl.1
  head/secure/usr.bin/openssl/man/passwd.1
  head/secure/usr.bin/openssl/man/pkcs12.1
  head/secure/usr.bin/openssl/man/pkcs7.1
  head/secure/usr.bin/openssl/man/pkcs8.1
  head/secure/usr.bin/openssl/man/pkey.1
  head/secure/usr.bin/openssl/man/pkeyparam.1
  head/secure/usr.bin/openssl/man/pkeyutl.1
  head/secure/usr.bin/openssl/man/rand.1
  head/secure/usr.bin/openssl/man/req.1
  head/secure/usr.bin/openssl/man/rsa.1
  head/secure/usr.bin/openssl/man/rsautl.1
  head/secure/usr.bin/openssl/man/s_client.1
  head/secure/usr.bin/openssl/man/s_server.1
  head/secure/usr.bin/openssl/man/s_time.1
  head/secure/usr.bin/openssl/man/sess_id.1
  head/secure/usr.bin/openssl/man/smime.1
  head/secure/usr.bin/openssl/man/speed.1
  head/secure/usr.bin/openssl/man/spkac.1
  head/secure/usr.bin/openssl/man/ts.1
  head/secure/usr.bin/openssl/man/tsget.1
  head/secure/usr.bin/openssl/man/verify.1
  head/secure/usr.bin/openssl/man/version.1
  head/secure/usr.bin/openssl/man/x509.1
  head/secure/usr.bin/openssl/man/x509v3_config.1
Directory Properties:
  head/crypto/openssl/   (props changed)

Modified: head/crypto/openssl/CHANGES
==============================================================================
--- head/crypto/openssl/CHANGES	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/CHANGES	Tue Mar 27 17:17:58 2018	(r331627)
@@ -7,6 +7,21 @@
  https://github.com/openssl/openssl/commits/ and pick the appropriate
  release branch.
 
+ Changes between 1.0.2n and 1.0.2o [27 Mar 2018]
+
+  *) Constructed ASN.1 types with a recursive definition could exceed the stack
+
+     Constructed ASN.1 types with a recursive definition (such as can be found
+     in PKCS7) could eventually exceed the stack given malicious input with
+     excessive recursion. This could result in a Denial Of Service attack. There
+     are no such structures used within SSL/TLS that come from untrusted sources
+     so this is considered safe.
+
+     This issue was reported to OpenSSL on 4th January 2018 by the OSS-fuzz
+     project.
+     (CVE-2018-0739)
+     [Matt Caswell]
+
  Changes between 1.0.2m and 1.0.2n [7 Dec 2017]
 
   *) Read/write after SSL object in error state
@@ -2012,8 +2027,11 @@
      to work with OPENSSL_NO_SSL_INTERN defined.
      [Steve Henson]
 
-  *) Add SRP support.
-     [Tom Wu  and Ben Laurie]
+  *) A long standing patch to add support for SRP from EdelWeb (Peter
+     Sylvester and Christophe Renou) was integrated.
+     [Christophe Renou , Peter Sylvester
+     , Tom Wu , and
+     Ben Laurie]
 
   *) Add functions to copy EVP_PKEY_METHOD and retrieve flags and id.
      [Steve Henson]

Modified: head/crypto/openssl/Configure
==============================================================================
--- head/crypto/openssl/Configure	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/Configure	Tue Mar 27 17:17:58 2018	(r331627)
@@ -354,7 +354,7 @@ my %table=(
 "hpux-gcc",	"gcc:-DB_ENDIAN -DBN_DIV2W -O3::(unknown)::-Wl,+s -ldld:DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
 #### HP MPE/iX http://jazz.external.hp.com/src/openssl/
-"MPE/iX-gcc",	"gcc:-D_ENDIAN -DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):MPE:-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
+"MPE/iX-gcc",	"gcc:-DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):MPE:-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
 
 # DEC Alpha OSF/1/Tru64 targets.
 #
@@ -1269,7 +1269,7 @@ my ($prelflags,$postlflags)=split('%',$lflags);
 if (defined($postlflags))	{ $lflags=$postlflags;	}
 else				{ $lflags=$prelflags; undef $prelflags;	}
 
-if ($target =~ /^mingw/ && `$cc --target-help 2>&1` !~ m/\-mno\-cygwin/m)
+if ($target =~ /^mingw/ && `$cross_compile_prefix$cc --target-help 2>&1` !~ m/\-mno\-cygwin/m)
 	{
 	$cflags =~ s/\-mno\-cygwin\s*//;
 	$shared_ldflag =~ s/\-mno\-cygwin\s*//;
@@ -1661,18 +1661,25 @@ if ($shlib_version_number =~ /(^[0-9]*)\.([0-9\.]*)/)
 	$shlib_minor=$2;
 	}
 
-my $ecc = $cc;
-$ecc = "clang" if `$cc --version 2>&1` =~ /clang/;
+my %predefined;
 
+# collect compiler pre-defines from gcc or gcc-alike...
+open(PIPE, "$cross_compile_prefix$cc -dM -E -x c /dev/null 2>&1 |");
+while () {
+  m/^#define\s+(\w+(?:\(\w+\))?)(?:\s+(.+))?/ or last;
+  $predefined{$1} = defined($2) ? $2 : "";
+}
+close(PIPE);
+
 if ($strict_warnings)
 	{
 	my $wopt;
-	die "ERROR --strict-warnings requires gcc or clang" unless ($ecc =~ /gcc$/ or $ecc =~ /clang$/);
+	die "ERROR --strict-warnings requires gcc or clang" unless defined($predefined{__GNUC__});
 	foreach $wopt (split /\s+/, $gcc_devteam_warn)
 		{
 		$cflags .= " $wopt" unless ($cflags =~ /(^|\s)$wopt(\s|$)/)
 		}
-	if ($ecc eq "clang")
+	if (defined($predefined{__clang__}))
 		{
 		foreach $wopt (split /\s+/, $clang_devteam_warn)
 			{
@@ -1723,15 +1730,14 @@ while ()
 		s/^NM=\s*/NM= \$\(CROSS_COMPILE\)/;
 		s/^RANLIB=\s*/RANLIB= \$\(CROSS_COMPILE\)/;
 		s/^RC=\s*/RC= \$\(CROSS_COMPILE\)/;
-		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= \$\(CROSS_COMPILE\)$cc/ if $cc eq "gcc";
+		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= \$\(CROSS_COMPILE\)$cc/ if $predefined{__GNUC__} >= 3;
 		}
 	else	{
 		s/^CC=.*$/CC= $cc/;
 		s/^AR=\s*ar/AR= $ar/;
 		s/^RANLIB=.*/RANLIB= $ranlib/;
 		s/^RC=.*/RC= $windres/;
-		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc";
-		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $ecc eq "gcc" || $ecc eq "clang";
+		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $predefined{__GNUC__} >= 3;
 		}
 	s/^CFLAG=.*$/CFLAG= $cflags/;
 	s/^DEPFLAG=.*$/DEPFLAG=$depflags/;

Modified: head/crypto/openssl/LICENSE
==============================================================================
--- head/crypto/openssl/LICENSE	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/LICENSE	Tue Mar 27 17:17:58 2018	(r331627)
@@ -12,7 +12,7 @@
   ---------------
 
 /* ====================================================================
- * Copyright (c) 1998-2017 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions

Modified: head/crypto/openssl/Makefile
==============================================================================
--- head/crypto/openssl/Makefile	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/Makefile	Tue Mar 27 17:17:58 2018	(r331627)
@@ -4,7 +4,7 @@
 ## Makefile for OpenSSL
 ##
 
-VERSION=1.0.2n
+VERSION=1.0.2o
 MAJOR=1
 MINOR=0.2
 SHLIB_VERSION_NUMBER=1.0.0
@@ -73,7 +73,7 @@ NM= nm
 PERL= /usr/bin/perl
 TAR= tar
 TARFLAGS= --no-recursion
-MAKEDEPPROG=makedepend
+MAKEDEPPROG= cc
 LIBDIR=lib
 
 # We let the C compiler driver to take care of .s files. This is done in

Modified: head/crypto/openssl/NEWS
==============================================================================
--- head/crypto/openssl/NEWS	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/NEWS	Tue Mar 27 17:17:58 2018	(r331627)
@@ -5,6 +5,11 @@
   This file gives a brief overview of the major changes between each OpenSSL
   release. For more details please read the CHANGES file.
 
+  Major changes between OpenSSL 1.0.2n and OpenSSL 1.0.2o [27 Mar 2018]
+
+      o Constructed ASN.1 types with a recursive definition could exceed the
+        stack (CVE-2018-0739)
+
   Major changes between OpenSSL 1.0.2m and OpenSSL 1.0.2n [7 Dec 2017]
 
       o Read/write after SSL object in error state (CVE-2017-3737)

Modified: head/crypto/openssl/README
==============================================================================
--- head/crypto/openssl/README	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/README	Tue Mar 27 17:17:58 2018	(r331627)
@@ -1,5 +1,5 @@
 
- OpenSSL 1.0.2n 7 Dec 2017
+ OpenSSL 1.0.2o 27 Mar 2018
 
  Copyright (c) 1998-2015 The OpenSSL Project
  Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson

Modified: head/crypto/openssl/apps/app_rand.c
==============================================================================
--- head/crypto/openssl/apps/app_rand.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/app_rand.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -128,7 +128,7 @@ int app_RAND_load_file(const char *file, BIO *bio_e, i
 #endif
 
     if (file == NULL)
-        file = RAND_file_name(buffer, sizeof buffer);
+        file = RAND_file_name(buffer, sizeof(buffer));
     else if (RAND_egd(file) > 0) {
         /*
          * we try if the given filename is an EGD socket. if it is, we don't
@@ -203,7 +203,7 @@ int app_RAND_write_file(const char *file, BIO *bio_e)
         return 0;
 
     if (file == NULL)
-        file = RAND_file_name(buffer, sizeof buffer);
+        file = RAND_file_name(buffer, sizeof(buffer));
     if (file == NULL || !RAND_write_file(file)) {
         BIO_printf(bio_e, "unable to write 'random state'\n");
         return 0;

Modified: head/crypto/openssl/apps/apps.c
==============================================================================
--- head/crypto/openssl/apps/apps.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/apps.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -1738,9 +1738,9 @@ int save_serial(char *serialfile, char *suffix, BIGNUM
         BUF_strlcpy(buf[0], serialfile, BSIZE);
     else {
 #ifndef OPENSSL_SYS_VMS
-        j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", serialfile, suffix);
+        j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", serialfile, suffix);
 #else
-        j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", serialfile, suffix);
+        j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", serialfile, suffix);
 #endif
     }
 #ifdef RL_DEBUG
@@ -1789,14 +1789,14 @@ int rotate_serial(char *serialfile, char *new_suffix, 
         goto err;
     }
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", serialfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", serialfile, new_suffix);
 #else
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", serialfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", serialfile, new_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s.%s", serialfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s.%s", serialfile, old_suffix);
 #else
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s-%s", serialfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s-%s", serialfile, old_suffix);
 #endif
 #ifdef RL_DEBUG
     BIO_printf(bio_err, "DEBUG: renaming \"%s\" to \"%s\"\n",
@@ -1877,9 +1877,9 @@ CA_DB *load_index(char *dbfile, DB_ATTR *db_attr)
         goto err;
 
 #ifndef OPENSSL_SYS_VMS
-    BIO_snprintf(buf[0], sizeof buf[0], "%s.attr", dbfile);
+    BIO_snprintf(buf[0], sizeof(buf[0]), "%s.attr", dbfile);
 #else
-    BIO_snprintf(buf[0], sizeof buf[0], "%s-attr", dbfile);
+    BIO_snprintf(buf[0], sizeof(buf[0]), "%s-attr", dbfile);
 #endif
     dbattr_conf = NCONF_new(NULL);
     if (NCONF_load(dbattr_conf, buf[0], &errorline) <= 0) {
@@ -1967,19 +1967,19 @@ int save_index(const char *dbfile, const char *suffix,
         goto err;
     }
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s.attr", dbfile);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s.attr", dbfile);
 #else
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s-attr", dbfile);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s-attr", dbfile);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s.attr.%s", dbfile, suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s.attr.%s", dbfile, suffix);
 #else
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s-attr-%s", dbfile, suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s-attr-%s", dbfile, suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", dbfile, suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", dbfile, suffix);
 #else
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", dbfile, suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", dbfile, suffix);
 #endif
 #ifdef RL_DEBUG
     BIO_printf(bio_err, "DEBUG: writing \"%s\"\n", buf[0]);
@@ -2028,29 +2028,29 @@ int rotate_index(const char *dbfile, const char *new_s
         goto err;
     }
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[4], sizeof buf[4], "%s.attr", dbfile);
+    j = BIO_snprintf(buf[4], sizeof(buf[4]), "%s.attr", dbfile);
 #else
-    j = BIO_snprintf(buf[4], sizeof buf[4], "%s-attr", dbfile);
+    j = BIO_snprintf(buf[4], sizeof(buf[4]), "%s-attr", dbfile);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s.attr.%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s.attr.%s", dbfile, new_suffix);
 #else
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s-attr-%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s-attr-%s", dbfile, new_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", dbfile, new_suffix);
 #else
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", dbfile, new_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s.%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s.%s", dbfile, old_suffix);
 #else
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s-%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s-%s", dbfile, old_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[3], sizeof buf[3], "%s.attr.%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[3], sizeof(buf[3]), "%s.attr.%s", dbfile, old_suffix);
 #else
-    j = BIO_snprintf(buf[3], sizeof buf[3], "%s-attr-%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[3], sizeof(buf[3]), "%s-attr-%s", dbfile, old_suffix);
 #endif
 #ifdef RL_DEBUG
     BIO_printf(bio_err, "DEBUG: renaming \"%s\" to \"%s\"\n", dbfile, buf[1]);
@@ -2604,7 +2604,7 @@ static void jpake_send_step3a(BIO *bconn, JPAKE_CTX *c
 
     JPAKE_STEP3A_init(&s3a);
     JPAKE_STEP3A_generate(&s3a, ctx);
-    BIO_write(bconn, s3a.hhk, sizeof s3a.hhk);
+    BIO_write(bconn, s3a.hhk, sizeof(s3a.hhk));
     (void)BIO_flush(bconn);
     JPAKE_STEP3A_release(&s3a);
 }
@@ -2615,7 +2615,7 @@ static void jpake_send_step3b(BIO *bconn, JPAKE_CTX *c
 
     JPAKE_STEP3B_init(&s3b);
     JPAKE_STEP3B_generate(&s3b, ctx);
-    BIO_write(bconn, s3b.hk, sizeof s3b.hk);
+    BIO_write(bconn, s3b.hk, sizeof(s3b.hk));
     (void)BIO_flush(bconn);
     JPAKE_STEP3B_release(&s3b);
 }
@@ -2625,7 +2625,7 @@ static void readbn(BIGNUM **bn, BIO *bconn)
     char buf[10240];
     int l;
 
-    l = BIO_gets(bconn, buf, sizeof buf);
+    l = BIO_gets(bconn, buf, sizeof(buf));
     assert(l > 0);
     assert(buf[l - 1] == '\n');
     buf[l - 1] = '\0';
@@ -2672,8 +2672,8 @@ static void jpake_receive_step3a(JPAKE_CTX *ctx, BIO *
     int l;
 
     JPAKE_STEP3A_init(&s3a);
-    l = BIO_read(bconn, s3a.hhk, sizeof s3a.hhk);
-    assert(l == sizeof s3a.hhk);
+    l = BIO_read(bconn, s3a.hhk, sizeof(s3a.hhk));
+    assert(l == sizeof(s3a.hhk));
     if (!JPAKE_STEP3A_process(ctx, &s3a)) {
         ERR_print_errors(bio_err);
         exit(1);
@@ -2687,8 +2687,8 @@ static void jpake_receive_step3b(JPAKE_CTX *ctx, BIO *
     int l;
 
     JPAKE_STEP3B_init(&s3b);
-    l = BIO_read(bconn, s3b.hk, sizeof s3b.hk);
-    assert(l == sizeof s3b.hk);
+    l = BIO_read(bconn, s3b.hk, sizeof(s3b.hk));
+    assert(l == sizeof(s3b.hk));
     if (!JPAKE_STEP3B_process(ctx, &s3b)) {
         ERR_print_errors(bio_err);
         exit(1);

Modified: head/crypto/openssl/apps/ca.c
==============================================================================
--- head/crypto/openssl/apps/ca.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/ca.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -1628,8 +1628,7 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
                    CONF *lconf, unsigned long certopt, unsigned long nameopt,
                    int default_op, int ext_copy, int selfsign)
 {
-    X509_NAME *name = NULL, *CAname = NULL, *subject = NULL, *dn_subject =
-        NULL;
+    X509_NAME *name = NULL, *CAname = NULL, *subject = NULL;
     ASN1_UTCTIME *tm, *tmptm;
     ASN1_STRING *str, *str2;
     ASN1_OBJECT *obj;
@@ -1817,8 +1816,6 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
 
             if (push != NULL) {
                 if (!X509_NAME_add_entry(subject, push, -1, 0)) {
-                    if (push != NULL)
-                        X509_NAME_ENTRY_free(push);
                     BIO_printf(bio_err, "Memory allocation failure\n");
                     goto err;
                 }
@@ -1836,104 +1833,6 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
             goto err;
     }
 
-    if (verbose)
-        BIO_printf(bio_err,
-                   "The subject name appears to be ok, checking data base for clashes\n");
-
-    /* Build the correct Subject if no e-mail is wanted in the subject */
-    /*
-     * and add it later on because of the method extensions are added
-     * (altName)
-     */
-
-    if (email_dn)
-        dn_subject = subject;
-    else {
-        X509_NAME_ENTRY *tmpne;
-        /*
-         * Its best to dup the subject DN and then delete any email addresses
-         * because this retains its structure.
-         */
-        if (!(dn_subject = X509_NAME_dup(subject))) {
-            BIO_printf(bio_err, "Memory allocation failure\n");
-            goto err;
-        }
-        while ((i = X509_NAME_get_index_by_NID(dn_subject,
-                                               NID_pkcs9_emailAddress,
-                                               -1)) >= 0) {
-            tmpne = X509_NAME_get_entry(dn_subject, i);
-            X509_NAME_delete_entry(dn_subject, i);
-            X509_NAME_ENTRY_free(tmpne);
-        }
-    }
-
-    if (BN_is_zero(serial))
-        row[DB_serial] = BUF_strdup("00");
-    else
-        row[DB_serial] = BN_bn2hex(serial);
-    if (row[DB_serial] == NULL) {
-        BIO_printf(bio_err, "Memory allocation failure\n");
-        goto err;
-    }
-
-    if (db->attributes.unique_subject) {
-        OPENSSL_STRING *crow = row;
-
-        rrow = TXT_DB_get_by_index(db->db, DB_name, crow);
-        if (rrow != NULL) {
-            BIO_printf(bio_err,
-                       "ERROR:There is already a certificate for %s\n",
-                       row[DB_name]);
-        }
-    }
-    if (rrow == NULL) {
-        rrow = TXT_DB_get_by_index(db->db, DB_serial, row);
-        if (rrow != NULL) {
-            BIO_printf(bio_err,
-                       "ERROR:Serial number %s has already been issued,\n",
-                       row[DB_serial]);
-            BIO_printf(bio_err,
-                       "      check the database/serial_file for corruption\n");
-        }
-    }
-
-    if (rrow != NULL) {
-        BIO_printf(bio_err, "The matching entry has the following details\n");
-        if (rrow[DB_type][0] == 'E')
-            p = "Expired";
-        else if (rrow[DB_type][0] == 'R')
-            p = "Revoked";
-        else if (rrow[DB_type][0] == 'V')
-            p = "Valid";
-        else
-            p = "\ninvalid type, Data base error\n";
-        BIO_printf(bio_err, "Type          :%s\n", p);;
-        if (rrow[DB_type][0] == 'R') {
-            p = rrow[DB_exp_date];
-            if (p == NULL)
-                p = "undef";
-            BIO_printf(bio_err, "Was revoked on:%s\n", p);
-        }
-        p = rrow[DB_exp_date];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "Expires on    :%s\n", p);
-        p = rrow[DB_serial];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "Serial Number :%s\n", p);
-        p = rrow[DB_file];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "File name     :%s\n", p);
-        p = rrow[DB_name];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "Subject Name  :%s\n", p);
-        ok = -1;                /* This is now a 'bad' error. */
-        goto err;
-    }
-
     /* We are now totally happy, lets make and sign the certificate */
     if (verbose)
         BIO_printf(bio_err,
@@ -2056,12 +1955,126 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
                 goto err;
     }
 
-    /* Set the right value for the noemailDN option */
-    if (email_dn == 0) {
-        if (!X509_set_subject_name(ret, dn_subject))
+    if (verbose)
+        BIO_printf(bio_err,
+                   "The subject name appears to be ok, checking data base for clashes\n");
+
+    /* Build the correct Subject if no e-mail is wanted in the subject */
+
+    if (!email_dn) {
+        X509_NAME_ENTRY *tmpne;
+        X509_NAME *dn_subject;
+
+        /*
+         * Its best to dup the subject DN and then delete any email addresses
+         * because this retains its structure.
+         */
+        if (!(dn_subject = X509_NAME_dup(subject))) {
+            BIO_printf(bio_err, "Memory allocation failure\n");
             goto err;
+        }
+        while ((i = X509_NAME_get_index_by_NID(dn_subject,
+                                               NID_pkcs9_emailAddress,
+                                               -1)) >= 0) {
+            tmpne = X509_NAME_get_entry(dn_subject, i);
+            X509_NAME_delete_entry(dn_subject, i);
+            X509_NAME_ENTRY_free(tmpne);
+        }
+
+        if (!X509_set_subject_name(ret, dn_subject)) {
+            X509_NAME_free(dn_subject);
+            goto err;
+        }
+        X509_NAME_free(dn_subject);
     }
 
+    row[DB_name] = X509_NAME_oneline(X509_get_subject_name(ret), NULL, 0);
+    if (row[DB_name] == NULL) {
+        BIO_printf(bio_err, "Memory allocation failure\n");
+        goto err;
+    }
+
+    if (BN_is_zero(serial))
+        row[DB_serial] = BUF_strdup("00");
+    else
+        row[DB_serial] = BN_bn2hex(serial);
+    if (row[DB_serial] == NULL) {
+        BIO_printf(bio_err, "Memory allocation failure\n");
+        goto err;
+    }
+
+    if (row[DB_name][0] == '\0') {
+        /*
+         * An empty subject! We'll use the serial number instead. If
+         * unique_subject is in use then we don't want different entries with
+         * empty subjects matching each other.
+         */
+        OPENSSL_free(row[DB_name]);
+        row[DB_name] = OPENSSL_strdup(row[DB_serial]);
+        if (row[DB_name] == NULL) {
+            BIO_printf(bio_err, "Memory allocation failure\n");
+            goto err;
+        }
+    }
+
+    if (db->attributes.unique_subject) {
+        OPENSSL_STRING *crow = row;
+
+        rrow = TXT_DB_get_by_index(db->db, DB_name, crow);
+        if (rrow != NULL) {
+            BIO_printf(bio_err,
+                       "ERROR:There is already a certificate for %s\n",
+                       row[DB_name]);
+        }
+    }
+    if (rrow == NULL) {
+        rrow = TXT_DB_get_by_index(db->db, DB_serial, row);
+        if (rrow != NULL) {
+            BIO_printf(bio_err,
+                       "ERROR:Serial number %s has already been issued,\n",
+                       row[DB_serial]);
+            BIO_printf(bio_err,
+                       "      check the database/serial_file for corruption\n");
+        }
+    }
+
+    if (rrow != NULL) {
+        BIO_printf(bio_err, "The matching entry has the following details\n");
+        if (rrow[DB_type][0] == 'E')
+            p = "Expired";
+        else if (rrow[DB_type][0] == 'R')
+            p = "Revoked";
+        else if (rrow[DB_type][0] == 'V')
+            p = "Valid";
+        else
+            p = "\ninvalid type, Data base error\n";
+        BIO_printf(bio_err, "Type          :%s\n", p);;
+        if (rrow[DB_type][0] == 'R') {
+            p = rrow[DB_exp_date];
+            if (p == NULL)
+                p = "undef";
+            BIO_printf(bio_err, "Was revoked on:%s\n", p);
+        }
+        p = rrow[DB_exp_date];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "Expires on    :%s\n", p);
+        p = rrow[DB_serial];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "Serial Number :%s\n", p);
+        p = rrow[DB_file];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "File name     :%s\n", p);
+        p = rrow[DB_name];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "Subject Name  :%s\n", p);
+        ok = -1;                /* This is now a 'bad' error. */
+        goto err;
+    }
+
     if (!default_op) {
         BIO_printf(bio_err, "Certificate Details:\n");
         /*
@@ -2110,10 +2123,9 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
     row[DB_exp_date] = OPENSSL_malloc(tm->length + 1);
     row[DB_rev_date] = OPENSSL_malloc(1);
     row[DB_file] = OPENSSL_malloc(8);
-    row[DB_name] = X509_NAME_oneline(X509_get_subject_name(ret), NULL, 0);
     if ((row[DB_type] == NULL) || (row[DB_exp_date] == NULL) ||
         (row[DB_rev_date] == NULL) ||
-        (row[DB_file] == NULL) || (row[DB_name] == NULL)) {
+        (row[DB_file] == NULL)) {
         BIO_printf(bio_err, "Memory allocation failure\n");
         goto err;
     }
@@ -2143,18 +2155,16 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
     irow = NULL;
     ok = 1;
  err:
-    if (irow != NULL) {
+    if (ok != 1) {
         for (i = 0; i < DB_NUMBER; i++)
             OPENSSL_free(row[i]);
-        OPENSSL_free(irow);
     }
+    OPENSSL_free(irow);
 
     if (CAname != NULL)
         X509_NAME_free(CAname);
     if (subject != NULL)
         X509_NAME_free(subject);
-    if ((dn_subject != NULL) && !email_dn)
-        X509_NAME_free(dn_subject);
     if (tmptm != NULL)
         ASN1_UTCTIME_free(tmptm);
     if (ok <= 0) {
@@ -2357,6 +2367,11 @@ static int do_revoke(X509 *x509, CA_DB *db, int type, 
     else
         row[DB_serial] = BN_bn2hex(bn);
     BN_free(bn);
+    if (row[DB_name] != NULL && row[DB_name][0] == '\0') {
+        /* Entries with empty Subjects actually use the serial number instead */
+        OPENSSL_free(row[DB_name]);
+        row[DB_name] = OPENSSL_strdup(row[DB_serial]);
+    }
     if ((row[DB_name] == NULL) || (row[DB_serial] == NULL)) {
         BIO_printf(bio_err, "Memory allocation failure\n");
         goto err;

Modified: head/crypto/openssl/apps/ciphers.c
==============================================================================
--- head/crypto/openssl/apps/ciphers.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/ciphers.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -217,7 +217,7 @@ int MAIN(int argc, char **argv)
                 BIO_printf(STDout, "%s - ", nm);
             }
 #endif
-            BIO_puts(STDout, SSL_CIPHER_description(c, buf, sizeof buf));
+            BIO_puts(STDout, SSL_CIPHER_description(c, buf, sizeof(buf)));
         }
     }
 

Modified: head/crypto/openssl/apps/cms.c
==============================================================================
--- head/crypto/openssl/apps/cms.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/cms.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -4,7 +4,7 @@
  * project.
  */
 /* ====================================================================
- * Copyright (c) 2008 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 2008-2018 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -977,12 +977,16 @@ int MAIN(int argc, char **argv)
 
             signer = load_cert(bio_err, signerfile, FORMAT_PEM, NULL,
                                e, "signer certificate");
-            if (!signer)
+            if (!signer) {
+                ret = 2;
                 goto end;
+            }
             key = load_key(bio_err, keyfile, keyform, 0, passin, e,
                            "signing key file");
-            if (!key)
+            if (!key) {
+                ret = 2;
                 goto end;
+            }
             for (kparam = key_first; kparam; kparam = kparam->next) {
                 if (kparam->idx == i) {
                     tflags |= CMS_KEY_PARAM;

Modified: head/crypto/openssl/apps/dgst.c
==============================================================================
--- head/crypto/openssl/apps/dgst.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/dgst.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -145,7 +145,7 @@ int MAIN(int argc, char **argv)
         goto end;
 
     /* first check the program name */
-    program_name(argv[0], pname, sizeof pname);
+    program_name(argv[0], pname, sizeof(pname));
 
     md = EVP_get_digestbyname(pname);
 

Modified: head/crypto/openssl/apps/dsaparam.c
==============================================================================
--- head/crypto/openssl/apps/dsaparam.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/dsaparam.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -382,6 +382,9 @@ int MAIN(int argc, char **argv)
         printf("\treturn(dsa);\n\t}\n");
     }
 
+    if (outformat == FORMAT_ASN1 && genkey)
+        noout = 1;
+
     if (!noout) {
         if (outformat == FORMAT_ASN1)
             i = i2d_DSAparams_bio(out, dsa);

Modified: head/crypto/openssl/apps/ecparam.c
==============================================================================
--- head/crypto/openssl/apps/ecparam.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/ecparam.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -3,7 +3,7 @@
  * Written by Nils Larsch for the OpenSSL project.
  */
 /* ====================================================================
- * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -546,6 +546,9 @@ int MAIN(int argc, char **argv)
         BIO_printf(out, "\treturn(group);\n\t}\n");
     }
 
+    if (outformat == FORMAT_ASN1 && genkey)
+        noout = 1;
+
     if (!noout) {
         if (outformat == FORMAT_ASN1)
             i = i2d_ECPKParameters_bio(out, group);
@@ -581,6 +584,9 @@ int MAIN(int argc, char **argv)
 
         if (EC_KEY_set_group(eckey, group) == 0)
             goto end;
+
+        if (new_form)
+            EC_KEY_set_conv_form(eckey, form);
 
         if (!EC_KEY_generate_key(eckey)) {
             EC_KEY_free(eckey);

Modified: head/crypto/openssl/apps/enc.c
==============================================================================
--- head/crypto/openssl/apps/enc.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/enc.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -114,7 +114,7 @@ int MAIN(int, char **);
 int MAIN(int argc, char **argv)
 {
     static const char magic[] = "Salted__";
-    char mbuf[sizeof magic - 1];
+    char mbuf[sizeof(magic) - 1];
     char *strbuf = NULL;
     unsigned char *buff = NULL, *bufsize = NULL;
     int bsize = BSIZE, verbose = 0;
@@ -154,7 +154,7 @@ int MAIN(int argc, char **argv)
         goto end;
 
     /* first check the program name */
-    program_name(argv[0], pname, sizeof pname);
+    program_name(argv[0], pname, sizeof(pname));
     if (strcmp(pname, "base64") == 0)
         base64 = 1;
 #ifdef ZLIB
@@ -247,7 +247,7 @@ int MAIN(int argc, char **argv)
                 goto bad;
             }
             buf[0] = '\0';
-            if (!fgets(buf, sizeof buf, infile)) {
+            if (!fgets(buf, sizeof(buf), infile)) {
                 BIO_printf(bio_err, "unable to read key from '%s'\n", file);
                 goto bad;
             }
@@ -432,7 +432,7 @@ int MAIN(int argc, char **argv)
         for (;;) {
             char buf[200];
 
-            BIO_snprintf(buf, sizeof buf, "enter %s %s password:",
+            BIO_snprintf(buf, sizeof(buf), "enter %s %s password:",
                          OBJ_nid2ln(EVP_CIPHER_nid(cipher)),
                          (enc) ? "encryption" : "decryption");
             strbuf[0] = '\0';
@@ -517,31 +517,31 @@ int MAIN(int argc, char **argv)
             else {
                 if (enc) {
                     if (hsalt) {
-                        if (!set_hex(hsalt, salt, sizeof salt)) {
+                        if (!set_hex(hsalt, salt, sizeof(salt))) {
                             BIO_printf(bio_err, "invalid hex salt value\n");
                             goto end;
                         }
-                    } else if (RAND_bytes(salt, sizeof salt) <= 0)
+                    } else if (RAND_bytes(salt, sizeof(salt)) <= 0)
                         goto end;
                     /*
                      * If -P option then don't bother writing
                      */
                     if ((printkey != 2)
                         && (BIO_write(wbio, magic,
-                                      sizeof magic - 1) != sizeof magic - 1
+                                      sizeof(magic) - 1) != sizeof(magic) - 1
                             || BIO_write(wbio,
                                          (char *)salt,
-                                         sizeof salt) != sizeof salt)) {
+                                         sizeof(salt)) != sizeof(salt))) {
                         BIO_printf(bio_err, "error writing output file\n");
                         goto end;
                     }
-                } else if (BIO_read(rbio, mbuf, sizeof mbuf) != sizeof mbuf
+                } else if (BIO_read(rbio, mbuf, sizeof(mbuf)) != sizeof(mbuf)
                            || BIO_read(rbio,
                                        (unsigned char *)salt,
-                                       sizeof salt) != sizeof salt) {
+                                       sizeof(salt)) != sizeof(salt)) {
                     BIO_printf(bio_err, "error reading input file\n");
                     goto end;
-                } else if (memcmp(mbuf, magic, sizeof magic - 1)) {
+                } else if (memcmp(mbuf, magic, sizeof(magic) - 1)) {
                     BIO_printf(bio_err, "bad magic number\n");
                     goto end;
                 }
@@ -564,7 +564,7 @@ int MAIN(int argc, char **argv)
             int siz = EVP_CIPHER_iv_length(cipher);
             if (siz == 0) {
                 BIO_printf(bio_err, "warning: iv not use by this cipher\n");
-            } else if (!set_hex(hiv, iv, sizeof iv)) {
+            } else if (!set_hex(hiv, iv, sizeof(iv))) {
                 BIO_printf(bio_err, "invalid hex iv value\n");
                 goto end;
             }

Modified: head/crypto/openssl/apps/errstr.c
==============================================================================
--- head/crypto/openssl/apps/errstr.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/errstr.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -108,7 +108,7 @@ int MAIN(int argc, char **argv)
 
     for (i = 1; i < argc; i++) {
         if (sscanf(argv[i], "%lx", &l)) {
-            ERR_error_string_n(l, buf, sizeof buf);
+            ERR_error_string_n(l, buf, sizeof(buf));
             printf("%s\n", buf);
         } else {
             printf("%s: bad error code\n", argv[i]);

Modified: head/crypto/openssl/apps/ocsp.c
==============================================================================
--- head/crypto/openssl/apps/ocsp.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/ocsp.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -1195,7 +1195,7 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcb
     *pcbio = cbio;
 
     for (;;) {
-        len = BIO_gets(cbio, inbuf, sizeof inbuf);
+        len = BIO_gets(cbio, inbuf, sizeof(inbuf));
         if (len <= 0)
             return 1;
         /* Look for "POST" signalling start of query */

Modified: head/crypto/openssl/apps/openssl.c
==============================================================================
--- head/crypto/openssl/apps/openssl.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/openssl.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -351,7 +351,7 @@ int main(int Argc, char *ARGV[])
     prog = prog_init();
 
     /* first check the program name */
-    program_name(Argv[0], pname, sizeof pname);
+    program_name(Argv[0], pname, sizeof(pname));
 
     f.name = pname;
     fp = lh_FUNCTION_retrieve(prog, &f);
@@ -379,7 +379,7 @@ int main(int Argc, char *ARGV[])
     for (;;) {
         ret = 0;
         p = buf;
-        n = sizeof buf;
+        n = sizeof(buf);
         i = 0;
         for (;;) {
             p[0] = '\0';
@@ -685,7 +685,7 @@ static LHASH_OF(FUNCTION) *prog_init(void)
 
     /* Purely so it looks nice when the user hits ? */
     for (i = 0, f = functions; f->name != NULL; ++f, ++i) ;
-    qsort(functions, i, sizeof *functions, SortFnByName);
+    qsort(functions, i, sizeof(*functions), SortFnByName);
 
     if ((ret = lh_FUNCTION_new()) == NULL)
         return (NULL);

Modified: head/crypto/openssl/apps/passwd.c
==============================================================================
--- head/crypto/openssl/apps/passwd.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/passwd.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -252,7 +252,7 @@ int MAIN(int argc, char **argv)
                     /* ignore rest of line */
                     char trash[BUFSIZ];
                     do
-                        r = BIO_gets(in, trash, sizeof trash);
+                        r = BIO_gets(in, trash, sizeof(trash));
                     while ((r > 0) && (!strchr(trash, '\n')));
                 }
 
@@ -329,8 +329,8 @@ static char *md5crypt(const char *passwd, const char *
     EVP_DigestUpdate(&md2, passwd, passwd_len);
     EVP_DigestFinal_ex(&md2, buf, NULL);
 
-    for (i = passwd_len; i > sizeof buf; i -= sizeof buf)
-        EVP_DigestUpdate(&md, buf, sizeof buf);
+    for (i = passwd_len; i > sizeof(buf); i -= sizeof(buf))
+        EVP_DigestUpdate(&md, buf, sizeof(buf));
     EVP_DigestUpdate(&md, buf, i);
 
     n = passwd_len;
@@ -343,13 +343,13 @@ static char *md5crypt(const char *passwd, const char *
     for (i = 0; i < 1000; i++) {
         EVP_DigestInit_ex(&md2, EVP_md5(), NULL);
         EVP_DigestUpdate(&md2, (i & 1) ? (unsigned const char *)passwd : buf,
-                         (i & 1) ? passwd_len : sizeof buf);
+                         (i & 1) ? passwd_len : sizeof(buf));
         if (i % 3)
             EVP_DigestUpdate(&md2, salt_out, salt_len);
         if (i % 7)
             EVP_DigestUpdate(&md2, passwd, passwd_len);
         EVP_DigestUpdate(&md2, (i & 1) ? buf : (unsigned const char *)passwd,
-                         (i & 1) ? sizeof buf : passwd_len);
+                         (i & 1) ? sizeof(buf) : passwd_len);
         EVP_DigestFinal_ex(&md2, buf, NULL);
     }
     EVP_MD_CTX_cleanup(&md2);
@@ -357,7 +357,7 @@ static char *md5crypt(const char *passwd, const char *
     {
         /* transform buf into output string */
 
-        unsigned char buf_perm[sizeof buf];
+        unsigned char buf_perm[sizeof(buf)];
         int dest, source;
         char *output;
 
@@ -369,7 +369,7 @@ static char *md5crypt(const char *passwd, const char *
         buf_perm[15] = buf[11];
 #  ifndef PEDANTIC              /* Unfortunately, this generates a "no
                                  * effect" warning */
-        assert(16 == sizeof buf_perm);
+        assert(16 == sizeof(buf_perm));
 #  endif
 
         output = salt_out + salt_len;

Modified: head/crypto/openssl/apps/pkcs12.c
==============================================================================
--- head/crypto/openssl/apps/pkcs12.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/pkcs12.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -481,7 +481,7 @@ int MAIN(int argc, char **argv)
         CRYPTO_push_info("read MAC password");
 # endif
         if (EVP_read_pw_string
-            (macpass, sizeof macpass, "Enter MAC Password:", export_cert)) {
+            (macpass, sizeof(macpass), "Enter MAC Password:", export_cert)) {
             BIO_printf(bio_err, "Can't read Password\n");
             goto end;
         }
@@ -629,13 +629,13 @@ int MAIN(int argc, char **argv)
 # endif
 
         if (!noprompt &&
-            EVP_read_pw_string(pass, sizeof pass, "Enter Export Password:",
+            EVP_read_pw_string(pass, sizeof(pass), "Enter Export Password:",
                                1)) {
             BIO_printf(bio_err, "Can't read Password\n");
             goto export_end;
         }
         if (!twopass)
-            BUF_strlcpy(macpass, pass, sizeof macpass);
+            BUF_strlcpy(macpass, pass, sizeof(macpass));
 
 # ifdef CRYPTO_MDEBUG
         CRYPTO_pop_info();
@@ -698,7 +698,7 @@ int MAIN(int argc, char **argv)
     CRYPTO_push_info("read import password");
 # endif
     if (!noprompt
-        && EVP_read_pw_string(pass, sizeof pass, "Enter Import Password:",
+        && EVP_read_pw_string(pass, sizeof(pass), "Enter Import Password:",
                               0)) {
         BIO_printf(bio_err, "Can't read Password\n");
         goto end;
@@ -708,7 +708,7 @@ int MAIN(int argc, char **argv)
 # endif
 
     if (!twopass)
-        BUF_strlcpy(macpass, pass, sizeof macpass);
+        BUF_strlcpy(macpass, pass, sizeof(macpass));
 
     if ((options & INFO) && p12->mac)
         BIO_printf(bio_err, "MAC Iteration %ld\n",

Modified: head/crypto/openssl/apps/pkcs8.c
==============================================================================
--- head/crypto/openssl/apps/pkcs8.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/pkcs8.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -277,7 +277,7 @@ int MAIN(int argc, char **argv)
             else {
                 p8pass = pass;
                 if (EVP_read_pw_string
-                    (pass, sizeof pass, "Enter Encryption Password:", 1))
+                    (pass, sizeof(pass), "Enter Encryption Password:", 1))
                     goto end;
             }
             app_RAND_load_file(NULL, bio_err, 0);
@@ -331,7 +331,7 @@ int MAIN(int argc, char **argv)
             p8pass = passin;
         else {
             p8pass = pass;
-            EVP_read_pw_string(pass, sizeof pass, "Enter Password:", 0);
+            EVP_read_pw_string(pass, sizeof(pass), "Enter Password:", 0);
         }
         p8inf = PKCS8_decrypt(p8, p8pass, strlen(p8pass));
     }

Modified: head/crypto/openssl/apps/rand.c
==============================================================================
--- head/crypto/openssl/apps/rand.c	Tue Mar 27 17:04:01 2018	(r331626)
+++ head/crypto/openssl/apps/rand.c	Tue Mar 27 17:17:58 2018	(r331627)
@@ -198,7 +198,7 @@ int MAIN(int argc, char **argv)
 
         chunk = num;
         if (chunk > (int)sizeof(buf))

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:31:46 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 89F27F6E131;
 Tue, 27 Mar 2018 17:31:46 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1])
 (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 3130A73DF7;
 Tue, 27 Mar 2018 17:31:46 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215])
 by mail.baldwin.cx (Postfix) with ESMTPSA id 7FAE210A8C2;
 Tue, 27 Mar 2018 13:31:45 -0400 (EDT)
From: John Baldwin 
To: Alexey Dokuchaev 
Cc: Warner Losh , Kyle Evans ,
 svn-src-head@freebsd.org, svn-src-all@freebsd.org,
 src-committers 
Subject: Re: svn commit: r331209 - head
Date: Tue, 27 Mar 2018 09:48:43 -0700
Message-ID: <11592636.Xep9SDNT9W@ralph.baldwin.cx>
User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; )
In-Reply-To: <20180327051912.GA5729@FreeBSD.org>
References: <201803191527.w2JFRr7B058668@repo.freebsd.org>
 <3226647.aiAOVF4eaK@ralph.baldwin.cx> <20180327051912.GA5729@FreeBSD.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3
 (mail.baldwin.cx); Tue, 27 Mar 2018 13:31:45 -0400 (EDT)
X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx
X-Virus-Status: Clean
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:31:46 -0000

On Tuesday, March 27, 2018 05:19:12 AM Alexey Dokuchaev wrote:
> On Thu, Mar 22, 2018 at 08:52:47AM -0700, John Baldwin wrote:
> > On Thursday, March 22, 2018 04:39:38 AM Alexey Dokuchaev wrote:
> > > > ...
> > > Right, but John had mentioned extra reboot *between* installkernel and
> > > installworld, which I've never heard of before.
> > 
> > From the end up of src/UPDATING:
> > 
> >         
> >         make buildworld
> >         make kernel KERNCONF=YOUR_KERNEL_HERE
> >         
> 
> If by "reboot" in your original message you meant "drop to single user"
> then there's no confusion.  It's just that in my understanding "reboot"
> means, well, reboot.

No, I meant reboot and it clearly says here "reboot".  Note that
'make kernel' does 'make buildkernel' and 'make installkernel', so
the reboot quoted above is after installkernel but before installworld.
Perhaps 'make kernel' should be expanded into separate lines for
'buildkernel' and 'installkernel' if that is confusing.

-- 
John Baldwin

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:34:29 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9FF2BF6E467;
 Tue, 27 Mar 2018 17:34:29 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4C78174169;
 Tue, 27 Mar 2018 17:34:29 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 476871F3CF;
 Tue, 27 Mar 2018 17:34:29 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHYTrb064698;
 Tue, 27 Mar 2018 17:34:29 GMT (envelope-from cem@FreeBSD.org)
Received: (from cem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHYTTU064697;
 Tue, 27 Mar 2018 17:34:29 GMT (envelope-from cem@FreeBSD.org)
Message-Id: <201803271734.w2RHYTTU064697@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org
 using -f
From: Conrad Meyer 
Date: Tue, 27 Mar 2018 17:34:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331628 - head/tools/tools/crypto
X-SVN-Group: head
X-SVN-Commit-Author: cem
X-SVN-Commit-Paths: head/tools/tools/crypto
X-SVN-Commit-Revision: 331628
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:34:29 -0000

Author: cem
Date: Tue Mar 27 17:34:28 2018
New Revision: 331628
URL: https://svnweb.freebsd.org/changeset/base/331628

Log:
  cryptotest: Add blake2 hashes to tool
  
  Sponsored by:	Dell EMC Isilon

Modified:
  head/tools/tools/crypto/cryptotest.c

Modified: head/tools/tools/crypto/cryptotest.c
==============================================================================
--- head/tools/tools/crypto/cryptotest.c	Tue Mar 27 17:17:58 2018	(r331627)
+++ head/tools/tools/crypto/cryptotest.c	Tue Mar 27 17:34:28 2018	(r331628)
@@ -56,6 +56,8 @@
  *	aes	rijndael/aes 128-bit cbc
  *	aes192	rijndael/aes 192-bit cbc
  *	aes256	rijndael/aes 256-bit cbc
+ *	blake2b	Blake2b
+ *	blake2s	Blake2s
  *	md5	md5 hmac
  *	sha1	sha1 hmac
  *	sha256	256-bit sha2 hmac
@@ -132,6 +134,8 @@ struct alg {
 	{ "aes",	0,	16,	16,	16,	CRYPTO_AES_CBC},
 	{ "aes192",	0,	16,	24,	24,	CRYPTO_AES_CBC},
 	{ "aes256",	0,	16,	32,	32,	CRYPTO_AES_CBC},
+	{ "blake2b",	1,	128,	64,	64,	CRYPTO_BLAKE2B },
+	{ "blake2s",	1,	64,	32,	32,	CRYPTO_BLAKE2S },
 	{ "md5",	1,	8,	16,	16,	CRYPTO_MD5_HMAC },
 	{ "sha1",	1,	8,	20,	20,	CRYPTO_SHA1_HMAC },
 	{ "sha256",	1,	8,	32,	32,	CRYPTO_SHA2_256_HMAC },
@@ -147,6 +151,7 @@ usage(const char* cmd)
 	printf("where algorithm is one of:\n");
 	printf("    null des 3des (default) blowfish cast skipjack rij\n");
 	printf("    aes aes192 aes256 md5 sha1 sha256 sha384 sha512\n");
+	printf("    blake2b blake2s\n");
 	printf(" or an encryption algorithm concatented with authentication\n");
 	printf(" algorithm with '+' in the middle, e.g., aes+sha1.\n");
 	printf("count is the number of encrypt/decrypt ops to do\n");

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:35:16 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F5CFF6E565;
 Tue, 27 Mar 2018 17:35:16 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E9C56742D2;
 Tue, 27 Mar 2018 17:35:15 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E49891F3D0;
 Tue, 27 Mar 2018 17:35:15 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHZFWk064779;
 Tue, 27 Mar 2018 17:35:15 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHZFs5064777;
 Tue, 27 Mar 2018 17:35:15 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271735.w2RHZFs5064777@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 17:35:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331629 - in stable/11/sys: cam/scsi modules/cam
X-SVN-Group: stable-11
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in stable/11/sys: cam/scsi modules/cam
X-SVN-Commit-Revision: 331629
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:35:16 -0000

Author: brooks
Date: Tue Mar 27 17:35:15 2018
New Revision: 331629
URL: https://svnweb.freebsd.org/changeset/base/331629

Log:
  MFC r330819, r330885, r330934
  
  r330819:
  Reject CAMIOGET and CAMIOQUEUE ioctl's on pass(4) in 32-bit compat mode.
  
  These take a union ccb argument which is full of kernel pointers.
  Substantial translation efforts would be required to make this work.
  By rejecting the request we avoid processing or returning entierly
  wrong data.
  
  Reviewed by:	imp, ken, markj, cem
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14654
  
  r330885:
  We need opt_compat.h after r330819 and 330820.
  
  Add opt_compat.h to fix the stand-alone build case.
  
  Sponsored by: Netflix.
  
  r330934:
  This should have been += so clean builds work.
  
  Noticed by: hps@

Modified:
  stable/11/sys/cam/scsi/scsi_pass.c
  stable/11/sys/modules/cam/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cam/scsi/scsi_pass.c
==============================================================================
--- stable/11/sys/cam/scsi/scsi_pass.c	Tue Mar 27 17:34:28 2018	(r331628)
+++ stable/11/sys/cam/scsi/scsi_pass.c	Tue Mar 27 17:35:15 2018	(r331629)
@@ -28,6 +28,8 @@
 #include 
 __FBSDID("$FreeBSD$");
 
+#include "opt_compat.h"
+
 #include 
 #include 
 #include 
@@ -43,6 +45,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -1860,6 +1863,12 @@ passdoioctl(struct cdev *dev, u_long cmd, caddr_t addr
 		union ccb **user_ccb, *ccb;
 		xpt_opcode fc;
 
+#ifdef COMPAT_FREEBSD32
+		if (SV_PROC_FLAG(td->td_proc, SV_ILP32)) {
+			error = ENOTTY;
+			goto bailout;
+		}
+#endif
 		if ((softc->flags & PASS_FLAG_ZONE_VALID) == 0) {
 			error = passcreatezone(periph);
 			if (error != 0)
@@ -2030,6 +2039,12 @@ camioqueue_error:
 		struct pass_io_req *io_req;
 		int old_error;
 
+#ifdef COMPAT_FREEBSD32
+		if (SV_PROC_FLAG(td->td_proc, SV_ILP32)) {
+			error = ENOTTY;
+			goto bailout;
+		}
+#endif
 		user_ccb = (union ccb **)addr;
 		old_error = 0;
 

Modified: stable/11/sys/modules/cam/Makefile
==============================================================================
--- stable/11/sys/modules/cam/Makefile	Tue Mar 27 17:34:28 2018	(r331628)
+++ stable/11/sys/modules/cam/Makefile	Tue Mar 27 17:35:15 2018	(r331629)
@@ -8,6 +8,7 @@ KMOD=	cam
 
 # See sys/conf/options for the flags that go into the different opt_*.h files.
 SRCS=	opt_cam.h
+SRCS+=	opt_compat.h
 SRCS+=	opt_ada.h
 SRCS+=	opt_scsi.h
 SRCS+=	opt_cd.h

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:37:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D5A2FF6E7CA;
 Tue, 27 Mar 2018 17:37:08 +0000 (UTC)
 (envelope-from eugen@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8B46B744C0;
 Tue, 27 Mar 2018 17:37:08 +0000 (UTC)
 (envelope-from eugen@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 864ED1F3DE;
 Tue, 27 Mar 2018 17:37:08 +0000 (UTC)
 (envelope-from eugen@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHb8b3064903;
 Tue, 27 Mar 2018 17:37:08 GMT (envelope-from eugen@FreeBSD.org)
Received: (from eugen@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHb8gI064902;
 Tue, 27 Mar 2018 17:37:08 GMT (envelope-from eugen@FreeBSD.org)
Message-Id: <201803271737.w2RHb8gI064902@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: eugen set sender to
 eugen@FreeBSD.org using -f
From: Eugene Grosbein 
Date: Tue, 27 Mar 2018 17:37:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331630 - head/stand/i386/zfsboot
X-SVN-Group: head
X-SVN-Commit-Author: eugen
X-SVN-Commit-Paths: head/stand/i386/zfsboot
X-SVN-Commit-Revision: 331630
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:37:09 -0000

Author: eugen
Date: Tue Mar 27 17:37:08 2018
New Revision: 331630
URL: https://svnweb.freebsd.org/changeset/base/331630

Log:
  Fix instructions in the zfsboot manual page.
  
  zfsloader(8) fails to probe a slice containing ZFS pool if its second sector
  contains traces of BSD label (DISKMAGIC == 0x82564557).
  Fix manual page to show working example erasing such traces.
  
  PR:		226714
  Approved by:	avg (mentor)
  MFC after:	3 days

Modified:
  head/stand/i386/zfsboot/zfsboot.8

Modified: head/stand/i386/zfsboot/zfsboot.8
==============================================================================
--- head/stand/i386/zfsboot/zfsboot.8	Tue Mar 27 17:35:15 2018	(r331629)
+++ head/stand/i386/zfsboot/zfsboot.8	Tue Mar 27 17:37:08 2018	(r331630)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 15, 2014
+.Dd March 27, 2018
 .Dt ZFSBOOT 8
 .Os
 .Sh NAME
@@ -99,9 +99,9 @@ can also be installed in an MBR slice:
 .Bd -literal -offset indent
 gpart create -s mbr ada0
 gpart add -t freebsd ada0
-gpart create -s BSD ada0s1
 gpart bootcode -b /boot/boot0 ada0
 gpart set -a active -i 1 ada0
+dd if=/dev/zero of=/dev/ada0s1 count=2
 dd if=/boot/zfsboot of=/dev/ada0s1 count=1
 dd if=/boot/zfsboot of=/dev/ada0s1 iseek=1 oseek=1024
 .Ed

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:39:27 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C62C4F6EAC4;
 Tue, 27 Mar 2018 17:39:27 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 76E6C74744;
 Tue, 27 Mar 2018 17:39:27 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 71ADD1F3E1;
 Tue, 27 Mar 2018 17:39:27 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHdRXl065038;
 Tue, 27 Mar 2018 17:39:27 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHdRt2065037;
 Tue, 27 Mar 2018 17:39:27 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271739.w2RHdRt2065037@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 17:39:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331631 - stable/11/sys/cam/scsi
X-SVN-Group: stable-11
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: stable/11/sys/cam/scsi
X-SVN-Commit-Revision: 331631
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:39:28 -0000

Author: brooks
Date: Tue Mar 27 17:39:27 2018
New Revision: 331631
URL: https://svnweb.freebsd.org/changeset/base/331631

Log:
  MFC r330820:
  
  Reject ioctls to SCSI enclosures from 32-bit compat processes.
  
  The ioctl objects contain pointers and require translation and some
  refactoring of the infrastructure to work.  For now prevent operation
  on garbage values.  This is very slightly overbroad in that ENCIOC_INIT
  is safe.
  
  Reviewed by:	imp, kib
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14671

Modified:
  stable/11/sys/cam/scsi/scsi_enc.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cam/scsi/scsi_enc.c
==============================================================================
--- stable/11/sys/cam/scsi/scsi_enc.c	Tue Mar 27 17:37:08 2018	(r331630)
+++ stable/11/sys/cam/scsi/scsi_enc.c	Tue Mar 27 17:39:27 2018	(r331631)
@@ -27,6 +27,8 @@
 #include 
 __FBSDID("$FreeBSD$");
 
+#include "opt_compat.h"
+
 #include 
 
 #include 
@@ -37,8 +39,10 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -351,6 +355,10 @@ enc_ioctl(struct cdev *dev, u_long cmd, caddr_t arg_ad
 	void *addr;
 	int error, i;
 
+#ifdef	COMPAT_FREEBSD32
+	if (SV_PROC_FLAG(td->td_proc, SV_ILP32))
+		return (ENOTTY);
+#endif
 
 	if (arg_addr)
 		addr = *((caddr_t *) arg_addr);

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:40:32 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8E5DEF6ECEB
 for ;
 Tue, 27 Mar 2018 17:40:32 +0000 (UTC) (envelope-from ian@freebsd.org)
Received: from pmta2.delivery6.ore.mailhop.org
 (pmta2.delivery6.ore.mailhop.org [54.200.129.228])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 14F2A749E2
 for ; Tue, 27 Mar 2018 17:40:31 +0000 (UTC)
 (envelope-from ian@freebsd.org)
X-MHO-User: c46a4504-31e5-11e8-b951-f99fef315fd9
X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information
X-Originating-IP: 67.177.211.60
X-Mail-Handler: DuoCircle Outbound SMTP
Received: from ilsoft.org (unknown [67.177.211.60])
 by outbound2.ore.mailhop.org (Halon) with ESMTPSA
 id c46a4504-31e5-11e8-b951-f99fef315fd9;
 Tue, 27 Mar 2018 17:39:15 +0000 (UTC)
Received: from rev (rev [172.22.42.240])
 by ilsoft.org (8.15.2/8.15.2) with ESMTP id w2RHeMJd061225;
 Tue, 27 Mar 2018 11:40:22 -0600 (MDT) (envelope-from ian@freebsd.org)
Message-ID: <1522172422.49673.38.camel@freebsd.org>
Subject: Re: svn commit: r331209 - head
From: Ian Lepore 
To: John Baldwin , Alexey Dokuchaev 
Cc: Warner Losh , Kyle Evans ,
 svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers
 
Date: Tue, 27 Mar 2018 11:40:22 -0600
In-Reply-To: <11592636.Xep9SDNT9W@ralph.baldwin.cx>
References: <201803191527.w2JFRr7B058668@repo.freebsd.org>
 <3226647.aiAOVF4eaK@ralph.baldwin.cx> <20180327051912.GA5729@FreeBSD.org>
 <11592636.Xep9SDNT9W@ralph.baldwin.cx>
Content-Type: text/plain; charset="ISO-8859-1"
X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port 
Mime-Version: 1.0
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:40:32 -0000

On Tue, 2018-03-27 at 09:48 -0700, John Baldwin wrote:
> On Tuesday, March 27, 2018 05:19:12 AM Alexey Dokuchaev wrote:
> > 
> > On Thu, Mar 22, 2018 at 08:52:47AM -0700, John Baldwin wrote:
> > > 
> > > On Thursday, March 22, 2018 04:39:38 AM Alexey Dokuchaev wrote:
> > > > 
> > > > > 
> > > > > ...
> > > > Right, but John had mentioned extra reboot *between* installkernel and
> > > > installworld, which I've never heard of before.
> > > From the end up of src/UPDATING:
> > > 
> > > 
> > > make buildworld
> > > make kernel KERNCONF=YOUR_KERNEL_HERE
> > > 
> > If by "reboot" in your original message you meant "drop to single user"
> > then there's no confusion.It's just that in my understanding "reboot"
> > means, well, reboot.
> No, I meant reboot and it clearly says here "reboot".Note that
> 'make kernel' does 'make buildkernel' and 'make installkernel', so
> the reboot quoted above is after installkernel but before installworld.
> Perhaps 'make kernel' should be expanded into separate lines for
> 'buildkernel' and 'installkernel' if that is confusing.
> 

I've been working with freebsd since 1996, and had no idea there was a
kernel target that does build+install. I think even showing it as

 make buildkernel installkernel KERNCONF=YOUR_KERNEL_HERE

would be more clear.

-- Ian


From owner-svn-src-all@freebsd.org  Tue Mar 27 17:42:05 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9451CF6F08C;
 Tue, 27 Mar 2018 17:42:05 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 46BAC74DDD;
 Tue, 27 Mar 2018 17:42:05 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 270311F566;
 Tue, 27 Mar 2018 17:42:05 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHg57P070032;
 Tue, 27 Mar 2018 17:42:05 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHg4XR070030;
 Tue, 27 Mar 2018 17:42:04 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271742.w2RHg4XR070030@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 17:42:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331632 - in stable/10/sys: cam/scsi modules/cam
X-SVN-Group: stable-10
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in stable/10/sys: cam/scsi modules/cam
X-SVN-Commit-Revision: 331632
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:42:05 -0000

Author: brooks
Date: Tue Mar 27 17:42:04 2018
New Revision: 331632
URL: https://svnweb.freebsd.org/changeset/base/331632

Log:
  MFC r330819, r330885, r330934
  
  r330819:
  Reject CAMIOGET and CAMIOQUEUE ioctl's on pass(4) in 32-bit compat mode.
  
  These take a union ccb argument which is full of kernel pointers.
  Substantial translation efforts would be required to make this work.
  By rejecting the request we avoid processing or returning entierly
  wrong data.
  
  Reviewed by:	imp, ken, markj, cem
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14654
  
  r330885:
  We need opt_compat.h after r330819 and 330820.
  
  Add opt_compat.h to fix the stand-alone build case.
  
  Sponsored by: Netflix.
  
  r330934:
  This should have been += so clean builds work.
  
  Noticed by: hps@

Modified:
  stable/10/sys/cam/scsi/scsi_pass.c
  stable/10/sys/modules/cam/Makefile
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/cam/scsi/scsi_pass.c
==============================================================================
--- stable/10/sys/cam/scsi/scsi_pass.c	Tue Mar 27 17:39:27 2018	(r331631)
+++ stable/10/sys/cam/scsi/scsi_pass.c	Tue Mar 27 17:42:04 2018	(r331632)
@@ -28,6 +28,8 @@
 #include 
 __FBSDID("$FreeBSD$");
 
+#include "opt_compat.h"
+
 #include 
 #include 
 #include 
@@ -43,6 +45,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -1838,6 +1841,12 @@ passdoioctl(struct cdev *dev, u_long cmd, caddr_t addr
 		union ccb **user_ccb, *ccb;
 		xpt_opcode fc;
 
+#ifdef COMPAT_FREEBSD32
+		if (SV_PROC_FLAG(td->td_proc, SV_ILP32)) {
+			error = ENOTTY;
+			goto bailout;
+		}
+#endif
 		if ((softc->flags & PASS_FLAG_ZONE_VALID) == 0) {
 			error = passcreatezone(periph);
 			if (error != 0)
@@ -2004,6 +2013,12 @@ passdoioctl(struct cdev *dev, u_long cmd, caddr_t addr
 		struct pass_io_req *io_req;
 		int old_error;
 
+#ifdef COMPAT_FREEBSD32
+		if (SV_PROC_FLAG(td->td_proc, SV_ILP32)) {
+			error = ENOTTY;
+			goto bailout;
+		}
+#endif
 		user_ccb = (union ccb **)addr;
 		old_error = 0;
 

Modified: stable/10/sys/modules/cam/Makefile
==============================================================================
--- stable/10/sys/modules/cam/Makefile	Tue Mar 27 17:39:27 2018	(r331631)
+++ stable/10/sys/modules/cam/Makefile	Tue Mar 27 17:42:04 2018	(r331632)
@@ -8,6 +8,7 @@ KMOD=	cam
 
 # See sys/conf/options for the flags that go into the different opt_*.h files.
 SRCS=	opt_cam.h
+SRCS+=	opt_compat.h
 SRCS+=	opt_ada.h
 SRCS+=	opt_scsi.h
 SRCS+=	opt_cd.h

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:43:04 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4CA71F6F1A9;
 Tue, 27 Mar 2018 17:43:04 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EE05D74FA9;
 Tue, 27 Mar 2018 17:43:03 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E8D9D1F587;
 Tue, 27 Mar 2018 17:43:03 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHh3ie070122;
 Tue, 27 Mar 2018 17:43:03 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHh3NC070121;
 Tue, 27 Mar 2018 17:43:03 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271743.w2RHh3NC070121@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 17:43:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331633 - stable/10/sys/cam/scsi
X-SVN-Group: stable-10
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: stable/10/sys/cam/scsi
X-SVN-Commit-Revision: 331633
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:43:04 -0000

Author: brooks
Date: Tue Mar 27 17:43:03 2018
New Revision: 331633
URL: https://svnweb.freebsd.org/changeset/base/331633

Log:
  MFC r330820:
  
  Reject ioctls to SCSI enclosures from 32-bit compat processes.
  
  The ioctl objects contain pointers and require translation and some
  refactoring of the infrastructure to work. For now prevent opertion
  on garbage values. This is very slightly overbroad in that ENCIOC_INIT
  is safe.
  
  Reviewed by:	imp, kib
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14671

Modified:
  stable/10/sys/cam/scsi/scsi_enc.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/cam/scsi/scsi_enc.c
==============================================================================
--- stable/10/sys/cam/scsi/scsi_enc.c	Tue Mar 27 17:42:04 2018	(r331632)
+++ stable/10/sys/cam/scsi/scsi_enc.c	Tue Mar 27 17:43:03 2018	(r331633)
@@ -27,6 +27,8 @@
 #include 
 __FBSDID("$FreeBSD$");
 
+#include "opt_compat.h"
+
 #include 
 
 #include 
@@ -37,8 +39,10 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -351,6 +355,10 @@ enc_ioctl(struct cdev *dev, u_long cmd, caddr_t arg_ad
 	void *addr;
 	int error, i;
 
+#ifdef	COMPAT_FREEBSD32
+	if (SV_PROC_FLAG(td->td_proc, SV_ILP32))
+		return (ENOTTY);
+#endif
 
 	if (arg_addr)
 		addr = *((caddr_t *) arg_addr);

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:43:55 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B5DACF6F2D7;
 Tue, 27 Mar 2018 17:43:55 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 269017510C;
 Tue, 27 Mar 2018 17:43:54 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2RHhils053198;
 Tue, 27 Mar 2018 10:43:44 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2RHhi5D053197;
 Tue, 27 Mar 2018 10:43:44 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803271743.w2RHhi5D053197@pdx.rh.CN85.dnsmgr.net>
Subject: Re: svn commit: r331209 - head
In-Reply-To: <11592636.Xep9SDNT9W@ralph.baldwin.cx>
To: John Baldwin 
Date: Tue, 27 Mar 2018 10:43:44 -0700 (PDT)
CC: Alexey Dokuchaev , Warner Losh ,
 Kyle Evans , svn-src-head@freebsd.org,
 svn-src-all@freebsd.org, src-committers 
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:43:55 -0000

> On Tuesday, March 27, 2018 05:19:12 AM Alexey Dokuchaev wrote:
> > On Thu, Mar 22, 2018 at 08:52:47AM -0700, John Baldwin wrote:
> > > On Thursday, March 22, 2018 04:39:38 AM Alexey Dokuchaev wrote:
> > > > > ...
> > > > Right, but John had mentioned extra reboot *between* installkernel and
> > > > installworld, which I've never heard of before.
> > > 
> > > From the end up of src/UPDATING:
> > > 
> > >         
> > >         make buildworld
> > >         make kernel KERNCONF=YOUR_KERNEL_HERE
> > >         

"in" may not be the proper way to express this,
better wording, imho, would be "reboot to single user mode",
Or even more complete to make the reason for the reboot to
single user mode explictly clear:
	 *1

*1 This is to facilitate the next step, the single user mode
is required so that binaries are not in use while the installworld
process is done.

> > 
> > If by "reboot" in your original message you meant "drop to single user"
> > then there's no confusion.  It's just that in my understanding "reboot"
> > means, well, reboot.
> 
> No, I meant reboot and it clearly says here "reboot".  Note that
> 'make kernel' does 'make buildkernel' and 'make installkernel', so
> the reboot quoted above is after installkernel but before installworld.
> Perhaps 'make kernel' should be expanded into separate lines for
> 'buildkernel' and 'installkernel' if that is confusing.
> 
> -- 
> John Baldwin
> 
> 

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:46:26 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id ABAEAF6F6DB;
 Tue, 27 Mar 2018 17:46:26 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 5D53975479;
 Tue, 27 Mar 2018 17:46:26 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 584921F58D;
 Tue, 27 Mar 2018 17:46:26 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHkQXt070431;
 Tue, 27 Mar 2018 17:46:26 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHkQsY070429;
 Tue, 27 Mar 2018 17:46:26 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271746.w2RHkQsY070429@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 17:46:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331634 - in stable/11/sys: dev/isp modules/isp
X-SVN-Group: stable-11
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in stable/11/sys: dev/isp modules/isp
X-SVN-Commit-Revision: 331634
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:46:26 -0000

Author: brooks
Date: Tue Mar 27 17:46:25 2018
New Revision: 331634
URL: https://svnweb.freebsd.org/changeset/base/331634

Log:
  MFC r330876, r330945
  
  r330876:
  Fix ISP_FC_LIP and ISP_RESCAN on big-endian 64-bit systems.
  
  For _IO() ioctls, addr is a pointer to uap->data which is a caddr_t.
  When the caddr_t stores an int, dereferencing addr as an (int *) results
  in truncation on little-endian 64-bit systems and corruption (owing to
  extracting top bits) on big-endian 64-bit systems. In practice the
  value of chan was probably always zero on systems of the latter type as
  all such FreeBSD platforms use a register-based calling convention.
  
  Reviewed by:	mav
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14673
  
  r330945:
  Add opt_compat.h to isp(4) as required by r330876.

Modified:
  stable/11/sys/dev/isp/isp_freebsd.c
  stable/11/sys/modules/isp/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/isp/isp_freebsd.c
==============================================================================
--- stable/11/sys/dev/isp/isp_freebsd.c	Tue Mar 27 17:43:03 2018	(r331633)
+++ stable/11/sys/dev/isp/isp_freebsd.c	Tue Mar 27 17:46:25 2018	(r331634)
@@ -444,7 +444,7 @@ ispioctl(struct cdev *dev, u_long c, caddr_t addr, int
 
 	case ISP_RESCAN:
 		if (IS_FC(isp)) {
-			chan = *(int *)addr;
+			chan = *(intptr_t *)addr;
 			if (chan < 0 || chan >= isp->isp_nchan) {
 				retval = -ENXIO;
 				break;
@@ -461,7 +461,7 @@ ispioctl(struct cdev *dev, u_long c, caddr_t addr, int
 
 	case ISP_FC_LIP:
 		if (IS_FC(isp)) {
-			chan = *(int *)addr;
+			chan = *(intptr_t *)addr;
 			if (chan < 0 || chan >= isp->isp_nchan) {
 				retval = -ENXIO;
 				break;

Modified: stable/11/sys/modules/isp/Makefile
==============================================================================
--- stable/11/sys/modules/isp/Makefile	Tue Mar 27 17:43:03 2018	(r331633)
+++ stable/11/sys/modules/isp/Makefile	Tue Mar 27 17:46:25 2018	(r331634)
@@ -4,7 +4,7 @@
 
 KMOD=	isp
 SRCS=	bus_if.h device_if.h pci_if.h \
-	opt_cam.h opt_ddb.h opt_isp.h \
+	opt_cam.h opt_compat.h opt_ddb.h opt_isp.h \
 	isp.c isp_library.c isp_target.c isp_freebsd.c isp_pci.c
 
 .if ${MACHINE} == sparc64

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:48:24 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A115AF6F9C7;
 Tue, 27 Mar 2018 17:48:24 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 04415756A7;
 Tue, 27 Mar 2018 17:48:23 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2RHmMWg053239;
 Tue, 27 Mar 2018 10:48:22 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2RHmMW1053238;
 Tue, 27 Mar 2018 10:48:22 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803271748.w2RHmMW1053238@pdx.rh.CN85.dnsmgr.net>
Subject: Re: svn commit: r331209 - head
In-Reply-To: <1522172422.49673.38.camel@freebsd.org>
To: Ian Lepore 
Date: Tue, 27 Mar 2018 10:48:22 -0700 (PDT)
CC: John Baldwin , Alexey Dokuchaev ,
 Warner Losh , Kyle Evans ,
 svn-src-head@freebsd.org, svn-src-all@freebsd.org,
 src-committers 
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:48:24 -0000

[ Charset ISO-8859-1 unsupported, converting... ]
> On Tue, 2018-03-27 at 09:48 -0700, John Baldwin wrote:
> > On Tuesday, March 27, 2018 05:19:12 AM Alexey Dokuchaev wrote:
> > > 
> > > On Thu, Mar 22, 2018 at 08:52:47AM -0700, John Baldwin wrote:
> > > > 
> > > > On Thursday, March 22, 2018 04:39:38 AM Alexey Dokuchaev wrote:
> > > > > 
> > > > > > 
> > > > > > ...
> > > > > Right, but John had mentioned extra reboot *between* installkernel and
> > > > > installworld, which I've never heard of before.
> > > > From the end up of src/UPDATING:
> > > > 
> > > > ????????
> > > > ????????make buildworld
> > > > ????????make kernel KERNCONF=YOUR_KERNEL_HERE
> > > > ????????
> > > If by "reboot" in your original message you meant "drop to single user"
> > > then there's no confusion.??It's just that in my understanding "reboot"
> > > means, well, reboot.
> > No, I meant reboot and it clearly says here "reboot".??Note that
> > 'make kernel' does 'make buildkernel' and 'make installkernel', so
> > the reboot quoted above is after installkernel but before installworld.
> > Perhaps 'make kernel' should be expanded into separate lines for
> > 'buildkernel' and 'installkernel' if that is confusing.
> > 
> 
> I've been working with freebsd since 1996, and had no idea there was a
> kernel target that does build+install. ?I think even showing it as

I was vegually aware of it, but since I do things between
buildkernel and installkernel I dont use it, more so cause
I build kernels on a central box and push them out to
systems.

> ? make buildkernel installkernel KERNCONF=YOUR_KERNEL_HERE

make {kernel|buildkernel installkernel} KERNCONF=YOUR_KERNEL_HERE

OR

    make kernel KERNCONF=YOUR_KERNEL_HERE
    or
    make buildkernel installkernel KERNCONF=YOUR_KERNEL_HERE

> would be more clear.

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:48:40 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8FC1DF6FA40;
 Tue, 27 Mar 2018 17:48:40 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3CB38757BF;
 Tue, 27 Mar 2018 17:48:40 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 37AE71F596;
 Tue, 27 Mar 2018 17:48:40 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHme7I070552;
 Tue, 27 Mar 2018 17:48:40 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHmdZK070549;
 Tue, 27 Mar 2018 17:48:39 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271748.w2RHmdZK070549@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 17:48:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331635 - in stable/10/sys: dev/isp modules/isp
X-SVN-Group: stable-10
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in stable/10/sys: dev/isp modules/isp
X-SVN-Commit-Revision: 331635
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:48:40 -0000

Author: brooks
Date: Tue Mar 27 17:48:39 2018
New Revision: 331635
URL: https://svnweb.freebsd.org/changeset/base/331635

Log:
  MFC r330876, r330945
  
  r330876:
  Fix ISP_FC_LIP and ISP_RESCAN on big-endian 64-bit systems.
  
  For _IO() ioctls, addr is a pointer to uap->data which is a caddr_t.
  When the caddr_t stores an int, dereferencing addr as an (int *) results
  in truncation on little-endian 64-bit systems and corruption (owing to
  extracting top bits) on big-endian 64-bit systems. In practice the
  value of chan was probably always zero on systems of the latter type as
  all such FreeBSD platforms use a register-based calling convention.
  
  Reviewed by:	mav
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14673
  
  r330945:
  Add opt_compat.h to isp(4) as required by r330876.

Modified:
  stable/10/sys/dev/isp/isp_freebsd.c
  stable/10/sys/modules/isp/Makefile
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/isp/isp_freebsd.c
==============================================================================
--- stable/10/sys/dev/isp/isp_freebsd.c	Tue Mar 27 17:46:25 2018	(r331634)
+++ stable/10/sys/dev/isp/isp_freebsd.c	Tue Mar 27 17:48:39 2018	(r331635)
@@ -433,7 +433,7 @@ ispioctl(struct cdev *dev, u_long c, caddr_t addr, int
 
 	case ISP_RESCAN:
 		if (IS_FC(isp)) {
-			chan = *(int *)addr;
+			chan = *(intptr_t *)addr;
 			if (chan < 0 || chan >= isp->isp_nchan) {
 				retval = -ENXIO;
 				break;
@@ -450,7 +450,7 @@ ispioctl(struct cdev *dev, u_long c, caddr_t addr, int
 
 	case ISP_FC_LIP:
 		if (IS_FC(isp)) {
-			chan = *(int *)addr;
+			chan = *(intptr_t *)addr;
 			if (chan < 0 || chan >= isp->isp_nchan) {
 				retval = -ENXIO;
 				break;

Modified: stable/10/sys/modules/isp/Makefile
==============================================================================
--- stable/10/sys/modules/isp/Makefile	Tue Mar 27 17:46:25 2018	(r331634)
+++ stable/10/sys/modules/isp/Makefile	Tue Mar 27 17:48:39 2018	(r331635)
@@ -4,7 +4,7 @@
 
 KMOD=	isp
 SRCS=	bus_if.h device_if.h pci_if.h \
-	opt_cam.h opt_ddb.h opt_isp.h \
+	opt_cam.h opt_compat.h opt_ddb.h opt_isp.h \
 	isp.c isp_library.c isp_target.c isp_freebsd.c isp_pci.c
 
 .if ${MACHINE} == sparc64

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:51:46 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82CD8F6FE43;
 Tue, 27 Mar 2018 17:51:46 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 2FE3975C16;
 Tue, 27 Mar 2018 17:51:46 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2A9431F607;
 Tue, 27 Mar 2018 17:51:46 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHpkjL072898;
 Tue, 27 Mar 2018 17:51:46 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHpjLB072893;
 Tue, 27 Mar 2018 17:51:45 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271751.w2RHpjLB072893@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 17:51:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331636 - in stable/11/sys: dev/aac dev/aacraid
 modules/aac modules/aacraid sys
X-SVN-Group: stable-11
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in stable/11/sys: dev/aac dev/aacraid modules/aac
 modules/aacraid sys
X-SVN-Commit-Revision: 331636
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:51:46 -0000

Author: brooks
Date: Tue Mar 27 17:51:45 2018
New Revision: 331636
URL: https://svnweb.freebsd.org/changeset/base/331636

Log:
  MFC r330949:
  
  Fix FSACTL_GET_NEXT_ADAPTER_FIB under 32-bit compat.
  
  This includes FSACTL_LNX_GET_NEXT_ADAPTER_FIB.
  
  Reviewed by:	cem
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14672

Modified:
  stable/11/sys/dev/aac/aac.c
  stable/11/sys/dev/aacraid/aacraid.c
  stable/11/sys/modules/aac/Makefile
  stable/11/sys/modules/aacraid/Makefile
  stable/11/sys/sys/aac_ioctl.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/aac/aac.c
==============================================================================
--- stable/11/sys/dev/aac/aac.c	Tue Mar 27 17:48:39 2018	(r331635)
+++ stable/11/sys/dev/aac/aac.c	Tue Mar 27 17:51:45 2018	(r331636)
@@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$");
 #define AAC_DRIVERNAME			"aac"
 
 #include "opt_aac.h"
+#include "opt_compat.h"
 
 /* #include  */
 #include 
@@ -45,7 +46,9 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
+#include 
 #include 
 #include 
 
@@ -3522,7 +3525,19 @@ aac_getnext_aif(struct aac_softc *sc, caddr_t arg)
 
 	fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
 
-	if ((error = copyin(arg, &agf, sizeof(agf))) == 0) {
+#ifdef COMPAT_FREEBSD32
+	if (SV_CURPROC_FLAG(SV_ILP32)) {
+		struct get_adapter_fib_ioctl32 agf32;
+		error = copyin(arg, &agf32, sizeof(agf32));
+		if (error == 0) {
+			agf.AdapterFibContext = agf32.AdapterFibContext;
+			agf.Wait = agf32.Wait;
+			agf.AifFib = (caddr_t)(uintptr_t)agf32.AifFib;
+		}
+	} else
+#endif
+		error = copyin(arg, &agf, sizeof(agf));
+	if (error == 0) {
 		for (ctx = sc->fibctx; ctx; ctx = ctx->next) {
 			if (agf.AdapterFibContext == ctx->unique)
 				break;

Modified: stable/11/sys/dev/aacraid/aacraid.c
==============================================================================
--- stable/11/sys/dev/aacraid/aacraid.c	Tue Mar 27 17:48:39 2018	(r331635)
+++ stable/11/sys/dev/aacraid/aacraid.c	Tue Mar 27 17:51:45 2018	(r331636)
@@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$");
 #define AAC_DRIVERNAME			"aacraid"
 
 #include "opt_aacraid.h"
+#include "opt_compat.h"
 
 /* #include  */
 #include 
@@ -46,7 +47,9 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
+#include 
 #include 
 #include 
 
@@ -3382,7 +3385,19 @@ aac_getnext_aif(struct aac_softc *sc, caddr_t arg)
 	fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
 
 	mtx_lock(&sc->aac_io_lock);
-	if ((error = copyin(arg, &agf, sizeof(agf))) == 0) {
+#ifdef COMPAT_FREEBSD32
+	if (SV_CURPROC_FLAG(SV_ILP32)) {
+		struct get_adapter_fib_ioctl32 agf32;
+		error = copyin(arg, &agf32, sizeof(agf32));
+		if (error == 0) {
+			agf.AdapterFibContext = agf32.AdapterFibContext;
+			agf.Wait = agf32.Wait;
+			agf.AifFib = (caddr_t)(uintptr_t)agf32.AifFib;
+		}
+	} else
+#endif
+		error = copyin(arg, &agf, sizeof(agf));
+	if (error == 0) {
 		for (ctx = sc->fibctx; ctx; ctx = ctx->next) {
 			if (agf.AdapterFibContext == ctx->unique)
 				break;

Modified: stable/11/sys/modules/aac/Makefile
==============================================================================
--- stable/11/sys/modules/aac/Makefile	Tue Mar 27 17:48:39 2018	(r331635)
+++ stable/11/sys/modules/aac/Makefile	Tue Mar 27 17:51:45 2018	(r331636)
@@ -8,7 +8,7 @@ SUBDIR= aac_linux
 
 KMOD=	aac
 SRCS=	aac.c aac_pci.c aac_disk.c aac_cam.c
-SRCS+=	opt_scsi.h opt_cam.h opt_aac.h
+SRCS+=	opt_scsi.h opt_cam.h opt_compat.h opt_aac.h
 SRCS+=	device_if.h bus_if.h pci_if.h
 
 # To enable debug output from the driver, uncomment these two lines.

Modified: stable/11/sys/modules/aacraid/Makefile
==============================================================================
--- stable/11/sys/modules/aacraid/Makefile	Tue Mar 27 17:48:39 2018	(r331635)
+++ stable/11/sys/modules/aacraid/Makefile	Tue Mar 27 17:51:45 2018	(r331636)
@@ -8,7 +8,7 @@ SUBDIR= aacraid_linux
 
 KMOD=	aacraid
 SRCS=	aacraid.c aacraid_pci.c aacraid_cam.c
-SRCS+=	opt_scsi.h opt_cam.h opt_aacraid.h
+SRCS+=	opt_scsi.h opt_cam.h opt_compat.h opt_aacraid.h
 SRCS+=	device_if.h bus_if.h pci_if.h
 
 # To enable debug output from the driver, uncomment these two lines.

Modified: stable/11/sys/sys/aac_ioctl.h
==============================================================================
--- stable/11/sys/sys/aac_ioctl.h	Tue Mar 27 17:48:39 2018	(r331635)
+++ stable/11/sys/sys/aac_ioctl.h	Tue Mar 27 17:51:45 2018	(r331636)
@@ -175,6 +175,14 @@ struct get_adapter_fib_ioctl {
 	caddr_t		AifFib;
 };
 
+#ifdef _KERNEL
+struct get_adapter_fib_ioctl32 {
+	u_int32_t	AdapterFibContext;
+	int	  	Wait;
+	u_int32_t	AifFib;
+};
+#endif
+
 struct aac_query_disk {
 	int32_t		ContainerNumber;
 	int32_t		Bus;

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:52:54 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DBB08F7012F;
 Tue, 27 Mar 2018 17:52:53 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8898A75E4C;
 Tue, 27 Mar 2018 17:52:53 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 835EA1F735;
 Tue, 27 Mar 2018 17:52:53 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHqrG3075186;
 Tue, 27 Mar 2018 17:52:53 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHqqXX075181;
 Tue, 27 Mar 2018 17:52:52 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271752.w2RHqqXX075181@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 17:52:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331637 - in stable/10/sys: dev/aac dev/aacraid
 modules/aac modules/aacraid sys
X-SVN-Group: stable-10
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in stable/10/sys: dev/aac dev/aacraid modules/aac
 modules/aacraid sys
X-SVN-Commit-Revision: 331637
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:52:54 -0000

Author: brooks
Date: Tue Mar 27 17:52:52 2018
New Revision: 331637
URL: https://svnweb.freebsd.org/changeset/base/331637

Log:
  MFC r330949:
  
  Fix FSACTL_GET_NEXT_ADAPTER_FIB under 32-bit compat.
  
  This includes FSACTL_LNX_GET_NEXT_ADAPTER_FIB.
  
  Reviewed by:	cem
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14672

Modified:
  stable/10/sys/dev/aac/aac.c
  stable/10/sys/dev/aacraid/aacraid.c
  stable/10/sys/modules/aac/Makefile
  stable/10/sys/modules/aacraid/Makefile
  stable/10/sys/sys/aac_ioctl.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/aac/aac.c
==============================================================================
--- stable/10/sys/dev/aac/aac.c	Tue Mar 27 17:51:45 2018	(r331636)
+++ stable/10/sys/dev/aac/aac.c	Tue Mar 27 17:52:52 2018	(r331637)
@@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
 #define AAC_DRIVERNAME			"aac"
 
 #include "opt_aac.h"
+#include "opt_compat.h"
 
 /* #include  */
 #include 
@@ -43,7 +44,9 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
+#include 
 #include 
 #include 
 
@@ -3520,7 +3523,19 @@ aac_getnext_aif(struct aac_softc *sc, caddr_t arg)
 
 	fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
 
-	if ((error = copyin(arg, &agf, sizeof(agf))) == 0) {
+#ifdef COMPAT_FREEBSD32
+	if (SV_CURPROC_FLAG(SV_ILP32)) {
+		struct get_adapter_fib_ioctl32 agf32;
+		error = copyin(arg, &agf32, sizeof(agf32));
+		if (error == 0) {
+			agf.AdapterFibContext = agf32.AdapterFibContext;
+			agf.Wait = agf32.Wait;
+			agf.AifFib = (caddr_t)(uintptr_t)agf32.AifFib;
+		}
+	} else
+#endif
+		error = copyin(arg, &agf, sizeof(agf));
+	if (error == 0) {
 		for (ctx = sc->fibctx; ctx; ctx = ctx->next) {
 			if (agf.AdapterFibContext == ctx->unique)
 				break;

Modified: stable/10/sys/dev/aacraid/aacraid.c
==============================================================================
--- stable/10/sys/dev/aacraid/aacraid.c	Tue Mar 27 17:51:45 2018	(r331636)
+++ stable/10/sys/dev/aacraid/aacraid.c	Tue Mar 27 17:52:52 2018	(r331637)
@@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$");
 #define AAC_DRIVERNAME			"aacraid"
 
 #include "opt_aacraid.h"
+#include "opt_compat.h"
 
 /* #include  */
 #include 
@@ -44,7 +45,9 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
+#include 
 #include 
 #include 
 
@@ -3380,7 +3383,19 @@ aac_getnext_aif(struct aac_softc *sc, caddr_t arg)
 	fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
 
 	mtx_lock(&sc->aac_io_lock);
-	if ((error = copyin(arg, &agf, sizeof(agf))) == 0) {
+#ifdef COMPAT_FREEBSD32
+	if (SV_CURPROC_FLAG(SV_ILP32)) {
+		struct get_adapter_fib_ioctl32 agf32;
+		error = copyin(arg, &agf32, sizeof(agf32));
+		if (error == 0) {
+			agf.AdapterFibContext = agf32.AdapterFibContext;
+			agf.Wait = agf32.Wait;
+			agf.AifFib = (caddr_t)(uintptr_t)agf32.AifFib;
+		}
+	} else
+#endif
+		error = copyin(arg, &agf, sizeof(agf));
+	if (error == 0) {
 		for (ctx = sc->fibctx; ctx; ctx = ctx->next) {
 			if (agf.AdapterFibContext == ctx->unique)
 				break;

Modified: stable/10/sys/modules/aac/Makefile
==============================================================================
--- stable/10/sys/modules/aac/Makefile	Tue Mar 27 17:51:45 2018	(r331636)
+++ stable/10/sys/modules/aac/Makefile	Tue Mar 27 17:52:52 2018	(r331637)
@@ -8,7 +8,7 @@ SUBDIR= aac_linux
 
 KMOD=	aac
 SRCS=	aac.c aac_pci.c aac_disk.c aac_cam.c
-SRCS+=	opt_scsi.h opt_cam.h opt_aac.h
+SRCS+=	opt_scsi.h opt_cam.h opt_compat.h opt_aac.h
 SRCS+=	device_if.h bus_if.h pci_if.h
 
 # To enable debug output from the driver, uncomment these two lines.

Modified: stable/10/sys/modules/aacraid/Makefile
==============================================================================
--- stable/10/sys/modules/aacraid/Makefile	Tue Mar 27 17:51:45 2018	(r331636)
+++ stable/10/sys/modules/aacraid/Makefile	Tue Mar 27 17:52:52 2018	(r331637)
@@ -8,7 +8,7 @@ SUBDIR= aacraid_linux
 
 KMOD=	aacraid
 SRCS=	aacraid.c aacraid_pci.c aacraid_cam.c
-SRCS+=	opt_scsi.h opt_cam.h opt_aacraid.h
+SRCS+=	opt_scsi.h opt_cam.h opt_compat.h opt_aacraid.h
 SRCS+=	device_if.h bus_if.h pci_if.h
 
 # To enable debug output from the driver, uncomment these two lines.

Modified: stable/10/sys/sys/aac_ioctl.h
==============================================================================
--- stable/10/sys/sys/aac_ioctl.h	Tue Mar 27 17:51:45 2018	(r331636)
+++ stable/10/sys/sys/aac_ioctl.h	Tue Mar 27 17:52:52 2018	(r331637)
@@ -173,6 +173,14 @@ struct get_adapter_fib_ioctl {
 	caddr_t		AifFib;
 };
 
+#ifdef _KERNEL
+struct get_adapter_fib_ioctl32 {
+	u_int32_t	AdapterFibContext;
+	int	  	Wait;
+	u_int32_t	AifFib;
+};
+#endif
+
 struct aac_query_disk {
 	int32_t		ContainerNumber;
 	int32_t		Bus;

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:54:49 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 51555F70356;
 Tue, 27 Mar 2018 17:54:49 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EE7FF760B3;
 Tue, 27 Mar 2018 17:54:48 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CED171F738;
 Tue, 27 Mar 2018 17:54:48 +0000 (UTC)
 (envelope-from jkim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHsmjx075334;
 Tue, 27 Mar 2018 17:54:48 GMT (envelope-from jkim@FreeBSD.org)
Received: (from jkim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHskNj075311;
 Tue, 27 Mar 2018 17:54:46 GMT (envelope-from jkim@FreeBSD.org)
Message-Id: <201803271754.w2RHskNj075311@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jkim set sender to
 jkim@FreeBSD.org using -f
From: Jung-uk Kim 
Date: Tue, 27 Mar 2018 17:54:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331638 - in stable/11: crypto/openssl
 crypto/openssl/apps crypto/openssl/crypto crypto/openssl/crypto/asn1
 crypto/openssl/crypto/bf crypto/openssl/crypto/bio crypto/openssl/crypto/bn
 c...
X-SVN-Group: stable-11
X-SVN-Commit-Author: jkim
X-SVN-Commit-Paths: in stable/11: crypto/openssl crypto/openssl/apps
 crypto/openssl/crypto crypto/openssl/crypto/asn1 crypto/openssl/crypto/bf
 crypto/openssl/crypto/bio crypto/openssl/crypto/bn
 crypto/openssl/crypto/conf...
X-SVN-Commit-Revision: 331638
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:54:49 -0000

Author: jkim
Date: Tue Mar 27 17:54:46 2018
New Revision: 331638
URL: https://svnweb.freebsd.org/changeset/base/331638

Log:
  MFC:	r331627
  
  Merge OpenSSL 1.0.2o.

Modified:
  stable/11/crypto/openssl/CHANGES
  stable/11/crypto/openssl/Configure
  stable/11/crypto/openssl/LICENSE
  stable/11/crypto/openssl/Makefile
  stable/11/crypto/openssl/NEWS
  stable/11/crypto/openssl/README
  stable/11/crypto/openssl/apps/app_rand.c
  stable/11/crypto/openssl/apps/apps.c
  stable/11/crypto/openssl/apps/ca.c
  stable/11/crypto/openssl/apps/ciphers.c
  stable/11/crypto/openssl/apps/cms.c
  stable/11/crypto/openssl/apps/dgst.c
  stable/11/crypto/openssl/apps/dsaparam.c
  stable/11/crypto/openssl/apps/ecparam.c
  stable/11/crypto/openssl/apps/enc.c
  stable/11/crypto/openssl/apps/errstr.c
  stable/11/crypto/openssl/apps/ocsp.c
  stable/11/crypto/openssl/apps/openssl.c
  stable/11/crypto/openssl/apps/passwd.c
  stable/11/crypto/openssl/apps/pkcs12.c
  stable/11/crypto/openssl/apps/pkcs8.c
  stable/11/crypto/openssl/apps/rand.c
  stable/11/crypto/openssl/apps/req.c
  stable/11/crypto/openssl/apps/s_client.c
  stable/11/crypto/openssl/apps/s_server.c
  stable/11/crypto/openssl/apps/s_socket.c
  stable/11/crypto/openssl/apps/s_time.c
  stable/11/crypto/openssl/apps/speed.c
  stable/11/crypto/openssl/apps/x509.c
  stable/11/crypto/openssl/crypto/asn1/a_gentm.c
  stable/11/crypto/openssl/crypto/asn1/a_mbstr.c
  stable/11/crypto/openssl/crypto/asn1/a_object.c
  stable/11/crypto/openssl/crypto/asn1/a_strex.c
  stable/11/crypto/openssl/crypto/asn1/a_time.c
  stable/11/crypto/openssl/crypto/asn1/a_utctm.c
  stable/11/crypto/openssl/crypto/asn1/asn1.h
  stable/11/crypto/openssl/crypto/asn1/asn1_err.c
  stable/11/crypto/openssl/crypto/asn1/asn1_lib.c
  stable/11/crypto/openssl/crypto/asn1/asn1_par.c
  stable/11/crypto/openssl/crypto/asn1/asn_mime.c
  stable/11/crypto/openssl/crypto/asn1/t_x509a.c
  stable/11/crypto/openssl/crypto/asn1/tasn_dec.c
  stable/11/crypto/openssl/crypto/asn1/tasn_prn.c
  stable/11/crypto/openssl/crypto/bf/bftest.c
  stable/11/crypto/openssl/crypto/bio/b_dump.c
  stable/11/crypto/openssl/crypto/bio/b_print.c
  stable/11/crypto/openssl/crypto/bio/bio_cb.c
  stable/11/crypto/openssl/crypto/bio/bss_bio.c
  stable/11/crypto/openssl/crypto/bio/bss_conn.c
  stable/11/crypto/openssl/crypto/bio/bss_file.c
  stable/11/crypto/openssl/crypto/bn/bn_exp.c
  stable/11/crypto/openssl/crypto/bn/bn_lib.c
  stable/11/crypto/openssl/crypto/bn/bn_mont.c
  stable/11/crypto/openssl/crypto/bn/bn_print.c
  stable/11/crypto/openssl/crypto/bn/bntest.c
  stable/11/crypto/openssl/crypto/bn/expspeed.c
  stable/11/crypto/openssl/crypto/bn/exptest.c
  stable/11/crypto/openssl/crypto/conf/conf_def.c
  stable/11/crypto/openssl/crypto/conf/conf_mod.c
  stable/11/crypto/openssl/crypto/des/destest.c
  stable/11/crypto/openssl/crypto/des/ecb_enc.c
  stable/11/crypto/openssl/crypto/des/fcrypt.c
  stable/11/crypto/openssl/crypto/des/read_pwd.c
  stable/11/crypto/openssl/crypto/des/set_key.c
  stable/11/crypto/openssl/crypto/dh/dhtest.c
  stable/11/crypto/openssl/crypto/dsa/dsatest.c
  stable/11/crypto/openssl/crypto/ec/ec_lib.c
  stable/11/crypto/openssl/crypto/ec/ec_mult.c
  stable/11/crypto/openssl/crypto/ec/ecp_nistp224.c
  stable/11/crypto/openssl/crypto/ec/ecp_nistp256.c
  stable/11/crypto/openssl/crypto/ec/ecp_nistp521.c
  stable/11/crypto/openssl/crypto/ec/ecp_nistz256.c
  stable/11/crypto/openssl/crypto/ec/ecp_smpl.c
  stable/11/crypto/openssl/crypto/ec/ectest.c
  stable/11/crypto/openssl/crypto/ecdh/ecdhtest.c
  stable/11/crypto/openssl/crypto/engine/eng_cryptodev.c
  stable/11/crypto/openssl/crypto/engine/eng_table.c
  stable/11/crypto/openssl/crypto/err/err.c
  stable/11/crypto/openssl/crypto/err/err_prn.c
  stable/11/crypto/openssl/crypto/evp/bio_b64.c
  stable/11/crypto/openssl/crypto/evp/digest.c
  stable/11/crypto/openssl/crypto/evp/e_aes.c
  stable/11/crypto/openssl/crypto/evp/e_camellia.c
  stable/11/crypto/openssl/crypto/evp/evp_enc.c
  stable/11/crypto/openssl/crypto/evp/evp_locl.h
  stable/11/crypto/openssl/crypto/evp/evp_pbe.c
  stable/11/crypto/openssl/crypto/evp/evp_test.c
  stable/11/crypto/openssl/crypto/evp/openbsd_hw.c
  stable/11/crypto/openssl/crypto/evp/p5_crpt2.c
  stable/11/crypto/openssl/crypto/hmac/hmac.c
  stable/11/crypto/openssl/crypto/jpake/jpake.c
  stable/11/crypto/openssl/crypto/md2/md2_dgst.c
  stable/11/crypto/openssl/crypto/md4/md4.c
  stable/11/crypto/openssl/crypto/mem_dbg.c
  stable/11/crypto/openssl/crypto/o_init.c
  stable/11/crypto/openssl/crypto/o_time.c
  stable/11/crypto/openssl/crypto/objects/o_names.c
  stable/11/crypto/openssl/crypto/objects/obj_dat.c
  stable/11/crypto/openssl/crypto/opensslv.h
  stable/11/crypto/openssl/crypto/pem/pem_info.c
  stable/11/crypto/openssl/crypto/pem/pem_lib.c
  stable/11/crypto/openssl/crypto/pkcs7/pk7_doit.c
  stable/11/crypto/openssl/crypto/rand/md_rand.c
  stable/11/crypto/openssl/crypto/rand/rand_egd.c
  stable/11/crypto/openssl/crypto/rand/rand_unix.c
  stable/11/crypto/openssl/crypto/rsa/rsa_crpt.c
  stable/11/crypto/openssl/crypto/rsa/rsa_gen.c
  stable/11/crypto/openssl/crypto/rsa/rsa_pss.c
  stable/11/crypto/openssl/crypto/rsa/rsa_test.c
  stable/11/crypto/openssl/crypto/srp/srp_grps.h
  stable/11/crypto/openssl/crypto/threads/mttest.c
  stable/11/crypto/openssl/crypto/ts/Makefile
  stable/11/crypto/openssl/crypto/ts/ts_rsp_sign.c
  stable/11/crypto/openssl/crypto/ui/ui_openssl.c
  stable/11/crypto/openssl/crypto/x509/x509_txt.c
  stable/11/crypto/openssl/crypto/x509/x509_v3.c
  stable/11/crypto/openssl/crypto/x509/x509_vpm.c
  stable/11/crypto/openssl/crypto/x509v3/v3_alt.c
  stable/11/crypto/openssl/crypto/x509v3/v3_conf.c
  stable/11/crypto/openssl/crypto/x509v3/v3_info.c
  stable/11/crypto/openssl/doc/apps/ca.pod
  stable/11/crypto/openssl/doc/apps/ecparam.pod
  stable/11/crypto/openssl/doc/apps/s_client.pod
  stable/11/crypto/openssl/doc/apps/verify.pod
  stable/11/crypto/openssl/doc/apps/x509.pod
  stable/11/crypto/openssl/doc/crypto/ASN1_STRING_length.pod
  stable/11/crypto/openssl/doc/crypto/BIO_s_mem.pod
  stable/11/crypto/openssl/doc/crypto/BN_zero.pod
  stable/11/crypto/openssl/doc/crypto/EVP_EncryptInit.pod
  stable/11/crypto/openssl/doc/crypto/X509_VERIFY_PARAM_set_flags.pod
  stable/11/crypto/openssl/doc/crypto/threads.pod
  stable/11/crypto/openssl/engines/ccgost/README.gost
  stable/11/crypto/openssl/engines/ccgost/gost_eng.c
  stable/11/crypto/openssl/engines/e_atalla.c
  stable/11/crypto/openssl/ssl/Makefile
  stable/11/crypto/openssl/ssl/bad_dtls_test.c
  stable/11/crypto/openssl/ssl/d1_lib.c
  stable/11/crypto/openssl/ssl/d1_pkt.c
  stable/11/crypto/openssl/ssl/fatalerrtest.c
  stable/11/crypto/openssl/ssl/kssl.c
  stable/11/crypto/openssl/ssl/s23_srvr.c
  stable/11/crypto/openssl/ssl/s2_clnt.c
  stable/11/crypto/openssl/ssl/s2_enc.c
  stable/11/crypto/openssl/ssl/s2_lib.c
  stable/11/crypto/openssl/ssl/s2_srvr.c
  stable/11/crypto/openssl/ssl/s3_clnt.c
  stable/11/crypto/openssl/ssl/s3_lib.c
  stable/11/crypto/openssl/ssl/s3_pkt.c
  stable/11/crypto/openssl/ssl/s3_srvr.c
  stable/11/crypto/openssl/ssl/ssl_cert.c
  stable/11/crypto/openssl/ssl/ssl_lib.c
  stable/11/crypto/openssl/ssl/ssl_sess.c
  stable/11/crypto/openssl/ssl/ssltest.c
  stable/11/crypto/openssl/ssl/t1_enc.c
  stable/11/crypto/openssl/ssl/t1_lib.c
  stable/11/crypto/openssl/ssl/t1_trce.c
  stable/11/secure/lib/libcrypto/Makefile.inc
  stable/11/secure/lib/libcrypto/man/ASN1_OBJECT_new.3
  stable/11/secure/lib/libcrypto/man/ASN1_STRING_length.3
  stable/11/secure/lib/libcrypto/man/ASN1_STRING_new.3
  stable/11/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3
  stable/11/secure/lib/libcrypto/man/ASN1_TIME_set.3
  stable/11/secure/lib/libcrypto/man/ASN1_generate_nconf.3
  stable/11/secure/lib/libcrypto/man/BIO_ctrl.3
  stable/11/secure/lib/libcrypto/man/BIO_f_base64.3
  stable/11/secure/lib/libcrypto/man/BIO_f_buffer.3
  stable/11/secure/lib/libcrypto/man/BIO_f_cipher.3
  stable/11/secure/lib/libcrypto/man/BIO_f_md.3
  stable/11/secure/lib/libcrypto/man/BIO_f_null.3
  stable/11/secure/lib/libcrypto/man/BIO_f_ssl.3
  stable/11/secure/lib/libcrypto/man/BIO_find_type.3
  stable/11/secure/lib/libcrypto/man/BIO_new.3
  stable/11/secure/lib/libcrypto/man/BIO_new_CMS.3
  stable/11/secure/lib/libcrypto/man/BIO_push.3
  stable/11/secure/lib/libcrypto/man/BIO_read.3
  stable/11/secure/lib/libcrypto/man/BIO_s_accept.3
  stable/11/secure/lib/libcrypto/man/BIO_s_bio.3
  stable/11/secure/lib/libcrypto/man/BIO_s_connect.3
  stable/11/secure/lib/libcrypto/man/BIO_s_fd.3
  stable/11/secure/lib/libcrypto/man/BIO_s_file.3
  stable/11/secure/lib/libcrypto/man/BIO_s_mem.3
  stable/11/secure/lib/libcrypto/man/BIO_s_null.3
  stable/11/secure/lib/libcrypto/man/BIO_s_socket.3
  stable/11/secure/lib/libcrypto/man/BIO_set_callback.3
  stable/11/secure/lib/libcrypto/man/BIO_should_retry.3
  stable/11/secure/lib/libcrypto/man/BN_BLINDING_new.3
  stable/11/secure/lib/libcrypto/man/BN_CTX_new.3
  stable/11/secure/lib/libcrypto/man/BN_CTX_start.3
  stable/11/secure/lib/libcrypto/man/BN_add.3
  stable/11/secure/lib/libcrypto/man/BN_add_word.3
  stable/11/secure/lib/libcrypto/man/BN_bn2bin.3
  stable/11/secure/lib/libcrypto/man/BN_cmp.3
  stable/11/secure/lib/libcrypto/man/BN_copy.3
  stable/11/secure/lib/libcrypto/man/BN_generate_prime.3
  stable/11/secure/lib/libcrypto/man/BN_mod_inverse.3
  stable/11/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3
  stable/11/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3
  stable/11/secure/lib/libcrypto/man/BN_new.3
  stable/11/secure/lib/libcrypto/man/BN_num_bytes.3
  stable/11/secure/lib/libcrypto/man/BN_rand.3
  stable/11/secure/lib/libcrypto/man/BN_set_bit.3
  stable/11/secure/lib/libcrypto/man/BN_swap.3
  stable/11/secure/lib/libcrypto/man/BN_zero.3
  stable/11/secure/lib/libcrypto/man/CMS_add0_cert.3
  stable/11/secure/lib/libcrypto/man/CMS_add1_recipient_cert.3
  stable/11/secure/lib/libcrypto/man/CMS_add1_signer.3
  stable/11/secure/lib/libcrypto/man/CMS_compress.3
  stable/11/secure/lib/libcrypto/man/CMS_decrypt.3
  stable/11/secure/lib/libcrypto/man/CMS_encrypt.3
  stable/11/secure/lib/libcrypto/man/CMS_final.3
  stable/11/secure/lib/libcrypto/man/CMS_get0_RecipientInfos.3
  stable/11/secure/lib/libcrypto/man/CMS_get0_SignerInfos.3
  stable/11/secure/lib/libcrypto/man/CMS_get0_type.3
  stable/11/secure/lib/libcrypto/man/CMS_get1_ReceiptRequest.3
  stable/11/secure/lib/libcrypto/man/CMS_sign.3
  stable/11/secure/lib/libcrypto/man/CMS_sign_receipt.3
  stable/11/secure/lib/libcrypto/man/CMS_uncompress.3
  stable/11/secure/lib/libcrypto/man/CMS_verify.3
  stable/11/secure/lib/libcrypto/man/CMS_verify_receipt.3
  stable/11/secure/lib/libcrypto/man/CONF_modules_free.3
  stable/11/secure/lib/libcrypto/man/CONF_modules_load_file.3
  stable/11/secure/lib/libcrypto/man/CRYPTO_set_ex_data.3
  stable/11/secure/lib/libcrypto/man/DH_generate_key.3
  stable/11/secure/lib/libcrypto/man/DH_generate_parameters.3
  stable/11/secure/lib/libcrypto/man/DH_get_ex_new_index.3
  stable/11/secure/lib/libcrypto/man/DH_new.3
  stable/11/secure/lib/libcrypto/man/DH_set_method.3
  stable/11/secure/lib/libcrypto/man/DH_size.3
  stable/11/secure/lib/libcrypto/man/DSA_SIG_new.3
  stable/11/secure/lib/libcrypto/man/DSA_do_sign.3
  stable/11/secure/lib/libcrypto/man/DSA_dup_DH.3
  stable/11/secure/lib/libcrypto/man/DSA_generate_key.3
  stable/11/secure/lib/libcrypto/man/DSA_generate_parameters.3
  stable/11/secure/lib/libcrypto/man/DSA_get_ex_new_index.3
  stable/11/secure/lib/libcrypto/man/DSA_new.3
  stable/11/secure/lib/libcrypto/man/DSA_set_method.3
  stable/11/secure/lib/libcrypto/man/DSA_sign.3
  stable/11/secure/lib/libcrypto/man/DSA_size.3
  stable/11/secure/lib/libcrypto/man/EC_GFp_simple_method.3
  stable/11/secure/lib/libcrypto/man/EC_GROUP_copy.3
  stable/11/secure/lib/libcrypto/man/EC_GROUP_new.3
  stable/11/secure/lib/libcrypto/man/EC_KEY_new.3
  stable/11/secure/lib/libcrypto/man/EC_POINT_add.3
  stable/11/secure/lib/libcrypto/man/EC_POINT_new.3
  stable/11/secure/lib/libcrypto/man/ERR_GET_LIB.3
  stable/11/secure/lib/libcrypto/man/ERR_clear_error.3
  stable/11/secure/lib/libcrypto/man/ERR_error_string.3
  stable/11/secure/lib/libcrypto/man/ERR_get_error.3
  stable/11/secure/lib/libcrypto/man/ERR_load_crypto_strings.3
  stable/11/secure/lib/libcrypto/man/ERR_load_strings.3
  stable/11/secure/lib/libcrypto/man/ERR_print_errors.3
  stable/11/secure/lib/libcrypto/man/ERR_put_error.3
  stable/11/secure/lib/libcrypto/man/ERR_remove_state.3
  stable/11/secure/lib/libcrypto/man/ERR_set_mark.3
  stable/11/secure/lib/libcrypto/man/EVP_BytesToKey.3
  stable/11/secure/lib/libcrypto/man/EVP_DigestInit.3
  stable/11/secure/lib/libcrypto/man/EVP_DigestSignInit.3
  stable/11/secure/lib/libcrypto/man/EVP_DigestVerifyInit.3
  stable/11/secure/lib/libcrypto/man/EVP_EncodeInit.3
  stable/11/secure/lib/libcrypto/man/EVP_EncryptInit.3
  stable/11/secure/lib/libcrypto/man/EVP_OpenInit.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_CTX_ctrl.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_CTX_new.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_cmp.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_decrypt.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_derive.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_encrypt.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_get_default_digest.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_keygen.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_meth_new.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_new.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_print_private.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_sign.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_verify.3
  stable/11/secure/lib/libcrypto/man/EVP_PKEY_verify_recover.3
  stable/11/secure/lib/libcrypto/man/EVP_SealInit.3
  stable/11/secure/lib/libcrypto/man/EVP_SignInit.3
  stable/11/secure/lib/libcrypto/man/EVP_VerifyInit.3
  stable/11/secure/lib/libcrypto/man/OBJ_nid2obj.3
  stable/11/secure/lib/libcrypto/man/OPENSSL_Applink.3
  stable/11/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3
  stable/11/secure/lib/libcrypto/man/OPENSSL_config.3
  stable/11/secure/lib/libcrypto/man/OPENSSL_ia32cap.3
  stable/11/secure/lib/libcrypto/man/OPENSSL_instrument_bus.3
  stable/11/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3
  stable/11/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3
  stable/11/secure/lib/libcrypto/man/PEM_write_bio_CMS_stream.3
  stable/11/secure/lib/libcrypto/man/PEM_write_bio_PKCS7_stream.3
  stable/11/secure/lib/libcrypto/man/PKCS12_create.3
  stable/11/secure/lib/libcrypto/man/PKCS12_parse.3
  stable/11/secure/lib/libcrypto/man/PKCS7_decrypt.3
  stable/11/secure/lib/libcrypto/man/PKCS7_encrypt.3
  stable/11/secure/lib/libcrypto/man/PKCS7_sign.3
  stable/11/secure/lib/libcrypto/man/PKCS7_sign_add_signer.3
  stable/11/secure/lib/libcrypto/man/PKCS7_verify.3
  stable/11/secure/lib/libcrypto/man/RAND_add.3
  stable/11/secure/lib/libcrypto/man/RAND_bytes.3
  stable/11/secure/lib/libcrypto/man/RAND_cleanup.3
  stable/11/secure/lib/libcrypto/man/RAND_egd.3
  stable/11/secure/lib/libcrypto/man/RAND_load_file.3
  stable/11/secure/lib/libcrypto/man/RAND_set_rand_method.3
  stable/11/secure/lib/libcrypto/man/RSA_blinding_on.3
  stable/11/secure/lib/libcrypto/man/RSA_check_key.3
  stable/11/secure/lib/libcrypto/man/RSA_generate_key.3
  stable/11/secure/lib/libcrypto/man/RSA_get_ex_new_index.3
  stable/11/secure/lib/libcrypto/man/RSA_new.3
  stable/11/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3
  stable/11/secure/lib/libcrypto/man/RSA_print.3
  stable/11/secure/lib/libcrypto/man/RSA_private_encrypt.3
  stable/11/secure/lib/libcrypto/man/RSA_public_encrypt.3
  stable/11/secure/lib/libcrypto/man/RSA_set_method.3
  stable/11/secure/lib/libcrypto/man/RSA_sign.3
  stable/11/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3
  stable/11/secure/lib/libcrypto/man/RSA_size.3
  stable/11/secure/lib/libcrypto/man/SMIME_read_CMS.3
  stable/11/secure/lib/libcrypto/man/SMIME_read_PKCS7.3
  stable/11/secure/lib/libcrypto/man/SMIME_write_CMS.3
  stable/11/secure/lib/libcrypto/man/SMIME_write_PKCS7.3
  stable/11/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3
  stable/11/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3
  stable/11/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3
  stable/11/secure/lib/libcrypto/man/X509_NAME_print_ex.3
  stable/11/secure/lib/libcrypto/man/X509_STORE_CTX_get_error.3
  stable/11/secure/lib/libcrypto/man/X509_STORE_CTX_get_ex_new_index.3
  stable/11/secure/lib/libcrypto/man/X509_STORE_CTX_new.3
  stable/11/secure/lib/libcrypto/man/X509_STORE_CTX_set_verify_cb.3
  stable/11/secure/lib/libcrypto/man/X509_STORE_set_verify_cb_func.3
  stable/11/secure/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3
  stable/11/secure/lib/libcrypto/man/X509_check_host.3
  stable/11/secure/lib/libcrypto/man/X509_check_private_key.3
  stable/11/secure/lib/libcrypto/man/X509_new.3
  stable/11/secure/lib/libcrypto/man/X509_verify_cert.3
  stable/11/secure/lib/libcrypto/man/bio.3
  stable/11/secure/lib/libcrypto/man/blowfish.3
  stable/11/secure/lib/libcrypto/man/bn.3
  stable/11/secure/lib/libcrypto/man/bn_internal.3
  stable/11/secure/lib/libcrypto/man/buffer.3
  stable/11/secure/lib/libcrypto/man/crypto.3
  stable/11/secure/lib/libcrypto/man/d2i_ASN1_OBJECT.3
  stable/11/secure/lib/libcrypto/man/d2i_CMS_ContentInfo.3
  stable/11/secure/lib/libcrypto/man/d2i_DHparams.3
  stable/11/secure/lib/libcrypto/man/d2i_DSAPublicKey.3
  stable/11/secure/lib/libcrypto/man/d2i_ECPKParameters.3
  stable/11/secure/lib/libcrypto/man/d2i_ECPrivateKey.3
  stable/11/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey.3
  stable/11/secure/lib/libcrypto/man/d2i_PrivateKey.3
  stable/11/secure/lib/libcrypto/man/d2i_RSAPublicKey.3
  stable/11/secure/lib/libcrypto/man/d2i_X509.3
  stable/11/secure/lib/libcrypto/man/d2i_X509_ALGOR.3
  stable/11/secure/lib/libcrypto/man/d2i_X509_CRL.3
  stable/11/secure/lib/libcrypto/man/d2i_X509_NAME.3
  stable/11/secure/lib/libcrypto/man/d2i_X509_REQ.3
  stable/11/secure/lib/libcrypto/man/d2i_X509_SIG.3
  stable/11/secure/lib/libcrypto/man/des.3
  stable/11/secure/lib/libcrypto/man/dh.3
  stable/11/secure/lib/libcrypto/man/dsa.3
  stable/11/secure/lib/libcrypto/man/ec.3
  stable/11/secure/lib/libcrypto/man/ecdsa.3
  stable/11/secure/lib/libcrypto/man/engine.3
  stable/11/secure/lib/libcrypto/man/err.3
  stable/11/secure/lib/libcrypto/man/evp.3
  stable/11/secure/lib/libcrypto/man/hmac.3
  stable/11/secure/lib/libcrypto/man/i2d_CMS_bio_stream.3
  stable/11/secure/lib/libcrypto/man/i2d_PKCS7_bio_stream.3
  stable/11/secure/lib/libcrypto/man/lh_stats.3
  stable/11/secure/lib/libcrypto/man/lhash.3
  stable/11/secure/lib/libcrypto/man/md5.3
  stable/11/secure/lib/libcrypto/man/mdc2.3
  stable/11/secure/lib/libcrypto/man/pem.3
  stable/11/secure/lib/libcrypto/man/rand.3
  stable/11/secure/lib/libcrypto/man/rc4.3
  stable/11/secure/lib/libcrypto/man/ripemd.3
  stable/11/secure/lib/libcrypto/man/rsa.3
  stable/11/secure/lib/libcrypto/man/sha.3
  stable/11/secure/lib/libcrypto/man/threads.3
  stable/11/secure/lib/libcrypto/man/ui.3
  stable/11/secure/lib/libcrypto/man/ui_compat.3
  stable/11/secure/lib/libcrypto/man/x509.3
  stable/11/secure/lib/libssl/man/SSL_CIPHER_get_name.3
  stable/11/secure/lib/libssl/man/SSL_COMP_add_compression_method.3
  stable/11/secure/lib/libssl/man/SSL_CONF_CTX_new.3
  stable/11/secure/lib/libssl/man/SSL_CONF_CTX_set1_prefix.3
  stable/11/secure/lib/libssl/man/SSL_CONF_CTX_set_flags.3
  stable/11/secure/lib/libssl/man/SSL_CONF_CTX_set_ssl_ctx.3
  stable/11/secure/lib/libssl/man/SSL_CONF_cmd.3
  stable/11/secure/lib/libssl/man/SSL_CONF_cmd_argv.3
  stable/11/secure/lib/libssl/man/SSL_CTX_add1_chain_cert.3
  stable/11/secure/lib/libssl/man/SSL_CTX_add_extra_chain_cert.3
  stable/11/secure/lib/libssl/man/SSL_CTX_add_session.3
  stable/11/secure/lib/libssl/man/SSL_CTX_ctrl.3
  stable/11/secure/lib/libssl/man/SSL_CTX_flush_sessions.3
  stable/11/secure/lib/libssl/man/SSL_CTX_free.3
  stable/11/secure/lib/libssl/man/SSL_CTX_get0_param.3
  stable/11/secure/lib/libssl/man/SSL_CTX_get_ex_new_index.3
  stable/11/secure/lib/libssl/man/SSL_CTX_get_verify_mode.3
  stable/11/secure/lib/libssl/man/SSL_CTX_load_verify_locations.3
  stable/11/secure/lib/libssl/man/SSL_CTX_new.3
  stable/11/secure/lib/libssl/man/SSL_CTX_sess_number.3
  stable/11/secure/lib/libssl/man/SSL_CTX_sess_set_cache_size.3
  stable/11/secure/lib/libssl/man/SSL_CTX_sess_set_get_cb.3
  stable/11/secure/lib/libssl/man/SSL_CTX_sessions.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set1_curves.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set1_verify_cert_store.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_alpn_select_cb.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_cert_cb.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_cert_store.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_cert_verify_callback.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_cipher_list.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_client_CA_list.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_client_cert_cb.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_custom_cli_ext.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_default_passwd_cb.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_generate_session_id.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_info_callback.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_max_cert_list.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_mode.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_msg_callback.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_options.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_psk_client_callback.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_quiet_shutdown.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_read_ahead.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_session_cache_mode.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_session_id_context.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_ssl_version.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_timeout.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_tlsext_servername_callback.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_tlsext_status_cb.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_tlsext_ticket_key_cb.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_tmp_dh_callback.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_tmp_rsa_callback.3
  stable/11/secure/lib/libssl/man/SSL_CTX_set_verify.3
  stable/11/secure/lib/libssl/man/SSL_CTX_use_certificate.3
  stable/11/secure/lib/libssl/man/SSL_CTX_use_psk_identity_hint.3
  stable/11/secure/lib/libssl/man/SSL_CTX_use_serverinfo.3
  stable/11/secure/lib/libssl/man/SSL_SESSION_free.3
  stable/11/secure/lib/libssl/man/SSL_SESSION_get_ex_new_index.3
  stable/11/secure/lib/libssl/man/SSL_SESSION_get_time.3
  stable/11/secure/lib/libssl/man/SSL_accept.3
  stable/11/secure/lib/libssl/man/SSL_alert_type_string.3
  stable/11/secure/lib/libssl/man/SSL_check_chain.3
  stable/11/secure/lib/libssl/man/SSL_clear.3
  stable/11/secure/lib/libssl/man/SSL_connect.3
  stable/11/secure/lib/libssl/man/SSL_do_handshake.3
  stable/11/secure/lib/libssl/man/SSL_export_keying_material.3
  stable/11/secure/lib/libssl/man/SSL_free.3
  stable/11/secure/lib/libssl/man/SSL_get_SSL_CTX.3
  stable/11/secure/lib/libssl/man/SSL_get_ciphers.3
  stable/11/secure/lib/libssl/man/SSL_get_client_CA_list.3
  stable/11/secure/lib/libssl/man/SSL_get_current_cipher.3
  stable/11/secure/lib/libssl/man/SSL_get_default_timeout.3
  stable/11/secure/lib/libssl/man/SSL_get_error.3
  stable/11/secure/lib/libssl/man/SSL_get_ex_data_X509_STORE_CTX_idx.3
  stable/11/secure/lib/libssl/man/SSL_get_ex_new_index.3
  stable/11/secure/lib/libssl/man/SSL_get_fd.3
  stable/11/secure/lib/libssl/man/SSL_get_peer_cert_chain.3
  stable/11/secure/lib/libssl/man/SSL_get_peer_certificate.3
  stable/11/secure/lib/libssl/man/SSL_get_psk_identity.3
  stable/11/secure/lib/libssl/man/SSL_get_rbio.3
  stable/11/secure/lib/libssl/man/SSL_get_session.3
  stable/11/secure/lib/libssl/man/SSL_get_verify_result.3
  stable/11/secure/lib/libssl/man/SSL_get_version.3
  stable/11/secure/lib/libssl/man/SSL_library_init.3
  stable/11/secure/lib/libssl/man/SSL_load_client_CA_file.3
  stable/11/secure/lib/libssl/man/SSL_new.3
  stable/11/secure/lib/libssl/man/SSL_pending.3
  stable/11/secure/lib/libssl/man/SSL_read.3
  stable/11/secure/lib/libssl/man/SSL_rstate_string.3
  stable/11/secure/lib/libssl/man/SSL_session_reused.3
  stable/11/secure/lib/libssl/man/SSL_set_bio.3
  stable/11/secure/lib/libssl/man/SSL_set_connect_state.3
  stable/11/secure/lib/libssl/man/SSL_set_fd.3
  stable/11/secure/lib/libssl/man/SSL_set_session.3
  stable/11/secure/lib/libssl/man/SSL_set_shutdown.3
  stable/11/secure/lib/libssl/man/SSL_set_verify_result.3
  stable/11/secure/lib/libssl/man/SSL_shutdown.3
  stable/11/secure/lib/libssl/man/SSL_state_string.3
  stable/11/secure/lib/libssl/man/SSL_want.3
  stable/11/secure/lib/libssl/man/SSL_write.3
  stable/11/secure/lib/libssl/man/d2i_SSL_SESSION.3
  stable/11/secure/lib/libssl/man/ssl.3
  stable/11/secure/usr.bin/openssl/man/CA.pl.1
  stable/11/secure/usr.bin/openssl/man/asn1parse.1
  stable/11/secure/usr.bin/openssl/man/ca.1
  stable/11/secure/usr.bin/openssl/man/ciphers.1
  stable/11/secure/usr.bin/openssl/man/cms.1
  stable/11/secure/usr.bin/openssl/man/crl.1
  stable/11/secure/usr.bin/openssl/man/crl2pkcs7.1
  stable/11/secure/usr.bin/openssl/man/dgst.1
  stable/11/secure/usr.bin/openssl/man/dhparam.1
  stable/11/secure/usr.bin/openssl/man/dsa.1
  stable/11/secure/usr.bin/openssl/man/dsaparam.1
  stable/11/secure/usr.bin/openssl/man/ec.1
  stable/11/secure/usr.bin/openssl/man/ecparam.1
  stable/11/secure/usr.bin/openssl/man/enc.1
  stable/11/secure/usr.bin/openssl/man/errstr.1
  stable/11/secure/usr.bin/openssl/man/gendsa.1
  stable/11/secure/usr.bin/openssl/man/genpkey.1
  stable/11/secure/usr.bin/openssl/man/genrsa.1
  stable/11/secure/usr.bin/openssl/man/nseq.1
  stable/11/secure/usr.bin/openssl/man/ocsp.1
  stable/11/secure/usr.bin/openssl/man/openssl.1
  stable/11/secure/usr.bin/openssl/man/passwd.1
  stable/11/secure/usr.bin/openssl/man/pkcs12.1
  stable/11/secure/usr.bin/openssl/man/pkcs7.1
  stable/11/secure/usr.bin/openssl/man/pkcs8.1
  stable/11/secure/usr.bin/openssl/man/pkey.1
  stable/11/secure/usr.bin/openssl/man/pkeyparam.1
  stable/11/secure/usr.bin/openssl/man/pkeyutl.1
  stable/11/secure/usr.bin/openssl/man/rand.1
  stable/11/secure/usr.bin/openssl/man/req.1
  stable/11/secure/usr.bin/openssl/man/rsa.1
  stable/11/secure/usr.bin/openssl/man/rsautl.1
  stable/11/secure/usr.bin/openssl/man/s_client.1
  stable/11/secure/usr.bin/openssl/man/s_server.1
  stable/11/secure/usr.bin/openssl/man/s_time.1
  stable/11/secure/usr.bin/openssl/man/sess_id.1
  stable/11/secure/usr.bin/openssl/man/smime.1
  stable/11/secure/usr.bin/openssl/man/speed.1
  stable/11/secure/usr.bin/openssl/man/spkac.1
  stable/11/secure/usr.bin/openssl/man/ts.1
  stable/11/secure/usr.bin/openssl/man/tsget.1
  stable/11/secure/usr.bin/openssl/man/verify.1
  stable/11/secure/usr.bin/openssl/man/version.1
  stable/11/secure/usr.bin/openssl/man/x509.1
  stable/11/secure/usr.bin/openssl/man/x509v3_config.1
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/crypto/openssl/CHANGES
==============================================================================
--- stable/11/crypto/openssl/CHANGES	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/CHANGES	Tue Mar 27 17:54:46 2018	(r331638)
@@ -7,6 +7,21 @@
  https://github.com/openssl/openssl/commits/ and pick the appropriate
  release branch.
 
+ Changes between 1.0.2n and 1.0.2o [27 Mar 2018]
+
+  *) Constructed ASN.1 types with a recursive definition could exceed the stack
+
+     Constructed ASN.1 types with a recursive definition (such as can be found
+     in PKCS7) could eventually exceed the stack given malicious input with
+     excessive recursion. This could result in a Denial Of Service attack. There
+     are no such structures used within SSL/TLS that come from untrusted sources
+     so this is considered safe.
+
+     This issue was reported to OpenSSL on 4th January 2018 by the OSS-fuzz
+     project.
+     (CVE-2018-0739)
+     [Matt Caswell]
+
  Changes between 1.0.2m and 1.0.2n [7 Dec 2017]
 
   *) Read/write after SSL object in error state
@@ -2012,8 +2027,11 @@
      to work with OPENSSL_NO_SSL_INTERN defined.
      [Steve Henson]
 
-  *) Add SRP support.
-     [Tom Wu  and Ben Laurie]
+  *) A long standing patch to add support for SRP from EdelWeb (Peter
+     Sylvester and Christophe Renou) was integrated.
+     [Christophe Renou , Peter Sylvester
+     , Tom Wu , and
+     Ben Laurie]
 
   *) Add functions to copy EVP_PKEY_METHOD and retrieve flags and id.
      [Steve Henson]

Modified: stable/11/crypto/openssl/Configure
==============================================================================
--- stable/11/crypto/openssl/Configure	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/Configure	Tue Mar 27 17:54:46 2018	(r331638)
@@ -354,7 +354,7 @@ my %table=(
 "hpux-gcc",	"gcc:-DB_ENDIAN -DBN_DIV2W -O3::(unknown)::-Wl,+s -ldld:DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
 #### HP MPE/iX http://jazz.external.hp.com/src/openssl/
-"MPE/iX-gcc",	"gcc:-D_ENDIAN -DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):MPE:-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
+"MPE/iX-gcc",	"gcc:-DBN_DIV2W -O3 -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):MPE:-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
 
 # DEC Alpha OSF/1/Tru64 targets.
 #
@@ -1269,7 +1269,7 @@ my ($prelflags,$postlflags)=split('%',$lflags);
 if (defined($postlflags))	{ $lflags=$postlflags;	}
 else				{ $lflags=$prelflags; undef $prelflags;	}
 
-if ($target =~ /^mingw/ && `$cc --target-help 2>&1` !~ m/\-mno\-cygwin/m)
+if ($target =~ /^mingw/ && `$cross_compile_prefix$cc --target-help 2>&1` !~ m/\-mno\-cygwin/m)
 	{
 	$cflags =~ s/\-mno\-cygwin\s*//;
 	$shared_ldflag =~ s/\-mno\-cygwin\s*//;
@@ -1661,18 +1661,25 @@ if ($shlib_version_number =~ /(^[0-9]*)\.([0-9\.]*)/)
 	$shlib_minor=$2;
 	}
 
-my $ecc = $cc;
-$ecc = "clang" if `$cc --version 2>&1` =~ /clang/;
+my %predefined;
 
+# collect compiler pre-defines from gcc or gcc-alike...
+open(PIPE, "$cross_compile_prefix$cc -dM -E -x c /dev/null 2>&1 |");
+while () {
+  m/^#define\s+(\w+(?:\(\w+\))?)(?:\s+(.+))?/ or last;
+  $predefined{$1} = defined($2) ? $2 : "";
+}
+close(PIPE);
+
 if ($strict_warnings)
 	{
 	my $wopt;
-	die "ERROR --strict-warnings requires gcc or clang" unless ($ecc =~ /gcc$/ or $ecc =~ /clang$/);
+	die "ERROR --strict-warnings requires gcc or clang" unless defined($predefined{__GNUC__});
 	foreach $wopt (split /\s+/, $gcc_devteam_warn)
 		{
 		$cflags .= " $wopt" unless ($cflags =~ /(^|\s)$wopt(\s|$)/)
 		}
-	if ($ecc eq "clang")
+	if (defined($predefined{__clang__}))
 		{
 		foreach $wopt (split /\s+/, $clang_devteam_warn)
 			{
@@ -1723,15 +1730,14 @@ while ()
 		s/^NM=\s*/NM= \$\(CROSS_COMPILE\)/;
 		s/^RANLIB=\s*/RANLIB= \$\(CROSS_COMPILE\)/;
 		s/^RC=\s*/RC= \$\(CROSS_COMPILE\)/;
-		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= \$\(CROSS_COMPILE\)$cc/ if $cc eq "gcc";
+		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= \$\(CROSS_COMPILE\)$cc/ if $predefined{__GNUC__} >= 3;
 		}
 	else	{
 		s/^CC=.*$/CC= $cc/;
 		s/^AR=\s*ar/AR= $ar/;
 		s/^RANLIB=.*/RANLIB= $ranlib/;
 		s/^RC=.*/RC= $windres/;
-		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc";
-		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $ecc eq "gcc" || $ecc eq "clang";
+		s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $predefined{__GNUC__} >= 3;
 		}
 	s/^CFLAG=.*$/CFLAG= $cflags/;
 	s/^DEPFLAG=.*$/DEPFLAG=$depflags/;

Modified: stable/11/crypto/openssl/LICENSE
==============================================================================
--- stable/11/crypto/openssl/LICENSE	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/LICENSE	Tue Mar 27 17:54:46 2018	(r331638)
@@ -12,7 +12,7 @@
   ---------------
 
 /* ====================================================================
- * Copyright (c) 1998-2017 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions

Modified: stable/11/crypto/openssl/Makefile
==============================================================================
--- stable/11/crypto/openssl/Makefile	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/Makefile	Tue Mar 27 17:54:46 2018	(r331638)
@@ -4,7 +4,7 @@
 ## Makefile for OpenSSL
 ##
 
-VERSION=1.0.2n
+VERSION=1.0.2o
 MAJOR=1
 MINOR=0.2
 SHLIB_VERSION_NUMBER=1.0.0
@@ -73,7 +73,7 @@ NM= nm
 PERL= /usr/bin/perl
 TAR= tar
 TARFLAGS= --no-recursion
-MAKEDEPPROG=makedepend
+MAKEDEPPROG= cc
 LIBDIR=lib
 
 # We let the C compiler driver to take care of .s files. This is done in

Modified: stable/11/crypto/openssl/NEWS
==============================================================================
--- stable/11/crypto/openssl/NEWS	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/NEWS	Tue Mar 27 17:54:46 2018	(r331638)
@@ -5,6 +5,11 @@
   This file gives a brief overview of the major changes between each OpenSSL
   release. For more details please read the CHANGES file.
 
+  Major changes between OpenSSL 1.0.2n and OpenSSL 1.0.2o [27 Mar 2018]
+
+      o Constructed ASN.1 types with a recursive definition could exceed the
+        stack (CVE-2018-0739)
+
   Major changes between OpenSSL 1.0.2m and OpenSSL 1.0.2n [7 Dec 2017]
 
       o Read/write after SSL object in error state (CVE-2017-3737)

Modified: stable/11/crypto/openssl/README
==============================================================================
--- stable/11/crypto/openssl/README	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/README	Tue Mar 27 17:54:46 2018	(r331638)
@@ -1,5 +1,5 @@
 
- OpenSSL 1.0.2n 7 Dec 2017
+ OpenSSL 1.0.2o 27 Mar 2018
 
  Copyright (c) 1998-2015 The OpenSSL Project
  Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson

Modified: stable/11/crypto/openssl/apps/app_rand.c
==============================================================================
--- stable/11/crypto/openssl/apps/app_rand.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/app_rand.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -128,7 +128,7 @@ int app_RAND_load_file(const char *file, BIO *bio_e, i
 #endif
 
     if (file == NULL)
-        file = RAND_file_name(buffer, sizeof buffer);
+        file = RAND_file_name(buffer, sizeof(buffer));
     else if (RAND_egd(file) > 0) {
         /*
          * we try if the given filename is an EGD socket. if it is, we don't
@@ -203,7 +203,7 @@ int app_RAND_write_file(const char *file, BIO *bio_e)
         return 0;
 
     if (file == NULL)
-        file = RAND_file_name(buffer, sizeof buffer);
+        file = RAND_file_name(buffer, sizeof(buffer));
     if (file == NULL || !RAND_write_file(file)) {
         BIO_printf(bio_e, "unable to write 'random state'\n");
         return 0;

Modified: stable/11/crypto/openssl/apps/apps.c
==============================================================================
--- stable/11/crypto/openssl/apps/apps.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/apps.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -1738,9 +1738,9 @@ int save_serial(char *serialfile, char *suffix, BIGNUM
         BUF_strlcpy(buf[0], serialfile, BSIZE);
     else {
 #ifndef OPENSSL_SYS_VMS
-        j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", serialfile, suffix);
+        j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", serialfile, suffix);
 #else
-        j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", serialfile, suffix);
+        j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", serialfile, suffix);
 #endif
     }
 #ifdef RL_DEBUG
@@ -1789,14 +1789,14 @@ int rotate_serial(char *serialfile, char *new_suffix, 
         goto err;
     }
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", serialfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", serialfile, new_suffix);
 #else
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", serialfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", serialfile, new_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s.%s", serialfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s.%s", serialfile, old_suffix);
 #else
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s-%s", serialfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s-%s", serialfile, old_suffix);
 #endif
 #ifdef RL_DEBUG
     BIO_printf(bio_err, "DEBUG: renaming \"%s\" to \"%s\"\n",
@@ -1877,9 +1877,9 @@ CA_DB *load_index(char *dbfile, DB_ATTR *db_attr)
         goto err;
 
 #ifndef OPENSSL_SYS_VMS
-    BIO_snprintf(buf[0], sizeof buf[0], "%s.attr", dbfile);
+    BIO_snprintf(buf[0], sizeof(buf[0]), "%s.attr", dbfile);
 #else
-    BIO_snprintf(buf[0], sizeof buf[0], "%s-attr", dbfile);
+    BIO_snprintf(buf[0], sizeof(buf[0]), "%s-attr", dbfile);
 #endif
     dbattr_conf = NCONF_new(NULL);
     if (NCONF_load(dbattr_conf, buf[0], &errorline) <= 0) {
@@ -1967,19 +1967,19 @@ int save_index(const char *dbfile, const char *suffix,
         goto err;
     }
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s.attr", dbfile);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s.attr", dbfile);
 #else
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s-attr", dbfile);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s-attr", dbfile);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s.attr.%s", dbfile, suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s.attr.%s", dbfile, suffix);
 #else
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s-attr-%s", dbfile, suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s-attr-%s", dbfile, suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", dbfile, suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", dbfile, suffix);
 #else
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", dbfile, suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", dbfile, suffix);
 #endif
 #ifdef RL_DEBUG
     BIO_printf(bio_err, "DEBUG: writing \"%s\"\n", buf[0]);
@@ -2028,29 +2028,29 @@ int rotate_index(const char *dbfile, const char *new_s
         goto err;
     }
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[4], sizeof buf[4], "%s.attr", dbfile);
+    j = BIO_snprintf(buf[4], sizeof(buf[4]), "%s.attr", dbfile);
 #else
-    j = BIO_snprintf(buf[4], sizeof buf[4], "%s-attr", dbfile);
+    j = BIO_snprintf(buf[4], sizeof(buf[4]), "%s-attr", dbfile);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s.attr.%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s.attr.%s", dbfile, new_suffix);
 #else
-    j = BIO_snprintf(buf[2], sizeof buf[2], "%s-attr-%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[2], sizeof(buf[2]), "%s-attr-%s", dbfile, new_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s.%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s.%s", dbfile, new_suffix);
 #else
-    j = BIO_snprintf(buf[0], sizeof buf[0], "%s-%s", dbfile, new_suffix);
+    j = BIO_snprintf(buf[0], sizeof(buf[0]), "%s-%s", dbfile, new_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s.%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s.%s", dbfile, old_suffix);
 #else
-    j = BIO_snprintf(buf[1], sizeof buf[1], "%s-%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[1], sizeof(buf[1]), "%s-%s", dbfile, old_suffix);
 #endif
 #ifndef OPENSSL_SYS_VMS
-    j = BIO_snprintf(buf[3], sizeof buf[3], "%s.attr.%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[3], sizeof(buf[3]), "%s.attr.%s", dbfile, old_suffix);
 #else
-    j = BIO_snprintf(buf[3], sizeof buf[3], "%s-attr-%s", dbfile, old_suffix);
+    j = BIO_snprintf(buf[3], sizeof(buf[3]), "%s-attr-%s", dbfile, old_suffix);
 #endif
 #ifdef RL_DEBUG
     BIO_printf(bio_err, "DEBUG: renaming \"%s\" to \"%s\"\n", dbfile, buf[1]);
@@ -2604,7 +2604,7 @@ static void jpake_send_step3a(BIO *bconn, JPAKE_CTX *c
 
     JPAKE_STEP3A_init(&s3a);
     JPAKE_STEP3A_generate(&s3a, ctx);
-    BIO_write(bconn, s3a.hhk, sizeof s3a.hhk);
+    BIO_write(bconn, s3a.hhk, sizeof(s3a.hhk));
     (void)BIO_flush(bconn);
     JPAKE_STEP3A_release(&s3a);
 }
@@ -2615,7 +2615,7 @@ static void jpake_send_step3b(BIO *bconn, JPAKE_CTX *c
 
     JPAKE_STEP3B_init(&s3b);
     JPAKE_STEP3B_generate(&s3b, ctx);
-    BIO_write(bconn, s3b.hk, sizeof s3b.hk);
+    BIO_write(bconn, s3b.hk, sizeof(s3b.hk));
     (void)BIO_flush(bconn);
     JPAKE_STEP3B_release(&s3b);
 }
@@ -2625,7 +2625,7 @@ static void readbn(BIGNUM **bn, BIO *bconn)
     char buf[10240];
     int l;
 
-    l = BIO_gets(bconn, buf, sizeof buf);
+    l = BIO_gets(bconn, buf, sizeof(buf));
     assert(l > 0);
     assert(buf[l - 1] == '\n');
     buf[l - 1] = '\0';
@@ -2672,8 +2672,8 @@ static void jpake_receive_step3a(JPAKE_CTX *ctx, BIO *
     int l;
 
     JPAKE_STEP3A_init(&s3a);
-    l = BIO_read(bconn, s3a.hhk, sizeof s3a.hhk);
-    assert(l == sizeof s3a.hhk);
+    l = BIO_read(bconn, s3a.hhk, sizeof(s3a.hhk));
+    assert(l == sizeof(s3a.hhk));
     if (!JPAKE_STEP3A_process(ctx, &s3a)) {
         ERR_print_errors(bio_err);
         exit(1);
@@ -2687,8 +2687,8 @@ static void jpake_receive_step3b(JPAKE_CTX *ctx, BIO *
     int l;
 
     JPAKE_STEP3B_init(&s3b);
-    l = BIO_read(bconn, s3b.hk, sizeof s3b.hk);
-    assert(l == sizeof s3b.hk);
+    l = BIO_read(bconn, s3b.hk, sizeof(s3b.hk));
+    assert(l == sizeof(s3b.hk));
     if (!JPAKE_STEP3B_process(ctx, &s3b)) {
         ERR_print_errors(bio_err);
         exit(1);

Modified: stable/11/crypto/openssl/apps/ca.c
==============================================================================
--- stable/11/crypto/openssl/apps/ca.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/ca.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -1628,8 +1628,7 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
                    CONF *lconf, unsigned long certopt, unsigned long nameopt,
                    int default_op, int ext_copy, int selfsign)
 {
-    X509_NAME *name = NULL, *CAname = NULL, *subject = NULL, *dn_subject =
-        NULL;
+    X509_NAME *name = NULL, *CAname = NULL, *subject = NULL;
     ASN1_UTCTIME *tm, *tmptm;
     ASN1_STRING *str, *str2;
     ASN1_OBJECT *obj;
@@ -1817,8 +1816,6 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
 
             if (push != NULL) {
                 if (!X509_NAME_add_entry(subject, push, -1, 0)) {
-                    if (push != NULL)
-                        X509_NAME_ENTRY_free(push);
                     BIO_printf(bio_err, "Memory allocation failure\n");
                     goto err;
                 }
@@ -1836,104 +1833,6 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
             goto err;
     }
 
-    if (verbose)
-        BIO_printf(bio_err,
-                   "The subject name appears to be ok, checking data base for clashes\n");
-
-    /* Build the correct Subject if no e-mail is wanted in the subject */
-    /*
-     * and add it later on because of the method extensions are added
-     * (altName)
-     */
-
-    if (email_dn)
-        dn_subject = subject;
-    else {
-        X509_NAME_ENTRY *tmpne;
-        /*
-         * Its best to dup the subject DN and then delete any email addresses
-         * because this retains its structure.
-         */
-        if (!(dn_subject = X509_NAME_dup(subject))) {
-            BIO_printf(bio_err, "Memory allocation failure\n");
-            goto err;
-        }
-        while ((i = X509_NAME_get_index_by_NID(dn_subject,
-                                               NID_pkcs9_emailAddress,
-                                               -1)) >= 0) {
-            tmpne = X509_NAME_get_entry(dn_subject, i);
-            X509_NAME_delete_entry(dn_subject, i);
-            X509_NAME_ENTRY_free(tmpne);
-        }
-    }
-
-    if (BN_is_zero(serial))
-        row[DB_serial] = BUF_strdup("00");
-    else
-        row[DB_serial] = BN_bn2hex(serial);
-    if (row[DB_serial] == NULL) {
-        BIO_printf(bio_err, "Memory allocation failure\n");
-        goto err;
-    }
-
-    if (db->attributes.unique_subject) {
-        OPENSSL_STRING *crow = row;
-
-        rrow = TXT_DB_get_by_index(db->db, DB_name, crow);
-        if (rrow != NULL) {
-            BIO_printf(bio_err,
-                       "ERROR:There is already a certificate for %s\n",
-                       row[DB_name]);
-        }
-    }
-    if (rrow == NULL) {
-        rrow = TXT_DB_get_by_index(db->db, DB_serial, row);
-        if (rrow != NULL) {
-            BIO_printf(bio_err,
-                       "ERROR:Serial number %s has already been issued,\n",
-                       row[DB_serial]);
-            BIO_printf(bio_err,
-                       "      check the database/serial_file for corruption\n");
-        }
-    }
-
-    if (rrow != NULL) {
-        BIO_printf(bio_err, "The matching entry has the following details\n");
-        if (rrow[DB_type][0] == 'E')
-            p = "Expired";
-        else if (rrow[DB_type][0] == 'R')
-            p = "Revoked";
-        else if (rrow[DB_type][0] == 'V')
-            p = "Valid";
-        else
-            p = "\ninvalid type, Data base error\n";
-        BIO_printf(bio_err, "Type          :%s\n", p);;
-        if (rrow[DB_type][0] == 'R') {
-            p = rrow[DB_exp_date];
-            if (p == NULL)
-                p = "undef";
-            BIO_printf(bio_err, "Was revoked on:%s\n", p);
-        }
-        p = rrow[DB_exp_date];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "Expires on    :%s\n", p);
-        p = rrow[DB_serial];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "Serial Number :%s\n", p);
-        p = rrow[DB_file];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "File name     :%s\n", p);
-        p = rrow[DB_name];
-        if (p == NULL)
-            p = "undef";
-        BIO_printf(bio_err, "Subject Name  :%s\n", p);
-        ok = -1;                /* This is now a 'bad' error. */
-        goto err;
-    }
-
     /* We are now totally happy, lets make and sign the certificate */
     if (verbose)
         BIO_printf(bio_err,
@@ -2056,12 +1955,126 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
                 goto err;
     }
 
-    /* Set the right value for the noemailDN option */
-    if (email_dn == 0) {
-        if (!X509_set_subject_name(ret, dn_subject))
+    if (verbose)
+        BIO_printf(bio_err,
+                   "The subject name appears to be ok, checking data base for clashes\n");
+
+    /* Build the correct Subject if no e-mail is wanted in the subject */
+
+    if (!email_dn) {
+        X509_NAME_ENTRY *tmpne;
+        X509_NAME *dn_subject;
+
+        /*
+         * Its best to dup the subject DN and then delete any email addresses
+         * because this retains its structure.
+         */
+        if (!(dn_subject = X509_NAME_dup(subject))) {
+            BIO_printf(bio_err, "Memory allocation failure\n");
             goto err;
+        }
+        while ((i = X509_NAME_get_index_by_NID(dn_subject,
+                                               NID_pkcs9_emailAddress,
+                                               -1)) >= 0) {
+            tmpne = X509_NAME_get_entry(dn_subject, i);
+            X509_NAME_delete_entry(dn_subject, i);
+            X509_NAME_ENTRY_free(tmpne);
+        }
+
+        if (!X509_set_subject_name(ret, dn_subject)) {
+            X509_NAME_free(dn_subject);
+            goto err;
+        }
+        X509_NAME_free(dn_subject);
     }
 
+    row[DB_name] = X509_NAME_oneline(X509_get_subject_name(ret), NULL, 0);
+    if (row[DB_name] == NULL) {
+        BIO_printf(bio_err, "Memory allocation failure\n");
+        goto err;
+    }
+
+    if (BN_is_zero(serial))
+        row[DB_serial] = BUF_strdup("00");
+    else
+        row[DB_serial] = BN_bn2hex(serial);
+    if (row[DB_serial] == NULL) {
+        BIO_printf(bio_err, "Memory allocation failure\n");
+        goto err;
+    }
+
+    if (row[DB_name][0] == '\0') {
+        /*
+         * An empty subject! We'll use the serial number instead. If
+         * unique_subject is in use then we don't want different entries with
+         * empty subjects matching each other.
+         */
+        OPENSSL_free(row[DB_name]);
+        row[DB_name] = OPENSSL_strdup(row[DB_serial]);
+        if (row[DB_name] == NULL) {
+            BIO_printf(bio_err, "Memory allocation failure\n");
+            goto err;
+        }
+    }
+
+    if (db->attributes.unique_subject) {
+        OPENSSL_STRING *crow = row;
+
+        rrow = TXT_DB_get_by_index(db->db, DB_name, crow);
+        if (rrow != NULL) {
+            BIO_printf(bio_err,
+                       "ERROR:There is already a certificate for %s\n",
+                       row[DB_name]);
+        }
+    }
+    if (rrow == NULL) {
+        rrow = TXT_DB_get_by_index(db->db, DB_serial, row);
+        if (rrow != NULL) {
+            BIO_printf(bio_err,
+                       "ERROR:Serial number %s has already been issued,\n",
+                       row[DB_serial]);
+            BIO_printf(bio_err,
+                       "      check the database/serial_file for corruption\n");
+        }
+    }
+
+    if (rrow != NULL) {
+        BIO_printf(bio_err, "The matching entry has the following details\n");
+        if (rrow[DB_type][0] == 'E')
+            p = "Expired";
+        else if (rrow[DB_type][0] == 'R')
+            p = "Revoked";
+        else if (rrow[DB_type][0] == 'V')
+            p = "Valid";
+        else
+            p = "\ninvalid type, Data base error\n";
+        BIO_printf(bio_err, "Type          :%s\n", p);;
+        if (rrow[DB_type][0] == 'R') {
+            p = rrow[DB_exp_date];
+            if (p == NULL)
+                p = "undef";
+            BIO_printf(bio_err, "Was revoked on:%s\n", p);
+        }
+        p = rrow[DB_exp_date];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "Expires on    :%s\n", p);
+        p = rrow[DB_serial];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "Serial Number :%s\n", p);
+        p = rrow[DB_file];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "File name     :%s\n", p);
+        p = rrow[DB_name];
+        if (p == NULL)
+            p = "undef";
+        BIO_printf(bio_err, "Subject Name  :%s\n", p);
+        ok = -1;                /* This is now a 'bad' error. */
+        goto err;
+    }
+
     if (!default_op) {
         BIO_printf(bio_err, "Certificate Details:\n");
         /*
@@ -2110,10 +2123,9 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
     row[DB_exp_date] = OPENSSL_malloc(tm->length + 1);
     row[DB_rev_date] = OPENSSL_malloc(1);
     row[DB_file] = OPENSSL_malloc(8);
-    row[DB_name] = X509_NAME_oneline(X509_get_subject_name(ret), NULL, 0);
     if ((row[DB_type] == NULL) || (row[DB_exp_date] == NULL) ||
         (row[DB_rev_date] == NULL) ||
-        (row[DB_file] == NULL) || (row[DB_name] == NULL)) {
+        (row[DB_file] == NULL)) {
         BIO_printf(bio_err, "Memory allocation failure\n");
         goto err;
     }
@@ -2143,18 +2155,16 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *
     irow = NULL;
     ok = 1;
  err:
-    if (irow != NULL) {
+    if (ok != 1) {
         for (i = 0; i < DB_NUMBER; i++)
             OPENSSL_free(row[i]);
-        OPENSSL_free(irow);
     }
+    OPENSSL_free(irow);
 
     if (CAname != NULL)
         X509_NAME_free(CAname);
     if (subject != NULL)
         X509_NAME_free(subject);
-    if ((dn_subject != NULL) && !email_dn)
-        X509_NAME_free(dn_subject);
     if (tmptm != NULL)
         ASN1_UTCTIME_free(tmptm);
     if (ok <= 0) {
@@ -2357,6 +2367,11 @@ static int do_revoke(X509 *x509, CA_DB *db, int type, 
     else
         row[DB_serial] = BN_bn2hex(bn);
     BN_free(bn);
+    if (row[DB_name] != NULL && row[DB_name][0] == '\0') {
+        /* Entries with empty Subjects actually use the serial number instead */
+        OPENSSL_free(row[DB_name]);
+        row[DB_name] = OPENSSL_strdup(row[DB_serial]);
+    }
     if ((row[DB_name] == NULL) || (row[DB_serial] == NULL)) {
         BIO_printf(bio_err, "Memory allocation failure\n");
         goto err;

Modified: stable/11/crypto/openssl/apps/ciphers.c
==============================================================================
--- stable/11/crypto/openssl/apps/ciphers.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/ciphers.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -217,7 +217,7 @@ int MAIN(int argc, char **argv)
                 BIO_printf(STDout, "%s - ", nm);
             }
 #endif
-            BIO_puts(STDout, SSL_CIPHER_description(c, buf, sizeof buf));
+            BIO_puts(STDout, SSL_CIPHER_description(c, buf, sizeof(buf)));
         }
     }
 

Modified: stable/11/crypto/openssl/apps/cms.c
==============================================================================
--- stable/11/crypto/openssl/apps/cms.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/cms.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -4,7 +4,7 @@
  * project.
  */
 /* ====================================================================
- * Copyright (c) 2008 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 2008-2018 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -977,12 +977,16 @@ int MAIN(int argc, char **argv)
 
             signer = load_cert(bio_err, signerfile, FORMAT_PEM, NULL,
                                e, "signer certificate");
-            if (!signer)
+            if (!signer) {
+                ret = 2;
                 goto end;
+            }
             key = load_key(bio_err, keyfile, keyform, 0, passin, e,
                            "signing key file");
-            if (!key)
+            if (!key) {
+                ret = 2;
                 goto end;
+            }
             for (kparam = key_first; kparam; kparam = kparam->next) {
                 if (kparam->idx == i) {
                     tflags |= CMS_KEY_PARAM;

Modified: stable/11/crypto/openssl/apps/dgst.c
==============================================================================
--- stable/11/crypto/openssl/apps/dgst.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/dgst.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -145,7 +145,7 @@ int MAIN(int argc, char **argv)
         goto end;
 
     /* first check the program name */
-    program_name(argv[0], pname, sizeof pname);
+    program_name(argv[0], pname, sizeof(pname));
 
     md = EVP_get_digestbyname(pname);
 

Modified: stable/11/crypto/openssl/apps/dsaparam.c
==============================================================================
--- stable/11/crypto/openssl/apps/dsaparam.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/dsaparam.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -382,6 +382,9 @@ int MAIN(int argc, char **argv)
         printf("\treturn(dsa);\n\t}\n");
     }
 
+    if (outformat == FORMAT_ASN1 && genkey)
+        noout = 1;
+
     if (!noout) {
         if (outformat == FORMAT_ASN1)
             i = i2d_DSAparams_bio(out, dsa);

Modified: stable/11/crypto/openssl/apps/ecparam.c
==============================================================================
--- stable/11/crypto/openssl/apps/ecparam.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/ecparam.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -3,7 +3,7 @@
  * Written by Nils Larsch for the OpenSSL project.
  */
 /* ====================================================================
- * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 1998-2018 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -546,6 +546,9 @@ int MAIN(int argc, char **argv)
         BIO_printf(out, "\treturn(group);\n\t}\n");
     }
 
+    if (outformat == FORMAT_ASN1 && genkey)
+        noout = 1;
+
     if (!noout) {
         if (outformat == FORMAT_ASN1)
             i = i2d_ECPKParameters_bio(out, group);
@@ -581,6 +584,9 @@ int MAIN(int argc, char **argv)
 
         if (EC_KEY_set_group(eckey, group) == 0)
             goto end;
+
+        if (new_form)
+            EC_KEY_set_conv_form(eckey, form);
 
         if (!EC_KEY_generate_key(eckey)) {
             EC_KEY_free(eckey);

Modified: stable/11/crypto/openssl/apps/enc.c
==============================================================================
--- stable/11/crypto/openssl/apps/enc.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/enc.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -114,7 +114,7 @@ int MAIN(int, char **);
 int MAIN(int argc, char **argv)
 {
     static const char magic[] = "Salted__";
-    char mbuf[sizeof magic - 1];
+    char mbuf[sizeof(magic) - 1];
     char *strbuf = NULL;
     unsigned char *buff = NULL, *bufsize = NULL;
     int bsize = BSIZE, verbose = 0;
@@ -154,7 +154,7 @@ int MAIN(int argc, char **argv)
         goto end;
 
     /* first check the program name */
-    program_name(argv[0], pname, sizeof pname);
+    program_name(argv[0], pname, sizeof(pname));
     if (strcmp(pname, "base64") == 0)
         base64 = 1;
 #ifdef ZLIB
@@ -247,7 +247,7 @@ int MAIN(int argc, char **argv)
                 goto bad;
             }
             buf[0] = '\0';
-            if (!fgets(buf, sizeof buf, infile)) {
+            if (!fgets(buf, sizeof(buf), infile)) {
                 BIO_printf(bio_err, "unable to read key from '%s'\n", file);
                 goto bad;
             }
@@ -432,7 +432,7 @@ int MAIN(int argc, char **argv)
         for (;;) {
             char buf[200];
 
-            BIO_snprintf(buf, sizeof buf, "enter %s %s password:",
+            BIO_snprintf(buf, sizeof(buf), "enter %s %s password:",
                          OBJ_nid2ln(EVP_CIPHER_nid(cipher)),
                          (enc) ? "encryption" : "decryption");
             strbuf[0] = '\0';
@@ -517,31 +517,31 @@ int MAIN(int argc, char **argv)
             else {
                 if (enc) {
                     if (hsalt) {
-                        if (!set_hex(hsalt, salt, sizeof salt)) {
+                        if (!set_hex(hsalt, salt, sizeof(salt))) {
                             BIO_printf(bio_err, "invalid hex salt value\n");
                             goto end;
                         }
-                    } else if (RAND_bytes(salt, sizeof salt) <= 0)
+                    } else if (RAND_bytes(salt, sizeof(salt)) <= 0)
                         goto end;
                     /*
                      * If -P option then don't bother writing
                      */
                     if ((printkey != 2)
                         && (BIO_write(wbio, magic,
-                                      sizeof magic - 1) != sizeof magic - 1
+                                      sizeof(magic) - 1) != sizeof(magic) - 1
                             || BIO_write(wbio,
                                          (char *)salt,
-                                         sizeof salt) != sizeof salt)) {
+                                         sizeof(salt)) != sizeof(salt))) {
                         BIO_printf(bio_err, "error writing output file\n");
                         goto end;
                     }
-                } else if (BIO_read(rbio, mbuf, sizeof mbuf) != sizeof mbuf
+                } else if (BIO_read(rbio, mbuf, sizeof(mbuf)) != sizeof(mbuf)
                            || BIO_read(rbio,
                                        (unsigned char *)salt,
-                                       sizeof salt) != sizeof salt) {
+                                       sizeof(salt)) != sizeof(salt)) {
                     BIO_printf(bio_err, "error reading input file\n");
                     goto end;
-                } else if (memcmp(mbuf, magic, sizeof magic - 1)) {
+                } else if (memcmp(mbuf, magic, sizeof(magic) - 1)) {
                     BIO_printf(bio_err, "bad magic number\n");
                     goto end;
                 }
@@ -564,7 +564,7 @@ int MAIN(int argc, char **argv)
             int siz = EVP_CIPHER_iv_length(cipher);
             if (siz == 0) {
                 BIO_printf(bio_err, "warning: iv not use by this cipher\n");
-            } else if (!set_hex(hiv, iv, sizeof iv)) {
+            } else if (!set_hex(hiv, iv, sizeof(iv))) {
                 BIO_printf(bio_err, "invalid hex iv value\n");
                 goto end;
             }

Modified: stable/11/crypto/openssl/apps/errstr.c
==============================================================================
--- stable/11/crypto/openssl/apps/errstr.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/errstr.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -108,7 +108,7 @@ int MAIN(int argc, char **argv)
 
     for (i = 1; i < argc; i++) {
         if (sscanf(argv[i], "%lx", &l)) {
-            ERR_error_string_n(l, buf, sizeof buf);
+            ERR_error_string_n(l, buf, sizeof(buf));
             printf("%s\n", buf);
         } else {
             printf("%s: bad error code\n", argv[i]);

Modified: stable/11/crypto/openssl/apps/ocsp.c
==============================================================================
--- stable/11/crypto/openssl/apps/ocsp.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/ocsp.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -1195,7 +1195,7 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcb
     *pcbio = cbio;
 
     for (;;) {
-        len = BIO_gets(cbio, inbuf, sizeof inbuf);
+        len = BIO_gets(cbio, inbuf, sizeof(inbuf));
         if (len <= 0)
             return 1;
         /* Look for "POST" signalling start of query */

Modified: stable/11/crypto/openssl/apps/openssl.c
==============================================================================
--- stable/11/crypto/openssl/apps/openssl.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/openssl.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -351,7 +351,7 @@ int main(int Argc, char *ARGV[])
     prog = prog_init();
 
     /* first check the program name */
-    program_name(Argv[0], pname, sizeof pname);
+    program_name(Argv[0], pname, sizeof(pname));
 
     f.name = pname;
     fp = lh_FUNCTION_retrieve(prog, &f);
@@ -379,7 +379,7 @@ int main(int Argc, char *ARGV[])
     for (;;) {
         ret = 0;
         p = buf;
-        n = sizeof buf;
+        n = sizeof(buf);
         i = 0;
         for (;;) {
             p[0] = '\0';
@@ -685,7 +685,7 @@ static LHASH_OF(FUNCTION) *prog_init(void)
 
     /* Purely so it looks nice when the user hits ? */
     for (i = 0, f = functions; f->name != NULL; ++f, ++i) ;
-    qsort(functions, i, sizeof *functions, SortFnByName);
+    qsort(functions, i, sizeof(*functions), SortFnByName);
 
     if ((ret = lh_FUNCTION_new()) == NULL)
         return (NULL);

Modified: stable/11/crypto/openssl/apps/passwd.c
==============================================================================
--- stable/11/crypto/openssl/apps/passwd.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/passwd.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -252,7 +252,7 @@ int MAIN(int argc, char **argv)
                     /* ignore rest of line */
                     char trash[BUFSIZ];
                     do
-                        r = BIO_gets(in, trash, sizeof trash);
+                        r = BIO_gets(in, trash, sizeof(trash));
                     while ((r > 0) && (!strchr(trash, '\n')));
                 }
 
@@ -329,8 +329,8 @@ static char *md5crypt(const char *passwd, const char *
     EVP_DigestUpdate(&md2, passwd, passwd_len);
     EVP_DigestFinal_ex(&md2, buf, NULL);
 
-    for (i = passwd_len; i > sizeof buf; i -= sizeof buf)
-        EVP_DigestUpdate(&md, buf, sizeof buf);
+    for (i = passwd_len; i > sizeof(buf); i -= sizeof(buf))
+        EVP_DigestUpdate(&md, buf, sizeof(buf));
     EVP_DigestUpdate(&md, buf, i);
 
     n = passwd_len;
@@ -343,13 +343,13 @@ static char *md5crypt(const char *passwd, const char *
     for (i = 0; i < 1000; i++) {
         EVP_DigestInit_ex(&md2, EVP_md5(), NULL);
         EVP_DigestUpdate(&md2, (i & 1) ? (unsigned const char *)passwd : buf,
-                         (i & 1) ? passwd_len : sizeof buf);
+                         (i & 1) ? passwd_len : sizeof(buf));
         if (i % 3)
             EVP_DigestUpdate(&md2, salt_out, salt_len);
         if (i % 7)
             EVP_DigestUpdate(&md2, passwd, passwd_len);
         EVP_DigestUpdate(&md2, (i & 1) ? buf : (unsigned const char *)passwd,
-                         (i & 1) ? sizeof buf : passwd_len);
+                         (i & 1) ? sizeof(buf) : passwd_len);
         EVP_DigestFinal_ex(&md2, buf, NULL);
     }
     EVP_MD_CTX_cleanup(&md2);
@@ -357,7 +357,7 @@ static char *md5crypt(const char *passwd, const char *
     {
         /* transform buf into output string */
 
-        unsigned char buf_perm[sizeof buf];
+        unsigned char buf_perm[sizeof(buf)];
         int dest, source;
         char *output;
 
@@ -369,7 +369,7 @@ static char *md5crypt(const char *passwd, const char *
         buf_perm[15] = buf[11];
 #  ifndef PEDANTIC              /* Unfortunately, this generates a "no
                                  * effect" warning */
-        assert(16 == sizeof buf_perm);
+        assert(16 == sizeof(buf_perm));
 #  endif
 
         output = salt_out + salt_len;

Modified: stable/11/crypto/openssl/apps/pkcs12.c
==============================================================================
--- stable/11/crypto/openssl/apps/pkcs12.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/pkcs12.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -481,7 +481,7 @@ int MAIN(int argc, char **argv)
         CRYPTO_push_info("read MAC password");
 # endif
         if (EVP_read_pw_string
-            (macpass, sizeof macpass, "Enter MAC Password:", export_cert)) {
+            (macpass, sizeof(macpass), "Enter MAC Password:", export_cert)) {
             BIO_printf(bio_err, "Can't read Password\n");
             goto end;
         }
@@ -629,13 +629,13 @@ int MAIN(int argc, char **argv)
 # endif
 
         if (!noprompt &&
-            EVP_read_pw_string(pass, sizeof pass, "Enter Export Password:",
+            EVP_read_pw_string(pass, sizeof(pass), "Enter Export Password:",
                                1)) {
             BIO_printf(bio_err, "Can't read Password\n");
             goto export_end;
         }
         if (!twopass)
-            BUF_strlcpy(macpass, pass, sizeof macpass);
+            BUF_strlcpy(macpass, pass, sizeof(macpass));
 
 # ifdef CRYPTO_MDEBUG
         CRYPTO_pop_info();
@@ -698,7 +698,7 @@ int MAIN(int argc, char **argv)
     CRYPTO_push_info("read import password");
 # endif
     if (!noprompt
-        && EVP_read_pw_string(pass, sizeof pass, "Enter Import Password:",
+        && EVP_read_pw_string(pass, sizeof(pass), "Enter Import Password:",
                               0)) {
         BIO_printf(bio_err, "Can't read Password\n");
         goto end;
@@ -708,7 +708,7 @@ int MAIN(int argc, char **argv)
 # endif
 
     if (!twopass)
-        BUF_strlcpy(macpass, pass, sizeof macpass);
+        BUF_strlcpy(macpass, pass, sizeof(macpass));
 
     if ((options & INFO) && p12->mac)
         BIO_printf(bio_err, "MAC Iteration %ld\n",

Modified: stable/11/crypto/openssl/apps/pkcs8.c
==============================================================================
--- stable/11/crypto/openssl/apps/pkcs8.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/pkcs8.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -277,7 +277,7 @@ int MAIN(int argc, char **argv)
             else {
                 p8pass = pass;
                 if (EVP_read_pw_string
-                    (pass, sizeof pass, "Enter Encryption Password:", 1))
+                    (pass, sizeof(pass), "Enter Encryption Password:", 1))
                     goto end;
             }
             app_RAND_load_file(NULL, bio_err, 0);
@@ -331,7 +331,7 @@ int MAIN(int argc, char **argv)
             p8pass = passin;
         else {
             p8pass = pass;
-            EVP_read_pw_string(pass, sizeof pass, "Enter Password:", 0);
+            EVP_read_pw_string(pass, sizeof(pass), "Enter Password:", 0);
         }
         p8inf = PKCS8_decrypt(p8, p8pass, strlen(p8pass));
     }

Modified: stable/11/crypto/openssl/apps/rand.c
==============================================================================
--- stable/11/crypto/openssl/apps/rand.c	Tue Mar 27 17:52:52 2018	(r331637)
+++ stable/11/crypto/openssl/apps/rand.c	Tue Mar 27 17:54:46 2018	(r331638)
@@ -198,7 +198,7 @@ int MAIN(int argc, char **argv)
 
         chunk = num;
         if (chunk > (int)sizeof(buf))

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Tue Mar 27 17:58:01 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DFAC0F70848;
 Tue, 27 Mar 2018 17:58:00 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 875FD763FC;
 Tue, 27 Mar 2018 17:58:00 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7DD841F739;
 Tue, 27 Mar 2018 17:58:00 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RHw0wG075517;
 Tue, 27 Mar 2018 17:58:00 GMT (envelope-from cem@FreeBSD.org)
Received: (from cem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RHw0qX075515;
 Tue, 27 Mar 2018 17:58:00 GMT (envelope-from cem@FreeBSD.org)
Message-Id: <201803271758.w2RHw0qX075515@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org
 using -f
From: Conrad Meyer 
Date: Tue, 27 Mar 2018 17:58:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331639 - head/sys/opencrypto
X-SVN-Group: head
X-SVN-Commit-Author: cem
X-SVN-Commit-Paths: head/sys/opencrypto
X-SVN-Commit-Revision: 331639
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 17:58:01 -0000

Author: cem
Date: Tue Mar 27 17:58:00 2018
New Revision: 331639
URL: https://svnweb.freebsd.org/changeset/base/331639

Log:
  opencrypto: Add mechanism to pass multiple crypto blocks to some ciphers
  
  xforms that support processing of multiple blocks at a time (to support more
  efficient modes, for example) can define the encrypt_ and decrypt_multi
  interfaces.  If these interfaces are not present, the generic cryptosoft
  code falls back on the block-at-a-time encrypt/decrypt interfaces.
  
  Stream ciphers may support arbitrarily sized inputs (equivalent to an input
  block size of 1 byte) but may be more efficient if a larger block is passed.
  
  Sponsored by:	Dell EMC Isilon

Modified:
  head/sys/opencrypto/cryptosoft.c
  head/sys/opencrypto/xform_enc.h

Modified: head/sys/opencrypto/cryptosoft.c
==============================================================================
--- head/sys/opencrypto/cryptosoft.c	Tue Mar 27 17:54:46 2018	(r331638)
+++ head/sys/opencrypto/cryptosoft.c	Tue Mar 27 17:58:00 2018	(r331639)
@@ -248,21 +248,29 @@ swcr_encdec(struct cryptodesc *crd, struct swcr_data *
 				break;
 		}
 
-		/*
-		 * Warning: idat may point to garbage here, but
-		 * we only use it in the while() loop, only if
-		 * there are indeed enough data.
-		 */
-		idat = (char *)uio->uio_iov[ind].iov_base + k;
-
 		while (uio->uio_iov[ind].iov_len >= k + blks && i > 0) {
+			size_t nb, rem;
+
+			nb = blks;
+			rem = uio->uio_iov[ind].iov_len - k;
+			idat = (char *)uio->uio_iov[ind].iov_base + k;
+
 			if (exf->reinit) {
-				if (crd->crd_flags & CRD_F_ENCRYPT) {
+				if ((crd->crd_flags & CRD_F_ENCRYPT) != 0 &&
+				    exf->encrypt_multi == NULL)
 					exf->encrypt(sw->sw_kschedule,
 					    idat);
-				} else {
+				else if ((crd->crd_flags & CRD_F_ENCRYPT) != 0) {
+					nb = rounddown(rem, blks);
+					exf->encrypt_multi(sw->sw_kschedule,
+					    idat, nb);
+				} else if (exf->decrypt_multi == NULL)
 					exf->decrypt(sw->sw_kschedule,
 					    idat);
+				else {
+					nb = rounddown(rem, blks);
+					exf->decrypt_multi(sw->sw_kschedule,
+					    idat, nb);
 				}
 			} else if (crd->crd_flags & CRD_F_ENCRYPT) {
 				/* XOR with previous block/IV */
@@ -288,10 +296,10 @@ swcr_encdec(struct cryptodesc *crd, struct swcr_data *
 				ivp = nivp;
 			}
 
-			idat += blks;
-			count += blks;
-			k += blks;
-			i -= blks;
+			idat += nb;
+			count += nb;
+			k += nb;
+			i -= nb;
 		}
 
 		/*
@@ -566,14 +574,26 @@ swcr_authenc(struct cryptop *crp)
 		exf->reinit(swe->sw_kschedule, iv);
 
 	/* Do encryption/decryption with MAC */
-	for (i = 0; i < crde->crd_len; i += blksz) {
-		len = MIN(crde->crd_len - i, blksz);
+	for (i = 0; i < crde->crd_len; i += len) {
+		if (exf->encrypt_multi != NULL) {
+			len = rounddown(crde->crd_len - i, blksz);
+			if (len == 0)
+				len = blksz;
+			else
+				len = MIN(len, sizeof(blkbuf));
+		} else
+			len = blksz;
+		len = MIN(crde->crd_len - i, len);
 		if (len < blksz)
 			bzero(blk, blksz);
 		crypto_copydata(crp->crp_flags, buf, crde->crd_skip + i, len,
 		    blk);
 		if (crde->crd_flags & CRD_F_ENCRYPT) {
-			exf->encrypt(swe->sw_kschedule, blk);
+			if (exf->encrypt_multi != NULL)
+				exf->encrypt_multi(swe->sw_kschedule, blk,
+				    len);
+			else
+				exf->encrypt(swe->sw_kschedule, blk);
 			axf->Update(&ctx, blk, len);
 			crypto_copyback(crp->crp_flags, buf,
 			    crde->crd_skip + i, len, blk);

Modified: head/sys/opencrypto/xform_enc.h
==============================================================================
--- head/sys/opencrypto/xform_enc.h	Tue Mar 27 17:54:46 2018	(r331638)
+++ head/sys/opencrypto/xform_enc.h	Tue Mar 27 17:58:00 2018	(r331639)
@@ -59,6 +59,14 @@ struct enc_xform {
 	int (*setkey) (u_int8_t **, u_int8_t *, int len);
 	void (*zerokey) (u_int8_t **);
 	void (*reinit) (caddr_t, u_int8_t *);
+	/*
+	 * Encrypt/decrypt 1+ blocks of input -- total size is 'len' bytes.
+	 * Len is guaranteed to be a multiple of the defined 'blocksize'.
+	 * Optional interface -- most useful for stream ciphers with a small
+	 * blocksize (1).
+	 */
+	void (*encrypt_multi) (void *, uint8_t *, size_t len);
+	void (*decrypt_multi) (void *, uint8_t *, size_t len);
 };
 
 

From owner-svn-src-all@freebsd.org  Tue Mar 27 18:05:36 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A0EA8F711E7;
 Tue, 27 Mar 2018 18:05:36 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1])
 (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 45E1276B90;
 Tue, 27 Mar 2018 18:05:36 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215])
 by mail.baldwin.cx (Postfix) with ESMTPSA id 648AF10AF2A;
 Tue, 27 Mar 2018 14:05:35 -0400 (EDT)
From: John Baldwin 
To: Ian Lepore 
Cc: Alexey Dokuchaev , Warner Losh ,
 Kyle Evans , svn-src-head@freebsd.org,
 svn-src-all@freebsd.org, src-committers 
Subject: Re: svn commit: r331209 - head
Date: Tue, 27 Mar 2018 11:03:42 -0700
Message-ID: <2339754.phgDcyqDh9@ralph.baldwin.cx>
User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; )
In-Reply-To: <1522172422.49673.38.camel@freebsd.org>
References: <201803191527.w2JFRr7B058668@repo.freebsd.org>
 <11592636.Xep9SDNT9W@ralph.baldwin.cx>
 <1522172422.49673.38.camel@freebsd.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3
 (mail.baldwin.cx); Tue, 27 Mar 2018 14:05:35 -0400 (EDT)
X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx
X-Virus-Status: Clean
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 18:05:36 -0000

On Tuesday, March 27, 2018 11:40:22 AM Ian Lepore wrote:
> On Tue, 2018-03-27 at 09:48 -0700, John Baldwin wrote:
> > On Tuesday, March 27, 2018 05:19:12 AM Alexey Dokuchaev wrote:
> > > 
> > > On Thu, Mar 22, 2018 at 08:52:47AM -0700, John Baldwin wrote:
> > > > 
> > > > On Thursday, March 22, 2018 04:39:38 AM Alexey Dokuchaev wrote:
> > > > > 
> > > > > > 
> > > > > > ...
> > > > > Right, but John had mentioned extra reboot *between* installkernel and
> > > > > installworld, which I've never heard of before.
> > > > From the end up of src/UPDATING:
> > > > 
> > > >         
> > > >         make buildworld
> > > >         make kernel KERNCONF=YOUR_KERNEL_HERE
> > > >         
> > > If by "reboot" in your original message you meant "drop to single user"
> > > then there's no confusion.  It's just that in my understanding "reboot"
> > > means, well, reboot.
> > No, I meant reboot and it clearly says here "reboot".  Note that
> > 'make kernel' does 'make buildkernel' and 'make installkernel', so
> > the reboot quoted above is after installkernel but before installworld.
> > Perhaps 'make kernel' should be expanded into separate lines for
> > 'buildkernel' and 'installkernel' if that is confusing.
> > 
> 
> I've been working with freebsd since 1996, and had no idea there was a
> kernel target that does build+install.  I think even showing it as
> 
>   make buildkernel installkernel KERNCONF=YOUR_KERNEL_HERE
> 
> would be more clear.

Yeah, that's not bad.  I don't ever use 'kernel' either.

-- 
John Baldwin

From owner-svn-src-all@freebsd.org  Tue Mar 27 18:05:35 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3C6E5F711E2;
 Tue, 27 Mar 2018 18:05:35 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170])
 (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id E5F0576B8A;
 Tue, 27 Mar 2018 18:05:34 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215])
 by mail.baldwin.cx (Postfix) with ESMTPSA id 1B0AE10AFAD;
 Tue, 27 Mar 2018 14:05:34 -0400 (EDT)
From: John Baldwin 
To: rgrimes@freebsd.org
Cc: Ian Lepore , Alexey Dokuchaev ,
 Warner Losh , Kyle Evans ,
 svn-src-head@freebsd.org, svn-src-all@freebsd.org,
 src-committers 
Subject: Re: svn commit: r331209 - head
Date: Tue, 27 Mar 2018 11:05:31 -0700
Message-ID: <2500432.7ECo1HNKKn@ralph.baldwin.cx>
User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; )
In-Reply-To: <201803271748.w2RHmMW1053238@pdx.rh.CN85.dnsmgr.net>
References: <201803271748.w2RHmMW1053238@pdx.rh.CN85.dnsmgr.net>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3
 (mail.baldwin.cx); Tue, 27 Mar 2018 14:05:34 -0400 (EDT)
X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx
X-Virus-Status: Clean
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 18:05:35 -0000

On Tuesday, March 27, 2018 10:48:22 AM Rodney W. Grimes wrote:
> [ Charset ISO-8859-1 unsupported, converting... ]
> > On Tue, 2018-03-27 at 09:48 -0700, John Baldwin wrote:
> > > On Tuesday, March 27, 2018 05:19:12 AM Alexey Dokuchaev wrote:
> > > > 
> > > > On Thu, Mar 22, 2018 at 08:52:47AM -0700, John Baldwin wrote:
> > > > > 
> > > > > On Thursday, March 22, 2018 04:39:38 AM Alexey Dokuchaev wrote:
> > > > > > 
> > > > > > > 
> > > > > > > ...
> > > > > > Right, but John had mentioned extra reboot *between* installkernel and
> > > > > > installworld, which I've never heard of before.
> > > > > From the end up of src/UPDATING:
> > > > > 
> > > > > ????????
> > > > > ????????make buildworld
> > > > > ????????make kernel KERNCONF=YOUR_KERNEL_HERE
> > > > > ????????
> > > > If by "reboot" in your original message you meant "drop to single user"
> > > > then there's no confusion.??It's just that in my understanding "reboot"
> > > > means, well, reboot.
> > > No, I meant reboot and it clearly says here "reboot".??Note that
> > > 'make kernel' does 'make buildkernel' and 'make installkernel', so
> > > the reboot quoted above is after installkernel but before installworld.
> > > Perhaps 'make kernel' should be expanded into separate lines for
> > > 'buildkernel' and 'installkernel' if that is confusing.
> > > 
> > 
> > I've been working with freebsd since 1996, and had no idea there was a
> > kernel target that does build+install. ?I think even showing it as
> 
> I was vegually aware of it, but since I do things between
> buildkernel and installkernel I dont use it, more so cause
> I build kernels on a central box and push them out to
> systems.
> 
> > ? make buildkernel installkernel KERNCONF=YOUR_KERNEL_HERE
> 
> make {kernel|buildkernel installkernel} KERNCONF=YOUR_KERNEL_HERE
> 
> OR
> 
>     make kernel KERNCONF=YOUR_KERNEL_HERE
>     or
>     make buildkernel installkernel KERNCONF=YOUR_KERNEL_HERE

I think just one example is probably fine and explicit buildkernel and
installkernel is probably the more common use.

-- 
John Baldwin

From owner-svn-src-all@freebsd.org  Tue Mar 27 18:05:52 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1958DF71283;
 Tue, 27 Mar 2018 18:05:52 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BE9C176D6B;
 Tue, 27 Mar 2018 18:05:51 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B98501F8DD;
 Tue, 27 Mar 2018 18:05:51 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RI5paM080654;
 Tue, 27 Mar 2018 18:05:51 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RI5pi6080649;
 Tue, 27 Mar 2018 18:05:51 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803271805.w2RI5pi6080649@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Tue, 27 Mar 2018 18:05:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331640 - in head/sys: compat/freebsd32 dev/pci kern
X-SVN-Group: head
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: in head/sys: compat/freebsd32 dev/pci kern
X-SVN-Commit-Revision: 331640
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 18:05:52 -0000

Author: kib
Date: Tue Mar 27 18:05:51 2018
New Revision: 331640
URL: https://svnweb.freebsd.org/changeset/base/331640

Log:
  Fix several leaks of kernel stack data through paddings.
  
  It is random collection of fixes for issues not yet corrected,
  reported at https://tsyrklevi.ch/clang_analyzer/freebsd_013017/. Many
  issues from that list were already corrected. Most of them are for
  compat32, old compat32 or affect both primary host ABI and compat32.
  
  The freebsd32_kldstat(), for instance, was already fixed by using
  malloc(M_ZERO).  Patch includes correction to report the supplied
  version back, which is just pedantic.
  
  Reviewed by:	brooks, emaste (previous version)
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week
  Differential revision:	https://reviews.freebsd.org/D14868

Modified:
  head/sys/compat/freebsd32/freebsd32_misc.c
  head/sys/dev/pci/pci_user.c
  head/sys/kern/kern_ntptime.c
  head/sys/kern/kern_sig.c
  head/sys/kern/sysv_shm.c

Modified: head/sys/compat/freebsd32/freebsd32_misc.c
==============================================================================
--- head/sys/compat/freebsd32/freebsd32_misc.c	Tue Mar 27 17:58:00 2018	(r331639)
+++ head/sys/compat/freebsd32/freebsd32_misc.c	Tue Mar 27 18:05:51 2018	(r331640)
@@ -3285,6 +3285,7 @@ freebsd32_kldstat(struct thread *td, struct freebsd32_
 		CP(*stat, *stat32, size);
 		bcopy(&stat->pathname[0], &stat32->pathname[0],
 		    sizeof(stat->pathname));
+		stat32->version  = version;
 		error = copyout(stat32, uap->stat, version);
 	}
 	free(stat, M_TEMP);

Modified: head/sys/dev/pci/pci_user.c
==============================================================================
--- head/sys/dev/pci/pci_user.c	Tue Mar 27 17:58:00 2018	(r331639)
+++ head/sys/dev/pci/pci_user.c	Tue Mar 27 18:05:51 2018	(r331640)
@@ -770,6 +770,8 @@ pci_ioctl(struct cdev *dev, u_long cmd, caddr_t data, 
 #ifdef PRE7_COMPAT
 #ifdef COMPAT_FREEBSD32
 				if (cmd == PCIOCGETCONF_OLD32) {
+					memset(&conf_old32, 0,
+					    sizeof(conf_old32));
 					conf_old32.pc_sel.pc_bus =
 					    dinfo->conf.pc_sel.pc_bus;
 					conf_old32.pc_sel.pc_dev =
@@ -803,6 +805,7 @@ pci_ioctl(struct cdev *dev, u_long cmd, caddr_t data, 
 				} else
 #endif /* COMPAT_FREEBSD32 */
 				if (cmd == PCIOCGETCONF_OLD) {
+					memset(&conf_old, 0, sizeof(conf_old));
 					conf_old.pc_sel.pc_bus =
 					    dinfo->conf.pc_sel.pc_bus;
 					conf_old.pc_sel.pc_dev =

Modified: head/sys/kern/kern_ntptime.c
==============================================================================
--- head/sys/kern/kern_ntptime.c	Tue Mar 27 17:58:00 2018	(r331639)
+++ head/sys/kern/kern_ntptime.c	Tue Mar 27 18:05:51 2018	(r331640)
@@ -285,6 +285,8 @@ sys_ntp_gettime(struct thread *td, struct ntp_gettime_
 {	
 	struct ntptimeval ntv;
 
+	memset(&ntv, 0, sizeof(ntv));
+
 	NTP_LOCK();
 	ntp_gettime1(&ntv);
 	NTP_UNLOCK();

Modified: head/sys/kern/kern_sig.c
==============================================================================
--- head/sys/kern/kern_sig.c	Tue Mar 27 17:58:00 2018	(r331639)
+++ head/sys/kern/kern_sig.c	Tue Mar 27 18:05:51 2018	(r331640)
@@ -694,8 +694,8 @@ kern_sigaction(struct thread *td, int sig, const struc
 	ps = p->p_sigacts;
 	mtx_lock(&ps->ps_mtx);
 	if (oact) {
+		memset(oact, 0, sizeof(*oact));
 		oact->sa_mask = ps->ps_catchmask[_SIG_IDX(sig)];
-		oact->sa_flags = 0;
 		if (SIGISMEMBER(ps->ps_sigonstack, sig))
 			oact->sa_flags |= SA_ONSTACK;
 		if (!SIGISMEMBER(ps->ps_sigintr, sig))

Modified: head/sys/kern/sysv_shm.c
==============================================================================
--- head/sys/kern/sysv_shm.c	Tue Mar 27 17:58:00 2018	(r331639)
+++ head/sys/kern/sysv_shm.c	Tue Mar 27 18:05:51 2018	(r331640)
@@ -1471,6 +1471,7 @@ freebsd7_freebsd32_shmctl(struct thread *td,
 		break;
 	case SHM_STAT:
 	case IPC_STAT:
+		memset(&u32.shmid_ds32, 0, sizeof(u32.shmid_ds32));
 		freebsd32_ipcperm_old_out(&u.shmid_ds.shm_perm,
 		    &u32.shmid_ds32.shm_perm);
 		if (u.shmid_ds.shm_segsz > INT32_MAX)
@@ -1634,6 +1635,7 @@ freebsd7_shmctl(struct thread *td, struct freebsd7_shm
 	/* Cases in which we need to copyout */
 	switch (uap->cmd) {
 	case IPC_STAT:
+		memset(&old, 0, sizeof(old));
 		ipcperm_new2old(&buf.shm_perm, &old.shm_perm);
 		if (buf.shm_segsz > INT_MAX)
 			old.shm_segsz = INT_MAX;

From owner-svn-src-all@freebsd.org  Tue Mar 27 18:26:51 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 52F73F72EE0;
 Tue, 27 Mar 2018 18:26:51 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EF82577FE7;
 Tue, 27 Mar 2018 18:26:50 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EA41C1FC3C;
 Tue, 27 Mar 2018 18:26:50 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RIQovN091009;
 Tue, 27 Mar 2018 18:26:50 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RIQo1m091007;
 Tue, 27 Mar 2018 18:26:50 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271826.w2RIQo1m091007@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 18:26:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331641 - head/sys/net
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: head/sys/net
X-SVN-Commit-Revision: 331641
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 18:26:51 -0000

Author: brooks
Date: Tue Mar 27 18:26:50 2018
New Revision: 331641
URL: https://svnweb.freebsd.org/changeset/base/331641

Log:
  Fix access to ifru_buffer on freebsd32.
  
  Make all kernel accesses to ifru_buffer go via access functions
  which take the process ABI into account and use an appropriate union
  to access members in the correct place in struct ifreq.
  
  Reviewed by:	kib
  Obtained from:	CheriBSD
  MFC after:	1 week
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14846

Modified:
  head/sys/net/if.c
  head/sys/net/if.h

Modified: head/sys/net/if.c
==============================================================================
--- head/sys/net/if.c	Tue Mar 27 18:05:51 2018	(r331640)
+++ head/sys/net/if.c	Tue Mar 27 18:26:50 2018	(r331641)
@@ -57,6 +57,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -99,8 +100,50 @@
 #ifdef COMPAT_FREEBSD32
 #include 
 #include 
+
+struct ifreq_buffer32 {
+	uint32_t	length;		/* (size_t) */
+	uint32_t	buffer;		/* (void *) */
+};
+
+/*
+ * Interface request structure used for socket
+ * ioctl's.  All interface ioctl's must have parameter
+ * definitions which begin with ifr_name.  The
+ * remainder may be interface specific.
+ */
+struct ifreq32 {
+	char	ifr_name[IFNAMSIZ];		/* if name, e.g. "en0" */
+	union {
+		struct sockaddr	ifru_addr;
+		struct sockaddr	ifru_dstaddr;
+		struct sockaddr	ifru_broadaddr;
+		struct ifreq_buffer32 ifru_buffer;
+		short		ifru_flags[2];
+		short		ifru_index;
+		int		ifru_jid;
+		int		ifru_metric;
+		int		ifru_mtu;
+		int		ifru_phys;
+		int		ifru_media;
+		uint32_t	ifru_data;
+		int		ifru_cap[2];
+		u_int		ifru_fib;
+		u_char		ifru_vlan_pcp;
+	} ifr_ifru;
+};
+CTASSERT(sizeof(struct ifreq) == sizeof(struct ifreq32));
+CTASSERT(__offsetof(struct ifreq, ifr_ifru) ==
+    __offsetof(struct ifreq32, ifr_ifru));
 #endif
 
+union ifreq_union {
+		struct ifreq	ifr;
+#ifdef COMPAT_FREEBSD32
+		struct ifreq32	ifr32;
+#endif
+};
+
 SYSCTL_NODE(_net, PF_LINK, link, CTLFLAG_RW, 0, "Link layers");
 SYSCTL_NODE(_net_link, 0, generic, CTLFLAG_RW, 0, "Generic link-management");
 
@@ -2305,6 +2348,61 @@ ifunit(const char *name)
 	return (ifp);
 }
 
+static void *
+ifr_buffer_get_buffer(struct thread *td, void *data)
+{
+	union ifreq_union *ifrup;
+
+	ifrup = data;
+#ifdef COMPAT_FREEBSD32
+	if (SV_PROC_FLAG(td->td_proc, SV_ILP32))
+		return ((void *)(uintptr_t)
+		    ifrup->ifr32.ifr_ifru.ifru_buffer.buffer);
+#endif
+	return (ifrup->ifr.ifr_ifru.ifru_buffer.buffer);
+}
+
+static void
+ifr_buffer_set_buffer_null(struct thread *td, void *data)
+{
+	union ifreq_union *ifrup;
+
+	ifrup = data;
+#ifdef COMPAT_FREEBSD32
+	if (SV_PROC_FLAG(td->td_proc, SV_ILP32))
+		ifrup->ifr32.ifr_ifru.ifru_buffer.buffer = 0;
+	else
+#endif
+		ifrup->ifr.ifr_ifru.ifru_buffer.buffer = NULL;
+}
+
+static size_t
+ifr_buffer_get_length(struct thread *td, void *data)
+{
+	union ifreq_union *ifrup;
+
+	ifrup = data;
+#ifdef COMPAT_FREEBSD32
+	if (SV_PROC_FLAG(td->td_proc, SV_ILP32))
+		return (ifrup->ifr32.ifr_ifru.ifru_buffer.length);
+#endif
+	return (ifrup->ifr.ifr_ifru.ifru_buffer.length);
+}
+
+static void
+ifr_buffer_set_length(struct thread *td, void *data, size_t len)
+{
+	union ifreq_union *ifrup;
+
+	ifrup = data;
+#ifdef COMPAT_FREEBSD32
+	if (SV_PROC_FLAG(td->td_proc, SV_ILP32))
+		ifrup->ifr32.ifr_ifru.ifru_buffer.length = len;
+	else
+#endif
+		ifrup->ifr.ifr_ifru.ifru_buffer.length = len;
+}
+
 /*
  * Hardware specific interface ioctls.
  */
@@ -2365,12 +2463,12 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data,
 		else {
 			/* space for terminating nul */
 			descrlen = strlen(ifp->if_description) + 1;
-			if (ifr->ifr_buffer.length < descrlen)
-				ifr->ifr_buffer.buffer = NULL;
+			if (ifr_buffer_get_length(td, ifr) < descrlen)
+				ifr_buffer_set_buffer_null(td, ifr);
 			else
 				error = copyout(ifp->if_description,
-				    ifr->ifr_buffer.buffer, descrlen);
-			ifr->ifr_buffer.length = descrlen;
+				    ifr_buffer_get_buffer(td, ifr), descrlen);
+			ifr_buffer_set_length(td, ifr, descrlen);
 		}
 		sx_sunlock(&ifdescr_sx);
 		break;
@@ -2386,15 +2484,15 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data,
 		 * length parameter is supposed to count the
 		 * terminating nul in.
 		 */
-		if (ifr->ifr_buffer.length > ifdescr_maxlen)
+		if (ifr_buffer_get_length(td, ifr) > ifdescr_maxlen)
 			return (ENAMETOOLONG);
-		else if (ifr->ifr_buffer.length == 0)
+		else if (ifr_buffer_get_length(td, ifr) == 0)
 			descrbuf = NULL;
 		else {
-			descrbuf = malloc(ifr->ifr_buffer.length, M_IFDESCR,
-			    M_WAITOK | M_ZERO);
-			error = copyin(ifr->ifr_buffer.buffer, descrbuf,
-			    ifr->ifr_buffer.length - 1);
+			descrbuf = malloc(ifr_buffer_get_length(td, ifr),
+			    M_IFDESCR, M_WAITOK | M_ZERO);
+			error = copyin(ifr_buffer_get_buffer(td, ifr), descrbuf,
+			    ifr_buffer_get_length(td, ifr) - 1);
 			if (error) {
 				free(descrbuf, M_IFDESCR);
 				break;

Modified: head/sys/net/if.h
==============================================================================
--- head/sys/net/if.h	Tue Mar 27 18:05:51 2018	(r331640)
+++ head/sys/net/if.h	Tue Mar 27 18:26:50 2018	(r331641)
@@ -402,7 +402,9 @@ struct	ifreq {
 #define	ifr_addr	ifr_ifru.ifru_addr	/* address */
 #define	ifr_dstaddr	ifr_ifru.ifru_dstaddr	/* other end of p-to-p link */
 #define	ifr_broadaddr	ifr_ifru.ifru_broadaddr	/* broadcast address */
+#ifndef _KERNEL
 #define	ifr_buffer	ifr_ifru.ifru_buffer	/* user supplied buffer with its length */
+#endif
 #define	ifr_flags	ifr_ifru.ifru_flags[0]	/* flags (low 16 bits) */
 #define	ifr_flagshigh	ifr_ifru.ifru_flags[1]	/* flags (high 16 bits) */
 #define	ifr_jid		ifr_ifru.ifru_jid	/* jail/vnet */

From owner-svn-src-all@freebsd.org  Tue Mar 27 18:44:06 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2892AF4A6CD;
 Tue, 27 Mar 2018 18:44:06 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id CF903792F8;
 Tue, 27 Mar 2018 18:44:05 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CA9311FF7B;
 Tue, 27 Mar 2018 18:44:05 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RIi5Da001586;
 Tue, 27 Mar 2018 18:44:05 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RIi5UC001585;
 Tue, 27 Mar 2018 18:44:05 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803271844.w2RIi5UC001585@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Tue, 27 Mar 2018 18:44:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331642 - head/sys/dev/usb/input
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/dev/usb/input
X-SVN-Commit-Revision: 331642
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 18:44:06 -0000

Author: hselasky
Date: Tue Mar 27 18:44:05 2018
New Revision: 331642
URL: https://svnweb.freebsd.org/changeset/base/331642

Log:
  Add support for right and middle click with integrated button to WSP
  USB trackpad driver.
  
  Submitted by:	James Wright 
  PR:		226961
  MFC after:	1 week
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/usb/input/wsp.c

Modified: head/sys/dev/usb/input/wsp.c
==============================================================================
--- head/sys/dev/usb/input/wsp.c	Tue Mar 27 18:26:50 2018	(r331641)
+++ head/sys/dev/usb/input/wsp.c	Tue Mar 27 18:44:05 2018	(r331642)
@@ -929,7 +929,12 @@ wsp_intr_callback(struct usb_xfer *xfer, usb_error_t e
 		sc->sc_status.button = 0;
 
 		if (ibt != 0) {
-			sc->sc_status.button |= MOUSE_BUTTON1DOWN;
+			if ((params->caps & HAS_INTEGRATED_BUTTON) && ntouch == 2)
+				sc->sc_status.button |= MOUSE_BUTTON3DOWN;
+			else if ((params->caps & HAS_INTEGRATED_BUTTON) && ntouch == 3)
+				sc->sc_status.button |= MOUSE_BUTTON2DOWN;
+			else 
+				sc->sc_status.button |= MOUSE_BUTTON1DOWN;
 			sc->ibtn = 1;
 		}
 		sc->intr_count++;

From owner-svn-src-all@freebsd.org  Tue Mar 27 18:52:32 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DEAE9F4E35E;
 Tue, 27 Mar 2018 18:52:31 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8EC7479A42;
 Tue, 27 Mar 2018 18:52:31 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8971C20130;
 Tue, 27 Mar 2018 18:52:31 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RIqVOs006713;
 Tue, 27 Mar 2018 18:52:31 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RIqR9s006675;
 Tue, 27 Mar 2018 18:52:27 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201803271852.w2RIqR9s006675@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric 
Date: Tue, 27 Mar 2018 18:52:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331643 - in stable/11/sys: amd64/amd64 arm/arm
 arm/include crypto/des ddb dev/cs dev/ixgb dev/lge dev/mse dev/my dev/pcn
 dev/ppbus dev/ppc dev/qlxgb dev/qlxgbe dev/qlxge dev/rl dev/sou...
X-SVN-Group: stable-11
X-SVN-Commit-Author: dim
X-SVN-Commit-Paths: in stable/11/sys: amd64/amd64 arm/arm arm/include
 crypto/des ddb dev/cs dev/ixgb dev/lge dev/mse dev/my dev/pcn dev/ppbus
 dev/ppc dev/qlxgb dev/qlxgbe dev/qlxge dev/rl dev/sound/pci dev/speaker
 dev/tl...
X-SVN-Commit-Revision: 331643
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 18:52:32 -0000

Author: dim
Date: Tue Mar 27 18:52:27 2018
New Revision: 331643
URL: https://svnweb.freebsd.org/changeset/base/331643

Log:
  MFC r314568 (by emaste):
  
  kern_sig.c: ANSIfy and remove archaic register keyword
  
  Sponsored by:	The FreeBSD Foundation
  
  MFC r318389 (by emaste):
  
  Remove register keyword from sys/ and ANSIfy prototypes
  
  A long long time ago the register keyword told the compiler to store
  the corresponding variable in a CPU register, but it is not relevant
  for any compiler used in the FreeBSD world today.
  
  ANSIfy related prototypes while here.
  
  Reviewed by:	cem, jhb
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D10193

Modified:
  stable/11/sys/amd64/amd64/sys_machdep.c
  stable/11/sys/amd64/amd64/vm_machdep.c
  stable/11/sys/arm/arm/sys_machdep.c
  stable/11/sys/arm/arm/vm_machdep.c
  stable/11/sys/arm/include/atomic-v4.h
  stable/11/sys/crypto/des/des_enc.c
  stable/11/sys/crypto/des/des_setkey.c
  stable/11/sys/ddb/db_access.c
  stable/11/sys/ddb/db_output.c
  stable/11/sys/ddb/db_sym.c
  stable/11/sys/dev/cs/if_cs.c
  stable/11/sys/dev/ixgb/if_ixgb.c
  stable/11/sys/dev/lge/if_lge.c
  stable/11/sys/dev/mse/mse_isa.c
  stable/11/sys/dev/my/if_my.c
  stable/11/sys/dev/pcn/if_pcn.c
  stable/11/sys/dev/ppbus/immio.c
  stable/11/sys/dev/ppbus/vpoio.c
  stable/11/sys/dev/ppc/ppc.c
  stable/11/sys/dev/qlxgb/qla_os.c
  stable/11/sys/dev/qlxgbe/ql_os.c
  stable/11/sys/dev/qlxge/qls_os.c
  stable/11/sys/dev/rl/if_rl.c
  stable/11/sys/dev/sound/pci/fm801.c
  stable/11/sys/dev/speaker/spkr.c
  stable/11/sys/dev/tl/if_tl.c
  stable/11/sys/dev/usb/usb_busdma.c
  stable/11/sys/dev/wb/if_wb.c
  stable/11/sys/dev/xl/if_xl.c
  stable/11/sys/fs/fifofs/fifo_vnops.c
  stable/11/sys/fs/nandfs/nandfs_vnops.c
  stable/11/sys/i386/i386/in_cksum.c
  stable/11/sys/i386/i386/k6_mem.c
  stable/11/sys/i386/i386/sys_machdep.c
  stable/11/sys/i386/i386/vm_machdep.c
  stable/11/sys/i386/ibcs2/ibcs2_misc.c
  stable/11/sys/i386/ibcs2/ibcs2_other.c
  stable/11/sys/i386/ibcs2/ibcs2_signal.c
  stable/11/sys/i386/ibcs2/ibcs2_socksys.c
  stable/11/sys/i386/isa/ccbque.h
  stable/11/sys/i386/isa/elink.c
  stable/11/sys/kern/inflate.c
  stable/11/sys/kern/kern_clock.c
  stable/11/sys/kern/kern_exec.c
  stable/11/sys/kern/kern_prot.c
  stable/11/sys/kern/kern_resource.c
  stable/11/sys/kern/kern_sig.c
  stable/11/sys/kern/kern_timeout.c
  stable/11/sys/kern/kern_xxx.c
  stable/11/sys/kern/sched_4bsd.c
  stable/11/sys/kern/sysv_msg.c
  stable/11/sys/kern/vfs_export.c
  stable/11/sys/kern/vfs_mount.c
  stable/11/sys/kern/vfs_syscalls.c
  stable/11/sys/kern/vfs_vnops.c
  stable/11/sys/libkern/zlib.c
  stable/11/sys/mips/cavium/cryptocteon/cavium_crypto.c
  stable/11/sys/mips/mips/vm_machdep.c
  stable/11/sys/net/altq/altq_rio.c
  stable/11/sys/net/altq/altq_rmclass.h
  stable/11/sys/net/bpf_filter.c
  stable/11/sys/net/if_llatbl.c
  stable/11/sys/net/if_media.c
  stable/11/sys/net/slcompress.c
  stable/11/sys/netinet/in.c
  stable/11/sys/netinet/in_cksum.c
  stable/11/sys/netinet/ip_icmp.c
  stable/11/sys/netinet6/in6_pcb.c
  stable/11/sys/netinet6/raw_ip6.c
  stable/11/sys/netipsec/ipsec_mbuf.c
  stable/11/sys/rpc/clnt.h
  stable/11/sys/sparc64/include/pcpu.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/amd64/amd64/sys_machdep.c
==============================================================================
--- stable/11/sys/amd64/amd64/sys_machdep.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/amd64/amd64/sys_machdep.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -168,9 +168,7 @@ update_gdt_fsbase(struct thread *td, uint32_t base)
 }
 
 int
-sysarch(td, uap)
-	struct thread *td;
-	register struct sysarch_args *uap;
+sysarch(struct thread *td, struct sysarch_args *uap)
 {
 	int error = 0;
 	struct pcb *pcb = curthread->td_pcb;

Modified: stable/11/sys/amd64/amd64/vm_machdep.c
==============================================================================
--- stable/11/sys/amd64/amd64/vm_machdep.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/amd64/amd64/vm_machdep.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -150,13 +150,9 @@ alloc_fpusave(int flags)
  * ready to run and return to user mode.
  */
 void
-cpu_fork(td1, p2, td2, flags)
-	register struct thread *td1;
-	register struct proc *p2;
-	struct thread *td2;
-	int flags;
+cpu_fork(struct thread *td1, struct proc *p2, struct thread *td2, int flags)
 {
-	register struct proc *p1;
+	struct proc *p1;
 	struct pcb *pcb2;
 	struct mdproc *mdp1, *mdp2;
 	struct proc_ldt *pldt;

Modified: stable/11/sys/arm/arm/sys_machdep.c
==============================================================================
--- stable/11/sys/arm/arm/sys_machdep.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/arm/arm/sys_machdep.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -191,9 +191,7 @@ arm32_get_tp(struct thread *td, void *args)
 }
 
 int
-sysarch(td, uap)
-	struct thread *td;
-	register struct sysarch_args *uap;
+sysarch(struct thread *td, struct sysarch_args *uap)
 {
 	int error;
 

Modified: stable/11/sys/arm/arm/vm_machdep.c
==============================================================================
--- stable/11/sys/arm/arm/vm_machdep.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/arm/arm/vm_machdep.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -95,8 +95,7 @@ uint32_t initial_fpscr = VFPSCR_DN | VFPSCR_FZ;
  * ready to run and return to user mode.
  */
 void
-cpu_fork(register struct thread *td1, register struct proc *p2,
-    struct thread *td2, int flags)
+cpu_fork(struct thread *td1, struct proc *p2, struct thread *td2, int flags)
 {
 	struct pcb *pcb2;
 	struct trapframe *tf;

Modified: stable/11/sys/arm/include/atomic-v4.h
==============================================================================
--- stable/11/sys/arm/include/atomic-v4.h	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/arm/include/atomic-v4.h	Tue Mar 27 18:52:27 2018	(r331643)
@@ -299,7 +299,7 @@ atomic_clear_32(volatile uint32_t *address, uint32_t c
 static __inline u_int32_t
 atomic_cmpset_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval)
 {
-	register int done, ras_start = ARM_RAS_START;
+	int done, ras_start = ARM_RAS_START;
 
 	__asm __volatile("1:\n"
 	    "adr	%1, 1b\n"

Modified: stable/11/sys/crypto/des/des_enc.c
==============================================================================
--- stable/11/sys/crypto/des/des_enc.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/crypto/des/des_enc.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -69,14 +69,14 @@ extern	const DES_LONG des_SPtrans[8][64];
 
 void des_encrypt1(DES_LONG *data, des_key_schedule ks, int enc)
 {
-	register DES_LONG l,r,t,u;
+	DES_LONG l,r,t,u;
 #ifdef DES_PTR
-	register const unsigned char *des_SP=(const unsigned char *)des_SPtrans;
+	const unsigned char *des_SP=(const unsigned char *)des_SPtrans;
 #endif
 #ifndef DES_UNROLL
-	register int i;
+	int i;
 #endif
-	register DES_LONG *s;
+	DES_LONG *s;
 
 	r=data[0];
 	l=data[1];
@@ -167,14 +167,14 @@ void des_encrypt1(DES_LONG *data, des_key_schedule ks,
 
 void des_encrypt2(DES_LONG *data, des_key_schedule ks, int enc)
 {
-	register DES_LONG l,r,t,u;
+	DES_LONG l,r,t,u;
 #ifdef DES_PTR
-	register const unsigned char *des_SP=(const unsigned char *)des_SPtrans;
+	const unsigned char *des_SP=(const unsigned char *)des_SPtrans;
 #endif
 #ifndef DES_UNROLL
-	register int i;
+	int i;
 #endif
-	register DES_LONG *s;
+	DES_LONG *s;
 
 	r=data[0];
 	l=data[1];
@@ -259,7 +259,7 @@ void des_encrypt2(DES_LONG *data, des_key_schedule ks,
 void des_encrypt3(DES_LONG *data, des_key_schedule ks1, des_key_schedule ks2,
 	     des_key_schedule ks3)
 {
-	register DES_LONG l,r;
+	DES_LONG l,r;
 
 	l=data[0];
 	r=data[1];
@@ -279,7 +279,7 @@ void des_encrypt3(DES_LONG *data, des_key_schedule ks1
 void des_decrypt3(DES_LONG *data, des_key_schedule ks1, des_key_schedule ks2,
 	     des_key_schedule ks3)
 {
-	register DES_LONG l,r;
+	DES_LONG l,r;
 
 	l=data[0];
 	r=data[1];

Modified: stable/11/sys/crypto/des/des_setkey.c
==============================================================================
--- stable/11/sys/crypto/des/des_setkey.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/crypto/des/des_setkey.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -172,10 +172,10 @@ int des_set_key_checked(des_cblock *key, des_key_sched
 void des_set_key_unchecked(des_cblock *key, des_key_schedule schedule)
 {
 	static int shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0};
-	register DES_LONG c,d,t,s,t2;
-	register const unsigned char *in;
-	register DES_LONG *k;
-	register int i;
+	DES_LONG c,d,t,s,t2;
+	const unsigned char *in;
+	DES_LONG *k;
+	int i;
 
 	k = &schedule->ks.deslong[0];
 	in = &(*key)[0];

Modified: stable/11/sys/ddb/db_access.c
==============================================================================
--- stable/11/sys/ddb/db_access.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/ddb/db_access.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -57,8 +57,8 @@ db_expr_t
 db_get_value(db_addr_t addr, int size, bool is_signed)
 {
 	char		data[sizeof(u_int64_t)];
-	register db_expr_t value;
-	register int	i;
+	db_expr_t	value;
+	int		i;
 
 	if (db_read_bytes(addr, size, data) != 0) {
 		db_printf("*** error reading from address %llx ***\n",
@@ -87,7 +87,7 @@ void
 db_put_value(db_addr_t addr, int size, db_expr_t value)
 {
 	char		data[sizeof(int)];
-	register int	i;
+	int		i;
 
 #if	BYTE_MSF
 	for (i = size - 1; i >= 0; i--)

Modified: stable/11/sys/ddb/db_output.c
==============================================================================
--- stable/11/sys/ddb/db_output.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/ddb/db_output.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -92,7 +92,7 @@ static void	db_pager(void);
 void
 db_force_whitespace(void)
 {
-	register int last_print, next_tab;
+	int last_print, next_tab;
 
 	last_print = db_last_non_space;
 	while (last_print < db_output_position) {
@@ -355,7 +355,7 @@ db_iprintf(const char *fmt,...)
 	char bufr[DDB_BUFR_SIZE];
 #endif
 	struct dbputchar_arg dca;
-	register int i;
+	int i;
 	va_list listp;
 
 	for (i = db_indent; i >= 8; i -= 8)

Modified: stable/11/sys/ddb/db_sym.c
==============================================================================
--- stable/11/sys/ddb/db_sym.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/ddb/db_sym.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -286,10 +286,10 @@ static c_db_sym_t
 db_lookup(const char *symstr)
 {
 	c_db_sym_t sp;
-	register int i;
+	int i;
 	int symtab_start = 0;
 	int symtab_end = db_nsymtab;
-	register const char *cp;
+	const char *cp;
 
 	/*
 	 * Look for, remove, and remember any symbol table specifier.
@@ -343,8 +343,8 @@ static bool
 db_symbol_is_ambiguous(c_db_sym_t sym)
 {
 	const char	*sym_name;
-	register int	i;
-	register bool	found_once = false;
+	int		i;
+	bool		found_once = false;
 
 	if (!db_qualify_ambiguous_names)
 		return (false);
@@ -367,10 +367,9 @@ db_symbol_is_ambiguous(c_db_sym_t sym)
 c_db_sym_t
 db_search_symbol(db_addr_t val, db_strategy_t strategy, db_expr_t *offp)
 {
-	register
 	unsigned int	diff;
 	size_t		newdiff;
-	register int	i;
+	int		i;
 	c_db_sym_t	ret = C_DB_SYM_NULL, sym;
 
 	newdiff = diff = ~0;

Modified: stable/11/sys/dev/cs/if_cs.c
==============================================================================
--- stable/11/sys/dev/cs/if_cs.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/cs/if_cs.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -1040,7 +1040,7 @@ cs_setmode(struct cs_softc *sc)
 }
 
 static int
-cs_ioctl(register struct ifnet *ifp, u_long command, caddr_t data)
+cs_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
 {
 	struct cs_softc *sc=ifp->if_softc;
 	struct ifreq *ifr = (struct ifreq *)data;

Modified: stable/11/sys/dev/ixgb/if_ixgb.c
==============================================================================
--- stable/11/sys/dev/ixgb/if_ixgb.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/ixgb/if_ixgb.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -1778,7 +1778,7 @@ static int
 ixgb_get_buf(int i, struct adapter * adapter,
 	     struct mbuf * nmp)
 {
-	register struct mbuf *mp = nmp;
+	struct mbuf    *mp = nmp;
 	struct ixgb_buffer *rx_buffer;
 	struct ifnet   *ifp;
 	bus_addr_t      paddr;

Modified: stable/11/sys/dev/lge/if_lge.c
==============================================================================
--- stable/11/sys/dev/lge/if_lge.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/lge/if_lge.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -218,7 +218,7 @@ lge_eeprom_getword(sc, addr, dest)
 	int			addr;
 	u_int16_t		*dest;
 {
-	register int		i;
+	int			i;
 	u_int32_t		val;
 
 	CSR_WRITE_4(sc, LGE_EECTL, LGE_EECTL_CMD_READ|
@@ -415,7 +415,7 @@ static void
 lge_reset(sc)
 	struct lge_softc	*sc;
 {
-	register int		i;
+	int			i;
 
 	LGE_SETBIT(sc, LGE_MODE1, LGE_MODE1_SETRST_CTL0|LGE_MODE1_SOFTRST);
 
@@ -758,7 +758,7 @@ lge_alloc_jumbo_mem(sc)
 	struct lge_softc	*sc;
 {
 	caddr_t			ptr;
-	register int		i;
+	int			i;
 	struct lge_jpool_entry   *entry;
 
 	/* Grab a big chunk o' storage. */
@@ -1526,7 +1526,7 @@ static void
 lge_stop(sc)
 	struct lge_softc	*sc;
 {
-	register int		i;
+	int			i;
 	struct ifnet		*ifp;
 
 	LGE_LOCK_ASSERT(sc);

Modified: stable/11/sys/dev/mse/mse_isa.c
==============================================================================
--- stable/11/sys/dev/mse/mse_isa.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/mse/mse_isa.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -311,7 +311,7 @@ mse_disablelogi(struct resource *port)
 static void
 mse_getlogi(struct resource *port, int *dx, int *dy, int *but)
 {
-	register char x, y;
+	char x, y;
 
 	bus_write_1(port, MSE_PORTC, MSE_HOLD | MSE_RXLOW);
 	x = bus_read_1(port, MSE_PORTA);

Modified: stable/11/sys/dev/my/if_my.c
==============================================================================
--- stable/11/sys/dev/my/if_my.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/my/if_my.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -753,7 +753,7 @@ my_setcfg(struct my_softc * sc, int bmcr)
 static void
 my_reset(struct my_softc * sc)
 {
-	register int    i;
+	int    i;
 
 	MY_LOCK_ASSERT(sc);
 	MY_SETBIT(sc, MY_BCR, MY_SWR);
@@ -1719,7 +1719,7 @@ my_watchdog(void *arg)
 static void
 my_stop(struct my_softc * sc)
 {
-	register int    i;
+	int    i;
 	struct ifnet   *ifp;
 
 	MY_LOCK_ASSERT(sc);

Modified: stable/11/sys/dev/pcn/if_pcn.c
==============================================================================
--- stable/11/sys/dev/pcn/if_pcn.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/pcn/if_pcn.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -1455,7 +1455,7 @@ pcn_watchdog(struct pcn_softc *sc)
 static void
 pcn_stop(struct pcn_softc *sc)
 {
-	register int		i;
+	int			i;
 	struct ifnet		*ifp;
 
 	PCN_LOCK_ASSERT(sc);

Modified: stable/11/sys/dev/ppbus/immio.c
==============================================================================
--- stable/11/sys/dev/ppbus/immio.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/ppbus/immio.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -676,10 +676,10 @@ imm_do_scsi(struct vpoio_data *vpo, int host, int targ
 		int *ret)
 {
 	device_t ppbus = device_get_parent(vpo->vpo_dev);
-	register char r;
+	char r;
 	char l, h = 0;
 	int len, error = 0, not_connected = 0;
-	register int k;
+	int k;
 	int negociated = 0;
 
 	/*

Modified: stable/11/sys/dev/ppbus/vpoio.c
==============================================================================
--- stable/11/sys/dev/ppbus/vpoio.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/ppbus/vpoio.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -682,10 +682,10 @@ vpoio_do_scsi(struct vpoio_data *vpo, int host, int ta
 		int *ret)
 {
 	device_t ppbus = device_get_parent(vpo->vpo_dev);
-	register char r;
+	char r;
 	char l, h = 0;
 	int len, error = 0;
-	register int k;
+	int k;
 
 	/*
 	 * enter disk state, allocate the ppbus

Modified: stable/11/sys/dev/ppc/ppc.c
==============================================================================
--- stable/11/sys/dev/ppc/ppc.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/ppc/ppc.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -292,7 +292,7 @@ ppc_detect_port(struct ppc_data *ppc)
 static void
 ppc_reset_epp_timeout(struct ppc_data *ppc)
 {
-	register char r;
+	char r;
 
 	r = r_str(ppc);
 	w_str(ppc, r | 0x1);
@@ -1328,10 +1328,10 @@ ppc_exec_microseq(device_t dev, struct ppb_microseq **
 	int i, iter, len;
 	int error;
 
-	register int reg;
-	register char mask;
-	register int accum = 0;
-	register char *ptr = NULL;
+	int reg;
+	char mask;
+	int accum = 0;
+	char *ptr = NULL;
 
 	struct ppb_microseq *stack = NULL;
 

Modified: stable/11/sys/dev/qlxgb/qla_os.c
==============================================================================
--- stable/11/sys/dev/qlxgb/qla_os.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/qlxgb/qla_os.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -1403,7 +1403,7 @@ int
 qla_get_mbuf(qla_host_t *ha, qla_rx_buf_t *rxb, struct mbuf *nmp,
 	uint32_t jumbo)
 {
-	register struct mbuf *mp = nmp;
+	struct mbuf *mp = nmp;
 	struct ifnet   *ifp;
 	int             ret = 0;
 	uint32_t	offset;

Modified: stable/11/sys/dev/qlxgbe/ql_os.c
==============================================================================
--- stable/11/sys/dev/qlxgbe/ql_os.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/qlxgbe/ql_os.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -1968,7 +1968,7 @@ qla_free_rcv_bufs(qla_host_t *ha)
 int
 ql_get_mbuf(qla_host_t *ha, qla_rx_buf_t *rxb, struct mbuf *nmp)
 {
-	register struct mbuf *mp = nmp;
+	struct mbuf *mp = nmp;
 	struct ifnet   		*ifp;
 	int            		ret = 0;
 	uint32_t		offset;

Modified: stable/11/sys/dev/qlxge/qls_os.c
==============================================================================
--- stable/11/sys/dev/qlxge/qls_os.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/qlxge/qls_os.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -1398,7 +1398,7 @@ qls_alloc_rcv_bufs(qla_host_t *ha)
 int
 qls_get_mbuf(qla_host_t *ha, qla_rx_buf_t *rxb, struct mbuf *nmp)
 {
-	register struct mbuf *mp = nmp;
+	struct mbuf *mp = nmp;
 	struct ifnet   		*ifp;
 	int            		ret = 0;
 	uint32_t		offset;

Modified: stable/11/sys/dev/rl/if_rl.c
==============================================================================
--- stable/11/sys/dev/rl/if_rl.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/rl/if_rl.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -276,7 +276,7 @@ DRIVER_MODULE(miibus, rl, miibus_driver, miibus_devcla
 static void
 rl_eeprom_putbyte(struct rl_softc *sc, int addr)
 {
-	register int		d, i;
+	int			d, i;
 
 	d = addr | sc->rl_eecmd_read;
 
@@ -303,7 +303,7 @@ rl_eeprom_putbyte(struct rl_softc *sc, int addr)
 static void
 rl_eeprom_getword(struct rl_softc *sc, int addr, uint16_t *dest)
 {
-	register int		i;
+	int			i;
 	uint16_t		word = 0;
 
 	/* Enter EEPROM access mode. */
@@ -561,7 +561,7 @@ rl_rxfilter(struct rl_softc *sc)
 static void
 rl_reset(struct rl_softc *sc)
 {
-	register int		i;
+	int			i;
 
 	RL_LOCK_ASSERT(sc);
 
@@ -1912,7 +1912,7 @@ rl_watchdog(struct rl_softc *sc)
 static void
 rl_stop(struct rl_softc *sc)
 {
-	register int		i;
+	int			i;
 	struct ifnet		*ifp = sc->rl_ifp;
 
 	RL_LOCK_ASSERT(sc);

Modified: stable/11/sys/dev/sound/pci/fm801.c
==============================================================================
--- stable/11/sys/dev/sound/pci/fm801.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/sound/pci/fm801.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -396,7 +396,7 @@ fm801ch_setspeed(kobj_t obj, void *data, u_int32_t spe
 {
 	struct fm801_chinfo *ch = data;
 	struct fm801_info *fm801 = ch->parent;
-	register int i;
+	int i;
 
 
 	for (i = 0; i < 10 && fm801_rates[i].limit <= speed; i++) ;

Modified: stable/11/sys/dev/speaker/spkr.c
==============================================================================
--- stable/11/sys/dev/speaker/spkr.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/speaker/spkr.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -201,7 +201,7 @@ playinit()
 static void
 playtone(int pitch, int value, int sustain)
 {
-	register int sound, silence, snum = 1, sdenom = 1;
+	int sound, silence, snum = 1, sdenom = 1;
 
 	/* this weirdness avoids floating-point arithmetic */
 	for (; sustain; sustain--) {
@@ -243,7 +243,7 @@ playstring(char *cp, size_t slen)
 				{v = v * 10 + (*++cp - '0'); slen--;}
 	for (; slen--; cp++) {
 		int sustain, timeval, tempo;
-		register char c = toupper(*cp);
+		char c = toupper(*cp);
 
 #ifdef DEBUG
 		(void) printf("playstring: %c (%x)\n", c, c);

Modified: stable/11/sys/dev/tl/if_tl.c
==============================================================================
--- stable/11/sys/dev/tl/if_tl.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/tl/if_tl.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -536,7 +536,7 @@ static u_int8_t tl_eeprom_putbyte(sc, byte)
 	struct tl_softc		*sc;
 	int			byte;
 {
-	register int		i, ack = 0;
+	int			i, ack = 0;
 
 	/*
 	 * Make sure we're in TX mode.
@@ -581,7 +581,7 @@ static u_int8_t tl_eeprom_getbyte(sc, addr, dest)
 	int			addr;
 	u_int8_t		*dest;
 {
-	register int		i;
+	int			i;
 	u_int8_t		byte = 0;
 	device_t		tl_dev = sc->tl_dev;
 
@@ -2201,7 +2201,7 @@ static void
 tl_stop(sc)
 	struct tl_softc		*sc;
 {
-	register int		i;
+	int			i;
 	struct ifnet		*ifp;
 
 	TL_LOCK_ASSERT(sc);

Modified: stable/11/sys/dev/usb/usb_busdma.c
==============================================================================
--- stable/11/sys/dev/usb/usb_busdma.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/usb/usb_busdma.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -234,7 +234,7 @@ struct usb_m_copy_in_arg {
 static int
 usbd_m_copy_in_cb(void *arg, void *src, uint32_t count)
 {
-	register struct usb_m_copy_in_arg *ua = arg;
+	struct usb_m_copy_in_arg *ua = arg;
 
 	usbd_copy_in(ua->cache, ua->dst_offset, src, count);
 	ua->dst_offset += count;

Modified: stable/11/sys/dev/wb/if_wb.c
==============================================================================
--- stable/11/sys/dev/wb/if_wb.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/wb/if_wb.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -258,7 +258,7 @@ wb_eeprom_putbyte(sc, addr)
 	struct wb_softc		*sc;
 	int			addr;
 {
-	register int		d, i;
+	int			d, i;
 
 	d = addr | WB_EECMD_READ;
 
@@ -288,7 +288,7 @@ wb_eeprom_getword(sc, addr, dest)
 	int			addr;
 	u_int16_t		*dest;
 {
-	register int		i;
+	int			i;
 	u_int16_t		word = 0;
 
 	/* Enter EEPROM access mode. */
@@ -509,7 +509,7 @@ static void
 wb_reset(sc)
 	struct wb_softc		*sc;
 {
-	register int		i;
+	int			i;
 	struct mii_data		*mii;
 	struct mii_softc	*miisc;
 
@@ -1576,7 +1576,7 @@ static void
 wb_stop(sc)
 	struct wb_softc		*sc;
 {
-	register int		i;
+	int			i;
 	struct ifnet		*ifp;
 
 	WB_LOCK_ASSERT(sc);

Modified: stable/11/sys/dev/xl/if_xl.c
==============================================================================
--- stable/11/sys/dev/xl/if_xl.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/dev/xl/if_xl.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -355,7 +355,7 @@ xl_dma_map_addr(void *arg, bus_dma_segment_t *segs, in
 static void
 xl_wait(struct xl_softc *sc)
 {
-	register int		i;
+	int			i;
 
 	for (i = 0; i < XL_TIMEOUT; i++) {
 		if ((CSR_READ_2(sc, XL_STATUS) & XL_STAT_CMDBUSY) == 0)
@@ -838,7 +838,7 @@ xl_setmode(struct xl_softc *sc, int media)
 static void
 xl_reset(struct xl_softc *sc)
 {
-	register int		i;
+	int			i;
 
 	XL_LOCK_ASSERT(sc);
 
@@ -3155,7 +3155,7 @@ xl_watchdog(struct xl_softc *sc)
 static void
 xl_stop(struct xl_softc *sc)
 {
-	register int		i;
+	int			i;
 	struct ifnet		*ifp = sc->xl_ifp;
 
 	XL_LOCK_ASSERT(sc);

Modified: stable/11/sys/fs/fifofs/fifo_vnops.c
==============================================================================
--- stable/11/sys/fs/fifofs/fifo_vnops.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/fs/fifofs/fifo_vnops.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -314,7 +314,7 @@ int
 fifo_printinfo(vp)
 	struct vnode *vp;
 {
-	register struct fifoinfo *fip = vp->v_fifoinfo;
+	struct fifoinfo *fip = vp->v_fifoinfo;
 
 	if (fip == NULL){
 		printf(", NULL v_fifoinfo");

Modified: stable/11/sys/fs/nandfs/nandfs_vnops.c
==============================================================================
--- stable/11/sys/fs/nandfs/nandfs_vnops.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/fs/nandfs/nandfs_vnops.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -129,8 +129,8 @@ nandfs_reclaim(struct vop_reclaim_args *ap)
 static int
 nandfs_read(struct vop_read_args *ap)
 {
-	register struct vnode *vp = ap->a_vp;
-	register struct nandfs_node *node = VTON(vp);
+	struct vnode *vp = ap->a_vp;
+	struct nandfs_node *node = VTON(vp);
 	struct nandfs_device *nandfsdev = node->nn_nandfsdev;
 	struct uio *uio = ap->a_uio;
 	struct buf *bp;

Modified: stable/11/sys/i386/i386/in_cksum.c
==============================================================================
--- stable/11/sys/i386/i386/in_cksum.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/i386/i386/in_cksum.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -265,9 +265,9 @@ in_cksum_skip(m, len, skip)
 	int len;
 	int skip;
 {
-	register u_short *w;
-	register unsigned sum = 0;
-	register int mlen = 0;
+	u_short *w;
+	unsigned sum = 0;
+	int mlen = 0;
 	int byte_swapped = 0;
 	union { char	c[2]; u_short	s; } su;
 

Modified: stable/11/sys/i386/i386/k6_mem.c
==============================================================================
--- stable/11/sys/i386/i386/k6_mem.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/i386/i386/k6_mem.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -80,7 +80,7 @@ static __inline int
 k6_mrmake(struct mem_range_desc *desc, u_int32_t *mtrr)
 {
 	u_int32_t len = 0, wc, uc;
-	register int bit;
+	int bit;
 
 	if (desc->mr_base &~ 0xfffe0000)
 		return (EINVAL);

Modified: stable/11/sys/i386/i386/sys_machdep.c
==============================================================================
--- stable/11/sys/i386/i386/sys_machdep.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/i386/i386/sys_machdep.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -132,9 +132,7 @@ struct sysarch_args {
 #endif
 
 int
-sysarch(td, uap)
-	struct thread *td;
-	register struct sysarch_args *uap;
+sysarch(struct thread *td, struct sysarch_args *uap)
 {
 	int error;
 	union descriptor *lp;

Modified: stable/11/sys/i386/i386/vm_machdep.c
==============================================================================
--- stable/11/sys/i386/i386/vm_machdep.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/i386/i386/vm_machdep.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -172,7 +172,7 @@ alloc_fpusave(int flags)
 void
 cpu_fork(struct thread *td1, struct proc *p2, struct thread *td2, int flags)
 {
-	register struct proc *p1;
+	struct proc *p1;
 	struct pcb *pcb2;
 	struct mdproc *mdp2;
 

Modified: stable/11/sys/i386/ibcs2/ibcs2_misc.c
==============================================================================
--- stable/11/sys/i386/ibcs2/ibcs2_misc.c	Tue Mar 27 18:44:05 2018	(r331642)
+++ stable/11/sys/i386/ibcs2/ibcs2_misc.c	Tue Mar 27 18:52:27 2018	(r331643)
@@ -95,9 +95,7 @@ __FBSDID("$FreeBSD$");
 #include 
 
 int
-ibcs2_ulimit(td, uap)
-	struct thread *td;
-	struct ibcs2_ulimit_args *uap;
+ibcs2_ulimit(struct thread *td, struct ibcs2_ulimit_args *uap)
 {
 	struct rlimit rl;
 	int error;
@@ -136,9 +134,7 @@ ibcs2_ulimit(td, uap)
 #define IBCS2_WSTOPPED       0177
 #define IBCS2_STOPCODE(sig)  ((sig) << 8 | IBCS2_WSTOPPED)
 int
-ibcs2_wait(td, uap)
-	struct thread *td;
-	struct ibcs2_wait_args *uap;
+ibcs2_wait(struct thread *td, struct ibcs2_wait_args *uap)
 {
 	int error, options, status;
 	int *statusp;
@@ -187,9 +183,7 @@ ibcs2_wait(td, uap)
 }
 
 int
-ibcs2_execv(td, uap)
-	struct thread *td;
-	struct ibcs2_execv_args *uap;
+ibcs2_execv(struct thread *td, struct ibcs2_execv_args *uap)
 {
 	struct image_args eargs;
 	struct vmspace *oldvmspace;
@@ -212,9 +206,7 @@ ibcs2_execv(td, uap)
 }
 
 int
-ibcs2_execve(td, uap) 
-        struct thread *td;
-        struct ibcs2_execve_args *uap;
+ibcs2_execve(struct thread *td, struct ibcs2_execve_args *uap)
 {
 	struct image_args eargs;
 	struct vmspace *oldvmspace;
@@ -238,9 +230,7 @@ ibcs2_execve(td, uap) 
 }
 
 int
-ibcs2_umount(td, uap)
-	struct thread *td;
-	struct ibcs2_umount_args *uap;
+ibcs2_umount(struct thread *td, struct ibcs2_umount_args *uap)
 {
 	struct unmount_args um;
 
@@ -250,9 +240,7 @@ ibcs2_umount(td, uap)
 }
 
 int
-ibcs2_mount(td, uap)
-	struct thread *td;
-	struct ibcs2_mount_args *uap;
+ibcs2_mount(struct thread *td, struct ibcs2_mount_args *uap)
 {
 #ifdef notyet
 	int oflags = uap->flags, nflags, error;
@@ -323,15 +311,13 @@ ibcs2_mount(td, uap)
  */
 
 int
-ibcs2_getdents(td, uap)
-	struct thread *td;
-	register struct ibcs2_getdents_args *uap;
+ibcs2_getdents(struct thread *td, struct ibcs2_getdents_args *uap)
 {
-	register struct vnode *vp;
-	register caddr_t inp, buf;	/* BSD-format */
-	register int len, reclen;	/* BSD-format */
-	register caddr_t outp;		/* iBCS2-format */
-	register int resid;		/* iBCS2-format */
+	struct vnode *vp;
+	caddr_t inp, buf;		/* BSD-format */
+	int len, reclen;		/* BSD-format */
+	caddr_t outp;			/* iBCS2-format */
+	int resid;			/* iBCS2-format */
 	cap_rights_t rights;
 	struct file *fp;
 	struct uio auio;
@@ -477,15 +463,13 @@ out:
 }
 
 int
-ibcs2_read(td, uap)
-	struct thread *td;
-	struct ibcs2_read_args *uap;
+ibcs2_read(struct thread *td, struct ibcs2_read_args *uap)
 {
-	register struct vnode *vp;
-	register caddr_t inp, buf;	/* BSD-format */
-	register int len, reclen;	/* BSD-format */
-	register caddr_t outp;		/* iBCS2-format */
-	register int resid;		/* iBCS2-format */
+	struct vnode *vp;
+	caddr_t inp, buf;		/* BSD-format */
+	int len, reclen;		/* BSD-format */
+	caddr_t outp;			/* iBCS2-format */
+	int resid;			/* iBCS2-format */
 	cap_rights_t rights;
 	struct file *fp;
 	struct uio auio;
@@ -642,9 +626,7 @@ out:
 }
 
 int
-ibcs2_mknod(td, uap)
-	struct thread *td;
-	struct ibcs2_mknod_args *uap;
+ibcs2_mknod(struct thread *td, struct ibcs2_mknod_args *uap)
 {
 	char *path;
 	int error;
@@ -662,9 +644,7 @@ ibcs2_mknod(td, uap)
 }
 
 int
-ibcs2_getgroups(td, uap)
-	struct thread *td;
-	struct ibcs2_getgroups_args *uap;
+ibcs2_getgroups(struct thread *td, struct ibcs2_getgroups_args *uap)
 {
 	struct ucred *cred;
 	ibcs2_gid_t *iset;
@@ -692,9 +672,7 @@ out:
 }
 
 int
-ibcs2_setgroups(td, uap)
-	struct thread *td;
-	struct ibcs2_setgroups_args *uap;
+ibcs2_setgroups(struct thread *td, struct ibcs2_setgroups_args *uap)
 {
 	ibcs2_gid_t *iset;
 	gid_t *gp;
@@ -724,9 +702,7 @@ out:
 }
 
 int
-ibcs2_setuid(td, uap)
-	struct thread *td;
-	struct ibcs2_setuid_args *uap;
+ibcs2_setuid(struct thread *td, struct ibcs2_setuid_args *uap)
 {
 	struct setuid_args sa;
 
@@ -735,9 +711,7 @@ ibcs2_setuid(td, uap)
 }
 
 int
-ibcs2_setgid(td, uap)
-	struct thread *td;
-	struct ibcs2_setgid_args *uap;
+ibcs2_setgid(struct thread *td, struct ibcs2_setgid_args *uap)
 {
 	struct setgid_args sa;
 
@@ -746,9 +720,7 @@ ibcs2_setgid(td, uap)
 }
 
 int
-ibcs2_time(td, uap)
-	struct thread *td;
-	struct ibcs2_time_args *uap;
+ibcs2_time(struct thread *td, struct ibcs2_time_args *uap)
 {
 	struct timeval tv;
 
@@ -762,9 +734,7 @@ ibcs2_time(td, uap)
 }
 
 int
-ibcs2_pathconf(td, uap)
-	struct thread *td;
-	struct ibcs2_pathconf_args *uap;
+ibcs2_pathconf(struct thread *td, struct ibcs2_pathconf_args *uap)
 {
 	char *path;
 	int error;
@@ -777,18 +747,14 @@ ibcs2_pathconf(td, uap)
 }
 
 int
-ibcs2_fpathconf(td, uap)
-	struct thread *td;
-	struct ibcs2_fpathconf_args *uap;
+ibcs2_fpathconf(struct thread *td, struct ibcs2_fpathconf_args *uap)
 {
 	uap->name++;	/* iBCS2 _PC_* defines are offset by one */
         return sys_fpathconf(td, (struct fpathconf_args *)uap);
 }
 
 int
-ibcs2_sysconf(td, uap)
-	struct thread *td;
-	struct ibcs2_sysconf_args *uap;
+ibcs2_sysconf(struct thread *td, struct ibcs2_sysconf_args *uap)
 {
 	int mib[2], value, len, error;
 
@@ -847,9 +813,7 @@ ibcs2_sysconf(td, uap)
 }
 
 int
-ibcs2_alarm(td, uap)
-	struct thread *td;
-	struct ibcs2_alarm_args *uap;
+ibcs2_alarm(struct thread *td, struct ibcs2_alarm_args *uap)
 {
 	struct itimerval itv, oitv;
 	int error;
@@ -867,9 +831,7 @@ ibcs2_alarm(td, uap)
 }
 
 int
-ibcs2_times(td, uap)
-	struct thread *td;
-	struct ibcs2_times_args *uap;
+ibcs2_times(struct thread *td, struct ibcs2_times_args *uap)
 {
 	struct rusage ru;
 	struct timeval t;
@@ -897,9 +859,7 @@ ibcs2_times(td, uap)
 }
 
 int
-ibcs2_stime(td, uap)
-	struct thread *td;
-	struct ibcs2_stime_args *uap;
+ibcs2_stime(struct thread *td, struct ibcs2_stime_args *uap)
 {
 	struct timeval tv;
 	long secs;
@@ -917,9 +877,7 @@ ibcs2_stime(td, uap)
 }
 
 int
-ibcs2_utime(td, uap)
-	struct thread *td;
-	struct ibcs2_utime_args *uap;
+ibcs2_utime(struct thread *td, struct ibcs2_utime_args *uap)
 {
 	struct ibcs2_utimbuf ubuf;
 	struct timeval tbuf[2], *tp;
@@ -946,9 +904,7 @@ ibcs2_utime(td, uap)
 }
 
 int
-ibcs2_nice(td, uap)
-	struct thread *td;
-	struct ibcs2_nice_args *uap;
+ibcs2_nice(struct thread *td, struct ibcs2_nice_args *uap)
 {
 	int error;
 	struct setpriority_args sa;
@@ -967,9 +923,7 @@ ibcs2_nice(td, uap)
  */
 
 int
-ibcs2_pgrpsys(td, uap)
-	struct thread *td;
-	struct ibcs2_pgrpsys_args *uap;
+ibcs2_pgrpsys(struct thread *td, struct ibcs2_pgrpsys_args *uap)
 {
 	struct proc *p = td->td_proc;
 	switch (uap->type) {
@@ -1014,9 +968,7 @@ ibcs2_pgrpsys(td, uap)
  */
 
 int
-ibcs2_plock(td, uap)
-	struct thread *td;
-	struct ibcs2_plock_args *uap;
+ibcs2_plock(struct thread *td, struct ibcs2_plock_args *uap)
 {
 	int error;
 #define IBCS2_UNLOCK	0
@@ -1046,9 +998,7 @@ ibcs2_plock(td, uap)
 }
 
 int
-ibcs2_uadmin(td, uap)
-	struct thread *td;
-	struct ibcs2_uadmin_args *uap;
+ibcs2_uadmin(struct thread *td, struct ibcs2_uadmin_args *uap)
 {
 #define SCO_A_REBOOT        1
 #define SCO_A_SHUTDOWN      2
@@ -1095,9 +1045,7 @@ ibcs2_uadmin(td, uap)
 }
 
 int
-ibcs2_sysfs(td, uap)
-	struct thread *td;
-	struct ibcs2_sysfs_args *uap;
+ibcs2_sysfs(struct thread *td, struct ibcs2_sysfs_args *uap)
 {
 #define IBCS2_GETFSIND        1
 #define IBCS2_GETFSTYP        2
@@ -1113,9 +1061,7 @@ ibcs2_sysfs(td, uap)
 }
 
 int
-ibcs2_unlink(td, uap)
-	struct thread *td;
-	struct ibcs2_unlink_args *uap;
+ibcs2_unlink(struct thread *td, struct ibcs2_unlink_args *uap)
 {
 	char *path;
 	int error;
@@ -1127,9 +1073,7 @@ ibcs2_unlink(td, uap)
 }
 
 int
-ibcs2_chdir(td, uap)
-	struct thread *td;
-	struct ibcs2_chdir_args *uap;
+ibcs2_chdir(struct thread *td, struct ibcs2_chdir_args *uap)
 {
 	char *path;
 	int error;
@@ -1141,9 +1085,7 @@ ibcs2_chdir(td, uap)
 }
 
 int
-ibcs2_chmod(td, uap)
-	struct thread *td;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Tue Mar 27 18:55:40 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 148F1F4E947;
 Tue, 27 Mar 2018 18:55:40 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id A582579DD9;
 Tue, 27 Mar 2018 18:55:39 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 869A12013D;
 Tue, 27 Mar 2018 18:55:39 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RItdDd007341;
 Tue, 27 Mar 2018 18:55:39 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RItdvn007340;
 Tue, 27 Mar 2018 18:55:39 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803271855.w2RItdvn007340@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 18:55:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331644 - head/sys/net
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: head/sys/net
X-SVN-Commit-Revision: 331644
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 18:55:40 -0000

Author: brooks
Date: Tue Mar 27 18:55:39 2018
New Revision: 331644
URL: https://svnweb.freebsd.org/changeset/base/331644

Log:
  Fix a whitespace bug missed in refactoring prior to r331641.
  
  MFC with:	r331641

Modified:
  head/sys/net/if.c

Modified: head/sys/net/if.c
==============================================================================
--- head/sys/net/if.c	Tue Mar 27 18:52:27 2018	(r331643)
+++ head/sys/net/if.c	Tue Mar 27 18:55:39 2018	(r331644)
@@ -138,9 +138,9 @@ CTASSERT(__offsetof(struct ifreq, ifr_ifru) ==
 #endif
 
 union ifreq_union {
-		struct ifreq	ifr;
+	struct ifreq	ifr;
 #ifdef COMPAT_FREEBSD32
-		struct ifreq32	ifr32;
+	struct ifreq32	ifr32;
 #endif
 };
 

From owner-svn-src-all@freebsd.org  Tue Mar 27 20:14:23 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E78C3F55CA4;
 Tue, 27 Mar 2018 20:14:22 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 9B1267DDC5;
 Tue, 27 Mar 2018 20:14:22 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 95D7F20E2A;
 Tue, 27 Mar 2018 20:14:22 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RKEMJv048216;
 Tue, 27 Mar 2018 20:14:22 GMT (envelope-from jhb@FreeBSD.org)
Received: (from jhb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RKEMA4048212;
 Tue, 27 Mar 2018 20:14:22 GMT (envelope-from jhb@FreeBSD.org)
Message-Id: <201803272014.w2RKEMA4048212@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org
 using -f
From: John Baldwin 
Date: Tue, 27 Mar 2018 20:14:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331645 - stable/11/sys/dev/cxgbe/tom
X-SVN-Group: stable-11
X-SVN-Commit-Author: jhb
X-SVN-Commit-Paths: stable/11/sys/dev/cxgbe/tom
X-SVN-Commit-Revision: 331645
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 20:14:23 -0000

Author: jhb
Date: Tue Mar 27 20:14:22 2018
New Revision: 331645
URL: https://svnweb.freebsd.org/changeset/base/331645

Log:
  MFC 329785: Move DDP PCB state into a helper structure.
  
  This consolidates all of the DDP state in one place.  Also, the code has
  now been fixed to ensure that DDP state is only accessed for DDP
  connections.  This should not be a functional change but makes it cleaner
  and easier to add state for other TOE socket modes in the future.
  
  Sponsored by:	Chelsio Communications

Modified:
  stable/11/sys/dev/cxgbe/tom/t4_cpl_io.c
  stable/11/sys/dev/cxgbe/tom/t4_ddp.c
  stable/11/sys/dev/cxgbe/tom/t4_tom.c
  stable/11/sys/dev/cxgbe/tom/t4_tom.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/cxgbe/tom/t4_cpl_io.c
==============================================================================
--- stable/11/sys/dev/cxgbe/tom/t4_cpl_io.c	Tue Mar 27 18:55:39 2018	(r331644)
+++ stable/11/sys/dev/cxgbe/tom/t4_cpl_io.c	Tue Mar 27 20:14:22 2018	(r331645)
@@ -1162,7 +1162,7 @@ do_peer_close(struct sge_iq *iq, const struct rss_head
 	so = inp->inp_socket;
 	if (toep->ulp_mode == ULP_MODE_TCPDDP) {
 		DDP_LOCK(toep);
-		if (__predict_false(toep->ddp_flags &
+		if (__predict_false(toep->ddp.flags &
 		    (DDP_BUF0_ACTIVE | DDP_BUF1_ACTIVE)))
 			handle_ddp_close(toep, tp, cpl->rcv_nxt);
 		DDP_UNLOCK(toep);
@@ -1538,23 +1538,23 @@ do_rx_data(struct sge_iq *iq, const struct rss_header 
 			toep->rx_credits += newsize - hiwat;
 	}
 
-	if (toep->ddp_waiting_count != 0 || toep->ddp_active_count != 0)
-		CTR3(KTR_CXGBE, "%s: tid %u, non-ddp rx (%d bytes)", __func__,
-		    tid, len);
-
 	if (toep->ulp_mode == ULP_MODE_TCPDDP) {
-		int changed = !(toep->ddp_flags & DDP_ON) ^ cpl->ddp_off;
+		int changed = !(toep->ddp.flags & DDP_ON) ^ cpl->ddp_off;
 
+		if (toep->ddp.waiting_count != 0 || toep->ddp.active_count != 0)
+			CTR3(KTR_CXGBE, "%s: tid %u, non-ddp rx (%d bytes)",
+			    __func__, tid, len);
+
 		if (changed) {
-			if (toep->ddp_flags & DDP_SC_REQ)
-				toep->ddp_flags ^= DDP_ON | DDP_SC_REQ;
+			if (toep->ddp.flags & DDP_SC_REQ)
+				toep->ddp.flags ^= DDP_ON | DDP_SC_REQ;
 			else {
 				KASSERT(cpl->ddp_off == 1,
 				    ("%s: DDP switched on by itself.",
 				    __func__));
 
 				/* Fell out of DDP mode */
-				toep->ddp_flags &= ~DDP_ON;
+				toep->ddp.flags &= ~DDP_ON;
 				CTR1(KTR_CXGBE, "%s: fell out of DDP mode",
 				    __func__);
 
@@ -1562,7 +1562,7 @@ do_rx_data(struct sge_iq *iq, const struct rss_header 
 			}
 		}
 
-		if (toep->ddp_flags & DDP_ON) {
+		if (toep->ddp.flags & DDP_ON) {
 			/*
 			 * CPL_RX_DATA with DDP on can only be an indicate.
 			 * Start posting queued AIO requests via DDP.  The
@@ -1588,7 +1588,8 @@ do_rx_data(struct sge_iq *iq, const struct rss_header 
 		tp->rcv_adv += credits;
 	}
 
-	if (toep->ddp_waiting_count > 0 && sbavail(sb) != 0) {
+	if (toep->ulp_mode == ULP_MODE_TCPDDP && toep->ddp.waiting_count > 0 &&
+	    sbavail(sb) != 0) {
 		CTR2(KTR_CXGBE, "%s: tid %u queueing AIO task", __func__,
 		    tid);
 		ddp_queue_toep(toep);

Modified: stable/11/sys/dev/cxgbe/tom/t4_ddp.c
==============================================================================
--- stable/11/sys/dev/cxgbe/tom/t4_ddp.c	Tue Mar 27 18:55:39 2018	(r331644)
+++ stable/11/sys/dev/cxgbe/tom/t4_ddp.c	Tue Mar 27 20:14:22 2018	(r331645)
@@ -157,11 +157,11 @@ recycle_pageset(struct toepcb *toep, struct pageset *p
 {
 
 	DDP_ASSERT_LOCKED(toep);
-	if (!(toep->ddp_flags & DDP_DEAD) && ps->flags & PS_WIRED) {
-		KASSERT(toep->ddp_cached_count + toep->ddp_active_count <
-		    nitems(toep->db), ("too many wired pagesets"));
-		TAILQ_INSERT_HEAD(&toep->ddp_cached_pagesets, ps, link);
-		toep->ddp_cached_count++;
+	if (!(toep->ddp.flags & DDP_DEAD) && ps->flags & PS_WIRED) {
+		KASSERT(toep->ddp.cached_count + toep->ddp.active_count <
+		    nitems(toep->ddp.db), ("too many wired pagesets"));
+		TAILQ_INSERT_HEAD(&toep->ddp.cached_pagesets, ps, link);
+		toep->ddp.cached_count++;
 	} else
 		free_pageset(toep->td, ps);
 }
@@ -206,17 +206,18 @@ void
 ddp_init_toep(struct toepcb *toep)
 {
 
-	TAILQ_INIT(&toep->ddp_aiojobq);
-	TASK_INIT(&toep->ddp_requeue_task, 0, aio_ddp_requeue_task, toep);
-	toep->ddp_active_id = -1;
-	mtx_init(&toep->ddp_lock, "t4 ddp", NULL, MTX_DEF);
+	TAILQ_INIT(&toep->ddp.aiojobq);
+	TASK_INIT(&toep->ddp.requeue_task, 0, aio_ddp_requeue_task, toep);
+	toep->ddp.flags = DDP_OK;
+	toep->ddp.active_id = -1;
+	mtx_init(&toep->ddp.lock, "t4 ddp", NULL, MTX_DEF);
 }
 
 void
 ddp_uninit_toep(struct toepcb *toep)
 {
 
-	mtx_destroy(&toep->ddp_lock);
+	mtx_destroy(&toep->ddp.lock);
 }
 
 void
@@ -227,11 +228,11 @@ release_ddp_resources(struct toepcb *toep)
 
 	DDP_LOCK(toep);
 	toep->flags |= DDP_DEAD;
-	for (i = 0; i < nitems(toep->db); i++) {
-		free_ddp_buffer(toep->td, &toep->db[i]);
+	for (i = 0; i < nitems(toep->ddp.db); i++) {
+		free_ddp_buffer(toep->td, &toep->ddp.db[i]);
 	}
-	while ((ps = TAILQ_FIRST(&toep->ddp_cached_pagesets)) != NULL) {
-		TAILQ_REMOVE(&toep->ddp_cached_pagesets, ps, link);
+	while ((ps = TAILQ_FIRST(&toep->ddp.cached_pagesets)) != NULL) {
+		TAILQ_REMOVE(&toep->ddp.cached_pagesets, ps, link);
 		free_pageset(toep->td, ps);
 	}
 	ddp_complete_all(toep, 0);
@@ -244,13 +245,13 @@ ddp_assert_empty(struct toepcb *toep)
 {
 	int i;
 
-	MPASS(!(toep->ddp_flags & DDP_TASK_ACTIVE));
-	for (i = 0; i < nitems(toep->db); i++) {
-		MPASS(toep->db[i].job == NULL);
-		MPASS(toep->db[i].ps == NULL);
+	MPASS(!(toep->ddp.flags & DDP_TASK_ACTIVE));
+	for (i = 0; i < nitems(toep->ddp.db); i++) {
+		MPASS(toep->ddp.db[i].job == NULL);
+		MPASS(toep->ddp.db[i].ps == NULL);
 	}
-	MPASS(TAILQ_EMPTY(&toep->ddp_cached_pagesets));
-	MPASS(TAILQ_EMPTY(&toep->ddp_aiojobq));
+	MPASS(TAILQ_EMPTY(&toep->ddp.cached_pagesets));
+	MPASS(TAILQ_EMPTY(&toep->ddp.aiojobq));
 }
 #endif
 
@@ -260,21 +261,21 @@ complete_ddp_buffer(struct toepcb *toep, struct ddp_bu
 {
 	unsigned int db_flag;
 
-	toep->ddp_active_count--;
-	if (toep->ddp_active_id == db_idx) {
-		if (toep->ddp_active_count == 0) {
-			KASSERT(toep->db[db_idx ^ 1].job == NULL,
+	toep->ddp.active_count--;
+	if (toep->ddp.active_id == db_idx) {
+		if (toep->ddp.active_count == 0) {
+			KASSERT(toep->ddp.db[db_idx ^ 1].job == NULL,
 			    ("%s: active_count mismatch", __func__));
-			toep->ddp_active_id = -1;
+			toep->ddp.active_id = -1;
 		} else
-			toep->ddp_active_id ^= 1;
+			toep->ddp.active_id ^= 1;
 #ifdef VERBOSE_TRACES
 		CTR2(KTR_CXGBE, "%s: ddp_active_id = %d", __func__,
-		    toep->ddp_active_id);
+		    toep->ddp.active_id);
 #endif
 	} else {
-		KASSERT(toep->ddp_active_count != 0 &&
-		    toep->ddp_active_id != -1,
+		KASSERT(toep->ddp.active_count != 0 &&
+		    toep->ddp.active_id != -1,
 		    ("%s: active count mismatch", __func__));
 	}
 
@@ -284,10 +285,10 @@ complete_ddp_buffer(struct toepcb *toep, struct ddp_bu
 	db->ps = NULL;
 
 	db_flag = db_idx == 1 ? DDP_BUF1_ACTIVE : DDP_BUF0_ACTIVE;
-	KASSERT(toep->ddp_flags & db_flag,
+	KASSERT(toep->ddp.flags & db_flag,
 	    ("%s: DDP buffer not active. toep %p, ddp_flags 0x%x",
-	    __func__, toep, toep->ddp_flags));
-	toep->ddp_flags &= ~db_flag;
+	    __func__, toep, toep->ddp.flags));
+	toep->ddp.flags &= ~db_flag;
 }
 
 /* XXX: handle_ddp_data code duplication */
@@ -315,12 +316,12 @@ insert_ddp_data(struct toepcb *toep, uint32_t n)
 #endif
 	CTR2(KTR_CXGBE, "%s: placed %u bytes before falling out of DDP",
 	    __func__, n);
-	while (toep->ddp_active_count > 0) {
-		MPASS(toep->ddp_active_id != -1);
-		db_idx = toep->ddp_active_id;
+	while (toep->ddp.active_count > 0) {
+		MPASS(toep->ddp.active_id != -1);
+		db_idx = toep->ddp.active_id;
 		db_flag = db_idx == 1 ? DDP_BUF1_ACTIVE : DDP_BUF0_ACTIVE;
-		MPASS((toep->ddp_flags & db_flag) != 0);
-		db = &toep->db[db_idx];
+		MPASS((toep->ddp.flags & db_flag) != 0);
+		db = &toep->ddp.db[db_idx];
 		job = db->job;
 		copied = job->aio_received;
 		placed = n;
@@ -342,8 +343,8 @@ insert_ddp_data(struct toepcb *toep, uint32_t n)
 			/* XXX: This always completes if there is some data. */
 			aio_complete(job, copied + placed, 0);
 		} else if (aio_set_cancel_function(job, t4_aio_cancel_queued)) {
-			TAILQ_INSERT_HEAD(&toep->ddp_aiojobq, job, list);
-			toep->ddp_waiting_count++;
+			TAILQ_INSERT_HEAD(&toep->ddp.aiojobq, job, list);
+			toep->ddp.waiting_count++;
 		} else
 			aio_cancel(job);
 		n -= placed;
@@ -503,10 +504,10 @@ handle_ddp_data(struct toepcb *toep, __be32 ddp_report
 	sb = &so->so_rcv;
 	DDP_LOCK(toep);
 
-	KASSERT(toep->ddp_active_id == db_idx,
+	KASSERT(toep->ddp.active_id == db_idx,
 	    ("completed DDP buffer (%d) != active_id (%d) for tid %d", db_idx,
-	    toep->ddp_active_id, toep->tid));
-	db = &toep->db[db_idx];
+	    toep->ddp.active_id, toep->tid));
+	db = &toep->ddp.db[db_idx];
 	job = db->job;
 
 	if (__predict_false(inp->inp_flags & (INP_DROPPED | INP_TIMEWAIT))) {
@@ -597,7 +598,7 @@ handle_ddp_data(struct toepcb *toep, __be32 ddp_report
 
 completed:
 	complete_ddp_buffer(toep, db, db_idx);
-	if (toep->ddp_waiting_count > 0)
+	if (toep->ddp.waiting_count > 0)
 		ddp_queue_toep(toep);
 out:
 	DDP_UNLOCK(toep);
@@ -611,9 +612,9 @@ handle_ddp_indicate(struct toepcb *toep)
 {
 
 	DDP_ASSERT_LOCKED(toep);
-	MPASS(toep->ddp_active_count == 0);
-	MPASS((toep->ddp_flags & (DDP_BUF0_ACTIVE | DDP_BUF1_ACTIVE)) == 0);
-	if (toep->ddp_waiting_count == 0) {
+	MPASS(toep->ddp.active_count == 0);
+	MPASS((toep->ddp.flags & (DDP_BUF0_ACTIVE | DDP_BUF1_ACTIVE)) == 0);
+	if (toep->ddp.waiting_count == 0) {
 		/*
 		 * The pending requests that triggered the request for an
 		 * an indicate were cancelled.  Those cancels should have
@@ -623,7 +624,7 @@ handle_ddp_indicate(struct toepcb *toep)
 		return;
 	}
 	CTR3(KTR_CXGBE, "%s: tid %d indicated (%d waiting)", __func__,
-	    toep->tid, toep->ddp_waiting_count);
+	    toep->tid, toep->ddp.waiting_count);
 	ddp_queue_toep(toep);
 }
 
@@ -653,7 +654,7 @@ handle_ddp_tcb_rpl(struct toepcb *toep, const struct c
 		db_idx = G_COOKIE(cpl->cookie) - DDP_BUF0_INVALIDATED;
 		INP_WLOCK(inp);
 		DDP_LOCK(toep);
-		db = &toep->db[db_idx];
+		db = &toep->ddp.db[db_idx];
 
 		/*
 		 * handle_ddp_data() should leave the job around until
@@ -686,7 +687,7 @@ handle_ddp_tcb_rpl(struct toepcb *toep, const struct c
 		}
 
 		complete_ddp_buffer(toep, db, db_idx);
-		if (toep->ddp_waiting_count > 0)
+		if (toep->ddp.waiting_count > 0)
 			ddp_queue_toep(toep);
 		DDP_UNLOCK(toep);
 		INP_WUNLOCK(inp);
@@ -715,12 +716,12 @@ handle_ddp_close(struct toepcb *toep, struct tcpcb *tp
 	toep->rx_credits += len;
 #endif
 
-	while (toep->ddp_active_count > 0) {
-		MPASS(toep->ddp_active_id != -1);
-		db_idx = toep->ddp_active_id;
+	while (toep->ddp.active_count > 0) {
+		MPASS(toep->ddp.active_id != -1);
+		db_idx = toep->ddp.active_id;
 		db_flag = db_idx == 1 ? DDP_BUF1_ACTIVE : DDP_BUF0_ACTIVE;
-		MPASS((toep->ddp_flags & db_flag) != 0);
-		db = &toep->db[db_idx];
+		MPASS((toep->ddp.flags & db_flag) != 0);
+		db = &toep->ddp.db[db_idx];
 		job = db->job;
 		copied = job->aio_received;
 		placed = len;
@@ -808,15 +809,15 @@ static void
 enable_ddp(struct adapter *sc, struct toepcb *toep)
 {
 
-	KASSERT((toep->ddp_flags & (DDP_ON | DDP_OK | DDP_SC_REQ)) == DDP_OK,
+	KASSERT((toep->ddp.flags & (DDP_ON | DDP_OK | DDP_SC_REQ)) == DDP_OK,
 	    ("%s: toep %p has bad ddp_flags 0x%x",
-	    __func__, toep, toep->ddp_flags));
+	    __func__, toep, toep->ddp.flags));
 
 	CTR3(KTR_CXGBE, "%s: tid %u (time %u)",
 	    __func__, toep->tid, time_uptime);
 
 	DDP_ASSERT_LOCKED(toep);
-	toep->ddp_flags |= DDP_SC_REQ;
+	toep->ddp.flags |= DDP_SC_REQ;
 	t4_set_tcb_field(sc, toep->ctrlq, toep->tid, W_TCB_RX_DDP_FLAGS,
 	    V_TF_DDP_OFF(1) | V_TF_DDP_INDICATE_OUT(1) |
 	    V_TF_DDP_BUF0_INDICATE(1) | V_TF_DDP_BUF1_INDICATE(1) |
@@ -1333,11 +1334,11 @@ hold_aio(struct toepcb *toep, struct kaiocb *job, stru
 	/*
 	 * Try to reuse a cached pageset.
 	 */
-	TAILQ_FOREACH(ps, &toep->ddp_cached_pagesets, link) {
+	TAILQ_FOREACH(ps, &toep->ddp.cached_pagesets, link) {
 		if (pscmp(ps, vm, start, n, pgoff,
 		    job->uaiocb.aio_nbytes) == 0) {
-			TAILQ_REMOVE(&toep->ddp_cached_pagesets, ps, link);
-			toep->ddp_cached_count--;
+			TAILQ_REMOVE(&toep->ddp.cached_pagesets, ps, link);
+			toep->ddp.cached_count--;
 			*pps = ps;
 			return (0);
 		}
@@ -1347,15 +1348,15 @@ hold_aio(struct toepcb *toep, struct kaiocb *job, stru
 	 * If there are too many cached pagesets to create a new one,
 	 * free a pageset before creating a new one.
 	 */
-	KASSERT(toep->ddp_active_count + toep->ddp_cached_count <=
-	    nitems(toep->db), ("%s: too many wired pagesets", __func__));
-	if (toep->ddp_active_count + toep->ddp_cached_count ==
-	    nitems(toep->db)) {
-		KASSERT(toep->ddp_cached_count > 0,
+	KASSERT(toep->ddp.active_count + toep->ddp.cached_count <=
+	    nitems(toep->ddp.db), ("%s: too many wired pagesets", __func__));
+	if (toep->ddp.active_count + toep->ddp.cached_count ==
+	    nitems(toep->ddp.db)) {
+		KASSERT(toep->ddp.cached_count > 0,
 		    ("no cached pageset to free"));
-		ps = TAILQ_LAST(&toep->ddp_cached_pagesets, pagesetq);
-		TAILQ_REMOVE(&toep->ddp_cached_pagesets, ps, link);
-		toep->ddp_cached_count--;
+		ps = TAILQ_LAST(&toep->ddp.cached_pagesets, pagesetq);
+		TAILQ_REMOVE(&toep->ddp.cached_pagesets, ps, link);
+		toep->ddp.cached_count--;
 		free_pageset(toep->td, ps);
 	}
 	DDP_UNLOCK(toep);
@@ -1395,10 +1396,10 @@ ddp_complete_all(struct toepcb *toep, int error)
 	struct kaiocb *job;
 
 	DDP_ASSERT_LOCKED(toep);
-	while (!TAILQ_EMPTY(&toep->ddp_aiojobq)) {
-		job = TAILQ_FIRST(&toep->ddp_aiojobq);
-		TAILQ_REMOVE(&toep->ddp_aiojobq, job, list);
-		toep->ddp_waiting_count--;
+	while (!TAILQ_EMPTY(&toep->ddp.aiojobq)) {
+		job = TAILQ_FIRST(&toep->ddp.aiojobq);
+		TAILQ_REMOVE(&toep->ddp.aiojobq, job, list);
+		toep->ddp.waiting_count--;
 		if (aio_clear_cancel_function(job))
 			ddp_complete_one(job, error);
 	}
@@ -1431,10 +1432,10 @@ aio_ddp_requeue_one(struct toepcb *toep, struct kaiocb
 {
 
 	DDP_ASSERT_LOCKED(toep);
-	if (!(toep->ddp_flags & DDP_DEAD) &&
+	if (!(toep->ddp.flags & DDP_DEAD) &&
 	    aio_set_cancel_function(job, t4_aio_cancel_queued)) {
-		TAILQ_INSERT_HEAD(&toep->ddp_aiojobq, job, list);
-		toep->ddp_waiting_count++;
+		TAILQ_INSERT_HEAD(&toep->ddp.aiojobq, job, list);
+		toep->ddp.waiting_count++;
 	} else
 		aio_ddp_cancel_one(job);
 }
@@ -1458,18 +1459,18 @@ aio_ddp_requeue(struct toepcb *toep)
 	DDP_ASSERT_LOCKED(toep);
 
 restart:
-	if (toep->ddp_flags & DDP_DEAD) {
-		MPASS(toep->ddp_waiting_count == 0);
-		MPASS(toep->ddp_active_count == 0);
+	if (toep->ddp.flags & DDP_DEAD) {
+		MPASS(toep->ddp.waiting_count == 0);
+		MPASS(toep->ddp.active_count == 0);
 		return;
 	}
 
-	if (toep->ddp_waiting_count == 0 ||
-	    toep->ddp_active_count == nitems(toep->db)) {
+	if (toep->ddp.waiting_count == 0 ||
+	    toep->ddp.active_count == nitems(toep->ddp.db)) {
 		return;
 	}
 
-	job = TAILQ_FIRST(&toep->ddp_aiojobq);
+	job = TAILQ_FIRST(&toep->ddp.aiojobq);
 	so = job->fd_file->f_data;
 	sb = &so->so_rcv;
 	SOCKBUF_LOCK(sb);
@@ -1481,14 +1482,14 @@ restart:
 		return;
 	}
 
-	KASSERT(toep->ddp_active_count == 0 || sbavail(sb) == 0,
+	KASSERT(toep->ddp.active_count == 0 || sbavail(sb) == 0,
 	    ("%s: pending sockbuf data and DDP is active", __func__));
 
 	/* Abort if socket has reported problems. */
 	/* XXX: Wait for any queued DDP's to finish and/or flush them? */
 	if (so->so_error && sbavail(sb) == 0) {
-		toep->ddp_waiting_count--;
-		TAILQ_REMOVE(&toep->ddp_aiojobq, job, list);
+		toep->ddp.waiting_count--;
+		TAILQ_REMOVE(&toep->ddp.aiojobq, job, list);
 		if (!aio_clear_cancel_function(job)) {
 			SOCKBUF_UNLOCK(sb);
 			goto restart;
@@ -1519,7 +1520,7 @@ restart:
 	 */
 	if (sb->sb_state & SBS_CANTRCVMORE && sbavail(sb) == 0) {
 		SOCKBUF_UNLOCK(sb);
-		if (toep->ddp_active_count != 0)
+		if (toep->ddp.active_count != 0)
 			return;
 		ddp_complete_all(toep, 0);
 		return;
@@ -1529,7 +1530,7 @@ restart:
 	 * If DDP is not enabled and there is no pending socket buffer
 	 * data, try to enable DDP.
 	 */
-	if (sbavail(sb) == 0 && (toep->ddp_flags & DDP_ON) == 0) {
+	if (sbavail(sb) == 0 && (toep->ddp.flags & DDP_ON) == 0) {
 		SOCKBUF_UNLOCK(sb);
 
 		/*
@@ -1543,7 +1544,7 @@ restart:
 		 * XXX: Might want to limit the indicate size to the size
 		 * of the first queued request.
 		 */
-		if ((toep->ddp_flags & DDP_SC_REQ) == 0)
+		if ((toep->ddp.flags & DDP_SC_REQ) == 0)
 			enable_ddp(sc, toep);
 		return;
 	}
@@ -1553,21 +1554,21 @@ restart:
 	 * If another thread is queueing a buffer for DDP, let it
 	 * drain any work and return.
 	 */
-	if (toep->ddp_queueing != NULL)
+	if (toep->ddp.queueing != NULL)
 		return;
 
 	/* Take the next job to prep it for DDP. */
-	toep->ddp_waiting_count--;
-	TAILQ_REMOVE(&toep->ddp_aiojobq, job, list);
+	toep->ddp.waiting_count--;
+	TAILQ_REMOVE(&toep->ddp.aiojobq, job, list);
 	if (!aio_clear_cancel_function(job))
 		goto restart;
-	toep->ddp_queueing = job;
+	toep->ddp.queueing = job;
 
 	/* NB: This drops DDP_LOCK while it holds the backing VM pages. */
 	error = hold_aio(toep, job, &ps);
 	if (error != 0) {
 		ddp_complete_one(job, error);
-		toep->ddp_queueing = NULL;
+		toep->ddp.queueing = NULL;
 		goto restart;
 	}
 
@@ -1578,7 +1579,7 @@ restart:
 			SOCKBUF_UNLOCK(sb);
 			recycle_pageset(toep, ps);
 			aio_complete(job, copied, 0);
-			toep->ddp_queueing = NULL;
+			toep->ddp.queueing = NULL;
 			goto restart;
 		}
 
@@ -1587,26 +1588,26 @@ restart:
 		SOCKBUF_UNLOCK(sb);
 		recycle_pageset(toep, ps);
 		aio_complete(job, -1, error);
-		toep->ddp_queueing = NULL;
+		toep->ddp.queueing = NULL;
 		goto restart;
 	}
 
 	if (sb->sb_state & SBS_CANTRCVMORE && sbavail(sb) == 0) {
 		SOCKBUF_UNLOCK(sb);
 		recycle_pageset(toep, ps);
-		if (toep->ddp_active_count != 0) {
+		if (toep->ddp.active_count != 0) {
 			/*
 			 * The door is closed, but there are still pending
 			 * DDP buffers.  Requeue.  These jobs will all be
 			 * completed once those buffers drain.
 			 */
 			aio_ddp_requeue_one(toep, job);
-			toep->ddp_queueing = NULL;
+			toep->ddp.queueing = NULL;
 			return;
 		}
 		ddp_complete_one(job, 0);
 		ddp_complete_all(toep, 0);
-		toep->ddp_queueing = NULL;
+		toep->ddp.queueing = NULL;
 		return;
 	}
 
@@ -1615,7 +1616,7 @@ sbcopy:
 	 * If the toep is dead, there shouldn't be any data in the socket
 	 * buffer, so the above case should have handled this.
 	 */
-	MPASS(!(toep->ddp_flags & DDP_DEAD));
+	MPASS(!(toep->ddp.flags & DDP_DEAD));
 
 	/*
 	 * If there is pending data in the socket buffer (either
@@ -1627,7 +1628,7 @@ sbcopy:
 	MPASS(job->aio_received <= job->uaiocb.aio_nbytes);
 	resid = job->uaiocb.aio_nbytes - job->aio_received;
 	m = sb->sb_mb;
-	KASSERT(m == NULL || toep->ddp_active_count == 0,
+	KASSERT(m == NULL || toep->ddp.active_count == 0,
 	    ("%s: sockbuf data with active DDP", __func__));
 	while (m != NULL && resid > 0) {
 		struct iovec iov[1];
@@ -1678,7 +1679,7 @@ sbcopy:
 		}
 		t4_rcvd_locked(&toep->td->tod, intotcpcb(inp));
 		INP_WUNLOCK(inp);
-		if (resid == 0 || toep->ddp_flags & DDP_DEAD) {
+		if (resid == 0 || toep->ddp.flags & DDP_DEAD) {
 			/*
 			 * We filled the entire buffer with socket
 			 * data, DDP is not being used, or the socket
@@ -1688,7 +1689,7 @@ sbcopy:
 			SOCKBUF_UNLOCK(sb);
 			recycle_pageset(toep, ps);
 			aio_complete(job, copied, 0);
-			toep->ddp_queueing = NULL;
+			toep->ddp.queueing = NULL;
 			goto restart;
 		}
 
@@ -1697,11 +1698,11 @@ sbcopy:
 		 * This will either enable DDP or wait for more data to
 		 * arrive on the socket buffer.
 		 */
-		if ((toep->ddp_flags & (DDP_ON | DDP_SC_REQ)) != DDP_ON) {
+		if ((toep->ddp.flags & (DDP_ON | DDP_SC_REQ)) != DDP_ON) {
 			SOCKBUF_UNLOCK(sb);
 			recycle_pageset(toep, ps);
 			aio_ddp_requeue_one(toep, job);
-			toep->ddp_queueing = NULL;
+			toep->ddp.queueing = NULL;
 			goto restart;
 		}
 
@@ -1718,7 +1719,7 @@ sbcopy:
 	if (prep_pageset(sc, toep, ps) == 0) {
 		recycle_pageset(toep, ps);
 		aio_ddp_requeue_one(toep, job);
-		toep->ddp_queueing = NULL;
+		toep->ddp.queueing = NULL;
 
 		/*
 		 * XXX: Need to retry this later.  Mostly need a trigger
@@ -1729,10 +1730,10 @@ sbcopy:
 	}
 
 	/* Determine which DDP buffer to use. */
-	if (toep->db[0].job == NULL) {
+	if (toep->ddp.db[0].job == NULL) {
 		db_idx = 0;
 	} else {
-		MPASS(toep->db[1].job == NULL);
+		MPASS(toep->ddp.db[1].job == NULL);
 		db_idx = 1;
 	}
 
@@ -1755,11 +1756,11 @@ sbcopy:
 		    V_TF_DDP_BUF1_FLUSH(1) | V_TF_DDP_BUF1_VALID(1);
 		buf_flag = DDP_BUF1_ACTIVE;
 	}
-	MPASS((toep->ddp_flags & buf_flag) == 0);
-	if ((toep->ddp_flags & (DDP_BUF0_ACTIVE | DDP_BUF1_ACTIVE)) == 0) {
+	MPASS((toep->ddp.flags & buf_flag) == 0);
+	if ((toep->ddp.flags & (DDP_BUF0_ACTIVE | DDP_BUF1_ACTIVE)) == 0) {
 		MPASS(db_idx == 0);
-		MPASS(toep->ddp_active_id == -1);
-		MPASS(toep->ddp_active_count == 0);
+		MPASS(toep->ddp.active_id == -1);
+		MPASS(toep->ddp.active_count == 0);
 		ddp_flags_mask |= V_TF_DDP_ACTIVE_BUF(1);
 	}
 
@@ -1776,7 +1777,7 @@ sbcopy:
 	if (wr == NULL) {
 		recycle_pageset(toep, ps);
 		aio_ddp_requeue_one(toep, job);
-		toep->ddp_queueing = NULL;
+		toep->ddp.queueing = NULL;
 
 		/*
 		 * XXX: Need a way to kick a retry here.
@@ -1794,7 +1795,7 @@ sbcopy:
 		free_wrqe(wr);
 		recycle_pageset(toep, ps);
 		aio_ddp_cancel_one(job);
-		toep->ddp_queueing = NULL;
+		toep->ddp.queueing = NULL;
 		goto restart;
 	}
 
@@ -1804,18 +1805,18 @@ sbcopy:
 #endif
 	/* Give the chip the go-ahead. */
 	t4_wrq_tx(sc, wr);
-	db = &toep->db[db_idx];
+	db = &toep->ddp.db[db_idx];
 	db->cancel_pending = 0;
 	db->job = job;
 	db->ps = ps;
-	toep->ddp_queueing = NULL;
-	toep->ddp_flags |= buf_flag;
-	toep->ddp_active_count++;
-	if (toep->ddp_active_count == 1) {
-		MPASS(toep->ddp_active_id == -1);
-		toep->ddp_active_id = db_idx;
+	toep->ddp.queueing = NULL;
+	toep->ddp.flags |= buf_flag;
+	toep->ddp.active_count++;
+	if (toep->ddp.active_count == 1) {
+		MPASS(toep->ddp.active_id == -1);
+		toep->ddp.active_id = db_idx;
 		CTR2(KTR_CXGBE, "%s: ddp_active_id = %d", __func__,
-		    toep->ddp_active_id);
+		    toep->ddp.active_id);
 	}
 	goto restart;
 }
@@ -1825,11 +1826,11 @@ ddp_queue_toep(struct toepcb *toep)
 {
 
 	DDP_ASSERT_LOCKED(toep);
-	if (toep->ddp_flags & DDP_TASK_ACTIVE)
+	if (toep->ddp.flags & DDP_TASK_ACTIVE)
 		return;
-	toep->ddp_flags |= DDP_TASK_ACTIVE;
+	toep->ddp.flags |= DDP_TASK_ACTIVE;
 	hold_toepcb(toep);
-	soaio_enqueue(&toep->ddp_requeue_task);
+	soaio_enqueue(&toep->ddp.requeue_task);
 }
 
 static void
@@ -1839,7 +1840,7 @@ aio_ddp_requeue_task(void *context, int pending)
 
 	DDP_LOCK(toep);
 	aio_ddp_requeue(toep);
-	toep->ddp_flags &= ~DDP_TASK_ACTIVE;
+	toep->ddp.flags &= ~DDP_TASK_ACTIVE;
 	DDP_UNLOCK(toep);
 
 	free_toepcb(toep);
@@ -1862,10 +1863,10 @@ t4_aio_cancel_active(struct kaiocb *job)
 		return;
 	}
 
-	for (i = 0; i < nitems(toep->db); i++) {
-		if (toep->db[i].job == job) {
+	for (i = 0; i < nitems(toep->ddp.db); i++) {
+		if (toep->ddp.db[i].job == job) {
 			/* Should only ever get one cancel request for a job. */
-			MPASS(toep->db[i].cancel_pending == 0);
+			MPASS(toep->ddp.db[i].cancel_pending == 0);
 
 			/*
 			 * Invalidate this buffer.  It will be
@@ -1878,7 +1879,7 @@ t4_aio_cancel_active(struct kaiocb *job)
 			    W_TCB_RX_DDP_FLAGS, valid_flag, 0, 1,
 			    i + DDP_BUF0_INVALIDATED,
 			    toep->ofld_rxq->iq.abs_id);
-			toep->db[i].cancel_pending = 1;
+			toep->ddp.db[i].cancel_pending = 1;
 			CTR2(KTR_CXGBE, "%s: request %p marked pending",
 			    __func__, job);
 			break;
@@ -1896,9 +1897,9 @@ t4_aio_cancel_queued(struct kaiocb *job)
 
 	DDP_LOCK(toep);
 	if (!aio_cancel_cleared(job)) {
-		TAILQ_REMOVE(&toep->ddp_aiojobq, job, list);
-		toep->ddp_waiting_count--;
-		if (toep->ddp_waiting_count == 0)
+		TAILQ_REMOVE(&toep->ddp.aiojobq, job, list);
+		toep->ddp.waiting_count--;
+		if (toep->ddp.waiting_count == 0)
 			ddp_queue_toep(toep);
 	}
 	CTR2(KTR_CXGBE, "%s: request %p cancelled", __func__, job);
@@ -1931,9 +1932,9 @@ t4_aio_queue_ddp(struct socket *so, struct kaiocb *job
 #endif
 	if (!aio_set_cancel_function(job, t4_aio_cancel_queued))
 		panic("new job was cancelled");
-	TAILQ_INSERT_TAIL(&toep->ddp_aiojobq, job, list);
-	toep->ddp_waiting_count++;
-	toep->ddp_flags |= DDP_OK;
+	TAILQ_INSERT_TAIL(&toep->ddp.aiojobq, job, list);
+	toep->ddp.waiting_count++;
+	toep->ddp.flags |= DDP_OK;
 
 	/*
 	 * Try to handle this request synchronously.  If this has

Modified: stable/11/sys/dev/cxgbe/tom/t4_tom.c
==============================================================================
--- stable/11/sys/dev/cxgbe/tom/t4_tom.c	Tue Mar 27 18:55:39 2018	(r331644)
+++ stable/11/sys/dev/cxgbe/tom/t4_tom.c	Tue Mar 27 20:14:22 2018	(r331645)
@@ -171,7 +171,6 @@ alloc_toepcb(struct vi_info *vi, int txqid, int rxqid,
 	toep->txsd_pidx = 0;
 	toep->txsd_cidx = 0;
 	aiotx_init_toep(toep);
-	ddp_init_toep(toep);
 
 	return (toep);
 }
@@ -196,7 +195,8 @@ free_toepcb(struct toepcb *toep)
 	KASSERT(!(toep->flags & TPF_CPL_PENDING),
 	    ("%s: CPL pending", __func__));
 
-	ddp_uninit_toep(toep);
+	if (toep->ulp_mode == ULP_MODE_TCPDDP)
+		ddp_uninit_toep(toep);
 	free(toep, M_CXGBE);
 }
 
@@ -301,7 +301,8 @@ release_offload_resources(struct toepcb *toep)
 	MPASS(mbufq_len(&toep->ulp_pduq) == 0);
 	MPASS(mbufq_len(&toep->ulp_pdu_reclaimq) == 0);
 #ifdef INVARIANTS
-	ddp_assert_empty(toep);
+	if (toep->ulp_mode == ULP_MODE_TCPDDP)
+		ddp_assert_empty(toep);
 #endif
 
 	if (toep->l2te)
@@ -617,7 +618,7 @@ set_tcpddp_ulp_mode(struct toepcb *toep)
 {
 
 	toep->ulp_mode = ULP_MODE_TCPDDP;
-	toep->ddp_flags = DDP_OK;
+	ddp_init_toep(toep);
 }
 
 int

Modified: stable/11/sys/dev/cxgbe/tom/t4_tom.h
==============================================================================
--- stable/11/sys/dev/cxgbe/tom/t4_tom.h	Tue Mar 27 18:55:39 2018	(r331644)
+++ stable/11/sys/dev/cxgbe/tom/t4_tom.h	Tue Mar 27 20:14:22 2018	(r331645)
@@ -132,6 +132,20 @@ struct ddp_buffer {
 	int cancel_pending;
 };
 
+struct ddp_pcb {
+	u_int flags;
+	struct ddp_buffer db[2];
+	TAILQ_HEAD(, pageset) cached_pagesets;
+	TAILQ_HEAD(, kaiocb) aiojobq;
+	u_int waiting_count;
+	u_int active_count;
+	u_int cached_count;
+	int active_id;	/* the currently active DDP buffer */
+	struct task requeue_task;
+	struct kaiocb *queueing;
+	struct mtx lock;
+};
+
 struct aiotx_buffer {
 	struct pageset ps;
 	struct kaiocb *job;
@@ -169,17 +183,7 @@ struct toepcb {
 	struct mbufq ulp_pduq;	/* PDUs waiting to be sent out. */
 	struct mbufq ulp_pdu_reclaimq;
 
-	u_int ddp_flags;
-	struct ddp_buffer db[2];
-	TAILQ_HEAD(, pageset) ddp_cached_pagesets;
-	TAILQ_HEAD(, kaiocb) ddp_aiojobq;
-	u_int ddp_waiting_count;
-	u_int ddp_active_count;
-	u_int ddp_cached_count;
-	int ddp_active_id;	/* the currently active DDP buffer */
-	struct task ddp_requeue_task;
-	struct kaiocb *ddp_queueing;
-	struct mtx ddp_lock;
+	struct ddp_pcb ddp;
 
 	TAILQ_HEAD(, kaiocb) aiotx_jobq;
 	struct task aiotx_task;
@@ -193,9 +197,9 @@ struct toepcb {
 	struct ofld_tx_sdesc txsd[];
 };
 
-#define	DDP_LOCK(toep)		mtx_lock(&(toep)->ddp_lock)
-#define	DDP_UNLOCK(toep)	mtx_unlock(&(toep)->ddp_lock)
-#define	DDP_ASSERT_LOCKED(toep)	mtx_assert(&(toep)->ddp_lock, MA_OWNED)
+#define	DDP_LOCK(toep)		mtx_lock(&(toep)->ddp.lock)
+#define	DDP_UNLOCK(toep)	mtx_unlock(&(toep)->ddp.lock)
+#define	DDP_ASSERT_LOCKED(toep)	mtx_assert(&(toep)->ddp.lock, MA_OWNED)
 
 struct flowc_tx_params {
 	uint32_t snd_nxt;

From owner-svn-src-all@freebsd.org  Tue Mar 27 20:34:50 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E656CF57C01;
 Tue, 27 Mar 2018 20:34:49 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 93EEB7EE1D;
 Tue, 27 Mar 2018 20:34:49 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8ED6A21182;
 Tue, 27 Mar 2018 20:34:49 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RKYnDI058157;
 Tue, 27 Mar 2018 20:34:49 GMT (envelope-from ken@FreeBSD.org)
Received: (from ken@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RKYnDU058155;
 Tue, 27 Mar 2018 20:34:49 GMT (envelope-from ken@FreeBSD.org)
Message-Id: <201803272034.w2RKYnDU058155@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ken set sender to ken@FreeBSD.org
 using -f
From: "Kenneth D. Merry" 
Date: Tue, 27 Mar 2018 20:34:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331646 - in stable/11/sys/dev: mpr mps
X-SVN-Group: stable-11
X-SVN-Commit-Author: ken
X-SVN-Commit-Paths: in stable/11/sys/dev: mpr mps
X-SVN-Commit-Revision: 331646
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 20:34:50 -0000

Author: ken
Date: Tue Mar 27 20:34:49 2018
New Revision: 331646
URL: https://svnweb.freebsd.org/changeset/base/331646

Log:
  MFC r331422:
  
    ------------------------------------------------------------------------
    r331422 | ken | 2018-03-23 07:52:26 -0600 (Fri, 23 Mar 2018) | 42 lines
  
    Disable T10 Protection Information / EEDP handling for type 2 protection.
  
    The mps(4) and mpr(4) drivers and hardware handle T10 Protection
    Information, which is a system of checksums and guard blocks to protect
    data while it is being transferred and while it is on disk.  It is also
    known as T10 DIF.  For more details, see section 4.22 of the SBC-4 spec.
  
    Supporting Type 2 protection requires using 32 byte CDBs, and filling in
    the fields in those CDBs.  We don't yet support that in the da(4) driver.
  
    Type 1 and Type 3 protection don't require that, and can be handled by
    the mps(4)/mpr(4) driver's code and firmware without any additional
    input from the da(4) driver.
  
    If a drive has Type 2 protection enabled (you frequently see this with
    SAS drives shipped from Dell), don't set the various EEDP fields in the
    mps(4)/mpr(4) driver command fields.  Otherwise, you wind up with errors
    like this that would otherwise make no sense:
  
    (da9:mpr0:0:18:0): READ(10). CDB: 28 00 00 00 00 00 00 02 00 00
    (da9:mpr0:0:18:0): CAM status: SCSI Status Error
    (da9:mpr0:0:18:0): SCSI status: Check Condition
    (da9:mpr0:0:18:0): SCSI sense: ILLEGAL REQUEST asc:20,0 (Invalid command operation code)
    (da9:mpr0:0:18:0):
    (da9:mpr0:0:18:0): Field Replaceable Unit: 0
    (da9:mpr0:0:18:0): Command Specific Info: 0
    (da9:mpr0:0:18:0):
    (da9:mpr0:0:18:0): Descriptor 0x80: f8 21
    (da9:mpr0:0:18:0): Descriptor 0x81: 00 00 00 00 00 00
    (da9:mpr0:0:18:0): Error 22, Unretryable error
  
    In other words, what kind of strange SAS hard drive doesn't support a
    standard 10 byte SCSI READ command?  In this case, one that has Type 2
    protection enabled.
  
    We can revisit this when we put Type 2 protection support in the da(4)
    driver, but for now this will help people who put Type 2 formatted drives
    in a system and wonder what in the world is going on.
  
    Sponsored by:	Spectra Logic
  
    ------------------------------------------------------------------------

Modified:
  stable/11/sys/dev/mpr/mpr_sas.c
  stable/11/sys/dev/mps/mps_sas.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mpr/mpr_sas.c
==============================================================================
--- stable/11/sys/dev/mpr/mpr_sas.c	Tue Mar 27 20:14:22 2018	(r331645)
+++ stable/11/sys/dev/mpr/mpr_sas.c	Tue Mar 27 20:34:49 2018	(r331646)
@@ -2112,8 +2112,8 @@ mprsas_action_scsiio(struct mprsas_softc *sassc, union
 				    CDB.EEDP32.PrimaryReferenceTag);
 				req->CDB.EEDP32.PrimaryApplicationTagMask =
 				    0xFFFF;
-				req->CDB.CDB32[1] = (req->CDB.CDB32[1] & 0x1F) |
-				    0x20;
+				req->CDB.CDB32[1] =
+				    (req->CDB.CDB32[1] & 0x1F) | 0x20;
 			} else {
 				eedp_flags |=
 				    MPI2_SCSIIO_EEDPFLAGS_INC_PRI_APPTAG;
@@ -3614,8 +3614,19 @@ mprsas_async(void *callback_arg, uint32_t code, struct
 
 		if ((mprsas_get_ccbstatus((union ccb *)&cdai) == CAM_REQ_CMP)
 		    && (rcap_buf.prot & SRC16_PROT_EN)) {
-			lun->eedp_formatted = TRUE;
-			lun->eedp_block_size = scsi_4btoul(rcap_buf.length);
+			switch (rcap_buf.prot & SRC16_P_TYPE) {
+			case SRC16_PTYPE_1:
+			case SRC16_PTYPE_3:
+				lun->eedp_formatted = TRUE;
+				lun->eedp_block_size =
+				    scsi_4btoul(rcap_buf.length);
+				break;
+			case SRC16_PTYPE_2:
+			default:
+				lun->eedp_formatted = FALSE;
+				lun->eedp_block_size = 0;
+				break;
+			}
 		} else {
 			lun->eedp_formatted = FALSE;
 			lun->eedp_block_size = 0;

Modified: stable/11/sys/dev/mps/mps_sas.c
==============================================================================
--- stable/11/sys/dev/mps/mps_sas.c	Tue Mar 27 20:14:22 2018	(r331645)
+++ stable/11/sys/dev/mps/mps_sas.c	Tue Mar 27 20:34:49 2018	(r331646)
@@ -3338,8 +3338,19 @@ mpssas_async(void *callback_arg, uint32_t code, struct
 
 		if ((mpssas_get_ccbstatus((union ccb *)&cdai) == CAM_REQ_CMP)
 		 && (rcap_buf.prot & SRC16_PROT_EN)) {
-			lun->eedp_formatted = TRUE;
-			lun->eedp_block_size = scsi_4btoul(rcap_buf.length);
+			switch (rcap_buf.prot & SRC16_P_TYPE) {
+			case SRC16_PTYPE_1:
+			case SRC16_PTYPE_3:
+				lun->eedp_formatted = TRUE;
+				lun->eedp_block_size =
+				    scsi_4btoul(rcap_buf.length);
+				break;
+			case SRC16_PTYPE_2:
+			default:
+				lun->eedp_formatted = FALSE;
+				lun->eedp_block_size = 0;
+				break;
+			}
 		} else {
 			lun->eedp_formatted = FALSE;
 			lun->eedp_block_size = 0;

From owner-svn-src-all@freebsd.org  Tue Mar 27 20:49:48 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9391F5A369;
 Tue, 27 Mar 2018 20:49:47 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B7F287FB43;
 Tue, 27 Mar 2018 20:49:47 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B2DB721320;
 Tue, 27 Mar 2018 20:49:47 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RKnls0063889;
 Tue, 27 Mar 2018 20:49:47 GMT (envelope-from jhb@FreeBSD.org)
Received: (from jhb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RKnlVr063888;
 Tue, 27 Mar 2018 20:49:47 GMT (envelope-from jhb@FreeBSD.org)
Message-Id: <201803272049.w2RKnlVr063888@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org
 using -f
From: John Baldwin 
Date: Tue, 27 Mar 2018 20:49:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331647 - in stable: 10/sys/dev/cxgbe 11/sys/dev/cxgbe
X-SVN-Group: stable-10
X-SVN-Commit-Author: jhb
X-SVN-Commit-Paths: in stable: 10/sys/dev/cxgbe 11/sys/dev/cxgbe
X-SVN-Commit-Revision: 331647
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 20:49:48 -0000

Author: jhb
Date: Tue Mar 27 20:49:47 2018
New Revision: 331647
URL: https://svnweb.freebsd.org/changeset/base/331647

Log:
  MFC 318387: Add support for child devices that aren't ports.
  
  Invoke any identify routines of child drivers during attach before attaching
  children, and delete any remaining devices after deleting ports.
  
  Sponsored by:	Chelsio Communications

Modified:
  stable/10/sys/dev/cxgbe/t4_main.c
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/sys/dev/cxgbe/t4_main.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/sys/dev/cxgbe/t4_main.c
==============================================================================
--- stable/10/sys/dev/cxgbe/t4_main.c	Tue Mar 27 20:34:49 2018	(r331646)
+++ stable/10/sys/dev/cxgbe/t4_main.c	Tue Mar 27 20:49:47 2018	(r331647)
@@ -1174,6 +1174,12 @@ t4_attach(device_t dev)
 		goto done;
 	}
 
+	rc = bus_generic_probe(dev);
+	if (rc != 0) {
+		device_printf(dev, "failed to probe child drivers: %d\n", rc);
+		goto done;
+	}
+
 	rc = bus_generic_attach(dev);
 	if (rc != 0) {
 		device_printf(dev,
@@ -1265,6 +1271,8 @@ t4_detach_common(device_t dev)
 			free(pi, M_CXGBE);
 		}
 	}
+
+	device_delete_children(dev);
 
 	if (sc->flags & FULL_INIT_DONE)
 		adapter_full_uninit(sc);

From owner-svn-src-all@freebsd.org  Tue Mar 27 20:49:48 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 477CBF5A370;
 Tue, 27 Mar 2018 20:49:48 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id ED9207FB44;
 Tue, 27 Mar 2018 20:49:47 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E897E21321;
 Tue, 27 Mar 2018 20:49:47 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RKnllD063895;
 Tue, 27 Mar 2018 20:49:47 GMT (envelope-from jhb@FreeBSD.org)
Received: (from jhb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RKnlnS063894;
 Tue, 27 Mar 2018 20:49:47 GMT (envelope-from jhb@FreeBSD.org)
Message-Id: <201803272049.w2RKnlnS063894@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org
 using -f
From: John Baldwin 
Date: Tue, 27 Mar 2018 20:49:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331647 - in stable: 10/sys/dev/cxgbe 11/sys/dev/cxgbe
X-SVN-Group: stable-11
X-SVN-Commit-Author: jhb
X-SVN-Commit-Paths: in stable: 10/sys/dev/cxgbe 11/sys/dev/cxgbe
X-SVN-Commit-Revision: 331647
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 20:49:48 -0000

Author: jhb
Date: Tue Mar 27 20:49:47 2018
New Revision: 331647
URL: https://svnweb.freebsd.org/changeset/base/331647

Log:
  MFC 318387: Add support for child devices that aren't ports.
  
  Invoke any identify routines of child drivers during attach before attaching
  children, and delete any remaining devices after deleting ports.
  
  Sponsored by:	Chelsio Communications

Modified:
  stable/11/sys/dev/cxgbe/t4_main.c
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/sys/dev/cxgbe/t4_main.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/sys/dev/cxgbe/t4_main.c
==============================================================================
--- stable/11/sys/dev/cxgbe/t4_main.c	Tue Mar 27 20:34:49 2018	(r331646)
+++ stable/11/sys/dev/cxgbe/t4_main.c	Tue Mar 27 20:49:47 2018	(r331647)
@@ -1179,6 +1179,12 @@ t4_attach(device_t dev)
 		goto done;
 	}
 
+	rc = bus_generic_probe(dev);
+	if (rc != 0) {
+		device_printf(dev, "failed to probe child drivers: %d\n", rc);
+		goto done;
+	}
+
 	/*
 	 * Ensure thread-safe mailbox access (in debug builds).
 	 *
@@ -1341,6 +1347,8 @@ t4_detach_common(device_t dev)
 			free(pi, M_CXGBE);
 		}
 	}
+
+	device_delete_children(dev);
 
 	if (sc->flags & FULL_INIT_DONE)
 		adapter_full_uninit(sc);

From owner-svn-src-all@freebsd.org  Tue Mar 27 20:51:51 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D89A0F5A77E;
 Tue, 27 Mar 2018 20:51:50 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8608B800B7;
 Tue, 27 Mar 2018 20:51:50 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 811AD21390;
 Tue, 27 Mar 2018 20:51:50 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RKporl064730;
 Tue, 27 Mar 2018 20:51:50 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RKpnYT064723;
 Tue, 27 Mar 2018 20:51:49 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803272051.w2RKpnYT064723@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 20:51:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331648 - in head/sys: net
 ofed/drivers/infiniband/ulp/ipoib
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in head/sys: net ofed/drivers/infiniband/ulp/ipoib
X-SVN-Commit-Revision: 331648
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 20:51:51 -0000

Author: brooks
Date: Tue Mar 27 20:51:49 2018
New Revision: 331648
URL: https://svnweb.freebsd.org/changeset/base/331648

Log:
  Improve copy-and-pasted versions of SIOCGIFADDR.
  
  The original implementation used a reference to ifr_data and a cast to
  do the equivalent of accessing ifr_addr. This was copied multiple
  times since 1996.
  
  Approved by:	kib
  MFC after:	1 week
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14873

Modified:
  head/sys/net/if_arcsubr.c
  head/sys/net/if_ethersubr.c
  head/sys/net/if_fddisubr.c
  head/sys/net/if_fwsubr.c
  head/sys/net/if_iso88025subr.c
  head/sys/net/if_vlan.c
  head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c

Modified: head/sys/net/if_arcsubr.c
==============================================================================
--- head/sys/net/if_arcsubr.c	Tue Mar 27 20:49:47 2018	(r331647)
+++ head/sys/net/if_arcsubr.c	Tue Mar 27 20:51:49 2018	(r331648)
@@ -681,12 +681,7 @@ arc_ioctl(struct ifnet *ifp, u_long command, caddr_t d
 		break;
 
 	case SIOCGIFADDR:
-		{
-			struct sockaddr *sa;
-
-			sa = (struct sockaddr *) &ifr->ifr_data;
-			*(u_int8_t *)sa->sa_data = ARC_LLADDR(ifp);
-		}
+		ifr->ifr_addr.sa_data[0] = ARC_LLADDR(ifp);
 		break;
 
 	case SIOCADDMULTI:

Modified: head/sys/net/if_ethersubr.c
==============================================================================
--- head/sys/net/if_ethersubr.c	Tue Mar 27 20:49:47 2018	(r331647)
+++ head/sys/net/if_ethersubr.c	Tue Mar 27 20:51:49 2018	(r331648)
@@ -1108,13 +1108,8 @@ ether_ioctl(struct ifnet *ifp, u_long command, caddr_t
 		break;
 
 	case SIOCGIFADDR:
-		{
-			struct sockaddr *sa;
-
-			sa = (struct sockaddr *) & ifr->ifr_data;
-			bcopy(IF_LLADDR(ifp),
-			      (caddr_t) sa->sa_data, ETHER_ADDR_LEN);
-		}
+		bcopy(IF_LLADDR(ifp), &ifr->ifr_addr.sa_data[0],
+		    ETHER_ADDR_LEN);
 		break;
 
 	case SIOCSIFMTU:

Modified: head/sys/net/if_fddisubr.c
==============================================================================
--- head/sys/net/if_fddisubr.c	Tue Mar 27 20:49:47 2018	(r331647)
+++ head/sys/net/if_fddisubr.c	Tue Mar 27 20:51:49 2018	(r331648)
@@ -558,14 +558,9 @@ fddi_ioctl (ifp, command, data)
 			break;
 		}
 		break;
-	case SIOCGIFADDR: {
-			struct sockaddr *sa;
-
-			sa = (struct sockaddr *) & ifr->ifr_data;
-			bcopy(IF_LLADDR(ifp),
-			      (caddr_t) sa->sa_data, FDDI_ADDR_LEN);
-
-		}
+	case SIOCGIFADDR:
+		bcopy(IF_LLADDR(ifp), &ifr->ifr_addr.sa_data[0],
+		    FDDI_ADDR_LEN);
 		break;
 	case SIOCSIFMTU:
 		/*

Modified: head/sys/net/if_fwsubr.c
==============================================================================
--- head/sys/net/if_fwsubr.c	Tue Mar 27 20:49:47 2018	(r331647)
+++ head/sys/net/if_fwsubr.c	Tue Mar 27 20:51:49 2018	(r331648)
@@ -662,13 +662,8 @@ firewire_ioctl(struct ifnet *ifp, u_long command, cadd
 		break;
 
 	case SIOCGIFADDR:
-		{
-			struct sockaddr *sa;
-
-			sa = (struct sockaddr *) & ifr->ifr_data;
-			bcopy(&IFP2FWC(ifp)->fc_hwaddr,
-			    (caddr_t) sa->sa_data, sizeof(struct fw_hwaddr));
-		}
+		bcopy(&IFP2FWC(ifp)->fc_hwaddr, &ifr->ifr_addr.sa_data[0],
+		    sizeof(struct fw_hwaddr));
 		break;
 
 	case SIOCSIFMTU:

Modified: head/sys/net/if_iso88025subr.c
==============================================================================
--- head/sys/net/if_iso88025subr.c	Tue Mar 27 20:49:47 2018	(r331647)
+++ head/sys/net/if_iso88025subr.c	Tue Mar 27 20:51:49 2018	(r331648)
@@ -173,13 +173,9 @@ iso88025_ioctl(struct ifnet *ifp, u_long command, cadd
                 }
                 break;
 
-        case SIOCGIFADDR: {
-                        struct sockaddr *sa;
-
-                        sa = (struct sockaddr *) & ifr->ifr_data;
-                        bcopy(IF_LLADDR(ifp),
-                              (caddr_t) sa->sa_data, ISO88025_ADDR_LEN);
-                }
+        case SIOCGIFADDR:
+		bcopy(IF_LLADDR(ifp), &ifr->ifr_addr.sa_data[0],
+		    ISO88025_ADDR_LEN);
                 break;
 
         case SIOCSIFMTU:

Modified: head/sys/net/if_vlan.c
==============================================================================
--- head/sys/net/if_vlan.c	Tue Mar 27 20:49:47 2018	(r331647)
+++ head/sys/net/if_vlan.c	Tue Mar 27 20:51:49 2018	(r331648)
@@ -1790,12 +1790,8 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data
 #endif
 		break;
 	case SIOCGIFADDR:
-                {
-			struct sockaddr *sa;
-
-			sa = (struct sockaddr *)&ifr->ifr_data;
-			bcopy(IF_LLADDR(ifp), sa->sa_data, ifp->if_addrlen);
-                }
+		bcopy(IF_LLADDR(ifp), &ifr->ifr_addr.sa_data[0],
+		    ifp->if_addrlen);
 		break;
 	case SIOCGIFMEDIA:
 		VLAN_SLOCK();

Modified: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
==============================================================================
--- head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c	Tue Mar 27 20:49:47 2018	(r331647)
+++ head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c	Tue Mar 27 20:51:49 2018	(r331648)
@@ -320,13 +320,8 @@ ipoib_ioctl(struct ifnet *ifp, u_long command, caddr_t
 		break;
 
 	case SIOCGIFADDR:
-		{
-			struct sockaddr *sa;
-
-			sa = (struct sockaddr *) & ifr->ifr_data;
-			bcopy(IF_LLADDR(ifp),
-			      (caddr_t) sa->sa_data, INFINIBAND_ALEN);
-		}
+		bcopy(IF_LLADDR(ifp), &ifr->ifr_addr.sa_data[0],
+		    INFINIBAND_ALEN);
 		break;
 
 	case SIOCSIFMTU:

From owner-svn-src-all@freebsd.org  Tue Mar 27 20:54:59 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DCA64F5AD5A;
 Tue, 27 Mar 2018 20:54:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 83B6D803CE;
 Tue, 27 Mar 2018 20:54:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7EA4A214C2;
 Tue, 27 Mar 2018 20:54:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RKswd9068542;
 Tue, 27 Mar 2018 20:54:58 GMT (envelope-from jhb@FreeBSD.org)
Received: (from jhb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RKsvam068536;
 Tue, 27 Mar 2018 20:54:57 GMT (envelope-from jhb@FreeBSD.org)
Message-Id: <201803272054.w2RKsvam068536@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org
 using -f
From: John Baldwin 
Date: Tue, 27 Mar 2018 20:54:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331649 - in head/sys/dev/cxgbe: cxgbei tom
X-SVN-Group: head
X-SVN-Commit-Author: jhb
X-SVN-Commit-Paths: in head/sys/dev/cxgbe: cxgbei tom
X-SVN-Commit-Revision: 331649
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 20:54:59 -0000

Author: jhb
Date: Tue Mar 27 20:54:57 2018
New Revision: 331649
URL: https://svnweb.freebsd.org/changeset/base/331649

Log:
  Use the offload transmit queue to set flags on TLS connections.
  
  Requests to modify the state of TLS connections need to be sent on the
  same queue as TLS record transmit requests to ensure ordering.
  
  However, in order to use the offload transmit queue in t4_set_tcb_field(),
  the function needs to be updated to do proper flow control / credit
  management when queueing a request to an offload queue.  This required
  passing a pointer to the toepcb itself to this function, so while here
  remove the 'tid' and 'iqid' parameters and obtain those values from the
  toepcb in t4_set_tcb_field() itself.
  
  Submitted by:	Harsh Jain @ Chelsio (original version)
  Reviewed by:	np
  Sponsored by:	Chelsio Communications
  Differential Revision:	https://reviews.freebsd.org/D14871

Modified:
  head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c
  head/sys/dev/cxgbe/tom/t4_cpl_io.c
  head/sys/dev/cxgbe/tom/t4_ddp.c
  head/sys/dev/cxgbe/tom/t4_tls.c
  head/sys/dev/cxgbe/tom/t4_tom.c
  head/sys/dev/cxgbe/tom/t4_tom.h

Modified: head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c
==============================================================================
--- head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c	Tue Mar 27 20:51:49 2018	(r331648)
+++ head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c	Tue Mar 27 20:54:57 2018	(r331649)
@@ -589,9 +589,9 @@ set_ulp_mode_iscsi(struct adapter *sc, struct toepcb *
 	CTR4(KTR_CXGBE, "%s: tid %u, ULP_MODE_ISCSI, CRC hdr=%d data=%d",
 	    __func__, toep->tid, hcrc, dcrc);
 
-	t4_set_tcb_field(sc, toep->ctrlq, toep->tid, W_TCB_ULP_TYPE,
+	t4_set_tcb_field(sc, toep->ctrlq, toep, W_TCB_ULP_TYPE,
 	    V_TCB_ULP_TYPE(M_TCB_ULP_TYPE) | V_TCB_ULP_RAW(M_TCB_ULP_RAW), val,
-	    0, 0, toep->ofld_rxq->iq.abs_id);
+	    0, 0);
 }
 
 /*

Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c
==============================================================================
--- head/sys/dev/cxgbe/tom/t4_cpl_io.c	Tue Mar 27 20:51:49 2018	(r331648)
+++ head/sys/dev/cxgbe/tom/t4_cpl_io.c	Tue Mar 27 20:54:57 2018	(r331649)
@@ -1934,14 +1934,14 @@ do_set_tcb_rpl(struct sge_iq *iq, const struct rss_hea
 }
 
 void
-t4_set_tcb_field(struct adapter *sc, struct sge_wrq *wrq, int tid,
-    uint16_t word, uint64_t mask, uint64_t val, int reply, int cookie, int iqid)
+t4_set_tcb_field(struct adapter *sc, struct sge_wrq *wrq, struct toepcb *toep,
+    uint16_t word, uint64_t mask, uint64_t val, int reply, int cookie)
 {
 	struct wrqe *wr;
 	struct cpl_set_tcb_field *req;
+	struct ofld_tx_sdesc *txsd;
 
 	MPASS((cookie & ~M_COOKIE) == 0);
-	MPASS((iqid & ~M_QUEUENO) == 0);
 
 	wr = alloc_wrqe(sizeof(*req), wrq);
 	if (wr == NULL) {
@@ -1950,13 +1950,26 @@ t4_set_tcb_field(struct adapter *sc, struct sge_wrq *w
 	}
 	req = wrtod(wr);
 
-	INIT_TP_WR_MIT_CPL(req, CPL_SET_TCB_FIELD, tid);
-	req->reply_ctrl = htobe16(V_QUEUENO(iqid));
+	INIT_TP_WR_MIT_CPL(req, CPL_SET_TCB_FIELD, toep->tid);
+	req->reply_ctrl = htobe16(V_QUEUENO(toep->ofld_rxq->iq.abs_id));
 	if (reply == 0)
 		req->reply_ctrl |= htobe16(F_NO_REPLY);
 	req->word_cookie = htobe16(V_WORD(word) | V_COOKIE(cookie));
 	req->mask = htobe64(mask);
 	req->val = htobe64(val);
+	if ((wrq->eq.flags & EQ_TYPEMASK) == EQ_OFLD) {
+		txsd = &toep->txsd[toep->txsd_pidx];
+		txsd->tx_credits = howmany(sizeof(*req), 16);
+		txsd->plen = 0;
+		KASSERT(toep->tx_credits >= txsd->tx_credits &&
+		    toep->txsd_avail > 0,
+		    ("%s: not enough credits (%d)", __func__,
+		    toep->tx_credits));
+		toep->tx_credits -= txsd->tx_credits;
+		if (__predict_false(++toep->txsd_pidx == toep->txsd_total))
+			toep->txsd_pidx = 0;
+		toep->txsd_avail--;
+	}
 
 	t4_wrq_tx(sc, wr);
 }

Modified: head/sys/dev/cxgbe/tom/t4_ddp.c
==============================================================================
--- head/sys/dev/cxgbe/tom/t4_ddp.c	Tue Mar 27 20:51:49 2018	(r331648)
+++ head/sys/dev/cxgbe/tom/t4_ddp.c	Tue Mar 27 20:54:57 2018	(r331649)
@@ -811,14 +811,13 @@ enable_ddp(struct adapter *sc, struct toepcb *toep)
 
 	DDP_ASSERT_LOCKED(toep);
 	toep->ddp.flags |= DDP_SC_REQ;
-	t4_set_tcb_field(sc, toep->ctrlq, toep->tid, W_TCB_RX_DDP_FLAGS,
+	t4_set_tcb_field(sc, toep->ctrlq, toep, W_TCB_RX_DDP_FLAGS,
 	    V_TF_DDP_OFF(1) | V_TF_DDP_INDICATE_OUT(1) |
 	    V_TF_DDP_BUF0_INDICATE(1) | V_TF_DDP_BUF1_INDICATE(1) |
 	    V_TF_DDP_BUF0_VALID(1) | V_TF_DDP_BUF1_VALID(1),
-	    V_TF_DDP_BUF0_INDICATE(1) | V_TF_DDP_BUF1_INDICATE(1), 0, 0,
-	    toep->ofld_rxq->iq.abs_id);
-	t4_set_tcb_field(sc, toep->ctrlq, toep->tid, W_TCB_T_FLAGS,
-	    V_TF_RCV_COALESCE_ENABLE(1), 0, 0, 0, toep->ofld_rxq->iq.abs_id);
+	    V_TF_DDP_BUF0_INDICATE(1) | V_TF_DDP_BUF1_INDICATE(1), 0, 0);
+	t4_set_tcb_field(sc, toep->ctrlq, toep, W_TCB_T_FLAGS,
+	    V_TF_RCV_COALESCE_ENABLE(1), 0, 0, 0);
 }
 
 static int
@@ -1868,10 +1867,9 @@ t4_aio_cancel_active(struct kaiocb *job)
 			 */
 			valid_flag = i == 0 ? V_TF_DDP_BUF0_VALID(1) :
 			    V_TF_DDP_BUF1_VALID(1);
-			t4_set_tcb_field(sc, toep->ctrlq, toep->tid,
+			t4_set_tcb_field(sc, toep->ctrlq, toep,
 			    W_TCB_RX_DDP_FLAGS, valid_flag, 0, 1,
-			    i + DDP_BUF0_INVALIDATED,
-			    toep->ofld_rxq->iq.abs_id);
+			    i + DDP_BUF0_INVALIDATED);
 			toep->ddp.db[i].cancel_pending = 1;
 			CTR2(KTR_CXGBE, "%s: request %p marked pending",
 			    __func__, job);

Modified: head/sys/dev/cxgbe/tom/t4_tls.c
==============================================================================
--- head/sys/dev/cxgbe/tom/t4_tls.c	Tue Mar 27 20:51:49 2018	(r331648)
+++ head/sys/dev/cxgbe/tom/t4_tls.c	Tue Mar 27 20:54:57 2018	(r331649)
@@ -68,8 +68,7 @@ t4_set_tls_tcb_field(struct toepcb *toep, uint16_t wor
 {
 	struct adapter *sc = td_adapter(toep->td);
 
-	t4_set_tcb_field(sc, toep->ctrlq, toep->tid, word, mask, val, 0, 0,
-	    toep->ofld_rxq->iq.abs_id);
+	t4_set_tcb_field(sc, toep->ofld_txq, toep, word, mask, val, 0, 0);
 }
 
 /* TLS and DTLS common routines */

Modified: head/sys/dev/cxgbe/tom/t4_tom.c
==============================================================================
--- head/sys/dev/cxgbe/tom/t4_tom.c	Tue Mar 27 20:51:49 2018	(r331648)
+++ head/sys/dev/cxgbe/tom/t4_tom.c	Tue Mar 27 20:54:57 2018	(r331649)
@@ -392,9 +392,9 @@ t4_ctloutput(struct toedev *tod, struct tcpcb *tp, int
 	case TCP_NODELAY:
 		if (tp->t_state != TCPS_ESTABLISHED)
 			break;
-		t4_set_tcb_field(sc, toep->ctrlq, toep->tid, W_TCB_T_FLAGS,
+		t4_set_tcb_field(sc, toep->ctrlq, toep, W_TCB_T_FLAGS,
 		    V_TF_NAGLE(1), V_TF_NAGLE(tp->t_flags & TF_NODELAY ? 0 : 1),
-		    0, 0, toep->ofld_rxq->iq.abs_id);
+		    0, 0);
 		break;
 	default:
 		break;

Modified: head/sys/dev/cxgbe/tom/t4_tom.h
==============================================================================
--- head/sys/dev/cxgbe/tom/t4_tom.h	Tue Mar 27 20:51:49 2018	(r331648)
+++ head/sys/dev/cxgbe/tom/t4_tom.h	Tue Mar 27 20:54:57 2018	(r331649)
@@ -384,8 +384,8 @@ void t4_rcvd_locked(struct toedev *, struct tcpcb *);
 int t4_tod_output(struct toedev *, struct tcpcb *);
 int t4_send_fin(struct toedev *, struct tcpcb *);
 int t4_send_rst(struct toedev *, struct tcpcb *);
-void t4_set_tcb_field(struct adapter *, struct sge_wrq *, int, uint16_t,
-    uint64_t, uint64_t, int, int, int);
+void t4_set_tcb_field(struct adapter *, struct sge_wrq *, struct toepcb *,
+    uint16_t, uint64_t, uint64_t, int, int);
 void t4_push_frames(struct adapter *sc, struct toepcb *toep, int drop);
 void t4_push_pdus(struct adapter *sc, struct toepcb *toep, int drop);
 int do_set_tcb_rpl(struct sge_iq *, const struct rss_header *, struct mbuf *);

From owner-svn-src-all@freebsd.org  Tue Mar 27 20:57:09 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4C1D9F5B1FA;
 Tue, 27 Mar 2018 20:57:09 +0000 (UTC)
 (envelope-from brooks@spindle.one-eyed-alien.net)
Received: from spindle.one-eyed-alien.net (spindle.one-eyed-alien.net
 [199.48.129.229])
 (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 07A1A807B7;
 Tue, 27 Mar 2018 20:57:08 +0000 (UTC)
 (envelope-from brooks@spindle.one-eyed-alien.net)
Received: by spindle.one-eyed-alien.net (Postfix, from userid 3001)
 id 323795A9F17; Tue, 27 Mar 2018 20:57:08 +0000 (UTC)
Date: Tue, 27 Mar 2018 20:57:08 +0000
From: Brooks Davis 
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: Re: svn commit: r331648 - in head/sys: net
 ofed/drivers/infiniband/ulp/ipoib
Message-ID: <20180327205708.GA86145@spindle.one-eyed-alien.net>
References: <201803272051.w2RKpnYT064723@repo.freebsd.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
 protocol="application/pgp-signature"; boundary="5vNYLRcllDrimb99"
Content-Disposition: inline
In-Reply-To: <201803272051.w2RKpnYT064723@repo.freebsd.org>
User-Agent: Mutt/1.9.4 (2018-02-28)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 20:57:09 -0000


--5vNYLRcllDrimb99
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Mar 27, 2018 at 08:51:49PM +0000, Brooks Davis wrote:
> Author: brooks
> Date: Tue Mar 27 20:51:49 2018
> New Revision: 331648
> URL: https://svnweb.freebsd.org/changeset/base/331648
>=20
> Log:
>   Improve copy-and-pasted versions of SIOCGIFADDR.
>  =20
>   The original implementation used a reference to ifr_data and a cast to
>   do the equivalent of accessing ifr_addr. This was copied multiple
>   times since 1996.
>  =20
>   Approved by:	kib

Should have been "Reviewed by".

-- Brooks

--5vNYLRcllDrimb99
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBAgAGBQJaurAjAAoJEKzQXbSebgfAxxUIAJ3HvLO4JbQl3JgGw0GSPQy4
kzQXOUJmcjpnXWcqAtRz9QXDn+vWqZqhPjyhWI/x4PmBS9oxbavITP02wTjaXEBv
O8GWJPsTkSx3ZlEgJbulLU7JGd2Yh+YULr/wivJXsthUVvPf9gM5uJ29Xowq/sFz
jlqvg1BrWvYpau9Ytv4ekFKLcOox7qHOI9bJRwhOjAHL4aWMPiShgS4gTnppWSLV
FWVL4yweqREO3GOH8PGeZd9b7i2QajdZZrqF0JBq2Srw425vQ7ou6BlPgpQXKsHs
pv40avAQUke+W2c22svzDCbLePKEDVq30O4iZEBKoaDmR1IQ8Le8kD/X/nme9Wg=
=5WRW
-----END PGP SIGNATURE-----

--5vNYLRcllDrimb99--

From owner-svn-src-all@freebsd.org  Tue Mar 27 20:57:53 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 56383F5B3DF;
 Tue, 27 Mar 2018 20:57:53 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 0163880995;
 Tue, 27 Mar 2018 20:57:53 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F0769214CC;
 Tue, 27 Mar 2018 20:57:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RKvqHc068839;
 Tue, 27 Mar 2018 20:57:52 GMT (envelope-from jhb@FreeBSD.org)
Received: (from jhb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RKvpRO068828;
 Tue, 27 Mar 2018 20:57:51 GMT (envelope-from jhb@FreeBSD.org)
Message-Id: <201803272057.w2RKvpRO068828@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org
 using -f
From: John Baldwin 
Date: Tue, 27 Mar 2018 20:57:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331650 - in head/sys: amd64/amd64 amd64/ia32 amd64/linux
 amd64/linux32 cddl/contrib/opensolaris/uts/intel/dtrace cddl/dev/dtrace/amd64
 cddl/dev/dtrace/i386 i386/i386 i386/linux x86/inc...
X-SVN-Group: head
X-SVN-Commit-Author: jhb
X-SVN-Commit-Paths: in head/sys: amd64/amd64 amd64/ia32 amd64/linux
 amd64/linux32 cddl/contrib/opensolaris/uts/intel/dtrace cddl/dev/dtrace/amd64
 cddl/dev/dtrace/i386 i386/i386 i386/linux x86/include
X-SVN-Commit-Revision: 331650
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 20:57:53 -0000

Author: jhb
Date: Tue Mar 27 20:57:51 2018
New Revision: 331650
URL: https://svnweb.freebsd.org/changeset/base/331650

Log:
  Remove very old and unused signal information codes.
  
  These have been supplanted by the MI signal information codes in
   since 7.0.  The FPE_*_TRAP ones were deprecated even
  earlier in 1999.
  
  PR:		226579 (exp-run)
  Reviewed by:	kib
  Differential Revision:	https://reviews.freebsd.org/D14637

Modified:
  head/sys/amd64/amd64/trap.c
  head/sys/amd64/ia32/ia32_signal.c
  head/sys/amd64/linux/linux_sysvec.c
  head/sys/amd64/linux32/linux32_sysvec.c
  head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
  head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
  head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
  head/sys/i386/i386/trap.c
  head/sys/i386/linux/linux_sysvec.c
  head/sys/x86/include/signal.h
  head/sys/x86/include/trap.h

Modified: head/sys/amd64/amd64/trap.c
==============================================================================
--- head/sys/amd64/amd64/trap.c	Tue Mar 27 20:54:57 2018	(r331649)
+++ head/sys/amd64/amd64/trap.c	Tue Mar 27 20:57:51 2018	(r331650)
@@ -95,6 +95,7 @@ PMC_SOFT_DEFINE( , , page_fault, write);
 #include 
 #endif
 #include 
+#include 
 #include 
 
 #ifdef KDTRACE_HOOKS
@@ -338,14 +339,14 @@ trap(struct trapframe *frame)
 					ucode = SEGV_ACCERR;
 				} else {
 					signo = SIGBUS;
-					ucode = BUS_PAGE_FAULT;
+					ucode = T_PAGEFLT;
 				}
 			} else if (prot_fault_translation == 1) {
 				/*
 				 * Always compat mode.
 				 */
 				signo = SIGBUS;
-				ucode = BUS_PAGE_FAULT;
+				ucode = T_PAGEFLT;
 			} else {
 				/*
 				 * Always SIGSEGV mode.

Modified: head/sys/amd64/ia32/ia32_signal.c
==============================================================================
--- head/sys/amd64/ia32/ia32_signal.c	Tue Mar 27 20:54:57 2018	(r331649)
+++ head/sys/amd64/ia32/ia32_signal.c	Tue Mar 27 20:57:51 2018	(r331650)
@@ -82,6 +82,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 #ifdef COMPAT_FREEBSD4
 static void freebsd4_ia32_sendsig(sig_t, ksiginfo_t *, sigset_t *);

Modified: head/sys/amd64/linux/linux_sysvec.c
==============================================================================
--- head/sys/amd64/linux/linux_sysvec.c	Tue Mar 27 20:54:57 2018	(r331649)
+++ head/sys/amd64/linux/linux_sysvec.c	Tue Mar 27 20:57:51 2018	(r331650)
@@ -72,6 +72,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 

Modified: head/sys/amd64/linux32/linux32_sysvec.c
==============================================================================
--- head/sys/amd64/linux32/linux32_sysvec.c	Tue Mar 27 20:54:57 2018	(r331649)
+++ head/sys/amd64/linux32/linux32_sysvec.c	Tue Mar 27 20:57:51 2018	(r331650)
@@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 

Modified: head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c	Tue Mar 27 20:54:57 2018	(r331649)
+++ head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c	Tue Mar 27 20:57:51 2018	(r331650)
@@ -52,6 +52,7 @@
 #include 
 #include 
 #include 
+#include 
 #endif
 #include 
 #ifdef illumos

Modified: head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
==============================================================================
--- head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c	Tue Mar 27 20:54:57 2018	(r331649)
+++ head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c	Tue Mar 27 20:57:51 2018	(r331650)
@@ -44,6 +44,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 
 extern void dtrace_getnanotime(struct timespec *tsp);

Modified: head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
==============================================================================
--- head/sys/cddl/dev/dtrace/i386/dtrace_subr.c	Tue Mar 27 20:54:57 2018	(r331649)
+++ head/sys/cddl/dev/dtrace/i386/dtrace_subr.c	Tue Mar 27 20:57:51 2018	(r331650)
@@ -45,6 +45,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 
 extern uintptr_t 	kernelbase;

Modified: head/sys/i386/i386/trap.c
==============================================================================
--- head/sys/i386/i386/trap.c	Tue Mar 27 20:54:57 2018	(r331649)
+++ head/sys/i386/i386/trap.c	Tue Mar 27 20:57:51 2018	(r331650)
@@ -97,6 +97,7 @@ PMC_SOFT_DEFINE( , , page_fault, write);
 #include 
 #endif
 #include 
+#include 
 #include 
 #include 
 
@@ -416,14 +417,14 @@ user_trctrap_out:
 					ucode = SEGV_ACCERR;
 				} else {
 					signo = SIGBUS;
-					ucode = BUS_PAGE_FAULT;
+					ucode = T_PAGEFLT;
 				}
 			} else if (prot_fault_translation == 1) {
 				/*
 				 * Always compat mode.
 				 */
 				signo = SIGBUS;
-				ucode = BUS_PAGE_FAULT;
+				ucode = T_PAGEFLT;
 			} else {
 				/*
 				 * Always SIGSEGV mode.

Modified: head/sys/i386/linux/linux_sysvec.c
==============================================================================
--- head/sys/i386/linux/linux_sysvec.c	Tue Mar 27 20:54:57 2018	(r331649)
+++ head/sys/i386/linux/linux_sysvec.c	Tue Mar 27 20:57:51 2018	(r331650)
@@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 

Modified: head/sys/x86/include/signal.h
==============================================================================
--- head/sys/x86/include/signal.h	Tue Mar 27 20:54:57 2018	(r331649)
+++ head/sys/x86/include/signal.h	Tue Mar 27 20:57:51 2018	(r331650)
@@ -43,10 +43,6 @@
 #include 
 #include 
 
-#if __BSD_VISIBLE
-#include 	/* codes for SIGILL, SIGFPE */
-#endif
-
 #ifdef __i386__
 typedef int sig_atomic_t;
 

Modified: head/sys/x86/include/trap.h
==============================================================================
--- head/sys/x86/include/trap.h	Tue Mar 27 20:54:57 2018	(r331649)
+++ head/sys/x86/include/trap.h	Tue Mar 27 20:57:51 2018	(r331650)
@@ -66,30 +66,6 @@
 #define	T_RESERVED	30	/* reserved (unknown) */
 #define	T_DTRACE_RET	32	/* DTrace pid return */
 
-/* XXX most of the following codes aren't used, but could be. */
-
-/* definitions for  */
-#define	    ILL_RESAD_FAULT	T_RESADFLT
-#define	    ILL_PRIVIN_FAULT	T_PRIVINFLT
-#define	    ILL_RESOP_FAULT	T_RESOPFLT
-#define	    ILL_ALIGN_FAULT	T_ALIGNFLT
-#define	    ILL_FPOP_FAULT	T_FPOPFLT	/* coprocessor operand fault */
-
-/* old FreeBSD macros, deprecated */
-#define	FPE_INTOVF_TRAP	0x1	/* integer overflow */
-#define	FPE_INTDIV_TRAP	0x2	/* integer divide by zero */
-#define	FPE_FLTDIV_TRAP	0x3	/* floating/decimal divide by zero */
-#define	FPE_FLTOVF_TRAP	0x4	/* floating overflow */
-#define	FPE_FLTUND_TRAP	0x5	/* floating underflow */
-#define	FPE_FPU_NP_TRAP	0x6	/* floating point unit not present  */
-#define	FPE_SUBRNG_TRAP	0x7	/* subrange out of bounds */
-
-/* codes for SIGBUS */
-#define	    BUS_PAGE_FAULT	T_PAGEFLT	/* page fault protection base */
-#define	    BUS_SEGNP_FAULT	T_SEGNPFLT	/* segment not present */
-#define	    BUS_STK_FAULT	T_STKFLT	/* stack segment */
-#define	    BUS_SEGM_FAULT	T_RESERVED	/* segment protection base */
-
 /* Trap's coming from user mode */
 #define	T_USER	0x100
 

From owner-svn-src-all@freebsd.org  Tue Mar 27 21:03:30 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 954ECF5BD62;
 Tue, 27 Mar 2018 21:03:30 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4858480F89;
 Tue, 27 Mar 2018 21:03:30 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 42FD421681;
 Tue, 27 Mar 2018 21:03:30 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RL3Uue073474;
 Tue, 27 Mar 2018 21:03:30 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RL3UEi073473;
 Tue, 27 Mar 2018 21:03:30 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803272103.w2RL3UEi073473@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 21:03:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331651 - head/sys/dev/sbni
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: head/sys/dev/sbni
X-SVN-Commit-Revision: 331651
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 21:03:30 -0000

Author: brooks
Date: Tue Mar 27 21:03:29 2018
New Revision: 331651
URL: https://svnweb.freebsd.org/changeset/base/331651

Log:
  Copy flags over ifr_union directly rather than via casts through ifr_data.
  
  No functional change in practice.  If the sbni driver supported
  64-bit big-endian system, this would be an ABI changes, but it is
  i386-only.  The old version leaked a word of stack on 64-bit systems.
  
  This eliminates the only assignment to ifr_data.

Modified:
  head/sys/dev/sbni/if_sbni.c

Modified: head/sys/dev/sbni/if_sbni.c
==============================================================================
--- head/sys/dev/sbni/if_sbni.c	Tue Mar 27 20:57:51 2018	(r331650)
+++ head/sys/dev/sbni/if_sbni.c	Tue Mar 27 21:03:29 2018	(r331651)
@@ -1144,7 +1144,7 @@ sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t 
 		flags.fixed_rxl = (sc->delta_rxl == 0);
 		flags.fixed_rate = 1;
 		SBNI_UNLOCK(sc);
-		ifr->ifr_data = *(caddr_t*) &flags;
+		bcopy(&flags, &ifr->ifr_ifru, sizeof(flags));
 		break;
 
 	case SIOCGINSTATS:
@@ -1163,7 +1163,7 @@ sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t 
 		error = priv_check(td, PRIV_DRIVER);
 		if (error)
 			break;
-		flags = *(struct sbni_flags*)&ifr->ifr_data;
+		bcopy(&ifr->ifr_ifru, &flags, sizeof(flags));
 		SBNI_LOCK(sc);
 		if (flags.fixed_rxl) {
 			sc->delta_rxl = 0;

From owner-svn-src-all@freebsd.org  Tue Mar 27 21:04:55 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45DB8F5BF76;
 Tue, 27 Mar 2018 21:04:55 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EF8C081156;
 Tue, 27 Mar 2018 21:04:54 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EA79721684;
 Tue, 27 Mar 2018 21:04:54 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RL4sXU073572;
 Tue, 27 Mar 2018 21:04:54 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RL4si5073571;
 Tue, 27 Mar 2018 21:04:54 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803272104.w2RL4si5073571@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 21:04:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331652 - head/sys/dev/sbni
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: head/sys/dev/sbni
X-SVN-Commit-Revision: 331652
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 21:04:55 -0000

Author: brooks
Date: Tue Mar 27 21:04:54 2018
New Revision: 331652
URL: https://svnweb.freebsd.org/changeset/base/331652

Log:
  Revert r331651 to recommit with proper commit metadata.

Modified:
  head/sys/dev/sbni/if_sbni.c

Modified: head/sys/dev/sbni/if_sbni.c
==============================================================================
--- head/sys/dev/sbni/if_sbni.c	Tue Mar 27 21:03:29 2018	(r331651)
+++ head/sys/dev/sbni/if_sbni.c	Tue Mar 27 21:04:54 2018	(r331652)
@@ -1144,7 +1144,7 @@ sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t 
 		flags.fixed_rxl = (sc->delta_rxl == 0);
 		flags.fixed_rate = 1;
 		SBNI_UNLOCK(sc);
-		bcopy(&flags, &ifr->ifr_ifru, sizeof(flags));
+		ifr->ifr_data = *(caddr_t*) &flags;
 		break;
 
 	case SIOCGINSTATS:
@@ -1163,7 +1163,7 @@ sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t 
 		error = priv_check(td, PRIV_DRIVER);
 		if (error)
 			break;
-		bcopy(&ifr->ifr_ifru, &flags, sizeof(flags));
+		flags = *(struct sbni_flags*)&ifr->ifr_data;
 		SBNI_LOCK(sc);
 		if (flags.fixed_rxl) {
 			sc->delta_rxl = 0;

From owner-svn-src-all@freebsd.org  Tue Mar 27 21:06:19 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3F6A3F5C2F1;
 Tue, 27 Mar 2018 21:06:19 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 0B56A815BE;
 Tue, 27 Mar 2018 21:06:19 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0572F2168B;
 Tue, 27 Mar 2018 21:06:19 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RL6Igl074028;
 Tue, 27 Mar 2018 21:06:18 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RL6In2074027;
 Tue, 27 Mar 2018 21:06:18 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803272106.w2RL6In2074027@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 21:06:18 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331653 - head/sys/dev/sbni
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: head/sys/dev/sbni
X-SVN-Commit-Revision: 331653
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 21:06:19 -0000

Author: brooks
Date: Tue Mar 27 21:06:18 2018
New Revision: 331653
URL: https://svnweb.freebsd.org/changeset/base/331653

Log:
  Copy flags over ifr_union directly rather than via casts through ifr_data.
  
  No functional change in practice.  If the sbni driver supported
  64-bit big-endian system, this would be an ABI changes, but it is
  i386-only.  The old version leaked a word of stack on 64-bit systems.
  
  This eliminates the only assignment to ifr_data.
  
  Reviewed by:	kib
  MFC after:	1 week
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14874

Modified:
  head/sys/dev/sbni/if_sbni.c

Modified: head/sys/dev/sbni/if_sbni.c
==============================================================================
--- head/sys/dev/sbni/if_sbni.c	Tue Mar 27 21:04:54 2018	(r331652)
+++ head/sys/dev/sbni/if_sbni.c	Tue Mar 27 21:06:18 2018	(r331653)
@@ -1144,7 +1144,7 @@ sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t 
 		flags.fixed_rxl = (sc->delta_rxl == 0);
 		flags.fixed_rate = 1;
 		SBNI_UNLOCK(sc);
-		ifr->ifr_data = *(caddr_t*) &flags;
+		bcopy(&flags, &ifr->ifr_ifru, sizeof(flags));
 		break;
 
 	case SIOCGINSTATS:
@@ -1163,7 +1163,7 @@ sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t 
 		error = priv_check(td, PRIV_DRIVER);
 		if (error)
 			break;
-		flags = *(struct sbni_flags*)&ifr->ifr_data;
+		bcopy(&ifr->ifr_ifru, &flags, sizeof(flags));
 		SBNI_LOCK(sc);
 		if (flags.fixed_rxl) {
 			sc->delta_rxl = 0;

From owner-svn-src-all@freebsd.org  Tue Mar 27 21:08:33 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A8CAAF5C740
 for ;
 Tue, 27 Mar 2018 21:08:32 +0000 (UTC)
 (envelope-from jroberson@jroberson.net)
Received: from mail-pf0-x244.google.com (mail-pf0-x244.google.com
 [IPv6:2607:f8b0:400e:c00::244])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 251D7819F6
 for ; Tue, 27 Mar 2018 21:08:32 +0000 (UTC)
 (envelope-from jroberson@jroberson.net)
Received: by mail-pf0-x244.google.com with SMTP id t16so116872pfh.4
 for ; Tue, 27 Mar 2018 14:08:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=jroberson-net.20150623.gappssmtp.com; s=20150623;
 h=date:from:to:cc:subject:in-reply-to:message-id:references
 :user-agent:mime-version;
 bh=ZGTFRbtefuo6k7GJJOve95zH2Qhww/RgInb0LWS6Oug=;
 b=0MTM/4aY+M37cVWksjW1OfHiNNzUxjUa3N7zWEq+4KS8CjLlYP2bTaMeklVk7cjWHO
 lC+BuHC7tMbFeF1MjFuy5S265vLNrodgatSHyoH6K842xfgOPjJxGgiMpr2OuKL0vt7O
 gHAVuACqmNrH3fgj5u4vs+RgrJiXexPbXPIaQQkPteHbuk3csRRMulh5Qfey2rvzktZk
 ipNsERJOKLUkCHstKPZDjvs3fwVlcbQYj2wg8+/E2mZ53q2XIp0nLEgsWLazwuI2LjmD
 z4L3FhalhLxMo6mtt4BNEI6wQc9vjiWlC63CiuRVkoHDcV/Hzhh34HeVGp9dS/tctopo
 R8nA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id
 :references:user-agent:mime-version;
 bh=ZGTFRbtefuo6k7GJJOve95zH2Qhww/RgInb0LWS6Oug=;
 b=DDntM70rL+T7ZSYEyzW8KpAzcJm89knUf9OCpJ0esqpf+AFpwA7n634Y0YECkCQiYb
 VgBMI9pkNwZ8JmSmIygFs5fP3JP2ArFMQcMieDKHcEkjIduun5Ct1pIzDHSsqcyE+mfW
 +lRUHiqwt2K7+qKIrsAr9f3ZqeSSmzm2hSMYtjJ3igPahktk8rEb22KuyU+7IefA8iPg
 cDtYdel/Z+azIw2+rKPbxKqgf5OaPGuYlz8NDdO5sXi6PnCf3sraHcfGfloXlVKP4Hw+
 LpdpTHXkH0v+dbAljKK7e3fIXIMKaep2TniIjS+u4btq1S+FVu0+ZJu24J+ZHLYEECy6
 btVQ==
X-Gm-Message-State: AElRT7Gc51Gk2yUR7q6SRNMDW/i1d0N9t3zIt9qTErWbcdSEByrQVFGP
 Y7rMWRnrcQnHR2y/jHgqoHDVMQ==
X-Google-Smtp-Source: AIpwx49CPjVevWUWV0E6cIPCqm+RVZMSE+Ez4LFDpjneUOIoUXU11o5YVrMI4slgM2jDMrXrzzad3g==
X-Received: by 10.101.100.203 with SMTP id t11mr585912pgv.129.1522184911122;
 Tue, 27 Mar 2018 14:08:31 -0700 (PDT)
Received: from rrcs-66-91-135-210.west.biz.rr.com
 (rrcs-66-91-135-210.west.biz.rr.com. [66.91.135.210])
 by smtp.gmail.com with ESMTPSA id x80sm4585746pfi.88.2018.03.27.14.08.29
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Tue, 27 Mar 2018 14:08:30 -0700 (PDT)
Date: Tue, 27 Mar 2018 11:07:22 -1000 (HST)
From: Jeff Roberson 
X-X-Sender: jroberson@desktop
To: Li-Wen Hsu 
cc: "O. Hartmann" , Jeff Roberson , 
 pho@freebsd.org, svn-src-head@freebsd.org, svn-src-all@freebsd.org, 
 src-committers@freebsd.org
Subject: Re: svn commit: r331606 - in head/sys: amd64/include i386/include
 x86/x86 x86/xen
In-Reply-To: <20180327101309.GA75720@freefall.freebsd.org>
Message-ID: 
References: <201803270337.w2R3b4iv035285@repo.freebsd.org>
 <20180327081535.0dacffcb@freyja.zeit4.iv.bundesimmobilien.de>
 <20180327082651.28258a8c@freyja.zeit4.iv.bundesimmobilien.de>
 
 <20180327101309.GA75720@freefall.freebsd.org>
User-Agent: Alpine 2.21 (BSF 202 2017-01-01)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="2547152148-430465068-1522184844=:2307"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 21:08:33 -0000

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--2547152148-430465068-1522184844=:2307
Content-Type: text/plain; charset=US-ASCII; format=flowed

On Tue, 27 Mar 2018, Li-Wen Hsu wrote:

> On Mon, Mar 26, 2018 at 20:35:12 -1000, Jeff Roberson wrote:
>> The patch has been on my branch for weeks and has been tested by a half
>> dozen people.  I'm sorry it does not work for you.  If you reverted 331605
>> the change that followed should not have built properly.  Did you build
>> cleanly?  Can you share your kernel config?
>>
>> I tried with and without EARLY_AP_STARTUP and with and without NUMA.  I'm
>> not having any trouble booting.  Did you make cleandepend && make depend?
>
> It also hangs in our testing system:
>
> https://ci.freebsd.org/job/FreeBSD-head-amd64-test/6817/console
> https://ci.freebsd.org/job/FreeBSD-head-i386-test/1000/console
>
> It is built cleanly and uses unmodified GENERIC config.
>
> The artifacts used are available here:
>
> https://artifact.ci.freebsd.org/snapshot/head/r331606/amd64/amd64/
> https://artifact.ci.freebsd.org/snapshot/head/r331606/i386/i386/
>
> Hope these information help.

Could someone who was experiencing the hang try the enclosed patch?  I can 
only verify that it continues to boot for me but I believe this fixes the 
bug on other systems.

I believe the issue was that cpuset_domain[0] was initialized too late on 
some systems.  It depended on what kind of hardware was present and which 
sysinit with SI_ORDER_ANY ran first.

Thanks,
Jeff

>
> Li-Wen
>
> -- 
> Li-Wen Hsu 
> https://lwhsu.org
>
--2547152148-430465068-1522184844=:2307
Content-Type: text/plain; charset=US-ASCII; name=intr.diff
Content-Transfer-Encoding: BASE64
Content-ID: 
Content-Description: 
Content-Disposition: attachment; filename=intr.diff

SW5kZXg6IGFtZDY0L2luY2x1ZGUvaW50cl9tYWNoZGVwLmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBhbWQ2NC9pbmNsdWRlL2ludHJfbWFjaGRl
cC5oCShyZXZpc2lvbiAzMzE2MTApDQorKysgYW1kNjQvaW5jbHVkZS9pbnRy
X21hY2hkZXAuaAkod29ya2luZyBjb3B5KQ0KQEAgLTEzMiw2ICsxMzIsNyBA
QCBzdHJ1Y3QgaW50c3JjIHsNCiAJdV9sb25nICppc19zdHJheWNvdW50Ow0K
IAl1X2ludCBpc19pbmRleDsNCiAJdV9pbnQgaXNfaGFuZGxlcnM7DQorCXVf
aW50IGlzX2RvbWFpbjsNCiAJdV9pbnQgaXNfY3B1Ow0KIH07DQogDQpAQCAt
MTY4LDcgKzE2OSw3IEBAIHZvaWQJaW50cl9hZGRfY3B1KHVfaW50IGNwdSk7
DQogI2VuZGlmDQogaW50CWludHJfYWRkX2hhbmRsZXIoY29uc3QgY2hhciAq
bmFtZSwgaW50IHZlY3RvciwgZHJpdmVyX2ZpbHRlcl90IGZpbHRlciwgDQog
CQkJIGRyaXZlcl9pbnRyX3QgaGFuZGxlciwgdm9pZCAqYXJnLCBlbnVtIGlu
dHJfdHlwZSBmbGFncywgDQotCQkJIHZvaWQgKipjb29raWVwKTsgICAgDQor
CQkJIHZvaWQgKipjb29raWVwLCBpbnQgZG9tYWluKTsgICAgDQogI2lmZGVm
IFNNUA0KIGludAlpbnRyX2JpbmQodV9pbnQgdmVjdG9yLCB1X2NoYXIgY3B1
KTsNCiAjZW5kaWYNCkBAIC0xNzYsNyArMTc3LDcgQEAgaW50CWludHJfY29u
ZmlnX2ludHIoaW50IHZlY3RvciwgZW51bSBpbnRyX3RyaWdnZXINCiAgICAg
ZW51bSBpbnRyX3BvbGFyaXR5IHBvbCk7DQogaW50CWludHJfZGVzY3JpYmUo
dV9pbnQgdmVjdG9yLCB2b2lkICppaCwgY29uc3QgY2hhciAqZGVzY3IpOw0K
IHZvaWQJaW50cl9leGVjdXRlX2hhbmRsZXJzKHN0cnVjdCBpbnRzcmMgKmlz
cmMsIHN0cnVjdCB0cmFwZnJhbWUgKmZyYW1lKTsNCi11X2ludAlpbnRyX25l
eHRfY3B1KHZvaWQpOw0KK3VfaW50CWludHJfbmV4dF9jcHUoaW50IGRvbWFp
bik7DQogc3RydWN0IGludHNyYyAqaW50cl9sb29rdXBfc291cmNlKGludCB2
ZWN0b3IpOw0KIGludAlpbnRyX3JlZ2lzdGVyX3BpYyhzdHJ1Y3QgcGljICpw
aWMpOw0KIGludAlpbnRyX3JlZ2lzdGVyX3NvdXJjZShzdHJ1Y3QgaW50c3Jj
ICppc3JjKTsNCkluZGV4OiBpMzg2L2luY2x1ZGUvaW50cl9tYWNoZGVwLmgN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBpMzg2L2luY2x1ZGUvaW50
cl9tYWNoZGVwLmgJKHJldmlzaW9uIDMzMTYxMCkNCisrKyBpMzg2L2luY2x1
ZGUvaW50cl9tYWNoZGVwLmgJKHdvcmtpbmcgY29weSkNCkBAIC0xMzIsNiAr
MTMyLDcgQEAgc3RydWN0IGludHNyYyB7DQogCXVfbG9uZyAqaXNfc3RyYXlj
b3VudDsNCiAJdV9pbnQgaXNfaW5kZXg7DQogCXVfaW50IGlzX2hhbmRsZXJz
Ow0KKwl1X2ludCBpc19kb21haW47DQogCXVfaW50IGlzX2NwdTsNCiB9Ow0K
IA0KQEAgLTE1OCw3ICsxNTksOCBAQCB2b2lkCWVsY3Jfd3JpdGVfdHJpZ2dl
cih1X2ludCBpcnEsIGVudW0gaW50cl90cmlnZw0KIHZvaWQJaW50cl9hZGRf
Y3B1KHVfaW50IGNwdSk7DQogI2VuZGlmDQogaW50CWludHJfYWRkX2hhbmRs
ZXIoY29uc3QgY2hhciAqbmFtZSwgaW50IHZlY3RvciwgZHJpdmVyX2ZpbHRl
cl90IGZpbHRlciwNCi0gICAgZHJpdmVyX2ludHJfdCBoYW5kbGVyLCB2b2lk
ICphcmcsIGVudW0gaW50cl90eXBlIGZsYWdzLCB2b2lkICoqY29va2llcCk7
DQorICAgIGRyaXZlcl9pbnRyX3QgaGFuZGxlciwgdm9pZCAqYXJnLCBlbnVt
IGludHJfdHlwZSBmbGFncywgdm9pZCAqKmNvb2tpZXAsDQorICAgIGludCBk
b21haW4pOw0KICNpZmRlZiBTTVANCiBpbnQJaW50cl9iaW5kKHVfaW50IHZl
Y3RvciwgdV9jaGFyIGNwdSk7DQogI2VuZGlmDQpAQCAtMTY2LDcgKzE2OCw3
IEBAIGludAlpbnRyX2NvbmZpZ19pbnRyKGludCB2ZWN0b3IsIGVudW0gaW50
cl90cmlnZ2VyDQogICAgIGVudW0gaW50cl9wb2xhcml0eSBwb2wpOw0KIGlu
dAlpbnRyX2Rlc2NyaWJlKHVfaW50IHZlY3Rvciwgdm9pZCAqaWgsIGNvbnN0
IGNoYXIgKmRlc2NyKTsNCiB2b2lkCWludHJfZXhlY3V0ZV9oYW5kbGVycyhz
dHJ1Y3QgaW50c3JjICppc3JjLCBzdHJ1Y3QgdHJhcGZyYW1lICpmcmFtZSk7
DQotdV9pbnQJaW50cl9uZXh0X2NwdSh2b2lkKTsNCit1X2ludAlpbnRyX25l
eHRfY3B1KGludCBkb21haW4pOw0KIHN0cnVjdCBpbnRzcmMgKmludHJfbG9v
a3VwX3NvdXJjZShpbnQgdmVjdG9yKTsNCiBpbnQJaW50cl9yZWdpc3Rlcl9w
aWMoc3RydWN0IHBpYyAqcGljKTsNCiBpbnQJaW50cl9yZWdpc3Rlcl9zb3Vy
Y2Uoc3RydWN0IGludHNyYyAqaXNyYyk7DQpJbmRleDoga2Vybi9rZXJuX2Nw
dXNldC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0ga2Vybi9rZXJu
X2NwdXNldC5jCShyZXZpc2lvbiAzMzE2MDQpDQorKysga2Vybi9rZXJuX2Nw
dXNldC5jCSh3b3JraW5nIGNvcHkpDQpAQCAtMTM2Myw2ICsxMzYzLDcgQEAg
Y3B1c2V0X3RocmVhZDAodm9pZCkNCiB7DQogCXN0cnVjdCBjcHVzZXQgKnNl
dDsNCiAJaW50IGVycm9yOw0KKwlpbnQgaTsNCiANCiAJY3B1c2V0X3pvbmUg
PSB1bWFfemNyZWF0ZSgiY3B1c2V0Iiwgc2l6ZW9mKHN0cnVjdCBjcHVzZXQp
LCBOVUxMLCBOVUxMLA0KIAkgICAgTlVMTCwgTlVMTCwgVU1BX0FMSUdOX1BU
UiwgMCk7DQpAQCAtMTM3NCwxMSArMTM3NSwxMSBAQCBjcHVzZXRfdGhyZWFk
MCh2b2lkKQ0KIAkgKiBjcHVzZXRfY3JlYXRlKCkgZHVlIHRvIE5VTEwgcGFy
ZW50Lg0KIAkgKi8NCiAJc2V0ID0gdW1hX3phbGxvYyhjcHVzZXRfem9uZSwg
TV9XQUlUT0sgfCBNX1pFUk8pOw0KLQlDUFVfRklMTCgmc2V0LT5jc19tYXNr
KTsNCisJQ1BVX0NPUFkoJmFsbF9jcHVzLCAmc2V0LT5jc19tYXNrKTsNCiAJ
TElTVF9JTklUKCZzZXQtPmNzX2NoaWxkcmVuKTsNCiAJTElTVF9JTlNFUlRf
SEVBRCgmY3B1c2V0X2lkcywgc2V0LCBjc19saW5rKTsNCiAJc2V0LT5jc19y
ZWYgPSAxOw0KLQlzZXQtPmNzX2ZsYWdzID0gQ1BVX1NFVF9ST09UOw0KKwlz
ZXQtPmNzX2ZsYWdzID0gQ1BVX1NFVF9ST09UIHwgQ1BVX1NFVF9SRE9OTFk7
DQogCXNldC0+Y3NfZG9tYWluID0gJmRvbWFpbnNldDA7DQogCWNwdXNldF96
ZXJvID0gc2V0Ow0KIAljcHVzZXRfcm9vdCA9ICZzZXQtPmNzX21hc2s7DQpA
QCAtMTM5Niw2ICsxMzk3LDE2IEBAIGNwdXNldF90aHJlYWQwKHZvaWQpDQog
CSAqLw0KIAljcHVzZXRfdW5yID0gbmV3X3VucmhkcigyLCBJTlRfTUFYLCBO
VUxMKTsNCiANCisJLyoNCisJICogSWYgTUQgY29kZSBoYXMgbm90IGluaXRp
YWxpemVkIHBlci1kb21haW4gY3B1c2V0cywgcGxhY2UgYWxsDQorCSAqIENQ
VXMgaW4gZG9tYWluIDAuDQorCSAqLw0KKwlmb3IgKGkgPSAwOyBpIDwgTUFY
TUVNRE9NOyBpKyspDQorCQlpZiAoIUNQVV9FTVBUWSgmY3B1c2V0X2RvbWFp
bltpXSkpDQorCQkJZ290byBkb21haW5zX3NldDsNCisJQ1BVX0NPUFkoJmFs
bF9jcHVzLCAmY3B1c2V0X2RvbWFpblswXSk7DQorZG9tYWluc19zZXQ6DQor
DQogCXJldHVybiAoc2V0KTsNCiB9DQogDQpAQCAtMTQ0NywzNCArMTQ1OCw2
IEBAIGNwdXNldF9zZXRwcm9jX3VwZGF0ZV9zZXQoc3RydWN0IHByb2MgKnAs
IHN0cnVjdCBjDQogCXJldHVybiAoMCk7DQogfQ0KIA0KLS8qDQotICogVGhp
cyBpcyBjYWxsZWQgb25jZSB0aGUgZmluYWwgc2V0IG9mIHN5c3RlbSBjcHVz
IGlzIGtub3duLiAgTW9kaWZpZXMNCi0gKiB0aGUgcm9vdCBzZXQgYW5kIGFs
bCBjaGlsZHJlbiBhbmQgbWFyayB0aGUgcm9vdCByZWFkLW9ubHkuICANCi0g
Ki8NCi1zdGF0aWMgdm9pZA0KLWNwdXNldF9pbml0KHZvaWQgKmFyZykNCi17
DQotCWNwdXNldF90IG1hc2s7DQotCWludCBpOw0KLQ0KLQltYXNrID0gYWxs
X2NwdXM7DQotCWlmIChjcHVzZXRfbW9kaWZ5KGNwdXNldF96ZXJvLCAmbWFz
aykpDQotCQlwYW5pYygiQ2FuJ3Qgc2V0IGluaXRpYWwgY3B1c2V0IG1hc2su
XG4iKTsNCi0JY3B1c2V0X3plcm8tPmNzX2ZsYWdzIHw9IENQVV9TRVRfUkRP
TkxZOw0KLQ0KLQkvKg0KLQkgKiBJZiBNRCBjb2RlIGhhcyBub3QgaW5pdGlh
bGl6ZWQgcGVyLWRvbWFpbiBjcHVzZXRzLCBwbGFjZSBhbGwNCi0JICogQ1BV
cyBpbiBkb21haW4gMC4NCi0JICovDQotCWZvciAoaSA9IDA7IGkgPCBNQVhN
RU1ET007IGkrKykNCi0JCWlmICghQ1BVX0VNUFRZKCZjcHVzZXRfZG9tYWlu
W2ldKSkNCi0JCQlnb3RvIGRvbWFpbnNfc2V0Ow0KLQlDUFVfQ09QWSgmYWxs
X2NwdXMsICZjcHVzZXRfZG9tYWluWzBdKTsNCi1kb21haW5zX3NldDoNCi0J
cmV0dXJuOw0KLX0NCi1TWVNJTklUKGNwdXNldCwgU0lfU1VCX1NNUCwgU0lf
T1JERVJfQU5ZLCBjcHVzZXRfaW5pdCwgTlVMTCk7DQotDQogI2lmbmRlZiBf
U1lTX1NZU1BST1RPX0hfDQogc3RydWN0IGNwdXNldF9hcmdzIHsNCiAJY3B1
c2V0aWRfdAkqc2V0aWQ7DQpJbmRleDogeDg2L3g4Ni9pbnRyX21hY2hkZXAu
Yw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHg4Ni94ODYvaW50cl9t
YWNoZGVwLmMJKHJldmlzaW9uIDMzMTYxMCkNCisrKyB4ODYveDg2L2ludHJf
bWFjaGRlcC5jCSh3b3JraW5nIGNvcHkpDQpAQCAtNzEsNiArNzEsOCBAQA0K
ICNpbmNsdWRlIDxpc2EvaXNhcmVnLmg+DQogI2VuZGlmDQogDQorI2luY2x1
ZGUgPHZtL3ZtLmg+DQorDQogI2RlZmluZQlNQVhfU1RSQVlfTE9HCTUNCiAN
CiB0eXBlZGVmIHZvaWQgKCptYXNrX2ZuKSh2b2lkICopOw0KQEAgLTE4NSw3
ICsxODcsOCBAQCBpbnRyX2xvb2t1cF9zb3VyY2UoaW50IHZlY3RvcikNCiAN
CiBpbnQNCiBpbnRyX2FkZF9oYW5kbGVyKGNvbnN0IGNoYXIgKm5hbWUsIGlu
dCB2ZWN0b3IsIGRyaXZlcl9maWx0ZXJfdCBmaWx0ZXIsDQotICAgIGRyaXZl
cl9pbnRyX3QgaGFuZGxlciwgdm9pZCAqYXJnLCBlbnVtIGludHJfdHlwZSBm
bGFncywgdm9pZCAqKmNvb2tpZXApDQorICAgIGRyaXZlcl9pbnRyX3QgaGFu
ZGxlciwgdm9pZCAqYXJnLCBlbnVtIGludHJfdHlwZSBmbGFncywgdm9pZCAq
KmNvb2tpZXAsDQorICAgIGludCBkb21haW4pDQogew0KIAlzdHJ1Y3QgaW50
c3JjICppc3JjOw0KIAlpbnQgZXJyb3I7DQpAQCAtMjAwLDYgKzIwMyw3IEBA
IGludHJfYWRkX2hhbmRsZXIoY29uc3QgY2hhciAqbmFtZSwgaW50IHZlY3Rv
ciwgZHJpDQogCQlpbnRyY250X3VwZGF0ZW5hbWUoaXNyYyk7DQogCQlpc3Jj
LT5pc19oYW5kbGVycysrOw0KIAkJaWYgKGlzcmMtPmlzX2hhbmRsZXJzID09
IDEpIHsNCisJCQlpc3JjLT5pc19kb21haW4gPSBkb21haW47DQogCQkJaXNy
Yy0+aXNfcGljLT5waWNfZW5hYmxlX2ludHIoaXNyYyk7DQogCQkJaXNyYy0+
aXNfcGljLT5waWNfZW5hYmxlX3NvdXJjZShpc3JjKTsNCiAJCX0NCkBAIC01
MDcsMTQgKzUxMSwyNyBAQCBEQl9TSE9XX0NPTU1BTkQoaXJxcywgZGJfc2hv
d19pcnFzKQ0KICAqLw0KIA0KIGNwdXNldF90IGludHJfY3B1cyA9IENQVVNF
VF9UX0lOSVRJQUxJWkVSKDB4MSk7DQotc3RhdGljIGludCBjdXJyZW50X2Nw
dTsNCitzdGF0aWMgaW50IGN1cnJlbnRfY3B1W01BWE1FTURPTV07DQogDQor
c3RhdGljIHZvaWQNCitpbnRyX2luaXRfY3B1cyh2b2lkKQ0KK3sNCisJaW50
IGk7DQorDQorCWZvciAoaSA9IDA7IGkgPCB2bV9uZG9tYWluczsgaSsrKSB7
DQorCQljdXJyZW50X2NwdVtpXSA9IDA7DQorCQlpZiAoIUNQVV9JU1NFVChj
dXJyZW50X2NwdVtpXSwgJmludHJfY3B1cykgfHwNCisJCSAgICAhQ1BVX0lT
U0VUKGN1cnJlbnRfY3B1W2ldLCAmY3B1c2V0X2RvbWFpbltpXSkpDQorCQkJ
aW50cl9uZXh0X2NwdShpKTsNCisJfQ0KK30NCisNCiAvKg0KICAqIFJldHVy
biB0aGUgQ1BVIHRoYXQgdGhlIG5leHQgaW50ZXJydXB0IHNvdXJjZSBzaG91
bGQgdXNlLiAgRm9yIG5vdw0KICAqIHRoaXMganVzdCByZXR1cm5zIHRoZSBu
ZXh0IGxvY2FsIEFQSUMgYWNjb3JkaW5nIHRvIHJvdW5kLXJvYmluLg0KICAq
Lw0KIHVfaW50DQotaW50cl9uZXh0X2NwdSh2b2lkKQ0KK2ludHJfbmV4dF9j
cHUoaW50IGRvbWFpbikNCiB7DQogCXVfaW50IGFwaWNfaWQ7DQogDQpAQCAt
NTI5LDEyICs1NDYsMTMgQEAgdV9pbnQNCiAjZW5kaWYNCiANCiAJbXR4X2xv
Y2tfc3BpbigmaWN1X2xvY2spOw0KLQlhcGljX2lkID0gY3B1X2FwaWNfaWRz
W2N1cnJlbnRfY3B1XTsNCisJYXBpY19pZCA9IGNwdV9hcGljX2lkc1tjdXJy
ZW50X2NwdVtkb21haW5dXTsNCiAJZG8gew0KLQkJY3VycmVudF9jcHUrKzsN
Ci0JCWlmIChjdXJyZW50X2NwdSA+IG1wX21heGlkKQ0KLQkJCWN1cnJlbnRf
Y3B1ID0gMDsNCi0JfSB3aGlsZSAoIUNQVV9JU1NFVChjdXJyZW50X2NwdSwg
JmludHJfY3B1cykpOw0KKwkJY3VycmVudF9jcHVbZG9tYWluXSsrOw0KKwkJ
aWYgKGN1cnJlbnRfY3B1W2RvbWFpbl0gPiBtcF9tYXhpZCkNCisJCQljdXJy
ZW50X2NwdVtkb21haW5dID0gMDsNCisJfSB3aGlsZSAoIUNQVV9JU1NFVChj
dXJyZW50X2NwdVtkb21haW5dLCAmaW50cl9jcHVzKSB8fA0KKwkgICAgIUNQ
VV9JU1NFVChjdXJyZW50X2NwdVtkb21haW5dLCAmY3B1c2V0X2RvbWFpbltk
b21haW5dKSk7DQogCW10eF91bmxvY2tfc3BpbigmaWN1X2xvY2spOw0KIAly
ZXR1cm4gKGFwaWNfaWQpOw0KIH0NCkBAIC01NjgsNyArNTg2LDE4IEBAIGlu
dHJfYWRkX2NwdSh1X2ludCBjcHUpDQogCUNQVV9TRVQoY3B1LCAmaW50cl9j
cHVzKTsNCiB9DQogDQotI2lmbmRlZiBFQVJMWV9BUF9TVEFSVFVQDQorI2lm
ZGVmIEVBUkxZX0FQX1NUQVJUVVANCitzdGF0aWMgdm9pZA0KK2ludHJfc21w
X3N0YXJ0dXAodm9pZCAqYXJnIF9fdW51c2VkKQ0KK3sNCisNCisJaW50cl9p
bml0X2NwdXMoKTsNCisJcmV0dXJuOw0KK30NCitTWVNJTklUKGludHJfc21w
X3N0YXJ0dXAsIFNJX1NVQl9TTVAsIFNJX09SREVSX1NFQ09ORCwgaW50cl9z
bXBfc3RhcnR1cCwNCisgICAgTlVMTCk7DQorDQorI2Vsc2UNCiAvKg0KICAq
IERpc3RyaWJ1dGUgYWxsIHRoZSBpbnRlcnJ1cHQgc291cmNlcyBhbW9uZyB0
aGUgYXZhaWxhYmxlIENQVXMgb25jZSB0aGUNCiAgKiBBUCdzIGhhdmUgYmVl
biBsYXVuY2hlZC4NCkBAIC01ODAsNiArNjA5LDcgQEAgaW50cl9zaHVmZmxl
X2lycXModm9pZCAqYXJnIF9fdW51c2VkKQ0KIAl1X2ludCBjcHU7DQogCWlu
dCBpOw0KIA0KKwlpbnRyX2luaXRfY3B1cygpOw0KIAkvKiBEb24ndCBib3Ro
ZXIgb24gVVAuICovDQogCWlmIChtcF9uY3B1cyA9PSAxKQ0KIAkJcmV0dXJu
Ow0KQEAgLTU5OSwxMiArNjI5LDEyIEBAIGludHJfc2h1ZmZsZV9pcnFzKHZv
aWQgKmFyZyBfX3VudXNlZCkNCiAJCQkgKi8NCiAJCQljcHUgPSBpc3JjLT5p
c19ldmVudC0+aWVfY3B1Ow0KIAkJCWlmIChjcHUgPT0gTk9DUFUpDQotCQkJ
CWNwdSA9IGN1cnJlbnRfY3B1Ow0KKwkJCQljcHUgPSBjdXJyZW50X2NwdVtp
c3JjLT5pc19kb21haW5dOw0KIAkJCWlmIChpc3JjLT5pc19waWMtPnBpY19h
c3NpZ25fY3B1KGlzcmMsDQogCQkJICAgIGNwdV9hcGljX2lkc1tjcHVdKSA9
PSAwKSB7DQogCQkJCWlzcmMtPmlzX2NwdSA9IGNwdTsNCiAJCQkJaWYgKGlz
cmMtPmlzX2V2ZW50LT5pZV9jcHUgPT0gTk9DUFUpDQotCQkJCQlpbnRyX25l
eHRfY3B1KCk7DQorCQkJCQlpbnRyX25leHRfY3B1KGlzcmMtPmlzX2RvbWFp
bik7DQogCQkJfQ0KIAkJfQ0KIAl9DQpAQCAtNjM1LDEwICs2NjUsMTEgQEAg
c3lzY3RsX2h3X2ludHJzKFNZU0NUTF9IQU5ETEVSX0FSR1MpDQogCQlpc3Jj
ID0gaW50ZXJydXB0X3NvdXJjZXNbaV07DQogCQlpZiAoaXNyYyA9PSBOVUxM
KQ0KIAkJCWNvbnRpbnVlOw0KLQkJc2J1Zl9wcmludGYoJnNidWYsICIlczol
ZCBAJWQ6ICVsZFxuIiwNCisJCXNidWZfcHJpbnRmKCZzYnVmLCAiJXM6JWQg
QGNwdSVkKGRvbWFpbiVkKTogJWxkXG4iLA0KIAkJICAgIGlzcmMtPmlzX2V2
ZW50LT5pZV9mdWxsbmFtZSwNCiAJCSAgICBpc3JjLT5pc19pbmRleCwNCiAJ
CSAgICBpc3JjLT5pc19jcHUsDQorCQkgICAgaXNyYy0+aXNfZG9tYWluLA0K
IAkJICAgICppc3JjLT5pc19jb3VudCk7DQogCX0NCiANCkBAIC02OTcsNyAr
NzI4LDcgQEAgaW50cl9iYWxhbmNlKHZvaWQgKmR1bW15IF9fdW51c2VkLCBp
bnQgcGVuZGluZyBfX3UNCiAJICogUmVzdGFydCB0aGUgc2NhbiBmcm9tIHRo
ZSBzYW1lIGxvY2F0aW9uIHRvIGF2b2lkIG1vdmluZyBpbiB0aGUNCiAJICog
Y29tbW9uIGNhc2UuDQogCSAqLw0KLQljdXJyZW50X2NwdSA9IDA7DQorCWlu
dHJfaW5pdF9jcHVzKCk7DQogDQogCS8qDQogCSAqIEFzc2lnbiByb3VuZC1y
b2JpbiBmcm9tIG1vc3QgbG9hZGVkIHRvIGxlYXN0Lg0KQEAgLTcwNiw4ICs3
MzcsOCBAQCBpbnRyX2JhbGFuY2Uodm9pZCAqZHVtbXkgX191bnVzZWQsIGlu
dCBwZW5kaW5nIF9fdQ0KIAkJaXNyYyA9IGludGVycnVwdF9zb3J0ZWRbaV07
DQogCQlpZiAoaXNyYyA9PSBOVUxMICB8fCBpc3JjLT5pc19ldmVudC0+aWVf
Y3B1ICE9IE5PQ1BVKQ0KIAkJCWNvbnRpbnVlOw0KLQkJY3B1ID0gY3VycmVu
dF9jcHU7DQotCQlpbnRyX25leHRfY3B1KCk7DQorCQljcHUgPSBjdXJyZW50
X2NwdVtpc3JjLT5pc19kb21haW5dOw0KKwkJaW50cl9uZXh0X2NwdShpc3Jj
LT5pc19kb21haW4pOw0KIAkJaWYgKGlzcmMtPmlzX2NwdSAhPSBjcHUgJiYN
CiAJCSAgICBpc3JjLT5pc19waWMtPnBpY19hc3NpZ25fY3B1KGlzcmMsDQog
CQkgICAgY3B1X2FwaWNfaWRzW2NwdV0pID09IDApDQpAQCAtNzM1LDcgKzc2
Niw3IEBAIFNZU0lOSVQoaW50cl9iYWxhbmNlX2luaXQsIFNJX1NVQl9TTVAs
IFNJX09SREVSX0FODQogICogQWx3YXlzIHJvdXRlIGludGVycnVwdHMgdG8g
dGhlIGN1cnJlbnQgcHJvY2Vzc29yIGluIHRoZSBVUCBjYXNlLg0KICAqLw0K
IHVfaW50DQotaW50cl9uZXh0X2NwdSh2b2lkKQ0KK2ludHJfbmV4dF9jcHUo
aW50IGRvbWFpbikNCiB7DQogDQogCXJldHVybiAoUENQVV9HRVQoYXBpY19p
ZCkpOw0KSW5kZXg6IHg4Ni94ODYvaW9fYXBpYy5jDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0geDg2L3g4Ni9pb19hcGljLmMJKHJldmlzaW9uIDMz
MTYxMCkNCisrKyB4ODYveDg2L2lvX2FwaWMuYwkod29ya2luZyBjb3B5KQ0K
QEAgLTQ5OSw3ICs0OTksNyBAQCBpb2FwaWNfZW5hYmxlX2ludHIoc3RydWN0
IGludHNyYyAqaXNyYykNCiAJc3RydWN0IGlvYXBpY19pbnRzcmMgKmludHBp
biA9IChzdHJ1Y3QgaW9hcGljX2ludHNyYyAqKWlzcmM7DQogDQogCWlmIChp
bnRwaW4tPmlvX3ZlY3RvciA9PSAwKQ0KLQkJaWYgKGlvYXBpY19hc3NpZ25f
Y3B1KGlzcmMsIGludHJfbmV4dF9jcHUoKSkgIT0gMCkNCisJCWlmIChpb2Fw
aWNfYXNzaWduX2NwdShpc3JjLCBpbnRyX25leHRfY3B1KGlzcmMtPmlzX2Rv
bWFpbikpICE9IDApDQogCQkJcGFuaWMoIkNvdWxkbid0IGZpbmQgYW4gQVBJ
QyB2ZWN0b3IgZm9yIElSUSAlZCIsDQogCQkJICAgIGludHBpbi0+aW9faXJx
KTsNCiAJYXBpY19lbmFibGVfdmVjdG9yKGludHBpbi0+aW9fY3B1LCBpbnRw
aW4tPmlvX3ZlY3Rvcik7DQpJbmRleDogeDg2L3g4Ni9tc2kuYw0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIHg4Ni94ODYvbXNpLmMJKHJldmlzaW9u
IDMzMTYxMCkNCisrKyB4ODYveDg2L21zaS5jCSh3b3JraW5nIGNvcHkpDQpA
QCAtMzYzLDcgKzM2Myw3IEBAIGludA0KIG1zaV9hbGxvYyhkZXZpY2VfdCBk
ZXYsIGludCBjb3VudCwgaW50IG1heGNvdW50LCBpbnQgKmlycXMpDQogew0K
IAlzdHJ1Y3QgbXNpX2ludHNyYyAqbXNpLCAqZnNyYzsNCi0JdV9pbnQgY3B1
Ow0KKwl1X2ludCBjcHUsIGRvbWFpbjsNCiAJaW50IGNudCwgaSwgKm1pcnFz
LCB2ZWN0b3I7DQogI2lmZGVmIEFDUElfRE1BUg0KIAl1X2ludCBjb29raWVz
W2NvdW50XTsNCkBAIC0zNzMsNiArMzczLDkgQEAgbXNpX2FsbG9jKGRldmlj
ZV90IGRldiwgaW50IGNvdW50LCBpbnQgbWF4Y291bnQsIGkNCiAJaWYgKCFt
c2lfZW5hYmxlZCkNCiAJCXJldHVybiAoRU5YSU8pOw0KIA0KKwlpZiAoYnVz
X2dldF9kb21haW4oZGV2LCAmZG9tYWluKSAhPSAwKQ0KKwkJZG9tYWluID0g
MDsNCisNCiAJaWYgKGNvdW50ID4gMSkNCiAJCW1pcnFzID0gbWFsbG9jKGNv
dW50ICogc2l6ZW9mKCptaXJxcyksIE1fTVNJLCBNX1dBSVRPSyk7DQogCWVs
c2UNCkBAIC00MjAsNyArNDIzLDcgQEAgYWdhaW46DQogCUtBU1NFUlQoY250
ID09IGNvdW50LCAoImNvdW50IG1pc21hdGNoIikpOw0KIA0KIAkvKiBBbGxv
Y2F0ZSAnY291bnQnIElEVCB2ZWN0b3JzLiAqLw0KLQljcHUgPSBpbnRyX25l
eHRfY3B1KCk7DQorCWNwdSA9IGludHJfbmV4dF9jcHUoZG9tYWluKTsNCiAJ
dmVjdG9yID0gYXBpY19hbGxvY192ZWN0b3JzKGNwdSwgaXJxcywgY291bnQs
IG1heGNvdW50KTsNCiAJaWYgKHZlY3RvciA9PSAwKSB7DQogCQltdHhfdW5s
b2NrKCZtc2lfbG9jayk7DQpAQCAtNjEwLDcgKzYxMyw3IEBAIGludA0KIG1z
aXhfYWxsb2MoZGV2aWNlX3QgZGV2LCBpbnQgKmlycSkNCiB7DQogCXN0cnVj
dCBtc2lfaW50c3JjICptc2k7DQotCXVfaW50IGNwdTsNCisJdV9pbnQgY3B1
LCBkb21haW47DQogCWludCBpLCB2ZWN0b3I7DQogI2lmZGVmIEFDUElfRE1B
Ug0KIAl1X2ludCBjb29raWU7DQpAQCAtNjIwLDYgKzYyMyw5IEBAIG1zaXhf
YWxsb2MoZGV2aWNlX3QgZGV2LCBpbnQgKmlycSkNCiAJaWYgKCFtc2lfZW5h
YmxlZCkNCiAJCXJldHVybiAoRU5YSU8pOw0KIA0KKwlpZiAoYnVzX2dldF9k
b21haW4oZGV2LCAmZG9tYWluKSAhPSAwKQ0KKwkJZG9tYWluID0gMDsNCisN
CiBhZ2FpbjoNCiAJbXR4X2xvY2soJm1zaV9sb2NrKTsNCiANCkBAIC02NTEs
NyArNjU3LDcgQEAgYWdhaW46DQogCX0NCiANCiAJLyogQWxsb2NhdGUgYW4g
SURUIHZlY3Rvci4gKi8NCi0JY3B1ID0gaW50cl9uZXh0X2NwdSgpOw0KKwlj
cHUgPSBpbnRyX25leHRfY3B1KGRvbWFpbik7DQogCXZlY3RvciA9IGFwaWNf
YWxsb2NfdmVjdG9yKGNwdSwgaSk7DQogCWlmICh2ZWN0b3IgPT0gMCkgew0K
IAkJbXR4X3VubG9jaygmbXNpX2xvY2spOw0KSW5kZXg6IHg4Ni94ODYvbmV4
dXMuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHg4Ni94ODYvbmV4
dXMuYwkocmV2aXNpb24gMzMxNjEwKQ0KKysrIHg4Ni94ODYvbmV4dXMuYwko
d29ya2luZyBjb3B5KQ0KQEAgLTU3Myw3ICs1NzMsNyBAQCBuZXh1c19zZXR1
cF9pbnRyKGRldmljZV90IGJ1cywgZGV2aWNlX3QgY2hpbGQsIHN0cg0KIAkJ
IGludCBmbGFncywgZHJpdmVyX2ZpbHRlcl90IGZpbHRlciwgdm9pZCAoKmlo
YW5kKSh2b2lkICopLA0KIAkJIHZvaWQgKmFyZywgdm9pZCAqKmNvb2tpZXAp
DQogew0KLQlpbnQJCWVycm9yOw0KKwlpbnQJCWVycm9yLCBkb21haW47DQog
DQogCS8qIHNvbWVib2R5IHRyaWVkIHRvIHNldHVwIGFuIGlycSB0aGF0IGZh
aWxlZCB0byBhbGxvY2F0ZSEgKi8NCiAJaWYgKGlycSA9PSBOVUxMKQ0KQEAg
LTU4OSw5ICs1ODksMTEgQEAgbmV4dXNfc2V0dXBfaW50cihkZXZpY2VfdCBi
dXMsIGRldmljZV90IGNoaWxkLCBzdHINCiAJZXJyb3IgPSBybWFuX2FjdGl2
YXRlX3Jlc291cmNlKGlycSk7DQogCWlmIChlcnJvcikNCiAJCXJldHVybiAo
ZXJyb3IpOw0KKwlpZiAoYnVzX2dldF9kb21haW4oY2hpbGQsICZkb21haW4p
ICE9IDApDQorCQlkb21haW4gPSAwOw0KIA0KIAllcnJvciA9IGludHJfYWRk
X2hhbmRsZXIoZGV2aWNlX2dldF9uYW1ldW5pdChjaGlsZCksDQotCSAgICBy
bWFuX2dldF9zdGFydChpcnEpLCBmaWx0ZXIsIGloYW5kLCBhcmcsIGZsYWdz
LCBjb29raWVwKTsNCisJICAgIHJtYW5fZ2V0X3N0YXJ0KGlycSksIGZpbHRl
ciwgaWhhbmQsIGFyZywgZmxhZ3MsIGNvb2tpZXAsIGRvbWFpbik7DQogDQog
CXJldHVybiAoZXJyb3IpOw0KIH0NCkluZGV4OiB4ODYveGVuL3hlbl9pbnRy
LmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSB4ODYveGVuL3hlbl9p
bnRyLmMJKHJldmlzaW9uIDMzMTYxMCkNCisrKyB4ODYveGVuL3hlbl9pbnRy
LmMJKHdvcmtpbmcgY29weSkNCkBAIC00MzAsNyArNDMwLDcgQEAgeGVuX2lu
dHJfYmluZF9pc3JjKHN0cnVjdCB4ZW5pc3JjICoqaXNyY3AsIGV2dGNobl8N
CiAJCSAqIHVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNlLCBzbyBzaHVmZmxl
IHRoZW0gdG8gYmFsYW5jZQ0KIAkJICogdGhlIGludGVycnVwdCBsb2FkLg0K
IAkJICovDQotCQl4ZW5faW50cl9hc3NpZ25fY3B1KCZpc3JjLT54aV9pbnRz
cmMsIGludHJfbmV4dF9jcHUoKSk7DQorCQl4ZW5faW50cl9hc3NpZ25fY3B1
KCZpc3JjLT54aV9pbnRzcmMsIGludHJfbmV4dF9jcHUoMCkpOw0KIAl9DQog
I2VuZGlmDQogDQpAQCAtMTU2Miw3ICsxNTYyLDcgQEAgeGVuX2ludHJfYWRk
X2hhbmRsZXIoY29uc3QgY2hhciAqbmFtZSwgZHJpdmVyX2ZpbHQNCiAJCXJl
dHVybiAoRUlOVkFMKTsNCiANCiAJZXJyb3IgPSBpbnRyX2FkZF9oYW5kbGVy
KG5hbWUsIGlzcmMtPnhpX3ZlY3RvcixmaWx0ZXIsIGhhbmRsZXIsIGFyZywN
Ci0JICAgIGZsYWdzfElOVFJfRVhDTCwgJmlzcmMtPnhpX2Nvb2tpZSk7DQor
CSAgICBmbGFnc3xJTlRSX0VYQ0wsICZpc3JjLT54aV9jb29raWUsIDApOw0K
IAlpZiAoZXJyb3IgIT0gMCkgew0KIAkJcHJpbnRmKA0KIAkJICAgICIlczog
eGVuX2ludHJfYWRkX2hhbmRsZXI6IGludHJfYWRkX2hhbmRsZXIgZmFpbGVk
OiAlZFxuIiwNCg==

--2547152148-430465068-1522184844=:2307--

From owner-svn-src-all@freebsd.org  Tue Mar 27 21:14:40 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF81DF5D12F;
 Tue, 27 Mar 2018 21:14:39 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6CDC082113;
 Tue, 27 Mar 2018 21:14:39 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 67E9C21827;
 Tue, 27 Mar 2018 21:14:39 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RLEdTS079060;
 Tue, 27 Mar 2018 21:14:39 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RLEd5p079059;
 Tue, 27 Mar 2018 21:14:39 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803272114.w2RLEd5p079059@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Tue, 27 Mar 2018 21:14:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331654 - head/sys/dev/nxge
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: head/sys/dev/nxge
X-SVN-Commit-Revision: 331654
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 21:14:40 -0000

Author: brooks
Date: Tue Mar 27 21:14:39 2018
New Revision: 331654
URL: https://svnweb.freebsd.org/changeset/base/331654

Log:
  Don't access userspace directly from the kernel in nxge(4).
  
  Update to what the previous code seemed to be doing via the correct
  interfaces.  Further issues exist in xge_ioctl_registers(), but this is
  debugging code in a driver that has few users and they don't appear to
  be crashes or leaks.
  
  Reviewed by:	jhb (prior version)
  MFC after:	1 week
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14848

Modified:
  head/sys/dev/nxge/if_nxge.c

Modified: head/sys/dev/nxge/if_nxge.c
==============================================================================
--- head/sys/dev/nxge/if_nxge.c	Tue Mar 27 21:06:18 2018	(r331653)
+++ head/sys/dev/nxge/if_nxge.c	Tue Mar 27 21:14:39 2018	(r331654)
@@ -1364,11 +1364,15 @@ int
 xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifreqp)
 {
 	xge_hal_status_e status = XGE_HAL_OK;
-	char *data = (char *)ifreqp->ifr_data;
+	char cmd, mode;
 	void *info = NULL;
 	int retValue = EINVAL;
 
-	switch(*data) {
+	cmd = fubyte(ifreqp->ifr_data);
+	if (cmd == -1)
+		return (EFAULT);
+
+	switch(cmd) {
 	    case XGE_QUERY_STATS:
 	        mtx_lock(&lldev->mtx_drv);
 	        status = xge_hal_stats_hw(lldev->devh,
@@ -1496,8 +1500,8 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 	    case XGE_SET_BUFFER_MODE_1:
 	    case XGE_SET_BUFFER_MODE_2:
 	    case XGE_SET_BUFFER_MODE_5:
-	        *data = (*data == XGE_SET_BUFFER_MODE_1) ? 'Y':'N';
-	        if(copyout(data, ifreqp->ifr_data, sizeof(data)) == 0)
+	        mode = (cmd == XGE_SET_BUFFER_MODE_1) ? 'Y':'N';
+	        if(copyout(&mode, ifreqp->ifr_data, sizeof(mode)) == 0)
 	            retValue = 0;
 	        break;
 	    default:
@@ -1518,10 +1522,17 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 int
 xge_ioctl_registers(xge_lldev_t *lldev, struct ifreq *ifreqp)
 {
-	xge_register_t *data = (xge_register_t *)ifreqp->ifr_data;
+	xge_register_t tmpdata;
+	xge_register_t *data;
 	xge_hal_status_e status = XGE_HAL_OK;
 	int retValue = EINVAL, offset = 0, index = 0;
+	int error;
 	u64 val64 = 0;
+
+	error = copyin(ifreqp->ifr_data, &tmpdata, sizeof(tmpdata));
+	if (error != 0)
+		return (error);
+	data = &tmpdata;
 
 	/* Reading a register */
 	if(strcmp(data->option, "-r") == 0) {

From owner-svn-src-all@freebsd.org  Tue Mar 27 22:49:06 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CE7F8F66D1D;
 Tue, 27 Mar 2018 22:49:06 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8184D8743B;
 Tue, 27 Mar 2018 22:49:06 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7C1B8226CC;
 Tue, 27 Mar 2018 22:49:06 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2RMn66R025748;
 Tue, 27 Mar 2018 22:49:06 GMT (envelope-from cem@FreeBSD.org)
Received: (from cem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2RMn6ET025747;
 Tue, 27 Mar 2018 22:49:06 GMT (envelope-from cem@FreeBSD.org)
Message-Id: <201803272249.w2RMn6ET025747@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org
 using -f
From: Conrad Meyer 
Date: Tue, 27 Mar 2018 22:49:06 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331656 - head/cddl/contrib/opensolaris/tools/ctf/cvt
X-SVN-Group: head
X-SVN-Commit-Author: cem
X-SVN-Commit-Paths: head/cddl/contrib/opensolaris/tools/ctf/cvt
X-SVN-Commit-Revision: 331656
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Tue, 27 Mar 2018 22:49:07 -0000

Author: cem
Date: Tue Mar 27 22:49:06 2018
New Revision: 331656
URL: https://svnweb.freebsd.org/changeset/base/331656

Log:
  ctfconvert: Fix minor memory leaks in STABS parser
  
  In an error case, free leaked objects.  Does anything use STABS anymore?
  Probably not.
  
  Reported by:	Coverity
  Sponsored by:	Dell EMC Isilon

Modified:
  head/cddl/contrib/opensolaris/tools/ctf/cvt/st_parse.c

Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/st_parse.c
==============================================================================
--- head/cddl/contrib/opensolaris/tools/ctf/cvt/st_parse.c	Tue Mar 27 21:37:58 2018	(r331655)
+++ head/cddl/contrib/opensolaris/tools/ctf/cvt/st_parse.c	Tue Mar 27 22:49:06 2018	(r331656)
@@ -229,8 +229,12 @@ parse_fun(char *cp, iidesc_t *ii)
 		nargs++;
 		if (nargs > FUNCARG_DEF)
 			args = xrealloc(args, sizeof (tdesc_t *) * nargs);
-		if (!(cp = read_tid(cp, &args[nargs - 1])))
+		if (!(cp = read_tid(cp, &args[nargs - 1]))) {
+			if (tdp->t_type == TYPEDEF_UNRES)
+				free(tdp);
+			free(args);
 			return (-1);
+		}
 	}
 
 	ii->ii_type = iitype;

From owner-svn-src-all@freebsd.org  Wed Mar 28 03:07:03 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7EE5FF52BD2;
 Wed, 28 Mar 2018 03:07:03 +0000 (UTC) (envelope-from mjg@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 31E2471283;
 Wed, 28 Mar 2018 03:07:03 +0000 (UTC) (envelope-from mjg@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2C59B25181;
 Wed, 28 Mar 2018 03:07:03 +0000 (UTC) (envelope-from mjg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2S373Gk055056;
 Wed, 28 Mar 2018 03:07:03 GMT (envelope-from mjg@FreeBSD.org)
Received: (from mjg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2S373EP055055;
 Wed, 28 Mar 2018 03:07:03 GMT (envelope-from mjg@FreeBSD.org)
Message-Id: <201803280307.w2S373EP055055@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org
 using -f
From: Mateusz Guzik 
Date: Wed, 28 Mar 2018 03:07:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331657 - head/sys/kern
X-SVN-Group: head
X-SVN-Commit-Author: mjg
X-SVN-Commit-Paths: head/sys/kern
X-SVN-Commit-Revision: 331657
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 03:07:03 -0000

Author: mjg
Date: Wed Mar 28 03:07:02 2018
New Revision: 331657
URL: https://svnweb.freebsd.org/changeset/base/331657

Log:
  fd: tighten seq protected areas to not contain malloc/free

Modified:
  head/sys/kern/kern_descrip.c

Modified: head/sys/kern/kern_descrip.c
==============================================================================
--- head/sys/kern/kern_descrip.c	Tue Mar 27 22:49:06 2018	(r331656)
+++ head/sys/kern/kern_descrip.c	Wed Mar 28 03:07:02 2018	(r331657)
@@ -111,6 +111,11 @@ static void	fdgrowtable_exp(struct filedesc *fdp, int 
 static void	fdunused(struct filedesc *fdp, int fd);
 static void	fdused(struct filedesc *fdp, int fd);
 static int	getmaxfd(struct thread *td);
+static u_long	*filecaps_copy_prep(const struct filecaps *src);
+static void	filecaps_copy_finish(const struct filecaps *src,
+		    struct filecaps *dst, u_long *ioctls);
+static u_long 	*filecaps_free_prep(struct filecaps *fcaps);
+static void	filecaps_free_finish(u_long *ioctls);
 
 /*
  * Each process has:
@@ -302,12 +307,12 @@ fdfree(struct filedesc *fdp, int fd)
 #ifdef CAPABILITIES
 	seq_write_begin(&fde->fde_seq);
 #endif
-	fdefree_last(fde);
 	fde->fde_file = NULL;
-	fdunused(fdp, fd);
 #ifdef CAPABILITIES
 	seq_write_end(&fde->fde_seq);
 #endif
+	fdefree_last(fde);
+	fdunused(fdp, fd);
 }
 
 void
@@ -813,6 +818,7 @@ kern_dup(struct thread *td, u_int mode, int flags, int
 	struct filedescent *oldfde, *newfde;
 	struct proc *p;
 	struct file *delfp;
+	u_long *oioctls, *nioctls;
 	int error, maxfd;
 
 	p = td->td_proc;
@@ -902,15 +908,18 @@ kern_dup(struct thread *td, u_int mode, int flags, int
 	newfde = &fdp->fd_ofiles[new];
 	delfp = newfde->fde_file;
 
+	oioctls = filecaps_free_prep(&newfde->fde_caps);
+	nioctls = filecaps_copy_prep(&oldfde->fde_caps);
+
 	/*
 	 * Duplicate the source descriptor.
 	 */
 #ifdef CAPABILITIES
 	seq_write_begin(&newfde->fde_seq);
 #endif
-	filecaps_free(&newfde->fde_caps);
 	memcpy(newfde, oldfde, fde_change_size);
-	filecaps_copy(&oldfde->fde_caps, &newfde->fde_caps, true);
+	filecaps_copy_finish(&oldfde->fde_caps, &newfde->fde_caps,
+	    nioctls);
 	if ((flags & FDDUP_FLAG_CLOEXEC) != 0)
 		newfde->fde_flags = oldfde->fde_flags | UF_EXCLOSE;
 	else
@@ -918,6 +927,7 @@ kern_dup(struct thread *td, u_int mode, int flags, int
 #ifdef CAPABILITIES
 	seq_write_end(&newfde->fde_seq);
 #endif
+	filecaps_free_finish(oioctls);
 	td->td_retval[0] = new;
 
 	error = 0;
@@ -1503,6 +1513,40 @@ filecaps_copy(const struct filecaps *src, struct filec
 	return (0);
 }
 
+static u_long *
+filecaps_copy_prep(const struct filecaps *src)
+{
+	u_long *ioctls;
+	size_t size;
+
+	if (src->fc_ioctls == NULL)
+		return (NULL);
+
+	KASSERT(src->fc_nioctls > 0,
+	    ("fc_ioctls != NULL, but fc_nioctls=%hd", src->fc_nioctls));
+
+	size = sizeof(src->fc_ioctls[0]) * src->fc_nioctls;
+	ioctls = malloc(size, M_FILECAPS, M_WAITOK);
+	return (ioctls);
+}
+
+static void
+filecaps_copy_finish(const struct filecaps *src, struct filecaps *dst,
+    u_long *ioctls)
+{
+	size_t size;
+
+	*dst = *src;
+	if (src->fc_ioctls == NULL) {
+		MPASS(ioctls == NULL);
+		return;
+	}
+
+	size = sizeof(src->fc_ioctls[0]) * src->fc_nioctls;
+	dst->fc_ioctls = ioctls;
+	bcopy(src->fc_ioctls, dst->fc_ioctls, size);
+}
+
 /*
  * Move filecaps structure to the new place and clear the old place.
  */
@@ -1538,6 +1582,23 @@ filecaps_free(struct filecaps *fcaps)
 	bzero(fcaps, sizeof(*fcaps));
 }
 
+static u_long *
+filecaps_free_prep(struct filecaps *fcaps)
+{
+	u_long *ioctls;
+
+	ioctls = fcaps->fc_ioctls;
+	bzero(fcaps, sizeof(*fcaps));
+	return (ioctls);
+}
+
+static void
+filecaps_free_finish(u_long *ioctls)
+{
+
+	free(ioctls, M_FILECAPS);
+}
+
 /*
  * Validate the given filecaps structure.
  */
@@ -2963,6 +3024,7 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int
 {
 	struct filedescent *newfde, *oldfde;
 	struct file *fp;
+	u_long *ioctls;
 	int error, indx;
 
 	KASSERT(openerror == ENODEV || openerror == ENXIO,
@@ -3007,11 +3069,13 @@ dupfdopen(struct thread *td, struct filedesc *fdp, int
 		fhold(fp);
 		newfde = &fdp->fd_ofiles[indx];
 		oldfde = &fdp->fd_ofiles[dfd];
+		ioctls = filecaps_copy_prep(&oldfde->fde_caps);
 #ifdef CAPABILITIES
 		seq_write_begin(&newfde->fde_seq);
 #endif
 		memcpy(newfde, oldfde, fde_change_size);
-		filecaps_copy(&oldfde->fde_caps, &newfde->fde_caps, true);
+		filecaps_copy_finish(&oldfde->fde_caps, &newfde->fde_caps,
+		    ioctls);
 #ifdef CAPABILITIES
 		seq_write_end(&newfde->fde_seq);
 #endif

From owner-svn-src-all@freebsd.org  Wed Mar 28 03:11:51 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0A555F5340E;
 Wed, 28 Mar 2018 03:11:51 +0000 (UTC)
 (envelope-from jhibbits@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id AD802717A3;
 Wed, 28 Mar 2018 03:11:50 +0000 (UTC)
 (envelope-from jhibbits@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A85D1252E0;
 Wed, 28 Mar 2018 03:11:50 +0000 (UTC)
 (envelope-from jhibbits@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2S3BoIg059364;
 Wed, 28 Mar 2018 03:11:50 GMT (envelope-from jhibbits@FreeBSD.org)
Received: (from jhibbits@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2S3Bohm059363;
 Wed, 28 Mar 2018 03:11:50 GMT (envelope-from jhibbits@FreeBSD.org)
Message-Id: <201803280311.w2S3Bohm059363@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to
 jhibbits@FreeBSD.org using -f
From: Justin Hibbits 
Date: Wed, 28 Mar 2018 03:11:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331658 - head/sys/conf
X-SVN-Group: head
X-SVN-Commit-Author: jhibbits
X-SVN-Commit-Paths: head/sys/conf
X-SVN-Commit-Revision: 331658
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 03:11:51 -0000

Author: jhibbits
Date: Wed Mar 28 03:11:50 2018
New Revision: 331658
URL: https://svnweb.freebsd.org/changeset/base/331658

Log:
  Fix another optional standard.  Build openpic_ofw again.

Modified:
  head/sys/conf/files.powerpc

Modified: head/sys/conf/files.powerpc
==============================================================================
--- head/sys/conf/files.powerpc	Wed Mar 28 03:07:02 2018	(r331657)
+++ head/sys/conf/files.powerpc	Wed Mar 28 03:11:50 2018	(r331658)
@@ -158,7 +158,7 @@ powerpc/ofw/ofw_real.c		optional	aim
 powerpc/ofw/ofw_syscons.c	optional	sc aim
 powerpc/ofw/ofwcall32.S		optional	aim powerpc
 powerpc/ofw/ofwcall64.S		optional	aim powerpc64
-powerpc/ofw/openpic_ofw.c	optional	standard
+powerpc/ofw/openpic_ofw.c	standard
 powerpc/ofw/rtas.c		optional	aim
 powerpc/powermac/ata_kauai.c	optional	powermac ata | powermac atamacio
 powerpc/powermac/ata_macio.c	optional	powermac ata | powermac atamacio

From owner-svn-src-all@freebsd.org  Wed Mar 28 03:15:43 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A6C1DF537C3;
 Wed, 28 Mar 2018 03:15:43 +0000 (UTC) (envelope-from mjg@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 5603071A3D;
 Wed, 28 Mar 2018 03:15:43 +0000 (UTC) (envelope-from mjg@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 50B8225317;
 Wed, 28 Mar 2018 03:15:43 +0000 (UTC) (envelope-from mjg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2S3Fhim060309;
 Wed, 28 Mar 2018 03:15:43 GMT (envelope-from mjg@FreeBSD.org)
Received: (from mjg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2S3FhNU060308;
 Wed, 28 Mar 2018 03:15:43 GMT (envelope-from mjg@FreeBSD.org)
Message-Id: <201803280315.w2S3FhNU060308@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org
 using -f
From: Mateusz Guzik 
Date: Wed, 28 Mar 2018 03:15:43 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331659 - head/sys/sys
X-SVN-Group: head
X-SVN-Commit-Author: mjg
X-SVN-Commit-Paths: head/sys/sys
X-SVN-Commit-Revision: 331659
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 03:15:43 -0000

Author: mjg
Date: Wed Mar 28 03:15:42 2018
New Revision: 331659
URL: https://svnweb.freebsd.org/changeset/base/331659

Log:
  seq: disable preemption around seq_write_*
  
  This is a long standing performance bug which happened to not cause trouble
  in practice due to rather limited use of these primitives.
  
  The read side expects the writer to finish soon(tm) hence it loops with one
  pause in-between. But it is possible the writer gets preempted in which case
  the waiting can take a long time, especially so if it got preempted by the
  reader. In principle this may never clean itself up.
  
  In the current kernel seq is only used to obtain stable fp + capabilities
  state. In order for looping at least once to occur there has to be a
  concurrent writer modifying the fd slot for the very fd we are trying to
  read. That is, for any looping to occur in the first place the program has
  to be multithreaded and be doing something fishy to begin with. As such,
  the indefinite looping is rather hard to run into unless you really try
  (and I did not).

Modified:
  head/sys/sys/seq.h

Modified: head/sys/sys/seq.h
==============================================================================
--- head/sys/sys/seq.h	Wed Mar 28 03:11:50 2018	(r331658)
+++ head/sys/sys/seq.h	Wed Mar 28 03:15:42 2018	(r331659)
@@ -79,6 +79,7 @@ static __inline void
 seq_write_begin(seq_t *seqp)
 {
 
+	critical_enter();
 	MPASS(!seq_in_modify(*seqp));
 	*seqp += 1;
 	atomic_thread_fence_rel();
@@ -90,6 +91,7 @@ seq_write_end(seq_t *seqp)
 
 	atomic_store_rel_int(seqp, *seqp + 1);
 	MPASS(!seq_in_modify(*seqp));
+	critical_exit();
 }
 
 static __inline seq_t

From owner-svn-src-all@freebsd.org  Wed Mar 28 04:38:46 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 44D2AF5AA22;
 Wed, 28 Mar 2018 04:38:46 +0000 (UTC) (envelope-from mjg@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E5CB67472F;
 Wed, 28 Mar 2018 04:38:45 +0000 (UTC) (envelope-from mjg@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DB26626007;
 Wed, 28 Mar 2018 04:38:45 +0000 (UTC) (envelope-from mjg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2S4cjMU000656;
 Wed, 28 Mar 2018 04:38:45 GMT (envelope-from mjg@FreeBSD.org)
Received: (from mjg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2S4cjRE000655;
 Wed, 28 Mar 2018 04:38:45 GMT (envelope-from mjg@FreeBSD.org)
Message-Id: <201803280438.w2S4cjRE000655@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org
 using -f
From: Mateusz Guzik 
Date: Wed, 28 Mar 2018 04:38:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331660 - head/sys/sys
X-SVN-Group: head
X-SVN-Commit-Author: mjg
X-SVN-Commit-Paths: head/sys/sys
X-SVN-Commit-Revision: 331660
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 04:38:46 -0000

Author: mjg
Date: Wed Mar 28 04:38:45 2018
New Revision: 331660
URL: https://svnweb.freebsd.org/changeset/base/331660

Log:
  seq: provide a comment explaining what seq is for and note 2 caveats

Modified:
  head/sys/sys/seq.h

Modified: head/sys/sys/seq.h
==============================================================================
--- head/sys/sys/seq.h	Wed Mar 28 03:15:42 2018	(r331659)
+++ head/sys/sys/seq.h	Wed Mar 28 04:38:45 2018	(r331660)
@@ -41,26 +41,52 @@ typedef uint32_t seq_t;
 #ifdef _KERNEL
 
 /*
- * Typical usage:
+ * seq allows readers and writers to work with a consistent snapshot. Modifying
+ * operations must be enclosed within a transaction delineated by
+ * seq_write_beg/seq_write_end. The trick works by having the writer increment
+ * the sequence number twice, at the beginning and end of the transaction.
+ * The reader detects that the sequence number has not changed between its start
+ * and end, and that the sequence number is even, to validate consistency.
  *
+ * Some fencing (both hard fencing and compiler barriers) may be needed,
+ * depending on the cpu. Modern AMD cpus provide strong enough guarantees to not
+ * require any fencing by the reader or writer.
+ *
+ * Example usage:
+ *
  * writers:
- * 	lock_exclusive(&obj->lock);
- * 	seq_write_begin(&obj->seq);
- * 	.....
- * 	seq_write_end(&obj->seq);
- * 	unlock_exclusive(&obj->unlock);
+ *     lock_exclusive(&obj->lock);
+ *     seq_write_begin(&obj->seq);
+ *     obj->var1 = ...;
+ *     obj->var2 = ...;
+ *     seq_write_end(&obj->seq);
+ *     unlock_exclusive(&obj->lock);
  *
  * readers:
- * 	obj_t lobj;
- * 	seq_t seq;
+ *    int var1, var2;
+ *    seq_t seq;
  *
- * 	for (;;) {
- * 		seq = seq_read(&gobj->seq);
- * 		lobj = gobj;
- * 		if (seq_consistent(&gobj->seq, seq))
- * 			break;
- * 	}
- * 	foo(lobj);
+ *    for (;;) {
+ *    	      seq = seq_read(&obj->seq);
+ *            var1 = obj->var1;
+ *            var2 = obj->var2;
+ *            if (seq_consistent(&obj->seq, seq))
+ *                   break;
+ *    }
+ *    .....
+ *
+ * Writers may not block or sleep in any way.
+ *
+ * There are 2 minor caveats in this implementation:
+ *
+ * 1. There is no guarantee of progress. That is, a large number of writers can
+ * interfere with the execution of the readers and cause the code to live-lock
+ * in a loop trying to acquire a consistent snapshot.
+ *
+ * 2. If the reader loops long enough, the counter may overflow and eventually
+ * wrap back to its initial value, fooling the reader into accepting the
+ * snapshot.  Given that this needs 4 billion transactional writes across a
+ * single contended reader, it is unlikely to ever happen.
  */		
 
 /* A hack to get MPASS macro */

From owner-svn-src-all@freebsd.org  Wed Mar 28 04:44:53 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27BA4F5B125;
 Wed, 28 Mar 2018 04:44:53 +0000 (UTC)
 (envelope-from o.hartmann@walstatt.org)
Received: from mout.gmx.net (mout.gmx.net [212.227.17.21])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8D90C74C38;
 Wed, 28 Mar 2018 04:44:52 +0000 (UTC)
 (envelope-from o.hartmann@walstatt.org)
Received: from freyja.zeit4.iv.bundesimmobilien.de ([87.138.105.249]) by
 mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id
 0Meutp-1fBoRn0qdN-00OYBh; Wed, 28 Mar 2018 06:44:50 +0200
Date: Wed, 28 Mar 2018 06:44:43 +0200
From: "O. Hartmann" 
To: John Baldwin 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: Re: svn commit: r331650 - in head/sys: amd64/amd64 amd64/ia32
 amd64/linux amd64/linux32 cddl/contrib/opensolaris/uts/intel/dtrace
 cddl/dev/dtrace/amd64 cddl/dev/dtrace/i386 i386/i386 i386/linux x86/inc...
Message-ID: <20180328064443.6201fd35@freyja.zeit4.iv.bundesimmobilien.de>
In-Reply-To: <201803272057.w2RKvpRO068828@repo.freebsd.org>
References: <201803272057.w2RKvpRO068828@repo.freebsd.org>
Organization: Walstatt
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:RnYJw85xozy1amZgowHcfekgeAaX4xQK4Ud9iX8AORY0mTZq1yy
 ApiBrR8j0Esl+Khq7QYHKNXsF7zMNvn0/ZWhqeVw08cPshuP3LiSNpfmDyMclbddL3DahtV
 0qinCFekXjc4MmWWvOiykfdt4PRei4BHYw4qxyWkV+daOfBk0UhCSR0Ubgx5m/apdL5t0fk
 3e2BxSmGWTJnjaUAv0iBg==
X-UI-Out-Filterresults: notjunk:1;V01:K0:BlBF6sPbH54=:OXbB6lv1jgNpbfE9V5iIG1
 Hej1QMljeuouu1W1dpd41k41DWvfm8z0Bx4QV0ExAFP/l8335kijVNe3yxJ8TahWTTIqgbmRy
 0wv0/3S6pdhoTIt+0S642O53+f9lamE1EVyGD3jN3TJdr6AYcXaOE53KEmc/YBdHWk8eoJ/Wi
 Yp2Tj/il2cqk2co1O3MIFc4PrCm6I6yKiuvdYCMuFqABodkD4hDAqrK32L/dZDG6uNCxVRCka
 gWB3wdVPIS7IR/rK4FgNAV8m6Yb5WsAhpJjakHlwsGsLzrx7u4fqJJj83QsldHOkdFioeTvj9
 o4rsEW+hkbTkOos/vVSd4fcBp29l/Q6b+OTht91yLyN77AgE0S6nSmrdgx9bA4a7fFBK3X+DB
 b6Z0c7fOGf+4XE9MbqzuBJ8C0qYjVucSKK9oNMlL6b8+RsCl0ptNhw1U9i0I6zDSBIIEeKo2e
 Qabo7iK5pn9wtBdWq43ASqsSkW57sDV41DLPkFR0Bi08aRB7Lw5GKObKkXAlyzVs+H+ACrfUL
 gJgWUkAimeDxdzE+rf2JvEc2eFI+f0DbgX+QKZhuiNwWc5mKGnOTKl0IKErrOklJAsa+l4277
 l19w7zlqNO3kOFD1BYkO1X1vMYZboQFjnFmD7TV4ue4Zum9fF6bP49GfSduCbup+ST02DmJWO
 JoITFSL4n2UZsovvD6qTctJdVs9e01iPIQpX3JeaB6HKfwr6S1qPeDT9UuTIE+kxlGD/jlARo
 gXPalrAIbdUVz8g7VeGLbuU/6xnUfZyacYGBX3I/Nv1Boyd+tj/ikhIOfm6NcaioOBfVnnWmG
 RT16yGjkY9YNw9fB6tZvO5PogSon52ipXjdl19lc6QzvEWMvE4=
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 04:44:53 -0000

On Tue, 27 Mar 2018 20:57:51 +0000 (UTC)
John Baldwin  wrote:

> Author: jhb
> Date: Tue Mar 27 20:57:51 2018
> New Revision: 331650
> URL: https://svnweb.freebsd.org/changeset/base/331650
> 
> Log:
>   Remove very old and unused signal information codes.
>   
>   These have been supplanted by the MI signal information codes in
>    since 7.0.  The FPE_*_TRAP ones were deprecated even
>   earlier in 1999.
>   
>   PR:		226579 (exp-run)
>   Reviewed by:	kib
>   Differential Revision:	https://reviews.freebsd.org/D14637
> 
> Modified:
>   head/sys/amd64/amd64/trap.c
>   head/sys/amd64/ia32/ia32_signal.c
>   head/sys/amd64/linux/linux_sysvec.c
>   head/sys/amd64/linux32/linux32_sysvec.c
>   head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
>   head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
>   head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
>   head/sys/i386/i386/trap.c
>   head/sys/i386/linux/linux_sysvec.c
>   head/sys/x86/include/signal.h
>   head/sys/x86/include/trap.h
> 
> Modified: head/sys/amd64/amd64/trap.c
> ==============================================================================
> --- head/sys/amd64/amd64/trap.c	Tue Mar 27 20:54:57 2018
> (r331649) +++ head/sys/amd64/amd64/trap.c	Tue Mar 27 20:57:51
> 2018	(r331650) @@ -95,6 +95,7 @@ PMC_SOFT_DEFINE( , , page_fault,
> write); #include 
>  #endif
>  #include 
> +#include 
>  #include 
>  
>  #ifdef KDTRACE_HOOKS
> @@ -338,14 +339,14 @@ trap(struct trapframe *frame)
>  					ucode = SEGV_ACCERR;
>  				} else {
>  					signo = SIGBUS;
> -					ucode = BUS_PAGE_FAULT;
> +					ucode = T_PAGEFLT;
>  				}
>  			} else if (prot_fault_translation == 1) {
>  				/*
>  				 * Always compat mode.
>  				 */
>  				signo = SIGBUS;
> -				ucode = BUS_PAGE_FAULT;
> +				ucode = T_PAGEFLT;
>  			} else {
>  				/*
>  				 * Always SIGSEGV mode.
> 
> Modified: head/sys/amd64/ia32/ia32_signal.c
> ==============================================================================
> --- head/sys/amd64/ia32/ia32_signal.c	Tue Mar 27 20:54:57 2018
> (r331649) +++ head/sys/amd64/ia32/ia32_signal.c	Tue Mar 27 20:57:51
> 2018	(r331650) @@ -82,6 +82,7 @@ __FBSDID("$FreeBSD$");
>  #include 
>  #include 
>  #include 
> +#include 
>  
>  #ifdef COMPAT_FREEBSD4
>  static void freebsd4_ia32_sendsig(sig_t, ksiginfo_t *, sigset_t *);
> 
> Modified: head/sys/amd64/linux/linux_sysvec.c
> ==============================================================================
> --- head/sys/amd64/linux/linux_sysvec.c	Tue Mar 27 20:54:57
> 2018	(r331649) +++ head/sys/amd64/linux/linux_sysvec.c	Tue Mar
> 27 20:57:51 2018	(r331650) @@ -72,6 +72,7 @@ __FBSDID("$FreeBSD$");
>  #include 
>  #include 
>  #include 
> +#include 
>  
>  #include 
>  #include 
> 
> Modified: head/sys/amd64/linux32/linux32_sysvec.c
> ==============================================================================
> --- head/sys/amd64/linux32/linux32_sysvec.c	Tue Mar 27 20:54:57
> 2018	(r331649) +++ head/sys/amd64/linux32/linux32_sysvec.c	Tue
> Mar 27 20:57:51 2018	(r331650) @@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$");
>  #include 
>  #include 
>  #include 
> +#include 
>  
>  #include 
>  #include 
> 
> Modified: head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
> ==============================================================================
> --- head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
> Tue Mar 27 20:54:57 2018	(r331649) +++
> head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c	Tue
> Mar 27 20:57:51 2018	(r331650) @@ -52,6 +52,7 @@ #include
>  #include 
>  #include 
> +#include 
>  #endif
>  #include 
>  #ifdef illumos
> 
> Modified: head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
> ==============================================================================
> --- head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c	Tue Mar 27 20:54:57
> 2018	(r331649) +++ head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
> Tue Mar 27 20:57:51 2018	(r331650) @@ -44,6 +44,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  #include 
>  
>  extern void dtrace_getnanotime(struct timespec *tsp);
> 
> Modified: head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
> ==============================================================================
> --- head/sys/cddl/dev/dtrace/i386/dtrace_subr.c	Tue Mar 27 20:54:57
> 2018	(r331649) +++ head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
> Tue Mar 27 20:57:51 2018	(r331650) @@ -45,6 +45,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  #include 
>  
>  extern uintptr_t 	kernelbase;
> 
> Modified: head/sys/i386/i386/trap.c
> ==============================================================================
> --- head/sys/i386/i386/trap.c	Tue Mar 27 20:54:57 2018	(r331649)
> +++ head/sys/i386/i386/trap.c	Tue Mar 27 20:57:51 2018	(r331650)
> @@ -97,6 +97,7 @@ PMC_SOFT_DEFINE( , , page_fault, write);
>  #include 
>  #endif
>  #include 
> +#include 
>  #include 
>  #include 
>  
> @@ -416,14 +417,14 @@ user_trctrap_out:
>  					ucode = SEGV_ACCERR;
>  				} else {
>  					signo = SIGBUS;
> -					ucode = BUS_PAGE_FAULT;
> +					ucode = T_PAGEFLT;
>  				}
>  			} else if (prot_fault_translation == 1) {
>  				/*
>  				 * Always compat mode.
>  				 */
>  				signo = SIGBUS;
> -				ucode = BUS_PAGE_FAULT;
> +				ucode = T_PAGEFLT;
>  			} else {
>  				/*
>  				 * Always SIGSEGV mode.
> 
> Modified: head/sys/i386/linux/linux_sysvec.c
> ==============================================================================
> --- head/sys/i386/linux/linux_sysvec.c	Tue Mar 27 20:54:57 2018
> (r331649) +++ head/sys/i386/linux/linux_sysvec.c	Tue Mar 27 20:57:51
> 2018	(r331650) @@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$");
>  #include 
>  #include 
>  #include 
> +#include 
>  
>  #include 
>  #include 
> 
> Modified: head/sys/x86/include/signal.h
> ==============================================================================
> --- head/sys/x86/include/signal.h	Tue Mar 27 20:54:57 2018
> (r331649) +++ head/sys/x86/include/signal.h	Tue Mar 27 20:57:51
> 2018	(r331650) @@ -43,10 +43,6 @@
>  #include 
>  #include 
>  
> -#if __BSD_VISIBLE
> -#include 	/* codes for SIGILL, SIGFPE */
> -#endif
> -
>  #ifdef __i386__
>  typedef int sig_atomic_t;
>  
> 
> Modified: head/sys/x86/include/trap.h
> ==============================================================================
> --- head/sys/x86/include/trap.h	Tue Mar 27 20:54:57 2018
> (r331649) +++ head/sys/x86/include/trap.h	Tue Mar 27 20:57:51
> 2018	(r331650) @@ -66,30 +66,6 @@
>  #define	T_RESERVED	30	/* reserved (unknown) */
>  #define	T_DTRACE_RET	32	/* DTrace pid return */
>  
> -/* XXX most of the following codes aren't used, but could be. */
> -
> -/* definitions for  */
> -#define	    ILL_RESAD_FAULT	T_RESADFLT
> -#define	    ILL_PRIVIN_FAULT	T_PRIVINFLT
> -#define	    ILL_RESOP_FAULT	T_RESOPFLT
> -#define	    ILL_ALIGN_FAULT	T_ALIGNFLT
> -#define	    ILL_FPOP_FAULT	T_FPOPFLT	/* coprocessor
> operand fault */ -
> -/* old FreeBSD macros, deprecated */
> -#define	FPE_INTOVF_TRAP	0x1	/* integer overflow */
> -#define	FPE_INTDIV_TRAP	0x2	/* integer divide by zero */
> -#define	FPE_FLTDIV_TRAP	0x3	/* floating/decimal divide
> by zero */ -#define	FPE_FLTOVF_TRAP	0x4	/* floating
> overflow */ -#define	FPE_FLTUND_TRAP	0x5	/* floating
> underflow */ -#define	FPE_FPU_NP_TRAP	0x6	/* floating
> point unit not present  */ -#define	FPE_SUBRNG_TRAP
> 0x7	/* subrange out of bounds */ -
> -/* codes for SIGBUS */
> -#define	    BUS_PAGE_FAULT	T_PAGEFLT	/* page fault
> protection base */ -#define	    BUS_SEGNP_FAULT
> T_SEGNPFLT	/* segment not present */ -#define
> BUS_STK_FAULT	T_STKFLT	/* stack segment */ -#define
> BUS_SEGM_FAULT	T_RESERVED	/* segment protection base */ -
>  /* Trap's coming from user mode */
>  #define	T_USER	0x100
>  
> _______________________________________________
> svn-src-head@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org"


make buildkernel fails now with the error:

[...]
--- machdep.o ---
/usr/src/sys/amd64/amd64/machdep.c:520:20: error: use of undeclared identifier
'T_PROTFLT' ksi.ksi_trapno = T_PROTFLT;
                                 ^
--- modules-all ---
[...]

From owner-svn-src-all@freebsd.org  Wed Mar 28 05:21:03 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4E486F5D5A0;
 Wed, 28 Mar 2018 05:21:03 +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 9320275D72;
 Wed, 28 Mar 2018 05:21:02 +0000 (UTC)
 (envelope-from cy.schubert@cschubert.com)
Received: from spqr.komquats.com ([96.50.22.10]) by shaw.ca with ESMTPA
 id 13VzfoGwIYxCT13W1fKIfN; Tue, 27 Mar 2018 23:20:54 -0600
X-Authority-Analysis: v=2.3 cv=cav8UELM c=1 sm=1 tr=0
 a=jvE2nwUzI0ECrNeyr98KWA==:117 a=jvE2nwUzI0ECrNeyr98KWA==:17
 a=v2DPQv5-lfwA:10 a=YxBL1-UpAAAA:8 a=6I5d2MoRAAAA:8 a=_RjAawW3LSUfK_qug2oA:9
 a=iEftzS5lTzf907dh:21 a=Xk4QBb-rx3vUO4Uu:21 a=UM1k_8dLX-k8ut9f:21
 a=CjuIK1q_8ugA:10 a=ObycXa6Y4eVlmf85thwA:9 a=lq-CBCgAEkoObFiM:21
 a=Rs5RPl2N3c-OZ47p:21 a=WQy7hhfgomKDNVS9:21 a=_W_S_7VecoQA:10
 a=Ia-lj3WSrqcvXOmTRaiG:22 a=IjZwj45LgO3ly-622nXo:22
Received: from [10.196.232.159] (unknown [24.244.29.166])
 by spqr.komquats.com (Postfix) with ESMTPSA id 8B3CD143;
 Tue, 27 Mar 2018 22:20:50 -0700 (PDT)
MIME-Version: 1.0
From: Cy Schubert 
Subject: RE: svn commit: r331650 - in head/sys: amd64/amd64
 amd64/ia32amd64/linux amd64/linux32
 cddl/contrib/opensolaris/uts/intel/dtracecddl/dev/dtrace/amd64
 cddl/dev/dtrace/i386 i386/i386 i386/linux x86/inc...
Date: Tue, 27 Mar 2018 23:20:53 -0600
To: "O. Hartmann" , John Baldwin 
CC: "src-committers@freebsd.org" , 
 "svn-src-all@freebsd.org" , 
 "svn-src-head@freebsd.org" 
Message-Id: <20180328052050.8B3CD143@spqr.komquats.com>
X-CMAE-Envelope: MS4wfMbSnLmornqtuovjUO06nbr8dgLl9hxJANwsSj/AkWO40PNBo4XRpYeMggo6zigOYWy8FqUILq7MGCK6qo3/oldTvPDLT+BaiPKgcnEksw4fDrQC+VdL
 d2Q3bOM9voxC60vvarm/VXTJ64aZVoXLhXRW33IJbnhBAPbIIW+kHl6lrkx9K2R7qTzgMJLCPlI+4EJfm66BT2vc4rZrgBArfqpoR65gG0GAQttPpjahKEc+
 R6xjtMFg0SmHAvDBv6apulYAzSXULpeJETTUIs8J/YWIHMBRK9TivGjuU20u6/vgglY6NniV4uqgvKicFsbkCUOCiwHH7pbVPI+9IQBZClY=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
X-Content-Filtered-By: Mailman/MimeDel 2.1.25
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 05:21:03 -0000

Have you disabled DDB in your kernel config?

---
Sent using a tiny phone keyboard.
Apologies for any typos and autocorrect.
Also, this old phone only supports top post. Apologies.

Cy Schubert
 or 
The need of the many outweighs the greed of the few.
---

-----Original Message-----
From: O. Hartmann
Sent: 27/03/2018 22:45
To: John Baldwin
Cc: src-committers@freebsd.org; svn-src-all@freebsd.org; svn-src-head@freeb=
sd.org
Subject: Re: svn commit: r331650 - in head/sys: amd64/amd64 amd64/ia32amd64=
/linux amd64/linux32 cddl/contrib/opensolaris/uts/intel/dtracecddl/dev/dtra=
ce/amd64 cddl/dev/dtrace/i386 i386/i386 i386/linux x86/inc...

On Tue, 27 Mar 2018 20:57:51 +0000 (UTC)
John Baldwin  wrote:

> Author: jhb
> Date: Tue Mar 27 20:57:51 2018
> New Revision: 331650
> URL: https://svnweb.freebsd.org/changeset/base/331650
>=20
> Log:
>   Remove very old and unused signal information codes.
>  =20
>   These have been supplanted by the MI signal information codes in
>    since 7.0.  The FPE_*_TRAP ones were deprecated even
>   earlier in 1999.
>  =20
>   PR:		226579 (exp-run)
>   Reviewed by:	kib
>   Differential Revision:	https://reviews.freebsd.org/D14637
>=20
> Modified:
>   head/sys/amd64/amd64/trap.c
>   head/sys/amd64/ia32/ia32_signal.c
>   head/sys/amd64/linux/linux_sysvec.c
>   head/sys/amd64/linux32/linux32_sysvec.c
>   head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
>   head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
>   head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
>   head/sys/i386/i386/trap.c
>   head/sys/i386/linux/linux_sysvec.c
>   head/sys/x86/include/signal.h
>   head/sys/x86/include/trap.h
>=20
> Modified: head/sys/amd64/amd64/trap.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/amd64/amd64/trap.c	Tue Mar 27 20:54:57 2018
> (r331649) +++ head/sys/amd64/amd64/trap.c	Tue Mar 27 20:57:51
> 2018	(r331650) @@ -95,6 +95,7 @@ PMC_SOFT_DEFINE( , , page_fault,
> write); #include 
>  #endif
>  #include 
> +#include 
>  #include 
> =20
>  #ifdef KDTRACE_HOOKS
> @@ -338,14 +339,14 @@ trap(struct trapframe *frame)
>  					ucode =3D SEGV_ACCERR;
>  				} else {
>  					signo =3D SIGBUS;
> -					ucode =3D BUS_PAGE_FAULT;
> +					ucode =3D T_PAGEFLT;
>  				}
>  			} else if (prot_fault_translation =3D=3D 1) {
>  				/*
>  				 * Always compat mode.
>  				 */
>  				signo =3D SIGBUS;
> -				ucode =3D BUS_PAGE_FAULT;
> +				ucode =3D T_PAGEFLT;
>  			} else {
>  				/*
>  				 * Always SIGSEGV mode.
>=20
> Modified: head/sys/amd64/ia32/ia32_signal.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/amd64/ia32/ia32_signal.c	Tue Mar 27 20:54:57 2018
> (r331649) +++ head/sys/amd64/ia32/ia32_signal.c	Tue Mar 27 20:57:51
> 2018	(r331650) @@ -82,6 +82,7 @@ __FBSDID("$FreeBSD$");
>  #include 
>  #include 
>  #include 
> +#include 
> =20
>  #ifdef COMPAT_FREEBSD4
>  static void freebsd4_ia32_sendsig(sig_t, ksiginfo_t *, sigset_t *);
>=20
> Modified: head/sys/amd64/linux/linux_sysvec.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/amd64/linux/linux_sysvec.c	Tue Mar 27 20:54:57
> 2018	(r331649) +++ head/sys/amd64/linux/linux_sysvec.c	Tue Mar
> 27 20:57:51 2018	(r331650) @@ -72,6 +72,7 @@ __FBSDID("$FreeBSD$");
>  #include 
>  #include 
>  #include 
> +#include 
> =20
>  #include 
>  #include 
>=20
> Modified: head/sys/amd64/linux32/linux32_sysvec.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/amd64/linux32/linux32_sysvec.c	Tue Mar 27 20:54:57
> 2018	(r331649) +++ head/sys/amd64/linux32/linux32_sysvec.c	Tue
> Mar 27 20:57:51 2018	(r331650) @@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$");
>  #include 
>  #include 
>  #include 
> +#include 
> =20
>  #include 
>  #include 
>=20
> Modified: head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa=
.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
> Tue Mar 27 20:54:57 2018	(r331649) +++
> head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c	Tue
> Mar 27 20:57:51 2018	(r331650) @@ -52,6 +52,7 @@ #include
>  #include 
>  #include 
> +#include 
>  #endif
>  #include 
>  #ifdef illumos
>=20
> Modified: head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c	Tue Mar 27 20:54:57
> 2018	(r331649) +++ head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
> Tue Mar 27 20:57:51 2018	(r331650) @@ -44,6 +44,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  #include 
> =20
>  extern void dtrace_getnanotime(struct timespec *tsp);
>=20
> Modified: head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/cddl/dev/dtrace/i386/dtrace_subr.c	Tue Mar 27 20:54:57
> 2018	(r331649) +++ head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
> Tue Mar 27 20:57:51 2018	(r331650) @@ -45,6 +45,7 @@
>  #include 
>  #include 
>  #include 
> +#include 
>  #include 
> =20
>  extern uintptr_t 	kernelbase;
>=20
> Modified: head/sys/i386/i386/trap.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/i386/i386/trap.c	Tue Mar 27 20:54:57 2018	(r331649)
> +++ head/sys/i386/i386/trap.c	Tue Mar 27 20:57:51 2018	(r331650)
> @@ -97,6 +97,7 @@ PMC_SOFT_DEFINE( , , page_fault, write);
>  #include 
>  #endif
>  #include 
> +#include 
>  #include 
>  #include 
> =20
> @@ -416,14 +417,14 @@ user_trctrap_out:
>  					ucode =3D SEGV_ACCERR;
>  				} else {
>  					signo =3D SIGBUS;
> -					ucode =3D BUS_PAGE_FAULT;
> +					ucode =3D T_PAGEFLT;
>  				}
>  			} else if (prot_fault_translation =3D=3D 1) {
>  				/*
>  				 * Always compat mode.
>  				 */
>  				signo =3D SIGBUS;
> -				ucode =3D BUS_PAGE_FAULT;
> +				ucode =3D T_PAGEFLT;
>  			} else {
>  				/*
>  				 * Always SIGSEGV mode.
>=20
> Modified: head/sys/i386/linux/linux_sysvec.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/i386/linux/linux_sysvec.c	Tue Mar 27 20:54:57 2018
> (r331649) +++ head/sys/i386/linux/linux_sysvec.c	Tue Mar 27 20:57:51
> 2018	(r331650) @@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$");
>  #include 
>  #include 
>  #include 
> +#include 
> =20
>  #include 
>  #include 
>=20
> Modified: head/sys/x86/include/signal.h
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/x86/include/signal.h	Tue Mar 27 20:54:57 2018
> (r331649) +++ head/sys/x86/include/signal.h	Tue Mar 27 20:57:51
> 2018	(r331650) @@ -43,10 +43,6 @@
>  #include 
>  #include 
> =20
> -#if __BSD_VISIBLE
> -#include 	/* codes for SIGILL, SIGFPE */
> -#endif
> -
>  #ifdef __i386__
>  typedef int sig_atomic_t;
> =20
>=20
> Modified: head/sys/x86/include/trap.h
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/x86/include/trap.h	Tue Mar 27 20:54:57 2018
> (r331649) +++ head/sys/x86/include/trap.h	Tue Mar 27 20:57:51
> 2018	(r331650) @@ -66,30 +66,6 @@
>  #define	T_RESERVED	30	/* reserved (unknown) */
>  #define	T_DTRACE_RET	32	/* DTrace pid return */
> =20
> -/* XXX most of the following codes aren't used, but could be. */
> -
> -/* definitions for  */
> -#define	    ILL_RESAD_FAULT	T_RESADFLT
> -#define	    ILL_PRIVIN_FAULT	T_PRIVINFLT
> -#define	    ILL_RESOP_FAULT	T_RESOPFLT
> -#define	    ILL_ALIGN_FAULT	T_ALIGNFLT
> -#define	    ILL_FPOP_FAULT	T_FPOPFLT	/* coprocessor
> operand fault */ -
> -/* old FreeBSD macros, deprecated */
> -#define	FPE_INTOVF_TRAP	0x1	/* integer overflow */
> -#define	FPE_INTDIV_TRAP	0x2	/* integer divide by zero */
> -#define	FPE_FLTDIV_TRAP	0x3	/* floating/decimal divide
> by zero */ -#define	FPE_FLTOVF_TRAP	0x4	/* floating
> overflow */ -#define	FPE_FLTUND_TRAP	0x5	/* floating
> underflow */ -#define	FPE_FPU_NP_TRAP	0x6	/* floating
> point unit not present  */ -#define	FPE_SUBRNG_TRAP
> 0x7	/* subrange out of bounds */ -
> -/* codes for SIGBUS */
> -#define	    BUS_PAGE_FAULT	T_PAGEFLT	/* page fault
> protection base */ -#define	    BUS_SEGNP_FAULT
> T_SEGNPFLT	/* segment not present */ -#define
> BUS_STK_FAULT	T_STKFLT	/* stack segment */ -#define
> BUS_SEGM_FAULT	T_RESERVED	/* segment protection base */ -
>  /* Trap's coming from user mode */
>  #define	T_USER	0x100
> =20
> _______________________________________________
> svn-src-head@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org"


make buildkernel fails now with the error:

[...]
--- machdep.o ---
/usr/src/sys/amd64/amd64/machdep.c:520:20: error: use of undeclared identif=
ier
'T_PROTFLT' ksi.ksi_trapno =3D T_PROTFLT;
                                 ^
--- modules-all ---
[...]


From owner-svn-src-all@freebsd.org  Wed Mar 28 05:23:35 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04AE7F5D97E;
 Wed, 28 Mar 2018 05:23:35 +0000 (UTC)
 (envelope-from o.hartmann@walstatt.org)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.15])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass DE-2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 621AA76049;
 Wed, 28 Mar 2018 05:23:34 +0000 (UTC)
 (envelope-from o.hartmann@walstatt.org)
Received: from freyja.zeit4.iv.bundesimmobilien.de ([87.138.105.249]) by
 mail.gmx.com (mrgmx001 [212.227.17.190]) with ESMTPSA (Nemesis) id
 0LfkUs-1eC2I63lnu-00pOqV; Wed, 28 Mar 2018 07:23:29 +0200
Date: Wed, 28 Mar 2018 07:23:27 +0200
From: "O. Hartmann" 
To: Cy Schubert 
Cc: John Baldwin , "src-committers@freebsd.org"
 , "svn-src-all@freebsd.org"
 , "svn-src-head@freebsd.org"
 
Subject: Re: svn commit: r331650 - in head/sys: amd64/amd64
 amd64/ia32amd64/linux amd64/linux32
 cddl/contrib/opensolaris/uts/intel/dtracecddl/dev/dtrace/amd64
 cddl/dev/dtrace/i386 i386/i386 i386/linux x86/inc...
Message-ID: <20180328072327.4f45e3f0@freyja.zeit4.iv.bundesimmobilien.de>
In-Reply-To: <20180328052050.8B3CD143@spqr.komquats.com>
References: <20180328052050.8B3CD143@spqr.komquats.com>
Organization: Walstatt
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:v+hIgretdB14uCv9QqZNSe+cf+Ul/VyXi5UAfApKHKaSw2oYwg3
 gJGyfKoSCqnd6AxO+Qe+9WFdHdg08mYyF4VXAXRy17sxLfVZQkBCpMW/sFhNdvOdggDU/Hj
 Of+zsb1Ta2PVLbik2wY9JmRjkeHrK1Jmfz8NdTkw2EfZhgAcmfV/npHzA3FNm2Ueq+yORab
 u9zHnG0VIHz6efmlnSnRg==
X-UI-Out-Filterresults: notjunk:1;V01:K0:b6bOu4X9rJA=:gCebtTkujwoDKdzm5+VJUT
 11DMbBxwSJJtAjZYGbx6zbMdAH9RXntCPV83Rzqv/RjwPC0mu8sV4ZqCDPJxxPMmK8uWZKTov
 Y10ZzrFA1Sa3u6CI0gOpxA5IpsLatwMVH9DgZlSBtZFy+qLGMVCbw/qx8w8SwUlZOcHUDnS00
 S/OG0dlGRUUHedXwaqeCzMo2YPu8HryO5LjVc3pNnIeuTNxD6Nf4SuB0STxri6bFfwjIXXZns
 OpSQQj2lORkN3Ntv7ai8BUVi2yRGF/zwYUK3jHYsFvYyP4W4QI+YhE4v1cNcpM2bVPw5nYIgB
 nKKOGGBUAg8xWEELTrTGnyfl6WAlSafmJW5H+uumXlfHZi3DliznZS2gWqAUUUcxlf0Dakdxa
 rDeADOG2oagUD7Z4t8H0uXkcwNjWXfX7IFXiAHU0/XwF8obVFyecOO+KRBEOJGCk//0BNQYEN
 R8EdaMOvQKjQNi9sWz7FqKehIAfvTiPoRndRXHPXZhIuGZmR78AAGuSfk5Odmfwyz/tb3ty5e
 JspchLzqdIiE6Cmni52rteMaLO+44vpbSZ0qxylL0PDY2zxHUmJtQKfAA9rij6Ac8I8ova3og
 LtospVM9g/M4FmPOM72PAt60npXUJzYiOAVetCSiPxEHRiDrZ2hL3t7rrJ/5ESfiBCmhbKfrS
 G8vpWV93ezPpvE8am/u3zQZIbij38gXcK/rRUZaWUT08LlCKVuCfJ7XK1kw2fI4h4gK5rJbmx
 9Fl3vaPI0cFbkqydNrs9rT8OwNTuxcDIX9At/OjRqs4u35jiqEdEd2gKcmzlSoGBJy/S/p1WL
 h1PSlmudzGvgyxWVfZ8G3FeAq9SYPFmsuOgDCRRITG+YVuXclA=
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 05:23:35 -0000

On Tue, 27 Mar 2018 23:20:53 -0600
Cy Schubert  wrote:

> Have you disabled DDB in your kernel config?

I have. No debugger.

> 
> ---
> Sent using a tiny phone keyboard.
> Apologies for any typos and autocorrect.
> Also, this old phone only supports top post. Apologies.
> 
> Cy Schubert
>  or 
> The need of the many outweighs the greed of the few.
> ---
> 
> -----Original Message-----
> From: O. Hartmann
> Sent: 27/03/2018 22:45
> To: John Baldwin
> Cc: src-committers@freebsd.org; svn-src-all@freebsd.org;
> svn-src-head@freebsd.org Subject: Re: svn commit: r331650 - in head/sys:
> amd64/amd64 amd64/ia32amd64/linux amd64/linux32
> cddl/contrib/opensolaris/uts/intel/dtracecddl/dev/dtrace/amd64
> cddl/dev/dtrace/i386 i386/i386 i386/linux x86/inc...
> 
> On Tue, 27 Mar 2018 20:57:51 +0000 (UTC)
> John Baldwin  wrote:
> 
> > Author: jhb
> > Date: Tue Mar 27 20:57:51 2018
> > New Revision: 331650
> > URL: https://svnweb.freebsd.org/changeset/base/331650
> > 
> > Log:
> >   Remove very old and unused signal information codes.
> >   
> >   These have been supplanted by the MI signal information codes in
> >    since 7.0.  The FPE_*_TRAP ones were deprecated even
> >   earlier in 1999.
> >   
> >   PR:		226579 (exp-run)
> >   Reviewed by:	kib
> >   Differential Revision:	https://reviews.freebsd.org/D14637
> > 
> > Modified:
> >   head/sys/amd64/amd64/trap.c
> >   head/sys/amd64/ia32/ia32_signal.c
> >   head/sys/amd64/linux/linux_sysvec.c
> >   head/sys/amd64/linux32/linux32_sysvec.c
> >   head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
> >   head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
> >   head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
> >   head/sys/i386/i386/trap.c
> >   head/sys/i386/linux/linux_sysvec.c
> >   head/sys/x86/include/signal.h
> >   head/sys/x86/include/trap.h
> > 
> > Modified: head/sys/amd64/amd64/trap.c
> > ==============================================================================
> > --- head/sys/amd64/amd64/trap.c	Tue Mar 27 20:54:57 2018
> > (r331649) +++ head/sys/amd64/amd64/trap.c	Tue Mar 27 20:57:51
> > 2018	(r331650) @@ -95,6 +95,7 @@ PMC_SOFT_DEFINE( , , page_fault,
> > write); #include 
> >  #endif
> >  #include 
> > +#include 
> >  #include 
> >  
> >  #ifdef KDTRACE_HOOKS
> > @@ -338,14 +339,14 @@ trap(struct trapframe *frame)
> >  					ucode = SEGV_ACCERR;
> >  				} else {
> >  					signo = SIGBUS;
> > -					ucode = BUS_PAGE_FAULT;
> > +					ucode = T_PAGEFLT;
> >  				}
> >  			} else if (prot_fault_translation == 1) {
> >  				/*
> >  				 * Always compat mode.
> >  				 */
> >  				signo = SIGBUS;
> > -				ucode = BUS_PAGE_FAULT;
> > +				ucode = T_PAGEFLT;
> >  			} else {
> >  				/*
> >  				 * Always SIGSEGV mode.
> > 
> > Modified: head/sys/amd64/ia32/ia32_signal.c
> > ==============================================================================
> > --- head/sys/amd64/ia32/ia32_signal.c	Tue Mar 27 20:54:57 2018
> > (r331649) +++ head/sys/amd64/ia32/ia32_signal.c	Tue Mar 27 20:57:51
> > 2018	(r331650) @@ -82,6 +82,7 @@ __FBSDID("$FreeBSD$");
> >  #include 
> >  #include 
> >  #include 
> > +#include 
> >  
> >  #ifdef COMPAT_FREEBSD4
> >  static void freebsd4_ia32_sendsig(sig_t, ksiginfo_t *, sigset_t *);
> > 
> > Modified: head/sys/amd64/linux/linux_sysvec.c
> > ==============================================================================
> > --- head/sys/amd64/linux/linux_sysvec.c	Tue Mar 27 20:54:57
> > 2018	(r331649) +++ head/sys/amd64/linux/linux_sysvec.c	Tue Mar
> > 27 20:57:51 2018	(r331650) @@ -72,6 +72,7 @@ __FBSDID("$FreeBSD$");
> >  #include 
> >  #include 
> >  #include 
> > +#include 
> >  
> >  #include 
> >  #include 
> > 
> > Modified: head/sys/amd64/linux32/linux32_sysvec.c
> > ==============================================================================
> > --- head/sys/amd64/linux32/linux32_sysvec.c	Tue Mar 27 20:54:57
> > 2018	(r331649) +++ head/sys/amd64/linux32/linux32_sysvec.c	Tue
> > Mar 27 20:57:51 2018	(r331650) @@ -75,6 +75,7 @@
> > __FBSDID("$FreeBSD$"); #include 
> >  #include 
> >  #include 
> > +#include 
> >  
> >  #include 
> >  #include 
> > 
> > Modified: head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
> > ==============================================================================
> > --- head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
> > Tue Mar 27 20:54:57 2018	(r331649) +++
> > head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c	Tue
> > Mar 27 20:57:51 2018	(r331650) @@ -52,6 +52,7 @@ #include
> >  #include 
> >  #include 
> > +#include 
> >  #endif
> >  #include 
> >  #ifdef illumos
> > 
> > Modified: head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
> > ==============================================================================
> > --- head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c	Tue Mar 27 20:54:57
> > 2018	(r331649) +++ head/sys/cddl/dev/dtrace/amd64/dtrace_subr.c
> > Tue Mar 27 20:57:51 2018	(r331650) @@ -44,6 +44,7 @@
> >  #include 
> >  #include 
> >  #include 
> > +#include 
> >  #include 
> >  
> >  extern void dtrace_getnanotime(struct timespec *tsp);
> > 
> > Modified: head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
> > ==============================================================================
> > --- head/sys/cddl/dev/dtrace/i386/dtrace_subr.c	Tue Mar 27 20:54:57
> > 2018	(r331649) +++ head/sys/cddl/dev/dtrace/i386/dtrace_subr.c
> > Tue Mar 27 20:57:51 2018	(r331650) @@ -45,6 +45,7 @@
> >  #include 
> >  #include 
> >  #include 
> > +#include 
> >  #include 
> >  
> >  extern uintptr_t 	kernelbase;
> > 
> > Modified: head/sys/i386/i386/trap.c
> > ==============================================================================
> > --- head/sys/i386/i386/trap.c	Tue Mar 27 20:54:57 2018
> > (r331649) +++ head/sys/i386/i386/trap.c	Tue Mar 27 20:57:51
> > 2018	(r331650) @@ -97,6 +97,7 @@ PMC_SOFT_DEFINE( , , page_fault,
> > write); #include 
> >  #endif
> >  #include 
> > +#include 
> >  #include 
> >  #include 
> >  
> > @@ -416,14 +417,14 @@ user_trctrap_out:
> >  					ucode = SEGV_ACCERR;
> >  				} else {
> >  					signo = SIGBUS;
> > -					ucode = BUS_PAGE_FAULT;
> > +					ucode = T_PAGEFLT;
> >  				}
> >  			} else if (prot_fault_translation == 1) {
> >  				/*
> >  				 * Always compat mode.
> >  				 */
> >  				signo = SIGBUS;
> > -				ucode = BUS_PAGE_FAULT;
> > +				ucode = T_PAGEFLT;
> >  			} else {
> >  				/*
> >  				 * Always SIGSEGV mode.
> > 
> > Modified: head/sys/i386/linux/linux_sysvec.c
> > ==============================================================================
> > --- head/sys/i386/linux/linux_sysvec.c	Tue Mar 27 20:54:57 2018
> > (r331649) +++ head/sys/i386/linux/linux_sysvec.c	Tue Mar 27 20:57:51
> > 2018	(r331650) @@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$");
> >  #include 
> >  #include 
> >  #include 
> > +#include 
> >  
> >  #include 
> >  #include 
> > 
> > Modified: head/sys/x86/include/signal.h
> > ==============================================================================
> > --- head/sys/x86/include/signal.h	Tue Mar 27 20:54:57 2018
> > (r331649) +++ head/sys/x86/include/signal.h	Tue Mar 27 20:57:51
> > 2018	(r331650) @@ -43,10 +43,6 @@
> >  #include 
> >  #include 
> >  
> > -#if __BSD_VISIBLE
> > -#include 	/* codes for SIGILL, SIGFPE */
> > -#endif
> > -
> >  #ifdef __i386__
> >  typedef int sig_atomic_t;
> >  
> > 
> > Modified: head/sys/x86/include/trap.h
> > ==============================================================================
> > --- head/sys/x86/include/trap.h	Tue Mar 27 20:54:57 2018
> > (r331649) +++ head/sys/x86/include/trap.h	Tue Mar 27 20:57:51
> > 2018	(r331650) @@ -66,30 +66,6 @@
> >  #define	T_RESERVED	30	/* reserved (unknown) */
> >  #define	T_DTRACE_RET	32	/* DTrace pid return */
> >  
> > -/* XXX most of the following codes aren't used, but could be. */
> > -
> > -/* definitions for  */
> > -#define	    ILL_RESAD_FAULT	T_RESADFLT
> > -#define	    ILL_PRIVIN_FAULT	T_PRIVINFLT
> > -#define	    ILL_RESOP_FAULT	T_RESOPFLT
> > -#define	    ILL_ALIGN_FAULT	T_ALIGNFLT
> > -#define	    ILL_FPOP_FAULT	T_FPOPFLT	/* coprocessor
> > operand fault */ -
> > -/* old FreeBSD macros, deprecated */
> > -#define	FPE_INTOVF_TRAP	0x1	/* integer overflow */
> > -#define	FPE_INTDIV_TRAP	0x2	/* integer divide by zero
> > */ -#define	FPE_FLTDIV_TRAP	0x3	/* floating/decimal
> > divide by zero */ -#define	FPE_FLTOVF_TRAP	0x4	/*
> > floating overflow */ -#define	FPE_FLTUND_TRAP	0x5	/*
> > floating underflow */ -#define	FPE_FPU_NP_TRAP	0x6	/*
> > floating point unit not present  */ -#define	FPE_SUBRNG_TRAP
> > 0x7	/* subrange out of bounds */ -
> > -/* codes for SIGBUS */
> > -#define	    BUS_PAGE_FAULT	T_PAGEFLT	/* page fault
> > protection base */ -#define	    BUS_SEGNP_FAULT
> > T_SEGNPFLT	/* segment not present */ -#define
> > BUS_STK_FAULT	T_STKFLT	/* stack segment */ -#define
> > BUS_SEGM_FAULT	T_RESERVED	/* segment protection base */ -
> >  /* Trap's coming from user mode */
> >  #define	T_USER	0x100
> >  
> > _______________________________________________
> > svn-src-head@freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/svn-src-head
> > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org"  
> 
> 
> make buildkernel fails now with the error:
> 
> [...]
> --- machdep.o ---
> /usr/src/sys/amd64/amd64/machdep.c:520:20: error: use of undeclared identifier
> 'T_PROTFLT' ksi.ksi_trapno = T_PROTFLT;
>                                  ^
> --- modules-all ---
> [...]
> 


From owner-svn-src-all@freebsd.org  Wed Mar 28 05:29:48 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DDA87F5DDD4;
 Wed, 28 Mar 2018 05:29:48 +0000 (UTC)
 (envelope-from danfe@freebsd.org)
Received: from freefall.freebsd.org (freefall.freebsd.org
 [IPv6:2610:1c1:1:6074::16:84])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "freefall.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 872837638B;
 Wed, 28 Mar 2018 05:29:48 +0000 (UTC)
 (envelope-from danfe@freebsd.org)
Received: by freefall.freebsd.org (Postfix, from userid 1033)
 id 6FB3F1DADA; Wed, 28 Mar 2018 05:29:48 +0000 (UTC)
Date: Wed, 28 Mar 2018 05:29:48 +0000
From: Alexey Dokuchaev 
To: John Baldwin 
Cc: Warner Losh , Kyle Evans ,
 svn-src-head@freebsd.org, svn-src-all@freebsd.org,
 src-committers 
Subject: Re: svn commit: r331209 - head
Message-ID: <20180328052948.GA21068@FreeBSD.org>
References: <201803191527.w2JFRr7B058668@repo.freebsd.org>
 <3226647.aiAOVF4eaK@ralph.baldwin.cx>
 <20180327051912.GA5729@FreeBSD.org>
 <11592636.Xep9SDNT9W@ralph.baldwin.cx>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <11592636.Xep9SDNT9W@ralph.baldwin.cx>
User-Agent: Mutt/1.9.2 (2017-12-15)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 05:29:49 -0000

On Tue, Mar 27, 2018 at 09:48:43AM -0700, John Baldwin wrote:
> On Tuesday, March 27, 2018 05:19:12 AM Alexey Dokuchaev wrote:
> > On Thu, Mar 22, 2018 at 08:52:47AM -0700, John Baldwin wrote:
> > > On Thursday, March 22, 2018 04:39:38 AM Alexey Dokuchaev wrote:
> > > > > ...
> > > > Right, but John had mentioned extra reboot *between* installkernel and
> > > > installworld, which I've never heard of before.
> > > 
> > > From the end up of src/UPDATING:
> > > 
> > >         
> > >         make buildworld
> > >         make kernel KERNCONF=YOUR_KERNEL_HERE
> > >         
> > 
> > If by "reboot" in your original message you meant "drop to single user"
> > then there's no confusion.  It's just that in my understanding "reboot"
> > means, well, reboot.
> 
> No, I meant reboot and it clearly says here "reboot".  Note that
> 'make kernel' does 'make buildkernel' and 'make installkernel', so
> the reboot quoted above is after installkernel but before installworld.

Ah, OK, so "reboot in single user" above means "reboot, then boot -s".
I see now, sorry for the noise. :-(

./danfe

From owner-svn-src-all@freebsd.org  Wed Mar 28 05:55:02 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2660EF5F0B4
 for ;
 Wed, 28 Mar 2018 05:55:02 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: from mail-yb0-x243.google.com (mail-yb0-x243.google.com
 [IPv6:2607:f8b0:4002:c09::243])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id ADC2E77271
 for ; Wed, 28 Mar 2018 05:55:01 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: by mail-yb0-x243.google.com with SMTP id m185-v6so408653ybm.11
 for ; Tue, 27 Mar 2018 22:55:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=eitanadler.com; s=0xdeadbeef;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=EYtVbeL6TsObW9u86kRzjVLkBSI/QY1EeK5YN2r3/kI=;
 b=Ixvajdq0WKRlgfoeUWyP3FBRLZycRL7cExq+/NfTw3+zkoYE9fRKvKOBpJ2PklVFDH
 Cerh5y7R9BKzoc3y3de4T2cTdmgBvLTYm9zGvAaX0If8+YmjhLxRemTiPmisMAJQHydg
 C6QjKebfap+jETqmoN3UxaP4YWYG4VSQ9ZtqA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=EYtVbeL6TsObW9u86kRzjVLkBSI/QY1EeK5YN2r3/kI=;
 b=YxOsSS6LNR3ND/6HxxxuxqRWXaTyZjsjlzzhZ8cgaGOXZeuCgcGAGGF/WY2RPjqw++
 nOxkD1ugrfH3GqNvDDwq+PwyRusw0dYf+7R2O5kbtKm6Hxw39aitergZ9pbfj4WlKz/O
 4q2uoFzD+yQ1g2KA4tnJ/iE9aQui0GxcCuZeUfKrQmcnPjANZaEyrp14QpqDUiM8TEiM
 shol7lNUvp/jTWUGMYNcJ1QvmzUyD2f1AUWDLs/6tHS+qx3MFFULWPTuHOXZY8fq6CcB
 azL5W1JBpqiuOkRUuYkDGIBcmkGkZX6n9lJxyutaE8XzxSxAH9TjSlZuA1fSYB/uqzHX
 j/nw==
X-Gm-Message-State: AElRT7ErX4O0L+bsnbEyMfXFVI/3pfEdeuhK6M+UCnRgS01uLhdL0KEm
 4hVaI7lxv1fz1hg+n/RRMEMwlLbVSVYyoDA8CEMtqA==
X-Google-Smtp-Source: AIpwx4/gx8C6r5dOYXDLY9KeCnXRFHK23rSLPhMYfEil08sEcHWdjPoypKkZhn7v/YY00D6cuSt1nq9k1p4nWw4PFeM=
X-Received: by 2002:a25:268f:: with SMTP id
 m137-v6mr1285531ybm.460.1522216500968; 
 Tue, 27 Mar 2018 22:55:00 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a5b:990:0:0:0:0:0 with HTTP;
 Tue, 27 Mar 2018 22:54:30 -0700 (PDT)
In-Reply-To: 
References: <201803270337.w2R3b4iv035285@repo.freebsd.org>
 <20180327081535.0dacffcb@freyja.zeit4.iv.bundesimmobilien.de>
 <20180327082651.28258a8c@freyja.zeit4.iv.bundesimmobilien.de>
 
 <20180327101309.GA75720@freefall.freebsd.org>
 
From: Eitan Adler 
Date: Tue, 27 Mar 2018 22:54:30 -0700
Message-ID: 
Subject: Re: svn commit: r331606 - in head/sys: amd64/include i386/include
 x86/x86 x86/xen
To: Jeff Roberson 
Cc: Li-Wen Hsu , "O. Hartmann" , 
 Jeff Roberson , Peter Holm ,
 svn-src-head@freebsd.org, 
 svn-src-all@freebsd.org, src-committers 
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 05:55:02 -0000

On 27 March 2018 at 14:07, Jeff Roberson  wrote:
> On Tue, 27 Mar 2018, Li-Wen Hsu wrote:
>
>> On Mon, Mar 26, 2018 at 20:35:12 -1000, Jeff Roberson wrote:
>>>
>>> The patch has been on my branch for weeks and has been tested by a half
>>> dozen people.  I'm sorry it does not work for you.  If you reverted
>>> 331605
>>> the change that followed should not have built properly.  Did you build
>>> cleanly?  Can you share your kernel config?
>>>
>>> I tried with and without EARLY_AP_STARTUP and with and without NUMA.  I'm
>>> not having any trouble booting.  Did you make cleandepend && make depend?
>>
>>
>> It also hangs in our testing system:
>>
>> https://ci.freebsd.org/job/FreeBSD-head-amd64-test/6817/console
>> https://ci.freebsd.org/job/FreeBSD-head-i386-test/1000/console
>>
>> It is built cleanly and uses unmodified GENERIC config.
>>
>> The artifacts used are available here:
>>
>> https://artifact.ci.freebsd.org/snapshot/head/r331606/amd64/amd64/
>> https://artifact.ci.freebsd.org/snapshot/head/r331606/i386/i386/
>>
>> Hope these information help.
>
>
> Could someone who was experiencing the hang try the enclosed patch?  I can
> only verify that it continues to boot for me but I believe this fixes the
> bug on other systems.

This patch works for me on r331656M.




-- 
Eitan Adler

From owner-svn-src-all@freebsd.org  Wed Mar 28 05:58:09 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B2CB7F5F34A;
 Wed, 28 Mar 2018 05:58:09 +0000 (UTC)
 (envelope-from eadler@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6689A77460;
 Wed, 28 Mar 2018 05:58:09 +0000 (UTC)
 (envelope-from eadler@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5D35826CA7;
 Wed, 28 Mar 2018 05:58:09 +0000 (UTC)
 (envelope-from eadler@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2S5w9Jh039920;
 Wed, 28 Mar 2018 05:58:09 GMT (envelope-from eadler@FreeBSD.org)
Received: (from eadler@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2S5w9se039919;
 Wed, 28 Mar 2018 05:58:09 GMT (envelope-from eadler@FreeBSD.org)
Message-Id: <201803280558.w2S5w9se039919@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: eadler set sender to
 eadler@FreeBSD.org using -f
From: Eitan Adler 
Date: Wed, 28 Mar 2018 05:58:09 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331661 - stable/11/share/misc
X-SVN-Group: stable-11
X-SVN-Commit-Author: eadler
X-SVN-Commit-Paths: stable/11/share/misc
X-SVN-Commit-Revision: 331661
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 05:58:09 -0000

Author: eadler
Date: Wed Mar 28 05:58:08 2018
New Revision: 331661
URL: https://svnweb.freebsd.org/changeset/base/331661

Log:
  MFC: r331533
  
  [pci-vendors] Update to 2018-03-21

Modified:
  stable/11/share/misc/pci_vendors
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/share/misc/pci_vendors
==============================================================================
--- stable/11/share/misc/pci_vendors	Wed Mar 28 04:38:45 2018	(r331660)
+++ stable/11/share/misc/pci_vendors	Wed Mar 28 05:58:08 2018	(r331661)
@@ -1,10 +1,9 @@
 # $FreeBSD$
 
-#
 #	List of PCI ID's
 #
-#	Version: 2018.03.06
-#	Date:    2018-03-06 03:15:02
+#	Version: 2018.03.21
+#	Date:    2018-03-21 03:15:01
 #
 #	Maintained by Albert Pool, Martin Mares, and other volunteers from
 #	the PCI ID Project at http://pci-ids.ucw.cz/.
@@ -6393,6 +6392,7 @@
 		1077 000b  25GE 2P QL41262HxCU-DE Adapter
 		1077 0011  FastLinQ QL41212H 25GbE Adapter
 		1077 0012  FastLinQ QL41112H 10GbE Adapter
+		1077 0039  QLogic QL41262 PCIe 25Gb 2-Port SFP28 Ethernet Adapter
 		1590 021d  10/25GbE 2P QL41222HLCU-HP Adapter
 		1590 021e  10/25GbE 2P QL41162HMRJ-HP Adapter
 		1590 021f  10/25GbE 2P QL41262HMCU-HP Adapter
@@ -8334,8 +8334,10 @@
 	0100  Lightning 1200
 		10dd 0023  Lightning 1200 15+16M
 10de  NVIDIA Corporation
-	0008  NV1 [EDGE 3D]
-	0009  NV1 [EDGE 3D]
+	0008  NV1 [STG2000X-B Series]
+	0009  NV1 [NV1 Series]
+	0018  NV3 [Riva 128]
+	0019  NV3 [Riva 128ZX]
 	0020  NV4 [Riva TNT]
 		1043 0200  V3400 TNT
 		1048 0c18  Erazor II SGRAM
@@ -8706,12 +8708,12 @@
 	00f9  NV40 [GeForce 6800 GT/GTO/Ultra]
 		10de 00f9  NV40 [GeForce 6800 GT]
 		1682 2120  GEFORCE 6800 GT PCI-E
-	00fa  NV36 [GeForce PCX 5750]
-	00fb  NV38 [GeForce PCX 5900]
+	00fa  NV39 [GeForce PCX 5750]
+	00fb  NV35 [GeForce PCX 5900]
 	00fc  NV37GL [Quadro FX 330/GeForce PCX 5300]
 	00fd  NV37GL [Quadro PCI-E Series]
 	00fe  NV38GL [Quadro FX 1300]
-	00ff  NV18 [GeForce PCX 4300]
+	00ff  NV19 [GeForce PCX 4300]
 	0100  NV10 [GeForce 256 SDR]
 		1043 0200  AGP-V6600 SGRAM
 		1043 0201  AGP-V6600 SDRAM
@@ -11072,7 +11074,7 @@
 	1b80  GP104 [GeForce GTX 1080]
 	1b81  GP104 [GeForce GTX 1070]
 	1b82  GP104 [GeForce GTX 1070 Ti]
-	1b83  GP104
+	1b83  GP104 [GeForce GTX 1060 6GB]
 	1b84  GP104 [GeForce GTX 1060 3GB]
 	1b87  GP104 [P104-100]
 	1ba0  GP104M [GeForce GTX 1080 Mobile]
@@ -13398,6 +13400,8 @@
 1170  Inventec Corporation
 1171  Loughborough Sound Images Plc
 1172  Altera Corporation
+	00a7  Stratix V
+	0530  Stratix IV
 1173  Adobe Systems, Inc
 1174  Bridgeport Machines
 1175  Mitron Computer Inc.
@@ -15569,6 +15573,9 @@
 	5163  RealSSD P425m
 	5180  9100 PRO NVMe SSD
 	5181  9100 MAX NVMe SSD
+	5190  9200 ECO NVMe SSD
+	5191  9200 PRO NVMe SSD
+	5192  9200 MAX NVMe SSD
 1345  Arescom Inc
 1347  Odetics
 1349  Sumitomo Electric Industries, Ltd.
@@ -17068,7 +17075,7 @@
 		1028 1fc1  Express Flash NVMe PM1725 800GB SFF
 		1028 1fc2  Express Flash NVMe PM1725 1.6TB SFF
 		1028 1fc4  Express Flash NVMe PM1725 1.6TB AIC
-	a822  NVMe SSD Controller 172Xa
+	a822  NVMe SSD Controller 172Xa/172Xb
 		1014 0621  PCIe3 1.6TB NVMe Flash Adapter II x8
 		1014 0622  PCIe3 3.2TB NVMe Flash Adapter II x8
 		1014 0629  PCIe3 6.4TB NVMe Flash Adapter II x8
@@ -17079,6 +17086,14 @@
 		1028 1fdd  Express Flash PM1725a 1.6TB AIC
 		1028 1fde  Express Flash PM1725a 3.2TB AIC
 		1028 1fdf  Express Flash PM1725a 6.4TB AIC
+		1028 1ff3  Express Flash PM1725b 1.6TB SFF
+		1028 1ff4  Express Flash PM1725b 3.2TB SFF
+		1028 1ff5  Express Flash PM1725b 6.4TB SFF
+		1028 1ff6  Express Flash PM1725b 12.8TB SFF
+		1028 1ff7  Express Flash PM1725b 1.6TB AIC
+		1028 1ff8  Express Flash PM1725b 3.2TB AIC
+		1028 1ff9  Express Flash PM1725b 6.4TB AIC
+		1028 1ffa  Express Flash PM1725b 12.8TB AIC
 144e  OLITEC
 144f  Askey Computer Corp.
 1450  Octave Communications Ind.
@@ -19921,6 +19936,7 @@
 	1914  VirtexUS ASIC Emulation Board [DNVUF2A]
 	1915  Arria10 PCIe MainRef Design [DNPCIe_80G_A10_LL]
 	1916  VirtexUS PCIe Accelerator Board [DNVUF2_HPC_PCIe]
+	1917  UltrascalePlus PCIe Accelerator Board [DNPCIe_400G_VU_LL]
 	1a00  Virtex6 PCIe DMA Netlist Design
 	1a01  Virtex6 PCIe Darklite Design [DNPCIe_HXT_10G_LL]
 	1a02  Virtex7 PCIe DMA Netlist Design
@@ -19931,6 +19947,7 @@
 	1a08  KintexUS PCIe Darklite Design [DNPCIe_40G_KU_LL_QSFP]
 	1a09  Arria10 PCIe Darklite Design [DNPCIe_80G_A10_LL]
 	1a0a  VirtexUS PCIe Darklite Design [DNVUF2_HPC_PCIe]
+	1a0b  UltrascalePlus PCIe Darklite Design [DNPCIe_400G_VU_LL]
 17e4  Sectra AB
 	0001  KK671 Cardbus encryption board
 	0002  KK672 Cardbus encryption board
@@ -20786,7 +20803,7 @@
 	2010  PCI-Express EVR
 # PC-260-101-03
 	2020  PGP-GEN3 PCIe
-	2030  data_dev
+	2030  AXI Stream DAQ PCIe card
 1a51  Hectronic AB
 1a55  Rohde & Schwarz DVS GmbH
 	0010  SDStationOEM
@@ -20946,6 +20963,7 @@
 		1849 1080  Motherboard
 	1142  ASM1042A USB 3.0 Host Controller
 	1242  ASM1142 USB 3.1 Host Controller
+	1343  ASM1143 USB 3.1 Host Controller
 1b2c  Opal-RT Technologies Inc.
 1b36  Red Hat, Inc.
 	0001  QEMU PCI-PCI bridge
@@ -21031,8 +21049,8 @@
 # 2xHDMI and 2xHD-SDI inputs
 	e5f4  MPEG2 and H264 Encoder-Transcoder
 	f1c4  Dual ASI-RX/TX-CI card
-1b66  Deltacast
-	0007  Delta-3G-elp-11 SDI I/O Board
+1b66  DELTACAST
+	0007  DELTA-3G-elp-d
 1b6f  Etron Technology, Inc.
 	7023  EJ168 USB 3.0 Host Controller
 	7052  EJ188/EJ198 USB 3.0 Host Controller
@@ -23919,6 +23937,7 @@
 	1563  Ethernet Controller 10G X550T
 		1028 1fa8  Ethernet 10G 4P X550/I350 rNDC
 		1028 1fa9  Ethernet 10G 4P X550 rNDC
+		1170 0001  Intel Ethernet Controller X550-T2 OCP card
 		14c0 1201  X550 10Gb 2P RJ45 OCP Mezz
 		1590 00d1  Ethernet 10Gb 2-port 562T Adapter
 		1590 00d2  Ethernet 10Gb 2-port 562FLR-T Adapter
@@ -29137,6 +29156,7 @@
 	a2ed  200 Series PCH PCI Express Root Port #23
 	a2ee  200 Series PCH PCI Express Root Port #24
 	a2f0  200 Series PCH HD Audio
+	a370  Wireless-AC 9560 [Jefferson Peak]
 	a620  6400/6402 Advanced Memory Buffer (AMB)
 	abc0  Omni-Path Fabric Switch Silicon 100 Series
 	b152  21152 PCI-to-PCI Bridge

From owner-svn-src-all@freebsd.org  Wed Mar 28 07:42:52 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B3FA5F66157;
 Wed, 28 Mar 2018 07:42:51 +0000 (UTC)
 (envelope-from philip@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 620307AB22;
 Wed, 28 Mar 2018 07:42:51 +0000 (UTC)
 (envelope-from philip@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5C3F727E45;
 Wed, 28 Mar 2018 07:42:51 +0000 (UTC)
 (envelope-from philip@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2S7gpX5094056;
 Wed, 28 Mar 2018 07:42:51 GMT (envelope-from philip@FreeBSD.org)
Received: (from philip@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2S7goSe094048;
 Wed, 28 Mar 2018 07:42:50 GMT (envelope-from philip@FreeBSD.org)
Message-Id: <201803280742.w2S7goSe094048@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: philip set sender to
 philip@FreeBSD.org using -f
From: Philip Paeps 
Date: Wed, 28 Mar 2018 07:42:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331662 - stable/11/contrib/tzdata
X-SVN-Group: stable-11
X-SVN-Commit-Author: philip
X-SVN-Commit-Paths: stable/11/contrib/tzdata
X-SVN-Commit-Revision: 331662
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 07:42:52 -0000

Author: philip
Date: Wed Mar 28 07:42:50 2018
New Revision: 331662
URL: https://svnweb.freebsd.org/changeset/base/331662

Log:
  MFC r331481: Import tzdata 2018d

Added:
  stable/11/contrib/tzdata/ziguard.awk
     - copied unchanged from r331481, head/contrib/tzdata/ziguard.awk
Modified:
  stable/11/contrib/tzdata/CONTRIBUTING
  stable/11/contrib/tzdata/Makefile
  stable/11/contrib/tzdata/NEWS
  stable/11/contrib/tzdata/africa
  stable/11/contrib/tzdata/antarctica
  stable/11/contrib/tzdata/asia
  stable/11/contrib/tzdata/australasia
  stable/11/contrib/tzdata/backzone
  stable/11/contrib/tzdata/checktab.awk
  stable/11/contrib/tzdata/europe
  stable/11/contrib/tzdata/northamerica
  stable/11/contrib/tzdata/southamerica
  stable/11/contrib/tzdata/theory.html
  stable/11/contrib/tzdata/version
  stable/11/contrib/tzdata/zishrink.awk
  stable/11/contrib/tzdata/zone.tab
  stable/11/contrib/tzdata/zone1970.tab
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/tzdata/CONTRIBUTING
==============================================================================
--- stable/11/contrib/tzdata/CONTRIBUTING	Wed Mar 28 05:58:08 2018	(r331661)
+++ stable/11/contrib/tzdata/CONTRIBUTING	Wed Mar 28 07:42:50 2018	(r331662)
@@ -25,7 +25,8 @@ justification.  Citations should use https: URLs if av
 
 Please submit changes against either the latest release in
  or the master branch of the development
-repository.  If you use Git the following workflow may be helpful:
+repository.  The latter is preferred.  If you use Git the following
+workflow may be helpful:
 
   * Copy the development repository.
 
@@ -42,6 +43,12 @@ repository.  If you use Git the following workflow may
 
       git checkout -b mybranch
 
+  * Sleuth by using 'git blame'.  For example, when fixing data for
+    Africa/Sao_Tome, if the command 'git blame africa' outputs a line
+    '2951fa3b (Paul Eggert 2018-01-08 09:03:13 -0800 1068) Zone
+    Africa/Sao_Tome 0:26:56 - LMT 1884', commit 2951fa3b should
+    provide some justification for the 'Zone Africa/Sao_Tome' line.
+
   * Edit source files.  Include commentary that justifies the
     changes by citing reliable sources.
 
@@ -66,6 +73,9 @@ repository.  If you use Git the following workflow may
     for others to review.
 
       git send-email master
+
+    For an archived example of such an email, see
+    .
 
   * Start anew by getting current with the master branch again
     (the second step above).

Modified: stable/11/contrib/tzdata/Makefile
==============================================================================
--- stable/11/contrib/tzdata/Makefile	Wed Mar 28 05:58:08 2018	(r331661)
+++ stable/11/contrib/tzdata/Makefile	Wed Mar 28 07:42:50 2018	(r331662)
@@ -10,6 +10,15 @@ VERSION=	unknown
 # Email address for bug reports.
 BUGEMAIL=	tz@iana.org
 
+# Choose source data features.  To get new features right away, use:
+#	DATAFORM=	vanguard
+# To wait a while before using new features, to give downstream users
+# time to upgrade zic (the default), use:
+#	DATAFORM=	main
+# To wait even longer for new features, use:
+#	DATAFORM=	rearguard
+DATAFORM=		main
+
 # Change the line below for your time zone (after finding the zone you want in
 # the time zone files, or adding it to a time zone file).
 # Alternately, if you discover you've got the wrong time zone, you can just
@@ -25,10 +34,10 @@ LOCALTIME=	GMT
 # for handling POSIX-style time zone environment variables,
 # change the line below (after finding the zone you want in the
 # time zone files, or adding it to a time zone file).
-# (When a POSIX-style environment variable is handled, the rules in the
+# When a POSIX-style environment variable is handled, the rules in the
 # template file are used to determine "spring forward" and "fall back" days and
 # times; the environment variable itself specifies UT offsets of standard and
-# summer time.)
+# daylight saving time.
 # Alternately, if you discover you've got the wrong time zone, you can just
 #	zic -p rightzone
 # to correct things.
@@ -189,13 +198,18 @@ LDLIBS=
 #  -DHAVE_STDINT_H if you have a non-C99 compiler with 
 #  -DHAVE_STRFTIME_L if  declares locale_t and strftime_l
 #  -DHAVE_STRDUP=0 if your system lacks the strdup function
+#  -DHAVE_STRTOLL=0 if your system lacks the strtoll function
 #  -DHAVE_SYMLINK=0 if your system lacks the symlink function
 #  -DHAVE_SYS_STAT_H=0 if your compiler lacks a 
 #  -DHAVE_SYS_WAIT_H=0 if your compiler lacks a 
 #  -DHAVE_TZSET=0 if your system lacks a tzset function
 #  -DHAVE_UNISTD_H=0 if your compiler lacks a 
 #  -Dlocale_t=XXX if your system uses XXX instead of locale_t
+#  -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers
+#	with external linkage, e.g., applications cannot define 'localtime'.
 #  -Dssize_t=long on hosts like MS-Windows that lack ssize_t
+#  -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has
+#	security implications and is not recommended for general use
 #  -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires;
 #	not needed by the main-program tz code, which is single-threaded.
 #	Append other compiler flags as needed, e.g., -pthread on GNU/Linux.
@@ -394,13 +408,19 @@ SAFE_CHARSET3=	'abcdefghijklmnopqrstuvwxyz{|}~'
 SAFE_CHARSET=	$(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)
 SAFE_CHAR=	'[]'$(SAFE_CHARSET)'-]'
 
+# Non-ASCII non-letters that OK_CHAR allows, as these characters are
+# useful in commentary.  XEmacs 21.5.34 displays them correctly,
+# presumably because they are Latin-1.
+UNUSUAL_OK_CHARSET= °±½¾×
+
 # OK_CHAR matches any character allowed in the distributed files.
-# This is the same as SAFE_CHAR, except that multibyte letters are
-# also allowed so that commentary can contain people's names and quote
-# non-English sources.  For non-letters the sources are limited to
-# ASCII renderings for the convenience of maintainers whose text editors
-# mishandle UTF-8 by default (e.g., XEmacs 21.4.22).
-OK_CHAR=	'[][:alpha:]'$(SAFE_CHARSET)'-]'
+# This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and
+# multibyte letters are also allowed so that commentary can contain a
+# few safe symbols and people's names and can quote non-English sources.
+# Other non-letters are limited to ASCII renderings for the
+# convenience of maintainers using XEmacs 21.5.34, which by default
+# mishandles Unicode characters U+0100 and greater.
+OK_CHAR=	'[][:alpha:]$(UNUSUAL_OK_CHARSET)'$(SAFE_CHARSET)'-]'
 
 # SAFE_LINE matches a line of safe characters.
 # SAFE_SHARP_LINE is similar, except any OK character can follow '#';
@@ -462,10 +482,12 @@ TDATA=		$(YDATA) $(NDATA) $(BACKWARD)
 ZONETABLES=	zone1970.tab zone.tab
 TABDATA=	iso3166.tab $(TZDATA_TEXT) $(ZONETABLES)
 LEAP_DEPS=	leapseconds.awk leap-seconds.list
-TZDATA_ZI_DEPS=	zishrink.awk version $(TDATA) $(PACKRATDATA)
+TZDATA_ZI_DEPS=	ziguard.awk zishrink.awk version $(TDATA) $(PACKRATDATA)
+DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA)
 DATA=		$(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \
 			leapseconds yearistype.sh $(ZONETABLES)
-AWK_SCRIPTS=	checklinks.awk checktab.awk leapseconds.awk zishrink.awk
+AWK_SCRIPTS=	checklinks.awk checktab.awk leapseconds.awk \
+			ziguard.awk zishrink.awk
 MISC=		$(AWK_SCRIPTS) zoneinfo2tdf.pl
 TZS_YEAR=	2050
 TZS=		to$(TZS_YEAR).tzs
@@ -499,7 +521,8 @@ VERSION_DEPS= \
 
 SHELL=		/bin/sh
 
-all:		tzselect yearistype zic zdump libtz.a $(TABDATA)
+all:		tzselect yearistype zic zdump libtz.a $(TABDATA) \
+		  vanguard.zi main.zi rearguard.zi
 
 ALL:		all date $(ENCHILADA)
 
@@ -534,11 +557,15 @@ version:	$(VERSION_DEPS)
 		printf '%s\n' "$$V" >$@.out
 		mv $@.out $@
 
-# This file can be tailored by setting BACKWARD, PACKRATDATA, etc.
-tzdata.zi:	$(TZDATA_ZI_DEPS)
+# These files can be tailored by setting BACKWARD, PACKRATDATA, etc.
+vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS)
+		$(AWK) -v outfile='$@' -f ziguard.awk $(TDATA) $(PACKRATDATA) \
+		  >$@.out
+		mv $@.out $@
+tzdata.zi:	$(DATAFORM).zi version
 		version=`sed 1q version` && \
 		  LC_ALL=C $(AWK) -v version="$$version" -f zishrink.awk \
-		    $(TDATA) $(PACKRATDATA) >$@.out
+		    $(DATAFORM).zi >$@.out
 		mv $@.out $@
 
 version.h:	version
@@ -614,19 +641,29 @@ posix_packrat:
 
 zones:		$(REDO)
 
+# dummy.zd is not a real file; it is mentioned here only so that the
+# top-level 'make' does not have a syntax error.
+ZDS = dummy.zd
+# Rule used only by submakes invoked by the $(TZS_NEW) rule.
+# It is separate so that GNU 'make -j' can run instances in parallel.
+$(ZDS): zdump
+		./zdump -i -c $(TZS_YEAR) '$(wd)/'$$(expr $@ : '\(.*\).zd') >$@
+
 $(TZS_NEW):	tzdata.zi zdump zic
-		mkdir -p tzs.dir
+		rm -fr tzs.dir
+		mkdir tzs.dir
 		$(zic) -d tzs.dir tzdata.zi
 		$(AWK) '/^L/{print "Link\t" $$2 "\t" $$3}' \
 		   tzdata.zi | LC_ALL=C sort >$@.out
 		wd=`pwd` && \
-		zones=`$(AWK) -v wd="$$wd" \
-				'/^Z/{print wd "/tzs.dir/" $$2}' tzdata.zi \
-			 | LC_ALL=C sort` && \
-		./zdump -i -c $(TZS_YEAR) $$zones >>$@.out
-		sed 's,^TZ=".*tzs\.dir/,TZ=",' $@.out >$@.sed.out
-		rm -fr tzs.dir $@.out
-		mv $@.sed.out $@
+		set x `$(AWK) '/^Z/{print "tzs.dir/" $$2 ".zd"}' tzdata.zi \
+			| LC_ALL=C sort -t . -k 2,2` && \
+		shift && \
+		ZDS=$$* && \
+		$(MAKE) wd="$$wd" TZS_YEAR=$(TZS_YEAR) ZDS="$$ZDS" $$ZDS && \
+		sed 's,^TZ=".*tzs\.dir/,TZ=",' $$ZDS >>$@.out
+		rm -fr tzs.dir
+		mv $@.out $@
 
 # If $(TZS) does not already exist (e.g., old-format tarballs), create it.
 # If it exists but 'make check_tzs' fails, a maintainer should inspect the
@@ -669,8 +706,10 @@ check_character_set: $(ENCHILADA)
 		sharp='#' && \
 		! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
 			$(MISC) $(SOURCES) $(WEB_PAGES) \
-			CONTRIBUTING LICENSE Makefile README \
+			CONTRIBUTING LICENSE README \
 			version tzdata.zi && \
+		! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_CHARSET='$(OK_CHAR)'*$$' \
+			Makefile && \
 		! grep -Env $(SAFE_SHARP_LINE) $(TDATA_TO_CHECK) backzone \
 			leapseconds yearistype.sh zone.tab && \
 		! grep -Env $(OK_LINE) $(ENCHILADA); \
@@ -702,7 +741,7 @@ check_sorted: backward backzone iso3166.tab zone.tab z
 		$(AWK) '/^[^#]/ $(CHECK_CC_LIST)' zone1970.tab | \
 		  LC_ALL=C sort -cu
 
-check_links:	checklinks.awk $(TDATA_TO_CHECK)
+check_links:	checklinks.awk $(TDATA_TO_CHECK) tzdata.zi
 		$(AWK) -f checklinks.awk $(TDATA_TO_CHECK)
 		$(AWK) -f checklinks.awk tzdata.zi
 
@@ -720,17 +759,26 @@ check_tzs:	$(TZS) $(TZS_NEW)
 check_web:	tz-how-to.html
 		$(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) tz-how-to.html
 
-# Check that tzdata.zi generates the same binary data that its sources do.
-check_zishrink: tzdata.zi zic leapseconds $(PACKRATDATA) $(TDATA)
+# Check that zishrink.awk does not alter the data, and that ziguard.awk
+# preserves main-format data.
+check_zishrink: zic leapseconds $(PACKRATDATA) $(TDATA) \
+		  $(DATAFORM).zi tzdata.zi
 		for type in posix right; do \
-		  mkdir -p time_t.dir/$$type time_t.dir/$$type-shrunk && \
+		  mkdir -p time_t.dir/$$type time_t.dir/$$type-t \
+		    time_t.dir/$$type-shrunk && \
 		  case $$type in \
 		    right) leap='-L leapseconds';; \
 	            *) leap=;; \
 		  esac && \
-		  $(ZIC) $$leap -d time_t.dir/$$type $(TDATA) && \
-		  $(AWK) '/^Rule/' $(TDATA) | \
-		    $(ZIC) $$leap -d time_t.dir/$$type - $(PACKRATDATA) && \
+		  $(ZIC) $$leap -d time_t.dir/$$type $(DATAFORM).zi && \
+		  case $(DATAFORM) in \
+		    main) \
+		      $(ZIC) $$leap -d time_t.dir/$$type-t $(TDATA) && \
+		      $(AWK) '/^Rule/' $(TDATA) | \
+			$(ZIC) $$leap -d time_t.dir/$$type-t - \
+			  $(PACKRATDATA) && \
+		      diff -r time_t.dir/$$type time_t.dir/$$type-t;; \
+		  esac && \
 		  $(ZIC) $$leap -d time_t.dir/$$type-shrunk tzdata.zi && \
 		  diff -r time_t.dir/$$type time_t.dir/$$type-shrunk || exit; \
 		done
@@ -740,7 +788,7 @@ clean_misc:
 		rm -f core *.o *.out \
 		  date tzselect version.h zdump zic yearistype libtz.a
 clean:		clean_misc
-		rm -fr *.dir tzdata.zi tzdb-*/ $(TZS_NEW)
+		rm -fr *.dir *.zi tzdb-*/ $(TZS_NEW)
 
 maintainer-clean: clean
 		@echo 'This command is intended for maintainers to use; it'
@@ -856,6 +904,9 @@ tarballs traditional_tarballs signatures traditional_s
 		VERSION=`cat version` && \
 		$(MAKE) VERSION="$$VERSION" $@_version
 
+# These *_version rules are intended for use if VERSION is set by some
+# other means.  Ordinarily these rules are used only by the above
+# non-_version rules, which set VERSION on the 'make' command line.
 tarballs_version: traditional_tarballs_version tzdb-$(VERSION).tar.lz
 traditional_tarballs_version: \
   tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
@@ -917,13 +968,17 @@ zic.o:		private.h tzfile.h version.h
 .KEEP_STATE:
 
 .PHONY: ALL INSTALL all
-.PHONY: check check_character_set check_links
+.PHONY: check check_character_set check_links check_name_lengths
 .PHONY: check_public check_sorted check_tables
 .PHONY: check_time_t_alternatives check_tzs check_web check_white_space
 .PHONY: check_zishrink
-.PHONY: clean clean_misc force_tzs
+.PHONY: clean clean_misc dummy.zd force_tzs
 .PHONY: install install_data maintainer-clean names
 .PHONY: posix_only posix_packrat posix_right
 .PHONY: public right_only right_posix signatures signatures_version
-.PHONY: tarballs tarballs_version typecheck
+.PHONY: tarballs tarballs_version
+.PHONY: traditional_signatures traditional_signatures_version
+.PHONY: traditional_tarballs traditional_tarballs_version
+.PHONY: typecheck
 .PHONY: zonenames zones
+.PHONY: $(ZDS)

Modified: stable/11/contrib/tzdata/NEWS
==============================================================================
--- stable/11/contrib/tzdata/NEWS	Wed Mar 28 05:58:08 2018	(r331661)
+++ stable/11/contrib/tzdata/NEWS	Wed Mar 28 07:42:50 2018	(r331662)
@@ -1,9 +1,146 @@
 News for the tz database
 
+Release 2018d - 2018-03-22 07:05:46 -0700
+
+  Briefly:
+
+  Palestine starts DST a week earlier in 2018.
+  Add support for vanguard and rearguard data consumers.
+  Add subsecond precision to source data format, though not to data.
+
+  Changes to future time stamps
+
+    In 2018, Palestine starts DST on March 24, not March 31.
+    Adjust future predictions accordingly.  (Thanks to Sharef Mustafa.)
+
+  Changes to past and future time stamps
+
+    Casey Station in Antarctica changed from +11 to +08 on 2018-03-11
+    at 04:00.  (Thanks to Steffen Thorsen.)
+
+  Changes to past time stamps
+
+    Historical transitions for Uruguay, represented by
+    America/Montevideo, have been updated per official legal documents,
+    replacing previous data mainly originating from the inventions of
+    Shanks & Pottenger.  This has resulted in adjustments ranging from
+    30 to 90 minutes in either direction over at least two dozen
+    distinct periods ranging from one day to several years in length.
+    A mere handful of pre-1991 transitions are unaffected; data since
+    then has come from more reliable contemporaneous reporting.  These
+    changes affect various timestamps in 1920-1923, 1936, 1939,
+    1942-1943, 1959, 1966-1970, 1972, 1974-1980, and 1988-1990.
+    Additionally, Uruguay's pre-standard-time UT offset has been
+    adjusted westward by 7 seconds, from UT-03:44:44 to UT-03:44:51, to
+    match the location of the Observatory of the National Meteorological
+    Institute in Montevideo.
+    (Thanks to Jeremie Bonjour, Tim Parenti, and Michael Deckers.)
+
+    Enderbury and Kiritimati skipped New Year's Eve 1994, not
+    New Year's Day 1995.  (Thanks to Kerry Shetline.)
+
+    Fix the 1912-01-01 transition for Portugual and its colonies.
+    This transition was at 00:00 according to the new UT offset, not
+    according to the old one.  Also assume that Cape Verde switched on
+    the same date as the rest, not in 1907.  This affects
+    Africa/Bissau, Africa/Sao_Tome, Asia/Macau, Atlantic/Azores,
+    Atlantic/Cape_Verde, Atlantic/Madeira, and Europe/Lisbon.
+    (Thanks to Michael Deckers.)
+
+    Fix an off-by-1 error for pre-1913 timestamps in Jamaica and in
+    Turks & Caicos.
+
+  Changes to past time zone abbreviations
+
+    MMT took effect in Uruguay from 1908-06-10, not 1898-06-28.  There
+    is no clock change associated with the transition.
+
+  Changes to build procedure
+
+    The new DATAFORM macro in the Makefile lets the installer choose
+    among three source data formats.  The idea is to lessen downstream
+    disruption when data formats are improved.
+
+    * DATAFORM=vanguard installs from the latest, bleeding-edge
+      format.  DATAFORM=main (the default) installs from the format
+      used in the 'africa' etc. files.  DATAFORM=rearguard installs
+      from a trailing-edge format.  Eventually, elements of today's
+      vanguard format should move to the main format, and similarly
+      the main format's features should eventually move to the
+      rearguard format.
+
+    * In the current version, the main and rearguard formats are
+      identical and match that of 2018c, so this change does not
+      affect default behavior.  The vanguard format currently contains
+      one feature not in the main format: negative SAVE values.  This
+      improves support for Ireland, which uses Irish Standard Time
+      (IST, UTC+01) in summer and GMT (UTC) in winter.  tzcode has
+      supported negative SAVE values for decades, and this feature
+      should move to the main format soon.  However, it will not move
+      to the rearguard format for quite some time because some
+      downstream parsers do not support it.
+
+    * The build procedure constructs three files vanguard.zi, main.zi,
+      and rearguard.zi, one for each format.  The files represent the
+      same data as closely as the formats allow.  These three files
+      are intended for downstream data consumers and are not
+      installed.  Zoneinfo parsers that do not support negative SAVE values
+      should start using rearguard.zi, so that they will be unaffected
+      when the negative-DST feature moves from vanguard to main.
+      Bleeding-edge Zoneinfo parsers that support the new features
+      already can use vanguard.zi; in this respect, current tzcode is
+      bleeding-edge.
+
+    The Makefile should now be safe for parallelized builds, and 'make
+    -j to2050new.tzs' is now much faster on a multiprocessor host
+    with GNU Make.
+
+    When built with -DSUPPRESS_TZDIR, the tzcode library no longer
+    prepends TZDIR/ to file names that do not begin with '/'.  This is
+    not recommended for general use, due to its security implications.
+    (From a suggestion by Manuela Friedrich.)
+
+  Changes to code
+
+    zic now accepts subsecond precision in expressions like
+    00:19:32.13, which is approximately the legal time of the
+    Netherlands from 1835 to 1937.  However, because it is
+    questionable whether the few recorded uses of non-integer offsets
+    had subsecond precision in practice, there are no plans for tzdata
+    to use this feature.  (Thanks to Steve Allen for pointing out
+    the limitations of historical data in this area.)
+
+    The code is a bit more portable to MS-Windows.  Installers can
+    compile with -DRESERVE_STD_EXT_IDS on MS-Windows platforms that
+    reserve identifiers like 'localtime'.  (Thanks to Manuela
+    Friedrich).
+
+  Changes to documentation and commentary
+
+    theory.html now outlines tzdb's extensions to POSIX's model for
+    civil time, and has a section "POSIX features no longer needed"
+    that lists POSIX API components that are now vestigial.
+    (From suggestions by Steve Summit.)  It also better distinguishes
+    time zones from tz regions.  (From a suggestion by Guy Harris.)
+
+    Commentary is now more consistent about using the phrase "daylight
+    saving time", to match the C name tm_isdst.  Daylight saving time
+    need not occur in summer, and need not have a positive offset from
+    standard time.
+
+    Commentary about historical transitions in Uruguay has been expanded
+    with links to many relevant legal documents.
+    (Thanks to Tim Parenti.)
+
+    Commentary now uses some non-ASCII characters with Unicode value
+    less than U+0100, as they can be useful and should work even with
+    older editors such as XEmacs.
+
+
 Release 2018c - 2018-01-22 23:00:44 -0800
 
   Briefly:
-  Revert Irish changes that relied on negative DST offsets.
+  Revert Irish changes that relied on negative SAVE values.
 
   Changes to tm_isdst
 
@@ -14,8 +151,8 @@ Release 2018c - 2018-01-22 23:00:44 -0800
     struct tm type.  This reversion is intended to be a temporary
     workaround for problems discovered with downstream uses of
     releases 2018a and 2018b, which implemented Irish time by using
-    negative DST offsets in the Eire rules of the 'europe' file.
-    Although negative DST offsets have been part of tzcode for many
+    negative SAVE values in the Eire rules of the 'europe' file.
+    Although negative SAVE values have been part of tzcode for many
     years and are supported by many platforms, they were not
     documented before 2018a and ICU and OpenJDK do not currently
     support them.  A mechanism to export data to platforms lacking
@@ -900,7 +1037,7 @@ Release 2016b - 2016-03-12 17:30:14 -0800
     Comments in zone tables have been improved.  (Thanks to J William Piggott.)
 
     tzselect again limits its menu comments so that menus fit on a
-    24x80 alphanumeric display.
+    24×80 alphanumeric display.
 
     A new web page tz-how-to.html.  (Thanks to Bill Seymour.)
 

Modified: stable/11/contrib/tzdata/africa
==============================================================================
--- stable/11/contrib/tzdata/africa	Wed Mar 28 05:58:08 2018	(r331661)
+++ stable/11/contrib/tzdata/africa	Wed Mar 28 07:42:50 2018	(r331662)
@@ -115,13 +115,13 @@ Zone	Africa/Algiers	0:12:12 -	LMT	1891 Mar 15  0:01
 
 # Cape Verde / Cabo Verde
 #
+# From Paul Eggert (2018-02-16):
 # Shanks gives 1907 for the transition to +02.
-# Perhaps the 1911-05-26 Portuguese decree
-# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf
-# merely made it official?
+# For now, ignore that and follow the 1911-05-26 Portuguese decree
+# (see Europe/Lisbon).
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Atlantic/Cape_Verde -1:34:04 -	LMT	1907        # Praia
+Zone Atlantic/Cape_Verde -1:34:04 -	LMT	1912 Jan 01  2:00u # Praia
 			-2:00	-	-02	1942 Sep
 			-2:00	1:00	-01	1945 Oct 15
 			-2:00	-	-02	1975 Nov 25  2:00
@@ -370,15 +370,34 @@ Zone	Africa/Cairo	2:05:09 -	LMT	1900 Oct
 # See Africa/Abidjan.
 
 # Ghana
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+
+# From Paul Eggert (2018-01-30):
 # Whitman says DST was observed from 1931 to "the present";
-# Shanks & Pottenger say 1936 to 1942;
-# and September 1 to January 1 is given by:
-# Scott Keltie J, Epstein M (eds), The Statesman's Year-Book,
-# 57th ed. Macmillan, London (1920), OCLC 609408015, pp xxviii.
-# For lack of better info, assume DST was observed from 1920 to 1942.
-Rule	Ghana	1920	1942	-	Sep	 1	0:00	0:20	GHST
-Rule	Ghana	1920	1942	-	Dec	31	0:00	0	GMT
+# Shanks & Pottenger say 1936 to 1942 with 20 minutes of DST,
+# with transitions on 09-01 and 12-31 at 00:00.
+# Page 33 of Parish GCB, Colonial Reports - Annual. No. 1066. Gold
+# Coast. Report for 1919. (March 1921), OCLC 784024077
+# http://libsysdigi.library.illinois.edu/ilharvest/africana/books2011-05/5530214/5530214_1919/5530214_1919_opt.pdf
+# lists the Determination of the Time Ordinance, 1919, No. 18,
+# "to advance the time observed locally by the space of twenty minutes
+# during the last four months of each year; the object in view being
+# to extend during those months the period of daylight-time available
+# for evening recreation after office hours."
+# Vanessa Ogle, The Global Transformation of Time, 1870-1950 (2015), p 33,
+# writes "In 1919, the Gold Coast (Ghana as of 1957) made Greenwich
+# time its legal time and simultaneously legalized a summer time of
+# UTC - 00:20 minutes from March to October."; a footnote lists
+# the ordinance as being dated 1919-11-24.
+# The Crown Colonist, Volume 12 (1942), p 176, says "the Government
+# intend advancing Gold Coast time half an hour ahead of G.M.T.
+# The actual date of the alteration has not yet been announced."
+# These sources are incomplete and contradictory.  Possibly what is
+# now Ghana observed different DST regimes in different years.  For
+# lack of better info, use Shanks except treat the minus sign as a
+# typo, and assume DST started in 1920 not 1936.
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	Ghana	1920	1942	-	Sep	 1	0:00	0:20	-
+Rule	Ghana	1920	1942	-	Dec	31	0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Africa/Accra	-0:00:52 -	LMT	1918
 			 0:00	Ghana	GMT/+0020
@@ -388,13 +407,13 @@ Zone	Africa/Accra	-0:00:52 -	LMT	1918
 
 # Guinea-Bissau
 #
+# From Paul Eggert (2018-02-16):
 # Shanks gives 1911-05-26 for the transition to WAT,
 # evidently confusing the date of the Portuguese decree
-# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf
-# with the date that it took effect, namely 1912-01-01.
+# (see Europe/Lisbon) with the date that it took effect.
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Bissau	-1:02:20 -	LMT	1912 Jan  1
+Zone	Africa/Bissau	-1:02:20 -	LMT	1912 Jan  1  1:00u
 			-1:00	-	-01	1975
 			 0:00	-	GMT
 
@@ -590,9 +609,9 @@ Zone	Africa/Tripoli	0:52:44 -	LMT	1920
 # at 2am (or 02:00) local time..."
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule Mauritius	1982	only	-	Oct	10	0:00	1:00	S
+Rule Mauritius	1982	only	-	Oct	10	0:00	1:00	-
 Rule Mauritius	1983	only	-	Mar	21	0:00	0	-
-Rule Mauritius	2008	only	-	Oct	lastSun	2:00	1:00	S
+Rule Mauritius	2008	only	-	Oct	lastSun	2:00	1:00	-
 Rule Mauritius	2009	only	-	Mar	lastSun	2:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Indian/Mauritius	3:50:00 -	LMT	1907 # Port Louis
@@ -1037,6 +1056,8 @@ Zone	Indian/Reunion	3:41:52 -	LMT	1911 Jun # Saint-Den
 
 # São Tomé and Príncipe
 
+# See Europe/Lisbon for info about the 1912 transition.
+
 # From Steffen Thorsen (2018-01-08):
 # Multiple sources tell that São Tomé changed from UTC to UTC+1 as
 # they entered the year 2018.
@@ -1045,7 +1066,7 @@ Zone	Indian/Reunion	3:41:52 -	LMT	1911 Jun # Saint-Den
 # http://www.mnec.gov.st/index.php/publicacoes/documentos/file/90-decreto-lei-n-25-2017
 
 Zone	Africa/Sao_Tome	 0:26:56 -	LMT	1884
-			-0:36:45 -	LMT	1912 # Lisbon Mean Time
+			-0:36:45 -	LMT	1912 Jan  1 00:00u # Lisbon MT
 			 0:00	-	GMT	2018 Jan  1 01:00
 			 1:00	-	WAT
 

Modified: stable/11/contrib/tzdata/antarctica
==============================================================================
--- stable/11/contrib/tzdata/antarctica	Wed Mar 28 05:58:08 2018	(r331661)
+++ stable/11/contrib/tzdata/antarctica	Wed Mar 28 07:42:50 2018	(r331662)
@@ -75,7 +75,8 @@ Zone Antarctica/Casey	0	-	-00	1969
 			8:00	-	+08	2011 Oct 28  2:00
 			11:00	-	+11	2012 Feb 21 17:00u
 			8:00	-	+08	2016 Oct 22
-			11:00	-	+11
+			11:00	-	+11	2018 Mar 11  4:00
+			8:00	-	+08
 Zone Antarctica/Davis	0	-	-00	1957 Jan 13
 			7:00	-	+07	1964 Nov
 			0	-	-00	1969 Feb

Modified: stable/11/contrib/tzdata/asia
==============================================================================
--- stable/11/contrib/tzdata/asia	Wed Mar 28 05:58:08 2018	(r331661)
+++ stable/11/contrib/tzdata/asia	Wed Mar 28 07:42:50 2018	(r331662)
@@ -69,13 +69,13 @@
 Rule	EUAsia	1981	max	-	Mar	lastSun	 1:00u	1:00	S
 Rule	EUAsia	1979	1995	-	Sep	lastSun	 1:00u	0	-
 Rule	EUAsia	1996	max	-	Oct	lastSun	 1:00u	0	-
-Rule E-EurAsia	1981	max	-	Mar	lastSun	 0:00	1:00	S
+Rule E-EurAsia	1981	max	-	Mar	lastSun	 0:00	1:00	-
 Rule E-EurAsia	1979	1995	-	Sep	lastSun	 0:00	0	-
 Rule E-EurAsia	1996	max	-	Oct	lastSun	 0:00	0	-
-Rule RussiaAsia	1981	1984	-	Apr	1	 0:00	1:00	S
+Rule RussiaAsia	1981	1984	-	Apr	1	 0:00	1:00	-
 Rule RussiaAsia	1981	1983	-	Oct	1	 0:00	0	-
 Rule RussiaAsia	1984	1995	-	Sep	lastSun	 2:00s	0	-
-Rule RussiaAsia	1985	2010	-	Mar	lastSun	 2:00s	1:00	S
+Rule RussiaAsia	1985	2010	-	Mar	lastSun	 2:00s	1:00	-
 Rule RussiaAsia	1996	2010	-	Oct	lastSun	 2:00s	0	-
 
 # Afghanistan
@@ -110,7 +110,7 @@ Zone	Asia/Kabul	4:36:48 -	LMT	1890
 # (brief)
 # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule Armenia	2011	only	-	Mar	lastSun	 2:00s	1:00	S
+Rule Armenia	2011	only	-	Mar	lastSun	 2:00s	1:00	-
 Rule Armenia	2011	only	-	Oct	lastSun	 2:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Yerevan	2:58:00 -	LMT	1924 May  2
@@ -136,7 +136,7 @@ Zone	Asia/Yerevan	2:58:00 -	LMT	1924 May  2
 # http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Azer	1997	2015	-	Mar	lastSun	 4:00	1:00	S
+Rule	Azer	1997	2015	-	Mar	lastSun	 4:00	1:00	-
 Rule	Azer	1997	2015	-	Oct	lastSun	 5:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Baku	3:19:24 -	LMT	1924 May  2
@@ -223,7 +223,7 @@ Zone	Asia/Baku	3:19:24 -	LMT	1924 May  2
 # http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Dhaka	2009	only	-	Jun	19	23:00	1:00	S
+Rule	Dhaka	2009	only	-	Jun	19	23:00	1:00	-
 Rule	Dhaka	2009	only	-	Dec	31	24:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -764,8 +764,9 @@ Rule	Macau	1974	1977	-	Oct	Sun>=15	3:30	0	S
 Rule	Macau	1975	1977	-	Apr	Sun>=15	3:30	1:00	D
 Rule	Macau	1978	1980	-	Apr	Sun>=15	0:00	1:00	D
 Rule	Macau	1978	1980	-	Oct	Sun>=15	0:00	0	S
+# See Europe/Lisbon for info about the 1912 transition.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Macau	7:34:20 -	LMT	1912 Jan  1
+Zone	Asia/Macau	7:34:20 -	LMT	1911 Dec 31 16:00u
 			8:00	Macau	C%sT
 
 
@@ -1106,61 +1107,61 @@ Zone Asia/Jayapura	9:22:48 -	LMT	1932 Nov
 # thirtieth day of Shahrivar.
 #
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Iran	1978	1980	-	Mar	21	0:00	1:00	D
-Rule	Iran	1978	only	-	Oct	21	0:00	0	S
-Rule	Iran	1979	only	-	Sep	19	0:00	0	S
-Rule	Iran	1980	only	-	Sep	23	0:00	0	S
-Rule	Iran	1991	only	-	May	 3	0:00	1:00	D
-Rule	Iran	1992	1995	-	Mar	22	0:00	1:00	D
-Rule	Iran	1991	1995	-	Sep	22	0:00	0	S
-Rule	Iran	1996	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	1996	only	-	Sep	21	0:00	0	S
-Rule	Iran	1997	1999	-	Mar	22	0:00	1:00	D
-Rule	Iran	1997	1999	-	Sep	22	0:00	0	S
-Rule	Iran	2000	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2000	only	-	Sep	21	0:00	0	S
-Rule	Iran	2001	2003	-	Mar	22	0:00	1:00	D
-Rule	Iran	2001	2003	-	Sep	22	0:00	0	S
-Rule	Iran	2004	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2004	only	-	Sep	21	0:00	0	S
-Rule	Iran	2005	only	-	Mar	22	0:00	1:00	D
-Rule	Iran	2005	only	-	Sep	22	0:00	0	S
-Rule	Iran	2008	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2008	only	-	Sep	21	0:00	0	S
-Rule	Iran	2009	2011	-	Mar	22	0:00	1:00	D
-Rule	Iran	2009	2011	-	Sep	22	0:00	0	S
-Rule	Iran	2012	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2012	only	-	Sep	21	0:00	0	S
-Rule	Iran	2013	2015	-	Mar	22	0:00	1:00	D
-Rule	Iran	2013	2015	-	Sep	22	0:00	0	S
-Rule	Iran	2016	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2016	only	-	Sep	21	0:00	0	S
-Rule	Iran	2017	2019	-	Mar	22	0:00	1:00	D
-Rule	Iran	2017	2019	-	Sep	22	0:00	0	S
-Rule	Iran	2020	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2020	only	-	Sep	21	0:00	0	S
-Rule	Iran	2021	2023	-	Mar	22	0:00	1:00	D
-Rule	Iran	2021	2023	-	Sep	22	0:00	0	S
-Rule	Iran	2024	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2024	only	-	Sep	21	0:00	0	S
-Rule	Iran	2025	2027	-	Mar	22	0:00	1:00	D
-Rule	Iran	2025	2027	-	Sep	22	0:00	0	S
-Rule	Iran	2028	2029	-	Mar	21	0:00	1:00	D
-Rule	Iran	2028	2029	-	Sep	21	0:00	0	S
-Rule	Iran	2030	2031	-	Mar	22	0:00	1:00	D
-Rule	Iran	2030	2031	-	Sep	22	0:00	0	S
-Rule	Iran	2032	2033	-	Mar	21	0:00	1:00	D
-Rule	Iran	2032	2033	-	Sep	21	0:00	0	S
-Rule	Iran	2034	2035	-	Mar	22	0:00	1:00	D
-Rule	Iran	2034	2035	-	Sep	22	0:00	0	S
+Rule	Iran	1978	1980	-	Mar	21	0:00	1:00	-
+Rule	Iran	1978	only	-	Oct	21	0:00	0	-
+Rule	Iran	1979	only	-	Sep	19	0:00	0	-
+Rule	Iran	1980	only	-	Sep	23	0:00	0	-
+Rule	Iran	1991	only	-	May	 3	0:00	1:00	-
+Rule	Iran	1992	1995	-	Mar	22	0:00	1:00	-
+Rule	Iran	1991	1995	-	Sep	22	0:00	0	-
+Rule	Iran	1996	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	1996	only	-	Sep	21	0:00	0	-
+Rule	Iran	1997	1999	-	Mar	22	0:00	1:00	-
+Rule	Iran	1997	1999	-	Sep	22	0:00	0	-
+Rule	Iran	2000	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2000	only	-	Sep	21	0:00	0	-
+Rule	Iran	2001	2003	-	Mar	22	0:00	1:00	-
+Rule	Iran	2001	2003	-	Sep	22	0:00	0	-
+Rule	Iran	2004	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2004	only	-	Sep	21	0:00	0	-
+Rule	Iran	2005	only	-	Mar	22	0:00	1:00	-
+Rule	Iran	2005	only	-	Sep	22	0:00	0	-
+Rule	Iran	2008	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2008	only	-	Sep	21	0:00	0	-
+Rule	Iran	2009	2011	-	Mar	22	0:00	1:00	-
+Rule	Iran	2009	2011	-	Sep	22	0:00	0	-
+Rule	Iran	2012	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2012	only	-	Sep	21	0:00	0	-
+Rule	Iran	2013	2015	-	Mar	22	0:00	1:00	-
+Rule	Iran	2013	2015	-	Sep	22	0:00	0	-
+Rule	Iran	2016	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2016	only	-	Sep	21	0:00	0	-
+Rule	Iran	2017	2019	-	Mar	22	0:00	1:00	-
+Rule	Iran	2017	2019	-	Sep	22	0:00	0	-
+Rule	Iran	2020	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2020	only	-	Sep	21	0:00	0	-
+Rule	Iran	2021	2023	-	Mar	22	0:00	1:00	-
+Rule	Iran	2021	2023	-	Sep	22	0:00	0	-
+Rule	Iran	2024	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2024	only	-	Sep	21	0:00	0	-
+Rule	Iran	2025	2027	-	Mar	22	0:00	1:00	-
+Rule	Iran	2025	2027	-	Sep	22	0:00	0	-
+Rule	Iran	2028	2029	-	Mar	21	0:00	1:00	-
+Rule	Iran	2028	2029	-	Sep	21	0:00	0	-
+Rule	Iran	2030	2031	-	Mar	22	0:00	1:00	-
+Rule	Iran	2030	2031	-	Sep	22	0:00	0	-
+Rule	Iran	2032	2033	-	Mar	21	0:00	1:00	-
+Rule	Iran	2032	2033	-	Sep	21	0:00	0	-
+Rule	Iran	2034	2035	-	Mar	22	0:00	1:00	-
+Rule	Iran	2034	2035	-	Sep	22	0:00	0	-
 #
 # The following rules are approximations starting in the year 2038.
 # These are the best post-2037 approximations available, given the
 # restrictions of a single rule using a Gregorian-based data format.
 # At some point this table will need to be extended, though quite
 # possibly Iran will change the rules first.
-Rule	Iran	2036	max	-	Mar	21	0:00	1:00	D
-Rule	Iran	2036	max	-	Sep	21	0:00	0	S
+Rule	Iran	2036	max	-	Mar	21	0:00	1:00	-
+Rule	Iran	2036	max	-	Sep	21	0:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Tehran	3:25:44	-	LMT	1916
@@ -1196,17 +1197,17 @@ Zone	Asia/Tehran	3:25:44	-	LMT	1916
 # https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Iraq	1982	only	-	May	1	0:00	1:00	D
-Rule	Iraq	1982	1984	-	Oct	1	0:00	0	S
-Rule	Iraq	1983	only	-	Mar	31	0:00	1:00	D
-Rule	Iraq	1984	1985	-	Apr	1	0:00	1:00	D
-Rule	Iraq	1985	1990	-	Sep	lastSun	1:00s	0	S
-Rule	Iraq	1986	1990	-	Mar	lastSun	1:00s	1:00	D
+Rule	Iraq	1982	only	-	May	1	0:00	1:00	-
+Rule	Iraq	1982	1984	-	Oct	1	0:00	0	-
+Rule	Iraq	1983	only	-	Mar	31	0:00	1:00	-
+Rule	Iraq	1984	1985	-	Apr	1	0:00	1:00	-
+Rule	Iraq	1985	1990	-	Sep	lastSun	1:00s	0	-
+Rule	Iraq	1986	1990	-	Mar	lastSun	1:00s	1:00	-
 # IATA SSIM (1991/1996) says Apr 1 12:01am UTC; guess the ':01' is a typo.
 # Shanks & Pottenger say Iraq did not observe DST 1992/1997; ignore this.
 #
-Rule	Iraq	1991	2007	-	Apr	 1	3:00s	1:00	D
-Rule	Iraq	1991	2007	-	Oct	 1	3:00s	0	S
+Rule	Iraq	1991	2007	-	Apr	 1	3:00s	1:00	-
+Rule	Iraq	1991	2007	-	Oct	 1	3:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Baghdad	2:57:40	-	LMT	1890
 			2:57:36	-	BMT	1918     # Baghdad Mean Time?
@@ -1478,8 +1479,7 @@ Rule	Japan	1950	1951	-	May	Sat>=1	24:00	1:00	D
 
 # From Hideyuki Suzuki (1998-11-09):
 # 'Tokyo' usually stands for the former location of Tokyo Astronomical
-# Observatory: 139 degrees 44' 40.90" E (9h 18m 58.727s),
-# 35 degrees 39' 16.0" N.
+# Observatory: 139° 44' 40.90" E (9h 18m 58.727s), 35° 39' 16.0" N.
 # This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996'
 # edited by National Astronomical Observatory of Japan....
 # JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST).
@@ -1487,10 +1487,10 @@ Rule	Japan	1950	1951	-	May	Sat>=1	24:00	1:00	D
 
 # From Hideyuki Suzuki (1998-11-16):
 # The ordinance No. 51 (1886) established "standard time" in Japan,
-# which stands for the time on 135 degrees E.
+# which stands for the time on 135° E.
 # In the ordinance No. 167 (1895), "standard time" was renamed to "central
 # standard time".  And the same ordinance also established "western standard
-# time", which stands for the time on 120 degrees E....  But "western standard
+# time", which stands for the time on 120° E....  But "western standard
 # time" was abolished in the ordinance No. 529 (1937).  In the ordinance No.
 # 167, there is no mention regarding for what place western standard time is
 # standard....
@@ -1903,9 +1903,9 @@ Zone	Asia/Oral	3:25:24	-	LMT	1924 May  2 # or Ural'sk
 # From 2005-08-12 our GMT-offset is +6, w/o any daylight saving.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Kyrgyz	1992	1996	-	Apr	Sun>=7	0:00s	1:00	S
+Rule	Kyrgyz	1992	1996	-	Apr	Sun>=7	0:00s	1:00	-
 Rule	Kyrgyz	1992	1996	-	Sep	lastSun	0:00	0	-
-Rule	Kyrgyz	1997	2005	-	Mar	lastSun	2:30	1:00	S
+Rule	Kyrgyz	1997	2005	-	Mar	lastSun	2:30	1:00	-
 Rule	Kyrgyz	1997	2004	-	Oct	lastSun	2:30	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Bishkek	4:58:24 -	LMT	1924 May  2
@@ -2037,7 +2037,7 @@ Zone	Asia/Beirut	2:22:00 -	LMT	1880
 
 # Malaysia
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	NBorneo	1935	1941	-	Sep	14	0:00	0:20	TS # one-Third Summer
+Rule	NBorneo	1935	1941	-	Sep	14	0:00	0:20	-
 Rule	NBorneo	1935	1941	-	Dec	14	0:00	0	-
 #
 # peninsular Malaysia
@@ -2182,7 +2182,7 @@ Zone	Indian/Maldives	4:54:00 -	LMT	1880 # Malé
 # http://zasag.mn/news/view/8969
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Mongol	1983	1984	-	Apr	1	0:00	1:00	S
+Rule	Mongol	1983	1984	-	Apr	1	0:00	1:00	-
 Rule	Mongol	1983	only	-	Oct	1	0:00	0	-
 # Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00,
 # but McDow says the 2001 switches occurred at 02:00.  Also, IATA SSIM
@@ -2199,13 +2199,13 @@ Rule	Mongol	1983	only	-	Oct	1	0:00	0	-
 # Mongolian Government meeting has concluded today to cancel daylight
 # saving time adoption in Mongolia.  Source: http://zasag.mn/news/view/16192
 
-Rule	Mongol	1985	1998	-	Mar	lastSun	0:00	1:00	S
+Rule	Mongol	1985	1998	-	Mar	lastSun	0:00	1:00	-
 Rule	Mongol	1984	1998	-	Sep	lastSun	0:00	0	-
 # IATA SSIM (1999-09) says Mongolia no longer observes DST.
-Rule	Mongol	2001	only	-	Apr	lastSat	2:00	1:00	S
+Rule	Mongol	2001	only	-	Apr	lastSat	2:00	1:00	-
 Rule	Mongol	2001	2006	-	Sep	lastSat	2:00	0	-
-Rule	Mongol	2002	2006	-	Mar	lastSat	2:00	1:00	S
-Rule	Mongol	2015	2016	-	Mar	lastSat	2:00	1:00	S
+Rule	Mongol	2002	2006	-	Mar	lastSat	2:00	1:00	-
+Rule	Mongol	2015	2016	-	Mar	lastSat	2:00	1:00	-
 Rule	Mongol	2015	2016	-	Sep	lastSat	0:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -2639,9 +2639,6 @@ Zone	Asia/Karachi	4:28:12 -	LMT	1907
 # [Google translation]: "The Council also decided to start daylight
 # saving in Palestine as of one o'clock on Saturday morning,
 # 2016-03-26, to provide the clock 60 minutes ahead."
-#
-# From Paul Eggert (2016-03-12):
-# Predict spring transitions on March's last Saturday at 01:00 from now on.
 
 # From Sharef Mustafa (2016-10-19):
 # [T]he Palestinian cabinet decision (Mar 8th 2016) published on
@@ -2658,6 +2655,16 @@ Zone	Asia/Karachi	4:28:12 -	LMT	1907
 # https://www.timeanddate.com/time/change/gaza-strip/gaza
 # https://www.timeanddate.com/time/change/west-bank/hebron
 
+# From Sharef Mustafa (2018-03-16):
+# Palestine summer time will start on Mar 24th 2018 by advancing the
+# clock by 60 minutes as per Palestinian cabinet decision published on
+# the offical website, though the decree did not specify the exact
+# time of the time shift.
+# http://www.palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e7a42ab7-ee23-435a-b9c8-a4f7e81f3817
+#
+# From Paul Eggert (2018-03-16):
+# For 2016 on, predict spring transitions on March's fourth Saturday at 01:00.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
 Rule EgyptAsia	1957	1958	-	Oct	 1	0:00	0	-
@@ -2687,7 +2694,7 @@ Rule Palestine	2012	only	-	Sep	21	1:00	0	-
 Rule Palestine	2013	only	-	Sep	Fri>=21	0:00	0	-
 Rule Palestine	2014	2015	-	Oct	Fri>=21	0:00	0	-
 Rule Palestine	2015	only	-	Mar	lastFri	24:00	1:00	S
-Rule Palestine	2016	max	-	Mar	lastSat	1:00	1:00	S
+Rule Palestine	2016	max	-	Mar	Sat>=22	1:00	1:00	S
 Rule Palestine	2016	max	-	Oct	lastSat	1:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -2737,11 +2744,11 @@ Zone	Asia/Hebron	2:20:23	-	LMT	1900 Oct
 # http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use-daylight-saving-time
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Phil	1936	only	-	Nov	1	0:00	1:00	S
+Rule	Phil	1936	only	-	Nov	1	0:00	1:00	-
 Rule	Phil	1937	only	-	Feb	1	0:00	0	-
-Rule	Phil	1954	only	-	Apr	12	0:00	1:00	S
+Rule	Phil	1954	only	-	Apr	12	0:00	1:00	-
 Rule	Phil	1954	only	-	Jul	1	0:00	0	-
-Rule	Phil	1978	only	-	Mar	22	0:00	1:00	S
+Rule	Phil	1978	only	-	Mar	22	0:00	1:00	-
 Rule	Phil	1978	only	-	Sep	21	0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Manila	-15:56:00 -	LMT	1844 Dec 31
@@ -3097,9 +3104,9 @@ Zone	Asia/Tashkent	4:37:11 -	LMT	1924 May  2
 # and is the basis for the information below.
 #
 # The 1906 transition was effective July 1 and standardized Indochina to
-# Phù Liễn Observatory, legally 104 deg. 17'17" east of Paris.
+# Phù Liễn Observatory, legally 104° 17' 17" east of Paris.
 # It's unclear whether this meant legal Paris Mean Time (00:09:21) or
-# the Paris Meridian (2 deg. 20'14.03" E); the former yields 07:06:30.1333...
+# the Paris Meridian (2° 20' 14.03" E); the former yields 07:06:30.1333...
 # and the latter 07:06:29.333... so either way it rounds to 07:06:30,
 # which is used below even though the modern-day Phù Liễn Observatory
 # is closer to 07:06:31.  Abbreviate Phù Liễn Mean Time as PLMT.

Modified: stable/11/contrib/tzdata/australasia
==============================================================================
--- stable/11/contrib/tzdata/australasia	Wed Mar 28 05:58:08 2018	(r331661)
+++ stable/11/contrib/tzdata/australasia	Wed Mar 28 07:42:50 2018	(r331662)
@@ -196,20 +196,20 @@ Zone Australia/Broken_Hill 9:25:48 -	LMT	1895 Feb
 
 # Lord Howe Island
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	LH	1981	1984	-	Oct	lastSun	2:00	1:00	D
-Rule	LH	1982	1985	-	Mar	Sun>=1	2:00	0	S
-Rule	LH	1985	only	-	Oct	lastSun	2:00	0:30	D
-Rule	LH	1986	1989	-	Mar	Sun>=15	2:00	0	S
-Rule	LH	1986	only	-	Oct	19	2:00	0:30	D
-Rule	LH	1987	1999	-	Oct	lastSun	2:00	0:30	D
-Rule	LH	1990	1995	-	Mar	Sun>=1	2:00	0	S
-Rule	LH	1996	2005	-	Mar	lastSun	2:00	0	S
-Rule	LH	2000	only	-	Aug	lastSun	2:00	0:30	D
-Rule	LH	2001	2007	-	Oct	lastSun	2:00	0:30	D
-Rule	LH	2006	only	-	Apr	Sun>=1	2:00	0	S
-Rule	LH	2007	only	-	Mar	lastSun	2:00	0	S
-Rule	LH	2008	max	-	Apr	Sun>=1	2:00	0	S
-Rule	LH	2008	max	-	Oct	Sun>=1	2:00	0:30	D
+Rule	LH	1981	1984	-	Oct	lastSun	2:00	1:00	-
+Rule	LH	1982	1985	-	Mar	Sun>=1	2:00	0	-
+Rule	LH	1985	only	-	Oct	lastSun	2:00	0:30	-
+Rule	LH	1986	1989	-	Mar	Sun>=15	2:00	0	-
+Rule	LH	1986	only	-	Oct	19	2:00	0:30	-
+Rule	LH	1987	1999	-	Oct	lastSun	2:00	0:30	-
+Rule	LH	1990	1995	-	Mar	Sun>=1	2:00	0	-
+Rule	LH	1996	2005	-	Mar	lastSun	2:00	0	-
+Rule	LH	2000	only	-	Aug	lastSun	2:00	0:30	-
+Rule	LH	2001	2007	-	Oct	lastSun	2:00	0:30	-
+Rule	LH	2006	only	-	Apr	Sun>=1	2:00	0	-
+Rule	LH	2007	only	-	Mar	lastSun	2:00	0	-
+Rule	LH	2008	max	-	Apr	Sun>=1	2:00	0	-
+Rule	LH	2008	max	-	Oct	Sun>=1	2:00	0:30	-
 Zone Australia/Lord_Howe 10:36:20 -	LMT	1895 Feb
 			10:00	-	AEST	1981 Mar
 			10:30	LH	+1030/+1130 1985 Jul
@@ -367,15 +367,15 @@ Zone	Indian/Cocos	6:27:40	-	LMT	1900
 # practice than guessing no DST.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Fiji	1998	1999	-	Nov	Sun>=1	2:00	1:00	S
+Rule	Fiji	1998	1999	-	Nov	Sun>=1	2:00	1:00	-
 Rule	Fiji	1999	2000	-	Feb	lastSun	3:00	0	-
-Rule	Fiji	2009	only	-	Nov	29	2:00	1:00	S
+Rule	Fiji	2009	only	-	Nov	29	2:00	1:00	-
 Rule	Fiji	2010	only	-	Mar	lastSun	3:00	0	-
-Rule	Fiji	2010	2013	-	Oct	Sun>=21	2:00	1:00	S
+Rule	Fiji	2010	2013	-	Oct	Sun>=21	2:00	1:00	-
 Rule	Fiji	2011	only	-	Mar	Sun>=1	3:00	0	-
 Rule	Fiji	2012	2013	-	Jan	Sun>=18	3:00	0	-
 Rule	Fiji	2014	only	-	Jan	Sun>=18	2:00	0	-
-Rule	Fiji	2014	max	-	Nov	Sun>=1	2:00	1:00	S
+Rule	Fiji	2014	max	-	Nov	Sun>=1	2:00	1:00	-
 Rule	Fiji	2015	max	-	Jan	Sun>=14	3:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Pacific/Fiji	11:55:44 -	LMT	1915 Oct 26 # Suva
@@ -406,11 +406,11 @@ Zone Pacific/Tarawa	 11:32:04 -	LMT	1901 # Bairiki
 			 12:00	-	+12
 Zone Pacific/Enderbury	-11:24:20 -	LMT	1901
 			-12:00	-	-12	1979 Oct
-			-11:00	-	-11	1995
+			-11:00	-	-11	1994 Dec 31
 			 13:00	-	+13
 Zone Pacific/Kiritimati	-10:29:20 -	LMT	1901
 			-10:40	-	-1040	1979 Oct
-			-10:00	-	-10	1995
+			-10:00	-	-10	1994 Dec 31
 			 14:00	-	+14
 
 # N Mariana Is
@@ -447,9 +447,9 @@ Zone	Pacific/Nauru	11:07:40 -	LMT	1921 Jan 15 # Uaobe
 
 # New Caledonia
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	NC	1977	1978	-	Dec	Sun>=1	0:00	1:00	S
+Rule	NC	1977	1978	-	Dec	Sun>=1	0:00	1:00	-
 Rule	NC	1978	1979	-	Feb	27	0:00	0	-
-Rule	NC	1996	only	-	Dec	 1	2:00s	1:00	S
+Rule	NC	1996	only	-	Dec	 1	2:00s	1:00	-
 # Shanks & Pottenger say the following was at 2:00; go with IATA.
 Rule	NC	1997	only	-	Mar	 2	2:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -469,27 +469,28 @@ Rule	NZ	1929	1933	-	Mar	Sun>=15	2:00	0	M
 Rule	NZ	1934	1940	-	Apr	lastSun	2:00	0	M
 Rule	NZ	1934	1940	-	Sep	lastSun	2:00	0:30	S
 Rule	NZ	1946	only	-	Jan	 1	0:00	0	S
-# Since 1957 Chatham has been 45 minutes ahead of NZ, but there's no
-# convenient single notation for the date and time of this transition
-# so we must duplicate the Rule lines.
+# Since 1957 Chatham has been 45 minutes ahead of NZ, but until 2018a
+# there was no documented single notation for the date and time of this
+# transition.  Duplicate the Rule lines for now, to give the 2018a change

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Wed Mar 28 07:45:59 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 204D0F6654B;
 Wed, 28 Mar 2018 07:45:59 +0000 (UTC)
 (envelope-from philip@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BFA9F7AD2B;
 Wed, 28 Mar 2018 07:45:58 +0000 (UTC)
 (envelope-from philip@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B2E4827E46;
 Wed, 28 Mar 2018 07:45:58 +0000 (UTC)
 (envelope-from philip@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2S7jwYK094241;
 Wed, 28 Mar 2018 07:45:58 GMT (envelope-from philip@FreeBSD.org)
Received: (from philip@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2S7jvf6094233;
 Wed, 28 Mar 2018 07:45:57 GMT (envelope-from philip@FreeBSD.org)
Message-Id: <201803280745.w2S7jvf6094233@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: philip set sender to
 philip@FreeBSD.org using -f
From: Philip Paeps 
Date: Wed, 28 Mar 2018 07:45:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331663 - stable/10/contrib/tzdata
X-SVN-Group: stable-10
X-SVN-Commit-Author: philip
X-SVN-Commit-Paths: stable/10/contrib/tzdata
X-SVN-Commit-Revision: 331663
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 07:45:59 -0000

Author: philip
Date: Wed Mar 28 07:45:57 2018
New Revision: 331663
URL: https://svnweb.freebsd.org/changeset/base/331663

Log:
  MFC r331481: Import tzdata 2018d

Added:
  stable/10/contrib/tzdata/ziguard.awk
     - copied unchanged from r331481, head/contrib/tzdata/ziguard.awk
Modified:
  stable/10/contrib/tzdata/CONTRIBUTING
  stable/10/contrib/tzdata/Makefile
  stable/10/contrib/tzdata/NEWS
  stable/10/contrib/tzdata/africa
  stable/10/contrib/tzdata/antarctica
  stable/10/contrib/tzdata/asia
  stable/10/contrib/tzdata/australasia
  stable/10/contrib/tzdata/backzone
  stable/10/contrib/tzdata/checktab.awk
  stable/10/contrib/tzdata/europe
  stable/10/contrib/tzdata/northamerica
  stable/10/contrib/tzdata/southamerica
  stable/10/contrib/tzdata/theory.html
  stable/10/contrib/tzdata/version
  stable/10/contrib/tzdata/zishrink.awk
  stable/10/contrib/tzdata/zone.tab
  stable/10/contrib/tzdata/zone1970.tab
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/contrib/tzdata/CONTRIBUTING
==============================================================================
--- stable/10/contrib/tzdata/CONTRIBUTING	Wed Mar 28 07:42:50 2018	(r331662)
+++ stable/10/contrib/tzdata/CONTRIBUTING	Wed Mar 28 07:45:57 2018	(r331663)
@@ -25,7 +25,8 @@ justification.  Citations should use https: URLs if av
 
 Please submit changes against either the latest release in
  or the master branch of the development
-repository.  If you use Git the following workflow may be helpful:
+repository.  The latter is preferred.  If you use Git the following
+workflow may be helpful:
 
   * Copy the development repository.
 
@@ -42,6 +43,12 @@ repository.  If you use Git the following workflow may
 
       git checkout -b mybranch
 
+  * Sleuth by using 'git blame'.  For example, when fixing data for
+    Africa/Sao_Tome, if the command 'git blame africa' outputs a line
+    '2951fa3b (Paul Eggert 2018-01-08 09:03:13 -0800 1068) Zone
+    Africa/Sao_Tome 0:26:56 - LMT 1884', commit 2951fa3b should
+    provide some justification for the 'Zone Africa/Sao_Tome' line.
+
   * Edit source files.  Include commentary that justifies the
     changes by citing reliable sources.
 
@@ -66,6 +73,9 @@ repository.  If you use Git the following workflow may
     for others to review.
 
       git send-email master
+
+    For an archived example of such an email, see
+    .
 
   * Start anew by getting current with the master branch again
     (the second step above).

Modified: stable/10/contrib/tzdata/Makefile
==============================================================================
--- stable/10/contrib/tzdata/Makefile	Wed Mar 28 07:42:50 2018	(r331662)
+++ stable/10/contrib/tzdata/Makefile	Wed Mar 28 07:45:57 2018	(r331663)
@@ -10,6 +10,15 @@ VERSION=	unknown
 # Email address for bug reports.
 BUGEMAIL=	tz@iana.org
 
+# Choose source data features.  To get new features right away, use:
+#	DATAFORM=	vanguard
+# To wait a while before using new features, to give downstream users
+# time to upgrade zic (the default), use:
+#	DATAFORM=	main
+# To wait even longer for new features, use:
+#	DATAFORM=	rearguard
+DATAFORM=		main
+
 # Change the line below for your time zone (after finding the zone you want in
 # the time zone files, or adding it to a time zone file).
 # Alternately, if you discover you've got the wrong time zone, you can just
@@ -25,10 +34,10 @@ LOCALTIME=	GMT
 # for handling POSIX-style time zone environment variables,
 # change the line below (after finding the zone you want in the
 # time zone files, or adding it to a time zone file).
-# (When a POSIX-style environment variable is handled, the rules in the
+# When a POSIX-style environment variable is handled, the rules in the
 # template file are used to determine "spring forward" and "fall back" days and
 # times; the environment variable itself specifies UT offsets of standard and
-# summer time.)
+# daylight saving time.
 # Alternately, if you discover you've got the wrong time zone, you can just
 #	zic -p rightzone
 # to correct things.
@@ -189,13 +198,18 @@ LDLIBS=
 #  -DHAVE_STDINT_H if you have a non-C99 compiler with 
 #  -DHAVE_STRFTIME_L if  declares locale_t and strftime_l
 #  -DHAVE_STRDUP=0 if your system lacks the strdup function
+#  -DHAVE_STRTOLL=0 if your system lacks the strtoll function
 #  -DHAVE_SYMLINK=0 if your system lacks the symlink function
 #  -DHAVE_SYS_STAT_H=0 if your compiler lacks a 
 #  -DHAVE_SYS_WAIT_H=0 if your compiler lacks a 
 #  -DHAVE_TZSET=0 if your system lacks a tzset function
 #  -DHAVE_UNISTD_H=0 if your compiler lacks a 
 #  -Dlocale_t=XXX if your system uses XXX instead of locale_t
+#  -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers
+#	with external linkage, e.g., applications cannot define 'localtime'.
 #  -Dssize_t=long on hosts like MS-Windows that lack ssize_t
+#  -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has
+#	security implications and is not recommended for general use
 #  -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires;
 #	not needed by the main-program tz code, which is single-threaded.
 #	Append other compiler flags as needed, e.g., -pthread on GNU/Linux.
@@ -394,13 +408,19 @@ SAFE_CHARSET3=	'abcdefghijklmnopqrstuvwxyz{|}~'
 SAFE_CHARSET=	$(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3)
 SAFE_CHAR=	'[]'$(SAFE_CHARSET)'-]'
 
+# Non-ASCII non-letters that OK_CHAR allows, as these characters are
+# useful in commentary.  XEmacs 21.5.34 displays them correctly,
+# presumably because they are Latin-1.
+UNUSUAL_OK_CHARSET= °±½¾×
+
 # OK_CHAR matches any character allowed in the distributed files.
-# This is the same as SAFE_CHAR, except that multibyte letters are
-# also allowed so that commentary can contain people's names and quote
-# non-English sources.  For non-letters the sources are limited to
-# ASCII renderings for the convenience of maintainers whose text editors
-# mishandle UTF-8 by default (e.g., XEmacs 21.4.22).
-OK_CHAR=	'[][:alpha:]'$(SAFE_CHARSET)'-]'
+# This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and
+# multibyte letters are also allowed so that commentary can contain a
+# few safe symbols and people's names and can quote non-English sources.
+# Other non-letters are limited to ASCII renderings for the
+# convenience of maintainers using XEmacs 21.5.34, which by default
+# mishandles Unicode characters U+0100 and greater.
+OK_CHAR=	'[][:alpha:]$(UNUSUAL_OK_CHARSET)'$(SAFE_CHARSET)'-]'
 
 # SAFE_LINE matches a line of safe characters.
 # SAFE_SHARP_LINE is similar, except any OK character can follow '#';
@@ -462,10 +482,12 @@ TDATA=		$(YDATA) $(NDATA) $(BACKWARD)
 ZONETABLES=	zone1970.tab zone.tab
 TABDATA=	iso3166.tab $(TZDATA_TEXT) $(ZONETABLES)
 LEAP_DEPS=	leapseconds.awk leap-seconds.list
-TZDATA_ZI_DEPS=	zishrink.awk version $(TDATA) $(PACKRATDATA)
+TZDATA_ZI_DEPS=	ziguard.awk zishrink.awk version $(TDATA) $(PACKRATDATA)
+DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA)
 DATA=		$(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \
 			leapseconds yearistype.sh $(ZONETABLES)
-AWK_SCRIPTS=	checklinks.awk checktab.awk leapseconds.awk zishrink.awk
+AWK_SCRIPTS=	checklinks.awk checktab.awk leapseconds.awk \
+			ziguard.awk zishrink.awk
 MISC=		$(AWK_SCRIPTS) zoneinfo2tdf.pl
 TZS_YEAR=	2050
 TZS=		to$(TZS_YEAR).tzs
@@ -499,7 +521,8 @@ VERSION_DEPS= \
 
 SHELL=		/bin/sh
 
-all:		tzselect yearistype zic zdump libtz.a $(TABDATA)
+all:		tzselect yearistype zic zdump libtz.a $(TABDATA) \
+		  vanguard.zi main.zi rearguard.zi
 
 ALL:		all date $(ENCHILADA)
 
@@ -534,11 +557,15 @@ version:	$(VERSION_DEPS)
 		printf '%s\n' "$$V" >$@.out
 		mv $@.out $@
 
-# This file can be tailored by setting BACKWARD, PACKRATDATA, etc.
-tzdata.zi:	$(TZDATA_ZI_DEPS)
+# These files can be tailored by setting BACKWARD, PACKRATDATA, etc.
+vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS)
+		$(AWK) -v outfile='$@' -f ziguard.awk $(TDATA) $(PACKRATDATA) \
+		  >$@.out
+		mv $@.out $@
+tzdata.zi:	$(DATAFORM).zi version
 		version=`sed 1q version` && \
 		  LC_ALL=C $(AWK) -v version="$$version" -f zishrink.awk \
-		    $(TDATA) $(PACKRATDATA) >$@.out
+		    $(DATAFORM).zi >$@.out
 		mv $@.out $@
 
 version.h:	version
@@ -614,19 +641,29 @@ posix_packrat:
 
 zones:		$(REDO)
 
+# dummy.zd is not a real file; it is mentioned here only so that the
+# top-level 'make' does not have a syntax error.
+ZDS = dummy.zd
+# Rule used only by submakes invoked by the $(TZS_NEW) rule.
+# It is separate so that GNU 'make -j' can run instances in parallel.
+$(ZDS): zdump
+		./zdump -i -c $(TZS_YEAR) '$(wd)/'$$(expr $@ : '\(.*\).zd') >$@
+
 $(TZS_NEW):	tzdata.zi zdump zic
-		mkdir -p tzs.dir
+		rm -fr tzs.dir
+		mkdir tzs.dir
 		$(zic) -d tzs.dir tzdata.zi
 		$(AWK) '/^L/{print "Link\t" $$2 "\t" $$3}' \
 		   tzdata.zi | LC_ALL=C sort >$@.out
 		wd=`pwd` && \
-		zones=`$(AWK) -v wd="$$wd" \
-				'/^Z/{print wd "/tzs.dir/" $$2}' tzdata.zi \
-			 | LC_ALL=C sort` && \
-		./zdump -i -c $(TZS_YEAR) $$zones >>$@.out
-		sed 's,^TZ=".*tzs\.dir/,TZ=",' $@.out >$@.sed.out
-		rm -fr tzs.dir $@.out
-		mv $@.sed.out $@
+		set x `$(AWK) '/^Z/{print "tzs.dir/" $$2 ".zd"}' tzdata.zi \
+			| LC_ALL=C sort -t . -k 2,2` && \
+		shift && \
+		ZDS=$$* && \
+		$(MAKE) wd="$$wd" TZS_YEAR=$(TZS_YEAR) ZDS="$$ZDS" $$ZDS && \
+		sed 's,^TZ=".*tzs\.dir/,TZ=",' $$ZDS >>$@.out
+		rm -fr tzs.dir
+		mv $@.out $@
 
 # If $(TZS) does not already exist (e.g., old-format tarballs), create it.
 # If it exists but 'make check_tzs' fails, a maintainer should inspect the
@@ -669,8 +706,10 @@ check_character_set: $(ENCHILADA)
 		sharp='#' && \
 		! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \
 			$(MISC) $(SOURCES) $(WEB_PAGES) \
-			CONTRIBUTING LICENSE Makefile README \
+			CONTRIBUTING LICENSE README \
 			version tzdata.zi && \
+		! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_CHARSET='$(OK_CHAR)'*$$' \
+			Makefile && \
 		! grep -Env $(SAFE_SHARP_LINE) $(TDATA_TO_CHECK) backzone \
 			leapseconds yearistype.sh zone.tab && \
 		! grep -Env $(OK_LINE) $(ENCHILADA); \
@@ -702,7 +741,7 @@ check_sorted: backward backzone iso3166.tab zone.tab z
 		$(AWK) '/^[^#]/ $(CHECK_CC_LIST)' zone1970.tab | \
 		  LC_ALL=C sort -cu
 
-check_links:	checklinks.awk $(TDATA_TO_CHECK)
+check_links:	checklinks.awk $(TDATA_TO_CHECK) tzdata.zi
 		$(AWK) -f checklinks.awk $(TDATA_TO_CHECK)
 		$(AWK) -f checklinks.awk tzdata.zi
 
@@ -720,17 +759,26 @@ check_tzs:	$(TZS) $(TZS_NEW)
 check_web:	tz-how-to.html
 		$(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) tz-how-to.html
 
-# Check that tzdata.zi generates the same binary data that its sources do.
-check_zishrink: tzdata.zi zic leapseconds $(PACKRATDATA) $(TDATA)
+# Check that zishrink.awk does not alter the data, and that ziguard.awk
+# preserves main-format data.
+check_zishrink: zic leapseconds $(PACKRATDATA) $(TDATA) \
+		  $(DATAFORM).zi tzdata.zi
 		for type in posix right; do \
-		  mkdir -p time_t.dir/$$type time_t.dir/$$type-shrunk && \
+		  mkdir -p time_t.dir/$$type time_t.dir/$$type-t \
+		    time_t.dir/$$type-shrunk && \
 		  case $$type in \
 		    right) leap='-L leapseconds';; \
 	            *) leap=;; \
 		  esac && \
-		  $(ZIC) $$leap -d time_t.dir/$$type $(TDATA) && \
-		  $(AWK) '/^Rule/' $(TDATA) | \
-		    $(ZIC) $$leap -d time_t.dir/$$type - $(PACKRATDATA) && \
+		  $(ZIC) $$leap -d time_t.dir/$$type $(DATAFORM).zi && \
+		  case $(DATAFORM) in \
+		    main) \
+		      $(ZIC) $$leap -d time_t.dir/$$type-t $(TDATA) && \
+		      $(AWK) '/^Rule/' $(TDATA) | \
+			$(ZIC) $$leap -d time_t.dir/$$type-t - \
+			  $(PACKRATDATA) && \
+		      diff -r time_t.dir/$$type time_t.dir/$$type-t;; \
+		  esac && \
 		  $(ZIC) $$leap -d time_t.dir/$$type-shrunk tzdata.zi && \
 		  diff -r time_t.dir/$$type time_t.dir/$$type-shrunk || exit; \
 		done
@@ -740,7 +788,7 @@ clean_misc:
 		rm -f core *.o *.out \
 		  date tzselect version.h zdump zic yearistype libtz.a
 clean:		clean_misc
-		rm -fr *.dir tzdata.zi tzdb-*/ $(TZS_NEW)
+		rm -fr *.dir *.zi tzdb-*/ $(TZS_NEW)
 
 maintainer-clean: clean
 		@echo 'This command is intended for maintainers to use; it'
@@ -856,6 +904,9 @@ tarballs traditional_tarballs signatures traditional_s
 		VERSION=`cat version` && \
 		$(MAKE) VERSION="$$VERSION" $@_version
 
+# These *_version rules are intended for use if VERSION is set by some
+# other means.  Ordinarily these rules are used only by the above
+# non-_version rules, which set VERSION on the 'make' command line.
 tarballs_version: traditional_tarballs_version tzdb-$(VERSION).tar.lz
 traditional_tarballs_version: \
   tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz
@@ -917,13 +968,17 @@ zic.o:		private.h tzfile.h version.h
 .KEEP_STATE:
 
 .PHONY: ALL INSTALL all
-.PHONY: check check_character_set check_links
+.PHONY: check check_character_set check_links check_name_lengths
 .PHONY: check_public check_sorted check_tables
 .PHONY: check_time_t_alternatives check_tzs check_web check_white_space
 .PHONY: check_zishrink
-.PHONY: clean clean_misc force_tzs
+.PHONY: clean clean_misc dummy.zd force_tzs
 .PHONY: install install_data maintainer-clean names
 .PHONY: posix_only posix_packrat posix_right
 .PHONY: public right_only right_posix signatures signatures_version
-.PHONY: tarballs tarballs_version typecheck
+.PHONY: tarballs tarballs_version
+.PHONY: traditional_signatures traditional_signatures_version
+.PHONY: traditional_tarballs traditional_tarballs_version
+.PHONY: typecheck
 .PHONY: zonenames zones
+.PHONY: $(ZDS)

Modified: stable/10/contrib/tzdata/NEWS
==============================================================================
--- stable/10/contrib/tzdata/NEWS	Wed Mar 28 07:42:50 2018	(r331662)
+++ stable/10/contrib/tzdata/NEWS	Wed Mar 28 07:45:57 2018	(r331663)
@@ -1,9 +1,146 @@
 News for the tz database
 
+Release 2018d - 2018-03-22 07:05:46 -0700
+
+  Briefly:
+
+  Palestine starts DST a week earlier in 2018.
+  Add support for vanguard and rearguard data consumers.
+  Add subsecond precision to source data format, though not to data.
+
+  Changes to future time stamps
+
+    In 2018, Palestine starts DST on March 24, not March 31.
+    Adjust future predictions accordingly.  (Thanks to Sharef Mustafa.)
+
+  Changes to past and future time stamps
+
+    Casey Station in Antarctica changed from +11 to +08 on 2018-03-11
+    at 04:00.  (Thanks to Steffen Thorsen.)
+
+  Changes to past time stamps
+
+    Historical transitions for Uruguay, represented by
+    America/Montevideo, have been updated per official legal documents,
+    replacing previous data mainly originating from the inventions of
+    Shanks & Pottenger.  This has resulted in adjustments ranging from
+    30 to 90 minutes in either direction over at least two dozen
+    distinct periods ranging from one day to several years in length.
+    A mere handful of pre-1991 transitions are unaffected; data since
+    then has come from more reliable contemporaneous reporting.  These
+    changes affect various timestamps in 1920-1923, 1936, 1939,
+    1942-1943, 1959, 1966-1970, 1972, 1974-1980, and 1988-1990.
+    Additionally, Uruguay's pre-standard-time UT offset has been
+    adjusted westward by 7 seconds, from UT-03:44:44 to UT-03:44:51, to
+    match the location of the Observatory of the National Meteorological
+    Institute in Montevideo.
+    (Thanks to Jeremie Bonjour, Tim Parenti, and Michael Deckers.)
+
+    Enderbury and Kiritimati skipped New Year's Eve 1994, not
+    New Year's Day 1995.  (Thanks to Kerry Shetline.)
+
+    Fix the 1912-01-01 transition for Portugual and its colonies.
+    This transition was at 00:00 according to the new UT offset, not
+    according to the old one.  Also assume that Cape Verde switched on
+    the same date as the rest, not in 1907.  This affects
+    Africa/Bissau, Africa/Sao_Tome, Asia/Macau, Atlantic/Azores,
+    Atlantic/Cape_Verde, Atlantic/Madeira, and Europe/Lisbon.
+    (Thanks to Michael Deckers.)
+
+    Fix an off-by-1 error for pre-1913 timestamps in Jamaica and in
+    Turks & Caicos.
+
+  Changes to past time zone abbreviations
+
+    MMT took effect in Uruguay from 1908-06-10, not 1898-06-28.  There
+    is no clock change associated with the transition.
+
+  Changes to build procedure
+
+    The new DATAFORM macro in the Makefile lets the installer choose
+    among three source data formats.  The idea is to lessen downstream
+    disruption when data formats are improved.
+
+    * DATAFORM=vanguard installs from the latest, bleeding-edge
+      format.  DATAFORM=main (the default) installs from the format
+      used in the 'africa' etc. files.  DATAFORM=rearguard installs
+      from a trailing-edge format.  Eventually, elements of today's
+      vanguard format should move to the main format, and similarly
+      the main format's features should eventually move to the
+      rearguard format.
+
+    * In the current version, the main and rearguard formats are
+      identical and match that of 2018c, so this change does not
+      affect default behavior.  The vanguard format currently contains
+      one feature not in the main format: negative SAVE values.  This
+      improves support for Ireland, which uses Irish Standard Time
+      (IST, UTC+01) in summer and GMT (UTC) in winter.  tzcode has
+      supported negative SAVE values for decades, and this feature
+      should move to the main format soon.  However, it will not move
+      to the rearguard format for quite some time because some
+      downstream parsers do not support it.
+
+    * The build procedure constructs three files vanguard.zi, main.zi,
+      and rearguard.zi, one for each format.  The files represent the
+      same data as closely as the formats allow.  These three files
+      are intended for downstream data consumers and are not
+      installed.  Zoneinfo parsers that do not support negative SAVE values
+      should start using rearguard.zi, so that they will be unaffected
+      when the negative-DST feature moves from vanguard to main.
+      Bleeding-edge Zoneinfo parsers that support the new features
+      already can use vanguard.zi; in this respect, current tzcode is
+      bleeding-edge.
+
+    The Makefile should now be safe for parallelized builds, and 'make
+    -j to2050new.tzs' is now much faster on a multiprocessor host
+    with GNU Make.
+
+    When built with -DSUPPRESS_TZDIR, the tzcode library no longer
+    prepends TZDIR/ to file names that do not begin with '/'.  This is
+    not recommended for general use, due to its security implications.
+    (From a suggestion by Manuela Friedrich.)
+
+  Changes to code
+
+    zic now accepts subsecond precision in expressions like
+    00:19:32.13, which is approximately the legal time of the
+    Netherlands from 1835 to 1937.  However, because it is
+    questionable whether the few recorded uses of non-integer offsets
+    had subsecond precision in practice, there are no plans for tzdata
+    to use this feature.  (Thanks to Steve Allen for pointing out
+    the limitations of historical data in this area.)
+
+    The code is a bit more portable to MS-Windows.  Installers can
+    compile with -DRESERVE_STD_EXT_IDS on MS-Windows platforms that
+    reserve identifiers like 'localtime'.  (Thanks to Manuela
+    Friedrich).
+
+  Changes to documentation and commentary
+
+    theory.html now outlines tzdb's extensions to POSIX's model for
+    civil time, and has a section "POSIX features no longer needed"
+    that lists POSIX API components that are now vestigial.
+    (From suggestions by Steve Summit.)  It also better distinguishes
+    time zones from tz regions.  (From a suggestion by Guy Harris.)
+
+    Commentary is now more consistent about using the phrase "daylight
+    saving time", to match the C name tm_isdst.  Daylight saving time
+    need not occur in summer, and need not have a positive offset from
+    standard time.
+
+    Commentary about historical transitions in Uruguay has been expanded
+    with links to many relevant legal documents.
+    (Thanks to Tim Parenti.)
+
+    Commentary now uses some non-ASCII characters with Unicode value
+    less than U+0100, as they can be useful and should work even with
+    older editors such as XEmacs.
+
+
 Release 2018c - 2018-01-22 23:00:44 -0800
 
   Briefly:
-  Revert Irish changes that relied on negative DST offsets.
+  Revert Irish changes that relied on negative SAVE values.
 
   Changes to tm_isdst
 
@@ -14,8 +151,8 @@ Release 2018c - 2018-01-22 23:00:44 -0800
     struct tm type.  This reversion is intended to be a temporary
     workaround for problems discovered with downstream uses of
     releases 2018a and 2018b, which implemented Irish time by using
-    negative DST offsets in the Eire rules of the 'europe' file.
-    Although negative DST offsets have been part of tzcode for many
+    negative SAVE values in the Eire rules of the 'europe' file.
+    Although negative SAVE values have been part of tzcode for many
     years and are supported by many platforms, they were not
     documented before 2018a and ICU and OpenJDK do not currently
     support them.  A mechanism to export data to platforms lacking
@@ -900,7 +1037,7 @@ Release 2016b - 2016-03-12 17:30:14 -0800
     Comments in zone tables have been improved.  (Thanks to J William Piggott.)
 
     tzselect again limits its menu comments so that menus fit on a
-    24x80 alphanumeric display.
+    24×80 alphanumeric display.
 
     A new web page tz-how-to.html.  (Thanks to Bill Seymour.)
 

Modified: stable/10/contrib/tzdata/africa
==============================================================================
--- stable/10/contrib/tzdata/africa	Wed Mar 28 07:42:50 2018	(r331662)
+++ stable/10/contrib/tzdata/africa	Wed Mar 28 07:45:57 2018	(r331663)
@@ -115,13 +115,13 @@ Zone	Africa/Algiers	0:12:12 -	LMT	1891 Mar 15  0:01
 
 # Cape Verde / Cabo Verde
 #
+# From Paul Eggert (2018-02-16):
 # Shanks gives 1907 for the transition to +02.
-# Perhaps the 1911-05-26 Portuguese decree
-# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf
-# merely made it official?
+# For now, ignore that and follow the 1911-05-26 Portuguese decree
+# (see Europe/Lisbon).
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone Atlantic/Cape_Verde -1:34:04 -	LMT	1907        # Praia
+Zone Atlantic/Cape_Verde -1:34:04 -	LMT	1912 Jan 01  2:00u # Praia
 			-2:00	-	-02	1942 Sep
 			-2:00	1:00	-01	1945 Oct 15
 			-2:00	-	-02	1975 Nov 25  2:00
@@ -370,15 +370,34 @@ Zone	Africa/Cairo	2:05:09 -	LMT	1900 Oct
 # See Africa/Abidjan.
 
 # Ghana
-# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+
+# From Paul Eggert (2018-01-30):
 # Whitman says DST was observed from 1931 to "the present";
-# Shanks & Pottenger say 1936 to 1942;
-# and September 1 to January 1 is given by:
-# Scott Keltie J, Epstein M (eds), The Statesman's Year-Book,
-# 57th ed. Macmillan, London (1920), OCLC 609408015, pp xxviii.
-# For lack of better info, assume DST was observed from 1920 to 1942.
-Rule	Ghana	1920	1942	-	Sep	 1	0:00	0:20	GHST
-Rule	Ghana	1920	1942	-	Dec	31	0:00	0	GMT
+# Shanks & Pottenger say 1936 to 1942 with 20 minutes of DST,
+# with transitions on 09-01 and 12-31 at 00:00.
+# Page 33 of Parish GCB, Colonial Reports - Annual. No. 1066. Gold
+# Coast. Report for 1919. (March 1921), OCLC 784024077
+# http://libsysdigi.library.illinois.edu/ilharvest/africana/books2011-05/5530214/5530214_1919/5530214_1919_opt.pdf
+# lists the Determination of the Time Ordinance, 1919, No. 18,
+# "to advance the time observed locally by the space of twenty minutes
+# during the last four months of each year; the object in view being
+# to extend during those months the period of daylight-time available
+# for evening recreation after office hours."
+# Vanessa Ogle, The Global Transformation of Time, 1870-1950 (2015), p 33,
+# writes "In 1919, the Gold Coast (Ghana as of 1957) made Greenwich
+# time its legal time and simultaneously legalized a summer time of
+# UTC - 00:20 minutes from March to October."; a footnote lists
+# the ordinance as being dated 1919-11-24.
+# The Crown Colonist, Volume 12 (1942), p 176, says "the Government
+# intend advancing Gold Coast time half an hour ahead of G.M.T.
+# The actual date of the alteration has not yet been announced."
+# These sources are incomplete and contradictory.  Possibly what is
+# now Ghana observed different DST regimes in different years.  For
+# lack of better info, use Shanks except treat the minus sign as a
+# typo, and assume DST started in 1920 not 1936.
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	Ghana	1920	1942	-	Sep	 1	0:00	0:20	-
+Rule	Ghana	1920	1942	-	Dec	31	0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Africa/Accra	-0:00:52 -	LMT	1918
 			 0:00	Ghana	GMT/+0020
@@ -388,13 +407,13 @@ Zone	Africa/Accra	-0:00:52 -	LMT	1918
 
 # Guinea-Bissau
 #
+# From Paul Eggert (2018-02-16):
 # Shanks gives 1911-05-26 for the transition to WAT,
 # evidently confusing the date of the Portuguese decree
-# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf
-# with the date that it took effect, namely 1912-01-01.
+# (see Europe/Lisbon) with the date that it took effect.
 #
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Africa/Bissau	-1:02:20 -	LMT	1912 Jan  1
+Zone	Africa/Bissau	-1:02:20 -	LMT	1912 Jan  1  1:00u
 			-1:00	-	-01	1975
 			 0:00	-	GMT
 
@@ -590,9 +609,9 @@ Zone	Africa/Tripoli	0:52:44 -	LMT	1920
 # at 2am (or 02:00) local time..."
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule Mauritius	1982	only	-	Oct	10	0:00	1:00	S
+Rule Mauritius	1982	only	-	Oct	10	0:00	1:00	-
 Rule Mauritius	1983	only	-	Mar	21	0:00	0	-
-Rule Mauritius	2008	only	-	Oct	lastSun	2:00	1:00	S
+Rule Mauritius	2008	only	-	Oct	lastSun	2:00	1:00	-
 Rule Mauritius	2009	only	-	Mar	lastSun	2:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Indian/Mauritius	3:50:00 -	LMT	1907 # Port Louis
@@ -1037,6 +1056,8 @@ Zone	Indian/Reunion	3:41:52 -	LMT	1911 Jun # Saint-Den
 
 # São Tomé and Príncipe
 
+# See Europe/Lisbon for info about the 1912 transition.
+
 # From Steffen Thorsen (2018-01-08):
 # Multiple sources tell that São Tomé changed from UTC to UTC+1 as
 # they entered the year 2018.
@@ -1045,7 +1066,7 @@ Zone	Indian/Reunion	3:41:52 -	LMT	1911 Jun # Saint-Den
 # http://www.mnec.gov.st/index.php/publicacoes/documentos/file/90-decreto-lei-n-25-2017
 
 Zone	Africa/Sao_Tome	 0:26:56 -	LMT	1884
-			-0:36:45 -	LMT	1912 # Lisbon Mean Time
+			-0:36:45 -	LMT	1912 Jan  1 00:00u # Lisbon MT
 			 0:00	-	GMT	2018 Jan  1 01:00
 			 1:00	-	WAT
 

Modified: stable/10/contrib/tzdata/antarctica
==============================================================================
--- stable/10/contrib/tzdata/antarctica	Wed Mar 28 07:42:50 2018	(r331662)
+++ stable/10/contrib/tzdata/antarctica	Wed Mar 28 07:45:57 2018	(r331663)
@@ -75,7 +75,8 @@ Zone Antarctica/Casey	0	-	-00	1969
 			8:00	-	+08	2011 Oct 28  2:00
 			11:00	-	+11	2012 Feb 21 17:00u
 			8:00	-	+08	2016 Oct 22
-			11:00	-	+11
+			11:00	-	+11	2018 Mar 11  4:00
+			8:00	-	+08
 Zone Antarctica/Davis	0	-	-00	1957 Jan 13
 			7:00	-	+07	1964 Nov
 			0	-	-00	1969 Feb

Modified: stable/10/contrib/tzdata/asia
==============================================================================
--- stable/10/contrib/tzdata/asia	Wed Mar 28 07:42:50 2018	(r331662)
+++ stable/10/contrib/tzdata/asia	Wed Mar 28 07:45:57 2018	(r331663)
@@ -69,13 +69,13 @@
 Rule	EUAsia	1981	max	-	Mar	lastSun	 1:00u	1:00	S
 Rule	EUAsia	1979	1995	-	Sep	lastSun	 1:00u	0	-
 Rule	EUAsia	1996	max	-	Oct	lastSun	 1:00u	0	-
-Rule E-EurAsia	1981	max	-	Mar	lastSun	 0:00	1:00	S
+Rule E-EurAsia	1981	max	-	Mar	lastSun	 0:00	1:00	-
 Rule E-EurAsia	1979	1995	-	Sep	lastSun	 0:00	0	-
 Rule E-EurAsia	1996	max	-	Oct	lastSun	 0:00	0	-
-Rule RussiaAsia	1981	1984	-	Apr	1	 0:00	1:00	S
+Rule RussiaAsia	1981	1984	-	Apr	1	 0:00	1:00	-
 Rule RussiaAsia	1981	1983	-	Oct	1	 0:00	0	-
 Rule RussiaAsia	1984	1995	-	Sep	lastSun	 2:00s	0	-
-Rule RussiaAsia	1985	2010	-	Mar	lastSun	 2:00s	1:00	S
+Rule RussiaAsia	1985	2010	-	Mar	lastSun	 2:00s	1:00	-
 Rule RussiaAsia	1996	2010	-	Oct	lastSun	 2:00s	0	-
 
 # Afghanistan
@@ -110,7 +110,7 @@ Zone	Asia/Kabul	4:36:48 -	LMT	1890
 # (brief)
 # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule Armenia	2011	only	-	Mar	lastSun	 2:00s	1:00	S
+Rule Armenia	2011	only	-	Mar	lastSun	 2:00s	1:00	-
 Rule Armenia	2011	only	-	Oct	lastSun	 2:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Yerevan	2:58:00 -	LMT	1924 May  2
@@ -136,7 +136,7 @@ Zone	Asia/Yerevan	2:58:00 -	LMT	1924 May  2
 # http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Azer	1997	2015	-	Mar	lastSun	 4:00	1:00	S
+Rule	Azer	1997	2015	-	Mar	lastSun	 4:00	1:00	-
 Rule	Azer	1997	2015	-	Oct	lastSun	 5:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Baku	3:19:24 -	LMT	1924 May  2
@@ -223,7 +223,7 @@ Zone	Asia/Baku	3:19:24 -	LMT	1924 May  2
 # http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Dhaka	2009	only	-	Jun	19	23:00	1:00	S
+Rule	Dhaka	2009	only	-	Jun	19	23:00	1:00	-
 Rule	Dhaka	2009	only	-	Dec	31	24:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -764,8 +764,9 @@ Rule	Macau	1974	1977	-	Oct	Sun>=15	3:30	0	S
 Rule	Macau	1975	1977	-	Apr	Sun>=15	3:30	1:00	D
 Rule	Macau	1978	1980	-	Apr	Sun>=15	0:00	1:00	D
 Rule	Macau	1978	1980	-	Oct	Sun>=15	0:00	0	S
+# See Europe/Lisbon for info about the 1912 transition.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
-Zone	Asia/Macau	7:34:20 -	LMT	1912 Jan  1
+Zone	Asia/Macau	7:34:20 -	LMT	1911 Dec 31 16:00u
 			8:00	Macau	C%sT
 
 
@@ -1106,61 +1107,61 @@ Zone Asia/Jayapura	9:22:48 -	LMT	1932 Nov
 # thirtieth day of Shahrivar.
 #
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Iran	1978	1980	-	Mar	21	0:00	1:00	D
-Rule	Iran	1978	only	-	Oct	21	0:00	0	S
-Rule	Iran	1979	only	-	Sep	19	0:00	0	S
-Rule	Iran	1980	only	-	Sep	23	0:00	0	S
-Rule	Iran	1991	only	-	May	 3	0:00	1:00	D
-Rule	Iran	1992	1995	-	Mar	22	0:00	1:00	D
-Rule	Iran	1991	1995	-	Sep	22	0:00	0	S
-Rule	Iran	1996	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	1996	only	-	Sep	21	0:00	0	S
-Rule	Iran	1997	1999	-	Mar	22	0:00	1:00	D
-Rule	Iran	1997	1999	-	Sep	22	0:00	0	S
-Rule	Iran	2000	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2000	only	-	Sep	21	0:00	0	S
-Rule	Iran	2001	2003	-	Mar	22	0:00	1:00	D
-Rule	Iran	2001	2003	-	Sep	22	0:00	0	S
-Rule	Iran	2004	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2004	only	-	Sep	21	0:00	0	S
-Rule	Iran	2005	only	-	Mar	22	0:00	1:00	D
-Rule	Iran	2005	only	-	Sep	22	0:00	0	S
-Rule	Iran	2008	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2008	only	-	Sep	21	0:00	0	S
-Rule	Iran	2009	2011	-	Mar	22	0:00	1:00	D
-Rule	Iran	2009	2011	-	Sep	22	0:00	0	S
-Rule	Iran	2012	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2012	only	-	Sep	21	0:00	0	S
-Rule	Iran	2013	2015	-	Mar	22	0:00	1:00	D
-Rule	Iran	2013	2015	-	Sep	22	0:00	0	S
-Rule	Iran	2016	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2016	only	-	Sep	21	0:00	0	S
-Rule	Iran	2017	2019	-	Mar	22	0:00	1:00	D
-Rule	Iran	2017	2019	-	Sep	22	0:00	0	S
-Rule	Iran	2020	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2020	only	-	Sep	21	0:00	0	S
-Rule	Iran	2021	2023	-	Mar	22	0:00	1:00	D
-Rule	Iran	2021	2023	-	Sep	22	0:00	0	S
-Rule	Iran	2024	only	-	Mar	21	0:00	1:00	D
-Rule	Iran	2024	only	-	Sep	21	0:00	0	S
-Rule	Iran	2025	2027	-	Mar	22	0:00	1:00	D
-Rule	Iran	2025	2027	-	Sep	22	0:00	0	S
-Rule	Iran	2028	2029	-	Mar	21	0:00	1:00	D
-Rule	Iran	2028	2029	-	Sep	21	0:00	0	S
-Rule	Iran	2030	2031	-	Mar	22	0:00	1:00	D
-Rule	Iran	2030	2031	-	Sep	22	0:00	0	S
-Rule	Iran	2032	2033	-	Mar	21	0:00	1:00	D
-Rule	Iran	2032	2033	-	Sep	21	0:00	0	S
-Rule	Iran	2034	2035	-	Mar	22	0:00	1:00	D
-Rule	Iran	2034	2035	-	Sep	22	0:00	0	S
+Rule	Iran	1978	1980	-	Mar	21	0:00	1:00	-
+Rule	Iran	1978	only	-	Oct	21	0:00	0	-
+Rule	Iran	1979	only	-	Sep	19	0:00	0	-
+Rule	Iran	1980	only	-	Sep	23	0:00	0	-
+Rule	Iran	1991	only	-	May	 3	0:00	1:00	-
+Rule	Iran	1992	1995	-	Mar	22	0:00	1:00	-
+Rule	Iran	1991	1995	-	Sep	22	0:00	0	-
+Rule	Iran	1996	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	1996	only	-	Sep	21	0:00	0	-
+Rule	Iran	1997	1999	-	Mar	22	0:00	1:00	-
+Rule	Iran	1997	1999	-	Sep	22	0:00	0	-
+Rule	Iran	2000	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2000	only	-	Sep	21	0:00	0	-
+Rule	Iran	2001	2003	-	Mar	22	0:00	1:00	-
+Rule	Iran	2001	2003	-	Sep	22	0:00	0	-
+Rule	Iran	2004	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2004	only	-	Sep	21	0:00	0	-
+Rule	Iran	2005	only	-	Mar	22	0:00	1:00	-
+Rule	Iran	2005	only	-	Sep	22	0:00	0	-
+Rule	Iran	2008	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2008	only	-	Sep	21	0:00	0	-
+Rule	Iran	2009	2011	-	Mar	22	0:00	1:00	-
+Rule	Iran	2009	2011	-	Sep	22	0:00	0	-
+Rule	Iran	2012	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2012	only	-	Sep	21	0:00	0	-
+Rule	Iran	2013	2015	-	Mar	22	0:00	1:00	-
+Rule	Iran	2013	2015	-	Sep	22	0:00	0	-
+Rule	Iran	2016	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2016	only	-	Sep	21	0:00	0	-
+Rule	Iran	2017	2019	-	Mar	22	0:00	1:00	-
+Rule	Iran	2017	2019	-	Sep	22	0:00	0	-
+Rule	Iran	2020	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2020	only	-	Sep	21	0:00	0	-
+Rule	Iran	2021	2023	-	Mar	22	0:00	1:00	-
+Rule	Iran	2021	2023	-	Sep	22	0:00	0	-
+Rule	Iran	2024	only	-	Mar	21	0:00	1:00	-
+Rule	Iran	2024	only	-	Sep	21	0:00	0	-
+Rule	Iran	2025	2027	-	Mar	22	0:00	1:00	-
+Rule	Iran	2025	2027	-	Sep	22	0:00	0	-
+Rule	Iran	2028	2029	-	Mar	21	0:00	1:00	-
+Rule	Iran	2028	2029	-	Sep	21	0:00	0	-
+Rule	Iran	2030	2031	-	Mar	22	0:00	1:00	-
+Rule	Iran	2030	2031	-	Sep	22	0:00	0	-
+Rule	Iran	2032	2033	-	Mar	21	0:00	1:00	-
+Rule	Iran	2032	2033	-	Sep	21	0:00	0	-
+Rule	Iran	2034	2035	-	Mar	22	0:00	1:00	-
+Rule	Iran	2034	2035	-	Sep	22	0:00	0	-
 #
 # The following rules are approximations starting in the year 2038.
 # These are the best post-2037 approximations available, given the
 # restrictions of a single rule using a Gregorian-based data format.
 # At some point this table will need to be extended, though quite
 # possibly Iran will change the rules first.
-Rule	Iran	2036	max	-	Mar	21	0:00	1:00	D
-Rule	Iran	2036	max	-	Sep	21	0:00	0	S
+Rule	Iran	2036	max	-	Mar	21	0:00	1:00	-
+Rule	Iran	2036	max	-	Sep	21	0:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Tehran	3:25:44	-	LMT	1916
@@ -1196,17 +1197,17 @@ Zone	Asia/Tehran	3:25:44	-	LMT	1916
 # https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Iraq	1982	only	-	May	1	0:00	1:00	D
-Rule	Iraq	1982	1984	-	Oct	1	0:00	0	S
-Rule	Iraq	1983	only	-	Mar	31	0:00	1:00	D
-Rule	Iraq	1984	1985	-	Apr	1	0:00	1:00	D
-Rule	Iraq	1985	1990	-	Sep	lastSun	1:00s	0	S
-Rule	Iraq	1986	1990	-	Mar	lastSun	1:00s	1:00	D
+Rule	Iraq	1982	only	-	May	1	0:00	1:00	-
+Rule	Iraq	1982	1984	-	Oct	1	0:00	0	-
+Rule	Iraq	1983	only	-	Mar	31	0:00	1:00	-
+Rule	Iraq	1984	1985	-	Apr	1	0:00	1:00	-
+Rule	Iraq	1985	1990	-	Sep	lastSun	1:00s	0	-
+Rule	Iraq	1986	1990	-	Mar	lastSun	1:00s	1:00	-
 # IATA SSIM (1991/1996) says Apr 1 12:01am UTC; guess the ':01' is a typo.
 # Shanks & Pottenger say Iraq did not observe DST 1992/1997; ignore this.
 #
-Rule	Iraq	1991	2007	-	Apr	 1	3:00s	1:00	D
-Rule	Iraq	1991	2007	-	Oct	 1	3:00s	0	S
+Rule	Iraq	1991	2007	-	Apr	 1	3:00s	1:00	-
+Rule	Iraq	1991	2007	-	Oct	 1	3:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Baghdad	2:57:40	-	LMT	1890
 			2:57:36	-	BMT	1918     # Baghdad Mean Time?
@@ -1478,8 +1479,7 @@ Rule	Japan	1950	1951	-	May	Sat>=1	24:00	1:00	D
 
 # From Hideyuki Suzuki (1998-11-09):
 # 'Tokyo' usually stands for the former location of Tokyo Astronomical
-# Observatory: 139 degrees 44' 40.90" E (9h 18m 58.727s),
-# 35 degrees 39' 16.0" N.
+# Observatory: 139° 44' 40.90" E (9h 18m 58.727s), 35° 39' 16.0" N.
 # This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996'
 # edited by National Astronomical Observatory of Japan....
 # JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST).
@@ -1487,10 +1487,10 @@ Rule	Japan	1950	1951	-	May	Sat>=1	24:00	1:00	D
 
 # From Hideyuki Suzuki (1998-11-16):
 # The ordinance No. 51 (1886) established "standard time" in Japan,
-# which stands for the time on 135 degrees E.
+# which stands for the time on 135° E.
 # In the ordinance No. 167 (1895), "standard time" was renamed to "central
 # standard time".  And the same ordinance also established "western standard
-# time", which stands for the time on 120 degrees E....  But "western standard
+# time", which stands for the time on 120° E....  But "western standard
 # time" was abolished in the ordinance No. 529 (1937).  In the ordinance No.
 # 167, there is no mention regarding for what place western standard time is
 # standard....
@@ -1903,9 +1903,9 @@ Zone	Asia/Oral	3:25:24	-	LMT	1924 May  2 # or Ural'sk
 # From 2005-08-12 our GMT-offset is +6, w/o any daylight saving.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Kyrgyz	1992	1996	-	Apr	Sun>=7	0:00s	1:00	S
+Rule	Kyrgyz	1992	1996	-	Apr	Sun>=7	0:00s	1:00	-
 Rule	Kyrgyz	1992	1996	-	Sep	lastSun	0:00	0	-
-Rule	Kyrgyz	1997	2005	-	Mar	lastSun	2:30	1:00	S
+Rule	Kyrgyz	1997	2005	-	Mar	lastSun	2:30	1:00	-
 Rule	Kyrgyz	1997	2004	-	Oct	lastSun	2:30	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Bishkek	4:58:24 -	LMT	1924 May  2
@@ -2037,7 +2037,7 @@ Zone	Asia/Beirut	2:22:00 -	LMT	1880
 
 # Malaysia
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	NBorneo	1935	1941	-	Sep	14	0:00	0:20	TS # one-Third Summer
+Rule	NBorneo	1935	1941	-	Sep	14	0:00	0:20	-
 Rule	NBorneo	1935	1941	-	Dec	14	0:00	0	-
 #
 # peninsular Malaysia
@@ -2182,7 +2182,7 @@ Zone	Indian/Maldives	4:54:00 -	LMT	1880 # Malé
 # http://zasag.mn/news/view/8969
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Mongol	1983	1984	-	Apr	1	0:00	1:00	S
+Rule	Mongol	1983	1984	-	Apr	1	0:00	1:00	-
 Rule	Mongol	1983	only	-	Oct	1	0:00	0	-
 # Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00,
 # but McDow says the 2001 switches occurred at 02:00.  Also, IATA SSIM
@@ -2199,13 +2199,13 @@ Rule	Mongol	1983	only	-	Oct	1	0:00	0	-
 # Mongolian Government meeting has concluded today to cancel daylight
 # saving time adoption in Mongolia.  Source: http://zasag.mn/news/view/16192
 
-Rule	Mongol	1985	1998	-	Mar	lastSun	0:00	1:00	S
+Rule	Mongol	1985	1998	-	Mar	lastSun	0:00	1:00	-
 Rule	Mongol	1984	1998	-	Sep	lastSun	0:00	0	-
 # IATA SSIM (1999-09) says Mongolia no longer observes DST.
-Rule	Mongol	2001	only	-	Apr	lastSat	2:00	1:00	S
+Rule	Mongol	2001	only	-	Apr	lastSat	2:00	1:00	-
 Rule	Mongol	2001	2006	-	Sep	lastSat	2:00	0	-
-Rule	Mongol	2002	2006	-	Mar	lastSat	2:00	1:00	S
-Rule	Mongol	2015	2016	-	Mar	lastSat	2:00	1:00	S
+Rule	Mongol	2002	2006	-	Mar	lastSat	2:00	1:00	-
+Rule	Mongol	2015	2016	-	Mar	lastSat	2:00	1:00	-
 Rule	Mongol	2015	2016	-	Sep	lastSat	0:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -2639,9 +2639,6 @@ Zone	Asia/Karachi	4:28:12 -	LMT	1907
 # [Google translation]: "The Council also decided to start daylight
 # saving in Palestine as of one o'clock on Saturday morning,
 # 2016-03-26, to provide the clock 60 minutes ahead."
-#
-# From Paul Eggert (2016-03-12):
-# Predict spring transitions on March's last Saturday at 01:00 from now on.
 
 # From Sharef Mustafa (2016-10-19):
 # [T]he Palestinian cabinet decision (Mar 8th 2016) published on
@@ -2658,6 +2655,16 @@ Zone	Asia/Karachi	4:28:12 -	LMT	1907
 # https://www.timeanddate.com/time/change/gaza-strip/gaza
 # https://www.timeanddate.com/time/change/west-bank/hebron
 
+# From Sharef Mustafa (2018-03-16):
+# Palestine summer time will start on Mar 24th 2018 by advancing the
+# clock by 60 minutes as per Palestinian cabinet decision published on
+# the offical website, though the decree did not specify the exact
+# time of the time shift.
+# http://www.palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e7a42ab7-ee23-435a-b9c8-a4f7e81f3817
+#
+# From Paul Eggert (2018-03-16):
+# For 2016 on, predict spring transitions on March's fourth Saturday at 01:00.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
 Rule EgyptAsia	1957	1958	-	Oct	 1	0:00	0	-
@@ -2687,7 +2694,7 @@ Rule Palestine	2012	only	-	Sep	21	1:00	0	-
 Rule Palestine	2013	only	-	Sep	Fri>=21	0:00	0	-
 Rule Palestine	2014	2015	-	Oct	Fri>=21	0:00	0	-
 Rule Palestine	2015	only	-	Mar	lastFri	24:00	1:00	S
-Rule Palestine	2016	max	-	Mar	lastSat	1:00	1:00	S
+Rule Palestine	2016	max	-	Mar	Sat>=22	1:00	1:00	S
 Rule Palestine	2016	max	-	Oct	lastSat	1:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -2737,11 +2744,11 @@ Zone	Asia/Hebron	2:20:23	-	LMT	1900 Oct
 # http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use-daylight-saving-time
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Phil	1936	only	-	Nov	1	0:00	1:00	S
+Rule	Phil	1936	only	-	Nov	1	0:00	1:00	-
 Rule	Phil	1937	only	-	Feb	1	0:00	0	-
-Rule	Phil	1954	only	-	Apr	12	0:00	1:00	S
+Rule	Phil	1954	only	-	Apr	12	0:00	1:00	-
 Rule	Phil	1954	only	-	Jul	1	0:00	0	-
-Rule	Phil	1978	only	-	Mar	22	0:00	1:00	S
+Rule	Phil	1978	only	-	Mar	22	0:00	1:00	-
 Rule	Phil	1978	only	-	Sep	21	0:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Manila	-15:56:00 -	LMT	1844 Dec 31
@@ -3097,9 +3104,9 @@ Zone	Asia/Tashkent	4:37:11 -	LMT	1924 May  2
 # and is the basis for the information below.
 #
 # The 1906 transition was effective July 1 and standardized Indochina to
-# Phù Liễn Observatory, legally 104 deg. 17'17" east of Paris.
+# Phù Liễn Observatory, legally 104° 17' 17" east of Paris.
 # It's unclear whether this meant legal Paris Mean Time (00:09:21) or
-# the Paris Meridian (2 deg. 20'14.03" E); the former yields 07:06:30.1333...
+# the Paris Meridian (2° 20' 14.03" E); the former yields 07:06:30.1333...
 # and the latter 07:06:29.333... so either way it rounds to 07:06:30,
 # which is used below even though the modern-day Phù Liễn Observatory
 # is closer to 07:06:31.  Abbreviate Phù Liễn Mean Time as PLMT.

Modified: stable/10/contrib/tzdata/australasia
==============================================================================
--- stable/10/contrib/tzdata/australasia	Wed Mar 28 07:42:50 2018	(r331662)
+++ stable/10/contrib/tzdata/australasia	Wed Mar 28 07:45:57 2018	(r331663)
@@ -196,20 +196,20 @@ Zone Australia/Broken_Hill 9:25:48 -	LMT	1895 Feb
 
 # Lord Howe Island
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	LH	1981	1984	-	Oct	lastSun	2:00	1:00	D
-Rule	LH	1982	1985	-	Mar	Sun>=1	2:00	0	S
-Rule	LH	1985	only	-	Oct	lastSun	2:00	0:30	D
-Rule	LH	1986	1989	-	Mar	Sun>=15	2:00	0	S
-Rule	LH	1986	only	-	Oct	19	2:00	0:30	D
-Rule	LH	1987	1999	-	Oct	lastSun	2:00	0:30	D
-Rule	LH	1990	1995	-	Mar	Sun>=1	2:00	0	S
-Rule	LH	1996	2005	-	Mar	lastSun	2:00	0	S
-Rule	LH	2000	only	-	Aug	lastSun	2:00	0:30	D
-Rule	LH	2001	2007	-	Oct	lastSun	2:00	0:30	D
-Rule	LH	2006	only	-	Apr	Sun>=1	2:00	0	S
-Rule	LH	2007	only	-	Mar	lastSun	2:00	0	S
-Rule	LH	2008	max	-	Apr	Sun>=1	2:00	0	S
-Rule	LH	2008	max	-	Oct	Sun>=1	2:00	0:30	D
+Rule	LH	1981	1984	-	Oct	lastSun	2:00	1:00	-
+Rule	LH	1982	1985	-	Mar	Sun>=1	2:00	0	-
+Rule	LH	1985	only	-	Oct	lastSun	2:00	0:30	-
+Rule	LH	1986	1989	-	Mar	Sun>=15	2:00	0	-
+Rule	LH	1986	only	-	Oct	19	2:00	0:30	-
+Rule	LH	1987	1999	-	Oct	lastSun	2:00	0:30	-
+Rule	LH	1990	1995	-	Mar	Sun>=1	2:00	0	-
+Rule	LH	1996	2005	-	Mar	lastSun	2:00	0	-
+Rule	LH	2000	only	-	Aug	lastSun	2:00	0:30	-
+Rule	LH	2001	2007	-	Oct	lastSun	2:00	0:30	-
+Rule	LH	2006	only	-	Apr	Sun>=1	2:00	0	-
+Rule	LH	2007	only	-	Mar	lastSun	2:00	0	-
+Rule	LH	2008	max	-	Apr	Sun>=1	2:00	0	-
+Rule	LH	2008	max	-	Oct	Sun>=1	2:00	0:30	-
 Zone Australia/Lord_Howe 10:36:20 -	LMT	1895 Feb
 			10:00	-	AEST	1981 Mar
 			10:30	LH	+1030/+1130 1985 Jul
@@ -367,15 +367,15 @@ Zone	Indian/Cocos	6:27:40	-	LMT	1900
 # practice than guessing no DST.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	Fiji	1998	1999	-	Nov	Sun>=1	2:00	1:00	S
+Rule	Fiji	1998	1999	-	Nov	Sun>=1	2:00	1:00	-
 Rule	Fiji	1999	2000	-	Feb	lastSun	3:00	0	-
-Rule	Fiji	2009	only	-	Nov	29	2:00	1:00	S
+Rule	Fiji	2009	only	-	Nov	29	2:00	1:00	-
 Rule	Fiji	2010	only	-	Mar	lastSun	3:00	0	-
-Rule	Fiji	2010	2013	-	Oct	Sun>=21	2:00	1:00	S
+Rule	Fiji	2010	2013	-	Oct	Sun>=21	2:00	1:00	-
 Rule	Fiji	2011	only	-	Mar	Sun>=1	3:00	0	-
 Rule	Fiji	2012	2013	-	Jan	Sun>=18	3:00	0	-
 Rule	Fiji	2014	only	-	Jan	Sun>=18	2:00	0	-
-Rule	Fiji	2014	max	-	Nov	Sun>=1	2:00	1:00	S
+Rule	Fiji	2014	max	-	Nov	Sun>=1	2:00	1:00	-
 Rule	Fiji	2015	max	-	Jan	Sun>=14	3:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Pacific/Fiji	11:55:44 -	LMT	1915 Oct 26 # Suva
@@ -406,11 +406,11 @@ Zone Pacific/Tarawa	 11:32:04 -	LMT	1901 # Bairiki
 			 12:00	-	+12
 Zone Pacific/Enderbury	-11:24:20 -	LMT	1901
 			-12:00	-	-12	1979 Oct
-			-11:00	-	-11	1995
+			-11:00	-	-11	1994 Dec 31
 			 13:00	-	+13
 Zone Pacific/Kiritimati	-10:29:20 -	LMT	1901
 			-10:40	-	-1040	1979 Oct
-			-10:00	-	-10	1995
+			-10:00	-	-10	1994 Dec 31
 			 14:00	-	+14
 
 # N Mariana Is
@@ -447,9 +447,9 @@ Zone	Pacific/Nauru	11:07:40 -	LMT	1921 Jan 15 # Uaobe
 
 # New Caledonia
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule	NC	1977	1978	-	Dec	Sun>=1	0:00	1:00	S
+Rule	NC	1977	1978	-	Dec	Sun>=1	0:00	1:00	-
 Rule	NC	1978	1979	-	Feb	27	0:00	0	-
-Rule	NC	1996	only	-	Dec	 1	2:00s	1:00	S
+Rule	NC	1996	only	-	Dec	 1	2:00s	1:00	-
 # Shanks & Pottenger say the following was at 2:00; go with IATA.
 Rule	NC	1997	only	-	Mar	 2	2:00s	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -469,27 +469,28 @@ Rule	NZ	1929	1933	-	Mar	Sun>=15	2:00	0	M
 Rule	NZ	1934	1940	-	Apr	lastSun	2:00	0	M
 Rule	NZ	1934	1940	-	Sep	lastSun	2:00	0:30	S
 Rule	NZ	1946	only	-	Jan	 1	0:00	0	S
-# Since 1957 Chatham has been 45 minutes ahead of NZ, but there's no
-# convenient single notation for the date and time of this transition
-# so we must duplicate the Rule lines.
+# Since 1957 Chatham has been 45 minutes ahead of NZ, but until 2018a
+# there was no documented single notation for the date and time of this
+# transition.  Duplicate the Rule lines for now, to give the 2018a change

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Wed Mar 28 07:49:37 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D0DD4F6694A;
 Wed, 28 Mar 2018 07:49:37 +0000 (UTC)
 (envelope-from rgrimes@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 7A88C7AF29;
 Wed, 28 Mar 2018 07:49:37 +0000 (UTC)
 (envelope-from rgrimes@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6CAE827E47;
 Wed, 28 Mar 2018 07:49:37 +0000 (UTC)
 (envelope-from rgrimes@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2S7nbJU094417;
 Wed, 28 Mar 2018 07:49:37 GMT (envelope-from rgrimes@FreeBSD.org)
Received: (from rgrimes@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2S7nbKn094416;
 Wed, 28 Mar 2018 07:49:37 GMT (envelope-from rgrimes@FreeBSD.org)
Message-Id: <201803280749.w2S7nbKn094416@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: rgrimes set sender to
 rgrimes@FreeBSD.org using -f
From: "Rodney W. Grimes" 
Date: Wed, 28 Mar 2018 07:49:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331664 - head/share/misc
X-SVN-Group: head
X-SVN-Commit-Author: rgrimes
X-SVN-Commit-Paths: head/share/misc
X-SVN-Commit-Revision: 331664
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 07:49:38 -0000

Author: rgrimes
Date: Wed Mar 28 07:49:36 2018
New Revision: 331664
URL: https://svnweb.freebsd.org/changeset/base/331664

Log:
  Add Bruce Evans
  Update my mentors to bde and phk
  
  Approved by:	core, bde (mentor), phk (mentor)
  MFC after:	3 days

Modified:
  head/share/misc/committers-src.dot

Modified: head/share/misc/committers-src.dot
==============================================================================
--- head/share/misc/committers-src.dot	Wed Mar 28 07:45:57 2018	(r331663)
+++ head/share/misc/committers-src.dot	Wed Mar 28 07:49:36 2018	(r331664)
@@ -122,6 +122,7 @@ avg [label="Andriy Gapon\navg@FreeBSD.org\n2009/02/18"
 avos [label="Andriy Voskoboinyk\navos@FreeBSD.org\n2015/09/24"]
 badger [label="Eric Badger\nbadger@FreeBSD.org\n2016/07/01"]
 bapt [label="Baptiste Daroussin\nbapt@FreeBSD.org\n2011/12/23"]
+bde [label="Bruce Evans\nbde@FreeBSD.org\n1994/08/20"]
 bdrewery [label="Bryan Drewery\nbdrewery@FreeBSD.org\n2013/12/14"]
 benl [label="Ben Laurie\nbenl@FreeBSD.org\n2011/05/18"]
 benno [label="Benno Rice\nbenno@FreeBSD.org\n2000/11/02"]
@@ -402,6 +403,8 @@ bapt -> araujo
 bapt -> bdrewery
 bapt -> wulf
 
+bde -> rgrimes
+
 benno -> grehan
 
 billf -> dougb
@@ -720,6 +723,7 @@ philip -> kp
 
 phk -> jkoshy
 phk -> mux
+phk -> rgrimes
 
 pjd -> def
 pjd -> kib

From owner-svn-src-all@freebsd.org  Wed Mar 28 07:59:17 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F5E5F67805;
 Wed, 28 Mar 2018 07:59:17 +0000 (UTC)
 (envelope-from eadler@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id D79F57B5FC;
 Wed, 28 Mar 2018 07:59:16 +0000 (UTC)
 (envelope-from eadler@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CDE3E27FD5;
 Wed, 28 Mar 2018 07:59:16 +0000 (UTC)
 (envelope-from eadler@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2S7xGxc099493;
 Wed, 28 Mar 2018 07:59:16 GMT (envelope-from eadler@FreeBSD.org)
Received: (from eadler@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2S7xGXp099488;
 Wed, 28 Mar 2018 07:59:16 GMT (envelope-from eadler@FreeBSD.org)
Message-Id: <201803280759.w2S7xGXp099488@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: eadler set sender to
 eadler@FreeBSD.org using -f
From: Eitan Adler 
Date: Wed, 28 Mar 2018 07:59:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331665 - in head: share/man/man4 sys/conf
 sys/contrib/dev/iwm sys/dev/iwm sys/modules/iwmfw sys/modules/iwmfw/iwm3168fw
X-SVN-Group: head
X-SVN-Commit-Author: eadler
X-SVN-Commit-Paths: in head: share/man/man4 sys/conf sys/contrib/dev/iwm
 sys/dev/iwm sys/modules/iwmfw sys/modules/iwmfw/iwm3168fw
X-SVN-Commit-Revision: 331665
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 07:59:17 -0000

Author: eadler
Date: Wed Mar 28 07:59:16 2018
New Revision: 331665
URL: https://svnweb.freebsd.org/changeset/base/331665

Log:
  [iwm] Add support for iwm 3168 cards
  
  ```
  iwm0@pci0:5:0:0:        class=0x028000 card=0x21108086 chip=0x24fb8086
  rev=0x10 hdr=0x00
  vendor     = 'Intel Corporation'
  device     = 'Dual Band Wireless-AC 3168NGW [Stone Peak]'
  class      = network
  [94829] iwm0:  mem
  0xef700000-0xef701fff at device 0.0 on pci5
  [94829] iwm0: hw rev 0x220, fw ver 22.361476.0, address
  28:c6:3f:15:43:c5
  ```
  
  MFC After:	2 weeks
  Reviewed by:	ivadasz (over IRC)
  PR:		224886
  Differential Revision:	https://reviews.freebsd.org/D14865

Added:
  head/sys/contrib/dev/iwm/iwm-3168-22.fw.uu
  head/sys/modules/iwmfw/iwm3168fw/
  head/sys/modules/iwmfw/iwm3168fw/Makefile   (contents, props changed)
Modified:
  head/share/man/man4/iwm.4
  head/share/man/man4/iwmfw.4
  head/sys/conf/files
  head/sys/dev/iwm/if_iwm.c
  head/sys/dev/iwm/if_iwm_7000.c
  head/sys/dev/iwm/if_iwm_config.h
  head/sys/modules/iwmfw/Makefile

Modified: head/share/man/man4/iwm.4
==============================================================================
--- head/share/man/man4/iwm.4	Wed Mar 28 07:49:36 2018	(r331664)
+++ head/share/man/man4/iwm.4	Wed Mar 28 07:59:16 2018	(r331665)
@@ -46,6 +46,7 @@ You also need to select a firmware for your device.
 Choose one from:
 .Bd -ragged -offset indent
 .Cd "device iwm3160fw"
+.Cd "device iwm3168fw"
 .Cd "device iwm7260fw"
 .Cd "device iwm7265fw"
 .Cd "device iwm8000Cfw"
@@ -65,6 +66,7 @@ module at boot time, place the following lines in
 .Bd -literal -offset indent
 if_iwm_load="YES"
 iwm3160fw_load="YES"
+iwm3168fw_load="YES"
 iwm7260fw_load="YES"
 iwm7265fw_load="YES"
 iwm8000Cfw_load="YES"
@@ -78,6 +80,7 @@ driver provides support for:
 .Bl -tag -width Ds -offset indent -compact
 .It Intel Dual Band Wireless AC 3160
 .It Intel Dual Band Wireless AC 3165
+.It Intel Dual Band Wireless AC 3168
 .It Intel Dual Band Wireless AC 7260
 .It Intel Dual Band Wireless AC 7265
 .It Intel Dual Band Wireless AC 8260

Modified: head/share/man/man4/iwmfw.4
==============================================================================
--- head/share/man/man4/iwmfw.4	Wed Mar 28 07:49:36 2018	(r331664)
+++ head/share/man/man4/iwmfw.4	Wed Mar 28 07:59:16 2018	(r331665)
@@ -43,6 +43,7 @@ If you want to pick only the firmware image for your n
 of the following:
 .Bd -ragged -offset indent
 .Cd "device iwm3160fw"
+.Cd "device iwm3168fw"
 .Cd "device iwm7260fw"
 .Cd "device iwm7265fw"
 .Cd "device iwm8000Cfw"
@@ -54,6 +55,7 @@ module at boot time, place the following line in
 .Xr loader.conf 5 :
 .Bd -literal -offset indent
 iwm3160fw_load="YES"
+iwm3168fw_load="YES"
 iwm7260fw_load="YES"
 iwm7265fw_load="YES"
 iwm7265Dfw_load="YES"
@@ -62,7 +64,7 @@ iwm8265fw_load="YES"
 .Ed
 .Sh DESCRIPTION
 This module provides access to firmware sets for the
-Intel Dual Band Wireless WiFi 3160, 3165, 7260, 7265, 8000, and 8260 series of
+Intel Dual Band Wireless WiFi 3160, 3165, 3168, 7260, 7265, 8000, and 8260 series of
 IEEE 802.11n/11ac adapters.
 It may be
 statically linked into the kernel, or loaded as a module.

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files	Wed Mar 28 07:49:36 2018	(r331664)
+++ head/sys/conf/files	Wed Mar 28 07:59:16 2018	(r331665)
@@ -1988,6 +1988,20 @@ iwm3160.fw			optional iwm3160fw | iwmfw		\
 	compile-with	"${NORMAL_FW}"					\
 	no-obj no-implicit-rule						\
 	clean		"iwm3160.fw"
+iwm3168fw.c			optional iwm3168fw | iwmfw		\
+	compile-with	"${AWK} -f $S/tools/fw_stub.awk iwm3168.fw:iwm3168fw -miwm3168fw -c${.TARGET}" \
+	no-implicit-rule before-depend local				\
+	clean		"iwm3168fw.c"
+iwm3168fw.fwo			optional iwm3168fw | iwmfw		\
+	dependency	"iwm3168.fw"					\
+	compile-with	"${NORMAL_FWO}"					\
+	no-implicit-rule						\
+	clean		"iwm3168fw.fwo"
+iwm3168.fw			optional iwm3168fw | iwmfw		\
+	dependency	"$S/contrib/dev/iwm/iwm-3168-22.fw.uu"		\
+	compile-with	"${NORMAL_FW}"					\
+	no-obj no-implicit-rule						\
+	clean		"iwm3168.fw"
 iwm7260fw.c			optional iwm7260fw | iwmfw		\
 	compile-with	"${AWK} -f $S/tools/fw_stub.awk iwm7260.fw:iwm7260fw -miwm7260fw -c${.TARGET}" \
 	no-implicit-rule before-depend local				\

Added: head/sys/contrib/dev/iwm/iwm-3168-22.fw.uu
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/contrib/dev/iwm/iwm-3168-22.fw.uu	Wed Mar 28 07:59:16 2018	(r331665)
@@ -0,0 +1,22849 @@
+begin 644 iwm-3168-22.fw
+M`````$E73`IS=')E86TZ0V]R94-Y8VQE,3E?````"`````(```"*8@$`'````!``````````
+M````````````````&P````0````!````,P````P```````````"````````3
+M````!(`!````@```````%@````2$!0```0```````+2F@`!0,(``]-R``(S-
+M@``H&H``@,^``````````````````````````````````&P@P!`/&PDBW!W`
+M$`H`&T`@`!MN"@``88``&VX\``!A``$;;CT``&$``AMN/@``81``&VX!``!A
+M7```85<``&$``!LD(``;)>0=P!&(!^$8'P`(8@``&R4!`!LD```%)0$`!20`
+M"`4Y`0`%8H@@P!$"``4D``@%.0$`!6*,(,`1!``%)``(!3D!``5BD"#`$0@`
+M!20`"`4Y`0`%8I0@P!$0``4D``@%.0$`!6*8(,`1(``%)``(!3D!``5BG"#`
+M$4``!20`"`4Y`0`%8J`@P!$```@E```()(@'X1F$!^$90`?`$@$`&W`(``!A
+M#QP=(@0`'2;H'<`0`0`;,.@=P!&"!!LD"``;)00HP!&^#P!A```;)(``&R7D
+M'<`1```;)``!&R7D'<`1```;)``"&R7D'<`1"`!?<`P``&'8'<`0__X;,M@=
+MP!'.[@TE@ID-)`\--R)L(,`0#QLW(O__#24._PTD#PTW(J__`#(<``!D`(`3)`$`$R4X',`1#W<3(N`Q,B`0`3,`0HP!$/%!4B`@`5)@]-$R($$,41`@`3)/`<
+MP!$!`!,D[!S`$0``$R1P`!,E$!S`$0``$R4``!,DX!S`$12K@($``,`6`@$3
+M8@\4%2(0`!4F```3)0$`$R0D$,`1```3)```P!<``!4D````(0``&R4``!LD
+M`0!D;@$`&R0"`&1N`@`;)`0`9&X$`!LD#``;8@\;"R(/"V,B`0`;0`(`&T$`
+M``!A```;);P*@($`&QHH``#`%@``&R4"`!M````;<0]D8R(``!TD````(>^^
+MK=[OOJW>[[ZMWN^^K=[OOJW>[[ZMW@``````````"```````````````````
+M```````````````````````````````````````````````````````!````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````!$`(`````````````D````*````"P````P````-```
+M`#@````\````0````&0```!H````;````'````!T````>````'P```"`````
+MA````(@```",````D````)4```"9````G0```*$```"9````G0```*$```"E
+M````*@```#H```!J````>@```(H```";````GP````(````$````!@````0`
+M```,````$P```!L````C````*P```"T````!``````````0````%````````
+M````_P````#_``$!`P`!!00``@(#```#_P``_@8!`/\!`0``_P$!`?\!`@+_
+M`0`$!0$!!?\!`0,'`@#_`@(``/\"`0'_`@("_P("!?\"`@,'```$`(P%`0`.
+M`+@(!0#$``@&!@!``,P&!P#8`"0'"`!H`/P'"0!``&0("@`\`)`%"P`\`,P%
+M#P`4`*0($0`8``P'$@"D`0``$P`,`,@(%``$`-0(%0`$`-@(````````````
+M````````````````````````````````````````````'@```!Z('HA:````
+M5@```%:(5H@"`0``J@```*J(JHC^`0``C`H``%2,5(RD'P``````````````
+M`/X```$`_P`"`?\!`/\!`0#^`@$#`O\!`0#_`0$!_P(`_P,"`/X$`@,"_P("
+M`/\"`@'_`P#_!0,`_@8#``/_`P,`_P,#`?\```````````````#`,```"@``
+M``0```"HJ(``````````````````(#$```4````$````J*B`````````````
+M```````````````````````````!````A'4$`(1W!`#P=@0`8'<$`"AR!``@
+M<@0`7G)BO@(HLL
+M,BS@<\YI*RW@'GOL,2C@BXN)B2G@B8D```Q@@R4``#@04@```$&``0````)'
+M`8```!1@`````!(@E`,``!40^0@=`>ET.@WIM)$(PF`0"$#@[P>^7H\'/-YN
+M!SN=+@_W^\'/Y_/!SZ?SP<^
+MG\\'/I^O![U>KP>]GL\'/I^O![U>KP>]GL\'/I_/!SZ?SP<^G\\'O]_O![_?
+M[P>_WP\(0&`P",%@,`C!8%`(0N%P",,AD0A$(I$(Q:+1",;C\0C'(Q()R&12
+M"[W8X'/%ZO![[?#PA`8#`(
+M0J(Q#>ET.@W-9K,)S69S"_W^\'OQ\0"$!@,`C!
+M8#`(P6`0"$`@\`<_G\\'O1Z/![S=;@>[G4X'.IUN![O=;@<\'J\'/9_/![\?
+M$`A`8#`(P6`P",%@$`A`(/`'O]_O!S^?[P>_WP\(P&!0"$.B\0C)9;,)S6:S
+M"40BD0A$81`(OY_/!SZ?SP<^G^\'OQ\0",&@4`C"X7`(P^%P"$*A,`A!(/`'
+MOY_/!SZ?SP<^G^\'/V!0"$0BD0B[W6X'N]U.![B;K0:TF4P&L5@,!C0<#PA$
+M(K$(Q6+1"$:C\0C'X_$(Q^/1"$9CL0A%(G$(PZ%0",%@,`A`(!`(0"`0",!@
+M,`A!H7`(PR&1",5BT0A&X_$(Q^/Q",>CT0A&8[$(Q2*1"$`>C@8P6"P&,9EL
+M!K2:[08XW6X'N]UN![5:K08UVFP&,EDL!C$:C@?`HM$(QN,1"C@:Q6$P&LMF,!K5:K08!````(B(B(!\>'!L;
+M&R(`(B(B(!\='!H:&B(`(B(B(!\='!H:&B(`(B(B(B`?'1P7%R(`(B(B(!\=
+M'!L7%"(`(B(B(!\=&QD6$R(`(B(B(!\>'!L8&"(`(B(B(!\='!H8%"(`(B(B
+M(!X<&Q@5$B(`(B(B(!\='!H7%R(`(B(@'QX='!D7%"(`(B(@'QX<&Q<5$B(`
+M````````````````^($!``4```($````J*B```````#_````-`R@`$`,H`!4
+M#*``4`R@`$P,H``<'*``0""@`"@DH`!L$*``&"2@`'@DH`!\)*``@"2@`(0D
+MH`!0$*``2":@`&`0H`!,)J``9!"@`&@0H`!8$*``,!"@`#P0H``T$*``+`R@
+M``"!I``!@:0``X&D`(@DH`",)*``D"2@`)0DH`"8)*``G"2@`*`DH`"D)*``
+M`````````````````````'(;#0#A@0$`%Y\"`````````````````#0!`#8!
+M`#X!5S\!9D`!=T$!F$(!!_$`"F:$`6Z(`
+M&Z,`,*0`$J4`(*8`!Z<`&Z@`$JD`!ZH``*P`":T`!JX`#*\`";``!K$`#+(`
+M![,`!+0`"K4`!K@`7KX`&<@`!LD`!LH``H!!/X`$_\`!FX`"GD`#74``7\`
+M#X<`#ID`P7P!#8`!#7T!_W\!_R<`'"@`&+D!![H!$,X!`[T!"<``,P7@``@&(``R!>```,!`@$%``0`$``*``8`?`&``7,!=P&7
+M`9D!E@&8`=P!)0":`9P!````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````````````````8`````````````````````
+M````````````````````````````````````````````````````````````
+M```````````````````!`````@`````````N$2\7,!`Q*#(1,_(V(D$!2#A*
+M+E0<5AQ:.%PX8%AX.(@@0`&0```"1L`0`:`````+X$`!L```#0)P``'```
+M`````````````````````````/\```$#_P``"0$```K_``,$`@```/\``/X#
+M`0#_!`$!"04!`0H%`0`!_P$#!`(!`0+_`0$(_P$``/\!`/X&`@#_!P(""0@"
+M`@H(`@('"0(``?\"`0/_`@,$"@("`O\"```+`P,)#`,#"@P#!`4-`P,"#@,`
+M``\$`/\0!`0)$00$"A$$`@;_!`("$@0$"/\$``#_!`#^$P``````````````
+M`,0Z!``*````!````*BH@`````````````````#X`@0`"@````0```"HJ(``
+M3",$`,@C!``D``0`P",$`/@Y!`!<.@0`1#H$`'@`!`"0`00`"`$$`%@`!`",
+M`00`4``$`$0`!`!(``0`3``$`-PU!``X-@0`##8$``0V!`#_____________
+M________!````/_______________P,```#_____``````````#_____````
+M``````#_____```````````#````$`````,```#_````_P```/\```#_````
+M`P````````````````````````#_``````````````#_````````````````
+M```````````!``````'_```"_P```P$```7_```&_P``"/\```?_```)_P``
+M"O\```O_```,_P$`_P,!`0```0$""@$"!00!`0;_`0$'_P$#"@@"6`+X`4````"!.```````````````````$````
+M`0`````````!`````0```!X```````````````$!#@X````````R"`(/`P`!
+M``````````$!#@X````````C!`(*`````````````/0!````````````````
+M````````/&^`````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`/[*K:L`````````````````````````````````````````````````````
+M`````!``````D`$```"@`!`G``#H`P``Z`,``&PJ@`!L*H``?+6``%RU@`!D
+MM8``/+6``'RU@`!+6``'RU@``PM8``@+6``$BU
+M@```````__\!`@4#```````!``,+!0`````4BP0`%(L$`!2+!`"0AP0`%(L$
+M`!2+!`"4B`0`%(L$`-#$```4R0``%(L$`!2+!``4BP0`%(L$`!2+!``4BP0`
+M%(L$`!2+!``4BP0`%(L$`!2+!``4BP0`%(L$`"3F``#TX@``@.8``!2+!``4
+MBP0`%(L$`!C;```4\0``4-X``"C?``#\W0``E-(``-C1``#4UP``,.(``&"+
+M!`!$Z```;'P$`-A^!``4BP0`$(,$`$2!!``XB00`#,\``!2+!``4BP0`%(L$
+M`!2+!``4BP0`%(L$`!2+!``4BP0`%(L$`!2+!``4BP0`%(L$`!2+!``4BP0`
+M%(L$`!2+!``4BP0`#,L```#+``#TR@``%(L$`!2+!``4BP0`%(L$`!2+!`"<
+MS@``%(L$`!2+!``4BP0`%(L$`!2+!`!,[```%(L$`!2+!``8B@0`I(D$`+#,
+M```4BP0`%(L$`.2)!``4BP0`%(L$`!2+!``4BP0`%(L$`"#'```8Q@``O,@`
+M`(S(```4BP0`*-4``!2+!``4BP0`%(L$`!2+!``4BP0`%(L$`!2+!``4BP0`
+MB.$``!2+!`#0U0``%(L$`,R)!``4BP0`8,L``!2+!``4BP0`%(L$`!2+!``4
+MBP0`%(L$`)3)```4BP0`%(L$`!2+!``4BP0`%(L$`!2+!`""AT*X`FE"6T)-PD$"=,(I`AW"$L((@CZ!],'K@>*!P``````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````&0T```"````!````*BH@`````````````````#`
+M-```!0````0```"HJ(``````````````!0``<@$``*@"```$"00)`08)#!$!
+M```````````````````'````'@````,```#_____`````/[*K:L`````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````_P``````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````!,"*``2`B@`&P(@```````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````````````````````````````/L5C``SD0``````
+M````$0``````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````````````````!X>'AX>'AX>'AX>'AX`&1P>'AX>
+M'AX>'AX>'@`>'AX>'AX>'AX`'AX>'AX>'AX>``$&`@0"`@``!`0&!`@#````
+M`!D>'AX>'AX8&1X>'AX>'A@8'AX>'AX>'AX`%1X>&!4>'A@8'AX>`P@`````
+M!@```````````/\%````````&!@8&!@=`08&!@8`!@``'@`>`!X`&``&!@8!
+M`0$!_08&````````!@$!```>```````````````!`````````````````!48
+M&!@8&!@8&!@5&!@```````````````````#^_O[^_@`4%A@8%!(0&!@`````
+M```````````````````````````````5&!@8&!@8%!48&!@8&!@4$A@8&!@8
+M&!@8```````!`````0```!$8&!01&!@4%!@8&```````^Q04%!04&!@8&!@8
+M&!@8&!@8&!@`&!@8&!@8&!@8&!@8&``8&!@8&!@8&!@`&!@8&!@8&!@8`!@8
+M&!@8&!@8&!@8&!@8&!@8&!@8&!@8&!@`&!@8&!@8&!@8&!@8&!@8&!@8`0$!
+M`0$!````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````````````````````````%94```X`````````%ID
+M```^`````````&JD```^`````````%JD```^`````````%JD```^````````
+M`%ID```^`````````%I4```^`````````%JD```^`````````%ID```^````
+M``````H@```^`````````%ID```^`````````%ID```^`````````%I4```^
+M`````````%ID```#`````````%JD```#``````````H````Q````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````,#```````````````0`````````!````/P``````````````````
+M````````````!0`%````````````````!`@``0``!00!``$$``0%``````$`
+M`0``!P$``````````P@```````0%```+```!```!````````!`0`````!```
+M````!`````$`````````````#````0`$``X```````````````0`````````
+M```````````$```````````$```````````````!````!0````````````0`
+M```````````````````````!```!````!``!!```````````"00`````````
+M``4`````!`0````````````````````````!``P&```````````````````,
+M```!````````````"@`````,``````4````````$``````````````0$!```
+M```,```,!```````!```````````!`4`!0$%``````````4``0``!```!`$`
+M```````````%````````````````!``````````````````!`````0`!!0``
+M#00`````````!``````!``4`````````````````````````````````````
+M````````````````!```!``.``4````%``````0!``0`!```````````````
+M```````````$```%```````/````!``!```"```!!```````````````````
+M`````@```````0```````0``````````!0``````````````````````````
+M```````````````````````````````````````````````````,#0X/````
+M``````````````````````````````````0`````````````````````````
+M```,```````I*?____\`````````````````````````````````````````
+M```````````````````````>`0``+`L`````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````````````````````````````````0(#!`4&!P@)
+M"@L,#0X/$"HJ*RPM+B]*2TQ-3D]0:VQM;G!QBXR-CH^1K*VNK["QS,S,S<[/
+MT-'2T]/3T]/3T]/3T]/3T]/3T],`00```````````0(#!`4&!P@)"@L,#0X/
+M$"HJ*RPM+B]*2TQ-3D]0:FMM;F]PBHN,C8Z/JJNLK:ZORLO,S<[/T-#0T-#0
+MT-#0T-#0T-#0T-#0T-``/@,$!08&!P@)"@L,#2HK+"TN+TI+3$U.3U!0:FML
+M;6YOBHN,C8Z/D*JKK*VNK\K+S,W.S]#1TM/4U=;7V-G:V]S=W=W=W=W=W=W=
+MW=W=W=W=W=T`0``!`@,#!`4&!P@)"@L,#0XJ*RPM+B]*2TQ-3D]0:FIK;&YO
+M<(J+C(V.CY"JJZRMKJ_*R\S-SL_0T=+3U-76U]C9VMK:VMK:VMK:VMK:VMK:
+MVMH`00,$!04&!P@)"@L,#0XJ*RPM+B]*2TQ-3D]0:FIK;6YO<(J+C(V.CY"J
+MJZRMKLK+S,W.S]#1TM/4U=;7U]?7U]?7U]?7U]?7U]?7U]?7U]?7U]<`.@``
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````````````````````````````````````#_
+M?_]__W__?_]_`````````````````````/]__W__?_]__W\`````````````
+M``````````"JJ@``_P``````````````````````````````````````````
+M```````````````````````````````````````!`````0````$````!````
+M`0````$````!`````0````$````!`````0````$````!`````0````$`````
+M````````````````````````````````````````````?W]_?W]_?W]_?W]_
+M?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_
+M?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_
+M?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_
+M?W]_?W]_?W]_?W]_?P```````````````+X````!``````````$```!?````
+M`@`````````"````+P````,``````````P```!@`````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````H```````````````````#_`/\``````#0`````````````
+M``````#_`/\``````'````````````````````#_`/\``````)D`````````
+M``````````#_`/\```````````````````````$``````````0`````````!
+M`````````````````````0`````````!``````````$`````````````````
+M`````````````(P*```````````````````````````````````,`P@`````
+M``````#_``````````````````````````````#_````````````````````
+M``````````#_``````````````````````````````#_````````````````
+M``````````````#_``````````````````````````````#_````````````
+M``````````````````#_````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M```````````````````````````````````````````````````!````````
+M`.S[@`````````````````````````````````#44P``"@````0```"HJ(``
+M```````````````````````````````````````````!#!ZV#C("$1ZY#C(#
+M%AZ[#C($&QZ^#C(%(![`#C(&)1[##C('*A[%#C((+Q[(#C()-![*#C(*.1[-
+M#C(+/A[/#C(,0Q[2#C(-2![4#C(.31[7#C(B4$`9(``D8$`>(#8F<$`C(#(H
+M`$$H(#8J$$$M(#4L($$R(#8N,$$W(#$P0$$\(#8R4$%!(``T8$%&(#8V<$%+
+M(#$X`$)0(#8Z$$)5(#4\($):(#4^,$)?(#%`0$)D(#5D8$2^(C1F<$3#(C!H
+M`$7((C1J$$7-(C1L($72(C1N,$77(C!P0$7<(C1R4$7A(@!T8$7F(C1V<$7K
+M(C!X`$;P(C1Z$$;U(C1\($;Z(C1^,$;_(C"`0$8$(C2"4$8)(@"$8$8.(C2&
+M<$83(C"(`$<8(C.*$$<=(C.,($$<^(B^9"$A#)#.;&$A()#*=*$A-)#.?.$A2)"^A2$A7)#*E:$AA)#(`
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M```````````/``\`#P`/``\`#P`/``\`````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````````````````0`!``````#``)``T```````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````````````````````````+0T!``*````!````*BH
+M@```````````````````````````````````````````````````````````
+M`/____^L_8````````````````````````````!<5```"@````0```"HJ(``
+M0$(/`$!"#P!`0@\`0$(/`$!"#P!`0@\`0$(/`$!"#P!`0@\`0$(/`.`'``!`
+M`0``X`<``$`!```@)P``X`<``.`'``!``0``X`<``$`!```"``````````(`
+M````````````````````````````````````````````````````````/).`
+M`'0<@0`8`````````````````````````/[*K:L`````````````````````
+M```````````````````````````````````````````````````````````!
+M````-@$``*H````$`0``@@````````!PV`$`E-@!`*38`0!\V`$`;-@!`*C8
+M`0!4V`$```````#@````@`````````````````````````````"`]```@$L`
+M``!```````````````````````````````#D````7````$``````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+MK.8$`+3A!`"
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3053DF6B2E6;
 Wed, 28 Mar 2018 08:43:14 +0000 (UTC)
 (envelope-from antoine.brodin.freebsd@gmail.com)
Received: from mail-io0-x236.google.com (mail-io0-x236.google.com
 [IPv6:2607:f8b0:4001:c06::236])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B1BE57D4D9;
 Wed, 28 Mar 2018 08:43:13 +0000 (UTC)
 (envelope-from antoine.brodin.freebsd@gmail.com)
Received: by mail-io0-x236.google.com with SMTP id y128so2576679iod.4;
 Wed, 28 Mar 2018 01:43:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=kLOJALBGdwAr9jxz+wqk2o4Y/xeGRPBsiAyYmxQiryI=;
 b=ifZsFmR+k3pObDbYLKa//dQD2j3fEASgbdn5IBqbk+zTkbwp7+vtKnrtBoE/zZX/Rn
 thzTDrCWNo5xCxZjSwN6nsD2bZc62h2wrzXvr+1JDiC1v9Ibtcuh8RW89kX2cgnGNsYl
 ZkyEbuplVo3zRNP2+VeDqBeQWgCWJrTFPgNOOA7gFMz/aQyRG9BFdKUk5OtQoFwOrRwD
 oe4UujXj+2/S5ciLg7Dlw9YmS0x1T+vJzKoRSWTICJOXWg9XAej+uP6nI+sE4kPap+TH
 iHxRlJof5MqQ40MtO87xY5ye5cm3bXzKRUMVdSywac4oZE5aTE5l1gs1vIrHegnsaveq
 l80A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc;
 bh=kLOJALBGdwAr9jxz+wqk2o4Y/xeGRPBsiAyYmxQiryI=;
 b=RYS3BwA11TS4NUamXX3Otc29y9RvyG4m4lzeS+n7kED0SvW7DwAqGMLW3n/ciOdmeN
 Y80je/8qKr6SqdVEzl2YUWXS43y0bGpknZ2y5abj7MAiGuEtJaAioSpkoiLOLXjenMrK
 GyUzze9NQEHQj3lxAZ0CsCwPGZBSVv2VdNU0zWuDY4MCp7ZuiMbFa1vKwWbp3Y49/g6d
 +jH3e32J0+3LJOr8MTtq0/RsYtsD2W+2xD3ZymdxmpGpqFQh/aHcoXpXK2YrjSousld7
 OD4SUOzE3sYAqCcTefnG7L35UcLUgSmbDK9cg9dVpmhRF21pOsY95bH38FdPoTL0xeAu
 0Obw==
X-Gm-Message-State: AElRT7EmtaUG29vfU2vsTW8gcNscnbeIA0BG1vpH8zdPPP5/79OiH+Tf
 USyiybjpt2eV03jsbhdjSAO2ThUfWT1RNCLMX98=
X-Google-Smtp-Source: AG47ELsJ7oe3CYYC2PqAbxDzK1Pmd7WDJYk9sykgzxfHqSJ1K1v8eX3LRaeVoigL2GClJT+MzOItQSkR37Bm1RbPb4g=
X-Received: by 10.107.150.19 with SMTP id y19mr36402847iod.272.1522226593069; 
 Wed, 28 Mar 2018 01:43:13 -0700 (PDT)
MIME-Version: 1.0
Sender: antoine.brodin.freebsd@gmail.com
Received: by 10.107.184.135 with HTTP; Wed, 28 Mar 2018 01:43:12 -0700 (PDT)
In-Reply-To: <201803261517.w2QFHV8J057346@repo.freebsd.org>
References: <201803261517.w2QFHV8J057346@repo.freebsd.org>
From: Antoine Brodin 
Date: Wed, 28 Mar 2018 08:43:12 +0000
X-Google-Sender-Auth: d7efb2ScYH9wdUV-dUan4Rag2wE
Message-ID: 
Subject: Re: svn commit: r331551 -
 stable/11/cddl/contrib/opensolaris/lib/libdtrace/common
To: Mark Johnston 
Cc: src-committers , svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org, 
 re 
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 08:43:14 -0000

On Mon, Mar 26, 2018 at 3:17 PM, Mark Johnston  wrote:
> Author: markj
> Date: Mon Mar 26 15:17:31 2018
> New Revision: 331551
> URL: https://svnweb.freebsd.org/changeset/base/331551
>
> Log:
>   MFC r331222:
>   Given hidden visibility to symbols referenced by the DOF section.

Hi,

This commit broke lang/perl* and lang/tcl* on stable/11.
Please revert.

Cheers,

Antoine (with hat: portmgr)

From owner-svn-src-all@freebsd.org  Wed Mar 28 08:55:32 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7134F6C0DE;
 Wed, 28 Mar 2018 08:55:32 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6A4267DB87;
 Wed, 28 Mar 2018 08:55:32 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 60EAC9D1;
 Wed, 28 Mar 2018 08:55:32 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2S8tWOr029244;
 Wed, 28 Mar 2018 08:55:32 GMT (envelope-from avg@FreeBSD.org)
Received: (from avg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2S8tVxE029241;
 Wed, 28 Mar 2018 08:55:31 GMT (envelope-from avg@FreeBSD.org)
Message-Id: <201803280855.w2S8tVxE029241@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org
 using -f
From: Andriy Gapon 
Date: Wed, 28 Mar 2018 08:55:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331666 - in head/sys:
 cddl/contrib/opensolaris/uts/common/fs kern sys
X-SVN-Group: head
X-SVN-Commit-Author: avg
X-SVN-Commit-Paths: in head/sys: cddl/contrib/opensolaris/uts/common/fs kern
 sys
X-SVN-Commit-Revision: 331666
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 08:55:33 -0000

Author: avg
Date: Wed Mar 28 08:55:31 2018
New Revision: 331666
URL: https://svnweb.freebsd.org/changeset/base/331666

Log:
  ZFS vn_rele_async: catch up with the use of refcount(9) for the vnode use count
  
  It's not sufficient nor required to use the vnode interlock when
  checking if we are going to drop the last use count as the code in
  vputx() uses refcount (atomic) operations for both checking and
  decrementing the use code.  Apply the same method to vn_rele_async().
  While here, remove vn_rele_inactive(), a wrapper around vrele() that
  didn't add any value.
  
  Also, the change required making vfs_refcount_release_if_not_last()
  public.  I've made vfs_refcount_acquire_if_not_zero() public as well.
  They are in sys/refcount.h now.  While making the move I've dropped the
  vfs_ prefix.
  
  Reviewed by:	mjg
  MFC after:	2 weeks
  Sponsored by:	Panzura
  Differential Revision: https://reviews.freebsd.org/D14869

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c
  head/sys/kern/vfs_subr.c
  head/sys/sys/refcount.h

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c	Wed Mar 28 07:59:16 2018	(r331665)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c	Wed Mar 28 08:55:31 2018	(r331666)
@@ -72,12 +72,6 @@ xva_getxoptattr(xvattr_t *xvap)
 	return (xoap);
 }
 
-static void
-vn_rele_inactive(vnode_t *vp)
-{
-	vrele(vp);
-}
-
 /*
  * Like vn_rele() except if we are going to call VOP_INACTIVE() then do it
  * asynchronously using a taskq. This can avoid deadlocks caused by re-entering
@@ -92,13 +86,10 @@ void
 vn_rele_async(vnode_t *vp, taskq_t *taskq)
 {
 	VERIFY(vp->v_count > 0);
-	VI_LOCK(vp);
-	if (vp->v_count == 1 && !(vp->v_iflag & VI_DOINGINACT)) {
-		VI_UNLOCK(vp);
-		VERIFY(taskq_dispatch((taskq_t *)taskq,
-		    (task_func_t *)vn_rele_inactive, vp, TQ_SLEEP) != 0);
+	if (refcount_release_if_not_last(&vp->v_usecount)) {
+		vdrop(vp);
 		return;
 	}
-	refcount_release(&vp->v_usecount);
-	vdropl(vp);
+	VERIFY(taskq_dispatch((taskq_t *)taskq,
+	    (task_func_t *)vrele, vp, TQ_SLEEP) != 0);
 }

Modified: head/sys/kern/vfs_subr.c
==============================================================================
--- head/sys/kern/vfs_subr.c	Wed Mar 28 07:59:16 2018	(r331665)
+++ head/sys/kern/vfs_subr.c	Wed Mar 28 08:55:31 2018	(r331666)
@@ -2455,37 +2455,6 @@ reassignbuf(struct buf *bp)
 	BO_UNLOCK(bo);
 }
 
-/*
- * A temporary hack until refcount_* APIs are sorted out.
- */
-static __inline int
-vfs_refcount_acquire_if_not_zero(volatile u_int *count)
-{
-	u_int old;
-
-	old = *count;
-	for (;;) {
-		if (old == 0)
-			return (0);
-		if (atomic_fcmpset_int(count, &old, old + 1))
-			return (1);
-	}
-}
-
-static __inline int
-vfs_refcount_release_if_not_last(volatile u_int *count)
-{
-	u_int old;
-
-	old = *count;
-	for (;;) {
-		if (old == 1)
-			return (0);
-		if (atomic_fcmpset_int(count, &old, old - 1))
-			return (1);
-	}
-}
-
 static void
 v_init_counters(struct vnode *vp)
 {
@@ -2524,7 +2493,7 @@ v_incr_usecount(struct vnode *vp)
 	CTR2(KTR_VFS, "%s: vp %p", __func__, vp);
 
 	if (vp->v_type != VCHR &&
-	    vfs_refcount_acquire_if_not_zero(&vp->v_usecount)) {
+	    refcount_acquire_if_not_zero(&vp->v_usecount)) {
 		VNASSERT((vp->v_iflag & VI_OWEINACT) == 0, vp,
 		    ("vnode with usecount and VI_OWEINACT set"));
 	} else {
@@ -2616,7 +2585,7 @@ vget(struct vnode *vp, int flags, struct thread *td)
 	 * Upgrade our holdcnt to a usecount.
 	 */
 	if (vp->v_type == VCHR ||
-	    !vfs_refcount_acquire_if_not_zero(&vp->v_usecount)) {
+	    !refcount_acquire_if_not_zero(&vp->v_usecount)) {
 		VI_LOCK(vp);
 		if ((vp->v_iflag & VI_OWEINACT) == 0) {
 			oweinact = 0;
@@ -2720,7 +2689,7 @@ vputx(struct vnode *vp, int func)
 	CTR2(KTR_VFS, "%s: vp %p", __func__, vp);
 
 	if (vp->v_type != VCHR &&
-	    vfs_refcount_release_if_not_last(&vp->v_usecount)) {
+	    refcount_release_if_not_last(&vp->v_usecount)) {
 		if (func == VPUTX_VPUT)
 			VOP_UNLOCK(vp, 0);
 		vdrop(vp);
@@ -2836,7 +2805,7 @@ _vhold(struct vnode *vp, bool locked)
 		ASSERT_VI_UNLOCKED(vp, __func__);
 	CTR2(KTR_VFS, "%s: vp %p", __func__, vp);
 	if (!locked) {
-		if (vfs_refcount_acquire_if_not_zero(&vp->v_holdcnt)) {
+		if (refcount_acquire_if_not_zero(&vp->v_holdcnt)) {
 			VNASSERT((vp->v_iflag & VI_FREE) == 0, vp,
 			    ("_vhold: vnode with holdcnt is free"));
 			return;
@@ -2907,7 +2876,7 @@ _vdrop(struct vnode *vp, bool locked)
 	if ((int)vp->v_holdcnt <= 0)
 		panic("vdrop: holdcnt %d", vp->v_holdcnt);
 	if (!locked) {
-		if (vfs_refcount_release_if_not_last(&vp->v_holdcnt))
+		if (refcount_release_if_not_last(&vp->v_holdcnt))
 			return;
 		VI_LOCK(vp);
 	}
@@ -5438,12 +5407,12 @@ mnt_vnode_next_active_relock(struct vnode *mvp, struct
 	 * acquired with vhold(), but that might try to acquire the vnode
 	 * interlock, which would be a LOR with the mount vnode list lock.
 	 */
-	held = vfs_refcount_acquire_if_not_zero(&vp->v_holdcnt);
+	held = refcount_acquire_if_not_zero(&vp->v_holdcnt);
 	mtx_unlock(&mp->mnt_listmtx);
 	if (!held)
 		goto abort;
 	VI_LOCK(vp);
-	if (!vfs_refcount_release_if_not_last(&vp->v_holdcnt)) {
+	if (!refcount_release_if_not_last(&vp->v_holdcnt)) {
 		vdropl(vp);
 		goto abort;
 	}

Modified: head/sys/sys/refcount.h
==============================================================================
--- head/sys/sys/refcount.h	Wed Mar 28 07:59:16 2018	(r331665)
+++ head/sys/sys/refcount.h	Wed Mar 28 08:55:31 2018	(r331666)
@@ -76,4 +76,35 @@ refcount_release(volatile u_int *count)
 	return (1);
 }
 
+/*
+ * A temporary hack until refcount_* APIs are sorted out.
+ */
+static __inline int
+refcount_acquire_if_not_zero(volatile u_int *count)
+{
+	u_int old;
+
+	old = *count;
+	for (;;) {
+		if (old == 0)
+			return (0);
+		if (atomic_fcmpset_int(count, &old, old + 1))
+			return (1);
+	}
+}
+
+static __inline int
+refcount_release_if_not_last(volatile u_int *count)
+{
+	u_int old;
+
+	old = *count;
+	for (;;) {
+		if (old == 1)
+			return (0);
+		if (atomic_fcmpset_int(count, &old, old - 1))
+			return (1);
+	}
+}
+
 #endif	/* ! __SYS_REFCOUNT_H__ */

From owner-svn-src-all@freebsd.org  Wed Mar 28 10:08:18 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE351F71466;
 Wed, 28 Mar 2018 10:08:18 +0000 (UTC)
 (envelope-from kostikbel@gmail.com)
Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 5510880CC4;
 Wed, 28 Mar 2018 10:08:18 +0000 (UTC)
 (envelope-from kostikbel@gmail.com)
Received: from tom.home (kib@localhost [127.0.0.1])
 by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id w2SA87Im078974
 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Wed, 28 Mar 2018 13:08:10 +0300 (EEST)
 (envelope-from kostikbel@gmail.com)
DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua w2SA87Im078974
Received: (from kostik@localhost)
 by tom.home (8.15.2/8.15.2/Submit) id w2SA87v0078973;
 Wed, 28 Mar 2018 13:08:07 +0300 (EEST)
 (envelope-from kostikbel@gmail.com)
X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com
 using -f
Date: Wed, 28 Mar 2018 13:08:07 +0300
From: Konstantin Belousov 
To: Andriy Gapon , jhb@freebsd.org
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: Re: svn commit: r331666 - in head/sys:
 cddl/contrib/opensolaris/uts/common/fs kern sys
Message-ID: <20180328100807.GC76926@kib.kiev.ua>
References: <201803280855.w2S8tVxE029241@repo.freebsd.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <201803280855.w2S8tVxE029241@repo.freebsd.org>
User-Agent: Mutt/1.9.4 (2018-02-28)
X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00,
 DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no
 autolearn_force=no version=3.4.1
X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 10:08:18 -0000

On Wed, Mar 28, 2018 at 08:55:31AM +0000, Andriy Gapon wrote:
> +static __inline int
> +refcount_acquire_if_not_zero(volatile u_int *count)
What about refcount_acquire_nz()

> +static __inline int
> +refcount_release_if_not_last(volatile u_int *count)
refcount_release_nz()

From owner-svn-src-all@freebsd.org  Wed Mar 28 12:44:29 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8FA20F59084;
 Wed, 28 Mar 2018 12:44:29 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 407FB87763;
 Wed, 28 Mar 2018 12:44:29 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1CFB22EBF;
 Wed, 28 Mar 2018 12:44:29 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SCiTqk045268;
 Wed, 28 Mar 2018 12:44:29 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SCiTEL045266;
 Wed, 28 Mar 2018 12:44:29 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201803281244.w2SCiTEL045266@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" 
Date: Wed, 28 Mar 2018 12:44:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331668 - head/sbin/ipfw
X-SVN-Group: head
X-SVN-Commit-Author: ae
X-SVN-Commit-Paths: head/sbin/ipfw
X-SVN-Commit-Revision: 331668
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 12:44:29 -0000

Author: ae
Date: Wed Mar 28 12:44:28 2018
New Revision: 331668
URL: https://svnweb.freebsd.org/changeset/base/331668

Log:
  Rework ipfw rules parsing and printing code.
  
  Introduce show_state structure to keep information about printed opcodes.
  Split show_static_rule() function into several smaller functions. Make
  parsing and printing opcodes into several passes. Each printed opcode
  is marked in show_state structure and will be skipped in next passes.
  Now show_static_rule() function is simple, it just prints each part
  of rule separately: action, modifiers, proto, src and dst addresses,
  options. The main goal of this change is avoiding occurrence of wrong
  result of `ifpw show` command, that can not be parsed by ipfw(8).
  Also now it is possible to make some simple static optimizations
  by reordering of opcodes in the rule.
  
  PR:		222705
  Discussed with:	melifaro
  MFC after:	2 weeks
  Sponsored by:	Yandex LLC

Modified:
  head/sbin/ipfw/ipfw2.c
  head/sbin/ipfw/ipfw2.h
  head/sbin/ipfw/main.c

Modified: head/sbin/ipfw/ipfw2.c
==============================================================================
--- head/sbin/ipfw/ipfw2.c	Wed Mar 28 08:58:32 2018	(r331667)
+++ head/sbin/ipfw/ipfw2.c	Wed Mar 28 12:44:28 2018	(r331668)
@@ -1176,7 +1176,7 @@ print_flags(struct buf_pr *bp, char const *name, ipfw_
  * Print the ip address contained in a command.
  */
 static void
-print_ip(struct buf_pr *bp, struct format_opts *fo, ipfw_insn_ip *cmd,
+print_ip(struct buf_pr *bp, const struct format_opts *fo, ipfw_insn_ip *cmd,
     char const *s)
 {
 	struct hostent *he = NULL;
@@ -1277,7 +1277,7 @@ print_ip(struct buf_pr *bp, struct format_opts *fo, ip
  * prints a MAC address/mask pair
  */
 static void
-print_mac(struct buf_pr *bp, uint8_t *addr, uint8_t *mask)
+format_mac(struct buf_pr *bp, uint8_t *addr, uint8_t *mask)
 {
 	int l = contigmask(mask, 48);
 
@@ -1296,6 +1296,15 @@ print_mac(struct buf_pr *bp, uint8_t *addr, uint8_t *m
 }
 
 static void
+print_mac(struct buf_pr *bp, ipfw_insn_mac *mac)
+{
+
+	bprintf(bp, " MAC");
+	format_mac(bp, mac->addr, mac->mask);
+	format_mac(bp, mac->addr + 6, mac->mask + 6);
+}
+
+static void
 fill_icmptypes(ipfw_insn_u32 *cmd, char *av)
 {
 	uint8_t type;
@@ -1358,817 +1367,843 @@ print_dscp(struct buf_pr *bp, ipfw_insn_u32 *cmd)
 	}
 }
 
-/*
- * show_ipfw() prints the body of an ipfw rule.
- * Because the standard rule has at least proto src_ip dst_ip, we use
- * a helper function to produce these entries if not provided explicitly.
- * The first argument is the list of fields we have, the second is
- * the list of fields we want to be printed.
- *
- * Special cases if we have provided a MAC header:
- *   + if the rule does not contain IP addresses/ports, do not print them;
- *   + if the rule does not contain an IP proto, print "all" instead of "ip";
- *
- * Once we have 'have_options', IP header fields are printed as options.
- */
+#define	insntod(cmd, type)	((ipfw_insn_ ## type *)(cmd))
+struct show_state {
+	struct ip_fw_rule	*rule;
+	const ipfw_insn		*eaction;
+	uint8_t			*printed;
+	int			flags;
 #define	HAVE_PROTO	0x0001
 #define	HAVE_SRCIP	0x0002
 #define	HAVE_DSTIP	0x0004
-#define	HAVE_PROTO4	0x0008
-#define	HAVE_PROTO6	0x0010
-#define	HAVE_IP		0x0100
-#define	HAVE_OPTIONS	0x8000
+	int			proto;
+	int			or_block;
+};
 
-static void
-show_prerequisites(struct buf_pr *bp, int *flags, int want, int cmd)
+static int
+init_show_state(struct show_state *state, struct ip_fw_rule *rule)
 {
-	(void)cmd;	/* UNUSED */
-	if (co.comment_only)
-		return;
-	if ( (*flags & HAVE_IP) == HAVE_IP)
-		*flags |= HAVE_OPTIONS;
 
-	if ( !(*flags & HAVE_OPTIONS)) {
-		if ( !(*flags & HAVE_PROTO) && (want & HAVE_PROTO)) {
-			if ( (*flags & HAVE_PROTO4))
-				bprintf(bp, " ip4");
-			else if ( (*flags & HAVE_PROTO6))
-				bprintf(bp, " ip6");
-			else
-				bprintf(bp, " ip");
-		}
-		if ( !(*flags & HAVE_SRCIP) && (want & HAVE_SRCIP))
-			bprintf(bp, " from any");
-		if ( !(*flags & HAVE_DSTIP) && (want & HAVE_DSTIP))
-			bprintf(bp, " to any");
-	}
-	*flags |= want;
+	state->printed = calloc(rule->cmd_len, sizeof(uint8_t));
+	if (state->printed == NULL)
+		return (ENOMEM);
+	state->rule = rule;
+	state->eaction = NULL;
+	state->flags = 0;
+	state->proto = 0;
+	state->or_block = 0;
+	return (0);
 }
 
 static void
-show_static_rule(struct cmdline_opts *co, struct format_opts *fo,
-    struct buf_pr *bp, struct ip_fw_rule *rule, struct ip_fw_bcounter *cntr)
+free_show_state(struct show_state *state)
 {
-	static int twidth = 0;
-	int l;
-	ipfw_insn *cmd, *has_eaction = NULL, *tagptr = NULL;
-	const char *comment = NULL;	/* ptr to comment if we have one */
-	const char *ename;
-	int proto = 0;		/* default */
-	int flags = 0;	/* prerequisites */
-	ipfw_insn_log *logptr = NULL; /* set if we find an O_LOG */
-	ipfw_insn_altq *altqptr = NULL; /* set if we find an O_ALTQ */
-	int or_block = 0;	/* we are in an or block */
-	uint32_t uval;
 
-	if ((fo->set_mask & (1 << rule->set)) == 0) {
-		/* disabled mask */
-		if (!co->show_sets)
-			return;
-		else
-			bprintf(bp, "# DISABLED ");
-	}
-	bprintf(bp, "%05u ", rule->rulenum);
+	free(state->printed);
+}
 
-	/* Print counters if enabled */
-	if (fo->pcwidth > 0 || fo->bcwidth > 0) {
-		pr_u64(bp, &cntr->pcnt, fo->pcwidth);
-		pr_u64(bp, &cntr->bcnt, fo->bcwidth);
-	}
+static uint8_t
+is_printed_opcode(struct show_state *state, const ipfw_insn *cmd)
+{
 
-	if (co->do_time == 2)
-		bprintf(bp, "%10u ", cntr->timestamp);
-	else if (co->do_time == 1) {
-		char timestr[30];
-		time_t t = (time_t)0;
+	return (state->printed[cmd - state->rule->cmd]);
+}
 
-		if (twidth == 0) {
-			strcpy(timestr, ctime(&t));
-			*strchr(timestr, '\n') = '\0';
-			twidth = strlen(timestr);
-		}
-		if (cntr->timestamp > 0) {
-			t = _long_to_time(cntr->timestamp);
+static void
+mark_printed(struct show_state *state, const ipfw_insn *cmd)
+{
 
-			strcpy(timestr, ctime(&t));
-			*strchr(timestr, '\n') = '\0';
-			bprintf(bp, "%s ", timestr);
-		} else {
-			bprintf(bp, "%*s", twidth, " ");
-		}
-	}
+	state->printed[cmd - state->rule->cmd] = 1;
+}
 
-	if (co->show_sets)
-		bprintf(bp, "set %d ", rule->set);
+static void
+print_limit(struct buf_pr *bp, const ipfw_insn_limit *limit)
+{
+	struct _s_x *p = limit_masks;
+	char const *comma = " ";
+	uint8_t x;
 
-	/*
-	 * print the optional "match probability"
-	 */
-	if (rule->cmd_len > 0) {
-		cmd = rule->cmd ;
-		if (cmd->opcode == O_PROB) {
-			ipfw_insn_u32 *p = (ipfw_insn_u32 *)cmd;
-			double d = 1.0 * p->d[0];
-
-			d = (d / 0x7fffffff);
-			bprintf(bp, "prob %f ", d);
+	bprintf(bp, " limit");
+	for (x = limit->limit_mask; p->x != 0; p++) {
+		if ((x & p->x) == p->x) {
+			x &= ~p->x;
+			bprintf(bp, "%s%s", comma, p->s);
+			comma = ",";
 		}
 	}
+	bprint_uint_arg(bp, " ", limit->conn_limit);
+}
 
-	/*
-	 * first print actions
-	 */
-	for (l = rule->cmd_len - rule->act_ofs, cmd = ACTION_PTR(rule);
-			l > 0 ; l -= F_LEN(cmd), cmd += F_LEN(cmd)) {
-		switch(cmd->opcode) {
-		case O_CHECK_STATE:
-			bprintf(bp, "check-state");
-			if (cmd->arg1 != 0)
-				ename = object_search_ctlv(fo->tstate,
-				    cmd->arg1, IPFW_TLV_STATE_NAME);
-			else
-				ename = NULL;
-			bprintf(bp, " :%s", ename ? ename: "any");
-			/* avoid printing anything else */
-			flags = HAVE_PROTO | HAVE_SRCIP |
-				HAVE_DSTIP | HAVE_IP;
-			break;
+static int
+print_instruction(struct buf_pr *bp, const struct format_opts *fo,
+    struct show_state *state, ipfw_insn *cmd)
+{
+	struct protoent *pe;
+	struct passwd *pwd;
+	struct group *grp;
+	const char *s;
+	double d;
 
-		case O_ACCEPT:
-			bprintf(bp, "allow");
-			break;
+	if (is_printed_opcode(state, cmd))
+		return (0);
+	if ((cmd->len & F_OR) != 0 && state->or_block == 0)
+		bprintf(bp, " {");
+	if (cmd->opcode != O_IN && (cmd->len & F_NOT) != 0)
+		bprintf(bp, " not");
 
-		case O_COUNT:
-			bprintf(bp, "count");
+	switch (cmd->opcode) {
+	case O_PROB:
+		d = 1.0 * insntod(cmd, u32)->d[0] / 0x7fffffff;
+		bprintf(bp, "prob %f ", d);
+		break;
+	case O_PROBE_STATE: /* no need to print anything here */
+		break;
+	case O_IP_SRC:
+	case O_IP_SRC_LOOKUP:
+	case O_IP_SRC_MASK:
+	case O_IP_SRC_ME:
+	case O_IP_SRC_SET:
+	case O_IP_DST:
+	case O_IP_DST_LOOKUP:
+	case O_IP_DST_MASK:
+	case O_IP_DST_ME:
+	case O_IP_DST_SET:
+		print_ip(bp, fo, insntod(cmd, ip), "");
+		break;
+	case O_IP6_SRC:
+	case O_IP6_SRC_MASK:
+	case O_IP6_SRC_ME:
+	case O_IP6_DST:
+	case O_IP6_DST_MASK:
+	case O_IP6_DST_ME:
+		print_ip6(bp, insntod(cmd, ip6), "");
+		break;
+	case O_FLOW6ID:
+		print_flow6id(bp, insntod(cmd, u32));
+		break;
+	case O_IP_DSTPORT:
+	case O_IP_SRCPORT:
+		print_newports(bp, insntod(cmd, u16), state->proto,
+		    (state->flags & (HAVE_SRCIP | HAVE_DSTIP)) ==
+		    (HAVE_SRCIP | HAVE_DSTIP) ?  cmd->opcode: 0);
+		break;
+	case O_PROTO:
+		pe = getprotobynumber(cmd->arg1);
+		if (state->flags & HAVE_PROTO)
+			bprintf(bp, " proto");
+		if (pe != NULL)
+			bprintf(bp, " %s", pe->p_name);
+		else
+			bprintf(bp, " %u", cmd->arg1);
+		break;
+	case O_MACADDR2:
+		print_mac(bp, insntod(cmd, mac));
+		break;
+	case O_MAC_TYPE:
+		print_newports(bp, insntod(cmd, u16),
+		    IPPROTO_ETHERTYPE, cmd->opcode);
+		break;
+	case O_FRAG:
+		bprintf(bp, " frag");
+		break;
+	case O_FIB:
+		bprintf(bp, " fib %u", cmd->arg1);
+		break;
+	case O_SOCKARG:
+		bprintf(bp, " sockarg");
+		break;
+	case O_IN:
+		bprintf(bp, cmd->len & F_NOT ? " out" : " in");
+		break;
+	case O_DIVERTED:
+		switch (cmd->arg1) {
+		case 3:
+			bprintf(bp, " diverted");
 			break;
-
-		case O_DENY:
-			bprintf(bp, "deny");
+		case 2:
+			bprintf(bp, " diverted-output");
 			break;
-
-		case O_REJECT:
-			if (cmd->arg1 == ICMP_REJECT_RST)
-				bprintf(bp, "reset");
-			else if (cmd->arg1 == ICMP_REJECT_ABORT)
-				bprintf(bp, "abort");
-			else if (cmd->arg1 == ICMP_UNREACH_HOST)
-				bprintf(bp, "reject");
-			else
-				print_reject_code(bp, cmd->arg1);
+		case 1:
+			bprintf(bp, " diverted-loopback");
 			break;
-
-		case O_UNREACH6:
-			if (cmd->arg1 == ICMP6_UNREACH_RST)
-				bprintf(bp, "reset6");
-			else if (cmd->arg1 == ICMP6_UNREACH_ABORT)
-				bprintf(bp, "abort6");
-			else
-				print_unreach6_code(bp, cmd->arg1);
+		default:
+			bprintf(bp, " diverted-?<%u>", cmd->arg1);
 			break;
-
-		case O_SKIPTO:
-			bprint_uint_arg(bp, "skipto ", cmd->arg1);
+		}
+		break;
+	case O_LAYER2:
+		bprintf(bp, " layer2");
+		break;
+	case O_XMIT:
+	case O_RECV:
+	case O_VIA:
+		if (cmd->opcode == O_XMIT)
+			s = "xmit";
+		else if (cmd->opcode == O_RECV)
+			s = "recv";
+		else /* if (cmd->opcode == O_VIA) */
+			s = "via";
+		switch (insntod(cmd, if)->name[0]) {
+		case '\0':
+			bprintf(bp, " %s %s", s,
+			    inet_ntoa(insntod(cmd, if)->p.ip));
 			break;
-
-		case O_PIPE:
-			bprint_uint_arg(bp, "pipe ", cmd->arg1);
+		case '\1':
+			bprintf(bp, " %s table(%s)", s,
+			    table_search_ctlv(fo->tstate,
+			    insntod(cmd, if)->p.kidx));
 			break;
-
-		case O_QUEUE:
-			bprint_uint_arg(bp, "queue ", cmd->arg1);
-			break;
-
-		case O_DIVERT:
-			bprint_uint_arg(bp, "divert ", cmd->arg1);
-			break;
-
-		case O_TEE:
-			bprint_uint_arg(bp, "tee ", cmd->arg1);
-			break;
-
-		case O_NETGRAPH:
-			bprint_uint_arg(bp, "netgraph ", cmd->arg1);
-			break;
-
-		case O_NGTEE:
-			bprint_uint_arg(bp, "ngtee ", cmd->arg1);
-			break;
-
-		case O_FORWARD_IP:
-		    {
-			ipfw_insn_sa *s = (ipfw_insn_sa *)cmd;
-
-			if (s->sa.sin_addr.s_addr == INADDR_ANY) {
-				bprintf(bp, "fwd tablearg");
-			} else {
-				bprintf(bp, "fwd %s",inet_ntoa(s->sa.sin_addr));
-			}
-			if (s->sa.sin_port)
-				bprintf(bp, ",%d", s->sa.sin_port);
-		    }
-			break;
-
-		case O_FORWARD_IP6:
-		    {
-			char buf[INET6_ADDRSTRLEN + IF_NAMESIZE + 2];
-			ipfw_insn_sa6 *s = (ipfw_insn_sa6 *)cmd;
-
-			bprintf(bp, "fwd ");
-			if (getnameinfo((const struct sockaddr *)&s->sa,
-			    sizeof(struct sockaddr_in6), buf, sizeof(buf),
-			    NULL, 0, NI_NUMERICHOST) == 0)
-				bprintf(bp, "%s", buf);
-			if (s->sa.sin6_port)
-				bprintf(bp, ",%d", s->sa.sin6_port);
-		    }
-			break;
-
-		case O_LOG: /* O_LOG is printed last */
-			logptr = (ipfw_insn_log *)cmd;
-			break;
-
-		case O_ALTQ: /* O_ALTQ is printed after O_LOG */
-			altqptr = (ipfw_insn_altq *)cmd;
-			break;
-
-		case O_TAG:
-			tagptr = cmd;
-			break;
-
-		case O_NAT:
-			if (cmd->arg1 != IP_FW_NAT44_GLOBAL)
-				bprint_uint_arg(bp, "nat ", cmd->arg1);
-			else
-				bprintf(bp, "nat global");
-			break;
-
-		case O_SETFIB:
-			if (cmd->arg1 == IP_FW_TARG)
-				bprint_uint_arg(bp, "setfib ", cmd->arg1);
-			else
-				bprintf(bp, "setfib %u", cmd->arg1 & 0x7FFF);
-			break;
-
-		case O_EXTERNAL_ACTION: {
-			/*
-			 * The external action can consists of two following
-			 * each other opcodes - O_EXTERNAL_ACTION and
-			 * O_EXTERNAL_INSTANCE. The first contains the ID of
-			 * name of external action. The second contains the ID
-			 * of name of external action instance.
-			 * NOTE: in case when external action has no named
-			 * instances support, the second opcode isn't needed.
-			 */
-			has_eaction = cmd;
-			ename = object_search_ctlv(fo->tstate, cmd->arg1,
-			    IPFW_TLV_EACTION);
-			if (match_token(rule_eactions, ename) != -1)
-				bprintf(bp, "%s", ename);
-			else
-				bprintf(bp, "eaction %s", ename);
-			break;
+		default:
+			bprintf(bp, " %s %s", s,
+			    insntod(cmd, if)->name);
 		}
-
-		case O_EXTERNAL_INSTANCE: {
-			if (has_eaction == NULL)
+		break;
+	case O_IP_FLOW_LOOKUP:
+		s = table_search_ctlv(fo->tstate, cmd->arg1);
+		bprintf(bp, " flow table(%s", s);
+		if (F_LEN(cmd) == F_INSN_SIZE(ipfw_insn_u32))
+			bprintf(bp, ",%u", insntod(cmd, u32)->d[0]);
+		bprintf(bp, ")");
+		break;
+	case O_IPID:
+	case O_IPTTL:
+	case O_IPLEN:
+	case O_TCPDATALEN:
+	case O_TCPWIN:
+		if (F_LEN(cmd) == 1) {
+			switch (cmd->opcode) {
+			case O_IPID:
+				s = "ipid";
 				break;
-			/*
-			 * XXX: we need to teach ipfw(9) to rewrite opcodes
-			 * in the user buffer on rule addition. When we add
-			 * the rule, we specify zero TLV type for
-			 * O_EXTERNAL_INSTANCE object. To show correct
-			 * rule after `ipfw add` we need to search instance
-			 * name with zero type. But when we do `ipfw show`
-			 * we calculate TLV type using IPFW_TLV_EACTION_NAME()
-			 * macro.
-			 */
-			ename = object_search_ctlv(fo->tstate, cmd->arg1, 0);
-			if (ename == NULL)
-				ename = object_search_ctlv(fo->tstate,
-				    cmd->arg1,
-				    IPFW_TLV_EACTION_NAME(has_eaction->arg1));
-			bprintf(bp, " %s", ename);
-			break;
-		}
-
-		case O_EXTERNAL_DATA: {
-			if (has_eaction == NULL)
+			case O_IPTTL:
+				s = "ipttl";
 				break;
-			/*
-			 * Currently we support data formatting only for
-			 * external data with datalen u16. For unknown data
-			 * print its size in bytes.
-			 */
-			if (cmd->len == F_INSN_SIZE(ipfw_insn))
-				bprintf(bp, " %u", cmd->arg1);
-			else
-				bprintf(bp, " %ubytes",
-				    cmd->len * sizeof(uint32_t));
-			break;
-		}
-
-		case O_SETDSCP:
-		    {
-			const char *code;
-
-			if (cmd->arg1 == IP_FW_TARG) {
-				bprint_uint_arg(bp, "setdscp ", cmd->arg1);
+			case O_IPLEN:
+				s = "iplen";
 				break;
+			case O_TCPDATALEN:
+				s = "tcpdatalen";
+				break;
+			case O_TCPWIN:
+				s = "tcpwin";
+				break;
 			}
-			uval = cmd->arg1 & 0x3F;
-			if ((code = match_value(f_ipdscp, uval)) != NULL)
-				bprintf(bp, "setdscp %s", code);
-			else
-				bprint_uint_arg(bp, "setdscp ", uval);
-		    }
- 			break;
+			bprintf(bp, " %s %u", s, cmd->arg1);
+		} else
+			print_newports(bp, insntod(cmd, u16), 0,
+			    cmd->opcode);
+		break;
+	case O_IPVER:
+		bprintf(bp, " ipver %u", cmd->arg1);
+		break;
+	case O_IPPRECEDENCE:
+		bprintf(bp, " ipprecedence %u", cmd->arg1 >> 5);
+		break;
+	case O_DSCP:
+		print_dscp(bp, insntod(cmd, u32));
+		break;
+	case O_IPOPT:
+		print_flags(bp, "ipoptions", cmd, f_ipopts);
+		break;
+	case O_IPTOS:
+		print_flags(bp, "iptos", cmd, f_iptos);
+		break;
+	case O_ICMPTYPE:
+		print_icmptypes(bp, insntod(cmd, u32));
+		break;
+	case O_ESTAB:
+		bprintf(bp, " established");
+		break;
+	case O_TCPFLAGS:
+		print_flags(bp, "tcpflags", cmd, f_tcpflags);
+		break;
+	case O_TCPOPTS:
+		print_flags(bp, "tcpoptions", cmd, f_tcpopts);
+		break;
+	case O_TCPACK:
+		bprintf(bp, " tcpack %d",
+		    ntohl(insntod(cmd, u32)->d[0]));
+		break;
+	case O_TCPSEQ:
+		bprintf(bp, " tcpseq %d",
+		    ntohl(insntod(cmd, u32)->d[0]));
+		break;
+	case O_UID:
+		pwd = getpwuid(insntod(cmd, u32)->d[0]);
+		if (pwd != NULL)
+			bprintf(bp, " uid %s", pwd->pw_name);
+		else
+			bprintf(bp, " uid %u",
+			    insntod(cmd, u32)->d[0]);
+		break;
+	case O_GID:
+		grp = getgrgid(insntod(cmd, u32)->d[0]);
+		if (grp != NULL)
+			bprintf(bp, " gid %s", grp->gr_name);
+		else
+			bprintf(bp, " gid %u",
+			    insntod(cmd, u32)->d[0]);
+		break;
+	case O_JAIL:
+		bprintf(bp, " jail %d", insntod(cmd, u32)->d[0]);
+		break;
+	case O_VERREVPATH:
+		bprintf(bp, " verrevpath");
+		break;
+	case O_VERSRCREACH:
+		bprintf(bp, " versrcreach");
+		break;
+	case O_ANTISPOOF:
+		bprintf(bp, " antispoof");
+		break;
+	case O_IPSEC:
+		bprintf(bp, " ipsec");
+		break;
+	case O_NOP:
+		bprintf(bp, " // %s", (char *)(cmd + 1));
+		break;
+	case O_KEEP_STATE:
+		bprintf(bp, " keep-state");
+		bprintf(bp, " :%s",
+		    object_search_ctlv(fo->tstate, cmd->arg1,
+		    IPFW_TLV_STATE_NAME));
+		break;
+	case O_LIMIT:
+		print_limit(bp, insntod(cmd, limit));
+		bprintf(bp, " :%s",
+		    object_search_ctlv(fo->tstate, cmd->arg1,
+		    IPFW_TLV_STATE_NAME));
+		break;
+	case O_IP6:
+		bprintf(bp, " ip6");
+		break;
+	case O_IP4:
+		bprintf(bp, " ip4");
+		break;
+	case O_ICMP6TYPE:
+		print_icmp6types(bp, insntod(cmd, u32));
+		break;
+	case O_EXT_HDR:
+		print_ext6hdr(bp, cmd);
+		break;
+	case O_TAGGED:
+		if (F_LEN(cmd) == 1)
+			bprint_uint_arg(bp, " tagged ", cmd->arg1);
+		else
+			print_newports(bp, insntod(cmd, u16),
+				    0, O_TAGGED);
+		break;
+	default:
+		bprintf(bp, " [opcode %d len %d]", cmd->opcode,
+		    cmd->len);
+	}
+	if (cmd->len & F_OR) {
+		bprintf(bp, " or");
+		state->or_block = 1;
+	} else if (state->or_block != 0) {
+		bprintf(bp, " }");
+		state->or_block = 0;
+	}
+	mark_printed(state, cmd);
 
-		case O_REASS:
-			bprintf(bp, "reass");
-			break;
+	return (1);
+}
 
-		case O_CALLRETURN:
-			if (cmd->len & F_NOT)
-				bprintf(bp, "return");
-			else
-				bprint_uint_arg(bp, "call ", cmd->arg1);
-			break;
+static ipfw_insn *
+print_opcode(struct buf_pr *bp, struct format_opts *fo,
+    struct show_state *state, uint8_t opcode)
+{
+	ipfw_insn *cmd;
+	int l;
 
-		default:
-			bprintf(bp, "** unrecognized action %d len %d ",
-				cmd->opcode, cmd->len);
-		}
+	for (l = state->rule->act_ofs, cmd = state->rule->cmd;
+	    l > 0; l -= F_LEN(cmd), cmd += F_LEN(cmd)) {
+		/* We use zero opcode to print the rest of options */
+		if (opcode != 0 && cmd->opcode != opcode)
+			continue;
+		/*
+		 * Skip O_NOP, when we printing the rest
+		 * of options, it will be handled separately.
+		 */
+		if (cmd->opcode == O_NOP && opcode != O_NOP)
+			continue;
+		if (!print_instruction(bp, fo, state, cmd))
+			continue;
+		return (cmd);
 	}
-	if (logptr) {
-		if (logptr->max_log > 0)
-			bprintf(bp, " log logamount %d", logptr->max_log);
+	return (NULL);
+}
+
+static void
+print_fwd(struct buf_pr *bp, const ipfw_insn *cmd)
+{
+	char buf[INET6_ADDRSTRLEN + IF_NAMESIZE + 2];
+	ipfw_insn_sa6 *sa6;
+	ipfw_insn_sa *sa;
+	uint16_t port;
+
+	if (cmd->opcode == O_FORWARD_IP) {
+		sa = insntod(cmd, sa);
+		port = sa->sa.sin_port;
+		if (sa->sa.sin_addr.s_addr == INADDR_ANY)
+			bprintf(bp, "fwd tablearg");
 		else
-			bprintf(bp, " log");
+			bprintf(bp, "fwd %s", inet_ntoa(sa->sa.sin_addr));
+	} else {
+		sa6 = insntod(cmd, sa6);
+		port = sa6->sa.sin6_port;
+		bprintf(bp, "fwd ");
+		if (getnameinfo((const struct sockaddr *)&sa6->sa,
+		    sizeof(struct sockaddr_in6), buf, sizeof(buf), NULL, 0,
+		    NI_NUMERICHOST) == 0)
+			bprintf(bp, "%s", buf);
 	}
+	if (port != 0)
+		bprintf(bp, ",%u", port);
+}
+
+static int
+print_action_instruction(struct buf_pr *bp, const struct format_opts *fo,
+    struct show_state *state, const ipfw_insn *cmd)
+{
+	const char *s;
+
+	if (is_printed_opcode(state, cmd))
+		return (0);
+	switch (cmd->opcode) {
+	case O_CHECK_STATE:
+		bprintf(bp, "check-state");
+		if (cmd->arg1 != 0)
+			s = object_search_ctlv(fo->tstate, cmd->arg1,
+			    IPFW_TLV_STATE_NAME);
+		else
+			s = NULL;
+		bprintf(bp, " :%s", s ? s: "any");
+		break;
+	case O_ACCEPT:
+		bprintf(bp, "allow");
+		break;
+	case O_COUNT:
+		bprintf(bp, "count");
+		break;
+	case O_DENY:
+		bprintf(bp, "deny");
+		break;
+	case O_REJECT:
+		if (cmd->arg1 == ICMP_REJECT_RST)
+			bprintf(bp, "reset");
+		else if (cmd->arg1 == ICMP_REJECT_ABORT)
+			bprintf(bp, "abort");
+		else if (cmd->arg1 == ICMP_UNREACH_HOST)
+			bprintf(bp, "reject");
+		else
+			print_reject_code(bp, cmd->arg1);
+		break;
+	case O_UNREACH6:
+		if (cmd->arg1 == ICMP6_UNREACH_RST)
+			bprintf(bp, "reset6");
+		else if (cmd->arg1 == ICMP6_UNREACH_ABORT)
+			bprintf(bp, "abort6");
+		else
+			print_unreach6_code(bp, cmd->arg1);
+		break;
+	case O_SKIPTO:
+		bprint_uint_arg(bp, "skipto ", cmd->arg1);
+		break;
+	case O_PIPE:
+		bprint_uint_arg(bp, "pipe ", cmd->arg1);
+		break;
+	case O_QUEUE:
+		bprint_uint_arg(bp, "queue ", cmd->arg1);
+		break;
+	case O_DIVERT:
+		bprint_uint_arg(bp, "divert ", cmd->arg1);
+		break;
+	case O_TEE:
+		bprint_uint_arg(bp, "tee ", cmd->arg1);
+		break;
+	case O_NETGRAPH:
+		bprint_uint_arg(bp, "netgraph ", cmd->arg1);
+		break;
+	case O_NGTEE:
+		bprint_uint_arg(bp, "ngtee ", cmd->arg1);
+		break;
+	case O_FORWARD_IP:
+	case O_FORWARD_IP6:
+		print_fwd(bp, cmd);
+		break;
+	case O_LOG:
+		if (insntod(cmd, log)->max_log > 0)
+			bprintf(bp, " log logamount %d",
+			    insntod(cmd, log)->max_log);
+		else
+			bprintf(bp, " log");
+		break;
+	case O_ALTQ:
 #ifndef NO_ALTQ
-	if (altqptr) {
-		print_altq_cmd(bp, altqptr);
-	}
+		print_altq_cmd(bp, insntod(cmd, altq));
 #endif
-	if (tagptr) {
-		if (tagptr->len & F_NOT)
-			bprint_uint_arg(bp, " untag ", tagptr->arg1);
+		break;
+	case O_TAG:
+		bprint_uint_arg(bp, cmd->len & F_NOT ? " untag ":
+		    " tag ", cmd->arg1);
+		break;
+	case O_NAT:
+		if (cmd->arg1 != IP_FW_NAT44_GLOBAL)
+			bprint_uint_arg(bp, "nat ", cmd->arg1);
 		else
-			bprint_uint_arg(bp, " tag ", tagptr->arg1);
-	}
-
-	/*
-	 * then print the body.
-	 */
-	for (l = rule->act_ofs, cmd = rule->cmd;
-			l > 0 ; l -= F_LEN(cmd) , cmd += F_LEN(cmd)) {
-		if ((cmd->len & F_OR) || (cmd->len & F_NOT))
-			continue;
-		if (cmd->opcode == O_IP4) {
-			flags |= HAVE_PROTO4;
+			bprintf(bp, "nat global");
+		break;
+	case O_SETFIB:
+		if (cmd->arg1 == IP_FW_TARG)
+			bprint_uint_arg(bp, "setfib ", cmd->arg1);
+		else
+			bprintf(bp, "setfib %u", cmd->arg1 & 0x7FFF);
+		break;
+	case O_EXTERNAL_ACTION:
+		/*
+		 * The external action can consists of two following
+		 * each other opcodes - O_EXTERNAL_ACTION and
+		 * O_EXTERNAL_INSTANCE. The first contains the ID of
+		 * name of external action. The second contains the ID
+		 * of name of external action instance.
+		 * NOTE: in case when external action has no named
+		 * instances support, the second opcode isn't needed.
+		 */
+		state->eaction = cmd;
+		s = object_search_ctlv(fo->tstate, cmd->arg1,
+		    IPFW_TLV_EACTION);
+		if (match_token(rule_eactions, s) != -1)
+			bprintf(bp, "%s", s);
+		else
+			bprintf(bp, "eaction %s", s);
+		break;
+	case O_EXTERNAL_INSTANCE:
+		if (state->eaction == NULL)
 			break;
-		} else if (cmd->opcode == O_IP6) {
-			flags |= HAVE_PROTO6;
+		/*
+		 * XXX: we need to teach ipfw(9) to rewrite opcodes
+		 * in the user buffer on rule addition. When we add
+		 * the rule, we specify zero TLV type for
+		 * O_EXTERNAL_INSTANCE object. To show correct
+		 * rule after `ipfw add` we need to search instance
+		 * name with zero type. But when we do `ipfw show`
+		 * we calculate TLV type using IPFW_TLV_EACTION_NAME()
+		 * macro.
+		 */
+		s = object_search_ctlv(fo->tstate, cmd->arg1, 0);
+		if (s == NULL)
+			s = object_search_ctlv(fo->tstate,
+			    cmd->arg1, IPFW_TLV_EACTION_NAME(
+			    state->eaction->arg1));
+		bprintf(bp, " %s", s);
+		break;
+	case O_EXTERNAL_DATA:
+		if (state->eaction == NULL)
 			break;
+		/*
+		 * Currently we support data formatting only for
+		 * external data with datalen u16. For unknown data
+		 * print its size in bytes.
+		 */
+		if (cmd->len == F_INSN_SIZE(ipfw_insn))
+			bprintf(bp, " %u", cmd->arg1);
+		else
+			bprintf(bp, " %ubytes",
+			    cmd->len * sizeof(uint32_t));
+		break;
+	case O_SETDSCP:
+		if (cmd->arg1 == IP_FW_TARG) {
+			bprintf(bp, "setdscp tablearg");
+			break;
 		}
+		s = match_value(f_ipdscp, cmd->arg1 & 0x3F);
+		if (s != NULL)
+			bprintf(bp, "setdscp %s", s);
+		else
+			bprintf(bp, "setdscp %s", cmd->arg1 & 0x3F);
+		break;
+	case O_REASS:
+		bprintf(bp, "reass");
+		break;
+	case O_CALLRETURN:
+		if (cmd->len & F_NOT)
+			bprintf(bp, "return");
+		else
+			bprint_uint_arg(bp, "call ", cmd->arg1);
+		break;
+	default:
+		bprintf(bp, "** unrecognized action %d len %d ",
+			cmd->opcode, cmd->len);
 	}
-	if (rule->flags & IPFW_RULE_NOOPT) {	/* empty rules before options */
-		if (!co->do_compact) {
-			show_prerequisites(bp, &flags, HAVE_PROTO, 0);
-			bprintf(bp, " from any to any");
-		}
-		flags |= HAVE_IP | HAVE_OPTIONS | HAVE_PROTO |
-			 HAVE_SRCIP | HAVE_DSTIP;
-	}
+	mark_printed(state, cmd);
 
-	if (co->comment_only)
-		comment = "...";
+	return (1);
+}
 
-	for (l = rule->act_ofs, cmd = rule->cmd;
-			l > 0 ; l -= F_LEN(cmd) , cmd += F_LEN(cmd)) {
-		/* useful alias */
-		ipfw_insn_u32 *cmd32 = (ipfw_insn_u32 *)cmd;
 
-		if (co->comment_only) {
-			if (cmd->opcode != O_NOP)
-				continue;
-			bprintf(bp, " // %s\n", (char *)(cmd + 1));
-			return;
-		}
+static ipfw_insn *
+print_action(struct buf_pr *bp, struct format_opts *fo,
+    struct show_state *state, uint8_t opcode)
+{
+	ipfw_insn *cmd;
+	int l;
 
-		show_prerequisites(bp, &flags, 0, cmd->opcode);
+	for (l = state->rule->cmd_len - state->rule->act_ofs,
+	    cmd = ACTION_PTR(state->rule); l > 0;
+	    l -= F_LEN(cmd), cmd += F_LEN(cmd)) {
+		if (cmd->opcode != opcode)
+			continue;
+		if (!print_action_instruction(bp, fo, state, cmd))
+			continue;
+		return (cmd);
+	}
+	return (NULL);
+}
 
-		switch(cmd->opcode) {
-		case O_PROB:
-			break;	/* done already */
+static void
+print_proto(struct buf_pr *bp, struct format_opts *fo,
+    struct show_state *state)
+{
+	ipfw_insn *cmd;
+	int l, proto, ip4, ip6, tmp;
 
-		case O_PROBE_STATE:
-			break; /* no need to print anything here */
-
-		case O_IP_SRC:
-		case O_IP_SRC_LOOKUP:
-		case O_IP_SRC_MASK:
-		case O_IP_SRC_ME:

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Wed Mar 28 12:58:21 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9491EF5A37A;
 Wed, 28 Mar 2018 12:58:21 +0000 (UTC)
 (envelope-from herbert@gojira.at)
Received: from mail.bsd4all.net (mail.bsd4all.net [IPv6:2a01:4f8:191:217b::25])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mail.bsd4all.net",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3212F68164;
 Wed, 28 Mar 2018 12:58:20 +0000 (UTC)
 (envelope-from herbert@gojira.at)
Date: Wed, 28 Mar 2018 14:58:18 +0200
From: "Herbert J. Skuhra" 
To: "O. Hartmann" 
Cc: Cy Schubert ,
 "svn-src-head@freebsd.org" ,
 "svn-src-all@freebsd.org" ,
 "src-committers@freebsd.org" ,
 John Baldwin 
Subject: Re: svn commit: r331650 - in head/sys: amd64/amd64
 amd64/ia32amd64/linux amd64/linux32
 cddl/contrib/opensolaris/uts/intel/dtracecddl/dev/dtrace/amd64
 cddl/dev/dtrace/i386 i386/i386 i386/linux x86/inc...
Message-ID: <20180328125818.GA35772@mail.bsd4all.net>
References: <20180328052050.8B3CD143@spqr.komquats.com>
 <20180328072327.4f45e3f0@freyja.zeit4.iv.bundesimmobilien.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20180328072327.4f45e3f0@freyja.zeit4.iv.bundesimmobilien.de>
User-Agent: Mutt/1.9.4 (2018-02-28)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 12:58:21 -0000

On Wed, Mar 28, 2018 at 07:23:27AM +0200, O. Hartmann wrote:
> On Tue, 27 Mar 2018 23:20:53 -0600
> Cy Schubert  wrote:
> 
> > Have you disabled DDB in your kernel config?

At the moment I am building non-GENERIC kernel with the below patch:

Index: sys/amd64/amd64/machdep.c
===================================================================
--- sys/amd64/amd64/machdep.c   (revision 331667)
+++ sys/amd64/amd64/machdep.c   (working copy)
@@ -108,6 +108,8 @@
 #endif
 #include 
 #include 
+#else
+#include 
 #endif

 #include 

-- 
Herbert

From owner-svn-src-all@freebsd.org  Wed Mar 28 13:39:21 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6ECE4F5EBBD;
 Wed, 28 Mar 2018 13:39:21 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 238416A33B;
 Wed, 28 Mar 2018 13:39:21 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 195533B01;
 Wed, 28 Mar 2018 13:39:21 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SDdKrj070790;
 Wed, 28 Mar 2018 13:39:20 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SDdKQc070789;
 Wed, 28 Mar 2018 13:39:20 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201803281339.w2SDdKQc070789@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston 
Date: Wed, 28 Mar 2018 13:39:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331669 -
 stable/11/cddl/contrib/opensolaris/lib/libdtrace/common
X-SVN-Group: stable-11
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: stable/11/cddl/contrib/opensolaris/lib/libdtrace/common
X-SVN-Commit-Revision: 331669
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 13:39:21 -0000

Author: markj
Date: Wed Mar 28 13:39:20 2018
New Revision: 331669
URL: https://svnweb.freebsd.org/changeset/base/331669

Log:
  Revert r331551. It is causing perl and tcl port build failures.
  
  Reported by:	antoine

Modified:
  stable/11/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
==============================================================================
--- stable/11/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Wed Mar 28 12:44:28 2018	(r331668)
+++ stable/11/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c	Wed Mar 28 13:39:20 2018	(r331669)
@@ -22,7 +22,6 @@
 /*
  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
- * Copyright 2017-2018 Mark Johnston 
  */
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
@@ -275,7 +274,7 @@ prepare_elf32(dtrace_hdl_t *dtp, const dof_hdr_t *dof,
 			sym->st_value = 0;
 			sym->st_size = 0;
 			sym->st_info = ELF32_ST_INFO(STB_GLOBAL, STT_FUNC);
-			sym->st_other = ELF32_ST_VISIBILITY(STV_HIDDEN);
+			sym->st_other = 0;
 			sym->st_shndx = SHN_UNDEF;
 
 			rel++;
@@ -473,7 +472,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof,
 			sym->st_value = 0;
 			sym->st_size = 0;
 			sym->st_info = GELF_ST_INFO(STB_GLOBAL, STT_FUNC);
-			sym->st_other = ELF64_ST_VISIBILITY(STV_HIDDEN);
+			sym->st_other = 0;
 			sym->st_shndx = SHN_UNDEF;
 
 			rel++;

From owner-svn-src-all@freebsd.org  Wed Mar 28 13:40:32 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B5F1BF5ECFE;
 Wed, 28 Mar 2018 13:40:32 +0000 (UTC)
 (envelope-from markjdb@gmail.com)
Received: from mail-io0-x231.google.com (mail-io0-x231.google.com
 [IPv6:2607:f8b0:4001:c06::231])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 448EA6A4AE;
 Wed, 28 Mar 2018 13:40:32 +0000 (UTC)
 (envelope-from markjdb@gmail.com)
Received: by mail-io0-x231.google.com with SMTP id l3so3607608iog.0;
 Wed, 28 Mar 2018 06:40:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:date:from:to:cc:subject:message-id:references:mime-version
 :content-disposition:in-reply-to:user-agent;
 bh=wGqpmPrazCpPrJcV66/z/PV6F49p4WnH634KQJpHmPA=;
 b=eCsZapvHd1+nFlFx3vZL3oX/2v5J7tVPE2CjUCdgapgr9qNbGRFa4E0drDz8GmdxCM
 4z0J9KZWETxjy07xbeSCIK4lMGPf+i4uCHSAS7dgai3gASqWvucKKtdsNljz0URQErvJ
 fJsrH2U6UcUNCF64D/MEpsGEZqvXI5ixZxnj6rMLk6lfvSl5sny86q7Ys1EJVBn7+lbf
 6aAoFCZeqwfC/9XRXxXvNvm9wbSKSwHmvnF115cj3GdL2Ckxbf622HNllCh49NRzsg/G
 NSAWv9RGbv24yanfNaQtnz9CVSNHKlbbRNRn1T8Uuvkmm6PVVX+aaW1kuRqX3UbQ6Fvi
 zUBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:date:from:to:cc:subject:message-id
 :references:mime-version:content-disposition:in-reply-to:user-agent;
 bh=wGqpmPrazCpPrJcV66/z/PV6F49p4WnH634KQJpHmPA=;
 b=NhroUU2Fu2lLiepg7Lu7pY5LiVoKvh7iokreE1EA+fgXyN3weewPtzpID5m6kX9Eyy
 GK6vCIKcy22RmHew2RPyt27EtbfIolrG4R/QWBx05twoKKGb7wwIXzknBSBoqFNXJCiN
 n1O/gIQwAqdzaNw9hmODg4quhE767FW3A34LPfOc0UnoCxLM0No0NRZPet+NJU5V2YoF
 WJvJ5uF1Lbs03PB6zgXJuchKKbL5ffTQgxuXE1UnqbxWEDjR9eqlGYyeMDRXMsq81Vvd
 d7rbFva92+GMra0yg9DpMkyoAfDeTPjR1ulLTnaGJvSqXry7TR3oUgm9ail5Qbqa0Wek
 mOTA==
X-Gm-Message-State: AElRT7E3gomJ1lwArRHnUwEGJuTLfLlYBhZLktI3Tqk1qo10aFWTiLhi
 MnMbluFbxTLiq9pW/i+SgvPbzw==
X-Google-Smtp-Source: AIpwx4/4pLhXsPSm3lK96bdcr5aJFmqQcPDcoWdnCBgCibVjnNduXXmUn/AZ1fwjWbPqQ2nNJMNQzQ==
X-Received: by 10.107.160.76 with SMTP id j73mr21086553ioe.207.1522244431362; 
 Wed, 28 Mar 2018 06:40:31 -0700 (PDT)
Received: from raichu (toroon0560w-lp130-01-174-88-76-83.dsl.bell.ca.
 [174.88.76.83])
 by smtp.gmail.com with ESMTPSA id 9sm1303260ioe.7.2018.03.28.06.40.30
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 28 Mar 2018 06:40:30 -0700 (PDT)
Sender: Mark Johnston 
Date: Wed, 28 Mar 2018 09:40:25 -0400
From: Mark Johnston 
To: Antoine Brodin 
Cc: src-committers , svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org,
 re 
Subject: Re: svn commit: r331551 -
 stable/11/cddl/contrib/opensolaris/lib/libdtrace/common
Message-ID: <20180328134017.GA29231@raichu>
References: <201803261517.w2QFHV8J057346@repo.freebsd.org>
 
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: 
User-Agent: Mutt/1.9.4 (2018-02-28)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 13:40:32 -0000

On Wed, Mar 28, 2018 at 08:43:12AM +0000, Antoine Brodin wrote:
> On Mon, Mar 26, 2018 at 3:17 PM, Mark Johnston  wrote:
> > Author: markj
> > Date: Mon Mar 26 15:17:31 2018
> > New Revision: 331551
> > URL: https://svnweb.freebsd.org/changeset/base/331551
> >
> > Log:
> >   MFC r331222:
> >   Given hidden visibility to symbols referenced by the DOF section.
> 
> Hi,
> 
> This commit broke lang/perl* and lang/tcl* on stable/11.
> Please revert.

Done. Can you confirm that the problem doesn't appear to affect
-CURRENT? I can't reproduce these build failures there.

From owner-svn-src-all@freebsd.org  Wed Mar 28 13:41:44 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8285BF5EF95;
 Wed, 28 Mar 2018 13:41:44 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 300FD6A6E9;
 Wed, 28 Mar 2018 13:41:44 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2AE593C6D;
 Wed, 28 Mar 2018 13:41:44 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SDfikP074598;
 Wed, 28 Mar 2018 13:41:44 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SDfiGb074597;
 Wed, 28 Mar 2018 13:41:44 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803281341.w2SDfiGb074597@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Wed, 28 Mar 2018 13:41:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331670 - stable/11/sys/i386/ibcs2
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/11/sys/i386/ibcs2
X-SVN-Commit-Revision: 331670
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 13:41:44 -0000

Author: emaste
Date: Wed Mar 28 13:41:43 2018
New Revision: 331670
URL: https://svnweb.freebsd.org/changeset/base/331670

Log:
  MFC r331329: Fix kernel memory disclosure in ibcs2_getdents
  
  ibcs2_getdents() copies a dirent structure to userland.  The ibcs2
  dirent structure contains a 2 byte pad element.  This element is never
  initialized, but copied to userland none-the-less.
  
  Note that ibcs2 has not built on HEAD since r302095.
  
  Submitted by:	Domagoj Stolfa 
  Reported by:	Ilja Van Sprundel 
  Security:	Kernel memory disclosure (803)
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/sys/i386/ibcs2/ibcs2_misc.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/i386/ibcs2/ibcs2_misc.c
==============================================================================
--- stable/11/sys/i386/ibcs2/ibcs2_misc.c	Wed Mar 28 13:39:20 2018	(r331669)
+++ stable/11/sys/i386/ibcs2/ibcs2_misc.c	Wed Mar 28 13:41:43 2018	(r331670)
@@ -330,6 +330,7 @@ ibcs2_getdents(struct thread *td, struct ibcs2_getdent
 #define	BSD_DIRENT(cp)		((struct dirent *)(cp))
 #define	IBCS2_RECLEN(reclen)	(reclen + sizeof(u_short))
 
+	memset(&idb, 0, sizeof(idb));
 	error = getvnode(td, uap->fd, cap_rights_init(&rights, CAP_READ), &fp);
 	if (error != 0)
 		return (error);

From owner-svn-src-all@freebsd.org  Wed Mar 28 13:44:03 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08B06F5F342;
 Wed, 28 Mar 2018 13:44:03 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id AAA9E6AB75;
 Wed, 28 Mar 2018 13:44:02 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A58303CB0;
 Wed, 28 Mar 2018 13:44:02 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SDi2Qu075439;
 Wed, 28 Mar 2018 13:44:02 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SDi2Fp075438;
 Wed, 28 Mar 2018 13:44:02 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803281344.w2SDi2Fp075438@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Wed, 28 Mar 2018 13:44:02 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331671 - stable/10/sys/i386/ibcs2
X-SVN-Group: stable-10
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/10/sys/i386/ibcs2
X-SVN-Commit-Revision: 331671
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 13:44:03 -0000

Author: emaste
Date: Wed Mar 28 13:44:02 2018
New Revision: 331671
URL: https://svnweb.freebsd.org/changeset/base/331671

Log:
  MFC r331329: Fix kernel memory disclosure in ibcs2_getdents
  
  ibcs2_getdents() copies a dirent structure to userland.  The ibcs2
  dirent structure contains a 2 byte pad element.  This element is never
  initialized, but copied to userland none-the-less.
  
  Note that ibcs2 has not built on HEAD since r302095.
  
  Submitted by:	Domagoj Stolfa 
  Reported by:	Ilja Van Sprundel 
  Security:	Kernel memory disclosure (803)
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/10/sys/i386/ibcs2/ibcs2_misc.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/i386/ibcs2/ibcs2_misc.c
==============================================================================
--- stable/10/sys/i386/ibcs2/ibcs2_misc.c	Wed Mar 28 13:41:43 2018	(r331670)
+++ stable/10/sys/i386/ibcs2/ibcs2_misc.c	Wed Mar 28 13:44:02 2018	(r331671)
@@ -352,6 +352,7 @@ ibcs2_getdents(td, uap)
 #define	BSD_DIRENT(cp)		((struct dirent *)(cp))
 #define	IBCS2_RECLEN(reclen)	(reclen + sizeof(u_short))
 
+	memset(&idb, 0, sizeof(idb));
 	error = getvnode(td->td_proc->p_fd, uap->fd,
 	    cap_rights_init(&rights, CAP_READ), &fp);
 	if (error != 0)

From owner-svn-src-all@freebsd.org  Wed Mar 28 14:00:42 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 00F7FF6087F;
 Wed, 28 Mar 2018 14:00:42 +0000 (UTC)
 (envelope-from antoine.brodin.freebsd@gmail.com)
Received: from mail-io0-x243.google.com (mail-io0-x243.google.com
 [IPv6:2607:f8b0:4001:c06::243])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8599F6BF76;
 Wed, 28 Mar 2018 14:00:41 +0000 (UTC)
 (envelope-from antoine.brodin.freebsd@gmail.com)
Received: by mail-io0-x243.google.com with SMTP id d7so3648540ioc.11;
 Wed, 28 Mar 2018 07:00:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=LRy4taT8B4nGzs5YtWQllC2orIEMWeBdTNldDtcvg0U=;
 b=iYwA/hGmqQlqZL2//8t4KSg+7b7b0gvoi3mYmzHw2iZnlfyXy8ZT3VEXwey8eTz9GG
 MnCsN1nea33IA+dqF6CuCXqOTqbD6WW9WdMoldg6enzuxy/gVICb0QYtEY0krOzoiAWE
 mY1+9V7Ci1gWdSaHXJL1EhNXUwbZylgFyawrOuka95Rh3FT2++em/Ceh04CBLqHwOb6d
 ojp0Yv+sDoGbl5agTwzFKjmQKopQOvbJq1IXwsXKhHKQatOUaQd/L4f1CdWGL5JmCze7
 WHMh2eZxujmyOTVleaJHAGg5aC4tAuwJbFpe9fFJk43TbOgCH6y18FxjEwKOKTIk19Zg
 PCKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc;
 bh=LRy4taT8B4nGzs5YtWQllC2orIEMWeBdTNldDtcvg0U=;
 b=F6fs0iODfM898GImRJ40c7oRURe/6fgmboMZvmlsCfo63Z3CY90xDaen5gP7y3QoYy
 XYvCbXmmLpNWc2NTBebtPerjH0Fx7jfsltqbkUTpCq6W/R1e/aGUeJDrr2buNI6PkraX
 +qQkbQIzRnNMU7ToGcmLBAK1mpQNA4S1lIEVi6LtI2WhP/S5VNhBPq3ryovR48ERD5t2
 nVhlkkW0GmAtRuFPd+UGBH7najqcFqMYQ4sDbmd2vFfwlMXzJNTc6FPduzOBUo0/nONs
 O4o32GIgFtwcbTGmyboLqPeZYVuCJMuDGsf3aVKkL8/E3BWlnglAErU8asUvnBngK1gK
 Cb/A==
X-Gm-Message-State: AElRT7EmUQfH8tREnDForydo6zB1FTHsa0d+WWkEtSmakaA8fI1M22D8
 9aFj/KrPVeeixc4l2+PhcWPjqRXzgIOU6o4CO8cGzA==
X-Google-Smtp-Source: AG47ELtt1Wdwox4pVENHdrdakPQa1CaWo6UX3104ZEojxzfPWIOhUQFY5qsc0IkbpT7pSrxfoW51IVxwLIZsMNTw3Cs=
X-Received: by 10.107.28.15 with SMTP id c15mr50411670ioc.247.1522245640468;
 Wed, 28 Mar 2018 07:00:40 -0700 (PDT)
MIME-Version: 1.0
Sender: antoine.brodin.freebsd@gmail.com
Received: by 10.107.184.135 with HTTP; Wed, 28 Mar 2018 07:00:39 -0700 (PDT)
In-Reply-To: <20180328134017.GA29231@raichu>
References: <201803261517.w2QFHV8J057346@repo.freebsd.org>
 
 <20180328134017.GA29231@raichu>
From: Antoine Brodin 
Date: Wed, 28 Mar 2018 14:00:39 +0000
X-Google-Sender-Auth: RZsrSbiaBfCqIHzMLOKFOK_Iowc
Message-ID: 
Subject: Re: svn commit: r331551 -
 stable/11/cddl/contrib/opensolaris/lib/libdtrace/common
To: Mark Johnston 
Cc: src-committers , svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org, 
 re 
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 14:00:42 -0000

On Wed, Mar 28, 2018 at 1:40 PM, Mark Johnston  wrote:
> On Wed, Mar 28, 2018 at 08:43:12AM +0000, Antoine Brodin wrote:
>> On Mon, Mar 26, 2018 at 3:17 PM, Mark Johnston  wrote:
>> > Author: markj
>> > Date: Mon Mar 26 15:17:31 2018
>> > New Revision: 331551
>> > URL: https://svnweb.freebsd.org/changeset/base/331551
>> >
>> > Log:
>> >   MFC r331222:
>> >   Given hidden visibility to symbols referenced by the DOF section.
>>
>> Hi,
>>
>> This commit broke lang/perl* and lang/tcl* on stable/11.
>> Please revert.
>
> Done. Can you confirm that the problem doesn't appear to affect
> -CURRENT? I can't reproduce these build failures there.

Thanks.
I didn't notice any new failure when it was committed in head.

Antoine

From owner-svn-src-all@freebsd.org  Wed Mar 28 14:00:50 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED185F608D7;
 Wed, 28 Mar 2018 14:00:49 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id C6B856C047;
 Wed, 28 Mar 2018 14:00:47 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 591B53E69;
 Wed, 28 Mar 2018 14:00:47 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SE0kGM081408;
 Wed, 28 Mar 2018 14:00:46 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SE0kjI081407;
 Wed, 28 Mar 2018 14:00:46 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201803281400.w2SE0kjI081407@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston 
Date: Wed, 28 Mar 2018 14:00:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331672 - stable/11/sys/kern
X-SVN-Group: stable-11
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: stable/11/sys/kern
X-SVN-Commit-Revision: 331672
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 14:00:50 -0000

Author: markj
Date: Wed Mar 28 14:00:46 2018
New Revision: 331672
URL: https://svnweb.freebsd.org/changeset/base/331672

Log:
  MFC r331536:
  Use LIST_FOREACH_SAFE in sleepq_chains_remove_matching().

Modified:
  stable/11/sys/kern/subr_sleepqueue.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/subr_sleepqueue.c
==============================================================================
--- stable/11/sys/kern/subr_sleepqueue.c	Wed Mar 28 13:44:02 2018	(r331671)
+++ stable/11/sys/kern/subr_sleepqueue.c	Wed Mar 28 14:00:46 2018	(r331672)
@@ -1098,7 +1098,7 @@ void
 sleepq_chains_remove_matching(bool (*matches)(struct thread *))
 {
 	struct sleepqueue_chain *sc;
-	struct sleepqueue *sq;
+	struct sleepqueue *sq, *sq1;
 	int i, wakeup_swapper;
 
 	wakeup_swapper = 0;
@@ -1107,7 +1107,7 @@ sleepq_chains_remove_matching(bool (*matches)(struct t
 			continue;
 		}
 		mtx_lock_spin(&sc->sc_lock);
-		LIST_FOREACH(sq, &sc->sc_queues, sq_hash) {
+		LIST_FOREACH_SAFE(sq, &sc->sc_queues, sq_hash, sq1) {
 			for (i = 0; i < NR_SLEEPQS; ++i) {
 				wakeup_swapper |= sleepq_remove_matching(sq, i,
 				    matches, 0);

From owner-svn-src-all@freebsd.org  Wed Mar 28 14:01:27 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9A31F609DE;
 Wed, 28 Mar 2018 14:01:26 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 9B8886C334;
 Wed, 28 Mar 2018 14:01:26 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9658F3EA7;
 Wed, 28 Mar 2018 14:01:26 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SE1QrJ083061;
 Wed, 28 Mar 2018 14:01:26 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SE1QOZ083060;
 Wed, 28 Mar 2018 14:01:26 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201803281401.w2SE1QOZ083060@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston 
Date: Wed, 28 Mar 2018 14:01:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331673 - stable/11/sys/net
X-SVN-Group: stable-11
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: stable/11/sys/net
X-SVN-Commit-Revision: 331673
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 14:01:27 -0000

Author: markj
Date: Wed Mar 28 14:01:26 2018
New Revision: 331673
URL: https://svnweb.freebsd.org/changeset/base/331673

Log:
  MFC r331538:
  Clamp IFLIB_RX_COPY_THRESH to MHLEN in iflib_rxd_pkt_get().

Modified:
  stable/11/sys/net/iflib.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/net/iflib.c
==============================================================================
--- stable/11/sys/net/iflib.c	Wed Mar 28 14:00:46 2018	(r331672)
+++ stable/11/sys/net/iflib.c	Wed Mar 28 14:01:26 2018	(r331673)
@@ -2056,7 +2056,7 @@ iflib_rxd_pkt_get(iflib_rxq_t rxq, if_rxd_info_t ri)
 
 	/* should I merge this back in now that the two paths are basically duplicated? */
 	if (ri->iri_nfrags == 1 &&
-	    ri->iri_frags[0].irf_len <= IFLIB_RX_COPY_THRESH) {
+	    ri->iri_frags[0].irf_len <= MIN(IFLIB_RX_COPY_THRESH, MHLEN)) {
 		sd = rxd_frag_to_sd(rxq, &ri->iri_frags[0], NULL, FALSE);
 		m = sd->ifsd_m;
 		sd->ifsd_m = NULL;

From owner-svn-src-all@freebsd.org  Wed Mar 28 14:21:26 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3585CF62845;
 Wed, 28 Mar 2018 14:21:26 +0000 (UTC)
 (envelope-from markjdb@gmail.com)
Received: from mail-it0-x22d.google.com (mail-it0-x22d.google.com
 [IPv6:2607:f8b0:4001:c0b::22d])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B66936D43C;
 Wed, 28 Mar 2018 14:21:25 +0000 (UTC)
 (envelope-from markjdb@gmail.com)
Received: by mail-it0-x22d.google.com with SMTP id v194-v6so3880010itb.0;
 Wed, 28 Mar 2018 07:21:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:date:from:to:cc:subject:message-id:references:mime-version
 :content-disposition:in-reply-to:user-agent;
 bh=LSnsV3eGSkNjlbxWWGRgMdHrxINvMSU3UT0w8GBSITU=;
 b=q4SC+woQJDc5fYzot94+0aFr98Ef5yFOUNjT4ovGZBwzLw3zAL8xqarYiShxxPqDq9
 D/XJ14Sv5zLSyQSnJXXAiMOSZ2wp6IIstOv2DOGbOF4TuyYLEv6erhU5JtitdEgeeqcY
 8gsxwpKIgtk7gINtDbhNluouzQRzoqzTWNP4vcEjkpu2JLGykMsgGRzk1ntAGezn50X4
 9TYNJkf+9dJxbpiQMbj2ZQN/FbwV6+X7g40AY3PV+Wqw4jQlVEIfvPQto6H6l92f70x8
 aUYKrObOq5Kdclq8kmm4JrnIeyxNtbxb1PCErWSsPN+SEeDXTsfvdk/MusUZBQXd+PJI
 WKhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:date:from:to:cc:subject:message-id
 :references:mime-version:content-disposition:in-reply-to:user-agent;
 bh=LSnsV3eGSkNjlbxWWGRgMdHrxINvMSU3UT0w8GBSITU=;
 b=MVIH3UZb00Ukfior3dL30ss2OF/M2kJtATKxqPB27X0gRAtIdUBEoYHLreaKppK0KM
 ON2y3kT7FZKIO1sXd+RY0elbPLrQUaULspUi6X1vXqOAJtULwnvlMqLVhIktFNsVLBin
 QQFjVhWub+mC3kqJHP+gtA6jgzubOvmhVC6J2Z+oc9O7gcQpjtoKQg01askeUH8PDi0D
 EKjIxG++p9DOWHCr18ja6Iv3wEwMVtF+6m9gSaL+iS/Ma1R2tcaO9mnsViUuXBukGbDq
 MjfA7+k2jDmTSwtkB8wYmvj8WzU3AKvcqJP9iGya+1o+kvPnLrimi+XIjEdM92nzd/pD
 JLiw==
X-Gm-Message-State: AElRT7HbD6pMm9Fk6HNQxSGaS/yLim1481BUjAmSfjVYMIfNktHs3Dm+
 nmQpKdHk07H7r92n6pRJnE18HQ==
X-Google-Smtp-Source: AIpwx4+eiLM0gEApou565LjWSwzT+D724iliMme9FCaLH4OBpC1QLqyfkc5l6RYfYaTPvT5+ixQcQw==
X-Received: by 2002:a24:c581:: with SMTP id
 f123-v6mr3506622itg.113.1522246884855; 
 Wed, 28 Mar 2018 07:21:24 -0700 (PDT)
Received: from raichu (toroon0560w-lp130-01-174-88-76-83.dsl.bell.ca.
 [174.88.76.83])
 by smtp.gmail.com with ESMTPSA id x126-v6sm2532550itf.5.2018.03.28.07.21.23
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 28 Mar 2018 07:21:24 -0700 (PDT)
Sender: Mark Johnston 
Date: Wed, 28 Mar 2018 10:21:22 -0400
From: Mark Johnston 
To: Antoine Brodin 
Cc: src-committers , svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org,
 re 
Subject: Re: svn commit: r331551 -
 stable/11/cddl/contrib/opensolaris/lib/libdtrace/common
Message-ID: <20180328142122.GB29231@raichu>
References: <201803261517.w2QFHV8J057346@repo.freebsd.org>
 
 <20180328134017.GA29231@raichu>
 
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: 
User-Agent: Mutt/1.9.4 (2018-02-28)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 14:21:26 -0000

On Wed, Mar 28, 2018 at 02:00:39PM +0000, Antoine Brodin wrote:
> On Wed, Mar 28, 2018 at 1:40 PM, Mark Johnston  wrote:
> > On Wed, Mar 28, 2018 at 08:43:12AM +0000, Antoine Brodin wrote:
> >> On Mon, Mar 26, 2018 at 3:17 PM, Mark Johnston  wrote:
> >> > Author: markj
> >> > Date: Mon Mar 26 15:17:31 2018
> >> > New Revision: 331551
> >> > URL: https://svnweb.freebsd.org/changeset/base/331551
> >> >
> >> > Log:
> >> >   MFC r331222:
> >> >   Given hidden visibility to symbols referenced by the DOF section.
> >>
> >> Hi,
> >>
> >> This commit broke lang/perl* and lang/tcl* on stable/11.
> >> Please revert.
> >
> > Done. Can you confirm that the problem doesn't appear to affect
> > -CURRENT? I can't reproduce these build failures there.
> 
> Thanks.
> I didn't notice any new failure when it was committed in head.

I see now that the change shouldn't have been merged in the first place,
as it is a fixup for r313262, which is only in head. Sorry for the
breakage.

From owner-svn-src-all@freebsd.org  Wed Mar 28 14:35:25 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C84B5F63DBB;
 Wed, 28 Mar 2018 14:35:25 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 552916E48A;
 Wed, 28 Mar 2018 14:35:25 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4C2164511;
 Wed, 28 Mar 2018 14:35:25 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SEZPH7001335;
 Wed, 28 Mar 2018 14:35:25 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SEZPWS001334;
 Wed, 28 Mar 2018 14:35:25 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803281435.w2SEZPWS001334@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Wed, 28 Mar 2018 14:35:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331678 - stable/11/lib/libc/sys
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/11/lib/libc/sys
X-SVN-Commit-Revision: 331678
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 14:35:26 -0000

Author: emaste
Date: Wed Mar 28 14:35:24 2018
New Revision: 331678
URL: https://svnweb.freebsd.org/changeset/base/331678

Log:
  MFC Capsicum open(2) and openat(2) documentation
  
  r306537 by cem: open.2: Document Capsicum behavior
  
  Document open(2) and openat(2) behavior in Capsicum capability mode.
  
  Sponsored by:	Dell EMC Isilon
  
  r323622 by emaste: open(2): update ENOTCAPABLE description for .. lookups
  
  After r308732 (MFC of r308212) Capsicum permits .. lookups in capability
  mode, as long as path component traversal does not escape the directory
  corresponding to the provided file descriptor.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/lib/libc/sys/open.2
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libc/sys/open.2
==============================================================================
--- stable/11/lib/libc/sys/open.2	Wed Mar 28 14:33:35 2018	(r331677)
+++ stable/11/lib/libc/sys/open.2	Wed Mar 28 14:35:24 2018	(r331678)
@@ -28,7 +28,7 @@
 .\"     @(#)open.2	8.2 (Berkeley) 11/16/93
 .\" $FreeBSD$
 .\"
-.Dd November 22, 2016
+.Dd March 28, 2018
 .Dt OPEN 2
 .Os
 .Sh NAME
@@ -95,6 +95,28 @@ parameter, the current working directory is used
 and the behavior is identical to a call to
 .Fn open .
 .Pp
+In
+.Xr capsicum 4
+capability mode,
+.Fn open
+is not permitted.
+The
+.Fa path
+argument to
+.Fn openat
+must be strictly relative to a file descriptor
+.Fa fd ,
+as defined in
+.Pa sys/kern/vfs_lookup.c .
+.Fa path
+must not be an absolute path and must not contain ".." components.
+Additionally, no symbolic link in
+.Fa path
+may contain ".." components either.
+.Fa fd
+must not be
+.Dv AT_FDCWD .
+.Pp
 The flags specified are formed by
 .Em or Ns 'ing
 the following values
@@ -457,6 +479,17 @@ nor a file descriptor associated with a directory.
 .It Bq Er ENOTDIR
 .Dv O_DIRECTORY
 is specified and the file is not a directory.
+.It Bq Er ECAPMODE
+.Dv AT_FDCWD
+is specified and the process is in capability mode.
+.It Bq Er ECAPMODE
+.Fn open
+was called and the process is in capability mode.
+.It Bq Er ENOTCAPABLE
+.Fa path
+is an absolute path or contained a ".." component leading to a
+directory outside of the directory hierarchy specified by
+.Fa fd .
 .El
 .Sh SEE ALSO
 .Xr chmod 2 ,

From owner-svn-src-all@freebsd.org  Wed Mar 28 14:39:57 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26647F64458;
 Wed, 28 Mar 2018 14:39:57 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id CF8F46E835;
 Wed, 28 Mar 2018 14:39:56 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A97874512;
 Wed, 28 Mar 2018 14:39:56 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SEduJg001539;
 Wed, 28 Mar 2018 14:39:56 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SEduwu001535;
 Wed, 28 Mar 2018 14:39:56 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803281439.w2SEduwu001535@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Wed, 28 Mar 2018 14:39:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331679 - in stable/11: lib/libc/sys sys/compat/freebsd32
 sys/kern
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: in stable/11: lib/libc/sys sys/compat/freebsd32 sys/kern
X-SVN-Commit-Revision: 331679
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 14:39:57 -0000

Author: emaste
Date: Wed Mar 28 14:39:56 2018
New Revision: 331679
URL: https://svnweb.freebsd.org/changeset/base/331679

Log:
  MFC r324560: allow posix_fallocate in capability mode
  
  posix_fallocate is logically equivalent to writing zero blocks to the
  desired file size and there is no reason to prevent calling it in
  capability mode. posix_fallocate already checked for the CAP_WRITE
  right, so we merely need to list it in capabilities.conf.
  
  Also MFC r324564: allow posix_fallocate in 32-bit compat capability mode
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/lib/libc/sys/posix_fallocate.2
  stable/11/sys/compat/freebsd32/capabilities.conf
  stable/11/sys/kern/capabilities.conf
  stable/11/sys/kern/vfs_syscalls.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libc/sys/posix_fallocate.2
==============================================================================
--- stable/11/lib/libc/sys/posix_fallocate.2	Wed Mar 28 14:35:24 2018	(r331678)
+++ stable/11/lib/libc/sys/posix_fallocate.2	Wed Mar 28 14:39:56 2018	(r331679)
@@ -28,7 +28,7 @@
 .\"     @(#)open.2	8.2 (Berkeley) 11/16/93
 .\" $FreeBSD$
 .\"
-.Dd January 23, 2014
+.Dd October 12, 2017
 .Dt POSIX_FALLOCATE 2
 .Os
 .Sh NAME
@@ -118,6 +118,10 @@ argument does not refer to a regular file.
 .It Bq Er ENOSPC
 There is insufficient free space remaining on the file system storage
 media.
+.It Bq Er ENOTCAPABLE
+The file descriptor
+.Fa fd
+has insufficient rights.
 .It Bq Er ESPIPE
 The
 .Fa fd

Modified: stable/11/sys/compat/freebsd32/capabilities.conf
==============================================================================
--- stable/11/sys/compat/freebsd32/capabilities.conf	Wed Mar 28 14:35:24 2018	(r331678)
+++ stable/11/sys/compat/freebsd32/capabilities.conf	Wed Mar 28 14:39:56 2018	(r331679)
@@ -196,6 +196,7 @@ pdkill
 freebsd32_pipe
 pipe2
 poll
+freebsd32_posix_fallocate
 freebsd32_pread
 freebsd32_preadv
 profil

Modified: stable/11/sys/kern/capabilities.conf
==============================================================================
--- stable/11/sys/kern/capabilities.conf	Wed Mar 28 14:35:24 2018	(r331678)
+++ stable/11/sys/kern/capabilities.conf	Wed Mar 28 14:39:56 2018	(r331679)
@@ -495,6 +495,7 @@ poll
 ##
 ## Allow I/O-related file descriptors, subject to capability rights.
 ##
+posix_fallocate
 pread
 preadv
 

Modified: stable/11/sys/kern/vfs_syscalls.c
==============================================================================
--- stable/11/sys/kern/vfs_syscalls.c	Wed Mar 28 14:35:24 2018	(r331678)
+++ stable/11/sys/kern/vfs_syscalls.c	Wed Mar 28 14:39:56 2018	(r331679)
@@ -4163,7 +4163,7 @@ kern_posix_fallocate(struct thread *td, int fd, off_t 
 	/* Check for wrap. */
 	if (offset > OFF_MAX - len)
 		return (EFBIG);
-	error = fget(td, fd, cap_rights_init(&rights, CAP_WRITE), &fp);
+	error = fget(td, fd, cap_rights_init(&rights, CAP_PWRITE), &fp);
 	if (error != 0)
 		return (error);
 	if ((fp->f_ops->fo_flags & DFLAG_SEEKABLE) == 0) {

From owner-svn-src-all@freebsd.org  Wed Mar 28 14:44:46 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F045F64E7C;
 Wed, 28 Mar 2018 14:44:46 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 2DC256EEAF;
 Wed, 28 Mar 2018 14:44:46 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 248A446A0;
 Wed, 28 Mar 2018 14:44:46 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SEijVE006324;
 Wed, 28 Mar 2018 14:44:45 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SEijmh006322;
 Wed, 28 Mar 2018 14:44:45 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803281444.w2SEijmh006322@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Wed, 28 Mar 2018 14:44:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331680 - in stable/11/sys: compat/freebsd32 kern
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: in stable/11/sys: compat/freebsd32 kern
X-SVN-Commit-Revision: 331680
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 14:44:46 -0000

Author: emaste
Date: Wed Mar 28 14:44:45 2018
New Revision: 331680
URL: https://svnweb.freebsd.org/changeset/base/331680

Log:
  Regen *sysent.c after r331679 - posix_fallocate in capability mode
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/sys/compat/freebsd32/freebsd32_sysent.c
  stable/11/sys/kern/init_sysent.c

Modified: stable/11/sys/compat/freebsd32/freebsd32_sysent.c
==============================================================================
--- stable/11/sys/compat/freebsd32/freebsd32_sysent.c	Wed Mar 28 14:39:56 2018	(r331679)
+++ stable/11/sys/compat/freebsd32/freebsd32_sysent.c	Wed Mar 28 14:44:45 2018	(r331680)
@@ -596,11 +596,11 @@ struct sysent freebsd32_sysent[] = {
 	{ AS(rctl_add_rule_args), (sy_call_t *)sys_rctl_add_rule, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 528 = rctl_add_rule */
 	{ AS(rctl_remove_rule_args), (sy_call_t *)sys_rctl_remove_rule, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 529 = rctl_remove_rule */
 #ifdef PAD64_REQUIRED
-	{ AS(freebsd32_posix_fallocate_args), (sy_call_t *)freebsd32_posix_fallocate, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 530 = freebsd32_posix_fallocate */
+	{ AS(freebsd32_posix_fallocate_args), (sy_call_t *)freebsd32_posix_fallocate, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC },	/* 530 = freebsd32_posix_fallocate */
 	{ AS(freebsd32_posix_fadvise_args), (sy_call_t *)freebsd32_posix_fadvise, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 531 = freebsd32_posix_fadvise */
 	{ AS(freebsd32_wait6_args), (sy_call_t *)freebsd32_wait6, AUE_WAIT6, NULL, 0, 0, 0, SY_THR_STATIC },	/* 532 = freebsd32_wait6 */
 #else
-	{ AS(freebsd32_posix_fallocate_args), (sy_call_t *)freebsd32_posix_fallocate, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 530 = freebsd32_posix_fallocate */
+	{ AS(freebsd32_posix_fallocate_args), (sy_call_t *)freebsd32_posix_fallocate, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC },	/* 530 = freebsd32_posix_fallocate */
 	{ AS(freebsd32_posix_fadvise_args), (sy_call_t *)freebsd32_posix_fadvise, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 531 = freebsd32_posix_fadvise */
 	{ AS(freebsd32_wait6_args), (sy_call_t *)freebsd32_wait6, AUE_WAIT6, NULL, 0, 0, 0, SY_THR_STATIC },	/* 532 = freebsd32_wait6 */
 #endif

Modified: stable/11/sys/kern/init_sysent.c
==============================================================================
--- stable/11/sys/kern/init_sysent.c	Wed Mar 28 14:39:56 2018	(r331679)
+++ stable/11/sys/kern/init_sysent.c	Wed Mar 28 14:44:45 2018	(r331680)
@@ -575,7 +575,7 @@ struct sysent sysent[] = {
 	{ AS(rctl_get_limits_args), (sy_call_t *)sys_rctl_get_limits, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 527 = rctl_get_limits */
 	{ AS(rctl_add_rule_args), (sy_call_t *)sys_rctl_add_rule, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 528 = rctl_add_rule */
 	{ AS(rctl_remove_rule_args), (sy_call_t *)sys_rctl_remove_rule, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 529 = rctl_remove_rule */
-	{ AS(posix_fallocate_args), (sy_call_t *)sys_posix_fallocate, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 530 = posix_fallocate */
+	{ AS(posix_fallocate_args), (sy_call_t *)sys_posix_fallocate, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC },	/* 530 = posix_fallocate */
 	{ AS(posix_fadvise_args), (sy_call_t *)sys_posix_fadvise, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC },	/* 531 = posix_fadvise */
 	{ AS(wait6_args), (sy_call_t *)sys_wait6, AUE_WAIT6, NULL, 0, 0, 0, SY_THR_STATIC },	/* 532 = wait6 */
 	{ AS(cap_rights_limit_args), (sy_call_t *)sys_cap_rights_limit, AUE_CAP_RIGHTS_LIMIT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC },	/* 533 = cap_rights_limit */

From owner-svn-src-all@freebsd.org  Wed Mar 28 16:14:28 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CE21FF6A976;
 Wed, 28 Mar 2018 16:14:28 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170])
 (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 786D173DB0;
 Wed, 28 Mar 2018 16:14:28 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215])
 by mail.baldwin.cx (Postfix) with ESMTPSA id E8C8510AC13;
 Wed, 28 Mar 2018 12:14:19 -0400 (EDT)
From: John Baldwin 
To: Jeff Roberson 
Cc: Li-Wen Hsu , "O. Hartmann" ,
 Jeff Roberson , pho@freebsd.org, svn-src-head@freebsd.org,
 svn-src-all@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r331606 - in head/sys: amd64/include i386/include
 x86/x86 x86/xen
Date: Wed, 28 Mar 2018 09:08:19 -0700
Message-ID: <2531747.pQxc7AOloZ@ralph.baldwin.cx>
User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; )
In-Reply-To: 
References: <201803270337.w2R3b4iv035285@repo.freebsd.org>
 <20180327101309.GA75720@freefall.freebsd.org>
 
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3
 (mail.baldwin.cx); Wed, 28 Mar 2018 12:14:20 -0400 (EDT)
X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx
X-Virus-Status: Clean
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 16:14:29 -0000

On Tuesday, March 27, 2018 11:07:22 AM Jeff Roberson wrote:
> On Tue, 27 Mar 2018, Li-Wen Hsu wrote:
> 
> > On Mon, Mar 26, 2018 at 20:35:12 -1000, Jeff Roberson wrote:
> >> The patch has been on my branch for weeks and has been tested by a half
> >> dozen people.  I'm sorry it does not work for you.  If you reverted 331605
> >> the change that followed should not have built properly.  Did you build
> >> cleanly?  Can you share your kernel config?
> >>
> >> I tried with and without EARLY_AP_STARTUP and with and without NUMA.  I'm
> >> not having any trouble booting.  Did you make cleandepend && make depend?
> >
> > It also hangs in our testing system:
> >
> > https://ci.freebsd.org/job/FreeBSD-head-amd64-test/6817/console
> > https://ci.freebsd.org/job/FreeBSD-head-i386-test/1000/console
> >
> > It is built cleanly and uses unmodified GENERIC config.
> >
> > The artifacts used are available here:
> >
> > https://artifact.ci.freebsd.org/snapshot/head/r331606/amd64/amd64/
> > https://artifact.ci.freebsd.org/snapshot/head/r331606/i386/i386/
> >
> > Hope these information help.
> 
> Could someone who was experiencing the hang try the enclosed patch?  I can 
> only verify that it continues to boot for me but I believe this fixes the 
> bug on other systems.
> 
> I believe the issue was that cpuset_domain[0] was initialized too late on 
> some systems.  It depended on what kind of hardware was present and which 
> sysinit with SI_ORDER_ANY ran first.

Hmm, does this work if you don't use EARLY_AP_STARTUP?  I think all_cpus
isn't set yet (or only contains the BSP) when cpuset_thread0 is run if you
don't have EARLY_AP_STARTUP (and EARLY_AP_STARTUP is only supported on
x86 currently)

-- 
John Baldwin

From owner-svn-src-all@freebsd.org  Wed Mar 28 16:24:57 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1898EF6B240;
 Wed, 28 Mar 2018 16:24:57 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BEA05748B4;
 Wed, 28 Mar 2018 16:24:56 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B55B856B8;
 Wed, 28 Mar 2018 16:24:56 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SGOuN9056376;
 Wed, 28 Mar 2018 16:24:56 GMT (envelope-from jhb@FreeBSD.org)
Received: (from jhb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SGOuqu056373;
 Wed, 28 Mar 2018 16:24:56 GMT (envelope-from jhb@FreeBSD.org)
Message-Id: <201803281624.w2SGOuqu056373@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org
 using -f
From: John Baldwin 
Date: Wed, 28 Mar 2018 16:24:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331681 - in head/sys: amd64/amd64 i386/i386
X-SVN-Group: head
X-SVN-Commit-Author: jhb
X-SVN-Commit-Paths: in head/sys: amd64/amd64 i386/i386
X-SVN-Commit-Revision: 331681
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 16:24:57 -0000

Author: jhb
Date: Wed Mar 28 16:24:56 2018
New Revision: 331681
URL: https://svnweb.freebsd.org/changeset/base/331681

Log:
  Fix kernel builds without options DDB after r331650.
  
  Reported by:	cy

Modified:
  head/sys/amd64/amd64/machdep.c
  head/sys/i386/i386/machdep.c

Modified: head/sys/amd64/amd64/machdep.c
==============================================================================
--- head/sys/amd64/amd64/machdep.c	Wed Mar 28 14:44:45 2018	(r331680)
+++ head/sys/amd64/amd64/machdep.c	Wed Mar 28 16:24:56 2018	(r331681)
@@ -127,6 +127,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #ifdef SMP
 #include 

Modified: head/sys/i386/i386/machdep.c
==============================================================================
--- head/sys/i386/i386/machdep.c	Wed Mar 28 14:44:45 2018	(r331680)
+++ head/sys/i386/i386/machdep.c	Wed Mar 28 16:24:56 2018	(r331681)
@@ -129,6 +129,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #ifdef PERFMON

From owner-svn-src-all@freebsd.org  Wed Mar 28 16:28:23 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 00A76F6B477;
 Wed, 28 Mar 2018 16:28:23 +0000 (UTC)
 (envelope-from bdrewery@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 1E7DC74C6B;
 Wed, 28 Mar 2018 16:28:22 +0000 (UTC)
 (envelope-from bdrewery@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 13E8056BF;
 Wed, 28 Mar 2018 16:28:20 +0000 (UTC)
 (envelope-from bdrewery@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SGSKE6056661;
 Wed, 28 Mar 2018 16:28:20 GMT (envelope-from bdrewery@FreeBSD.org)
Received: (from bdrewery@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SGSKPa056658;
 Wed, 28 Mar 2018 16:28:20 GMT (envelope-from bdrewery@FreeBSD.org)
Message-Id: <201803281628.w2SGSKPa056658@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to
 bdrewery@FreeBSD.org using -f
From: Bryan Drewery 
Date: Wed, 28 Mar 2018 16:28:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331682 - in head: share/mk sys/conf
X-SVN-Group: head
X-SVN-Commit-Author: bdrewery
X-SVN-Commit-Paths: in head: share/mk sys/conf
X-SVN-Commit-Revision: 331682
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 16:28:23 -0000

Author: bdrewery
Date: Wed Mar 28 16:28:20 2018
New Revision: 331682
URL: https://svnweb.freebsd.org/changeset/base/331682

Log:
  Avoid upwards directory walk in kernel build for finding known SYSDIR.
  
  Sponsored by:	Dell EMC

Modified:
  head/share/mk/bsd.dtb.mk
  head/share/mk/bsd.kmod.mk
  head/sys/conf/kmod.mk

Modified: head/share/mk/bsd.dtb.mk
==============================================================================
--- head/share/mk/bsd.dtb.mk	Wed Mar 28 16:24:56 2018	(r331681)
+++ head/share/mk/bsd.dtb.mk	Wed Mar 28 16:28:20 2018	(r331682)
@@ -1,6 +1,7 @@
 # $FreeBSD$
 
 # Search for kernel source tree in standard places.
+.if empty(KERNBUILDDIR)
 .for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. ${.CURDIR}/../../../.. \
     ${.CURDIR}/../../../../.. /sys /usr/src/sys
 .if !defined(SYSDIR) && exists(${_dir}/kern/) && exists(${_dir}/conf/kmod.mk)
@@ -10,6 +11,7 @@ SYSDIR=	${_dir}
 .if !defined(SYSDIR) || !exists(${SYSDIR}/kern/) || \
     !exists(${SYSDIR}/conf/kmod.mk)
 .error Unable to locate the kernel source tree. Set SYSDIR to override.
+.endif
 .endif
 
 .include "${SYSDIR}/conf/dtb.mk"

Modified: head/share/mk/bsd.kmod.mk
==============================================================================
--- head/share/mk/bsd.kmod.mk	Wed Mar 28 16:24:56 2018	(r331681)
+++ head/share/mk/bsd.kmod.mk	Wed Mar 28 16:28:20 2018	(r331682)
@@ -1,6 +1,7 @@
 # $FreeBSD$
 
 # Search for kernel source tree in standard places.
+.if empty(KERNBUILDDIR)
 .for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. ${.CURDIR}/../../../.. \
     ${.CURDIR}/../../../../.. /sys /usr/src/sys
 .if !defined(SYSDIR) && exists(${_dir}/kern/) && exists(${_dir}/conf/kmod.mk)
@@ -10,6 +11,7 @@ SYSDIR=	${_dir:tA}
 .if !defined(SYSDIR) || !exists(${SYSDIR}/kern/) || \
     !exists(${SYSDIR}/conf/kmod.mk)
 .error Unable to locate the kernel source tree. Set SYSDIR to override.
+.endif
 .endif
 
 .include "${SYSDIR}/conf/kmod.mk"

Modified: head/sys/conf/kmod.mk
==============================================================================
--- head/sys/conf/kmod.mk	Wed Mar 28 16:24:56 2018	(r331681)
+++ head/sys/conf/kmod.mk	Wed Mar 28 16:28:20 2018	(r331682)
@@ -81,6 +81,7 @@ OBJCOPY?=	objcopy
 .include "config.mk"
 
 # Search for kernel source tree in standard places.
+.if empty(KERNBUILDDIR)
 .for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. /sys /usr/src/sys
 .if !defined(SYSDIR) && exists(${_dir}/kern/)
 SYSDIR=	${_dir:tA}
@@ -88,6 +89,7 @@ SYSDIR=	${_dir:tA}
 .endfor
 .if !defined(SYSDIR) || !exists(${SYSDIR}/kern/)
 .error "can't find kernel source tree"
+.endif
 .endif
 
 .SUFFIXES: .out .o .c .cc .cxx .C .y .l .s .S .m

From owner-svn-src-all@freebsd.org  Wed Mar 28 16:28:25 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E805EF6B484;
 Wed, 28 Mar 2018 16:28:24 +0000 (UTC)
 (envelope-from bdrewery@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 9DA0074CA4;
 Wed, 28 Mar 2018 16:28:24 +0000 (UTC)
 (envelope-from bdrewery@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7F08E56C0;
 Wed, 28 Mar 2018 16:28:24 +0000 (UTC)
 (envelope-from bdrewery@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SGSOGS056709;
 Wed, 28 Mar 2018 16:28:24 GMT (envelope-from bdrewery@FreeBSD.org)
Received: (from bdrewery@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SGSOqN056705;
 Wed, 28 Mar 2018 16:28:24 GMT (envelope-from bdrewery@FreeBSD.org)
Message-Id: <201803281628.w2SGSOqN056705@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to
 bdrewery@FreeBSD.org using -f
From: Bryan Drewery 
Date: Wed, 28 Mar 2018 16:28:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331683 - in head: share/mk sys/conf
X-SVN-Group: head
X-SVN-Commit-Author: bdrewery
X-SVN-Commit-Paths: in head: share/mk sys/conf
X-SVN-Commit-Revision: 331683
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 16:28:25 -0000

Author: bdrewery
Date: Wed Mar 28 16:28:24 2018
New Revision: 331683
URL: https://svnweb.freebsd.org/changeset/base/331683

Log:
  Avoid looping if SYSDIR already known.
  
  Sponsored by:	Dell EMC

Modified:
  head/share/mk/bsd.dtb.mk
  head/share/mk/bsd.kmod.mk
  head/sys/conf/kmod.mk

Modified: head/share/mk/bsd.dtb.mk
==============================================================================
--- head/share/mk/bsd.dtb.mk	Wed Mar 28 16:28:20 2018	(r331682)
+++ head/share/mk/bsd.dtb.mk	Wed Mar 28 16:28:24 2018	(r331683)
@@ -2,12 +2,14 @@
 
 # Search for kernel source tree in standard places.
 .if empty(KERNBUILDDIR)
+.if !defined(SYSDIR)
 .for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. ${.CURDIR}/../../../.. \
     ${.CURDIR}/../../../../.. /sys /usr/src/sys
-.if !defined(SYSDIR) && exists(${_dir}/kern/) && exists(${_dir}/conf/kmod.mk)
+.if exists(${_dir}/kern/) && exists(${_dir}/conf/kmod.mk)
 SYSDIR=	${_dir}
 .endif
 .endfor
+.endif
 .if !defined(SYSDIR) || !exists(${SYSDIR}/kern/) || \
     !exists(${SYSDIR}/conf/kmod.mk)
 .error Unable to locate the kernel source tree. Set SYSDIR to override.

Modified: head/share/mk/bsd.kmod.mk
==============================================================================
--- head/share/mk/bsd.kmod.mk	Wed Mar 28 16:28:20 2018	(r331682)
+++ head/share/mk/bsd.kmod.mk	Wed Mar 28 16:28:24 2018	(r331683)
@@ -2,12 +2,14 @@
 
 # Search for kernel source tree in standard places.
 .if empty(KERNBUILDDIR)
+.if !defined(SYSDIR)
 .for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. ${.CURDIR}/../../../.. \
     ${.CURDIR}/../../../../.. /sys /usr/src/sys
-.if !defined(SYSDIR) && exists(${_dir}/kern/) && exists(${_dir}/conf/kmod.mk)
+.if exists(${_dir}/kern/) && exists(${_dir}/conf/kmod.mk)
 SYSDIR=	${_dir:tA}
 .endif
 .endfor
+.endif
 .if !defined(SYSDIR) || !exists(${SYSDIR}/kern/) || \
     !exists(${SYSDIR}/conf/kmod.mk)
 .error Unable to locate the kernel source tree. Set SYSDIR to override.

Modified: head/sys/conf/kmod.mk
==============================================================================
--- head/sys/conf/kmod.mk	Wed Mar 28 16:28:20 2018	(r331682)
+++ head/sys/conf/kmod.mk	Wed Mar 28 16:28:24 2018	(r331683)
@@ -82,11 +82,13 @@ OBJCOPY?=	objcopy
 
 # Search for kernel source tree in standard places.
 .if empty(KERNBUILDDIR)
+.if !defined(SYSDIR)
 .for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. /sys /usr/src/sys
-.if !defined(SYSDIR) && exists(${_dir}/kern/)
+.if exists(${_dir}/kern/)
 SYSDIR=	${_dir:tA}
 .endif
 .endfor
+.endif
 .if !defined(SYSDIR) || !exists(${SYSDIR}/kern/)
 .error "can't find kernel source tree"
 .endif

From owner-svn-src-all@freebsd.org  Wed Mar 28 16:48:27 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9A6D1F6BEF2;
 Wed, 28 Mar 2018 16:48:27 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4D2187616A;
 Wed, 28 Mar 2018 16:48:27 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 43B7759FD;
 Wed, 28 Mar 2018 16:48:27 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SGmRcI066452;
 Wed, 28 Mar 2018 16:48:27 GMT (envelope-from kevans@FreeBSD.org)
Received: (from kevans@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SGmRRG066451;
 Wed, 28 Mar 2018 16:48:27 GMT (envelope-from kevans@FreeBSD.org)
Message-Id: <201803281648.w2SGmRRG066451@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kevans set sender to
 kevans@FreeBSD.org using -f
From: Kyle Evans 
Date: Wed, 28 Mar 2018 16:48:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331685 - stable/11
X-SVN-Group: stable-11
X-SVN-Commit-Author: kevans
X-SVN-Commit-Paths: stable/11
X-SVN-Commit-Revision: 331685
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 16:48:27 -0000

Author: kevans
Date: Wed Mar 28 16:48:26 2018
New Revision: 331685
URL: https://svnweb.freebsd.org/changeset/base/331685

Log:
  Record-only MFC of r330252, r330253
  
  r330253 reverted r330252, which was committed with nothing but the message:
  "MFC After: 1 week"
  
  Go ahead and record the merge of both of them. r330254 was the follow-up
  commit with the same contents as r330252 but with an appropriate message. It
  will be MFC'd along with the introduction of the corresponding options as
  appropriate.

Modified:
Directory Properties:
  stable/11/   (props changed)

From owner-svn-src-all@freebsd.org  Wed Mar 28 16:51:06 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 38D31F6C07C;
 Wed, 28 Mar 2018 16:51:06 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E097F7657F;
 Wed, 28 Mar 2018 16:51:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DB9665A2D;
 Wed, 28 Mar 2018 16:51:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SGp5ct069534;
 Wed, 28 Mar 2018 16:51:05 GMT (envelope-from jhb@FreeBSD.org)
Received: (from jhb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SGp59K069533;
 Wed, 28 Mar 2018 16:51:05 GMT (envelope-from jhb@FreeBSD.org)
Message-Id: <201803281651.w2SGp59K069533@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org
 using -f
From: John Baldwin 
Date: Wed, 28 Mar 2018 16:51:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331686 - head
X-SVN-Group: head
X-SVN-Commit-Author: jhb
X-SVN-Commit-Paths: head
X-SVN-Commit-Revision: 331686
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 16:51:06 -0000

Author: jhb
Date: Wed Mar 28 16:51:05 2018
New Revision: 331686
URL: https://svnweb.freebsd.org/changeset/base/331686

Log:
  Expand remaining instances of 'make kernel' to buildkernel + installkernel.
  
  The 'kernel' target is a bit more obscure compared to buildkernel and
  installkernel.  One instance was already expanded previously in r325097.

Modified:
  head/UPDATING

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Wed Mar 28 16:48:26 2018	(r331685)
+++ head/UPDATING	Wed Mar 28 16:51:05 2018	(r331686)
@@ -624,7 +624,8 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW:
 	rebooting, e.g.:
 
 	make buildworld
-	make kernel KERNCONF=YOUR_KERNEL_HERE
+	make buildkernel KERNCONF=YOUR_KERNEL_HERE
+	make installkernel KERNCONF=YOUR_KERNEL_HERE
 	make -C sys/boot install
 	
 
@@ -1995,7 +1996,8 @@ COMMON ITEMS:
 	----------------------------------------------
 	
 	make buildworld					[9]
-	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
+	make buildkernel KERNCONF=YOUR_KERNEL_HERE	[8]
+	make installkernel KERNCONF=YOUR_KERNEL_HERE
 							[1]
 					[3]
 	mergemaster -Fp					[5]

From owner-svn-src-all@freebsd.org  Wed Mar 28 16:54:16 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B718F6C418;
 Wed, 28 Mar 2018 16:54:16 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 0F3A776D7D;
 Wed, 28 Mar 2018 16:54:16 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0A3E35BA5;
 Wed, 28 Mar 2018 16:54:16 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SGsFD8071941;
 Wed, 28 Mar 2018 16:54:15 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SGsFpV071940;
 Wed, 28 Mar 2018 16:54:15 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803281654.w2SGsFpV071940@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Wed, 28 Mar 2018 16:54:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331687 - stable/11/lib/libc/sys
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/11/lib/libc/sys
X-SVN-Commit-Revision: 331687
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 16:54:16 -0000

Author: emaste
Date: Wed Mar 28 16:54:15 2018
New Revision: 331687
URL: https://svnweb.freebsd.org/changeset/base/331687

Log:
  MFC r325422: posix_fallocate.2: add an EINVAL errno case
  
  As of r325320 in HEAD posix_fallocate returns EINVAL on ZFS to indicate
  that the underlying filesystem does not support this operation, per
  POSIX.1-2008. Document this case in the man page.
  
  Note that r325320 has not yet been merged to stable/11, and may or may
  not be.  However, we should document that EINVAL may be returned if the
  filesystem does not support posix_fallocate (even if we don't actually
  do so in stable/11), as software should be prepared to handle that case.
  
  Discussed with:	avg
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/lib/libc/sys/posix_fallocate.2
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libc/sys/posix_fallocate.2
==============================================================================
--- stable/11/lib/libc/sys/posix_fallocate.2	Wed Mar 28 16:51:05 2018	(r331686)
+++ stable/11/lib/libc/sys/posix_fallocate.2	Wed Mar 28 16:54:15 2018	(r331687)
@@ -28,7 +28,7 @@
 .\"     @(#)open.2	8.2 (Berkeley) 11/16/93
 .\" $FreeBSD$
 .\"
-.Dd October 12, 2017
+.Dd November 4, 2017
 .Dt POSIX_FALLOCATE 2
 .Os
 .Sh NAME
@@ -106,9 +106,10 @@ A signal was caught during execution.
 .It Bq Er EINVAL
 The
 .Fa len
-argument was less than or equal to zero or the
+argument was less than or equal to zero, the
 .Fa offset
-argument was less than zero.
+argument was less than zero,
+or the operation is not supported by the file system.
 .It Bq Er EIO
 An I/O error occurred while reading from or writing to a file system.
 .It Bq Er ENODEV

From owner-svn-src-all@freebsd.org  Wed Mar 28 16:55:46 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08D6AF6C4EA;
 Wed, 28 Mar 2018 16:55:46 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B00F176F0D;
 Wed, 28 Mar 2018 16:55:45 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AAAD55BA6;
 Wed, 28 Mar 2018 16:55:45 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SGtjmq072089;
 Wed, 28 Mar 2018 16:55:45 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SGtj69072088;
 Wed, 28 Mar 2018 16:55:45 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803281655.w2SGtj69072088@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Wed, 28 Mar 2018 16:55:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331688 - stable/11/lib/libc/sys
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/11/lib/libc/sys
X-SVN-Commit-Revision: 331688
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 16:55:46 -0000

Author: emaste
Date: Wed Mar 28 16:55:45 2018
New Revision: 331688
URL: https://svnweb.freebsd.org/changeset/base/331688

Log:
  MFC r323623: rename(2): document capability mode errors
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/lib/libc/sys/rename.2
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libc/sys/rename.2
==============================================================================
--- stable/11/lib/libc/sys/rename.2	Wed Mar 28 16:54:15 2018	(r331687)
+++ stable/11/lib/libc/sys/rename.2	Wed Mar 28 16:55:45 2018	(r331688)
@@ -28,7 +28,7 @@
 .\"     @(#)rename.2	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd April 10, 2008
+.Dd September 15, 2017
 .Dt RENAME 2
 .Os
 .Sh NAME
@@ -252,6 +252,9 @@ The
 .Fa to
 argument
 is a directory and is not empty.
+.It Bq Er ECAPMODE
+.Fn rename
+was called and the process is in capability mode.
 .El
 .Pp
 In addition to the errors returned by the
@@ -288,6 +291,26 @@ argument is not an absolute path and
 is neither
 .Dv AT_FDCWD
 nor a file descriptor associated with a directory.
+.It Bq Er ECAPMODE
+.Dv AT_FDCWD
+is specified and the process is in capability mode.
+.It Bq Er ENOTCAPABLE
+.Fa path
+is an absolute path or contained a ".." component leading to a directory
+outside of the directory hierarchy specified by
+.Fa fromfd
+or
+.Fa tofd .
+.It Bq Er ENOTCAPABLE
+The
+.Fa fromfd
+file descriptor lacks the
+.Dv CAP_RENAMEAT_SOURCE
+right, or the
+.Fa tofd
+file descriptor lacks the
+.Dv CAP_RENAMEAT_TARGET
+right.
 .El
 .Sh SEE ALSO
 .Xr chflags 2 ,

From owner-svn-src-all@freebsd.org  Wed Mar 28 16:58:25 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 05D01F6C5C1;
 Wed, 28 Mar 2018 16:58:25 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id AAE47770E8;
 Wed, 28 Mar 2018 16:58:24 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A17E45BA8;
 Wed, 28 Mar 2018 16:58:24 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SGwODP072251;
 Wed, 28 Mar 2018 16:58:24 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SGwOXc072246;
 Wed, 28 Mar 2018 16:58:24 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803281658.w2SGwOXc072246@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Wed, 28 Mar 2018 16:58:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331689 - in stable/11: contrib/binutils/ld/emulparams
 sys/conf
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: in stable/11: contrib/binutils/ld/emulparams sys/conf
X-SVN-Commit-Revision: 331689
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 16:58:25 -0000

Author: emaste
Date: Wed Mar 28 16:58:24 2018
New Revision: 331689
URL: https://svnweb.freebsd.org/changeset/base/331689

Log:
  MFC r315522: use INT3 instead of NOP for x86 binary padding
  
  We should never end up executing the inter-function padding, so we
  are better off faulting than silently carrying on to whatever function
  happens to be next.
  
  Note that LLD does this by default.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/contrib/binutils/ld/emulparams/elf_i386.sh
  stable/11/contrib/binutils/ld/emulparams/elf_x86_64.sh
  stable/11/sys/conf/ldscript.amd64
  stable/11/sys/conf/ldscript.i386
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/binutils/ld/emulparams/elf_i386.sh
==============================================================================
--- stable/11/contrib/binutils/ld/emulparams/elf_i386.sh	Wed Mar 28 16:55:45 2018	(r331688)
+++ stable/11/contrib/binutils/ld/emulparams/elf_i386.sh	Wed Mar 28 16:58:24 2018	(r331689)
@@ -6,7 +6,7 @@ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
 NONPAGED_TEXT_START_ADDR=0x08048000
 ARCH=i386
 MACHINE=
-NOP=0x90909090
+NOP=0xCCCCCCCC
 TEMPLATE_NAME=elf32
 GENERATE_SHLIB_SCRIPT=yes
 GENERATE_PIE_SCRIPT=yes

Modified: stable/11/contrib/binutils/ld/emulparams/elf_x86_64.sh
==============================================================================
--- stable/11/contrib/binutils/ld/emulparams/elf_x86_64.sh	Wed Mar 28 16:55:45 2018	(r331688)
+++ stable/11/contrib/binutils/ld/emulparams/elf_x86_64.sh	Wed Mar 28 16:58:24 2018	(r331689)
@@ -7,7 +7,7 @@ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
 NONPAGED_TEXT_START_ADDR=0x400000
 ARCH="i386:x86-64"
 MACHINE=
-NOP=0x90909090
+NOP=0xCCCCCCCC
 TEMPLATE_NAME=elf32
 GENERATE_SHLIB_SCRIPT=yes
 GENERATE_PIE_SCRIPT=yes

Modified: stable/11/sys/conf/ldscript.amd64
==============================================================================
--- stable/11/sys/conf/ldscript.amd64	Wed Mar 28 16:55:45 2018	(r331688)
+++ stable/11/sys/conf/ldscript.amd64	Wed Mar 28 16:58:24 2018	(r331689)
@@ -56,7 +56,7 @@ SECTIONS
   .init           :
   {
     KEEP (*(.init))
-  } =0x90909090
+  } =0xCCCCCCCC
   .plt            : { *(.plt) }
   .text           :
   {
@@ -64,11 +64,11 @@ SECTIONS
     KEEP (*(.text.*personality*))
     /* .gnu.warning sections are handled specially by elf32.em.  */
     *(.gnu.warning)
-  } =0x90909090
+  } =0xCCCCCCCC
   .fini           :
   {
     KEEP (*(.fini))
-  } =0x90909090
+  } =0xCCCCCCCC
   PROVIDE (__etext = .);
   PROVIDE (_etext = .);
   PROVIDE (etext = .);

Modified: stable/11/sys/conf/ldscript.i386
==============================================================================
--- stable/11/sys/conf/ldscript.i386	Wed Mar 28 16:55:45 2018	(r331688)
+++ stable/11/sys/conf/ldscript.i386	Wed Mar 28 16:58:24 2018	(r331689)
@@ -44,7 +44,7 @@ SECTIONS
   .init           :
   {
     KEEP (*(.init))
-  } =0x90909090
+  } =0xCCCCCCCC
   .plt            : { *(.plt) }
   .text           :
   {
@@ -52,11 +52,11 @@ SECTIONS
     KEEP (*(.text.*personality*))
     /* .gnu.warning sections are handled specially by elf32.em.  */
     *(.gnu.warning)
-  } =0x90909090
+  } =0xCCCCCCCC
   .fini           :
   {
     KEEP (*(.fini))
-  } =0x90909090
+  } =0xCCCCCCCC
   PROVIDE (__etext = .);
   PROVIDE (_etext = .);
   PROVIDE (etext = .);

From owner-svn-src-all@freebsd.org  Wed Mar 28 17:16:17 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3976AF6D137;
 Wed, 28 Mar 2018 17:16:17 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id DE21B78525;
 Wed, 28 Mar 2018 17:16:16 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D8A325EEA;
 Wed, 28 Mar 2018 17:16:16 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SHGGAY083252;
 Wed, 28 Mar 2018 17:16:16 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SHGGAF083251;
 Wed, 28 Mar 2018 17:16:16 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803281716.w2SHGGAF083251@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Wed, 28 Mar 2018 17:16:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331690 - stable/11/sys/tools
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/11/sys/tools
X-SVN-Commit-Revision: 331690
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 17:16:17 -0000

Author: emaste
Date: Wed Mar 28 17:16:16 2018
New Revision: 331690
URL: https://svnweb.freebsd.org/changeset/base/331690

Log:
  MFC r324707: embed_mfs: add error handling, usage
  
  Ensure that we are called with two arguments, and that the output file
  is writable. Also, if we cannot find the mfs section report the output
  file name rather than "kernel", as this script may be used with other
  than kernels.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/sys/tools/embed_mfs.sh
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/tools/embed_mfs.sh
==============================================================================
--- stable/11/sys/tools/embed_mfs.sh	Wed Mar 28 16:58:24 2018	(r331689)
+++ stable/11/sys/tools/embed_mfs.sh	Wed Mar 28 17:16:16 2018	(r331690)
@@ -32,13 +32,22 @@
 # $2: MFS image filename
 #
 
+if [ $# -ne 2 ]; then
+	echo "usage: $(basename $0) target mfs_image"
+	exit 0
+fi
+if [ ! -w "$1" ]; then
+	echo $1 not writable
+	exit 1
+fi
+
 mfs_size=`stat -f '%z' $2 2> /dev/null`
 # If we can't determine MFS image size - bail.
 [ -z ${mfs_size} ] && echo "Can't determine MFS image size" && exit 1
 
 sec_info=`elfdump -c $1 2> /dev/null | grep -A 5 -E "sh_name: oldmfs$"`
 # If we can't find the mfs section within the given kernel - bail.
-[ -z "${sec_info}" ] && echo "Can't locate mfs section within kernel" && exit 1
+[ -z "${sec_info}" ] && echo "Can't locate mfs section within $1" && exit 1
 
 sec_size=`echo "${sec_info}" | awk '/sh_size/ {print $2}' 2> /dev/null`
 sec_start=`echo "${sec_info}" | awk '/sh_offset/ {print $2}' 2> /dev/null`

From owner-svn-src-all@freebsd.org  Wed Mar 28 17:19:05 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 07165F6D407;
 Wed, 28 Mar 2018 17:19:05 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id AE4BD789CE;
 Wed, 28 Mar 2018 17:19:04 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A52475EEF;
 Wed, 28 Mar 2018 17:19:04 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SHJ4oh083708;
 Wed, 28 Mar 2018 17:19:04 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SHJ4Us083707;
 Wed, 28 Mar 2018 17:19:04 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803281719.w2SHJ4Us083707@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Wed, 28 Mar 2018 17:19:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331691 - stable/11/sys/tools
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/11/sys/tools
X-SVN-Commit-Revision: 331691
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 17:19:05 -0000

Author: emaste
Date: Wed Mar 28 17:19:04 2018
New Revision: 331691
URL: https://svnweb.freebsd.org/changeset/base/331691

Log:
  MFC r326992: embed_mfs: support embedding mfs into loader
  
  The script originally supported embedding an mfs into ELF files or any
  other type of file, because it searched for magic strings to mark the
  beginning and end of the embeddable section. It was later modified to
  read the section offset and length via readelf, which made it work for
  ELF only. Restore the ability to update arbitrary file types by using
  the readelf technique for ELF, and the magic string technique for all
  others (including PE/COFF files like loader.efi).
  
  Submitted by:	Zakary Nafziger 
  
  MFC r327526: embed_mfs: correctly test grep return value
  
  Reported by:	br
  
  MFC r327527: ath: revert accidental change committed with r327526
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/sys/tools/embed_mfs.sh
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/tools/embed_mfs.sh
==============================================================================
--- stable/11/sys/tools/embed_mfs.sh	Wed Mar 28 17:16:16 2018	(r331690)
+++ stable/11/sys/tools/embed_mfs.sh	Wed Mar 28 17:19:04 2018	(r331691)
@@ -25,10 +25,10 @@
 #
 # $FreeBSD$ 
 #
-# Embed the MFS image into the kernel body (expects space reserved via 
-# MD_ROOT_SIZE)
+# Embed an MFS image into the kernel body or the loader body (expects space
+# reserved via MD_ROOT_SIZE (kernel) or MD_IMAGE_SIZE (loader))
 #
-# $1: kernel filename
+# $1: kernel or loader filename
 # $2: MFS image filename
 #
 
@@ -45,16 +45,39 @@ mfs_size=`stat -f '%z' $2 2> /dev/null`
 # If we can't determine MFS image size - bail.
 [ -z ${mfs_size} ] && echo "Can't determine MFS image size" && exit 1
 
-sec_info=`elfdump -c $1 2> /dev/null | grep -A 5 -E "sh_name: oldmfs$"`
-# If we can't find the mfs section within the given kernel - bail.
-[ -z "${sec_info}" ] && echo "Can't locate mfs section within $1" && exit 1
+err_no_mfs="Can't locate mfs section within "
 
-sec_size=`echo "${sec_info}" | awk '/sh_size/ {print $2}' 2> /dev/null`
-sec_start=`echo "${sec_info}" | awk '/sh_offset/ {print $2}' 2> /dev/null`
+if file -b $1 | grep -q '^ELF ..-bit .SB executable'; then
 
+	sec_info=`elfdump -c $1 2> /dev/null | grep -A 5 -E "sh_name: oldmfs$"`
+	# If we can't find the mfs section within the given kernel - bail.
+	[ -z "${sec_info}" ] && echo "${err_no_mfs} $1" && exit 1
+
+	sec_size=`echo "${sec_info}" | awk '/sh_size/ {print $2}' 2>/dev/null`
+	sec_start=`echo "${sec_info}" | \
+	    awk '/sh_offset/ {print $2}' 2>/dev/null`
+
+else
+
+	#try to find start byte of MFS start flag otherwise - bail.
+	sec_start=`strings -at d $1 | grep "MFS Filesystem goes here"` || \
+	    { echo "${err_no_mfs} $1"; exit 1; }
+	sec_start=`echo ${sec_start} | awk '{print $1}'`
+
+	#try to find start byte of MFS end flag otherwise - bail.
+	sec_end=`strings -at d $1 | \
+	    grep "MFS Filesystem had better STOP here"` || \
+	    { echo "${err_no_mfs} $1"; exit 1; }
+	sec_end=`echo ${sec_end} | awk '{print $1}'`
+
+	#calculate MFS section size
+	sec_size=`expr ${sec_end} - ${sec_start}`
+
+fi
+
 # If the mfs section size is smaller than the mfs image - bail.
 [ ${sec_size} -lt ${mfs_size} ] && echo "MFS image too large" && exit 1
 
 # Dump the mfs image into the mfs section
 dd if=$2 ibs=8192 of=$1 obs=${sec_start} oseek=1 conv=notrunc 2> /dev/null && \
-    echo "MFS image embedded into kernel" && exit 0
+    echo "MFS image embedded into $1" && exit 0

From owner-svn-src-all@freebsd.org  Wed Mar 28 17:39:24 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A04E2F6DD82;
 Wed, 28 Mar 2018 17:39:24 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 273AB79B48;
 Wed, 28 Mar 2018 17:39:24 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D4CA96219;
 Wed, 28 Mar 2018 17:39:23 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SHdNvL094041;
 Wed, 28 Mar 2018 17:39:23 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SHdNtK094040;
 Wed, 28 Mar 2018 17:39:23 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803281739.w2SHdNtK094040@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Wed, 28 Mar 2018 17:39:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331692 - head/sys/dev/usb/input
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/dev/usb/input
X-SVN-Commit-Revision: 331692
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 17:39:24 -0000

Author: hselasky
Date: Wed Mar 28 17:39:23 2018
New Revision: 331692
URL: https://svnweb.freebsd.org/changeset/base/331692

Log:
  Fix for regression issue in USB keyboard driver after r304735.
  
  A series of zero delay callouts can happen causing high CPU usage of the
  timer subsystem when trying to repeat keys, because the time of the
  absolute timeout is not moving forward. The condition clears when all
  keys are released.
  
  Reported by:	Johannes Lundberg 
  Discussed with:	bde@
  PR:		226968
  MFC after:	1 week
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/usb/input/ukbd.c

Modified: head/sys/dev/usb/input/ukbd.c
==============================================================================
--- head/sys/dev/usb/input/ukbd.c	Wed Mar 28 17:19:04 2018	(r331691)
+++ head/sys/dev/usb/input/ukbd.c	Wed Mar 28 17:39:23 2018	(r331692)
@@ -386,10 +386,22 @@ ukbd_any_key_pressed(struct ukbd_softc *sc)
 static void
 ukbd_start_timer(struct ukbd_softc *sc)
 {
-	sbintime_t delay, prec;
+	sbintime_t delay, now, prec;
 
+	now = sbinuptime();
+
+	/* check if initial delay passed and fallback to key repeat delay */
+	if (sc->sc_delay == 0)
+		sc->sc_delay = sc->sc_kbd.kb_delay2;
+
+	/* compute timeout */
 	delay = SBT_1MS * sc->sc_delay;
 	sc->sc_co_basetime += delay;
+
+	/* check if we are running behind */
+	if (sc->sc_co_basetime < now)
+		sc->sc_co_basetime = now;
+
 	/* This is rarely called, so prefer precision to efficiency. */
 	prec = qmin(delay >> 7, SBT_1MS * 10);
 	usb_callout_reset_sbt(&sc->sc_callout, sc->sc_co_basetime, prec,
@@ -510,7 +522,6 @@ ukbd_get_key(struct ukbd_softc *sc, uint8_t wait)
 static void
 ukbd_interrupt(struct ukbd_softc *sc)
 {
-	struct timeval ctv;
 	uint32_t n_mod;
 	uint32_t o_mod;
 	uint32_t now = sc->sc_time_ms;
@@ -580,14 +591,11 @@ rfound:	;
 				break;
 			}
 		}
-		if (j < UKBD_NKEYCODE) {
-			/* Old key repeating. */
-			sc->sc_delay = sc->sc_kbd.kb_delay2;
-		} else {
-			/* New key. */
-			microuptime(&ctv);
-			sc->sc_co_basetime = tvtosbt(ctv);
+		if (j == UKBD_NKEYCODE) {
+			/* New key - set initial delay and [re]start timer */
+			sc->sc_co_basetime = sbinuptime();
 			sc->sc_delay = sc->sc_kbd.kb_delay1;
+			ukbd_start_timer(sc);
 		}
 		ukbd_put_key(sc, key | KEY_PRESS);
 
@@ -837,10 +845,6 @@ ukbd_intr_callback(struct usb_xfer *xfer, usb_error_t 
 		}
 
 		ukbd_interrupt(sc);
-
-		if (ukbd_any_key_pressed(sc) != 0) {
-			ukbd_start_timer(sc);
-		}
 
 	case USB_ST_SETUP:
 tr_setup:

From owner-svn-src-all@freebsd.org  Wed Mar 28 17:49:33 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1479FF6E0B0;
 Wed, 28 Mar 2018 17:49:33 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B86AA7A0E7;
 Wed, 28 Mar 2018 17:49:32 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AEC6263D0;
 Wed, 28 Mar 2018 17:49:32 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SHnWuL099050;
 Wed, 28 Mar 2018 17:49:32 GMT (envelope-from jhb@FreeBSD.org)
Received: (from jhb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SHnWq0099046;
 Wed, 28 Mar 2018 17:49:32 GMT (envelope-from jhb@FreeBSD.org)
Message-Id: <201803281749.w2SHnWq0099046@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org
 using -f
From: John Baldwin 
Date: Wed, 28 Mar 2018 17:49:32 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331693 - stable/11/sys/netipsec
X-SVN-Group: stable-11
X-SVN-Commit-Author: jhb
X-SVN-Commit-Paths: stable/11/sys/netipsec
X-SVN-Commit-Revision: 331693
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 17:49:33 -0000

Author: jhb
Date: Wed Mar 28 17:49:31 2018
New Revision: 331693
URL: https://svnweb.freebsd.org/changeset/base/331693

Log:
  MFC 331248: Set the proper vnet in IPsec callback functions.
  
  When using hardware crypto engines, the callback functions used to handle
  an IPsec packet after it has been encrypted or decrypted can be invoked
  asynchronously from a worker thread that is not associated with a vnet.
  Extend 'struct xform_data' to include a vnet pointer and save the current
  vnet in this new member when queueing crypto requests in IPsec.  In the
  IPsec callback routines, use the new member to set the current vnet while
  processing the modified packet.
  
  This fixes a panic when using hardware offload such as ccr(4) with IPsec
  after VIMAGE was enabled in GENERIC.
  
  Sponsored by:	Chelsio Communications

Modified:
  stable/11/sys/netipsec/xform.h
  stable/11/sys/netipsec/xform_ah.c
  stable/11/sys/netipsec/xform_esp.c
  stable/11/sys/netipsec/xform_ipcomp.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/netipsec/xform.h
==============================================================================
--- stable/11/sys/netipsec/xform.h	Wed Mar 28 17:39:23 2018	(r331692)
+++ stable/11/sys/netipsec/xform.h	Wed Mar 28 17:49:31 2018	(r331693)
@@ -76,6 +76,7 @@ struct xform_data {
 	int			protoff;	/* current protocol offset */
 	int			skip;		/* data offset */
 	uint8_t			nxt;		/* next protocol, e.g. IPV4 */
+	struct vnet		*vnet;
 };
 
 #define	XF_IP4		1	/* unused */

Modified: stable/11/sys/netipsec/xform_ah.c
==============================================================================
--- stable/11/sys/netipsec/xform_ah.c	Wed Mar 28 17:39:23 2018	(r331692)
+++ stable/11/sys/netipsec/xform_ah.c	Wed Mar 28 17:49:31 2018	(r331693)
@@ -665,6 +665,7 @@ ah_input(struct mbuf *m, struct secasvar *sav, int ski
 	xd->protoff = protoff;
 	xd->skip = skip;
 	xd->cryptoid = cryptoid;
+	xd->vnet = curvnet;
 	return (crypto_dispatch(crp));
 bad:
 	m_freem(m);
@@ -694,6 +695,7 @@ ah_input_cb(struct cryptop *crp)
 	crd = crp->crp_desc;
 	m = (struct mbuf *) crp->crp_buf;
 	xd = (struct xform_data *) crp->crp_opaque;
+	CURVNET_SET(xd->vnet);
 	sav = xd->sav;
 	skip = xd->skip;
 	nxt = xd->nxt;
@@ -713,6 +715,7 @@ ah_input_cb(struct cryptop *crp)
 			if (ipsec_updateid(sav, &crp->crp_sid, &cryptoid) != 0)
 				crypto_freesession(cryptoid);
 			xd->cryptoid = crp->crp_sid;
+			CURVNET_RESTORE();
 			return (crypto_dispatch(crp));
 		}
 		AHSTAT_INC(ahs_noxform);
@@ -808,8 +811,10 @@ ah_input_cb(struct cryptop *crp)
 		panic("%s: Unexpected address family: %d saidx=%p", __func__,
 		    saidx->dst.sa.sa_family, saidx);
 	}
+	CURVNET_RESTORE();
 	return error;
 bad:
+	CURVNET_RESTORE();
 	if (sav)
 		key_freesav(&sav);
 	if (m != NULL)
@@ -1041,6 +1046,7 @@ ah_output(struct mbuf *m, struct secpolicy *sp, struct
 	xd->skip = skip;
 	xd->idx = idx;
 	xd->cryptoid = cryptoid;
+	xd->vnet = curvnet;
 
 	return crypto_dispatch(crp);
 bad:
@@ -1068,6 +1074,7 @@ ah_output_cb(struct cryptop *crp)
 
 	m = (struct mbuf *) crp->crp_buf;
 	xd = (struct xform_data *) crp->crp_opaque;
+	CURVNET_SET(xd->vnet);
 	sp = xd->sp;
 	sav = xd->sav;
 	skip = xd->skip;
@@ -1082,6 +1089,7 @@ ah_output_cb(struct cryptop *crp)
 			if (ipsec_updateid(sav, &crp->crp_sid, &cryptoid) != 0)
 				crypto_freesession(cryptoid);
 			xd->cryptoid = crp->crp_sid;
+			CURVNET_RESTORE();
 			return (crypto_dispatch(crp));
 		}
 		AHSTAT_INC(ahs_noxform);
@@ -1123,8 +1131,10 @@ ah_output_cb(struct cryptop *crp)
 
 	/* NB: m is reclaimed by ipsec_process_done. */
 	error = ipsec_process_done(m, sp, sav, idx);
+	CURVNET_RESTORE();
 	return (error);
 bad:
+	CURVNET_RESTORE();
 	free(xd, M_XDATA);
 	crypto_freereq(crp);
 	key_freesav(&sav);

Modified: stable/11/sys/netipsec/xform_esp.c
==============================================================================
--- stable/11/sys/netipsec/xform_esp.c	Wed Mar 28 17:39:23 2018	(r331692)
+++ stable/11/sys/netipsec/xform_esp.c	Wed Mar 28 17:49:31 2018	(r331693)
@@ -395,6 +395,7 @@ esp_input(struct mbuf *m, struct secasvar *sav, int sk
 	xd->protoff = protoff;
 	xd->skip = skip;
 	xd->cryptoid = cryptoid;
+	xd->vnet = curvnet;
 
 	/* Decryption descriptor */
 	IPSEC_ASSERT(crde != NULL, ("null esp crypto descriptor"));
@@ -454,6 +455,7 @@ esp_input_cb(struct cryptop *crp)
 
 	m = (struct mbuf *) crp->crp_buf;
 	xd = (struct xform_data *) crp->crp_opaque;
+	CURVNET_SET(xd->vnet);
 	sav = xd->sav;
 	skip = xd->skip;
 	protoff = xd->protoff;
@@ -469,6 +471,7 @@ esp_input_cb(struct cryptop *crp)
 			if (ipsec_updateid(sav, &crp->crp_sid, &cryptoid) != 0)
 				crypto_freesession(cryptoid);
 			xd->cryptoid = crp->crp_sid;
+			CURVNET_RESTORE();
 			return (crypto_dispatch(crp));
 		}
 		ESPSTAT_INC(esps_noxform);
@@ -603,8 +606,10 @@ esp_input_cb(struct cryptop *crp)
 		panic("%s: Unexpected address family: %d saidx=%p", __func__,
 		    saidx->dst.sa.sa_family, saidx);
 	}
+	CURVNET_RESTORE();
 	return error;
 bad:
+	CURVNET_RESTORE();
 	if (sav != NULL)
 		key_freesav(&sav);
 	if (m != NULL)
@@ -837,6 +842,7 @@ esp_output(struct mbuf *m, struct secpolicy *sp, struc
 	xd->sav = sav;
 	xd->idx = idx;
 	xd->cryptoid = cryptoid;
+	xd->vnet = curvnet;
 
 	/* Crypto operation descriptor. */
 	crp->crp_ilen = m->m_pkthdr.len; /* Total input length. */
@@ -880,6 +886,7 @@ esp_output_cb(struct cryptop *crp)
 	int error;
 
 	xd = (struct xform_data *) crp->crp_opaque;
+	CURVNET_SET(xd->vnet);
 	m = (struct mbuf *) crp->crp_buf;
 	sp = xd->sp;
 	sav = xd->sav;
@@ -893,6 +900,7 @@ esp_output_cb(struct cryptop *crp)
 			if (ipsec_updateid(sav, &crp->crp_sid, &cryptoid) != 0)
 				crypto_freesession(cryptoid);
 			xd->cryptoid = crp->crp_sid;
+			CURVNET_RESTORE();
 			return (crypto_dispatch(crp));
 		}
 		ESPSTAT_INC(esps_noxform);
@@ -938,8 +946,10 @@ esp_output_cb(struct cryptop *crp)
 
 	/* NB: m is reclaimed by ipsec_process_done. */
 	error = ipsec_process_done(m, sp, sav, idx);
+	CURVNET_RESTORE();
 	return (error);
 bad:
+	CURVNET_RESTORE();
 	free(xd, M_XDATA);
 	crypto_freereq(crp);
 	key_freesav(&sav);

Modified: stable/11/sys/netipsec/xform_ipcomp.c
==============================================================================
--- stable/11/sys/netipsec/xform_ipcomp.c	Wed Mar 28 17:39:23 2018	(r331692)
+++ stable/11/sys/netipsec/xform_ipcomp.c	Wed Mar 28 17:49:31 2018	(r331693)
@@ -253,6 +253,7 @@ ipcomp_input(struct mbuf *m, struct secasvar *sav, int
 	xd->sav = sav;
 	xd->protoff = protoff;
 	xd->skip = skip;
+	xd->vnet = curvnet;
 
 	SECASVAR_LOCK(sav);
 	crp->crp_sid = xd->cryptoid = sav->tdb_cryptoid;
@@ -287,6 +288,7 @@ ipcomp_input_cb(struct cryptop *crp)
 
 	m = (struct mbuf *) crp->crp_buf;
 	xd = (struct xform_data *) crp->crp_opaque;
+	CURVNET_SET(xd->vnet);
 	sav = xd->sav;
 	skip = xd->skip;
 	protoff = xd->protoff;
@@ -303,6 +305,7 @@ ipcomp_input_cb(struct cryptop *crp)
 			if (ipsec_updateid(sav, &crp->crp_sid, &cryptoid) != 0)
 				crypto_freesession(cryptoid);
 			xd->cryptoid = crp->crp_sid;
+			CURVNET_RESTORE();
 			return (crypto_dispatch(crp));
 		}
 		IPCOMPSTAT_INC(ipcomps_noxform);
@@ -367,8 +370,10 @@ ipcomp_input_cb(struct cryptop *crp)
 		panic("%s: Unexpected address family: %d saidx=%p", __func__,
 		    saidx->dst.sa.sa_family, saidx);
 	}
+	CURVNET_RESTORE();
 	return error;
 bad:
+	CURVNET_RESTORE();
 	if (sav != NULL)
 		key_freesav(&sav);
 	if (m != NULL)
@@ -494,6 +499,7 @@ ipcomp_output(struct mbuf *m, struct secpolicy *sp, st
 	xd->idx = idx;
 	xd->skip = skip;
 	xd->protoff = protoff;
+	xd->vnet = curvnet;
 
 	/* Crypto operation descriptor */
 	crp->crp_ilen = m->m_pkthdr.len;	/* Total input length */
@@ -532,6 +538,7 @@ ipcomp_output_cb(struct cryptop *crp)
 
 	m = (struct mbuf *) crp->crp_buf;
 	xd = (struct xform_data *) crp->crp_opaque;
+	CURVNET_SET(xd->vnet);
 	idx = xd->idx;
 	sp = xd->sp;
 	sav = xd->sav;
@@ -546,6 +553,7 @@ ipcomp_output_cb(struct cryptop *crp)
 			if (ipsec_updateid(sav, &crp->crp_sid, &cryptoid) != 0)
 				crypto_freesession(cryptoid);
 			xd->cryptoid = crp->crp_sid;
+			CURVNET_RESTORE();
 			return (crypto_dispatch(crp));
 		}
 		IPCOMPSTAT_INC(ipcomps_noxform);
@@ -641,10 +649,12 @@ ipcomp_output_cb(struct cryptop *crp)
 
 	/* NB: m is reclaimed by ipsec_process_done. */
 	error = ipsec_process_done(m, sp, sav, idx);
+	CURVNET_RESTORE();
 	return (error);
 bad:
 	if (m)
 		m_freem(m);
+	CURVNET_RESTORE();
 	free(xd, M_XDATA);
 	crypto_freereq(crp);
 	key_freesav(&sav);

From owner-svn-src-all@freebsd.org  Wed Mar 28 17:54:34 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF21AF6E2FD;
 Wed, 28 Mar 2018 17:54:34 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 796AD7A53F;
 Wed, 28 Mar 2018 17:54:34 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 701346574;
 Wed, 28 Mar 2018 17:54:34 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SHsYk6004014;
 Wed, 28 Mar 2018 17:54:34 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SHsYnW004013;
 Wed, 28 Mar 2018 17:54:34 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803281754.w2SHsYnW004013@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Wed, 28 Mar 2018 17:54:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331694 - head/sys/compat/linuxkpi/common/include/linux
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/compat/linuxkpi/common/include/linux
X-SVN-Commit-Revision: 331694
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 17:54:35 -0000

Author: hselasky
Date: Wed Mar 28 17:54:34 2018
New Revision: 331694
URL: https://svnweb.freebsd.org/changeset/base/331694

Log:
  Swap two instances of regular macros with function macros in the LinuxKPI,
  to narrow down the substitution scope.
  
  MFC after:	1 week
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/compat/linuxkpi/common/include/linux/pci.h

Modified: head/sys/compat/linuxkpi/common/include/linux/pci.h
==============================================================================
--- head/sys/compat/linuxkpi/common/include/linux/pci.h	Wed Mar 28 17:49:31 2018	(r331693)
+++ head/sys/compat/linuxkpi/common/include/linux/pci.h	Wed Mar 28 17:54:34 2018	(r331694)
@@ -538,7 +538,9 @@ struct msix_entry {
  * NB: define added to prevent this definition of pci_enable_msix from
  * clashing with the native FreeBSD version.
  */
-#define	pci_enable_msix		linux_pci_enable_msix
+#define	pci_enable_msix(...) \
+  linux_pci_enable_msix(__VA_ARGS__)
+
 static inline int
 pci_enable_msix(struct pci_dev *pdev, struct msix_entry *entries, int nreq)
 {
@@ -572,7 +574,9 @@ pci_enable_msix(struct pci_dev *pdev, struct msix_entr
 	return (0);
 }
 
-#define	pci_enable_msix_range	linux_pci_enable_msix_range
+#define	pci_enable_msix_range(...) \
+  linux_pci_enable_msix_range(__VA_ARGS__)
+
 static inline int
 pci_enable_msix_range(struct pci_dev *dev, struct msix_entry *entries,
     int minvec, int maxvec)

From owner-svn-src-all@freebsd.org  Wed Mar 28 18:12:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 71ABAF6E880;
 Wed, 28 Mar 2018 18:12:08 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 227D47B072;
 Wed, 28 Mar 2018 18:12:08 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1D0226875;
 Wed, 28 Mar 2018 18:12:08 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SIC7oq011306;
 Wed, 28 Mar 2018 18:12:07 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SIC7Ti011304;
 Wed, 28 Mar 2018 18:12:07 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803281812.w2SIC7Ti011304@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 18:12:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331695 - vendor-sys/illumos/dist/common/zfs
 vendor-sys/illumos/dist/uts/common vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor-sys/illumos/dist/uts/common/fs/zfs/sys vendor-sys/illumo...
X-SVN-Group: vendor
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: vendor-sys/illumos/dist/common/zfs
 vendor-sys/illumos/dist/uts/common vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor-sys/illumos/dist/uts/common/fs/zfs/sys
 vendor-sys/illumos/dist/uts/common/sys/fs ...
X-SVN-Commit-Revision: 331695
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 18:12:08 -0000

Author: mav
Date: Wed Mar 28 18:12:06 2018
New Revision: 331695
URL: https://svnweb.freebsd.org/changeset/base/331695

Log:
  9166 zfs storage pool checkpoint
  
  illumos/illumos-gate@8671400134a11c848244896ca51a7db4d0f69da4
  
  The idea of Storage Pool Checkpoint (aka zpool checkpoint) deals with
  exactly that.  It can be thought of as a “pool-wide snapshot” (or a
  variation of extreme rewind that doesn’t corrupt your data).  It remembers
  the entire state of the pool at the point that it was taken and the user
  can revert back to it later or discard it.  Its generic use case is an
  administrator that is about to perform a set of destructive actions to ZFS
  as part of a critical procedure.  She takes a checkpoint of the pool before
  performing the actions, then rewinds back to it if one of them fails or puts
  the pool into an unexpected state.  Otherwise, she discards it.  With the
  assumption that no one else is making modifications to ZFS, she basically
  wraps all these actions into a “high-level transaction”.
  
  Reviewed by: Matthew Ahrens 
  Reviewed by: John Kennedy 
  Reviewed by: Dan Kimmel 
  Approved by: Richard Lowe 
  Author: Serapheim Dimitropoulos 

Modified:
  vendor/illumos/dist/cmd/zdb/zdb.c
  vendor/illumos/dist/cmd/zdb/zdb_il.c
  vendor/illumos/dist/cmd/zpool/zpool_main.c
  vendor/illumos/dist/cmd/ztest/ztest.c
  vendor/illumos/dist/lib/libzfs/common/libzfs.h
  vendor/illumos/dist/lib/libzfs/common/libzfs_pool.c
  vendor/illumos/dist/lib/libzfs/common/libzfs_util.c
  vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.c
  vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.h
  vendor/illumos/dist/man/man1m/zdb.1m
  vendor/illumos/dist/man/man1m/zpool.1m
  vendor/illumos/dist/man/man5/zpool-features.5

Changes in other areas also in this revision:
Modified:
  vendor-sys/illumos/dist/common/zfs/zfeature_common.c
  vendor-sys/illumos/dist/common/zfs/zfeature_common.h
  vendor-sys/illumos/dist/common/zfs/zpool_prop.c
  vendor-sys/illumos/dist/uts/common/Makefile.files
  vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_traverse.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dnode_sync.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_destroy.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dir.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_pool.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_synctask.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_userhold.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/range_tree.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/spa_misc.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/space_map.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dmu.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_dir.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_pool.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_synctask.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/metaslab.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/metaslab_impl.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/range_tree.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/spa.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/spa_impl.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/space_map.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/uberblock_impl.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/vdev.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/vdev_impl.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/vdev_removal.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zio.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zthr.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/uberblock.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_indirect.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_label.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_removal.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zcp.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_synctask.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zil.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zio.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zthr.c
  vendor-sys/illumos/dist/uts/common/sys/fs/zfs.h

Modified: vendor/illumos/dist/cmd/zdb/zdb.c
==============================================================================
--- vendor/illumos/dist/cmd/zdb/zdb.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor/illumos/dist/cmd/zdb/zdb.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -131,7 +131,7 @@ static void
 usage(void)
 {
 	(void) fprintf(stderr,
-	    "Usage:\t%s [-AbcdDFGhiLMPsvX] [-e [-V] [-p  ...]] "
+	    "Usage:\t%s [-AbcdDFGhikLMPsvX] [-e [-V] [-p  ...]] "
 	    "[-I ]\n"
 	    "\t\t[-o =]... [-t ] [-U ] [-x ]\n"
 	    "\t\t[ [ ...]]\n"
@@ -168,6 +168,8 @@ usage(void)
 	(void) fprintf(stderr, "        -h pool history\n");
 	(void) fprintf(stderr, "        -i intent logs\n");
 	(void) fprintf(stderr, "        -l read label contents\n");
+	(void) fprintf(stderr, "        -k examine the checkpointed state "
+	    "of the pool\n");
 	(void) fprintf(stderr, "        -L disable leak tracking (do not "
 	    "load spacemaps)\n");
 	(void) fprintf(stderr, "        -m metaslabs\n");
@@ -729,6 +731,22 @@ get_prev_obsolete_spacemap_refcount(spa_t *spa)
 }
 
 static int
+get_checkpoint_refcount(vdev_t *vd)
+{
+	int refcount = 0;
+
+	if (vd->vdev_top == vd && vd->vdev_top_zap != 0 &&
+	    zap_contains(spa_meta_objset(vd->vdev_spa),
+	    vd->vdev_top_zap, VDEV_TOP_ZAP_POOL_CHECKPOINT_SM) == 0)
+		refcount++;
+
+	for (uint64_t c = 0; c < vd->vdev_children; c++)
+		refcount += get_checkpoint_refcount(vd->vdev_child[c]);
+
+	return (refcount);
+}
+
+static int
 verify_spacemap_refcounts(spa_t *spa)
 {
 	uint64_t expected_refcount = 0;
@@ -741,6 +759,7 @@ verify_spacemap_refcounts(spa_t *spa)
 	actual_refcount += get_metaslab_refcount(spa->spa_root_vdev);
 	actual_refcount += get_obsolete_refcount(spa->spa_root_vdev);
 	actual_refcount += get_prev_obsolete_spacemap_refcount(spa);
+	actual_refcount += get_checkpoint_refcount(spa->spa_root_vdev);
 
 	if (expected_refcount != actual_refcount) {
 		(void) printf("space map refcount mismatch: expected %lld != "
@@ -814,8 +833,8 @@ static void
 dump_metaslab_stats(metaslab_t *msp)
 {
 	char maxbuf[32];
-	range_tree_t *rt = msp->ms_tree;
-	avl_tree_t *t = &msp->ms_size_tree;
+	range_tree_t *rt = msp->ms_allocatable;
+	avl_tree_t *t = &msp->ms_allocatable_by_size;
 	int free_pct = range_tree_space(rt) * 100 / msp->ms_size;
 
 	/* max sure nicenum has enough space */
@@ -851,7 +870,7 @@ dump_metaslab(metaslab_t *msp)
 		metaslab_load_wait(msp);
 		if (!msp->ms_loaded) {
 			VERIFY0(metaslab_load(msp));
-			range_tree_stat_verify(msp->ms_tree);
+			range_tree_stat_verify(msp->ms_allocatable);
 		}
 		dump_metaslab_stats(msp);
 		metaslab_unload(msp);
@@ -2264,6 +2283,8 @@ dump_uberblock(uberblock_t *ub, const char *header, co
 		snprintf_blkptr(blkbuf, sizeof (blkbuf), &ub->ub_rootbp);
 		(void) printf("\trootbp = %s\n", blkbuf);
 	}
+	(void) printf("\tcheckpoint_txg = %llu\n",
+	    (u_longlong_t)ub->ub_checkpoint_txg);
 	(void) printf("%s", footer ? footer : "");
 }
 
@@ -2624,6 +2645,7 @@ static const char *zdb_ot_extname[] = {
 typedef struct zdb_cb {
 	zdb_blkstats_t	zcb_type[ZB_TOTAL + 1][ZDB_OT_TOTAL + 1];
 	uint64_t	zcb_removing_size;
+	uint64_t	zcb_checkpoint_size;
 	uint64_t	zcb_dedup_asize;
 	uint64_t	zcb_dedup_blocks;
 	uint64_t	zcb_embedded_blocks[NUM_BP_EMBEDDED_TYPES];
@@ -2723,7 +2745,7 @@ zdb_count_block(zdb_cb_t *zcb, zilog_t *zilog, const b
 	}
 
 	VERIFY3U(zio_wait(zio_claim(NULL, zcb->zcb_spa,
-	    refcnt ? 0 : spa_first_txg(zcb->zcb_spa),
+	    refcnt ? 0 : spa_min_claim_txg(zcb->zcb_spa),
 	    bp, NULL, NULL, ZIO_FLAG_CANFAIL)), ==, 0);
 }
 
@@ -2923,7 +2945,7 @@ claim_segment_impl_cb(uint64_t inner_offset, vdev_t *v
 	ASSERT(vdev_is_concrete(vd));
 
 	VERIFY0(metaslab_claim_impl(vd, offset, size,
-	    spa_first_txg(vd->vdev_spa)));
+	    spa_min_claim_txg(vd->vdev_spa)));
 }
 
 static void
@@ -2984,70 +3006,6 @@ zdb_claim_removing(spa_t *spa, zdb_cb_t *zcb)
 	spa_config_exit(spa, SCL_CONFIG, FTAG);
 }
 
-/*
- * vm_idxp is an in-out parameter which (for indirect vdevs) is the
- * index in vim_entries that has the first entry in this metaslab.  On
- * return, it will be set to the first entry after this metaslab.
- */
-static void
-zdb_leak_init_ms(metaslab_t *msp, uint64_t *vim_idxp)
-{
-	metaslab_group_t *mg = msp->ms_group;
-	vdev_t *vd = mg->mg_vd;
-	vdev_t *rvd = vd->vdev_spa->spa_root_vdev;
-
-	mutex_enter(&msp->ms_lock);
-	metaslab_unload(msp);
-
-	/*
-	 * We don't want to spend the CPU manipulating the size-ordered
-	 * tree, so clear the range_tree ops.
-	 */
-	msp->ms_tree->rt_ops = NULL;
-
-	(void) fprintf(stderr,
-	    "\rloading vdev %llu of %llu, metaslab %llu of %llu ...",
-	    (longlong_t)vd->vdev_id,
-	    (longlong_t)rvd->vdev_children,
-	    (longlong_t)msp->ms_id,
-	    (longlong_t)vd->vdev_ms_count);
-
-	/*
-	 * For leak detection, we overload the metaslab ms_tree to
-	 * contain allocated segments instead of free segments. As a
-	 * result, we can't use the normal metaslab_load/unload
-	 * interfaces.
-	 */
-	if (vd->vdev_ops == &vdev_indirect_ops) {
-		vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
-		for (; *vim_idxp < vdev_indirect_mapping_num_entries(vim);
-		    (*vim_idxp)++) {
-			vdev_indirect_mapping_entry_phys_t *vimep =
-			    &vim->vim_entries[*vim_idxp];
-			uint64_t ent_offset = DVA_MAPPING_GET_SRC_OFFSET(vimep);
-			uint64_t ent_len = DVA_GET_ASIZE(&vimep->vimep_dst);
-			ASSERT3U(ent_offset, >=, msp->ms_start);
-			if (ent_offset >= msp->ms_start + msp->ms_size)
-				break;
-
-			/*
-			 * Mappings do not cross metaslab boundaries,
-			 * because we create them by walking the metaslabs.
-			 */
-			ASSERT3U(ent_offset + ent_len, <=,
-			    msp->ms_start + msp->ms_size);
-			range_tree_add(msp->ms_tree, ent_offset, ent_len);
-		}
-	} else if (msp->ms_sm != NULL) {
-		VERIFY0(space_map_load(msp->ms_sm, msp->ms_tree, SM_ALLOC));
-	}
-
-	if (!msp->ms_loaded) {
-		msp->ms_loaded = B_TRUE;
-	}
-	mutex_exit(&msp->ms_lock);
-}
-
 /* ARGSUSED */
 static int
 increment_indirect_mapping_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx)
@@ -3104,7 +3062,243 @@ zdb_load_obsolete_counts(vdev_t *vd)
 	return (counts);
 }
 
+typedef struct checkpoint_sm_exclude_entry_arg {
+	vdev_t *cseea_vd;
+	uint64_t cseea_checkpoint_size;
+} checkpoint_sm_exclude_entry_arg_t;
+
+static int
+checkpoint_sm_exclude_entry_cb(maptype_t type, uint64_t offset, uint64_t size,
+    void *arg)
+{
+	checkpoint_sm_exclude_entry_arg_t *cseea = arg;
+	vdev_t *vd = cseea->cseea_vd;
+	metaslab_t *ms = vd->vdev_ms[offset >> vd->vdev_ms_shift];
+	uint64_t end = offset + size;
+
+	ASSERT(type == SM_FREE);
+
+	/*
+	 * Since the vdev_checkpoint_sm exists in the vdev level
+	 * and the ms_sm space maps exist in the metaslab level,
+	 * an entry in the checkpoint space map could theoretically
+	 * cross the boundaries of the metaslab that it belongs.
+	 *
+	 * In reality, because of the way that we populate and
+	 * manipulate the checkpoint's space maps currently,
+	 * there shouldn't be any entries that cross metaslabs.
+	 * Hence the assertion below.
+	 *
+	 * That said, there is no fundamental requirement that
+	 * the checkpoint's space map entries should not cross
+	 * metaslab boundaries. So if needed we could add code
+	 * that handles metaslab-crossing segments in the future.
+	 */
+	VERIFY3U(offset, >=, ms->ms_start);
+	VERIFY3U(end, <=, ms->ms_start + ms->ms_size);
+
+	/*
+	 * By removing the entry from the allocated segments we
+	 * also verify that the entry is there to begin with.
+	 */
+	mutex_enter(&ms->ms_lock);
+	range_tree_remove(ms->ms_allocatable, offset, size);
+	mutex_exit(&ms->ms_lock);
+
+	cseea->cseea_checkpoint_size += size;
+	return (0);
+}
+
 static void
+zdb_leak_init_vdev_exclude_checkpoint(vdev_t *vd, zdb_cb_t *zcb)
+{
+	spa_t *spa = vd->vdev_spa;
+	space_map_t *checkpoint_sm = NULL;
+	uint64_t checkpoint_sm_obj;
+
+	/*
+	 * If there is no vdev_top_zap, we are in a pool whose
+	 * version predates the pool checkpoint feature.
+	 */
+	if (vd->vdev_top_zap == 0)
+		return;
+
+	/*
+	 * If there is no reference of the vdev_checkpoint_sm in
+	 * the vdev_top_zap, then one of the following scenarios
+	 * is true:
+	 *
+	 * 1] There is no checkpoint
+	 * 2] There is a checkpoint, but no checkpointed blocks
+	 *    have been freed yet
+	 * 3] The current vdev is indirect
+	 *
+	 * In these cases we return immediately.
+	 */
+	if (zap_contains(spa_meta_objset(spa), vd->vdev_top_zap,
+	    VDEV_TOP_ZAP_POOL_CHECKPOINT_SM) != 0)
+		return;
+
+	VERIFY0(zap_lookup(spa_meta_objset(spa), vd->vdev_top_zap,
+	    VDEV_TOP_ZAP_POOL_CHECKPOINT_SM, sizeof (uint64_t), 1,
+	    &checkpoint_sm_obj));
+
+	checkpoint_sm_exclude_entry_arg_t cseea;
+	cseea.cseea_vd = vd;
+	cseea.cseea_checkpoint_size = 0;
+
+	VERIFY0(space_map_open(&checkpoint_sm, spa_meta_objset(spa),
+	    checkpoint_sm_obj, 0, vd->vdev_asize, vd->vdev_ashift));
+	space_map_update(checkpoint_sm);
+
+	VERIFY0(space_map_iterate(checkpoint_sm,
+	    checkpoint_sm_exclude_entry_cb, &cseea));
+	space_map_close(checkpoint_sm);
+
+	zcb->zcb_checkpoint_size += cseea.cseea_checkpoint_size;
+}
+
+static void
+zdb_leak_init_exclude_checkpoint(spa_t *spa, zdb_cb_t *zcb)
+{
+	vdev_t *rvd = spa->spa_root_vdev;
+	for (uint64_t c = 0; c < rvd->vdev_children; c++) {
+		ASSERT3U(c, ==, rvd->vdev_child[c]->vdev_id);
+		zdb_leak_init_vdev_exclude_checkpoint(rvd->vdev_child[c], zcb);
+	}
+}
+
+static void
+load_concrete_ms_allocatable_trees(spa_t *spa, maptype_t maptype)
+{
+	vdev_t *rvd = spa->spa_root_vdev;
+	for (uint64_t i = 0; i < rvd->vdev_children; i++) {
+		vdev_t *vd = rvd->vdev_child[i];
+
+		ASSERT3U(i, ==, vd->vdev_id);
+
+		if (vd->vdev_ops == &vdev_indirect_ops)
+			continue;
+
+		for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
+			metaslab_t *msp = vd->vdev_ms[m];
+
+			(void) fprintf(stderr,
+			    "\rloading concrete vdev %llu, "
+			    "metaslab %llu of %llu ...",
+			    (longlong_t)vd->vdev_id,
+			    (longlong_t)msp->ms_id,
+			    (longlong_t)vd->vdev_ms_count);
+
+			mutex_enter(&msp->ms_lock);
+			metaslab_unload(msp);
+
+			/*
+			 * We don't want to spend the CPU manipulating the
+			 * size-ordered tree, so clear the range_tree ops.
+			 */
+			msp->ms_allocatable->rt_ops = NULL;
+
+			if (msp->ms_sm != NULL) {
+				VERIFY0(space_map_load(msp->ms_sm,
+				    msp->ms_allocatable, maptype));
+			}
+			if (!msp->ms_loaded)
+				msp->ms_loaded = B_TRUE;
+			mutex_exit(&msp->ms_lock);
+		}
+	}
+}
+
+/*
+ * vm_idxp is an in-out parameter which (for indirect vdevs) is the
+ * index in vim_entries that has the first entry in this metaslab.
+ * On return, it will be set to the first entry after this metaslab.
+ */
+static void
+load_indirect_ms_allocatable_tree(vdev_t *vd, metaslab_t *msp,
+    uint64_t *vim_idxp)
+{
+	vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
+
+	mutex_enter(&msp->ms_lock);
+	metaslab_unload(msp);
+
+	/*
+	 * We don't want to spend the CPU manipulating the
+	 * size-ordered tree, so clear the range_tree ops.
+	 */
+	msp->ms_allocatable->rt_ops = NULL;
+
+	for (; *vim_idxp < vdev_indirect_mapping_num_entries(vim);
+	    (*vim_idxp)++) {
+		vdev_indirect_mapping_entry_phys_t *vimep =
+		    &vim->vim_entries[*vim_idxp];
+		uint64_t ent_offset = DVA_MAPPING_GET_SRC_OFFSET(vimep);
+		uint64_t ent_len = DVA_GET_ASIZE(&vimep->vimep_dst);
+		ASSERT3U(ent_offset, >=, msp->ms_start);
+		if (ent_offset >= msp->ms_start + msp->ms_size)
+			break;
+
+		/*
+		 * Mappings do not cross metaslab boundaries,
+		 * because we create them by walking the metaslabs.
+		 */
+		ASSERT3U(ent_offset + ent_len, <=,
+		    msp->ms_start + msp->ms_size);
+		range_tree_add(msp->ms_allocatable, ent_offset, ent_len);
+	}
+
+	if (!msp->ms_loaded)
+		msp->ms_loaded = B_TRUE;
+	mutex_exit(&msp->ms_lock);
+}
+
+static void
+zdb_leak_init_prepare_indirect_vdevs(spa_t *spa, zdb_cb_t *zcb)
+{
+	vdev_t *rvd = spa->spa_root_vdev;
+	for (uint64_t c = 0; c < rvd->vdev_children; c++) {
+		vdev_t *vd = rvd->vdev_child[c];
+
+		ASSERT3U(c, ==, vd->vdev_id);
+
+		if (vd->vdev_ops != &vdev_indirect_ops)
+			continue;
+
+		/*
+		 * Note: we don't check for mapping leaks on
+		 * removing vdevs because their ms_allocatable's
+		 * are used to look for leaks in allocated space.
+		 */
+		zcb->zcb_vd_obsolete_counts[c] = zdb_load_obsolete_counts(vd);
+
+		/*
+		 * Normally, indirect vdevs don't have any
+		 * metaslabs.  We want to set them up for
+		 * zio_claim().
+		 */
+		VERIFY0(vdev_metaslab_init(vd, 0));
+
+		vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
+		uint64_t vim_idx = 0;
+		for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
+
+			(void) fprintf(stderr,
+			    "\rloading indirect vdev %llu, "
+			    "metaslab %llu of %llu ...",
+			    (longlong_t)vd->vdev_id,
+			    (longlong_t)vd->vdev_ms[m]->ms_id,
+			    (longlong_t)vd->vdev_ms_count);
+
+			load_indirect_ms_allocatable_tree(vd, vd->vdev_ms[m],
+			    &vim_idx);
+		}
+		ASSERT3U(vim_idx, ==, vdev_indirect_mapping_num_entries(vim));
+	}
+}
+
+static void
 zdb_leak_init(spa_t *spa, zdb_cb_t *zcb)
 {
 	zcb->zcb_spa = spa;
@@ -3115,7 +3309,7 @@ zdb_leak_init(spa_t *spa, zdb_cb_t *zcb)
 
 		/*
 		 * We are going to be changing the meaning of the metaslab's
-		 * ms_tree.  Ensure that the allocator doesn't try to
+		 * ms_allocatable.  Ensure that the allocator doesn't try to
 		 * use the tree.
 		 */
 		spa->spa_normal_class->mc_ops = &zdb_metaslab_ops;
@@ -3125,39 +3319,37 @@ zdb_leak_init(spa_t *spa, zdb_cb_t *zcb)
 		    umem_zalloc(rvd->vdev_children * sizeof (uint32_t *),
 		    UMEM_NOFAIL);
 
+		/*
+		 * For leak detection, we overload the ms_allocatable trees
+		 * to contain allocated segments instead of free segments.
+		 * As a result, we can't use the normal metaslab_load/unload
+		 * interfaces.
+		 */
+		zdb_leak_init_prepare_indirect_vdevs(spa, zcb);
+		load_concrete_ms_allocatable_trees(spa, SM_ALLOC);
 
-		for (uint64_t c = 0; c < rvd->vdev_children; c++) {
-			vdev_t *vd = rvd->vdev_child[c];
-			uint64_t vim_idx = 0;
+		/*
+		 * On load_concrete_ms_allocatable_trees() we loaded all the
+		 * allocated entries from the ms_sm to the ms_allocatable for
+		 * each metaslab. If the pool has a checkpoint or is in the
+		 * middle of discarding a checkpoint, some of these blocks
+		 * may have been freed but their ms_sm may not have been
+		 * updated because they are referenced by the checkpoint. In
+		 * order to avoid false-positives during leak-detection, we
+		 * go through the vdev's checkpoint space map and exclude all
+		 * its entries from their relevant ms_allocatable.
+		 *
+		 * We also aggregate the space held by the checkpoint and add
+		 * it to zcb_checkpoint_size.
+		 *
+		 * Note that at this point we are also verifying that all the
+		 * entries on the checkpoint_sm are marked as allocated in
+		 * the ms_sm of their relevant metaslab.
+		 * [see comment in checkpoint_sm_exclude_entry_cb()]
+		 */
+		zdb_leak_init_exclude_checkpoint(spa, zcb);
 
-			ASSERT3U(c, ==, vd->vdev_id);
-
-			/*
-			 * Note: we don't check for mapping leaks on
-			 * removing vdevs because their ms_tree's are
-			 * used to look for leaks in allocated space.
-			 */
-			if (vd->vdev_ops == &vdev_indirect_ops) {
-				zcb->zcb_vd_obsolete_counts[c] =
-				    zdb_load_obsolete_counts(vd);
-
-				/*
-				 * Normally, indirect vdevs don't have any
-				 * metaslabs.  We want to set them up for
-				 * zio_claim().
-				 */
-				VERIFY0(vdev_metaslab_init(vd, 0));
-			}
-
-			for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
-				zdb_leak_init_ms(vd->vdev_ms[m], &vim_idx);
-			}
-			if (vd->vdev_ops == &vdev_indirect_ops) {
-				ASSERT3U(vim_idx, ==,
-				    vdev_indirect_mapping_num_entries(
-				    vd->vdev_indirect_mapping));
-			}
-		}
+		/* for cleaner progress output */
 		(void) fprintf(stderr, "\n");
 
 		if (bpobj_is_open(&dp->dp_obsolete_bpobj)) {
@@ -3166,12 +3358,16 @@ zdb_leak_init(spa_t *spa, zdb_cb_t *zcb)
 			(void) bpobj_iterate_nofree(&dp->dp_obsolete_bpobj,
 			    increment_indirect_mapping_cb, zcb, NULL);
 		}
+	} else {
+		/*
+		 * If leak tracing is disabled, we still need to consider
+		 * any checkpointed space in our space verification.
+		 */
+		zcb->zcb_checkpoint_size += spa_get_checkpoint_space(spa);
 	}
 
 	spa_config_enter(spa, SCL_CONFIG, FTAG, RW_READER);
-
 	zdb_ddt_leak_init(spa, zcb);
-
 	spa_config_exit(spa, SCL_CONFIG, FTAG);
 }
 
@@ -3198,7 +3394,7 @@ zdb_check_for_obsolete_leaks(vdev_t *vd, zdb_cb_t *zcb
 		for (uint64_t inner_offset = 0;
 		    inner_offset < DVA_GET_ASIZE(&vimep->vimep_dst);
 		    inner_offset += 1 << vd->vdev_ashift) {
-			if (range_tree_contains(msp->ms_tree,
+			if (range_tree_contains(msp->ms_allocatable,
 			    offset + inner_offset, 1 << vd->vdev_ashift)) {
 				obsolete_bytes += 1 << vd->vdev_ashift;
 			}
@@ -3264,23 +3460,23 @@ zdb_leak_fini(spa_t *spa, zdb_cb_t *zcb)
 				ASSERT3P(mg, ==, msp->ms_group);
 
 				/*
-				 * The ms_tree has been overloaded to
-				 * contain allocated segments. Now that we
-				 * finished traversing all blocks, any
-				 * block that remains in the ms_tree
+				 * ms_allocatable has been overloaded
+				 * to contain allocated segments. Now that
+				 * we finished traversing all blocks, any
+				 * block that remains in the ms_allocatable
 				 * represents an allocated block that we
 				 * did not claim during the traversal.
 				 * Claimed blocks would have been removed
-				 * from the ms_tree.  For indirect vdevs,
-				 * space remaining in the tree represents
-				 * parts of the mapping that are not
-				 * referenced, which is not a bug.
+				 * from the ms_allocatable.  For indirect
+				 * vdevs, space remaining in the tree
+				 * represents parts of the mapping that are
+				 * not referenced, which is not a bug.
 				 */
 				if (vd->vdev_ops == &vdev_indirect_ops) {
-					range_tree_vacate(msp->ms_tree,
+					range_tree_vacate(msp->ms_allocatable,
 					    NULL, NULL);
 				} else {
-					range_tree_vacate(msp->ms_tree,
+					range_tree_vacate(msp->ms_allocatable,
 					    zdb_leak, vd);
 				}
 
@@ -3403,7 +3599,7 @@ dump_block_stats(spa_t *spa)
 
 	total_alloc = norm_alloc + metaslab_class_get_alloc(spa_log_class(spa));
 	total_found = tzb->zb_asize - zcb.zcb_dedup_asize +
-	    zcb.zcb_removing_size;
+	    zcb.zcb_removing_size + zcb.zcb_checkpoint_size;
 
 	if (total_found == total_alloc) {
 		if (!dump_opt['L'])
@@ -3812,7 +4008,385 @@ verify_device_removal_feature_counts(spa_t *spa)
 	return (ret);
 }
 
+#define	BOGUS_SUFFIX "_CHECKPOINTED_UNIVERSE"
+/*
+ * Import the checkpointed state of the pool specified by the target
+ * parameter as readonly. The function also accepts a pool config
+ * as an optional parameter, else it attempts to infer the config by
+ * the name of the target pool.
+ *
+ * Note that the checkpointed state's pool name will be the name of
+ * the original pool with the above suffix appened to it. In addition,
+ * if the target is not a pool name (e.g. a path to a dataset) then
+ * the new_path parameter is populated with the updated path to
+ * reflect the fact that we are looking into the checkpointed state.
+ *
+ * The function returns a newly-allocated copy of the name of the
+ * pool containing the checkpointed state. When this copy is no
+ * longer needed it should be freed with free(3C). Same thing
+ * applies to the new_path parameter if allocated.
+ */
+static char *
+import_checkpointed_state(char *target, nvlist_t *cfg, char **new_path)
+{
+	int error = 0;
+	char *poolname, *bogus_name;
+
+	/* If the target is not a pool, the extract the pool name */
+	char *path_start = strchr(target, '/');
+	if (path_start != NULL) {
+		size_t poolname_len = path_start - target;
+		poolname = strndup(target, poolname_len);
+	} else {
+		poolname = target;
+	}
+
+	if (cfg == NULL) {
+		error = spa_get_stats(poolname, &cfg, NULL, 0);
+		if (error != 0) {
+			fatal("Tried to read config of pool \"%s\" but "
+			    "spa_get_stats() failed with error %d\n",
+			    poolname, error);
+		}
+	}
+
+	(void) asprintf(&bogus_name, "%s%s", poolname, BOGUS_SUFFIX);
+	fnvlist_add_string(cfg, ZPOOL_CONFIG_POOL_NAME, bogus_name);
+
+	error = spa_import(bogus_name, cfg, NULL,
+	    ZFS_IMPORT_MISSING_LOG | ZFS_IMPORT_CHECKPOINT);
+	if (error != 0) {
+		fatal("Tried to import pool \"%s\" but spa_import() failed "
+		    "with error %d\n", bogus_name, error);
+	}
+
+	if (new_path != NULL && path_start != NULL)
+		(void) asprintf(new_path, "%s%s", bogus_name, path_start);
+
+	if (target != poolname)
+		free(poolname);
+
+	return (bogus_name);
+}
+
+typedef struct verify_checkpoint_sm_entry_cb_arg {
+	vdev_t *vcsec_vd;
+
+	/* the following fields are only used for printing progress */
+	uint64_t vcsec_entryid;
+	uint64_t vcsec_num_entries;
+} verify_checkpoint_sm_entry_cb_arg_t;
+
+#define	ENTRIES_PER_PROGRESS_UPDATE 10000
+
+static int
+verify_checkpoint_sm_entry_cb(maptype_t type, uint64_t offset, uint64_t size,
+    void *arg)
+{
+	verify_checkpoint_sm_entry_cb_arg_t *vcsec = arg;
+	vdev_t *vd = vcsec->vcsec_vd;
+	metaslab_t *ms = vd->vdev_ms[offset >> vd->vdev_ms_shift];
+	uint64_t end = offset + size;
+
+	ASSERT(type == SM_FREE);
+
+	if ((vcsec->vcsec_entryid % ENTRIES_PER_PROGRESS_UPDATE) == 0) {
+		(void) fprintf(stderr,
+		    "\rverifying vdev %llu, space map entry %llu of %llu ...",
+		    (longlong_t)vd->vdev_id,
+		    (longlong_t)vcsec->vcsec_entryid,
+		    (longlong_t)vcsec->vcsec_num_entries);
+	}
+	vcsec->vcsec_entryid++;
+
+	/*
+	 * See comment in checkpoint_sm_exclude_entry_cb()
+	 */
+	VERIFY3U(offset, >=, ms->ms_start);
+	VERIFY3U(end, <=, ms->ms_start + ms->ms_size);
+
+	/*
+	 * The entries in the vdev_checkpoint_sm should be marked as
+	 * allocated in the checkpointed state of the pool, therefore
+	 * their respective ms_allocateable trees should not contain them.
+	 */
+	mutex_enter(&ms->ms_lock);
+	range_tree_verify(ms->ms_allocatable, offset, size);
+	mutex_exit(&ms->ms_lock);
+
+	return (0);
+}
+
+/*
+ * Verify that all segments in the vdev_checkpoint_sm are allocated
+ * according to the checkpoint's ms_sm (i.e. are not in the checkpoint's
+ * ms_allocatable).
+ *
+ * Do so by comparing the checkpoint space maps (vdev_checkpoint_sm) of
+ * each vdev in the current state of the pool to the metaslab space maps
+ * (ms_sm) of the checkpointed state of the pool.
+ *
+ * Note that the function changes the state of the ms_allocatable
+ * trees of the current spa_t. The entries of these ms_allocatable
+ * trees are cleared out and then repopulated from with the free
+ * entries of their respective ms_sm space maps.
+ */
 static void
+verify_checkpoint_vdev_spacemaps(spa_t *checkpoint, spa_t *current)
+{
+	vdev_t *ckpoint_rvd = checkpoint->spa_root_vdev;
+	vdev_t *current_rvd = current->spa_root_vdev;
+
+	load_concrete_ms_allocatable_trees(checkpoint, SM_FREE);
+
+	for (uint64_t c = 0; c < ckpoint_rvd->vdev_children; c++) {
+		vdev_t *ckpoint_vd = ckpoint_rvd->vdev_child[c];
+		vdev_t *current_vd = current_rvd->vdev_child[c];
+
+		space_map_t *checkpoint_sm = NULL;
+		uint64_t checkpoint_sm_obj;
+
+		if (ckpoint_vd->vdev_ops == &vdev_indirect_ops) {
+			/*
+			 * Since we don't allow device removal in a pool
+			 * that has a checkpoint, we expect that all removed
+			 * vdevs were removed from the pool before the
+			 * checkpoint.
+			 */
+			ASSERT3P(current_vd->vdev_ops, ==, &vdev_indirect_ops);
+			continue;
+		}
+
+		/*
+		 * If the checkpoint space map doesn't exist, then nothing
+		 * here is checkpointed so there's nothing to verify.
+		 */
+		if (current_vd->vdev_top_zap == 0 ||
+		    zap_contains(spa_meta_objset(current),
+		    current_vd->vdev_top_zap,
+		    VDEV_TOP_ZAP_POOL_CHECKPOINT_SM) != 0)
+			continue;
+
+		VERIFY0(zap_lookup(spa_meta_objset(current),
+		    current_vd->vdev_top_zap, VDEV_TOP_ZAP_POOL_CHECKPOINT_SM,
+		    sizeof (uint64_t), 1, &checkpoint_sm_obj));
+
+		VERIFY0(space_map_open(&checkpoint_sm, spa_meta_objset(current),
+		    checkpoint_sm_obj, 0, current_vd->vdev_asize,
+		    current_vd->vdev_ashift));
+		space_map_update(checkpoint_sm);
+
+		verify_checkpoint_sm_entry_cb_arg_t vcsec;
+		vcsec.vcsec_vd = ckpoint_vd;
+		vcsec.vcsec_entryid = 0;
+		vcsec.vcsec_num_entries =
+		    space_map_length(checkpoint_sm) / sizeof (uint64_t);
+		VERIFY0(space_map_iterate(checkpoint_sm,
+		    verify_checkpoint_sm_entry_cb, &vcsec));
+		dump_spacemap(current->spa_meta_objset, checkpoint_sm);
+		space_map_close(checkpoint_sm);
+	}
+
+	/*
+	 * If we've added vdevs since we took the checkpoint, ensure
+	 * that their checkpoint space maps are empty.
+	 */
+	if (ckpoint_rvd->vdev_children < current_rvd->vdev_children) {
+		for (uint64_t c = ckpoint_rvd->vdev_children;
+		    c < current_rvd->vdev_children; c++) {
+			vdev_t *current_vd = current_rvd->vdev_child[c];
+			ASSERT3P(current_vd->vdev_checkpoint_sm, ==, NULL);
+		}
+	}
+
+	/* for cleaner progress output */
+	(void) fprintf(stderr, "\n");
+}
+
+/*
+ * Verifies that all space that's allocated in the checkpoint is
+ * still allocated in the current version, by checking that everything
+ * in checkpoint's ms_allocatable (which is actually allocated, not
+ * allocatable/free) is not present in current's ms_allocatable.
+ *
+ * Note that the function changes the state of the ms_allocatable
+ * trees of both spas when called. The entries of all ms_allocatable
+ * trees are cleared out and then repopulated from their respective
+ * ms_sm space maps. In the checkpointed state we load the allocated
+ * entries, and in the current state we load the free entries.
+ */
+static void
+verify_checkpoint_ms_spacemaps(spa_t *checkpoint, spa_t *current)
+{
+	vdev_t *ckpoint_rvd = checkpoint->spa_root_vdev;
+	vdev_t *current_rvd = current->spa_root_vdev;
+
+	load_concrete_ms_allocatable_trees(checkpoint, SM_ALLOC);
+	load_concrete_ms_allocatable_trees(current, SM_FREE);
+
+	for (uint64_t i = 0; i < ckpoint_rvd->vdev_children; i++) {
+		vdev_t *ckpoint_vd = ckpoint_rvd->vdev_child[i];
+		vdev_t *current_vd = current_rvd->vdev_child[i];
+
+		if (ckpoint_vd->vdev_ops == &vdev_indirect_ops) {
+			/*
+			 * See comment in verify_checkpoint_vdev_spacemaps()
+			 */
+			ASSERT3P(current_vd->vdev_ops, ==, &vdev_indirect_ops);
+			continue;
+		}
+
+		for (uint64_t m = 0; m < ckpoint_vd->vdev_ms_count; m++) {
+			metaslab_t *ckpoint_msp = ckpoint_vd->vdev_ms[m];
+			metaslab_t *current_msp = current_vd->vdev_ms[m];
+
+			(void) fprintf(stderr,
+			    "\rverifying vdev %llu of %llu, "
+			    "metaslab %llu of %llu ...",
+			    (longlong_t)current_vd->vdev_id,
+			    (longlong_t)current_rvd->vdev_children,
+			    (longlong_t)current_vd->vdev_ms[m]->ms_id,
+			    (longlong_t)current_vd->vdev_ms_count);
+
+			/*
+			 * We walk through the ms_allocatable trees that
+			 * are loaded with the allocated blocks from the
+			 * ms_sm spacemaps of the checkpoint. For each
+			 * one of these ranges we ensure that none of them
+			 * exists in the ms_allocatable trees of the
+			 * current state which are loaded with the ranges
+			 * that are currently free.
+			 *
+			 * This way we ensure that none of the blocks that
+			 * are part of the checkpoint were freed by mistake.
+			 */
+			range_tree_walk(ckpoint_msp->ms_allocatable,
+			    (range_tree_func_t *)range_tree_verify,
+			    current_msp->ms_allocatable);
+		}
+	}
+
+	/* for cleaner progress output */
+	(void) fprintf(stderr, "\n");
+}
+
+static void
+verify_checkpoint_blocks(spa_t *spa)
+{
+	spa_t *checkpoint_spa;
+	char *checkpoint_pool;
+	nvlist_t *config = NULL;
+	int error = 0;
+
+	/*
+	 * We import the checkpointed state of the pool (under a different
+	 * name) so we can do verification on it against the current state
+	 * of the pool.
+	 */
+	checkpoint_pool = import_checkpointed_state(spa->spa_name, config,
+	    NULL);
+	ASSERT(strcmp(spa->spa_name, checkpoint_pool) != 0);
+
+	error = spa_open(checkpoint_pool, &checkpoint_spa, FTAG);
+	if (error != 0) {
+		fatal("Tried to open pool \"%s\" but spa_open() failed with "
+		    "error %d\n", checkpoint_pool, error);
+	}
+
+	/*
+	 * Ensure that ranges in the checkpoint space maps of each vdev
+	 * are allocated according to the checkpointed state's metaslab
+	 * space maps.
+	 */
+	verify_checkpoint_vdev_spacemaps(checkpoint_spa, spa);
+
+	/*
+	 * Ensure that allocated ranges in the checkpoint's metaslab
+	 * space maps remain allocated in the metaslab space maps of
+	 * the current state.
+	 */
+	verify_checkpoint_ms_spacemaps(checkpoint_spa, spa);
+
+	/*
+	 * Once we are done, we get rid of the checkpointed state.
+	 */
+	spa_close(checkpoint_spa, FTAG);
+	free(checkpoint_pool);
+}
+
+static void
+dump_leftover_checkpoint_blocks(spa_t *spa)
+{
+	vdev_t *rvd = spa->spa_root_vdev;
+
+	for (uint64_t i = 0; i < rvd->vdev_children; i++) {
+		vdev_t *vd = rvd->vdev_child[i];
+
+		space_map_t *checkpoint_sm = NULL;
+		uint64_t checkpoint_sm_obj;
+
+		if (vd->vdev_top_zap == 0)
+			continue;
+
+		if (zap_contains(spa_meta_objset(spa), vd->vdev_top_zap,
+		    VDEV_TOP_ZAP_POOL_CHECKPOINT_SM) != 0)
+			continue;
+
+		VERIFY0(zap_lookup(spa_meta_objset(spa), vd->vdev_top_zap,
+		    VDEV_TOP_ZAP_POOL_CHECKPOINT_SM,
+		    sizeof (uint64_t), 1, &checkpoint_sm_obj));
+
+		VERIFY0(space_map_open(&checkpoint_sm, spa_meta_objset(spa),
+		    checkpoint_sm_obj, 0, vd->vdev_asize, vd->vdev_ashift));
+		space_map_update(checkpoint_sm);
+		dump_spacemap(spa->spa_meta_objset, checkpoint_sm);
+		space_map_close(checkpoint_sm);
+	}
+}
+
+static int
+verify_checkpoint(spa_t *spa)
+{
+	uberblock_t checkpoint;
+	int error;
+
+	if (!spa_feature_is_active(spa, SPA_FEATURE_POOL_CHECKPOINT))
+		return (0);
+
+	error = zap_lookup(spa->spa_meta_objset, DMU_POOL_DIRECTORY_OBJECT,
+	    DMU_POOL_ZPOOL_CHECKPOINT, sizeof (uint64_t),
+	    sizeof (uberblock_t) / sizeof (uint64_t), &checkpoint);
+
+	if (error == ENOENT) {
+		/*
+		 * If the feature is active but the uberblock is missing
+		 * then we must be in the middle of discarding the
+		 * checkpoint.
+		 */
+		(void) printf("\nPartially discarded checkpoint "
+		    "state found:\n");
+		dump_leftover_checkpoint_blocks(spa);
+		return (0);
+	} else if (error != 0) {
+		(void) printf("lookup error %d when looking for "
+		    "checkpointed uberblock in MOS\n", error);
+		return (error);
+	}
+	dump_uberblock(&checkpoint, "\nCheckpointed uberblock found:\n", "\n");
+
+	if (checkpoint.ub_checkpoint_txg == 0) {
+		(void) printf("\nub_checkpoint_txg not set in checkpointed "
+		    "uberblock\n");
+		error = 3;
+	}
+
+	if (error == 0)
+		verify_checkpoint_blocks(spa);
+
+	return (error);
+}
+
+static void
 dump_zpool(spa_t *spa)
 {
 	dsl_pool_t *dp = spa_get_dsl(spa);
@@ -3911,6 +4485,9 @@ dump_zpool(spa_t *spa)
 	if (dump_opt['h'])
 		dump_history(spa);
 
+	if (rc == 0 && !dump_opt['L'])
+		rc = verify_checkpoint(spa);
+
 	if (rc != 0) {
 		dump_debug_buffer();
 		exit(rc);
@@ -4413,6 +4990,7 @@ main(int argc, char **argv)
 	int rewind = ZPOOL_NEVER_REWIND;
 	char *spa_config_path_env;
 	boolean_t target_is_spa = B_TRUE;
+	nvlist_t *cfg = NULL;
 
 	(void) setrlimit(RLIMIT_NOFILE, &rl);
 	(void) enable_extended_FILE_stdio(-1, -1);
@@ -4429,7 +5007,7 @@ main(int argc, char **argv)
 		spa_config_path = spa_config_path_env;
 
 	while ((c = getopt(argc, argv,
-	    "AbcCdDeEFGhiI:lLmMo:Op:PqRsSt:uU:vVx:X")) != -1) {
+	    "AbcCdDeEFGhiI:klLmMo:Op:PqRsSt:uU:vVx:X")) != -1) {
 		switch (c) {
 		case 'b':
 		case 'c':
@@ -4454,6 +5032,7 @@ main(int argc, char **argv)
 		case 'A':
 		case 'e':
 		case 'F':
+		case 'k':
 		case 'L':
 		case 'P':
 		case 'q':
@@ -4559,7 +5138,7 @@ main(int argc, char **argv)
 		verbose = MAX(verbose, 1);
 
 	for (c = 0; c < 256; c++) {
-		if (dump_all && strchr("AeEFlLOPRSX", c) == NULL)
+		if (dump_all && strchr("AeEFklLOPRSX", c) == NULL)
 			dump_opt[c] = 1;
 		if (dump_opt[c])
 			dump_opt[c] += verbose;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Wed Mar 28 18:12:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 366F8F6E87F;
 Wed, 28 Mar 2018 18:12:08 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id DB00C7B071;
 Wed, 28 Mar 2018 18:12:07 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D5D4F6874;
 Wed, 28 Mar 2018 18:12:07 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SIC7ik011299;
 Wed, 28 Mar 2018 18:12:07 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SIC6ps011283;
 Wed, 28 Mar 2018 18:12:06 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803281812.w2SIC6ps011283@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 18:12:06 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331695 - vendor-sys/illumos/dist/common/zfs
 vendor-sys/illumos/dist/uts/common vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor-sys/illumos/dist/uts/common/fs/zfs/sys vendor-sys/illumo...
X-SVN-Group: vendor-sys
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: vendor-sys/illumos/dist/common/zfs
 vendor-sys/illumos/dist/uts/common vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor-sys/illumos/dist/uts/common/fs/zfs/sys
 vendor-sys/illumos/dist/uts/common/sys/fs ...
X-SVN-Commit-Revision: 331695
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 18:12:08 -0000

Author: mav
Date: Wed Mar 28 18:12:06 2018
New Revision: 331695
URL: https://svnweb.freebsd.org/changeset/base/331695

Log:
  9166 zfs storage pool checkpoint
  
  illumos/illumos-gate@8671400134a11c848244896ca51a7db4d0f69da4
  
  The idea of Storage Pool Checkpoint (aka zpool checkpoint) deals with
  exactly that.  It can be thought of as a “pool-wide snapshot” (or a
  variation of extreme rewind that doesn’t corrupt your data).  It remembers
  the entire state of the pool at the point that it was taken and the user
  can revert back to it later or discard it.  Its generic use case is an
  administrator that is about to perform a set of destructive actions to ZFS
  as part of a critical procedure.  She takes a checkpoint of the pool before
  performing the actions, then rewinds back to it if one of them fails or puts
  the pool into an unexpected state.  Otherwise, she discards it.  With the
  assumption that no one else is making modifications to ZFS, she basically
  wraps all these actions into a “high-level transaction”.
  
  Reviewed by: Matthew Ahrens 
  Reviewed by: John Kennedy 
  Reviewed by: Dan Kimmel 
  Approved by: Richard Lowe 
  Author: Serapheim Dimitropoulos 

Modified:
  vendor-sys/illumos/dist/common/zfs/zfeature_common.c
  vendor-sys/illumos/dist/common/zfs/zfeature_common.h
  vendor-sys/illumos/dist/common/zfs/zpool_prop.c
  vendor-sys/illumos/dist/uts/common/Makefile.files
  vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_traverse.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dnode_sync.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_destroy.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dir.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_pool.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_synctask.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_userhold.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/range_tree.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/spa_misc.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/space_map.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dmu.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_dir.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_pool.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_synctask.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/metaslab.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/metaslab_impl.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/range_tree.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/spa.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/spa_impl.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/space_map.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/uberblock_impl.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/vdev.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/vdev_impl.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/vdev_removal.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zio.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zthr.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/uberblock.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_indirect.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_label.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_removal.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zcp.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_synctask.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zil.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zio.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zthr.c
  vendor-sys/illumos/dist/uts/common/sys/fs/zfs.h

Changes in other areas also in this revision:
Modified:
  vendor/illumos/dist/cmd/zdb/zdb.c
  vendor/illumos/dist/cmd/zdb/zdb_il.c
  vendor/illumos/dist/cmd/zpool/zpool_main.c
  vendor/illumos/dist/cmd/ztest/ztest.c
  vendor/illumos/dist/lib/libzfs/common/libzfs.h
  vendor/illumos/dist/lib/libzfs/common/libzfs_pool.c
  vendor/illumos/dist/lib/libzfs/common/libzfs_util.c
  vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.c
  vendor/illumos/dist/lib/libzfs_core/common/libzfs_core.h
  vendor/illumos/dist/man/man1m/zdb.1m
  vendor/illumos/dist/man/man1m/zpool.1m
  vendor/illumos/dist/man/man5/zpool-features.5

Modified: vendor-sys/illumos/dist/common/zfs/zfeature_common.c
==============================================================================
--- vendor-sys/illumos/dist/common/zfs/zfeature_common.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/common/zfs/zfeature_common.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright (c) 2011, 2015 by Delphix. All rights reserved.
+ * Copyright (c) 2011, 2017 by Delphix. All rights reserved.
  * Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
  * Copyright (c) 2013, Joyent, Inc. All rights reserved.
  * Copyright (c) 2014, Nexenta Systems, Inc. All rights reserved.
@@ -224,6 +224,11 @@ zpool_feature_init(void)
 	    "Blocks which compress very well use even less space.",
 	    ZFEATURE_FLAG_MOS | ZFEATURE_FLAG_ACTIVATE_ON_ENABLE,
 	    NULL);
+
+	zfeature_register(SPA_FEATURE_POOL_CHECKPOINT,
+	    "com.delphix:zpool_checkpoint", "zpool_checkpoint",
+	    "Pool state can be checkpointed, allowing rewind later.",
+	    ZFEATURE_FLAG_READONLY_COMPAT, NULL);
 
 	static const spa_feature_t large_blocks_deps[] = {
 		SPA_FEATURE_EXTENSIBLE_DATASET,

Modified: vendor-sys/illumos/dist/common/zfs/zfeature_common.h
==============================================================================
--- vendor-sys/illumos/dist/common/zfs/zfeature_common.h	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/common/zfs/zfeature_common.h	Wed Mar 28 18:12:06 2018	(r331695)
@@ -20,7 +20,7 @@
  */
 
 /*
- * Copyright (c) 2011, 2015 by Delphix. All rights reserved.
+ * Copyright (c) 2011, 2017 by Delphix. All rights reserved.
  * Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
  * Copyright (c) 2013, Joyent, Inc. All rights reserved.
  * Copyright (c) 2014 Integros [integros.com]
@@ -58,6 +58,7 @@ typedef enum spa_feature {
 	SPA_FEATURE_EDONR,
 	SPA_FEATURE_DEVICE_REMOVAL,
 	SPA_FEATURE_OBSOLETE_COUNTS,
+	SPA_FEATURE_POOL_CHECKPOINT,
 	SPA_FEATURES
 } spa_feature_t;
 

Modified: vendor-sys/illumos/dist/common/zfs/zpool_prop.c
==============================================================================
--- vendor-sys/illumos/dist/common/zfs/zpool_prop.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/common/zfs/zpool_prop.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -21,7 +21,7 @@
 /*
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
- * Copyright (c) 2012, 2014 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  * Copyright (c) 2014 Integros [integros.com]
  */
 
@@ -82,6 +82,8 @@ zpool_prop_init(void)
 	    ZFS_TYPE_POOL, "", "FREE");
 	zprop_register_number(ZPOOL_PROP_FREEING, "freeing", 0, PROP_READONLY,
 	    ZFS_TYPE_POOL, "", "FREEING");
+	zprop_register_number(ZPOOL_PROP_CHECKPOINT, "checkpoint", 0,
+	    PROP_READONLY, ZFS_TYPE_POOL, "", "CKPOINT");
 	zprop_register_number(ZPOOL_PROP_LEAKED, "leaked", 0, PROP_READONLY,
 	    ZFS_TYPE_POOL, "", "LEAKED");
 	zprop_register_number(ZPOOL_PROP_ALLOCATED, "allocated", 0,

Modified: vendor-sys/illumos/dist/uts/common/Makefile.files
==============================================================================
--- vendor-sys/illumos/dist/uts/common/Makefile.files	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/Makefile.files	Wed Mar 28 18:12:06 2018	(r331695)
@@ -1385,6 +1385,7 @@ ZFS_COMMON_OBJS +=		\
 	edonr_zfs.o		\
 	skein_zfs.o		\
 	spa.o			\
+	spa_checkpoint.o	\
 	spa_config.o		\
 	spa_errlog.o		\
 	spa_history.o		\

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_traverse.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_traverse.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_traverse.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2016 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2018 by Delphix. All rights reserved.
  */
 
 #include 
@@ -31,6 +31,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -80,8 +81,8 @@ traverse_zil_block(zilog_t *zilog, blkptr_t *bp, void 
 	if (BP_IS_HOLE(bp))
 		return (0);
 
-	if (claim_txg == 0 && bp->blk_birth >= spa_first_txg(td->td_spa))
-		return (0);
+	if (claim_txg == 0 && bp->blk_birth >= spa_min_claim_txg(td->td_spa))
+		return (-1);
 
 	SET_BOOKMARK(&zb, td->td_objset, ZB_ZIL_OBJECT, ZB_ZIL_LEVEL,
 	    bp->blk_cksum.zc_word[ZIL_ZC_SEQ]);
@@ -120,20 +121,17 @@ static void
 traverse_zil(traverse_data_t *td, zil_header_t *zh)
 {
 	uint64_t claim_txg = zh->zh_claim_txg;
-	zilog_t *zilog;
 
 	/*
 	 * We only want to visit blocks that have been claimed but not yet
-	 * replayed; plus, in read-only mode, blocks that are already stable.
+	 * replayed; plus blocks that are already stable in read-only mode.
 	 */
 	if (claim_txg == 0 && spa_writeable(td->td_spa))
 		return;
 
-	zilog = zil_alloc(spa_get_dsl(td->td_spa)->dp_meta_objset, zh);
-
+	zilog_t *zilog = zil_alloc(spa_get_dsl(td->td_spa)->dp_meta_objset, zh);
 	(void) zil_parse(zilog, traverse_zil_block, traverse_zil_record, td,
 	    claim_txg);
-
 	zil_free(zilog);
 }
 

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -1083,6 +1083,8 @@ dnode_hold_impl(objset_t *os, uint64_t object, int fla
 	    (spa_is_root(os->os_spa) &&
 	    spa_config_held(os->os_spa, SCL_STATE, RW_WRITER)));
 
+	ASSERT((flag & DNODE_MUST_BE_ALLOCATED) || (flag & DNODE_MUST_BE_FREE));
+
 	if (object == DMU_USERUSED_OBJECT || object == DMU_GROUPUSED_OBJECT) {
 		dn = (object == DMU_USERUSED_OBJECT) ?
 		    DMU_USERUSED_DNODE(os) : DMU_GROUPUSED_DNODE(os);
@@ -1176,7 +1178,7 @@ dnode_hold_impl(objset_t *os, uint64_t object, int fla
 		mutex_exit(&dn->dn_mtx);
 		zrl_remove(&dnh->dnh_zrlock);
 		dbuf_rele(db, FTAG);
-		return (type == DMU_OT_NONE ? ENOENT : EEXIST);
+		return ((flag & DNODE_MUST_BE_ALLOCATED) ? ENOENT : EEXIST);
 	}
 	if (refcount_add(&dn->dn_holds, tag) == 1)
 		dbuf_add_ref(db, dnh);

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dnode_sync.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dnode_sync.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dnode_sync.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -608,7 +608,7 @@ dnode_sync(dnode_t *dn, dmu_tx_t *tx)
 		    dn->dn_maxblkid == 0 || list_head(list) != NULL ||
 		    dn->dn_next_blksz[txgoff] >> SPA_MINBLOCKSHIFT ==
 		    dnp->dn_datablkszsec ||
-		    range_tree_space(dn->dn_free_ranges[txgoff]) != 0);
+		    !range_tree_is_empty(dn->dn_free_ranges[txgoff]));
 		dnp->dn_datablkszsec =
 		    dn->dn_next_blksz[txgoff] >> SPA_MINBLOCKSHIFT;
 		dn->dn_next_blksz[txgoff] = 0;

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -46,6 +46,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -205,7 +206,9 @@ int
 dsl_dataset_block_kill(dsl_dataset_t *ds, const blkptr_t *bp, dmu_tx_t *tx,
     boolean_t async)
 {
-	int used = bp_get_dsize_sync(tx->tx_pool->dp_spa, bp);
+	spa_t *spa = dmu_tx_pool(tx)->dp_spa;
+
+	int used = bp_get_dsize_sync(spa, bp);
 	int compressed = BP_GET_PSIZE(bp);
 	int uncompressed = BP_GET_UCSIZE(bp);
 
@@ -3717,7 +3720,8 @@ dsl_dataset_set_refquota(const char *dsname, zprop_sou
 	ddsqra.ddsqra_value = refquota;
 
 	return (dsl_sync_task(dsname, dsl_dataset_set_refquota_check,
-	    dsl_dataset_set_refquota_sync, &ddsqra, 0, ZFS_SPACE_CHECK_NONE));
+	    dsl_dataset_set_refquota_sync, &ddsqra, 0,
+	    ZFS_SPACE_CHECK_EXTRA_RESERVED));
 }
 
 static int
@@ -3832,8 +3836,8 @@ dsl_dataset_set_refreservation(const char *dsname, zpr
 	ddsqra.ddsqra_value = refreservation;
 
 	return (dsl_sync_task(dsname, dsl_dataset_set_refreservation_check,
-	    dsl_dataset_set_refreservation_sync, &ddsqra,
-	    0, ZFS_SPACE_CHECK_NONE));
+	    dsl_dataset_set_refreservation_sync, &ddsqra, 0,
+	    ZFS_SPACE_CHECK_EXTRA_RESERVED));
 }
 
 /*

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_destroy.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_destroy.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_destroy.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -1022,7 +1022,7 @@ dsl_destroy_head(const char *name)
 
 		error = dsl_sync_task(name, dsl_destroy_head_check,
 		    dsl_destroy_head_begin_sync, &ddha,
-		    0, ZFS_SPACE_CHECK_NONE);
+		    0, ZFS_SPACE_CHECK_DESTROY);
 		if (error != 0)
 			return (error);
 
@@ -1047,7 +1047,7 @@ dsl_destroy_head(const char *name)
 	}
 
 	return (dsl_sync_task(name, dsl_destroy_head_check,
-	    dsl_destroy_head_sync, &ddha, 0, ZFS_SPACE_CHECK_NONE));
+	    dsl_destroy_head_sync, &ddha, 0, ZFS_SPACE_CHECK_DESTROY));
 }
 
 /*

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dir.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dir.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dir.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2016 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  * Copyright (c) 2013 Martin Matuska. All rights reserved.
  * Copyright (c) 2014 Joyent, Inc. All rights reserved.
  * Copyright (c) 2014 Spectra Logic Corporation, All rights reserved.
@@ -921,14 +921,14 @@ dsl_dir_create_sync(dsl_pool_t *dp, dsl_dir_t *pds, co
 	ddobj = dmu_object_alloc(mos, DMU_OT_DSL_DIR, 0,
 	    DMU_OT_DSL_DIR, sizeof (dsl_dir_phys_t), tx);
 	if (pds) {
-		VERIFY(0 == zap_add(mos, dsl_dir_phys(pds)->dd_child_dir_zapobj,
+		VERIFY0(zap_add(mos, dsl_dir_phys(pds)->dd_child_dir_zapobj,
 		    name, sizeof (uint64_t), 1, &ddobj, tx));
 	} else {
 		/* it's the root dir */
-		VERIFY(0 == zap_add(mos, DMU_POOL_DIRECTORY_OBJECT,
+		VERIFY0(zap_add(mos, DMU_POOL_DIRECTORY_OBJECT,
 		    DMU_POOL_ROOT_DATASET, sizeof (uint64_t), 1, &ddobj, tx));
 	}
-	VERIFY(0 == dmu_bonus_hold(mos, ddobj, FTAG, &dbuf));
+	VERIFY0(dmu_bonus_hold(mos, ddobj, FTAG, &dbuf));
 	dmu_buf_will_dirty(dbuf, tx);
 	ddphys = dbuf->db_data;
 
@@ -967,6 +967,12 @@ dsl_dir_get_used(dsl_dir_t *dd)
 }
 
 uint64_t
+dsl_dir_get_compressed(dsl_dir_t *dd)
+{
+	return (dsl_dir_phys(dd)->dd_compressed_bytes);
+}
+
+uint64_t
 dsl_dir_get_quota(dsl_dir_t *dd)
 {
 	return (dsl_dir_phys(dd)->dd_quota);
@@ -1193,7 +1199,8 @@ dsl_dir_space_available(dsl_dir_t *dd,
 		used += dsl_dir_space_towrite(dd);
 
 	if (dd->dd_parent == NULL) {
-		uint64_t poolsize = dsl_pool_adjustedsize(dd->dd_pool, FALSE);
+		uint64_t poolsize = dsl_pool_adjustedsize(dd->dd_pool,
+		    ZFS_SPACE_CHECK_NORMAL);
 		quota = MIN(quota, poolsize);
 	}
 
@@ -1298,11 +1305,12 @@ dsl_dir_tempreserve_impl(dsl_dir_t *dd, uint64_t asize
 	 */
 	uint64_t deferred = 0;
 	if (dd->dd_parent == NULL) {
-		spa_t *spa = dd->dd_pool->dp_spa;
-		uint64_t poolsize = dsl_pool_adjustedsize(dd->dd_pool, netfree);
-		deferred = metaslab_class_get_deferred(spa_normal_class(spa));
-		if (poolsize - deferred < quota) {
-			quota = poolsize - deferred;
+		uint64_t avail = dsl_pool_unreserved_space(dd->dd_pool,
+		    (netfree) ?
+		    ZFS_SPACE_CHECK_RESERVED : ZFS_SPACE_CHECK_NORMAL);
+
+		if (avail < quota) {
+			quota = avail;
 			retval = ENOSPC;
 		}
 	}
@@ -1639,7 +1647,8 @@ dsl_dir_set_quota(const char *ddname, zprop_source_t s
 	ddsqra.ddsqra_value = quota;
 
 	return (dsl_sync_task(ddname, dsl_dir_set_quota_check,
-	    dsl_dir_set_quota_sync, &ddsqra, 0, ZFS_SPACE_CHECK_NONE));
+	    dsl_dir_set_quota_sync, &ddsqra, 0,
+	    ZFS_SPACE_CHECK_EXTRA_RESERVED));
 }
 
 int
@@ -1682,7 +1691,8 @@ dsl_dir_set_reservation_check(void *arg, dmu_tx_t *tx)
 		avail = dsl_dir_space_available(dd->dd_parent,
 		    NULL, 0, FALSE);
 	} else {
-		avail = dsl_pool_adjustedsize(dd->dd_pool, B_FALSE) - used;
+		avail = dsl_pool_adjustedsize(dd->dd_pool,
+		    ZFS_SPACE_CHECK_NORMAL) - used;
 	}
 
 	if (MAX(used, newval) > MAX(used, dsl_dir_phys(dd)->dd_reserved)) {
@@ -1761,7 +1771,8 @@ dsl_dir_set_reservation(const char *ddname, zprop_sour
 	ddsqra.ddsqra_value = reservation;
 
 	return (dsl_sync_task(ddname, dsl_dir_set_reservation_check,
-	    dsl_dir_set_reservation_sync, &ddsqra, 0, ZFS_SPACE_CHECK_NONE));
+	    dsl_dir_set_reservation_sync, &ddsqra, 0,
+	    ZFS_SPACE_CHECK_EXTRA_RESERVED));
 }
 
 static dsl_dir_t *

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_pool.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_pool.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_pool.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -44,6 +44,8 @@
 #include 
 #include 
 #include 
+#include 
+#include 
 #include 
 #include 
 #include 
@@ -197,6 +199,8 @@ dsl_pool_open_impl(spa_t *spa, uint64_t txg)
 	    offsetof(dsl_dir_t, dd_dirty_link));
 	txg_list_create(&dp->dp_sync_tasks, spa,
 	    offsetof(dsl_sync_task_t, dst_node));
+	txg_list_create(&dp->dp_early_sync_tasks, spa,
+	    offsetof(dsl_sync_task_t, dst_node));
 
 	dp->dp_sync_taskq = taskq_create("dp_sync_taskq",
 	    zfs_sync_taskq_batch_pct, minclsyspri, 1, INT_MAX,
@@ -373,6 +377,7 @@ dsl_pool_close(dsl_pool_t *dp)
 	txg_list_destroy(&dp->dp_dirty_datasets);
 	txg_list_destroy(&dp->dp_dirty_zilogs);
 	txg_list_destroy(&dp->dp_sync_tasks);
+	txg_list_destroy(&dp->dp_early_sync_tasks);
 	txg_list_destroy(&dp->dp_dirty_dirs);
 
 	taskq_destroy(dp->dp_zil_clean_taskq);
@@ -545,6 +550,27 @@ dsl_pool_dirty_delta(dsl_pool_t *dp, int64_t delta)
 		cv_signal(&dp->dp_spaceavail_cv);
 }
 
+static boolean_t
+dsl_early_sync_task_verify(dsl_pool_t *dp, uint64_t txg)
+{
+	spa_t *spa = dp->dp_spa;
+	vdev_t *rvd = spa->spa_root_vdev;
+
+	for (uint64_t c = 0; c < rvd->vdev_children; c++) {
+		vdev_t *vd = rvd->vdev_child[c];
+		txg_list_t *tl = &vd->vdev_ms_list;
+		metaslab_t *ms;
+
+		for (ms = txg_list_head(tl, TXG_CLEAN(txg)); ms;
+		    ms = txg_list_next(tl, ms, TXG_CLEAN(txg))) {
+			VERIFY(range_tree_is_empty(ms->ms_freeing));
+			VERIFY(range_tree_is_empty(ms->ms_checkpointing));
+		}
+	}
+
+	return (B_TRUE);
+}
+
 void
 dsl_pool_sync(dsl_pool_t *dp, uint64_t txg)
 {
@@ -561,6 +587,23 @@ dsl_pool_sync(dsl_pool_t *dp, uint64_t txg)
 	tx = dmu_tx_create_assigned(dp, txg);
 
 	/*
+	 * Run all early sync tasks before writing out any dirty blocks.
+	 * For more info on early sync tasks see block comment in
+	 * dsl_early_sync_task().
+	 */
+	if (!txg_list_empty(&dp->dp_early_sync_tasks, txg)) {
+		dsl_sync_task_t *dst;
+
+		ASSERT3U(spa_sync_pass(dp->dp_spa), ==, 1);
+		while ((dst =
+		    txg_list_remove(&dp->dp_early_sync_tasks, txg)) != NULL) {
+			ASSERT(dsl_early_sync_task_verify(dp, txg));
+			dsl_sync_task_sync(dst, tx);
+		}
+		ASSERT(dsl_early_sync_task_verify(dp, txg));
+	}
+
+	/*
 	 * Write out all dirty blocks of dirty datasets.
 	 */
 	zio = zio_root(dp->dp_spa, NULL, NULL, ZIO_FLAG_MUSTSUCCEED);
@@ -714,22 +757,66 @@ dsl_pool_sync_context(dsl_pool_t *dp)
 	    taskq_member(dp->dp_sync_taskq, curthread));
 }
 
+/*
+ * This function returns the amount of allocatable space in the pool
+ * minus whatever space is currently reserved by ZFS for specific
+ * purposes. Specifically:
+ *
+ * 1] Any reserved SLOP space
+ * 2] Any space used by the checkpoint
+ * 3] Any space used for deferred frees
+ *
+ * The latter 2 are especially important because they are needed to
+ * rectify the SPA's and DMU's different understanding of how much space
+ * is used. Now the DMU is aware of that extra space tracked by the SPA
+ * without having to maintain a separate special dir (e.g similar to
+ * $MOS, $FREEING, and $LEAKED).
+ *
+ * Note: By deferred frees here, we mean the frees that were deferred
+ * in spa_sync() after sync pass 1 (spa_deferred_bpobj), and not the
+ * segments placed in ms_defer trees during metaslab_sync_done().
+ */
 uint64_t
-dsl_pool_adjustedsize(dsl_pool_t *dp, boolean_t netfree)
+dsl_pool_adjustedsize(dsl_pool_t *dp, zfs_space_check_t slop_policy)
 {
-	uint64_t space, resv;
+	spa_t *spa = dp->dp_spa;
+	uint64_t space, resv, adjustedsize;
+	uint64_t spa_deferred_frees =
+	    spa->spa_deferred_bpobj.bpo_phys->bpo_bytes;
 
-	/*
-	 * If we're trying to assess whether it's OK to do a free,
-	 * cut the reservation in half to allow forward progress
-	 * (e.g. make it possible to rm(1) files from a full pool).
-	 */
-	space = spa_get_dspace(dp->dp_spa);
-	resv = spa_get_slop_space(dp->dp_spa);
-	if (netfree)
+	space = spa_get_dspace(spa)
+	    - spa_get_checkpoint_space(spa) - spa_deferred_frees;
+	resv = spa_get_slop_space(spa);
+
+	switch (slop_policy) {
+	case ZFS_SPACE_CHECK_NORMAL:
+		break;
+	case ZFS_SPACE_CHECK_RESERVED:
 		resv >>= 1;
+		break;
+	case ZFS_SPACE_CHECK_EXTRA_RESERVED:
+		resv >>= 2;
+		break;
+	case ZFS_SPACE_CHECK_NONE:
+		resv = 0;
+		break;
+	default:
+		panic("invalid slop policy value: %d", slop_policy);
+		break;
+	}
+	adjustedsize = (space >= resv) ? (space - resv) : 0;
 
-	return (space - resv);
+	return (adjustedsize);
+}
+
+uint64_t
+dsl_pool_unreserved_space(dsl_pool_t *dp, zfs_space_check_t slop_policy)
+{
+	uint64_t poolsize = dsl_pool_adjustedsize(dp, slop_policy);
+	uint64_t deferred =
+	    metaslab_class_get_deferred(spa_normal_class(dp->dp_spa));
+	uint64_t quota = (poolsize >= deferred) ? (poolsize - deferred) : 0;
+	return (quota);
 }
 
 boolean_t

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -20,6 +20,7 @@
  */
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2017 by Delphix. All rights reserved.
  * Copyright 2016 Gary Mills
  * Copyright (c) 2011, 2017 by Delphix. All rights reserved.
  * Copyright 2017 Joyent, Inc.
@@ -325,13 +326,23 @@ dsl_scan_done(dsl_scan_t *scn, boolean_t complete, dmu
 		 * If the scrub/resilver completed, update all DTLs to
 		 * reflect this.  Whether it succeeded or not, vacate
 		 * all temporary scrub DTLs.
+		 *
+		 * As the scrub does not currently support traversing
+		 * data that have been freed but are part of a checkpoint,
+		 * we don't mark the scrub as done in the DTLs as faults
+		 * may still exist in those vdevs.
 		 */
-		vdev_dtl_reassess(spa->spa_root_vdev, tx->tx_txg,
-		    complete ? scn->scn_phys.scn_max_txg : 0, B_TRUE);
-		if (complete) {
+		if (complete &&
+		    !spa_feature_is_active(spa, SPA_FEATURE_POOL_CHECKPOINT)) {
+			vdev_dtl_reassess(spa->spa_root_vdev, tx->tx_txg,
+			    scn->scn_phys.scn_max_txg, B_TRUE);
+
 			spa_event_notify(spa, NULL, NULL,
 			    scn->scn_phys.scn_min_txg ?
 			    ESC_ZFS_RESILVER_FINISH : ESC_ZFS_SCRUB_FINISH);
+		} else {
+			vdev_dtl_reassess(spa->spa_root_vdev, tx->tx_txg,
+			    0, B_TRUE);
 		}
 		spa_errlog_rotate(spa);
 
@@ -583,7 +594,7 @@ dsl_scan_zil_block(zilog_t *zilog, blkptr_t *bp, void 
 	 * (on-disk) even if it hasn't been claimed (even though for
 	 * scrub there's nothing to do to it).
 	 */
-	if (claim_txg == 0 && bp->blk_birth >= spa_first_txg(dp->dp_spa))
+	if (claim_txg == 0 && bp->blk_birth >= spa_min_claim_txg(dp->dp_spa))
 		return (0);
 
 	SET_BOOKMARK(&zb, zh->zh_log.blk_cksum.zc_word[ZIL_ZC_OBJSET],
@@ -634,11 +645,13 @@ dsl_scan_zil(dsl_pool_t *dp, zil_header_t *zh)
 	zil_scan_arg_t zsa = { dp, zh };
 	zilog_t *zilog;
 
+	ASSERT(spa_writeable(dp->dp_spa));
+
 	/*
-	 * We only want to visit blocks that have been claimed but not yet
-	 * replayed (or, in read-only mode, blocks that *would* be claimed).
+	 * We only want to visit blocks that have been claimed
+	 * but not yet replayed.
 	 */
-	if (claim_txg == 0 && spa_writeable(dp->dp_spa))
+	if (claim_txg == 0)
 		return;
 
 	zilog = zil_alloc(dp->dp_meta_objset, zh);
@@ -1562,61 +1575,16 @@ dsl_scan_active(dsl_scan_t *scn)
 	return (used != 0);
 }
 
-/* Called whenever a txg syncs. */
-void
-dsl_scan_sync(dsl_pool_t *dp, dmu_tx_t *tx)
+static int
+dsl_process_async_destroys(dsl_pool_t *dp, dmu_tx_t *tx)
 {
 	dsl_scan_t *scn = dp->dp_scan;
 	spa_t *spa = dp->dp_spa;
 	int err = 0;
 
-	/*
-	 * Check for scn_restart_txg before checking spa_load_state, so
-	 * that we can restart an old-style scan while the pool is being
-	 * imported (see dsl_scan_init).
-	 */
-	if (dsl_scan_restarting(scn, tx)) {
-		pool_scan_func_t func = POOL_SCAN_SCRUB;
-		dsl_scan_done(scn, B_FALSE, tx);
-		if (vdev_resilver_needed(spa->spa_root_vdev, NULL, NULL))
-			func = POOL_SCAN_RESILVER;
-		zfs_dbgmsg("restarting scan func=%u txg=%llu",
-		    func, tx->tx_txg);
-		dsl_scan_setup_sync(&func, tx);
-	}
+	if (spa_suspend_async_destroy(spa))
+		return (0);
 
-	/*
-	 * Only process scans in sync pass 1.
-	 */
-	if (spa_sync_pass(dp->dp_spa) > 1)
-		return;
-
-	/*
-	 * If the spa is shutting down, then stop scanning. This will
-	 * ensure that the scan does not dirty any new data during the
-	 * shutdown phase.
-	 */
-	if (spa_shutting_down(spa))
-		return;
-
-	/*
-	 * If the scan is inactive due to a stalled async destroy, try again.
-	 */
-	if (!scn->scn_async_stalled && !dsl_scan_active(scn))
-		return;
-
-	scn->scn_visited_this_txg = 0;
-	scn->scn_suspending = B_FALSE;
-	scn->scn_sync_start_time = gethrtime();
-	spa->spa_scrub_active = B_TRUE;
-
-	/*
-	 * First process the async destroys.  If we suspend, don't do
-	 * any scrubbing or resilvering.  This ensures that there are no
-	 * async destroys while we are scanning, so the scan code doesn't
-	 * have to worry about traversing it.  It is also faster to free the
-	 * blocks than to scrub them.
-	 */
 	if (zfs_free_bpobj_enabled &&
 	    spa_version(dp->dp_spa) >= SPA_VERSION_DEADLISTS) {
 		scn->scn_is_bptree = B_FALSE;
@@ -1690,7 +1658,7 @@ dsl_scan_sync(dsl_pool_t *dp, dmu_tx_t *tx)
 		ddt_sync(spa, tx->tx_txg);
 	}
 	if (err != 0)
-		return;
+		return (err);
 	if (dp->dp_free_dir != NULL && !scn->scn_async_destroying &&
 	    zfs_free_leak_on_eio &&
 	    (dsl_dir_phys(dp->dp_free_dir)->dd_used_bytes != 0 ||
@@ -1744,6 +1712,67 @@ dsl_scan_sync(dsl_pool_t *dp, dmu_tx_t *tx)
 			dsl_pool_destroy_obsolete_bpobj(dp, tx);
 	}
 
+	return (0);
+}
+
+void
+dsl_scan_sync(dsl_pool_t *dp, dmu_tx_t *tx)
+{
+	dsl_scan_t *scn = dp->dp_scan;
+	spa_t *spa = dp->dp_spa;
+	int err = 0;
+
+	/*
+	 * Check for scn_restart_txg before checking spa_load_state, so
+	 * that we can restart an old-style scan while the pool is being
+	 * imported (see dsl_scan_init).
+	 */
+	if (dsl_scan_restarting(scn, tx)) {
+		pool_scan_func_t func = POOL_SCAN_SCRUB;
+		dsl_scan_done(scn, B_FALSE, tx);
+		if (vdev_resilver_needed(spa->spa_root_vdev, NULL, NULL))
+			func = POOL_SCAN_RESILVER;
+		zfs_dbgmsg("restarting scan func=%u txg=%llu",
+		    func, tx->tx_txg);
+		dsl_scan_setup_sync(&func, tx);
+	}
+
+	/*
+	 * Only process scans in sync pass 1.
+	 */
+	if (spa_sync_pass(dp->dp_spa) > 1)
+		return;
+
+	/*
+	 * If the spa is shutting down, then stop scanning. This will
+	 * ensure that the scan does not dirty any new data during the
+	 * shutdown phase.
+	 */
+	if (spa_shutting_down(spa))
+		return;
+
+	/*
+	 * If the scan is inactive due to a stalled async destroy, try again.
+	 */
+	if (!scn->scn_async_stalled && !dsl_scan_active(scn))
+		return;
+
+	scn->scn_visited_this_txg = 0;
+	scn->scn_suspending = B_FALSE;
+	scn->scn_sync_start_time = gethrtime();
+	spa->spa_scrub_active = B_TRUE;
+
+	/*
+	 * First process the async destroys.  If we pause, don't do
+	 * any scrubbing or resilvering.  This ensures that there are no
+	 * async destroys while we are scanning, so the scan code doesn't
+	 * have to worry about traversing it.  It is also faster to free the
+	 * blocks than to scrub them.
+	 */
+	err = dsl_process_async_destroys(dp, tx);
+	if (err != 0)
+		return;
+
 	if (scn->scn_phys.scn_state != DSS_SCANNING)
 		return;
 
@@ -2038,7 +2067,7 @@ dsl_scan(dsl_pool_t *dp, pool_scan_func_t func)
 	}
 
 	return (dsl_sync_task(spa_name(spa), dsl_scan_setup_check,
-	    dsl_scan_setup_sync, &func, 0, ZFS_SPACE_CHECK_NONE));
+	    dsl_scan_setup_sync, &func, 0, ZFS_SPACE_CHECK_EXTRA_RESERVED));
 }
 
 static boolean_t

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_synctask.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_synctask.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_synctask.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2014 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  */
 
 #include 
@@ -39,33 +39,10 @@ dsl_null_checkfunc(void *arg, dmu_tx_t *tx)
 	return (0);
 }
 
-/*
- * Called from open context to perform a callback in syncing context.  Waits
- * for the operation to complete.
- *
- * The checkfunc will be called from open context as a preliminary check
- * which can quickly fail.  If it succeeds, it will be called again from
- * syncing context.  The checkfunc should generally be designed to work
- * properly in either context, but if necessary it can check
- * dmu_tx_is_syncing(tx).
- *
- * The synctask infrastructure enforces proper locking strategy with respect
- * to the dp_config_rwlock -- the lock will always be held when the callbacks
- * are called.  It will be held for read during the open-context (preliminary)
- * call to the checkfunc, and then held for write from syncing context during
- * the calls to the check and sync funcs.
- *
- * A dataset or pool name can be passed as the first argument.  Typically,
- * the check func will hold, check the return value of the hold, and then
- * release the dataset.  The sync func will VERIFYO(hold()) the dataset.
- * This is safe because no changes can be made between the check and sync funcs,
- * and the sync func will only be called if the check func successfully opened
- * the dataset.
- */
-int
-dsl_sync_task(const char *pool, dsl_checkfunc_t *checkfunc,
+static int
+dsl_sync_task_common(const char *pool, dsl_checkfunc_t *checkfunc,
     dsl_syncfunc_t *syncfunc, void *arg,
-    int blocks_modified, zfs_space_check_t space_check)
+    int blocks_modified, zfs_space_check_t space_check, boolean_t early)
 {
 	spa_t *spa;
 	dmu_tx_t *tx;
@@ -102,7 +79,9 @@ top:
 		return (err);
 	}
 
-	VERIFY(txg_list_add_tail(&dp->dp_sync_tasks, &dst, dst.dst_txg));
+	txg_list_t *task_list = (early) ?
+	    &dp->dp_early_sync_tasks : &dp->dp_sync_tasks;
+	VERIFY(txg_list_add_tail(task_list, &dst, dst.dst_txg));
 
 	dmu_tx_commit(tx);
 
@@ -117,10 +96,65 @@ top:
 	return (dst.dst_error);
 }
 
-void
-dsl_sync_task_nowait(dsl_pool_t *dp, dsl_syncfunc_t *syncfunc, void *arg,
-    int blocks_modified, zfs_space_check_t space_check, dmu_tx_t *tx)
+/*
+ * Called from open context to perform a callback in syncing context.  Waits
+ * for the operation to complete.
+ *
+ * The checkfunc will be called from open context as a preliminary check
+ * which can quickly fail.  If it succeeds, it will be called again from
+ * syncing context.  The checkfunc should generally be designed to work
+ * properly in either context, but if necessary it can check
+ * dmu_tx_is_syncing(tx).
+ *
+ * The synctask infrastructure enforces proper locking strategy with respect
+ * to the dp_config_rwlock -- the lock will always be held when the callbacks
+ * are called.  It will be held for read during the open-context (preliminary)
+ * call to the checkfunc, and then held for write from syncing context during
+ * the calls to the check and sync funcs.
+ *
+ * A dataset or pool name can be passed as the first argument.  Typically,
+ * the check func will hold, check the return value of the hold, and then
+ * release the dataset.  The sync func will VERIFYO(hold()) the dataset.
+ * This is safe because no changes can be made between the check and sync funcs,
+ * and the sync func will only be called if the check func successfully opened
+ * the dataset.
+ */
+int
+dsl_sync_task(const char *pool, dsl_checkfunc_t *checkfunc,
+    dsl_syncfunc_t *syncfunc, void *arg,
+    int blocks_modified, zfs_space_check_t space_check)
 {
+	return (dsl_sync_task_common(pool, checkfunc, syncfunc, arg,
+	    blocks_modified, space_check, B_FALSE));
+}
+
+/*
+ * An early synctask works exactly as a standard synctask with one important
+ * difference on the way it is handled during syncing context. Standard
+ * synctasks run after we've written out all the dirty blocks of dirty
+ * datasets. Early synctasks are executed before writing out any dirty data,
+ * and thus before standard synctasks.
+ *
+ * For that reason, early synctasks can affect the process of writing dirty
+ * changes to disk for the txg that they run and should be used with caution.
+ * In addition, early synctasks should not dirty any metaslabs as this would
+ * invalidate the precodition/invariant for subsequent early synctasks.
+ * [see dsl_pool_sync() and dsl_early_sync_task_verify()]
+ */
+int
+dsl_early_sync_task(const char *pool, dsl_checkfunc_t *checkfunc,
+    dsl_syncfunc_t *syncfunc, void *arg,
+    int blocks_modified, zfs_space_check_t space_check)
+{
+	return (dsl_sync_task_common(pool, checkfunc, syncfunc, arg,
+	    blocks_modified, space_check, B_TRUE));
+}
+
+static void
+dsl_sync_task_nowait_common(dsl_pool_t *dp, dsl_syncfunc_t *syncfunc, void *arg,
+    int blocks_modified, zfs_space_check_t space_check, dmu_tx_t *tx,
+    boolean_t early)
+{
 	dsl_sync_task_t *dst = kmem_zalloc(sizeof (*dst), KM_SLEEP);
 
 	dst->dst_pool = dp;
@@ -133,9 +167,27 @@ dsl_sync_task_nowait(dsl_pool_t *dp, dsl_syncfunc_t *s
 	dst->dst_error = 0;
 	dst->dst_nowaiter = B_TRUE;
 
-	VERIFY(txg_list_add_tail(&dp->dp_sync_tasks, dst, dst->dst_txg));
+	txg_list_t *task_list = (early) ?
+	    &dp->dp_early_sync_tasks : &dp->dp_sync_tasks;
+	VERIFY(txg_list_add_tail(task_list, dst, dst->dst_txg));
 }
 
+void
+dsl_sync_task_nowait(dsl_pool_t *dp, dsl_syncfunc_t *syncfunc, void *arg,
+    int blocks_modified, zfs_space_check_t space_check, dmu_tx_t *tx)
+{
+	dsl_sync_task_nowait_common(dp, syncfunc, arg,
+	    blocks_modified, space_check, tx, B_FALSE);
+}
+
+void
+dsl_early_sync_task_nowait(dsl_pool_t *dp, dsl_syncfunc_t *syncfunc, void *arg,
+    int blocks_modified, zfs_space_check_t space_check, dmu_tx_t *tx)
+{
+	dsl_sync_task_nowait_common(dp, syncfunc, arg,
+	    blocks_modified, space_check, tx, B_TRUE);
+}
+
 /*
  * Called in syncing context to execute the synctask.
  */
@@ -160,12 +212,12 @@ dsl_sync_task_sync(dsl_sync_task_t *dst, dmu_tx_t *tx)
 	 * (arc_tempreserve, dsl_pool_tempreserve).
 	 */
 	if (dst->dst_space_check != ZFS_SPACE_CHECK_NONE) {
-		uint64_t quota = dsl_pool_adjustedsize(dp,
-		    dst->dst_space_check == ZFS_SPACE_CHECK_RESERVED) -
-		    metaslab_class_get_deferred(spa_normal_class(dp->dp_spa));
+		uint64_t quota = dsl_pool_unreserved_space(dp,
+		    dst->dst_space_check);
 		uint64_t used = dsl_dir_phys(dp->dp_root_dir)->dd_used_bytes;
+
 		/* MOS space is triple-dittoed, so we multiply by 3. */
-		if (dst->dst_space > 0 && used + dst->dst_space * 3 > quota) {
+		if (used + dst->dst_space * 3 > quota) {
 			dst->dst_error = SET_ERROR(ENOSPC);
 			if (dst->dst_nowaiter)
 				kmem_free(dst, sizeof (*dst));

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_userhold.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_userhold.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_userhold.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2015 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  * Copyright (c) 2013 Steven Hartland. All rights reserved.
  */
 
@@ -602,7 +602,8 @@ dsl_dataset_user_release_impl(nvlist_t *holds, nvlist_
 	ddura.ddura_chkholds = fnvlist_alloc();
 
 	error = dsl_sync_task(pool, dsl_dataset_user_release_check,
-	    dsl_dataset_user_release_sync, &ddura, 0, ZFS_SPACE_CHECK_NONE);
+	    dsl_dataset_user_release_sync, &ddura, 0,
+	    ZFS_SPACE_CHECK_EXTRA_RESERVED);
 	fnvlist_free(ddura.ddura_todelete);
 	fnvlist_free(ddura.ddura_chkholds);
 

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c	Wed Mar 28 17:54:34 2018	(r331694)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c	Wed Mar 28 18:12:06 2018	(r331695)
@@ -35,6 +35,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #define	GANG_ALLOCATION(flags) \
 	((flags) & (METASLAB_GANG_CHILD | METASLAB_GANG_HEADER))
@@ -43,6 +44,14 @@ uint64_t metaslab_aliquot = 512ULL << 10;
 uint64_t metaslab_gang_bang = SPA_MAXBLOCKSIZE + 1;	/* force gang blocks */
 
 /*
+ * Since we can touch multiple metaslabs (and their respective space maps)
+ * with each transaction group, we benefit from having a smaller space map
+ * block size since it allows us to issue more I/O operations scattered
+ * around the disk.
+ */
+int zfs_metaslab_sm_blksz = (1 << 12);
+
+/*
  * The in-core space map representation is more compact than its on-disk form.
  * The zfs_condense_pct determines how much more compact the in-core
  * space map representation must be before we compact it on-disk.
@@ -201,7 +210,7 @@ uint64_t metaslab_trace_max_entries = 5000;
 
 static uint64_t metaslab_weight(metaslab_t *);
 static void metaslab_set_fragmentation(metaslab_t *);
-static void metaslab_free_impl(vdev_t *, uint64_t, uint64_t, uint64_t);
+static void metaslab_free_impl(vdev_t *, uint64_t, uint64_t, boolean_t);
 static void metaslab_check_free_impl(vdev_t *, uint64_t, uint64_t);
 
 kmem_cache_t *metaslab_alloc_trace_cache;
@@ -486,11 +495,11 @@ metaslab_verify_space(metaslab_t *msp, uint64_t txg)
 	 */
 	for (int t = 0; t < TXG_CONCURRENT_STATES; t++) {
 		allocated +=
-		    range_tree_space(msp->ms_alloctree[(txg + t) & TXG_MASK]);
+		    range_tree_space(msp->ms_allocating[(txg + t) & TXG_MASK]);
 	}
 
-	msp_free_space = range_tree_space(msp->ms_tree) + allocated +
-	    msp->ms_deferspace + range_tree_space(msp->ms_freedtree);
+	msp_free_space = range_tree_space(msp->ms_allocatable) + allocated +
+	    msp->ms_deferspace + range_tree_space(msp->ms_freed);
 
 	VERIFY3U(sm_free_space, ==, msp_free_space);
 }
@@ -1028,9 +1037,9 @@ metaslab_rt_create(range_tree_t *rt, void *arg)
 	metaslab_t *msp = arg;
 
 	ASSERT3P(rt->rt_arg, ==, msp);
-	ASSERT(msp->ms_tree == NULL);
+	ASSERT(msp->ms_allocatable == NULL);
 
-	avl_create(&msp->ms_size_tree, metaslab_rangesize_compare,
+	avl_create(&msp->ms_allocatable_by_size, metaslab_rangesize_compare,
 	    sizeof (range_seg_t), offsetof(range_seg_t, rs_pp_node));
 }
 
@@ -1043,10 +1052,10 @@ metaslab_rt_destroy(range_tree_t *rt, void *arg)
 	metaslab_t *msp = arg;
 
 	ASSERT3P(rt->rt_arg, ==, msp);
-	ASSERT3P(msp->ms_tree, ==, rt);
-	ASSERT0(avl_numnodes(&msp->ms_size_tree));
+	ASSERT3P(msp->ms_allocatable, ==, rt);
+	ASSERT0(avl_numnodes(&msp->ms_allocatable_by_size));
 
-	avl_destroy(&msp->ms_size_tree);
+	avl_destroy(&msp->ms_allocatable_by_size);
 }
 
 static void
@@ -1055,9 +1064,9 @@ metaslab_rt_add(range_tree_t *rt, range_seg_t *rs, voi
 	metaslab_t *msp = arg;
 
 	ASSERT3P(rt->rt_arg, ==, msp);
-	ASSERT3P(msp->ms_tree, ==, rt);
+	ASSERT3P(msp->ms_allocatable, ==, rt);
 	VERIFY(!msp->ms_condensing);
-	avl_add(&msp->ms_size_tree, rs);
+	avl_add(&msp->ms_allocatable_by_size, rs);
 }
 
 static void
@@ -1066,9 +1075,9 @@ metaslab_rt_remove(range_tree_t *rt, range_seg_t *rs, 
 	metaslab_t *msp = arg;
 
 	ASSERT3P(rt->rt_arg, ==, msp);
-	ASSERT3P(msp->ms_tree, ==, rt);
+	ASSERT3P(msp->ms_allocatable, ==, rt);
 	VERIFY(!msp->ms_condensing);
-	avl_remove(&msp->ms_size_tree, rs);
+	avl_remove(&msp->ms_allocatable_by_size, rs);
 }
 
 static void
@@ -1077,7 +1086,7 @@ metaslab_rt_vacate(range_tree_t *rt, void *arg)
 	metaslab_t *msp = arg;
 
 	ASSERT3P(rt->rt_arg, ==, msp);
-	ASSERT3P(msp->ms_tree, ==, rt);
+	ASSERT3P(msp->ms_allocatable, ==, rt);
 
 	/*
 	 * Normally one would walk the tree freeing nodes along the way.
@@ -1085,7 +1094,7 @@ metaslab_rt_vacate(range_tree_t *rt, void *arg)
 	 * walking all nodes and just reinitialize the avl tree. The nodes
 	 * will be freed by the range tree, so we don't want to free them here.
 	 */
-	avl_create(&msp->ms_size_tree, metaslab_rangesize_compare,
+	avl_create(&msp->ms_allocatable_by_size, metaslab_rangesize_compare,

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Wed Mar 28 18:15:48 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A3BD1F6EB62
 for ;
 Wed, 28 Mar 2018 18:15:47 +0000 (UTC)
 (envelope-from oliver.pinter@hardenedbsd.org)
Received: from mail-yw0-x235.google.com (mail-yw0-x235.google.com
 [IPv6:2607:f8b0:4002:c05::235])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 1D0B17B43D
 for ; Wed, 28 Mar 2018 18:15:46 +0000 (UTC)
 (envelope-from oliver.pinter@hardenedbsd.org)
Received: by mail-yw0-x235.google.com with SMTP id v130so1116473ywa.0
 for ; Wed, 28 Mar 2018 11:15:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=ixeoH4TZp30J7f4ItjLGx4IwXadXnaPopUlliegRpEo=;
 b=snYaH28q8my4i2kyqgbYuRxHYwP+6DkYJZtObVJTTMci05N4YNd9VHzlPcd/wG4Tfa
 DuMwpFDs6FeXMcGlNISo9ok7T3trgg84+O/lXmTEXEejldXvn1poBs6ioVR8CH+V56aP
 VJpqYn92psneIhE7ZLpoyeuk++5SjX8nxC7/a81uFp5k7yNhvIdA1IcFbRHQF+IkEqPh
 cUUjXTmDV4bxlf1BbfHhQ2nFL6FRROpeQRKoKNWTjhbsCG507qCoEz60b/TTmGSr+Wo8
 huklenCHCaV9A0NPYoT2D2h7o0qosl7Q84JF8YCyBHbo8QNJpe/bPMc7ImW+8/gggRt7
 37/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=ixeoH4TZp30J7f4ItjLGx4IwXadXnaPopUlliegRpEo=;
 b=ZjXk6chHYO8xKD6dS6ZxCvNMwwN4XewpxxyC1xOkORZnRF1tFtmYTz4K9/quq6orD6
 TGNaH+dlRh4b0MIEccmyWmZEoebZd+wi2UFlOhmNoIyuyD+aR8dJC3tY/DbFHrydIE+f
 q5GA4m1+XeS+ZyGTh4mXB8Dy5VF2L1gw+l6EHzfHGjm6IotmoQa/AsPzcsO/AgcREM1z
 SADjDtW4BhSnwSgIzcZhrqO5NyTzYMoC23QSxZ5So1VPg4FSNAvBZUAYFopeJiQUCVbf
 WJbWWVg/a5O343OnkcEu3HtcxFCSwsznflZOna/fH2Iz6EiGA2crIcGfLzXzoIYDDA3U
 Xu+w==
X-Gm-Message-State: AElRT7FHaO8VMkjxoq7otgzP+VXZbNLZQUKOT47144Ms0mQCXRnxV4D4
 aoHaAR/Ee/4R4B/tm7kqFbN8rfyhLfUX/h988yw1QQ==
X-Google-Smtp-Source: AIpwx49lXVZ/w3SaaxHcHEErlV/RmBNECTiEEnAsMMyD4EmQbfQBitxrY6Fw3AsuEHHVVp0eqsfh/Kg1PU8fpqUqQIY=
X-Received: by 10.13.204.146 with SMTP id o140mr2983864ywd.265.1522260945029; 
 Wed, 28 Mar 2018 11:15:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a25:61c5:0:0:0:0:0 with HTTP; Wed, 28 Mar 2018 11:15:44
 -0700 (PDT)
In-Reply-To: <201803140319.w2E3JuGP036341@repo.freebsd.org>
References: <201803140319.w2E3JuGP036341@repo.freebsd.org>
From: Oliver Pinter 
Date: Wed, 28 Mar 2018 20:15:44 +0200
Message-ID: 
Subject: Re: svn commit: r330897 - in stable/11: bin/cat bin/chflags bin/chmod
 bin/cp bin/date bin/dd bin/df bin/domainname bin/echo bin/ed
 bin/hostname
 bin/kill bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bi...
To: Eitan Adler , cem@freebsd.org
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 18:15:49 -0000

Hi!

This part of the MFC is wrong:

https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897

Could you please MFC back the other random related changes too? Some
of them made by cem@.

On 3/14/18, Eitan Adler  wrote:
> Author: eadler
> Date: Wed Mar 14 03:19:51 2018
> New Revision: 330897
> URL: https://svnweb.freebsd.org/changeset/base/330897
>
> Log:
>   Partial merge of the SPDX changes
>
>   These changes are incomplete but are making it difficult
>   to determine what other changes can/should be merged.
>
>   No objections from:	pfg
>
> Modified:
>   stable/11/bin/cat/cat.c
>   stable/11/bin/chflags/chflags.c
>   stable/11/bin/chmod/chmod.c
>   stable/11/bin/cp/cp.c
>   stable/11/bin/cp/extern.h
>   stable/11/bin/cp/utils.c
>   stable/11/bin/date/date.c
>   stable/11/bin/date/extern.h
>   stable/11/bin/date/netdate.c
>   stable/11/bin/dd/args.c
>   stable/11/bin/dd/conv.c
>   stable/11/bin/dd/conv_tab.c
>   stable/11/bin/dd/dd.c
>   stable/11/bin/dd/dd.h
>   stable/11/bin/dd/extern.h
>   stable/11/bin/dd/misc.c
>   stable/11/bin/dd/position.c
>   stable/11/bin/df/df.c
>   stable/11/bin/domainname/domainname.c
>   stable/11/bin/echo/echo.c
>   stable/11/bin/ed/cbc.c
>   stable/11/bin/hostname/hostname.c
>   stable/11/bin/kill/kill.c
>   stable/11/bin/ln/ln.c
>   stable/11/bin/ls/cmp.c
>   stable/11/bin/ls/extern.h
>   stable/11/bin/ls/ls.c
>   stable/11/bin/ls/ls.h
>   stable/11/bin/ls/print.c
>   stable/11/bin/ls/util.c
>   stable/11/bin/mkdir/mkdir.c
>   stable/11/bin/mv/mv.c
>   stable/11/bin/pax/ar_io.c
>   stable/11/bin/pax/ar_subs.c
>   stable/11/bin/pax/buf_subs.c
>   stable/11/bin/pax/cache.c
>   stable/11/bin/pax/cache.h
>   stable/11/bin/pax/cpio.c
>   stable/11/bin/pax/cpio.h
>   stable/11/bin/pax/extern.h
>   stable/11/bin/pax/file_subs.c
>   stable/11/bin/pax/ftree.c
>   stable/11/bin/pax/ftree.h
>   stable/11/bin/pax/gen_subs.c
>   stable/11/bin/pax/options.c
>   stable/11/bin/pax/options.h
>   stable/11/bin/pax/pat_rep.c
>   stable/11/bin/pax/pat_rep.h
>   stable/11/bin/pax/pax.c
>   stable/11/bin/pax/pax.h
>   stable/11/bin/pax/sel_subs.c
>   stable/11/bin/pax/sel_subs.h
>   stable/11/bin/pax/tables.c
>   stable/11/bin/pax/tables.h
>   stable/11/bin/pax/tar.c
>   stable/11/bin/pax/tar.h
>   stable/11/bin/pax/tty_subs.c
>   stable/11/bin/ps/extern.h
>   stable/11/bin/ps/fmt.c
>   stable/11/bin/ps/keyword.c
>   stable/11/bin/ps/nlist.c
>   stable/11/bin/ps/print.c
>   stable/11/bin/ps/ps.c
>   stable/11/bin/ps/ps.h
>   stable/11/bin/pwd/pwd.c
>   stable/11/bin/realpath/realpath.c
>   stable/11/bin/rm/rm.c
>   stable/11/bin/rmdir/rmdir.c
>   stable/11/bin/sh/bltin/bltin.h
>   stable/11/bin/sh/bltin/echo.c
>   stable/11/bin/sh/mail.h
>   stable/11/bin/sh/main.c
>   stable/11/bin/sh/main.h
>   stable/11/bin/sh/memalloc.c
>   stable/11/bin/sh/memalloc.h
>   stable/11/bin/sh/miscbltin.c
>   stable/11/bin/sh/mknodes.c
>   stable/11/bin/sh/mksyntax.c
>   stable/11/bin/sh/myhistedit.h
>   stable/11/bin/sh/mystring.c
>   stable/11/bin/sh/mystring.h
>   stable/11/bin/sh/options.c
>   stable/11/bin/sh/options.h
>   stable/11/bin/sh/output.c
>   stable/11/bin/sh/output.h
>   stable/11/bin/sh/parser.c
>   stable/11/bin/sh/parser.h
>   stable/11/bin/sh/redir.c
>   stable/11/bin/sh/redir.h
>   stable/11/bin/sh/shell.h
>   stable/11/bin/sh/show.c
>   stable/11/bin/sh/show.h
>   stable/11/bin/sh/trap.c
>   stable/11/bin/sh/trap.h
>   stable/11/bin/sh/var.c
>   stable/11/bin/sh/var.h
>   stable/11/include/_ctype.h
>   stable/11/include/a.out.h
>   stable/11/include/ar.h
>   stable/11/include/arpa/ftp.h
>   stable/11/include/arpa/inet.h
>   stable/11/include/arpa/nameser.h
>   stable/11/include/arpa/nameser_compat.h
>   stable/11/include/arpa/telnet.h
>   stable/11/include/arpa/tftp.h
>   stable/11/include/assert.h
>   stable/11/include/bitstring.h
>   stable/11/include/complex.h
>   stable/11/include/cpio.h
>   stable/11/include/ctype.h
>   stable/11/include/db.h
>   stable/11/include/dirent.h
>   stable/11/include/dlfcn.h
>   stable/11/include/elf-hints.h
>   stable/11/include/elf.h
>   stable/11/include/err.h
>   stable/11/include/fmtmsg.h
>   stable/11/include/fnmatch.h
>   stable/11/include/fstab.h
>   stable/11/include/fts.h
>   stable/11/include/getopt.h
>   stable/11/include/glob.h
>   stable/11/include/grp.h
>   stable/11/include/hesiod.h
>   stable/11/include/iconv.h
>   stable/11/include/inttypes.h
>   stable/11/include/iso646.h
>   stable/11/include/kenv.h
>   stable/11/include/langinfo.h
>   stable/11/include/libgen.h
>   stable/11/include/limits.h
>   stable/11/include/link.h
>   stable/11/include/locale.h
>   stable/11/include/malloc_np.h
>   stable/11/include/memory.h
>   stable/11/include/mk-osreldate.sh
>   stable/11/include/monetary.h
>   stable/11/include/mpool.h
>   stable/11/include/mqueue.h
>   stable/11/include/ndbm.h
>   stable/11/include/netdb.h
>   stable/11/include/nl_types.h
>   stable/11/include/nlist.h
>   stable/11/include/nss.h
>   stable/11/include/nsswitch.h
>   stable/11/include/paths.h
>   stable/11/include/printf.h
>   stable/11/include/proc_service.h
>   stable/11/include/protocols/dumprestore.h
>   stable/11/include/protocols/routed.h
>   stable/11/include/protocols/rwhod.h
>   stable/11/include/protocols/talkd.h
>   stable/11/include/protocols/timed.h
>   stable/11/include/pthread.h
>   stable/11/include/pthread_np.h
>   stable/11/include/pwd.h
>   stable/11/include/ranlib.h
>   stable/11/include/regex.h
>   stable/11/include/resolv.h
>   stable/11/include/rpc/auth.h
>   stable/11/include/rpc/auth_des.h
>   stable/11/include/rpc/auth_kerb.h
>   stable/11/include/rpc/auth_unix.h
>   stable/11/include/rpc/clnt.h
>   stable/11/include/rpc/clnt_soc.h
>   stable/11/include/rpc/des.h
>   stable/11/include/rpc/des_crypt.h
>   stable/11/include/rpc/nettype.h
>   stable/11/include/rpc/pmap_clnt.h
>   stable/11/include/rpc/pmap_prot.h
>   stable/11/include/rpc/pmap_rmt.h
>   stable/11/include/rpc/raw.h
>   stable/11/include/rpc/rpc.h
>   stable/11/include/rpc/rpc_com.h
>   stable/11/include/rpc/rpc_msg.h
>   stable/11/include/rpc/rpcb_clnt.h
>   stable/11/include/rpc/rpcent.h
>   stable/11/include/rpc/rpcsec_gss.h
>   stable/11/include/rpc/svc.h
>   stable/11/include/rpc/svc_auth.h
>   stable/11/include/rpc/svc_dg.h
>   stable/11/include/rpc/svc_soc.h
>   stable/11/include/rpc/xdr.h
>   stable/11/include/rpcsvc/nis_tags.h
>   stable/11/include/rpcsvc/yp_prot.h
>   stable/11/include/rpcsvc/ypclnt.h
>   stable/11/include/runetype.h
>   stable/11/include/semaphore.h
>   stable/11/include/setjmp.h
>   stable/11/include/signal.h
>   stable/11/include/spawn.h
>   stable/11/include/stab.h
>   stable/11/include/stdalign.h
>   stable/11/include/stdbool.h
>   stable/11/include/stddef.h
>   stable/11/include/stdio.h
>   stable/11/include/stdlib.h
>   stable/11/include/stdnoreturn.h
>   stable/11/include/string.h
>   stable/11/include/stringlist.h
>   stable/11/include/strings.h
>   stable/11/include/sysexits.h
>   stable/11/include/tar.h
>   stable/11/include/termios.h
>   stable/11/include/tgmath.h
>   stable/11/include/time.h
>   stable/11/include/timeconv.h
>   stable/11/include/timers.h
>   stable/11/include/ttyent.h
>   stable/11/include/uchar.h
>   stable/11/include/ulimit.h
>   stable/11/include/unistd.h
>   stable/11/include/utime.h
>   stable/11/include/utmpx.h
>   stable/11/include/uuid.h
>   stable/11/include/varargs.h
>   stable/11/include/wchar.h
>   stable/11/include/wctype.h
>   stable/11/include/wordexp.h
>   stable/11/include/xlocale.h
>   stable/11/include/xlocale/_ctype.h
>   stable/11/include/xlocale/_inttypes.h
>   stable/11/include/xlocale/_langinfo.h
>   stable/11/include/xlocale/_locale.h
>   stable/11/include/xlocale/_monetary.h
>   stable/11/include/xlocale/_stdio.h
>   stable/11/include/xlocale/_stdlib.h
>   stable/11/include/xlocale/_string.h
>   stable/11/include/xlocale/_time.h
>   stable/11/include/xlocale/_uchar.h
>   stable/11/include/xlocale/_wchar.h
>   stable/11/lib/csu/amd64/crt1.c
>   stable/11/lib/csu/arm/crt1.c
>   stable/11/lib/csu/common/crtbrand.c
>   stable/11/lib/csu/common/ignore_init.c
>   stable/11/lib/csu/common/notes.h
>   stable/11/lib/csu/mips/crt1.c
>   stable/11/lib/csu/powerpc/crt1.c
>   stable/11/lib/csu/powerpc64/crt1.c
>   stable/11/lib/csu/sparc64/crt1.c
>   stable/11/lib/libarchive/config_freebsd.h
>   stable/11/lib/libbluetooth/bluetooth.c
>   stable/11/lib/libbluetooth/bluetooth.h
>   stable/11/lib/libbluetooth/dev.c
>   stable/11/lib/libbluetooth/hci.c
>   stable/11/lib/libbsdstat/bsdstat.c
>   stable/11/lib/libbsdstat/bsdstat.h
>   stable/11/lib/libc/amd64/SYS.h
>   stable/11/lib/libc/amd64/_fpmath.h
>   stable/11/lib/libc/amd64/gen/_set_tp.c
>   stable/11/lib/libc/amd64/gen/getcontextx.c
>   stable/11/lib/libc/amd64/gen/makecontext.c
>   stable/11/lib/libc/amd64/gen/signalcontext.c
>   stable/11/lib/libc/amd64/string/strcpy.c
>   stable/11/lib/libc/amd64/sys/amd64_get_fsbase.c
>   stable/11/lib/libc/amd64/sys/amd64_get_gsbase.c
>   stable/11/lib/libc/amd64/sys/amd64_set_fsbase.c
>   stable/11/lib/libc/amd64/sys/amd64_set_gsbase.c
>   stable/11/lib/libc/arm/SYS.h
>   stable/11/lib/libc/arm/_fpmath.h
>   stable/11/lib/libc/arm/aeabi/aeabi_atexit.c
>   stable/11/lib/libc/arm/aeabi/aeabi_double.c
>   stable/11/lib/libc/arm/aeabi/aeabi_float.c
>   stable/11/lib/libc/arm/aeabi/aeabi_unwind_cpp.c
>   stable/11/lib/libc/arm/gen/_set_tp.c
>   stable/11/lib/libc/arm/gen/arm_initfini.c
>   stable/11/lib/libc/arm/gen/fabs.c
>   stable/11/lib/libc/arm/gen/flt_rounds.c
>   stable/11/lib/libc/arm/gen/getcontextx.c
>   stable/11/lib/libc/arm/gen/makecontext.c
>   stable/11/lib/libc/arm/gen/signalcontext.c
>   stable/11/lib/libc/arm/sys/__vdso_gettc.c
>   stable/11/lib/libc/compat-43/creat.c
>   stable/11/lib/libc/compat-43/gethostid.c
>   stable/11/lib/libc/compat-43/getwd.c
>   stable/11/lib/libc/compat-43/killpg.c
>   stable/11/lib/libc/compat-43/sethostid.c
>   stable/11/lib/libc/compat-43/setpgrp.c
>   stable/11/lib/libc/compat-43/setrgid.c
>   stable/11/lib/libc/compat-43/setruid.c
>   stable/11/lib/libc/compat-43/sigcompat.c
>   stable/11/lib/libc/db/btree/bt_close.c
>   stable/11/lib/libc/db/btree/bt_conv.c
>   stable/11/lib/libc/db/btree/bt_debug.c
>   stable/11/lib/libc/db/btree/bt_delete.c
>   stable/11/lib/libc/db/btree/bt_get.c
>   stable/11/lib/libc/db/btree/bt_open.c
>   stable/11/lib/libc/db/btree/bt_overflow.c
>   stable/11/lib/libc/db/btree/bt_page.c
>   stable/11/lib/libc/db/btree/bt_put.c
>   stable/11/lib/libc/db/btree/bt_search.c
>   stable/11/lib/libc/db/btree/bt_seq.c
>   stable/11/lib/libc/db/btree/bt_split.c
>   stable/11/lib/libc/db/btree/bt_utils.c
>   stable/11/lib/libc/db/btree/btree.h
>   stable/11/lib/libc/db/btree/extern.h
>   stable/11/lib/libc/db/db/db.c
>   stable/11/lib/libc/db/hash/extern.h
>   stable/11/lib/libc/db/hash/hash.c
>   stable/11/lib/libc/db/hash/hash.h
>   stable/11/lib/libc/db/hash/hash_bigkey.c
>   stable/11/lib/libc/db/hash/hash_buf.c
>   stable/11/lib/libc/db/hash/hash_func.c
>   stable/11/lib/libc/db/hash/hash_log2.c
>   stable/11/lib/libc/db/hash/hash_page.c
>   stable/11/lib/libc/db/hash/ndbm.c
>   stable/11/lib/libc/db/hash/page.h
>   stable/11/lib/libc/db/mpool/mpool-compat.c
>   stable/11/lib/libc/db/mpool/mpool.c
>   stable/11/lib/libc/db/recno/extern.h
>   stable/11/lib/libc/db/recno/rec_close.c
>   stable/11/lib/libc/db/recno/rec_delete.c
>   stable/11/lib/libc/db/recno/rec_get.c
>   stable/11/lib/libc/db/recno/rec_open.c
>   stable/11/lib/libc/db/recno/rec_put.c
>   stable/11/lib/libc/db/recno/rec_search.c
>   stable/11/lib/libc/db/recno/rec_seq.c
>   stable/11/lib/libc/db/recno/rec_utils.c
>   stable/11/lib/libc/db/recno/recno.h
>   stable/11/lib/libc/db/test/btree.tests/main.c
>   stable/11/lib/libc/db/test/dbtest.c
>   stable/11/lib/libc/db/test/hash.tests/driver2.c
>   stable/11/lib/libc/db/test/hash.tests/tcreat3.c
>   stable/11/lib/libc/db/test/hash.tests/tdel.c
>   stable/11/lib/libc/db/test/hash.tests/thash4.c
>   stable/11/lib/libc/db/test/hash.tests/tread2.c
>   stable/11/lib/libc/db/test/hash.tests/tseq.c
>   stable/11/lib/libc/db/test/hash.tests/tverify.c
>   stable/11/lib/libc/gdtoa/_hdtoa.c
>   stable/11/lib/libc/gdtoa/_hldtoa.c
>   stable/11/lib/libc/gdtoa/_ldtoa.c
>   stable/11/lib/libc/gdtoa/machdep_ldisQ.c
>   stable/11/lib/libc/gdtoa/machdep_ldisd.c
>   stable/11/lib/libc/gdtoa/machdep_ldisx.c
>   stable/11/lib/libc/gen/__getosreldate.c
>   stable/11/lib/libc/gen/__xuname.c
>   stable/11/lib/libc/gen/_once_stub.c
>   stable/11/lib/libc/gen/_pthread_stubs.c
>   stable/11/lib/libc/gen/_spinlock_stub.c
>   stable/11/lib/libc/gen/_thread_init.c
>   stable/11/lib/libc/gen/alarm.c
>   stable/11/lib/libc/gen/assert.c
>   stable/11/lib/libc/gen/auxv.c
>   stable/11/lib/libc/gen/cap_sandboxed.c
>   stable/11/lib/libc/gen/clock.c
>   stable/11/lib/libc/gen/clock_getcpuclockid.c
>   stable/11/lib/libc/gen/closedir.c
>   stable/11/lib/libc/gen/confstr.c
>   stable/11/lib/libc/gen/crypt.c
>   stable/11/lib/libc/gen/ctermid.c
>   stable/11/lib/libc/gen/daemon.c
>   stable/11/lib/libc/gen/devname.c
>   stable/11/lib/libc/gen/dirfd.c
>   stable/11/lib/libc/gen/disklabel.c
>   stable/11/lib/libc/gen/dlfcn.c
>   stable/11/lib/libc/gen/dup3.c
>   stable/11/lib/libc/gen/elf_utils.c
>   stable/11/lib/libc/gen/err.c
>   stable/11/lib/libc/gen/errlst.c
>   stable/11/lib/libc/gen/errno.c
>   stable/11/lib/libc/gen/exec.c
>   stable/11/lib/libc/gen/fdevname.c
>   stable/11/lib/libc/gen/feature_present.c
>   stable/11/lib/libc/gen/fmtcheck.c
>   stable/11/lib/libc/gen/fmtmsg.c
>   stable/11/lib/libc/gen/fnmatch.c
>   stable/11/lib/libc/gen/fpclassify.c
>   stable/11/lib/libc/gen/frexp.c
>   stable/11/lib/libc/gen/fstab.c
>   stable/11/lib/libc/gen/ftok.c
>   stable/11/lib/libc/gen/fts-compat.c
>   stable/11/lib/libc/gen/fts-compat.h
>   stable/11/lib/libc/gen/fts.c
>   stable/11/lib/libc/gen/gen-private.h
>   stable/11/lib/libc/gen/getbootfile.c
>   stable/11/lib/libc/gen/getbsize.c
>   stable/11/lib/libc/gen/getcap.c
>   stable/11/lib/libc/gen/getcwd.c
>   stable/11/lib/libc/gen/getdomainname.c
>   stable/11/lib/libc/gen/getgrent.c
>   stable/11/lib/libc/gen/getgrouplist.c
>   stable/11/lib/libc/gen/gethostname.c
>   stable/11/lib/libc/gen/getloadavg.c
>   stable/11/lib/libc/gen/getlogin.c
>   stable/11/lib/libc/gen/getmntinfo.c
>   stable/11/lib/libc/gen/getnetgrent.c
>   stable/11/lib/libc/gen/getosreldate.c
>   stable/11/lib/libc/gen/getpagesize.c
>   stable/11/lib/libc/gen/getpagesizes.c
>   stable/11/lib/libc/gen/getpeereid.c
>   stable/11/lib/libc/gen/getpwent.c
>   stable/11/lib/libc/gen/getttyent.c
>   stable/11/lib/libc/gen/getusershell.c
>   stable/11/lib/libc/gen/getutxent.c
>   stable/11/lib/libc/gen/getvfsbyname.c
>   stable/11/lib/libc/gen/glob.c
>   stable/11/lib/libc/gen/initgroups.c
>   stable/11/lib/libc/gen/isatty.c
>   stable/11/lib/libc/gen/isinf.c
>   stable/11/lib/libc/gen/isnan.c
>   stable/11/lib/libc/gen/libc_dlopen.c
>   stable/11/lib/libc/gen/lockf.c
>   stable/11/lib/libc/gen/nice.c
>   stable/11/lib/libc/gen/nlist.c
>   stable/11/lib/libc/gen/opendir.c
>   stable/11/lib/libc/gen/pause.c
>   stable/11/lib/libc/gen/popen.c
>   stable/11/lib/libc/gen/posix_spawn.c
>   stable/11/lib/libc/gen/psignal.c
>   stable/11/lib/libc/gen/pututxline.c
>   stable/11/lib/libc/gen/pw_scan.c
>   stable/11/lib/libc/gen/pw_scan.h
>   stable/11/lib/libc/gen/raise.c
>   stable/11/lib/libc/gen/readdir.c
>   stable/11/lib/libc/gen/rewinddir.c
>   stable/11/lib/libc/gen/scandir.c
>   stable/11/lib/libc/gen/seekdir.c
>   stable/11/lib/libc/gen/sem.c
>   stable/11/lib/libc/gen/sem_new.c
>   stable/11/lib/libc/gen/semctl.c
>   stable/11/lib/libc/gen/setdomainname.c
>   stable/11/lib/libc/gen/sethostname.c
>   stable/11/lib/libc/gen/setjmperr.c
>   stable/11/lib/libc/gen/setmode.c
>   stable/11/lib/libc/gen/siginterrupt.c
>   stable/11/lib/libc/gen/siglist.c
>   stable/11/lib/libc/gen/signal.c
>   stable/11/lib/libc/gen/sigsetops.c
>   stable/11/lib/libc/gen/sleep.c
>   stable/11/lib/libc/gen/stringlist.c
>   stable/11/lib/libc/gen/strtofflags.c
>   stable/11/lib/libc/gen/sysconf.c
>   stable/11/lib/libc/gen/sysctl.c
>   stable/11/lib/libc/gen/sysctlnametomib.c
>   stable/11/lib/libc/gen/syslog.c
>   stable/11/lib/libc/gen/telldir.c
>   stable/11/lib/libc/gen/telldir.h
>   stable/11/lib/libc/gen/termios.c
>   stable/11/lib/libc/gen/time.c
>   stable/11/lib/libc/gen/times.c
>   stable/11/lib/libc/gen/timezone.c
>   stable/11/lib/libc/gen/tls.c
>   stable/11/lib/libc/gen/ttyname.c
>   stable/11/lib/libc/gen/ttyslot.c
>   stable/11/lib/libc/gen/ualarm.c
>   stable/11/lib/libc/gen/ulimit.c
>   stable/11/lib/libc/gen/uname.c
>   stable/11/lib/libc/gen/unvis-compat.c
>   stable/11/lib/libc/gen/usleep.c
>   stable/11/lib/libc/gen/utime.c
>   stable/11/lib/libc/gen/utxdb.c
>   stable/11/lib/libc/gen/utxdb.h
>   stable/11/lib/libc/gen/valloc.c
>   stable/11/lib/libc/gen/wait.c
>   stable/11/lib/libc/gen/wait3.c
>   stable/11/lib/libc/gen/waitid.c
>   stable/11/lib/libc/gen/waitpid.c
>   stable/11/lib/libc/gen/wordexp.c
>   stable/11/lib/libc/gmon/gmon.c
>   stable/11/lib/libc/gmon/mcount.c
>   stable/11/lib/libc/i386/SYS.h
>   stable/11/lib/libc/i386/_fpmath.h
>   stable/11/lib/libc/i386/gen/_set_tp.c
>   stable/11/lib/libc/i386/gen/getcontextx.c
>   stable/11/lib/libc/i386/gen/makecontext.c
>   stable/11/lib/libc/i386/gen/signalcontext.c
>   stable/11/lib/libc/i386/sys/i386_clr_watch.c
>   stable/11/lib/libc/i386/sys/i386_get_fsbase.c
>   stable/11/lib/libc/i386/sys/i386_get_gsbase.c
>   stable/11/lib/libc/i386/sys/i386_get_ioperm.c
>   stable/11/lib/libc/i386/sys/i386_get_ldt.c
>   stable/11/lib/libc/i386/sys/i386_set_fsbase.c
>   stable/11/lib/libc/i386/sys/i386_set_gsbase.c
>   stable/11/lib/libc/i386/sys/i386_set_ioperm.c
>   stable/11/lib/libc/i386/sys/i386_set_ldt.c
>   stable/11/lib/libc/i386/sys/i386_set_watch.c
>   stable/11/lib/libc/i386/sys/i386_vm86.c
>   stable/11/lib/libc/iconv/__iconv.c
>   stable/11/lib/libc/iconv/__iconv_free_list.c
>   stable/11/lib/libc/iconv/__iconv_get_list.c
>   stable/11/lib/libc/iconv/_strtol.h
>   stable/11/lib/libc/iconv/_strtoul.h
>   stable/11/lib/libc/iconv/bsd_iconv.c
>   stable/11/lib/libc/iconv/citrus_aliasname_local.h
>   stable/11/lib/libc/iconv/citrus_bcs.c
>   stable/11/lib/libc/iconv/citrus_bcs.h
>   stable/11/lib/libc/iconv/citrus_bcs_strtol.c
>   stable/11/lib/libc/iconv/citrus_bcs_strtoul.c
>   stable/11/lib/libc/iconv/citrus_csmapper.c
>   stable/11/lib/libc/iconv/citrus_csmapper.h
>   stable/11/lib/libc/iconv/citrus_db.c
>   stable/11/lib/libc/iconv/citrus_db.h
>   stable/11/lib/libc/iconv/citrus_db_factory.c
>   stable/11/lib/libc/iconv/citrus_db_factory.h
>   stable/11/lib/libc/iconv/citrus_db_file.h
>   stable/11/lib/libc/iconv/citrus_db_hash.c
>   stable/11/lib/libc/iconv/citrus_db_hash.h
>   stable/11/lib/libc/iconv/citrus_esdb.c
>   stable/11/lib/libc/iconv/citrus_esdb.h
>   stable/11/lib/libc/iconv/citrus_esdb_file.h
>   stable/11/lib/libc/iconv/citrus_fix_grouping.h
>   stable/11/lib/libc/iconv/citrus_hash.c
>   stable/11/lib/libc/iconv/citrus_hash.h
>   stable/11/lib/libc/iconv/citrus_iconv.c
>   stable/11/lib/libc/iconv/citrus_iconv.h
>   stable/11/lib/libc/iconv/citrus_iconv_local.h
>   stable/11/lib/libc/iconv/citrus_lock.h
>   stable/11/lib/libc/iconv/citrus_lookup.c
>   stable/11/lib/libc/iconv/citrus_lookup.h
>   stable/11/lib/libc/iconv/citrus_lookup_factory.c
>   stable/11/lib/libc/iconv/citrus_lookup_factory.h
>   stable/11/lib/libc/iconv/citrus_lookup_file.h
>   stable/11/lib/libc/iconv/citrus_mapper.c
>   stable/11/lib/libc/iconv/citrus_mapper.h
>   stable/11/lib/libc/iconv/citrus_mapper_local.h
>   stable/11/lib/libc/iconv/citrus_memstream.c
>   stable/11/lib/libc/iconv/citrus_memstream.h
>   stable/11/lib/libc/iconv/citrus_mmap.c
>   stable/11/lib/libc/iconv/citrus_mmap.h
>   stable/11/lib/libc/iconv/citrus_module.c
>   stable/11/lib/libc/iconv/citrus_module.h
>   stable/11/lib/libc/iconv/citrus_namespace.h
>   stable/11/lib/libc/iconv/citrus_none.c
>   stable/11/lib/libc/iconv/citrus_none.h
>   stable/11/lib/libc/iconv/citrus_pivot_factory.c
>   stable/11/lib/libc/iconv/citrus_pivot_factory.h
>   stable/11/lib/libc/iconv/citrus_pivot_file.h
>   stable/11/lib/libc/iconv/citrus_prop.c
>   stable/11/lib/libc/iconv/citrus_prop.h
>   stable/11/lib/libc/iconv/citrus_region.h
>   stable/11/lib/libc/iconv/citrus_stdenc.c
>   stable/11/lib/libc/iconv/citrus_stdenc.h
>   stable/11/lib/libc/iconv/citrus_stdenc_local.h
>   stable/11/lib/libc/iconv/citrus_stdenc_template.h
>   stable/11/lib/libc/iconv/citrus_types.h
>   stable/11/lib/libc/iconv/iconv-internal.h
>   stable/11/lib/libc/iconv/iconv.c
>   stable/11/lib/libc/iconv/iconv_canonicalize.c
>   stable/11/lib/libc/iconv/iconv_close.c
>   stable/11/lib/libc/iconv/iconv_compat.c
>   stable/11/lib/libc/iconv/iconv_open.c
>   stable/11/lib/libc/iconv/iconv_open_into.c
>   stable/11/lib/libc/iconv/iconv_set_relocation_prefix.c
>   stable/11/lib/libc/iconv/iconvctl.c
>   stable/11/lib/libc/iconv/iconvlist.c
>   stable/11/lib/libc/include/compat.h
>   stable/11/lib/libc/include/errlst.h
>   stable/11/lib/libc/include/fpmath.h
>   stable/11/lib/libc/include/libc_private.h
>   stable/11/lib/libc/include/namespace.h
>   stable/11/lib/libc/include/nscache.h
>   stable/11/lib/libc/include/nscachedcli.h
>   stable/11/lib/libc/include/nss_tls.h
>   stable/11/lib/libc/include/reentrant.h
>   stable/11/lib/libc/include/spinlock.h
>   stable/11/lib/libc/include/un-namespace.h
>   stable/11/lib/libc/inet/inet_addr.c
>   stable/11/lib/libc/inet/inet_lnaof.c
>   stable/11/lib/libc/inet/inet_makeaddr.c
>   stable/11/lib/libc/inet/inet_netof.c
>   stable/11/lib/libc/inet/inet_network.c
>   stable/11/lib/libc/inet/inet_ntoa.c
>   stable/11/lib/libc/locale/ascii.c
>   stable/11/lib/libc/locale/btowc.c
>   stable/11/lib/libc/locale/c16rtomb.c
>   stable/11/lib/libc/locale/c32rtomb.c
>   stable/11/lib/libc/locale/cXXrtomb_iconv.h
>   stable/11/lib/libc/locale/collate.c
>   stable/11/lib/libc/locale/collate.h
>   stable/11/lib/libc/locale/collcmp.c
>   stable/11/lib/libc/locale/ctype.c
>   stable/11/lib/libc/locale/euc.c
>   stable/11/lib/libc/locale/fix_grouping.c
>   stable/11/lib/libc/locale/gb18030.c
>   stable/11/lib/libc/locale/gb2312.c
>   stable/11/lib/libc/locale/gbk.c
>   stable/11/lib/libc/locale/isctype.c
>   stable/11/lib/libc/locale/iswctype.c
>   stable/11/lib/libc/locale/ldpart.c
>   stable/11/lib/libc/locale/ldpart.h
>   stable/11/lib/libc/locale/lmessages.c
>   stable/11/lib/libc/locale/lmessages.h
>   stable/11/lib/libc/locale/lmonetary.c
>   stable/11/lib/libc/locale/lmonetary.h
>   stable/11/lib/libc/locale/lnumeric.c
>   stable/11/lib/libc/locale/lnumeric.h
>   stable/11/lib/libc/locale/localeconv.c
>   stable/11/lib/libc/locale/mblen.c
>   stable/11/lib/libc/locale/mblocal.h
>   stable/11/lib/libc/locale/mbrlen.c
>   stable/11/lib/libc/locale/mbrtoc16.c
>   stable/11/lib/libc/locale/mbrtoc32.c
>   stable/11/lib/libc/locale/mbrtocXX_iconv.h
>   stable/11/lib/libc/locale/mbrtowc.c
>   stable/11/lib/libc/locale/mbsinit.c
>   stable/11/lib/libc/locale/mbsnrtowcs.c
>   stable/11/lib/libc/locale/mbsrtowcs.c
>   stable/11/lib/libc/locale/mbstowcs.c
>   stable/11/lib/libc/locale/mbtowc.c
>   stable/11/lib/libc/locale/mskanji.c
>   stable/11/lib/libc/locale/nextwctype.c
>   stable/11/lib/libc/locale/nl_langinfo.c
>   stable/11/lib/libc/locale/none.c
>   stable/11/lib/libc/locale/rpmatch.c
>   stable/11/lib/libc/locale/rune.c
>   stable/11/lib/libc/locale/runefile.h
>   stable/11/lib/libc/locale/runetype.c
>   stable/11/lib/libc/locale/setlocale.c
>   stable/11/lib/libc/locale/setlocale.h
>   stable/11/lib/libc/locale/setrunelocale.c
>   stable/11/lib/libc/locale/table.c
>   stable/11/lib/libc/locale/tolower.c
>   stable/11/lib/libc/locale/toupper.c
>   stable/11/lib/libc/locale/utf8.c
>   stable/11/lib/libc/locale/wcrtomb.c
>   stable/11/lib/libc/locale/wcsftime.c
>   stable/11/lib/libc/locale/wcsnrtombs.c
>   stable/11/lib/libc/locale/wcsrtombs.c
>   stable/11/lib/libc/locale/wcstod.c
>   stable/11/lib/libc/locale/wcstof.c
>   stable/11/lib/libc/locale/wcstoimax.c
>   stable/11/lib/libc/locale/wcstol.c
>   stable/11/lib/libc/locale/wcstold.c
>   stable/11/lib/libc/locale/wcstoll.c
>   stable/11/lib/libc/locale/wcstombs.c
>   stable/11/lib/libc/locale/wcstoul.c
>   stable/11/lib/libc/locale/wcstoull.c
>   stable/11/lib/libc/locale/wcstoumax.c
>   stable/11/lib/libc/locale/wctob.c
>   stable/11/lib/libc/locale/wctomb.c
>   stable/11/lib/libc/locale/wctrans.c
>   stable/11/lib/libc/locale/wctype.c
>   stable/11/lib/libc/locale/wcwidth.c
>   stable/11/lib/libc/locale/xlocale.c
>   stable/11/lib/libc/locale/xlocale_private.h
>   stable/11/lib/libc/mips/SYS.h
>   stable/11/lib/libc/mips/_fpmath.h
>   stable/11/lib/libc/mips/gen/_set_tp.c
>   stable/11/lib/libc/mips/gen/fabs.c
>   stable/11/lib/libc/mips/gen/longjmp.c
>   stable/11/lib/libc/mips/gen/makecontext.c
>   stable/11/lib/libc/mips/gen/signalcontext.c
>   stable/11/lib/libc/net/ether_addr.c
>   stable/11/lib/libc/net/gai_strerror.c
>   stable/11/lib/libc/net/getaddrinfo.c
>   stable/11/lib/libc/net/gethostbydns.c
>   stable/11/lib/libc/net/gethostbyht.c
>   stable/11/lib/libc/net/gethostbynis.c
>   stable/11/lib/libc/net/gethostnamadr.c
>   stable/11/lib/libc/net/getifmaddrs.c
>   stable/11/lib/libc/net/getnameinfo.c
>   stable/11/lib/libc/net/getnetbydns.c
>   stable/11/lib/libc/net/getnetbyht.c
>   stable/11/lib/libc/net/getnetbynis.c
>   stable/11/lib/libc/net/getnetnamadr.c
>   stable/11/lib/libc/net/getproto.c
>   stable/11/lib/libc/net/getprotoent.c
>   stable/11/lib/libc/net/getprotoname.c
>   stable/11/lib/libc/net/getservent.c
>   stable/11/lib/libc/net/ip6opt.c
>   stable/11/lib/libc/net/linkaddr.c
>   stable/11/lib/libc/net/map_v4v6.c
>   stable/11/lib/libc/net/name6.c
>   stable/11/lib/libc/net/netdb_private.h
>   stable/11/lib/libc/net/nscache.c
>   stable/11/lib/libc/net/nscachedcli.c
>   stable/11/lib/libc/net/nsdispatch.c
>   stable/11/lib/libc/net/nslexer.l
>   stable/11/lib/libc/net/nsparser.y
>   stable/11/lib/libc/net/nss_backends.h
>   stable/11/lib/libc/net/nss_compat.c
>   stable/11/lib/libc/net/ntoh.c
>   stable/11/lib/libc/net/rcmd.c
>   stable/11/lib/libc/net/rcmdsh.c
>   stable/11/lib/libc/net/recv.c
>   stable/11/lib/libc/net/rthdr.c
>   stable/11/lib/libc/net/sctp_sys_calls.c
>   stable/11/lib/libc/net/send.c
>   stable/11/lib/libc/net/sockatmark.c
>   stable/11/lib/libc/net/sourcefilter.c
>   stable/11/lib/libc/net/vars.c
>   stable/11/lib/libc/posix1e/acl_branding.c
>   stable/11/lib/libc/posix1e/acl_calc_mask.c
>   stable/11/lib/libc/posix1e/acl_compat.c
>   stable/11/lib/libc/posix1e/acl_copy.c
>   stable/11/lib/libc/posix1e/acl_delete.c
>   stable/11/lib/libc/posix1e/acl_delete_entry.c
>   stable/11/lib/libc/posix1e/acl_entry.c
>   stable/11/lib/libc/posix1e/acl_flag.c
>   stable/11/lib/libc/posix1e/acl_free.c
>   stable/11/lib/libc/posix1e/acl_from_text.c
>   stable/11/lib/libc/posix1e/acl_from_text_nfs4.c
>   stable/11/lib/libc/posix1e/acl_get.c
>   stable/11/lib/libc/posix1e/acl_id_to_name.c
>   stable/11/lib/libc/posix1e/acl_init.c
>   stable/11/lib/libc/posix1e/acl_perm.c
>   stable/11/lib/libc/posix1e/acl_set.c
>   stable/11/lib/libc/posix1e/acl_strip.c
>   stable/11/lib/libc/posix1e/acl_support.c
>   stable/11/lib/libc/posix1e/acl_support.h
>   stable/11/lib/libc/posix1e/acl_support_nfs4.c
>   stable/11/lib/libc/posix1e/acl_to_text.c
>   stable/11/lib/libc/posix1e/acl_to_text_nfs4.c
>   stable/11/lib/libc/posix1e/acl_valid.c
>   stable/11/lib/libc/posix1e/extattr.c
>   stable/11/lib/libc/posix1e/mac.c
>   stable/11/lib/libc/posix1e/mac_exec.c
>   stable/11/lib/libc/posix1e/mac_get.c
>   stable/11/lib/libc/posix1e/mac_set.c
>   stable/11/lib/libc/powerpc/SYS.h
>   stable/11/lib/libc/powerpc/_fpmath.h
>   stable/11/lib/libc/powerpc/gen/_set_tp.c
>   stable/11/lib/libc/powerpc/gen/flt_rounds.c
>   stable/11/lib/libc/powerpc/gen/fpgetmask.c
>   stable/11/lib/libc/powerpc/gen/fpgetround.c
>   stable/11/lib/libc/powerpc/gen/fpgetsticky.c
>   stable/11/lib/libc/powerpc/gen/fpsetmask.c
>   stable/11/lib/libc/powerpc/gen/fpsetround.c
>   stable/11/lib/libc/powerpc/gen/makecontext.c
>   stable/11/lib/libc/powerpc/gen/signalcontext.c
>   stable/11/lib/libc/powerpc/gen/syncicache.c
>   stable/11/lib/libc/powerpc64/SYS.h
>   stable/11/lib/libc/powerpc64/_fpmath.h
>   stable/11/lib/libc/powerpc64/gen/_set_tp.c
>   stable/11/lib/libc/powerpc64/gen/flt_rounds.c
>   stable/11/lib/libc/powerpc64/gen/fpgetmask.c
>   stable/11/lib/libc/powerpc64/gen/fpgetround.c
>   stable/11/lib/libc/powerpc64/gen/fpgetsticky.c
>   stable/11/lib/libc/powerpc64/gen/fpsetmask.c
>   stable/11/lib/libc/powerpc64/gen/fpsetround.c
>   stable/11/lib/libc/powerpc64/gen/makecontext.c
>   stable/11/lib/libc/powerpc64/gen/signalcontext.c
>   stable/11/lib/libc/powerpc64/gen/syncicache.c
>   stable/11/lib/libc/quad/TESTS/divrem.c
>   stable/11/lib/libc/quad/TESTS/mul.c
>   stable/11/lib/libc/quad/adddi3.c
>   stable/11/lib/libc/quad/anddi3.c
>   stable/11/lib/libc/quad/ashldi3.c
>   stable/11/lib/libc/quad/ashrdi3.c
>   stable/11/lib/libc/quad/cmpdi2.c
>   stable/11/lib/libc/quad/divdi3.c
>   stable/11/lib/libc/quad/fixdfdi.c
>   stable/11/lib/libc/quad/fixsfdi.c
>   stable/11/lib/libc/quad/fixunsdfdi.c
>   stable/11/lib/libc/quad/fixunssfdi.c
>   stable/11/lib/libc/quad/floatdidf.c
>   stable/11/lib/libc/quad/floatdisf.c
>   stable/11/lib/libc/quad/floatunsdidf.c
>   stable/11/lib/libc/quad/iordi3.c
>   stable/11/lib/libc/quad/lshldi3.c
>   stable/11/lib/libc/quad/lshrdi3.c
>   stable/11/lib/libc/quad/moddi3.c
>   stable/11/lib/libc/quad/muldi3.c
>   stable/11/lib/libc/quad/negdi2.c
>   stable/11/lib/libc/quad/notdi2.c
>   stable/11/lib/libc/quad/qdivrem.c
>   stable/11/lib/libc/quad/quad.h
>   stable/11/lib/libc/quad/subdi3.c
>   stable/11/lib/libc/quad/ucmpdi2.c
>   stable/11/lib/libc/quad/udivdi3.c
>   stable/11/lib/libc/quad/umoddi3.c
>   stable/11/lib/libc/quad/xordi3.c
>   stable/11/lib/libc/regex/cname.h
>   stable/11/lib/libc/regex/engine.c
>   stable/11/lib/libc/regex/regcomp.c
>   stable/11/lib/libc/regex/regerror.c
>   stable/11/lib/libc/regex/regex2.h
>   stable/11/lib/libc/regex/regexec.c
>   stable/11/lib/libc/regex/regfree.c
>   stable/11/lib/libc/regex/utils.h
>   stable/11/lib/libc/resolv/h_errno.c
>   stable/11/lib/libc/resolv/herror.c
>   stable/11/lib/libc/resolv/res_comp.c
>   stable/11/lib/libc/resolv/res_debug.c
>   stable/11/lib/libc/resolv/res_init.c
>   stable/11/lib/libc/resolv/res_mkquery.c
>   stable/11/lib/libc/resolv/res_query.c
>   stable/11/lib/libc/resolv/res_send.c
>   stable/11/lib/libc/resolv/res_state.c
>   stable/11/lib/libc/rpc/auth_des.c
>   stable/11/lib/libc/rpc/auth_none.c
>   stable/11/lib/libc/rpc/auth_unix.c
>   stable/11/lib/libc/rpc/authdes_prot.c
>   stable/11/lib/libc/rpc/authunix_prot.c
>   stable/11/lib/libc/rpc/bindresvport.c
>   stable/11/lib/libc/rpc/clnt_bcast.c
>   stable/11/lib/libc/rpc/clnt_dg.c
>   stable/11/lib/libc/rpc/clnt_generic.c
>   stable/11/lib/libc/rpc/clnt_perror.c
>   stable/11/lib/libc/rpc/clnt_raw.c
>   stable/11/lib/libc/rpc/clnt_simple.c
>   stable/11/lib/libc/rpc/clnt_vc.c
>   stable/11/lib/libc/rpc/crypt_client.c
>   stable/11/lib/libc/rpc/des_crypt.c
>   stable/11/lib/libc/rpc/des_soft.c
>   stable/11/lib/libc/rpc/getnetconfig.c
>   stable/11/lib/libc/rpc/getnetpath.c
>   stable/11/lib/libc/rpc/getpublickey.c
>   stable/11/lib/libc/rpc/getrpcent.c
>   stable/11/lib/libc/rpc/getrpcport.c
>   stable/11/lib/libc/rpc/key_call.c
>   stable/11/lib/libc/rpc/key_prot_xdr.c
>   stable/11/lib/libc/rpc/mt_misc.h
>   stable/11/lib/libc/rpc/netname.c
>   stable/11/lib/libc/rpc/netnamer.c
>   stable/11/lib/libc/rpc/pmap_clnt.c
>   stable/11/lib/libc/rpc/pmap_getmaps.c
>   stable/11/lib/libc/rpc/pmap_getport.c
>   stable/11/lib/libc/rpc/pmap_prot.c
>   stable/11/lib/libc/rpc/pmap_prot2.c
>   stable/11/lib/libc/rpc/pmap_rmt.c
>   stable/11/lib/libc/rpc/rpc_callmsg.c
>   stable/11/lib/libc/rpc/rpc_com.h
>   stable/11/lib/libc/rpc/rpc_commondata.c
>   stable/11/lib/libc/rpc/rpc_dtablesize.c
>   stable/11/lib/libc/rpc/rpc_generic.c
>   stable/11/lib/libc/rpc/rpc_prot.c
>   stable/11/lib/libc/rpc/rpc_soc.c
>   stable/11/lib/libc/rpc/rpcb_clnt.c
>   stable/11/lib/libc/rpc/rpcb_prot.c
>   stable/11/lib/libc/rpc/rpcb_st_xdr.c
>   stable/11/lib/libc/rpc/rpcdname.c
>   stable/11/lib/libc/rpc/rpcsec_gss_stub.c
>   stable/11/lib/libc/rpc/rtime.c
>   stable/11/lib/libc/rpc/svc.c
>   stable/11/lib/libc/rpc/svc_auth.c
>   stable/11/lib/libc/rpc/svc_auth_des.c
>   stable/11/lib/libc/rpc/svc_auth_unix.c
>   stable/11/lib/libc/rpc/svc_dg.c
>   stable/11/lib/libc/rpc/svc_generic.c
>   stable/11/lib/libc/rpc/svc_raw.c
>   stable/11/lib/libc/rpc/svc_run.c
>   stable/11/lib/libc/rpc/svc_simple.c
>   stable/11/lib/libc/rpc/svc_vc.c
>   stable/11/lib/libc/softfloat/fpgetmask.c
>   stable/11/lib/libc/softfloat/fpgetround.c
>   stable/11/lib/libc/softfloat/fpgetsticky.c
>   stable/11/lib/libc/softfloat/fpsetmask.c
>   stable/11/lib/libc/softfloat/fpsetround.c
>   stable/11/lib/libc/softfloat/fpsetsticky.c
>   stable/11/lib/libc/sparc64/SYS.h
>   stable/11/lib/libc/sparc64/_fpmath.h
>   stable/11/lib/libc/sparc64/fpu/fpu.c
>   stable/11/lib/libc/sparc64/fpu/fpu_add.c
>   stable/11/lib/libc/sparc64/fpu/fpu_arith.h
>   stable/11/lib/libc/sparc64/fpu/fpu_compare.c
>   stable/11/lib/libc/sparc64/fpu/fpu_emu.h
>   stable/11/lib/libc/sparc64/fpu/fpu_extern.h
>   stable/11/lib/libc/sparc64/fpu/fpu_qp.c
>   stable/11/lib/libc/sparc64/fpu/fpu_reg.h
>   stable/11/lib/libc/sparc64/gen/_set_tp.c
>   stable/11/lib/libc/sparc64/gen/makecontext.c
>   stable/11/lib/libc/sparc64/gen/signalcontext.c
>   stable/11/lib/libc/sparc64/sys/__sparc_sigtramp_setup.c
>   stable/11/lib/libc/sparc64/sys/__sparc_utrap.c
>   stable/11/lib/libc/sparc64/sys/__sparc_utrap_align.c
>   stable/11/lib/libc/sparc64/sys/__sparc_utrap_emul.c
>   stable/11/lib/libc/sparc64/sys/__sparc_utrap_install.c
>   stable/11/lib/libc/sparc64/sys/__sparc_utrap_private.h
>   stable/11/lib/libc/sparc64/sys/__sparc_utrap_setup.c
>   stable/11/lib/libc/stdio/_flock_stub.c
>   stable/11/lib/libc/stdio/asprintf.c
>   stable/11/lib/libc/stdio/clrerr.c
>   stable/11/lib/libc/stdio/dprintf.c
>   stable/11/lib/libc/stdio/fclose.c
>   stable/11/lib/libc/stdio/fcloseall.c
>   stable/11/lib/libc/stdio/fdopen.c
>   stable/11/lib/libc/stdio/feof.c
>   stable/11/lib/libc/stdio/ferror.c
>   stable/11/lib/libc/stdio/fflush.c
>   stable/11/lib/libc/stdio/fgetc.c
>   stable/11/lib/libc/stdio/fgetln.c
>   stable/11/lib/libc/stdio/fgetpos.c
>   stable/11/lib/libc/stdio/fgets.c
>   stable/11/lib/libc/stdio/fgetwc.c
>   stable/11/lib/libc/stdio/fgetwln.c
>   stable/11/lib/libc/stdio/fgetws.c
>   stable/11/lib/libc/stdio/fileno.c
>   stable/11/lib/libc/stdio/findfp.c
>   stable/11/lib/libc/stdio/flags.c
>   stable/11/lib/libc/stdio/floatio.h
>   stable/11/lib/libc/stdio/fmemopen.c
>   stable/11/lib/libc/stdio/fopen.c
>   stable/11/lib/libc/stdio/fprintf.c
>   stable/11/lib/libc/stdio/fpurge.c
>   stable/11/lib/libc/stdio/fputc.c
>   stable/11/lib/libc/stdio/fputs.c
>   stable/11/lib/libc/stdio/fputwc.c
>   stable/11/lib/libc/stdio/fputws.c
>   stable/11/lib/libc/stdio/fread.c
>   stable/11/lib/libc/stdio/freopen.c
>   stable/11/lib/libc/stdio/fscanf.c
>   stable/11/lib/libc/stdio/fseek.c
>   stable/11/lib/libc/stdio/fsetpos.c
>   stable/11/lib/libc/stdio/ftell.c
>   stable/11/lib/libc/stdio/funopen.c
>   stable/11/lib/libc/stdio/fvwrite.c
>   stable/11/lib/libc/stdio/fvwrite.h
>   stable/11/lib/libc/stdio/fwalk.c
>   stable/11/lib/libc/stdio/fwide.c
>   stable/11/lib/libc/stdio/fwprintf.c
>   stable/11/lib/libc/stdio/fwrite.c
>   stable/11/lib/libc/stdio/fwscanf.c
>   stable/11/lib/libc/stdio/getc.c
>   stable/11/lib/libc/stdio/getchar.c
>   stable/11/lib/libc/stdio/getdelim.c
>   stable/11/lib/libc/stdio/getline.c
>   stable/11/lib/libc/stdio/gets.c
>   stable/11/lib/libc/stdio/getw.c
>   stable/11/lib/libc/stdio/getwc.c
>   stable/11/lib/libc/stdio/getwchar.c
>   stable/11/lib/libc/stdio/glue.h
>   stable/11/lib/libc/stdio/local.h
>   stable/11/lib/libc/stdio/makebuf.c
>   stable/11/lib/libc/stdio/mktemp.c
>   stable/11/lib/libc/stdio/open_memstream.c
>   stable/11/lib/libc/stdio/open_wmemstream.c
>   stable/11/lib/libc/stdio/perror.c
>   stable/11/lib/libc/stdio/printf-pos.c
>   stable/11/lib/libc/stdio/printf.c
>   stable/11/lib/libc/stdio/printfcommon.h
>   stable/11/lib/libc/stdio/printflocal.h
>   stable/11/lib/libc/stdio/putc.c
>   stable/11/lib/libc/stdio/putchar.c
>   stable/11/lib/libc/stdio/puts.c
>   stable/11/lib/libc/stdio/putw.c
>   stable/11/lib/libc/stdio/putwc.c
>   stable/11/lib/libc/stdio/putwchar.c
>   stable/11/lib/libc/stdio/refill.c
>   stable/11/lib/libc/stdio/remove.c
>   stable/11/lib/libc/stdio/rewind.c
>   stable/11/lib/libc/stdio/rget.c
>   stable/11/lib/libc/stdio/scanf.c
>   stable/11/lib/libc/stdio/setbuf.c
>   stable/11/lib/libc/stdio/setbuffer.c
>   stable/11/lib/libc/stdio/setvbuf.c
>   stable/11/lib/libc/stdio/snprintf.c
>   stable/11/lib/libc/stdio/sprintf.c
>   stable/11/lib/libc/stdio/sscanf.c
>   stable/11/lib/libc/stdio/stdio.c
>   stable/11/lib/libc/stdio/swprintf.c
>   stable/11/lib/libc/stdio/swscanf.c
>   stable/11/lib/libc/stdio/tempnam.c
>   stable/11/lib/libc/stdio/tmpfile.c
>   stable/11/lib/libc/stdio/tmpnam.c
>   stable/11/lib/libc/stdio/ungetc.c
>   stable/11/lib/libc/stdio/ungetwc.c
>   stable/11/lib/libc/stdio/vasprintf.c
>   stable/11/lib/libc/stdio/vdprintf.c
>   stable/11/lib/libc/stdio/vfprintf.c
>   stable/11/lib/libc/stdio/vfscanf.c
>   stable/11/lib/libc/stdio/vfwprintf.c
>   stable/11/lib/libc/stdio/vfwscanf.c
>   stable/11/lib/libc/stdio/vprintf.c
>   stable/11/lib/libc/stdio/vscanf.c
>   stable/11/lib/libc/stdio/vsnprintf.c
>   stable/11/lib/libc/stdio/vsprintf.c
>   stable/11/lib/libc/stdio/vsscanf.c
>   stable/11/lib/libc/stdio/vswprintf.c
>   stable/11/lib/libc/stdio/vswscanf.c
>   stable/11/lib/libc/stdio/vwprintf.c
>   stable/11/lib/libc/stdio/vwscanf.c
>   stable/11/lib/libc/stdio/wbuf.c
>   stable/11/lib/libc/stdio/wprintf.c
>   stable/11/lib/libc/stdio/wscanf.c
>   stable/11/lib/libc/stdio/wsetup.c
>   stable/11/lib/libc/stdio/xprintf.c
>   stable/11/lib/libc/stdio/xprintf_errno.c
>   stable/11/lib/libc/stdio/xprintf_float.c
>   stable/11/lib/libc/stdio/xprintf_hexdump.c
>   stable/11/lib/libc/stdio/xprintf_int.c
>   stable/11/lib/libc/stdio/xprintf_quote.c
>   stable/11/lib/libc/stdio/xprintf_str.c
>   stable/11/lib/libc/stdio/xprintf_time.c
>   stable/11/lib/libc/stdio/xprintf_vis.c
>   stable/11/lib/libc/stdlib/abort.c
>   stable/11/lib/libc/stdlib/abs.c
>   stable/11/lib/libc/stdlib/atexit.c
>   stable/11/lib/libc/stdlib/atexit.h
>   stable/11/lib/libc/stdlib/atof.c
>   stable/11/lib/libc/stdlib/atoi.c
>   stable/11/lib/libc/stdlib/atol.c
>   stable/11/lib/libc/stdlib/atoll.c
>   stable/11/lib/libc/stdlib/bsearch.c
>   stable/11/lib/libc/stdlib/div.c
>   stable/11/lib/libc/stdlib/exit.c
>   stable/11/lib/libc/stdlib/getenv.c
>   stable/11/lib/libc/stdlib/getopt.c
>   stable/11/lib/libc/stdlib/getsubopt.c
>   stable/11/lib/libc/stdlib/hcreate.c
>   stable/11/lib/libc/stdlib/heapsort.c
>   stable/11/lib/libc/stdlib/imaxabs.c
>   stable/11/lib/libc/stdlib/imaxdiv.c
>   stable/11/lib/libc/stdlib/labs.c
>   stable/11/lib/libc/stdlib/ldiv.c
>   stable/11/lib/libc/stdlib/llabs.c
>   stable/11/lib/libc/stdlib/lldiv.c
>   stable/11/lib/libc/stdlib/merge.c
>   stable/11/lib/libc/stdlib/ptsname.c
>   stable/11/lib/libc/stdlib/qsort.c
>   stable/11/lib/libc/stdlib/quick_exit.c
>   stable/11/lib/libc/stdlib/radixsort.c
>   stable/11/lib/libc/stdlib/rand.c
>   stable/11/lib/libc/stdlib/random.c
>   stable/11/lib/libc/stdlib/reallocf.c
>   stable/11/lib/libc/stdlib/realpath.c
>   stable/11/lib/libc/stdlib/strfmon.c
>   stable/11/lib/libc/stdlib/strtoimax.c
>   stable/11/lib/libc/stdlib/strtol.c
>   stable/11/lib/libc/stdlib/strtoll.c
>   stable/11/lib/libc/stdlib/strtoq.c
>   stable/11/lib/libc/stdlib/strtoul.c
>   stable/11/lib/libc/stdlib/strtoull.c
>   stable/11/lib/libc/stdlib/strtoumax.c
>   stable/11/lib/libc/stdlib/strtouq.c
>   stable/11/lib/libc/stdlib/system.c
>   stable/11/lib/libc/stdtime/strptime.c
>   stable/11/lib/libc/stdtime/timelocal.c
>   stable/11/lib/libc/stdtime/timelocal.h
>   stable/11/lib/libc/string/bcmp.c
>   stable/11/lib/libc/string/bcopy.c
>   stable/11/lib/libc/string/ffs.c
>   stable/11/lib/libc/string/ffsl.c
>   stable/11/lib/libc/string/ffsll.c
>   stable/11/lib/libc/string/fls.c
>   stable/11/lib/libc/string/flsl.c
>   stable/11/lib/libc/string/flsll.c
>   stable/11/lib/libc/string/memccpy.c
>   stable/11/lib/libc/string/memchr.c
>   stable/11/lib/libc/string/memcmp.c
>   stable/11/lib/libc/string/memmem.c
>   stable/11/lib/libc/string/memset.c
>   stable/11/lib/libc/string/stpcpy.c
>   stable/11/lib/libc/string/stpncpy.c
>   stable/11/lib/libc/string/strcasecmp.c
>   stable/11/lib/libc/string/strcasestr.c
>   stable/11/lib/libc/string/strcat.c
>   stable/11/lib/libc/string/strchr.c
>   stable/11/lib/libc/string/strchrnul.c
>   stable/11/lib/libc/string/strcmp.c
>   stable/11/lib/libc/string/strcoll.c
>   stable/11/lib/libc/string/strcpy.c
>   stable/11/lib/libc/string/strcspn.c
>   stable/11/lib/libc/string/strdup.c
>   stable/11/lib/libc/string/strerror.c
>   stable/11/lib/libc/string/strlen.c
>   stable/11/lib/libc/string/strmode.c
>   stable/11/lib/libc/string/strncat.c
>   stable/11/lib/libc/string/strncmp.c
>   stable/11/lib/libc/string/strncpy.c
>   stable/11/lib/libc/string/strnlen.c
>   stable/11/lib/libc/string/strnstr.c
>   stable/11/lib/libc/string/strpbrk.c
>   stable/11/lib/libc/string/strrchr.c
>   stable/11/lib/libc/string/strsep.c
>   stable/11/lib/libc/string/strsignal.c
>   stable/11/lib/libc/string/strspn.c
>   stable/11/lib/libc/string/strstr.c
>   stable/11/lib/libc/string/strtok.c
>   stable/11/lib/libc/string/strxfrm.c
>   stable/11/lib/libc/string/swab.c
>   stable/11/lib/libc/string/wcpcpy.c
>   stable/11/lib/libc/string/wcpncpy.c
>   stable/11/lib/libc/string/wcscasecmp.c
>   stable/11/lib/libc/string/wcscat.c
>   stable/11/lib/libc/string/wcschr.c
>   stable/11/lib/libc/string/wcscmp.c
>   stable/11/lib/libc/string/wcscoll.c
>   stable/11/lib/libc/string/wcscpy.c
>   stable/11/lib/libc/string/wcscspn.c
>   stable/11/lib/libc/string/wcsdup.c
>   stable/11/lib/libc/string/wcslcat.c
>   stable/11/lib/libc/string/wcslcpy.c
>   stable/11/lib/libc/string/wcslen.c
>   stable/11/lib/libc/string/wcsncasecmp.c
>   stable/11/lib/libc/string/wcsncat.c
>   stable/11/lib/libc/string/wcsncmp.c
>   stable/11/lib/libc/string/wcsncpy.c
>   stable/11/lib/libc/string/wcsnlen.c
>   stable/11/lib/libc/string/wcspbrk.c
>   stable/11/lib/libc/string/wcsrchr.c
>   stable/11/lib/libc/string/wcsspn.c
>   stable/11/lib/libc/string/wcsstr.c
>   stable/11/lib/libc/string/wcstok.c
>   stable/11/lib/libc/string/wcswidth.c
>   stable/11/lib/libc/string/wcsxfrm.c
>   stable/11/lib/libc/string/wmemchr.c
>   stable/11/lib/libc/string/wmemcmp.c
>   stable/11/lib/libc/string/wmemcpy.c
>   stable/11/lib/libc/string/wmemmove.c
>   stable/11/lib/libc/string/wmemset.c
>   stable/11/lib/libc/sys/__error.c
>   stable/11/lib/libc/sys/__vdso_gettimeofday.c
>   stable/11/lib/libc/sys/clock_gettime.c
>   stable/11/lib/libc/sys/fcntl.c
>   stable/11/lib/libc/sys/gettimeofday.c
>   stable/11/lib/libc/sys/sigwait.c
>   stable/11/lib/libc/uuid/uuid_compare.c
>   stable/11/lib/libc/uuid/uuid_create.c
>   stable/11/lib/libc/uuid/uuid_create_nil.c
>   stable/11/lib/libc/uuid/uuid_equal.c
>   stable/11/lib/libc/uuid/uuid_from_string.c
>   stable/11/lib/libc/uuid/uuid_hash.c
>   stable/11/lib/libc/uuid/uuid_is_nil.c
>   stable/11/lib/libc/uuid/uuid_stream.c
>   stable/11/lib/libc/uuid/uuid_to_string.c
>   stable/11/lib/libc/xdr/xdr.c
>   stable/11/lib/libc/xdr/xdr_array.c
>   stable/11/lib/libc/xdr/xdr_float.c
>   stable/11/lib/libc/xdr/xdr_mem.c
>   stable/11/lib/libc/xdr/xdr_rec.c
>   stable/11/lib/libc/xdr/xdr_reference.c
>   stable/11/lib/libc/xdr/xdr_sizeof.c
>   stable/11/lib/libc/xdr/xdr_stdio.c
>   stable/11/lib/libc/yp/xdryp.c
>   stable/11/lib/libc/yp/yplib.c
>   stable/11/lib/libc_nonshared/__stub.c
>   stable/11/lib/libcalendar/calendar.c
>   stable/11/lib/libcalendar/calendar.h
>   stable/11/lib/libcalendar/easter.c
>   stable/11/lib/libcam/camlib.c
>   stable/11/lib/libcam/camlib.h
>   stable/11/lib/libcam/scsi_cmdparse.c
>   stable/11/lib/libcompat/4.1/ftime.c
>   stable/11/lib/libcompat/4.3/re_comp.c
>   stable/11/lib/libcompat/4.3/rexec.c
>   stable/11/lib/libcompat/4.4/cuserid.c
>   stable/11/lib/libcrypt/crypt-md5.c
>   stable/11/lib/libcrypt/crypt-nthash.c
>   stable/11/lib/libcrypt/crypt-sha256.c
>   stable/11/lib/libcrypt/crypt-sha512.c
>   stable/11/lib/libcrypt/crypt.c
>   stable/11/lib/libcrypt/crypt.h
>   stable/11/lib/libcrypt/misc.c
>   stable/11/lib/libdevinfo/devinfo.c
>   stable/11/lib/libdevinfo/devinfo.h
>   stable/11/lib/libdevinfo/devinfo_var.h
>   stable/11/lib/libdevstat/devstat.c
>   stable/11/lib/libdevstat/devstat.h
>   stable/11/lib/libfetch/common.c
>   stable/11/lib/libfetch/common.h
>   stable/11/lib/libfetch/fetch.c
>   stable/11/lib/libfetch/fetch.h
>   stable/11/lib/libfetch/file.c
>   stable/11/lib/libfetch/ftp.c
>   stable/11/lib/libfetch/http.c
>   stable/11/lib/libgeom/geom_ctl.c
>   stable/11/lib/libgeom/geom_getxml.c
>   stable/11/lib/libgeom/geom_stats.c
>   stable/11/lib/libgeom/geom_util.c
>   stable/11/lib/libgeom/geom_xml2tree.c
>   stable/11/lib/libgeom/libgeom.h
>   stable/11/lib/libgssapi/context.h
>   stable/11/lib/libgssapi/cred.h
>   stable/11/lib/libgssapi/gss_accept_sec_context.c
>   stable/11/lib/libgssapi/gss_acquire_cred.c
>   stable/11/lib/libgssapi/gss_add_cred.c
>   stable/11/lib/libgssapi/gss_add_oid_set_member.c
>   stable/11/lib/libgssapi/gss_buffer_set.c
>   stable/11/lib/libgssapi/gss_canonicalize_name.c
>   stable/11/lib/libgssapi/gss_compare_name.c
>   stable/11/lib/libgssapi/gss_context_time.c
>   stable/11/lib/libgssapi/gss_create_empty_oid_set.c
>   stable/11/lib/libgssapi/gss_decapsulate_token.c
>   stable/11/lib/libgssapi/gss_delete_sec_context.c
>   stable/11/lib/libgssapi/gss_display_name.c
>   stable/11/lib/libgssapi/gss_display_status.c
>   stable/11/lib/libgssapi/gss_duplicate_name.c
>   stable/11/lib/libgssapi/gss_duplicate_oid.c
>   stable/11/lib/libgssapi/gss_encapsulate_token.c
>   stable/11/lib/libgssapi/gss_export_name.c
>   stable/11/lib/libgssapi/gss_export_sec_context.c
>   stable/11/lib/libgssapi/gss_get_mic.c
>   stable/11/lib/libgssapi/gss_import_name.c
>   stable/11/lib/libgssapi/gss_import_sec_context.c
>   stable/11/lib/libgssapi/gss_indicate_mechs.c
>   stable/11/lib/libgssapi/gss_init_sec_context.c
>   stable/11/lib/libgssapi/gss_inquire_context.c
>   stable/11/lib/libgssapi/gss_inquire_cred.c
>   stable/11/lib/libgssapi/gss_inquire_cred_by_mech.c
>   stable/11/lib/libgssapi/gss_inquire_cred_by_oid.c
>   stable/11/lib/libgssapi/gss_inquire_mechs_for_name.c
>   stable/11/lib/libgssapi/gss_inquire_names_for_mech.c
>   stable/11/lib/libgssapi/gss_inquire_sec_context_by_oid.c
>   stable/11/lib/libgssapi/gss_krb5.c
>   stable/11/lib/libgssapi/gss_mech_switch.c
>   stable/11/lib/libgssapi/gss_names.c
>   stable/11/lib/libgssapi/gss_oid_to_str.c
>   stable/11/lib/libgssapi/gss_pname_to_uid.c
>   stable/11/lib/libgssapi/gss_process_context_token.c
>   stable/11/lib/libgssapi/gss_pseudo_random.c
>   stable/11/lib/libgssapi/gss_release_buffer.c
>   stable/11/lib/libgssapi/gss_release_cred.c
>   stable/11/lib/libgssapi/gss_release_name.c
>   stable/11/lib/libgssapi/gss_release_oid.c
>   stable/11/lib/libgssapi/gss_release_oid_set.c
>   stable/11/lib/libgssapi/gss_seal.c
>   stable/11/lib/libgssapi/gss_set_cred_option.c
>   stable/11/lib/libgssapi/gss_set_sec_context_option.c
>   stable/11/lib/libgssapi/gss_sign.c
>   stable/11/lib/libgssapi/gss_test_oid_set_member.c
>   stable/11/lib/libgssapi/gss_unseal.c
>   stable/11/lib/libgssapi/gss_unwrap.c
>   stable/11/lib/libgssapi/gss_utils.c
>   stable/11/lib/libgssapi/gss_verify.c
>   stable/11/lib/libgssapi/gss_verify_mic.c
>   stable/11/lib/libgssapi/gss_wrap.c
>   stable/11/lib/libgssapi/gss_wrap_size_limit.c
>   stable/11/lib/libgssapi/mech_switch.h
>   stable/11/lib/libgssapi/name.h
>   stable/11/lib/libgssapi/spnego.h
>   stable/11/lib/libgssapi/utils.h
>   stable/11/lib/libiconv_modules/BIG5/citrus_big5.c
>   stable/11/lib/libiconv_modules/BIG5/citrus_big5.h
>   stable/11/lib/libiconv_modules/DECHanyu/citrus_dechanyu.c
>   stable/11/lib/libiconv_modules/DECHanyu/citrus_dechanyu.h
>   stable/11/lib/libiconv_modules/EUC/citrus_euc.c
>   stable/11/lib/libiconv_modules/EUC/citrus_euc.h
>   stable/11/lib/libiconv_modules/EUCTW/citrus_euctw.c
>   stable/11/lib/libiconv_modules/EUCTW/citrus_euctw.h
>   stable/11/lib/libiconv_modules/GBK2K/citrus_gbk2k.c
>   stable/11/lib/libiconv_modules/GBK2K/citrus_gbk2k.h
>   stable/11/lib/libiconv_modules/HZ/citrus_hz.c
>   stable/11/lib/libiconv_modules/HZ/citrus_hz.h
>   stable/11/lib/libiconv_modules/ISO2022/citrus_iso2022.c
>   stable/11/lib/libiconv_modules/ISO2022/citrus_iso2022.h
>   stable/11/lib/libiconv_modules/JOHAB/citrus_johab.c
>   stable/11/lib/libiconv_modules/JOHAB/citrus_johab.h
>   stable/11/lib/libiconv_modules/MSKanji/citrus_mskanji.c
>   stable/11/lib/libiconv_modules/MSKanji/citrus_mskanji.h
>   stable/11/lib/libiconv_modules/UES/citrus_ues.c
>   stable/11/lib/libiconv_modules/UES/citrus_ues.h
>   stable/11/lib/libiconv_modules/UTF1632/citrus_utf1632.c
>   stable/11/lib/libiconv_modules/UTF1632/citrus_utf1632.h
>   stable/11/lib/libiconv_modules/UTF7/citrus_utf7.c
>   stable/11/lib/libiconv_modules/UTF7/citrus_utf7.h
>   stable/11/lib/libiconv_modules/UTF8/citrus_utf8.c
>   stable/11/lib/libiconv_modules/UTF8/citrus_utf8.h
>   stable/11/lib/libiconv_modules/VIQR/citrus_viqr.c
>   stable/11/lib/libiconv_modules/VIQR/citrus_viqr.h
>   stable/11/lib/libiconv_modules/ZW/citrus_zw.c
>   stable/11/lib/libiconv_modules/ZW/citrus_zw.h
>   stable/11/lib/libiconv_modules/iconv_none/citrus_iconv_none.c
>   stable/11/lib/libiconv_modules/iconv_none/citrus_iconv_none.h
>   stable/11/lib/libiconv_modules/iconv_std/citrus_iconv_std.c
>   stable/11/lib/libiconv_modules/iconv_std/citrus_iconv_std.h
>   stable/11/lib/libiconv_modules/iconv_std/citrus_iconv_std_local.h
>   stable/11/lib/libiconv_modules/mapper_646/citrus_mapper_646.c
>   stable/11/lib/libiconv_modules/mapper_646/citrus_mapper_646.h
>   stable/11/lib/libiconv_modules/mapper_none/citrus_mapper_none.c
>   stable/11/lib/libiconv_modules/mapper_none/citrus_mapper_none.h
>   stable/11/lib/libiconv_modules/mapper_serial/citrus_mapper_serial.c
>   stable/11/lib/libiconv_modules/mapper_serial/citrus_mapper_serial.h
>   stable/11/lib/libiconv_modules/mapper_std/citrus_mapper_std.c
>   stable/11/lib/libiconv_modules/mapper_std/citrus_mapper_std.h
>   stable/11/lib/libiconv_modules/mapper_std/citrus_mapper_std_file.h
>   stable/11/lib/libiconv_modules/mapper_std/citrus_mapper_std_local.h
>   stable/11/lib/libiconv_modules/mapper_zone/citrus_mapper_zone.c
>   stable/11/lib/libiconv_modules/mapper_zone/citrus_mapper_zone.h
>   stable/11/lib/libipsec/ipsec_dump_policy.c
>   stable/11/lib/libipsec/ipsec_get_policylen.c
>   stable/11/lib/libipsec/ipsec_strerror.c
>   stable/11/lib/libipsec/ipsec_strerror.h
>   stable/11/lib/libipsec/libpfkey.h
>   stable/11/lib/libipsec/pfkey.c
>   stable/11/lib/libipsec/pfkey_dump.c
>   stable/11/lib/libipsec/policy_parse.y
>   stable/11/lib/libipsec/policy_token.l
>   stable/11/lib/libipsec/test-policy.c
>   stable/11/lib/libjail/jail.c
>   stable/11/lib/libjail/jail.h
>   stable/11/lib/libjail/jail_getid.c
>   stable/11/lib/libkiconv/kiconv_sysctl.c
>   stable/11/lib/libkiconv/quirks.c
>   stable/11/lib/libkiconv/quirks.h
>   stable/11/lib/libkiconv/xlat16_iconv.c
>   stable/11/lib/libkiconv/xlat16_sysctl.c
>   stable/11/lib/libkvm/kvm.c
>   stable/11/lib/libkvm/kvm.h
>   stable/11/lib/libkvm/kvm_amd64.c
>   stable/11/lib/libkvm/kvm_arm.c
>   stable/11/lib/libkvm/kvm_cptime.c
>   stable/11/lib/libkvm/kvm_getloadavg.c
>   stable/11/lib/libkvm/kvm_getswapinfo.c
>   stable/11/lib/libkvm/kvm_i386.c
>   stable/11/lib/libkvm/kvm_minidump_amd64.c
>   stable/11/lib/libkvm/kvm_minidump_arm.c
>   stable/11/lib/libkvm/kvm_minidump_i386.c
>   stable/11/lib/libkvm/kvm_minidump_mips.c
>   stable/11/lib/libkvm/kvm_pcpu.c
>   stable/11/lib/libkvm/kvm_powerpc.c
>   stable/11/lib/libkvm/kvm_powerpc64.c
>   stable/11/lib/libkvm/kvm_private.h
>   stable/11/lib/libkvm/kvm_proc.c
>   stable/11/lib/libkvm/kvm_sparc64.c
>   stable/11/lib/libkvm/kvm_vnet.c
>   stable/11/lib/libmemstat/memstat.c
>   stable/11/lib/libmemstat/memstat.h
>   stable/11/lib/libmemstat/memstat_all.c
>   stable/11/lib/libmemstat/memstat_internal.h
>   stable/11/lib/libmemstat/memstat_malloc.c
>   stable/11/lib/libmemstat/memstat_uma.c
>   stable/11/lib/libmp/mpasbn.c
>   stable/11/lib/libnandfs/libnandfs.h
>   stable/11/lib/libnandfs/nandfs.c
>   stable/11/lib/libnetbsd/rmd160.h
>   stable/11/lib/libnetbsd/sha1.h
>   stable/11/lib/libnetbsd/sha2.h
>   stable/11/lib/libnetbsd/stdlib.h
>   stable/11/lib/libnetbsd/strsuftoll.c
>   stable/11/lib/libnetbsd/sys/cdefs.h
>   stable/11/lib/libnetbsd/util.c
>   stable/11/lib/libnetbsd/util.h
>   stable/11/lib/libnv/common_impl.h
>   stable/11/lib/libnv/msgio.c
>   stable/11/lib/libnv/msgio.h
>   stable/11/lib/libpam/libpam/security/pam_mod_misc.h
>   stable/11/lib/libpam/modules/pam_chroot/pam_chroot.c
>   stable/11/lib/libpam/modules/pam_deny/pam_deny.c
>   stable/11/lib/libpam/modules/pam_echo/pam_echo.c
>   stable/11/lib/libpam/modules/pam_exec/pam_exec.c
>   stable/11/lib/libpam/modules/pam_ftpusers/pam_ftpusers.c
>   stable/11/lib/libpam/modules/pam_group/pam_group.c
>   stable/11/lib/libpam/modules/pam_guest/pam_guest.c
>   stable/11/lib/libpam/modules/pam_ksu/pam_ksu.c
>   stable/11/lib/libpam/modules/pam_lastlog/pam_lastlog.c
>   stable/11/lib/libpam/modules/pam_login_access/pam_login_access.c
>   stable/11/lib/libpam/modules/pam_login_access/pam_login_access.h
>   stable/11/lib/libpam/modules/pam_nologin/pam_nologin.c
>   stable/11/lib/libpam/modules/pam_opie/pam_opie.c
>   stable/11/lib/libpam/modules/pam_opieaccess/pam_opieaccess.c
>   stable/11/lib/libpam/modules/pam_permit/pam_permit.c
>   stable/11/lib/libpam/modules/pam_radius/pam_radius.c
>   stable/11/lib/libpam/modules/pam_rhosts/pam_rhosts.c
>   stable/11/lib/libpam/modules/pam_rootok/pam_rootok.c
>   stable/11/lib/libpam/modules/pam_securetty/pam_securetty.c
>   stable/11/lib/libpam/modules/pam_self/pam_self.c
>   stable/11/lib/libpam/modules/pam_ssh/pam_ssh.c
>   stable/11/lib/libpam/modules/pam_tacplus/pam_tacplus.c
>   stable/11/lib/libpam/modules/pam_unix/pam_unix.c
>   stable/11/lib/libpjdlog/pjdlog.c
>   stable/11/lib/libpjdlog/pjdlog.h
>   stable/11/lib/libpmc/libpmc.c
>   stable/11/lib/libpmc/libpmcinternal.h
>   stable/11/lib/libpmc/pmc.h
>   stable/11/lib/libpmc/pmclog.c
>   stable/11/lib/libpmc/pmclog.h
>   stable/11/lib/libprocstat/cd9660.c
>   stable/11/lib/libprocstat/common_kvm.c
>   stable/11/lib/libprocstat/common_kvm.h
>   stable/11/lib/libprocstat/core.c
>   stable/11/lib/libprocstat/core.h
>   stable/11/lib/libprocstat/libprocstat.c
>   stable/11/lib/libprocstat/libprocstat.h
>   stable/11/lib/libprocstat/libprocstat_internal.h
>   stable/11/lib/libprocstat/msdosfs.c
>   stable/11/lib/libprocstat/smbfs.c
>   stable/11/lib/libprocstat/udf.c
>   stable/11/lib/libprocstat/zfs.c
>   stable/11/lib/libradius/radlib.c
>   stable/11/lib/libradius/radlib.h
>   stable/11/lib/libradius/radlib_private.h
>   stable/11/lib/libradius/radlib_vs.h
>   stable/11/lib/librpcsec_gss/rpcsec_gss.c
>   stable/11/lib/librpcsec_gss/rpcsec_gss_conf.c
>   stable/11/lib/librpcsec_gss/rpcsec_gss_int.h
>   stable/11/lib/librpcsec_gss/rpcsec_gss_misc.c
>   stable/11/lib/librpcsec_gss/rpcsec_gss_prot.c
>   stable/11/lib/librpcsec_gss/svc_rpcsec_gss.c
>   stable/11/lib/librpcsvc/yp_passwd.c
>   stable/11/lib/librpcsvc/yp_update.c
>   stable/11/lib/librt/aio.c
>   stable/11/lib/librt/mq.c
>   stable/11/lib/librt/sigev_thread.c
>   stable/11/lib/librt/sigev_thread.h
>   stable/11/lib/librt/timer.c
>   stable/11/lib/librtld_db/rtld_db.c
>   stable/11/lib/librtld_db/rtld_db.h
>   stable/11/lib/libsdp/sdp-int.h
>   stable/11/lib/libsdp/sdp.h
>   stable/11/lib/libsdp/search.c
>   stable/11/lib/libsdp/service.c
>   stable/11/lib/libsdp/session.c
>   stable/11/lib/libsdp/util.c
>   stable/11/lib/libstdbuf/stdbuf.c
>   stable/11/lib/libstdthreads/call_once.c
>   stable/11/lib/libstdthreads/cnd.c
>   stable/11/lib/libstdthreads/mtx.c
>   stable/11/lib/libstdthreads/thrd.c
>   stable/11/lib/libstdthreads/threads.h
>   stable/11/lib/libstdthreads/tss.c
>   stable/11/lib/libtacplus/taclib.c
>   stable/11/lib/libtacplus/taclib.h
>   stable/11/lib/libtacplus/taclib_private.h
>   stable/11/lib/libthr/arch/amd64/include/pthread_md.h
>   stable/11/lib/libthr/arch/arm/include/pthread_md.h
>   stable/11/lib/libthr/arch/i386/include/pthread_md.h
>   stable/11/lib/libthr/arch/mips/include/pthread_md.h
>   stable/11/lib/libthr/arch/powerpc/include/pthread_md.h
>   stable/11/lib/libthr/arch/sparc64/include/pthread_md.h
>   stable/11/lib/libthr/sys/thr_error.c
>   stable/11/lib/libthr/thread/thr_affinity.c
>   stable/11/lib/libthr/thread/thr_attr.c
>   stable/11/lib/libthr/thread/thr_autoinit.c
>   stable/11/lib/libthr/thread/thr_barrier.c
>   stable/11/lib/libthr/thread/thr_barrierattr.c
>   stable/11/lib/libthr/thread/thr_cancel.c
>   stable/11/lib/libthr/thread/thr_clean.c
>   stable/11/lib/libthr/thread/thr_concurrency.c
>   stable/11/lib/libthr/thread/thr_cond.c
>   stable/11/lib/libthr/thread/thr_condattr.c
>   stable/11/lib/libthr/thread/thr_create.c
>   stable/11/lib/libthr/thread/thr_detach.c
>   stable/11/lib/libthr/thread/thr_equal.c
>   stable/11/lib/libthr/thread/thr_event.c
>   stable/11/lib/libthr/thread/thr_exit.c
>   stable/11/lib/libthr/thread/thr_fork.c
>   stable/11/lib/libthr/thread/thr_getcpuclockid.c
>   stable/11/lib/libthr/thread/thr_getprio.c
>   stable/11/lib/libthr/thread/thr_getschedparam.c
>   stable/11/lib/libthr/thread/thr_getthreadid_np.c
>   stable/11/lib/libthr/thread/thr_info.c
>   stable/11/lib/libthr/thread/thr_init.c
>   stable/11/lib/libthr/thread/thr_join.c
>   stable/11/lib/libthr/thread/thr_kern.c
>   stable/11/lib/libthr/thread/thr_kill.c
>   stable/11/lib/libthr/thread/thr_list.c
>   stable/11/lib/libthr/thread/thr_main_np.c
>   stable/11/lib/libthr/thread/thr_multi_np.c
>   stable/11/lib/libthr/thread/thr_mutex.c
>   stable/11/lib/libthr/thread/thr_mutexattr.c
>   stable/11/lib/libthr/thread/thr_once.c
>   stable/11/lib/libthr/thread/thr_printf.c
>   stable/11/lib/libthr/thread/thr_private.h
>   stable/11/lib/libthr/thread/thr_pspinlock.c
>   stable/11/lib/libthr/thread/thr_resume_np.c
>   stable/11/lib/libthr/thread/thr_rtld.c
>   stable/11/lib/libthr/thread/thr_rwlock.c
>   stable/11/lib/libthr/thread/thr_rwlockattr.c
>   stable/11/lib/libthr/thread/thr_self.c
>   stable/11/lib/libthr/thread/thr_sem.c
>   stable/11/lib/libthr/thread/thr_setprio.c
>   stable/11/lib/libthr/thread/thr_setschedparam.c
>   stable/11/lib/libthr/thread/thr_sig.c
>   stable/11/lib/libthr/thread/thr_single_np.c
>   stable/11/lib/libthr/thread/thr_sleepq.c
>   stable/11/lib/libthr/thread/thr_spec.c
>   stable/11/lib/libthr/thread/thr_spinlock.c
>   stable/11/lib/libthr/thread/thr_stack.c
>   stable/11/lib/libthr/thread/thr_suspend_np.c
>   stable/11/lib/libthr/thread/thr_switch_np.c
>   stable/11/lib/libthr/thread/thr_symbols.c
>   stable/11/lib/libthr/thread/thr_syscalls.c
>   stable/11/lib/libthr/thread/thr_umtx.c
>   stable/11/lib/libthr/thread/thr_umtx.h
>   stable/11/lib/libthr/thread/thr_yield.c
>   stable/11/lib/libthread_db/arch/amd64/libpthread_md.c
>   stable/11/lib/libthread_db/arch/arm/libpthread_md.c
>   stable/11/lib/libthread_db/arch/i386/libpthread_md.c
>   stable/11/lib/libthread_db/arch/mips/libpthread_md.c
>   stable/11/lib/libthread_db/arch/powerpc/libpthread_md.c
>   stable/11/lib/libthread_db/arch/sparc64/libpthread_md.c
>   stable/11/lib/libthread_db/kse.h
>   stable/11/lib/libthread_db/libpthread_db.c
>   stable/11/lib/libthread_db/libpthread_db.h
>   stable/11/lib/libthread_db/libthr_db.c
>   stable/11/lib/libthread_db/thread_db.c
>   stable/11/lib/libthread_db/thread_db.h
>   stable/11/lib/libthread_db/thread_db_int.h
>   stable/11/lib/libufs/block.c
>   stable/11/lib/libufs/cgroup.c
>   stable/11/lib/libufs/inode.c
>   stable/11/lib/libufs/libufs.h
>   stable/11/lib/libufs/sblock.c
>   stable/11/lib/libufs/type.c
>   stable/11/lib/libugidfw/ugidfw.c
>   stable/11/lib/libugidfw/ugidfw.h
>   stable/11/lib/libulog/ulog.h
>   stable/11/lib/libulog/ulog_login.c
>   stable/11/lib/libulog/ulog_login_pseudo.c
>   stable/11/lib/libulog/utempter.c
>   stable/11/lib/libulog/utempter.h
>   stable/11/lib/libusb/libusb.h
>   stable/11/lib/libusb/libusb01.c
>   stable/11/lib/libusb/libusb10.c
>   stable/11/lib/libusb/libusb10.h
>   stable/11/lib/libusb/libusb10_desc.c
>   stable/11/lib/libusb/libusb10_io.c
>   stable/11/lib/libusb/libusb20.c
>   stable/11/lib/libusb/libusb20.h
>   stable/11/lib/libusb/libusb20_desc.c
>   stable/11/lib/libusb/libusb20_desc.h
>   stable/11/lib/libusb/libusb20_int.h
>   stable/11/lib/libusb/libusb20_ugen20.c
>   stable/11/lib/libusb/libusb_global_linux.h
>   stable/11/lib/libusb/usb.h
>   stable/11/lib/libusbhid/data.c
>   stable/11/lib/libusbhid/descr.c
>   stable/11/lib/libusbhid/descr_compat.c
>   stable/11/lib/libusbhid/parse.c
>   stable/11/lib/libusbhid/usage.c
>   stable/11/lib/libusbhid/usbhid.h
>   stable/11/lib/libusbhid/usbvar.h
>   stable/11/lib/libutil/auth.c
>   stable/11/lib/libutil/expand_number.c
>   stable/11/lib/libutil/fparseln.c
>   stable/11/lib/libutil/gr_util.c
>   stable/11/lib/libutil/hexdump.c
>   stable/11/lib/libutil/humanize_number.c
>   stable/11/lib/libutil/kinfo_getallproc.c
>   stable/11/lib/libutil/kinfo_getproc.c
>   stable/11/lib/libutil/kld.c
>   stable/11/lib/libutil/libutil.h
>   stable/11/lib/libutil/login_crypt.c
>   stable/11/lib/libutil/login_tty.c
>   stable/11/lib/libutil/pidfile.c
>   stable/11/lib/libutil/property.c
>   stable/11/lib/libutil/pty.c
>   stable/11/lib/libutil/pw_util.c
>   stable/11/lib/libutil/quotafile.c
>   stable/11/lib/libutil/realhostname.c
>   stable/11/lib/libutil/stub.c
>   stable/11/lib/libutil/trimdomain.c
>   stable/11/lib/libutil/uucplock.c
>   stable/11/lib/libvgl/bitmap.c
>   stable/11/lib/libvgl/keyboard.c
>   stable/11/lib/libvgl/main.c
>   stable/11/lib/libvgl/mouse.c
>   stable/11/lib/libvgl/simple.c
>   stable/11/lib/libvgl/text.c
>   stable/11/lib/libvgl/vgl.h
>   stable/11/lib/libvmmapi/vmmapi.c
>   stable/11/lib/libvmmapi/vmmapi.h
>   stable/11/lib/libvmmapi/vmmapi_freebsd.c
>   stable/11/lib/liby/main.c
>   stable/11/lib/liby/yyerror.c
>   stable/11/lib/libypclnt/ypclnt.h
>   stable/11/lib/libypclnt/ypclnt_connect.c
>   stable/11/lib/libypclnt/ypclnt_error.c
>   stable/11/lib/libypclnt/ypclnt_free.c
>   stable/11/lib/libypclnt/ypclnt_get.c
>   stable/11/lib/libypclnt/ypclnt_new.c
>   stable/11/lib/libypclnt/ypclnt_passwd.c
>   stable/11/lib/msun/amd64/fenv.c
>   stable/11/lib/msun/arm/fenv.c
>   stable/11/lib/msun/arm/fenv.h
>   stable/11/lib/msun/bsdsrc/b_exp.c
>   stable/11/lib/msun/bsdsrc/b_log.c
>   stable/11/lib/msun/bsdsrc/b_tgamma.c
>   stable/11/lib/msun/bsdsrc/mathimpl.h
>   stable/11/lib/msun/i387/fenv.c
>   stable/11/lib/msun/i387/invtrig.c
>   stable/11/lib/msun/ld128/invtrig.c
>   stable/11/lib/msun/ld128/invtrig.h
>   stable/11/lib/msun/ld128/k_expl.h
>   stable/11/lib/msun/ld128/s_exp2l.c
>   stable/11/lib/msun/ld128/s_expl.c
>   stable/11/lib/msun/ld128/s_logl.c
>   stable/11/lib/msun/ld128/s_nanl.c
>   stable/11/lib/msun/ld80/invtrig.c
>   stable/11/lib/msun/ld80/invtrig.h
>   stable/11/lib/msun/ld80/k_expl.h
>   stable/11/lib/msun/ld80/s_exp2l.c
>   stable/11/lib/msun/ld80/s_expl.c
>   stable/11/lib/msun/ld80/s_logl.c
>   stable/11/lib/msun/ld80/s_nanl.c
>   stable/11/lib/msun/mips/fenv.c
>   stable/11/lib/msun/mips/fenv.h
>   stable/11/lib/msun/powerpc/fenv.c
>   stable/11/lib/msun/powerpc/fenv.h
>   stable/11/lib/msun/sparc64/fenv.c
>   stable/11/lib/msun/sparc64/fenv.h
>   stable/11/lib/msun/src/catrig.c
>   stable/11/lib/msun/src/catrigf.c
>   stable/11/lib/msun/src/e_remainderl.c
>   stable/11/lib/msun/src/e_sqrtl.c
>   stable/11/lib/msun/src/fenv-softfloat.h
>   stable/11/lib/msun/src/imprecise.c
>   stable/11/lib/msun/src/k_exp.c
>   stable/11/lib/msun/src/k_expf.c
>   stable/11/lib/msun/src/s_carg.c
>   stable/11/lib/msun/src/s_cargf.c
>   stable/11/lib/msun/src/s_cargl.c
>   stable/11/lib/msun/src/s_ccosh.c
>   stable/11/lib/msun/src/s_ccoshf.c
>   stable/11/lib/msun/src/s_cexp.c
>   stable/11/lib/msun/src/s_cexpf.c
>   stable/11/lib/msun/src/s_cimag.c
>   stable/11/lib/msun/src/s_cimagf.c
>   stable/11/lib/msun/src/s_cimagl.c
>   stable/11/lib/msun/src/s_conj.c
>   stable/11/lib/msun/src/s_conjf.c
>   stable/11/lib/msun/src/s_conjl.c
>   stable/11/lib/msun/src/s_copysignl.c
>   stable/11/lib/msun/src/s_cosl.c
>   stable/11/lib/msun/src/s_cproj.c
>   stable/11/lib/msun/src/s_cprojf.c
>   stable/11/lib/msun/src/s_cprojl.c
>   stable/11/lib/msun/src/s_creal.c
>   stable/11/lib/msun/src/s_crealf.c
>   stable/11/lib/msun/src/s_creall.c
>   stable/11/lib/msun/src/s_csinh.c
>   stable/11/lib/msun/src/s_csinhf.c
>   stable/11/lib/msun/src/s_csqrt.c
>   stable/11/lib/msun/src/s_csqrtf.c
>   stable/11/lib/msun/src/s_csqrtl.c
>   stable/11/lib/msun/src/s_ctanh.c
>   stable/11/lib/msun/src/s_ctanhf.c
>   stable/11/lib/msun/src/s_exp2.c
>   stable/11/lib/msun/src/s_exp2f.c
>   stable/11/lib/msun/src/s_fabsl.c
>   stable/11/lib/msun/src/s_fdim.c
>   stable/11/lib/msun/src/s_fma.c
>   stable/11/lib/msun/src/s_fmaf.c
>   stable/11/lib/msun/src/s_fmal.c
>   stable/11/lib/msun/src/s_fmax.c
>   stable/11/lib/msun/src/s_fmaxf.c
>   stable/11/lib/msun/src/s_fmaxl.c
>   stable/11/lib/msun/src/s_fmin.c
>   stable/11/lib/msun/src/s_fminf.c
>   stable/11/lib/msun/src/s_fminl.c
>   stable/11/lib/msun/src/s_frexpl.c
>   stable/11/lib/msun/src/s_isfinite.c
>   stable/11/lib/msun/src/s_isnan.c
>   stable/11/lib/msun/src/s_isnormal.c
>   stable/11/lib/msun/src/s_lrint.c
>   stable/11/lib/msun/src/s_lround.c
>   stable/11/lib/msun/src/s_modfl.c
>   stable/11/lib/msun/src/s_nan.c
>   stable/11/lib/msun/src/s_nearbyint.c
>   stable/11/lib/msun/src/s_rintl.c
>   stable/11/lib/msun/src/s_round.c
>   stable/11/lib/msun/src/s_roundf.c
>   stable/11/lib/msun/src/s_roundl.c
>   stable/11/lib/msun/src/s_scalbln.c
>   stable/11/lib/msun/src/s_signbit.c
>   stable/11/lib/msun/src/s_sinl.c
>   stable/11/lib/msun/src/s_tanl.c
>   stable/11/lib/msun/src/s_tgammaf.c
>   stable/11/lib/msun/x86/fenv.h
>   stable/11/lib/ncurses/ncurses/pathnames.h
>   stable/11/lib/ncurses/ncurses/termcap.c
>   stable/11/libexec/bootpd/rtmsg.c
>   stable/11/libexec/comsat/comsat.c
>   stable/11/libexec/fingerd/fingerd.c
>   stable/11/libexec/fingerd/pathnames.h
>   stable/11/libexec/ftpd/extern.h
>   stable/11/libexec/ftpd/ftpcmd.y
>   stable/11/libexec/ftpd/ftpd.c
>   stable/11/libexec/ftpd/logwtmp.c
>   stable/11/libexec/ftpd/pathnames.h
>   stable/11/libexec/ftpd/popen.c
>   stable/11/libexec/getty/extern.h
>   stable/11/libexec/getty/gettytab.h
>   stable/11/libexec/getty/init.c
>   stable/11/libexec/getty/main.c
>   stable/11/libexec/getty/pathnames.h
>   stable/11/libexec/getty/subr.c
>   stable/11/libexec/mknetid/hash.c
>   stable/11/libexec/mknetid/hash.h
>   stable/11/libexec/mknetid/mknetid.c
>   stable/11/libexec/mknetid/parse_group.c
>   stable/11/libexec/rbootd/bpf.c
>   stable/11/libexec/rbootd/conf.c
>   stable/11/libexec/rbootd/defs.h
>   stable/11/libexec/rbootd/parseconf.c
>   stable/11/libexec/rbootd/pathnames.h
>   stable/11/libexec/rbootd/rbootd.c
>   stable/11/libexec/rbootd/rmp.h
>   stable/11/libexec/rbootd/rmp_var.h
>   stable/11/libexec/rbootd/rmpproto.c
>   stable/11/libexec/rbootd/utils.c
>   stable/11/libexec/revnetgroup/hash.c
>   stable/11/libexec/revnetgroup/hash.h
>   stable/11/libexec/revnetgroup/parse_netgroup.c
>   stable/11/libexec/revnetgroup/revnetgroup.c
>   stable/11/libexec/rpc.rstatd/rstatd.c
>   stable/11/libexec/rpc.rusersd/extern.h
>   stable/11/libexec/rpc.rusersd/rusers_proc.c
>   stable/11/libexec/rpc.rusersd/rusersd.c
>   stable/11/libexec/rtld-elf/malloc.c
>   stable/11/libexec/rtld-elf/rtld_printf.c
>   stable/11/libexec/talkd/announce.c
>   stable/11/libexec/talkd/print.c
>   stable/11/libexec/talkd/process.c
>   stable/11/libexec/talkd/table.c
>   stable/11/libexec/talkd/talkd.c
>   stable/11/libexec/tftpd/tftpd.c
>   stable/11/libexec/ypxfr/yp_dbwrite.c
>   stable/11/libexec/ypxfr/ypxfr_extern.h
>   stable/11/libexec/ypxfr/ypxfr_getmap.c
>   stable/11/libexec/ypxfr/ypxfr_main.c
>   stable/11/libexec/ypxfr/ypxfr_misc.c
>   stable/11/libexec/ypxfr/ypxfrd_getmap.c
>   stable/11/release/picobsd/tinyware/login/pathnames.h
>   stable/11/release/picobsd/tinyware/login/pico-login.c
>   stable/11/release/picobsd/tinyware/passwd/extern.h
>   stable/11/release/picobsd/tinyware/passwd/local_passwd.c
>   stable/11/release/picobsd/tinyware/passwd/passwd.c
>   stable/11/release/picobsd/tinyware/passwd/pw_copy.c
>   stable/11/release/picobsd/tinyware/passwd/pw_util.c
>   stable/11/release/picobsd/tinyware/passwd/pw_util.h
>   stable/11/sbin/bsdlabel/bsdlabel.c
>   stable/11/sbin/bsdlabel/pathnames.h
>   stable/11/sbin/clri/clri.c
>   stable/11/sbin/devd/devd.cc
>   stable/11/sbin/dhclient/alloc.c
>   stable/11/sbin/dhclient/bpf.c
>   stable/11/sbin/dhclient/clparse.c
>   stable/11/sbin/dhclient/conflex.c
>   stable/11/sbin/dhclient/convert.c
>   stable/11/sbin/dhclient/dhclient.c
>   stable/11/sbin/dhclient/dhcp.h
>   stable/11/sbin/dhclient/dhcpd.h
>   stable/11/sbin/dhclient/dhctoken.h
>   stable/11/sbin/dhclient/dispatch.c
>   stable/11/sbin/dhclient/errwarn.c
>   stable/11/sbin/dhclient/hash.c
>   stable/11/sbin/dhclient/inet.c
>   stable/11/sbin/dhclient/options.c
>   stable/11/sbin/dhclient/packet.c
>   stable/11/sbin/dhclient/parse.c
>   stable/11/sbin/dhclient/tables.c
>   stable/11/sbin/dhclient/tree.c
>   stable/11/sbin/dhclient/tree.h
>   stable/11/sbin/dmesg/dmesg.c
>   stable/11/sbin/dump/dump.h
>   stable/11/sbin/dump/dumprmt.c
>   stable/11/sbin/dump/itime.c
>   stable/11/sbin/dump/main.c
>   stable/11/sbin/dump/optr.c
>   stable/11/sbin/dump/pathnames.h
>   stable/11/sbin/dump/tape.c
>   stable/11/sbin/dump/traverse.c
>   stable/11/sbin/dump/unctime.c
>   stable/11/sbin/dumpfs/dumpfs.c
>   stable/11/sbin/dumpon/dumpon.c
>   stable/11/sbin/etherswitchcfg/ifmedia.c
>   stable/11/sbin/ffsinfo/ffsinfo.c
>   stable/11/sbin/fsck/fsck.c
>   stable/11/sbin/fsck/fsutil.c
>   stable/11/sbin/fsck/preen.c
>   stable/11/sbin/fsck_ffs/dir.c
>   stable/11/sbin/fsck_ffs/fsck.h
>   stable/11/sbin/fsck_ffs/fsutil.c
>   stable/11/sbin/fsck_ffs/gjournal.c
>   stable/11/sbin/fsck_ffs/globs.c
>   stable/11/sbin/fsck_ffs/inode.c
>   stable/11/sbin/fsck_ffs/main.c
>   stable/11/sbin/fsck_ffs/pass1.c
>   stable/11/sbin/fsck_ffs/pass1b.c
>   stable/11/sbin/fsck_ffs/pass2.c
>   stable/11/sbin/fsck_ffs/pass3.c
>   stable/11/sbin/fsck_ffs/pass4.c
>   stable/11/sbin/fsck_ffs/pass5.c
>   stable/11/sbin/fsck_ffs/setup.c
>   stable/11/sbin/fsck_ffs/utilities.c
>   stable/11/sbin/growfs/debug.c
>   stable/11/sbin/growfs/debug.h
>   stable/11/sbin/growfs/growfs.c
>   stable/11/sbin/gvinum/gvinum.h
>   stable/11/sbin/ifconfig/af_inet.c
>   stable/11/sbin/ifconfig/af_inet6.c
>   stable/11/sbin/ifconfig/af_link.c
>   stable/11/sbin/ifconfig/ifclone.c
>   stable/11/sbin/ifconfig/ifconfig.c
>   stable/11/sbin/ifconfig/ifmedia.c
>   stable/11/sbin/ifconfig/ifvlan.c
>   stable/11/sbin/init/init.c
>   stable/11/sbin/init/pathnames.h
>   stable/11/sbin/mknod/mknod.c
>   stable/11/sbin/mount/getmntopts.c
>   stable/11/sbin/mount/mntopts.h
>   stable/11/sbin/mount/mount.c
>   stable/11/sbin/mount/mount_fs.c
>   stable/11/sbin/mount/pathnames.h
>   stable/11/sbin/mount/vfslist.c
>   stable/11/sbin/mount_cd9660/mount_cd9660.c
>   stable/11/sbin/mount_nfs/mount_nfs.c
>   stable/11/sbin/mount_nullfs/mount_nullfs.c
>   stable/11/sbin/mount_udf/mount_udf.c
>   stable/11/sbin/mount_unionfs/mount_unionfs.c
>   stable/11/sbin/newfs/mkfs.c
>   stable/11/sbin/newfs/newfs.c
>   stable/11/sbin/newfs/newfs.h
>   stable/11/sbin/nfsiod/nfsiod.c
>   stable/11/sbin/ping/ping.c
>   stable/11/sbin/ping6/ping6.c
>   stable/11/sbin/quotacheck/preen.c
>   stable/11/sbin/quotacheck/quotacheck.c
>   stable/11/sbin/quotacheck/quotacheck.h
>   stable/11/sbin/rcorder/ealloc.c
>   stable/11/sbin/rcorder/hash.c
>   stable/11/sbin/rcorder/hash.h
>   stable/11/sbin/rcorder/sprite.h
>   stable/11/sbin/reboot/reboot.c
>   stable/11/sbin/restore/dirs.c
>   stable/11/sbin/restore/extern.h
>   stable/11/sbin/restore/interactive.c
>   stable/11/sbin/restore/main.c
>   stable/11/sbin/restore/restore.c
>   stable/11/sbin/restore/restore.h
>   stable/11/sbin/restore/symtab.c
>   stable/11/sbin/restore/tape.c
>   stable/11/sbin/restore/utilities.c
>   stable/11/sbin/route/route.c
>   stable/11/sbin/routed/defs.h
>   stable/11/sbin/routed/if.c
>   stable/11/sbin/routed/input.c
>   stable/11/sbin/routed/main.c
>   stable/11/sbin/routed/output.c
>   stable/11/sbin/routed/parms.c
>   stable/11/sbin/routed/pathnames.h
>   stable/11/sbin/routed/radix.c
>   stable/11/sbin/routed/radix.h
>   stable/11/sbin/routed/rdisc.c
>   stable/11/sbin/routed/rtquery/rtquery.c
>   stable/11/sbin/routed/table.c
>   stable/11/sbin/routed/trace.c
>   stable/11/sbin/savecore/savecore.c
>   stable/11/sbin/setkey/parse.y
>   stable/11/sbin/setkey/setkey.c
>   stable/11/sbin/setkey/test-pfkey.c
>   stable/11/sbin/setkey/test-policy.c
>   stable/11/sbin/setkey/token.l
>   stable/11/sbin/setkey/vchar.h
>   stable/11/sbin/shutdown/shutdown.c
>   stable/11/sbin/sunlabel/sunlabel.c
>   stable/11/sbin/swapon/swapon.c
>   stable/11/sbin/sysctl/sysctl.c
>   stable/11/sbin/tunefs/tunefs.c
>   stable/11/sbin/umount/umount.c
>   stable/11/share/examples/tests/tests/atf/cp_test.sh
>   stable/11/share/examples/tests/tests/atf/printf_test.c
>   stable/11/share/examples/tests/tests/plain/printf_test.c
>   stable/11/sys/amd64/acpica/acpi_machdep.c
>   stable/11/sys/amd64/amd64/atomic.c
>   stable/11/sys/amd64/amd64/bios.c
>   stable/11/sys/amd64/amd64/bpf_jit_machdep.c
>   stable/11/sys/amd64/amd64/bpf_jit_machdep.h
>   stable/11/sys/amd64/amd64/elf_machdep.c
>   stable/11/sys/amd64/amd64/fpu.c
>   stable/11/sys/amd64/amd64/gdb_machdep.c
>   stable/11/sys/amd64/amd64/genassym.c
>   stable/11/sys/amd64/amd64/in_cksum.c
>   stable/11/sys/amd64/amd64/initcpu.c
>   stable/11/sys/amd64/amd64/io.c
>   stable/11/sys/amd64/amd64/machdep.c
>   stable/11/sys/amd64/amd64/mem.c
>   stable/11/sys/amd64/amd64/minidump_machdep.c
>   stable/11/sys/amd64/amd64/mp_machdep.c
>   stable/11/sys/amd64/amd64/pmap.c
>   stable/11/sys/amd64/amd64/prof_machdep.c
>   stable/11/sys/amd64/amd64/ptrace_machdep.c
>   stable/11/sys/amd64/amd64/sys_machdep.c
>   stable/11/sys/amd64/amd64/trap.c
>   stable/11/sys/amd64/amd64/uio_machdep.c
>   stable/11/sys/amd64/amd64/uma_machdep.c
>   stable/11/sys/amd64/amd64/vm_machdep.c
>   stable/11/sys/amd64/ia32/ia32_misc.c
>   stable/11/sys/amd64/ia32/ia32_reg.c
>   stable/11/sys/amd64/ia32/ia32_signal.c
>   stable/11/sys/amd64/ia32/ia32_syscall.c
>   stable/11/sys/amd64/include/_bus.h
>   stable/11/sys/amd64/include/asm.h
>   stable/11/sys/amd64/include/asmacros.h
>   stable/11/sys/amd64/include/atomic.h
>   stable/11/sys/amd64/include/bus_dma.h
>   stable/11/sys/amd64/include/counter.h
>   stable/11/sys/amd64/include/cpu.h
>   stable/11/sys/amd64/include/cpufunc.h
>   stable/11/sys/amd64/include/exec.h
>   stable/11/sys/amd64/include/floatingpoint.h
>   stable/11/sys/amd64/include/fpu.h
>   stable/11/sys/amd64/include/gdb_machdep.h
>   stable/11/sys/amd64/include/ieeefp.h
>   stable/11/sys/amd64/include/in_cksum.h
>   stable/11/sys/amd64/include/intr_machdep.h
>   stable/11/sys/amd64/include/iodev.h
>   stable/11/sys/amd64/include/kdb.h
>   stable/11/sys/amd64/include/limits.h
>   stable/11/sys/amd64/include/md_var.h
>   stable/11/sys/amd64/include/memdev.h
>   stable/11/sys/amd64/include/minidump.h
>   stable/11/sys/amd64/include/mp_watchdog.h
>   stable/11/sys/amd64/include/param.h
>   stable/11/sys/amd64/include/pc/bios.h
>   stable/11/sys/amd64/include/pcb.h
>   stable/11/sys/amd64/include/pcpu.h
>   stable/11/sys/amd64/include/pmap.h
>   stable/11/sys/amd64/include/pmc_mdep.h
>   stable/11/sys/amd64/include/ppireg.h
>   stable/11/sys/amd64/include/proc.h
>   stable/11/sys/amd64/include/profile.h
>   stable/11/sys/amd64/include/reloc.h
>   stable/11/sys/amd64/include/runq.h
>   stable/11/sys/amd64/include/segments.h
>   stable/11/sys/amd64/include/sf_buf.h
>   stable/11/sys/amd64/include/timerreg.h
>   stable/11/sys/amd64/include/tss.h
>   stable/11/sys/amd64/include/varargs.h
>   stable/11/sys/amd64/include/vm.h
>   stable/11/sys/amd64/include/vmm.h
>   stable/11/sys/amd64/include/vmm_dev.h
>   stable/11/sys/amd64/include/vmm_instruction_emul.h
>   stable/11/sys/amd64/include/vmparam.h
>   stable/11/sys/amd64/linux32/linux.h
>   stable/11/sys/amd64/linux32/linux32_dummy.c
>   stable/11/sys/amd64/linux32/linux32_machdep.c
>   stable/11/sys/amd64/linux32/linux32_sysvec.c
>   stable/11/sys/amd64/pci/pci_cfgreg.c
>   stable/11/sys/amd64/vmm/amd/amdv.c
>   stable/11/sys/amd64/vmm/intel/ept.c
>   stable/11/sys/amd64/vmm/intel/ept.h
>   stable/11/sys/amd64/vmm/intel/vmcs.c
>   stable/11/sys/amd64/vmm/intel/vmcs.h
>   stable/11/sys/amd64/vmm/intel/vmx.c
>   stable/11/sys/amd64/vmm/intel/vmx.h
>   stable/11/sys/amd64/vmm/intel/vmx_controls.h
>   stable/11/sys/amd64/vmm/intel/vmx_cpufunc.h
>   stable/11/sys/amd64/vmm/intel/vmx_genassym.c
>   stable/11/sys/amd64/vmm/intel/vmx_msr.c
>   stable/11/sys/amd64/vmm/intel/vmx_msr.h
>   stable/11/sys/amd64/vmm/intel/vtd.c
>   stable/11/sys/amd64/vmm/io/iommu.c
>   stable/11/sys/amd64/vmm/io/iommu.h
>   stable/11/sys/amd64/vmm/io/ppt.c
>   stable/11/sys/amd64/vmm/io/ppt.h
>   stable/11/sys/amd64/vmm/io/vhpet.c
>   stable/11/sys/amd64/vmm/io/vhpet.h
>   stable/11/sys/amd64/vmm/io/vioapic.c
>   stable/11/sys/amd64/vmm/io/vioapic.h
>   stable/11/sys/amd64/vmm/io/vlapic.c
>   stable/11/sys/amd64/vmm/io/vlapic.h
>   stable/11/sys/amd64/vmm/io/vlapic_priv.h
>   stable/11/sys/amd64/vmm/vmm.c
>   stable/11/sys/amd64/vmm/vmm_dev.c
>   stable/11/sys/amd64/vmm/vmm_host.c
>   stable/11/sys/amd64/vmm/vmm_host.h
>   stable/11/sys/amd64/vmm/vmm_instruction_emul.c
>   stable/11/sys/amd64/vmm/vmm_ktr.h
>   stable/11/sys/amd64/vmm/vmm_lapic.c
>   stable/11/sys/amd64/vmm/vmm_lapic.h
>   stable/11/sys/amd64/vmm/vmm_mem.c
>   stable/11/sys/amd64/vmm/vmm_mem.h
>   stable/11/sys/amd64/vmm/vmm_stat.c
>   stable/11/sys/amd64/vmm/vmm_stat.h
>   stable/11/sys/amd64/vmm/vmm_util.c
>   stable/11/sys/amd64/vmm/vmm_util.h
>   stable/11/sys/amd64/vmm/x86.c
>   stable/11/sys/amd64/vmm/x86.h
>   stable/11/sys/arm/allwinner/a10_ehci.c
>   stable/11/sys/arm/allwinner/a10_gpio.c
>   stable/11/sys/arm/allwinner/a10_sramc.c
>   stable/11/sys/arm/allwinner/a10_sramc.h
>   stable/11/sys/arm/allwinner/a20/a20_cpu_cfg.c
>   stable/11/sys/arm/allwinner/a20/a20_cpu_cfg.h
>   stable/11/sys/arm/allwinner/if_emac.c
>   stable/11/sys/arm/allwinner/if_emacreg.h
>   stable/11/sys/arm/arm/autoconf.c
>   stable/11/sys/arm/arm/bus_space_generic.c
>   stable/11/sys/arm/arm/busdma_machdep-v6.c
>   stable/11/sys/arm/arm/cpufunc.c
>   stable/11/sys/arm/arm/db_disasm.c
>   stable/11/sys/arm/arm/disassem.c
>   stable/11/sys/arm/arm/dump_machdep.c
>   stable/11/sys/arm/arm/elf_machdep.c
>   stable/11/sys/arm/arm/elf_trampoline.c
>   stable/11/sys/arm/arm/fiq.c
>   stable/11/sys/arm/arm/gdb_machdep.c
>   stable/11/sys/arm/arm/genassym.c
>   stable/11/sys/arm/arm/generic_timer.c
>   stable/11/sys/arm/arm/gic.c
>   stable/11/sys/arm/arm/in_cksum.c
>   stable/11/sys/arm/arm/intr.c
>   stable/11/sys/arm/arm/machdep.c
>   stable/11/sys/arm/arm/mem.c
>   stable/11/sys/arm/arm/minidump_machdep.c
>   stable/11/sys/arm/arm/mp_machdep.c
>   stable/11/sys/arm/arm/mpcore_timer.c
>   stable/11/sys/arm/arm/physmem.c
>   stable/11/sys/arm/arm/pl190.c
>   stable/11/sys/arm/arm/pl310.c
>   stable/11/sys/arm/arm/pmap-v6.c
>   stable/11/sys/arm/arm/sc_machdep.c
>   stable/11/sys/arm/arm/stack_machdep.c
>   stable/11/sys/arm/arm/stdatomic.c
>   stable/11/sys/arm/arm/sys_machdep.c
>   stable/11/sys/arm/arm/uio_machdep.c
>   stable/11/sys/arm/arm/undefined.c
>   stable/11/sys/arm/arm/vfp.c
>   stable/11/sys/arm/arm/vm_machdep.c
>   stable/11/sys/arm/at91/at91.c
>   stable/11/sys/arm/at91/at91_aic.c
>   stable/11/sys/arm/at91/at91_aicreg.h
>   stable/11/sys/arm/at91/at91_cfata.c
>   stable/11/sys/arm/at91/at91_gpio.h
>   stable/11/sys/arm/at91/at91_machdep.c
>   stable/11/sys/arm/at91/at91_mci.c
>   stable/11/sys/arm/at91/at91_mcireg.h
>   stable/11/sys/arm/at91/at91_pdcreg.h
>   stable/11/sys/arm/at91/at91_pio.c
>   stable/11/sys/arm/at91/at91_pio_sam9g45.h
>   stable/11/sys/arm/at91/at91_pioreg.h
>   stable/11/sys/arm/at91/at91_piovar.h
>   stable/11/sys/arm/at91/at91_pit.c
>   stable/11/sys/arm/at91/at91_pitreg.h
>   stable/11/sys/arm/at91/at91_pmc.c
>   stable/11/sys/arm/at91/at91_pmcreg.h
>   stable/11/sys/arm/at91/at91_pmcvar.h
>   stable/11/sys/arm/at91/at91_rst.c
>   stable/11/sys/arm/at91/at91_rstreg.h
>   stable/11/sys/arm/at91/at91_rtc.c
>   stable/11/sys/arm/at91/at91_rtcreg.h
>   stable/11/sys/arm/at91/at91_sdramc.c
>   stable/11/sys/arm/at91/at91_shdwc.c
>   stable/11/sys/arm/at91/at91_smc.c
>   stable/11/sys/arm/at91/at91_smc.h
>   stable/11/sys/arm/at91/at91_spi.c
>   stable/11/sys/arm/at91/at91_spireg.h
>   stable/11/sys/arm/at91/at91_ssc.c
>   stable/11/sys/arm/at91/at91_sscreg.h
>   stable/11/sys/arm/at91/at91_st.c
>   stable/11/sys/arm/at91/at91_streg.h
>   stable/11/sys/arm/at91/at91_tcb.c
>   stable/11/sys/arm/at91/at91_twi.c
>   stable/11/sys/arm/at91/at91_twiio.h
>   stable/11/sys/arm/at91/at91_twireg.h
>   stable/11/sys/arm/at91/at91_usartreg.h
>   stable/11/sys/arm/at91/at91_wdt.c
>   stable/11/sys/arm/at91/at91_wdtreg.h
>   stable/11/sys/arm/at91/at91board.h
>   stable/11/sys/arm/at91/at91reg.h
>   stable/11/sys/arm/at91/at91rm9200.c
>   stable/11/sys/arm/at91/at91rm9200_devices.c
>   stable/11/sys/arm/at91/at91rm9200var.h
>   stable/11/sys/arm/at91/at91rm92reg.h
>   stable/11/sys/arm/at91/at91sam9260.c
>   stable/11/sys/arm/at91/at91sam9260reg.h
>   stable/11/sys/arm/at91/at91sam9g20.c
>   stable/11/sys/arm/at91/at91sam9g20reg.h
>   stable/11/sys/arm/at91/at91sam9g45.c
>   stable/11/sys/arm/at91/at91sam9g45reg.h
>   stable/11/sys/arm/at91/at91sam9x5.c
>   stable/11/sys/arm/at91/at91sam9x5reg.h
>   stable/11/sys/arm/at91/at91soc.c
>   stable/11/sys/arm/at91/at91soc.h
>   stable/11/sys/arm/at91/at91var.h
>   stable/11/sys/arm/at91/board_bwct.c
>   stable/11/sys/arm/at91/board_eb9200.c
>   stable/11/sys/arm/at91/board_ethernut5.c
>   stable/11/sys/arm/at91/board_hl200.c
>   stable/11/sys/arm/at91/board_hl201.c
>   stable/11/sys/arm/at91/board_kb920x.c
>   stable/11/sys/arm/at91/board_qila9g20.c
>   stable/11/sys/arm/at91/board_sam9260ek.c
>   stable/11/sys/arm/at91/board_sam9g20ek.c
>   stable/11/sys/arm/at91/board_sam9x25ek.c
>   stable/11/sys/arm/at91/board_sn9g45.c
>   stable/11/sys/arm/at91/board_tsc4370.c
>   stable/11/sys/arm/at91/if_ate.c
>   stable/11/sys/arm/at91/if_atereg.h
>   stable/11/sys/arm/at91/if_macb.c
>   stable/11/sys/arm/at91/uart_bus_at91usart.c
>   stable/11/sys/arm/at91/uart_cpu_at91usart.c
>   stable/11/sys/arm/at91/uart_dev_at91usart.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_bsc.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_bscreg.h
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_bscvar.h
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_dma.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_dma.h
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_fb.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_fbd.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_gpio.h
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_intr.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_machdep.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_mbox.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_mbox.h
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_spi.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_spireg.h
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_spivar.h
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_systimer.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_vcbus.h
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_wdog.c
>   stable/11/sys/arm/broadcom/bcm2835/bcm2835_wdog.h
>   stable/11/sys/arm/conf/genboardid.awk
>   stable/11/sys/arm/freescale/fsl_ocotp.c
>   stable/11/sys/arm/freescale/fsl_ocotpreg.h
>   stable/11/sys/arm/freescale/fsl_ocotpvar.h
>   stable/11/sys/arm/freescale/imx/imx51_ccm.c
>   stable/11/sys/arm/freescale/imx/imx51_ccmreg.h
>   stable/11/sys/arm/freescale/imx/imx51_ccmvar.h
>   stable/11/sys/arm/freescale/imx/imx51_dpllreg.h
>   stable/11/sys/arm/freescale/imx/imx51_ipuv3.c
>   stable/11/sys/arm/freescale/imx/imx51_ipuv3_fbd.c
>   stable/11/sys/arm/freescale/imx/imx51_ipuv3reg.h
>   stable/11/sys/arm/freescale/imx/imx51_machdep.c
>   stable/11/sys/arm/freescale/imx/imx51_sdmareg.h
>   stable/11/sys/arm/freescale/imx/imx51_ssireg.h
>   stable/11/sys/arm/freescale/imx/imx51_tzicreg.h
>   stable/11/sys/arm/freescale/imx/imx53_machdep.c
>   stable/11/sys/arm/freescale/imx/imx6_anatop.c
>   stable/11/sys/arm/freescale/imx/imx6_anatopreg.h
>   stable/11/sys/arm/freescale/imx/imx6_anatopvar.h
>   stable/11/sys/arm/freescale/imx/imx6_ccm.c
>   stable/11/sys/arm/freescale/imx/imx6_ccmreg.h
>   stable/11/sys/arm/freescale/imx/imx6_machdep.c
>   stable/11/sys/arm/freescale/imx/imx6_mp.c
>   stable/11/sys/arm/freescale/imx/imx6_pl310.c
>   stable/11/sys/arm/freescale/imx/imx6_usbphy.c
>   stable/11/sys/arm/freescale/imx/imx_common.c
>   stable/11/sys/arm/freescale/imx/imx_gpt.c
>   stable/11/sys/arm/freescale/imx/imx_gptreg.h
>   stable/11/sys/arm/freescale/imx/imx_machdep.c
>   stable/11/sys/arm/freescale/imx/imx_machdep.h
>   stable/11/sys/arm/freescale/imx/imx_nop_usbphy.c
>   stable/11/sys/arm/freescale/imx/imx_wdog.c
>   stable/11/sys/arm/freescale/imx/imx_wdogreg.h
>   stable/11/sys/arm/freescale/imx/tzic.c
>   stable/11/sys/arm/freescale/vybrid/vf_anadig.c
>   stable/11/sys/arm/freescale/vybrid/vf_ccm.c
>   stable/11/sys/arm/freescale/vybrid/vf_common.h
>   stable/11/sys/arm/freescale/vybrid/vf_dcu4.c
>   stable/11/sys/arm/freescale/vybrid/vf_dmamux.c
>   stable/11/sys/arm/freescale/vybrid/vf_dmamux.h
>   stable/11/sys/arm/freescale/vybrid/vf_edma.c
>   stable/11/sys/arm/freescale/vybrid/vf_edma.h
>   stable/11/sys/arm/freescale/vybrid/vf_ehci.c
>   stable/11/sys/arm/freescale/vybrid/vf_gpio.c
>   stable/11/sys/arm/freescale/vybrid/vf_i2c.c
>   stable/11/sys/arm/freescale/vybrid/vf_iomuxc.c
>   stable/11/sys/arm/freescale/vybrid/vf_iomuxc.h
>   stable/11/sys/arm/freescale/vybrid/vf_machdep.c
>   stable/11/sys/arm/freescale/vybrid/vf_mscm.c
>   stable/11/sys/arm/freescale/vybrid/vf_nfc.c
>   stable/11/sys/arm/freescale/vybrid/vf_port.c
>   stable/11/sys/arm/freescale/vybrid/vf_port.h
>   stable/11/sys/arm/freescale/vybrid/vf_sai.c
>   stable/11/sys/arm/freescale/vybrid/vf_src.c
>   stable/11/sys/arm/freescale/vybrid/vf_src.h
>   stable/11/sys/arm/freescale/vybrid/vf_tcon.c
>   stable/11/sys/arm/freescale/vybrid/vf_uart.c
>   stable/11/sys/arm/include/_align.h
>   stable/11/sys/arm/include/_bus.h
>   stable/11/sys/arm/include/_inttypes.h
>   stable/11/sys/arm/include/_limits.h
>   stable/11/sys/arm/include/_stdint.h
>   stable/11/sys/arm/include/_types.h
>   stable/11/sys/arm/include/armreg.h
>   stable/11/sys/arm/include/asm.h
>   stable/11/sys/arm/include/asmacros.h
>   stable/11/sys/arm/include/at91_gpio.h
>   stable/11/sys/arm/include/atags.h
>   stable/11/sys/arm/include/atomic.h
>   stable/11/sys/arm/include/blockio.h
>   stable/11/sys/arm/include/board.h
>   stable/11/sys/arm/include/bus.h
>   stable/11/sys/arm/include/bus_dma.h
>   stable/11/sys/arm/include/clock.h
>   stable/11/sys/arm/include/counter.h
>   stable/11/sys/arm/include/cpufunc.h
>   stable/11/sys/arm/include/disassem.h
>   stable/11/sys/arm/include/elf.h
>   stable/11/sys/arm/include/endian.h
>   stable/11/sys/arm/include/exec.h
>   stable/11/sys/arm/include/fdt.h
>   stable/11/sys/arm/include/fiq.h
>   stable/11/sys/arm/include/float.h
>   stable/11/sys/arm/include/floatingpoint.h
>   stable/11/sys/arm/include/frame.h
>   stable/11/sys/arm/include/gdb_machdep.h
>   stable/11/sys/arm/include/ieee.h
>   stable/11/sys/arm/include/in_cksum.h
>   stable/11/sys/arm/include/intr.h
>   stable/11/sys/arm/include/kdb.h
>   stable/11/sys/arm/include/limits.h
>   stable/11/sys/arm/include/md_var.h
>   stable/11/sys/arm/include/memdev.h
>   stable/11/sys/arm/include/metadata.h
>   stable/11/sys/arm/include/minidump.h
>   stable/11/sys/arm/include/ofw_machdep.h
>   stable/11/sys/arm/include/param.h
>   stable/11/sys/arm/include/pcb.h
>   stable/11/sys/arm/include/pcpu.h
>   stable/11/sys/arm/include/physmem.h
>   stable/11/sys/arm/include/pl310.h
>   stable/11/sys/arm/include/pmap.h
>   stable/11/sys/arm/include/pmc_mdep.h
>   stable/11/sys/arm/include/proc.h
>   stable/11/sys/arm/include/profile.h
>   stable/11/sys/arm/include/psl.h
>   stable/11/sys/arm/include/reloc.h
>   stable/11/sys/arm/include/runq.h
>   stable/11/sys/arm/include/sc_machdep.h
>   stable/11/sys/arm/include/sf_buf.h
>   stable/11/sys/arm/include/signal.h
>   stable/11/sys/arm/include/stdarg.h
>   stable/11/sys/arm/include/sysarch.h
>   stable/11/sys/arm/include/ucontext.h
>   stable/11/sys/arm/include/undefined.h
>   stable/11/sys/arm/include/utrap.h
>   stable/11/sys/arm/include/vdso.h
>   stable/11/sys/arm/include/vfp.h
>   stable/11/sys/arm/include/vm.h
>   stable/11/sys/arm/include/vmparam.h
>   stable/11/sys/arm/lpc/if_lpe.c
>   stable/11/sys/arm/lpc/if_lpereg.h
>   stable/11/sys/arm/lpc/lpc_dmac.c
>   stable/11/sys/arm/lpc/lpc_fb.c
>   stable/11/sys/arm/lpc/lpc_gpio.c
>   stable/11/sys/arm/lpc/lpc_intc.c
>   stable/11/sys/arm/lpc/lpc_machdep.c
>   stable/11/sys/arm/lpc/lpc_mmc.c
>   stable/11/sys/arm/lpc/lpc_ohci.c
>   stable/11/sys/arm/lpc/lpc_pll.c
>   stable/11/sys/arm/lpc/lpc_pwr.c
>   stable/11/sys/arm/lpc/lpc_rtc.c
>   stable/11/sys/arm/lpc/lpc_spi.c
>   stable/11/sys/arm/lpc/lpc_timer.c
>   stable/11/sys/arm/lpc/lpcreg.h
>   stable/11/sys/arm/lpc/lpcvar.h
>   stable/11/sys/arm/lpc/ssd1289.c
>   stable/11/sys/arm/mv/armadaxp/armadaxp.c
>   stable/11/sys/arm/mv/armadaxp/armadaxp_mp.c
>   stable/11/sys/arm/mv/discovery/discovery.c
>   stable/11/sys/arm/mv/gpio.c
>   stable/11/sys/arm/mv/ic.c
>   stable/11/sys/arm/mv/kirkwood/kirkwood.c
>   stable/11/sys/arm/mv/mpic.c
>   stable/11/sys/arm/mv/mv_common.c
>   stable/11/sys/arm/mv/mv_localbus.c
>   stable/11/sys/arm/mv/mv_machdep.c
>   stable/11/sys/arm/mv/mv_pci.c
>   stable/11/sys/arm/mv/mv_ts.c
>   stable/11/sys/arm/mv/mvreg.h
>   stable/11/sys/arm/mv/mvvar.h
>   stable/11/sys/arm/mv/mvwin.h
>   stable/11/sys/arm/mv/orion/db88f5xxx.c
>   stable/11/sys/arm/mv/orion/orion.c
>   stable/11/sys/arm/mv/rtc.c
>   stable/11/sys/arm/mv/timer.c
>   stable/11/sys/arm/rockchip/rk30xx_gpio.c
>   stable/11/sys/arm/rockchip/rk30xx_grf.c
>   stable/11/sys/arm/rockchip/rk30xx_grf.h
>   stable/11/sys/arm/rockchip/rk30xx_machdep.c
>   stable/11/sys/arm/rockchip/rk30xx_pmu.c
>   stable/11/sys/arm/rockchip/rk30xx_pmu.h
>   stable/11/sys/arm/rockchip/rk30xx_wdog.c
>   stable/11/sys/arm/rockchip/rk30xx_wdog.h
>   stable/11/sys/arm/samsung/exynos/exynos5_machdep.c
>   stable/11/sys/arm/samsung/exynos/exynos5_mp.c
>   stable/11/sys/arm/ti/aintc.c
>   stable/11/sys/arm/ti/am335x/am335x_dmtimer.c
>   stable/11/sys/arm/ti/am335x/am335x_lcd.c
>   stable/11/sys/arm/ti/am335x/am335x_lcd.h
>   stable/11/sys/arm/ti/am335x/am335x_lcd_syscons.c
>   stable/11/sys/arm/ti/am335x/am335x_pmic.c
>   stable/11/sys/arm/ti/am335x/am335x_prcm.c
>   stable/11/sys/arm/ti/am335x/am335x_pwm.h
>   stable/11/sys/arm/ti/am335x/am335x_reg.h
>   stable/11/sys/arm/ti/am335x/am335x_scm.h
>   stable/11/sys/arm/ti/am335x/am335x_scm_padconf.c
>   stable/11/sys/arm/ti/am335x/am335x_usbss.c
>   stable/11/sys/arm/ti/cpsw/if_cpsw.c
>   stable/11/sys/arm/ti/cpsw/if_cpswreg.h
>   stable/11/sys/arm/ti/cpsw/if_cpswvar.h
>   stable/11/sys/arm/ti/omap4/omap4_l2cache.c
>   stable/11/sys/arm/ti/omap4/omap4_mp.c
>   stable/11/sys/arm/ti/omap4/omap4_prcm_clks.c
>   stable/11/sys/arm/ti/omap4/omap4_reg.h
>   stable/11/sys/arm/ti/omap4/omap4_scm_padconf.c
>   stable/11/sys/arm/ti/omap4/omap4_smc.h
>   stable/11/sys/arm/ti/omap4/pandaboard/pandaboard.c
>   stable/11/sys/arm/ti/ti_cpuid.c
>   stable/11/sys/arm/ti/ti_cpuid.h
>   stable/11/sys/arm/ti/ti_edma3.c
>   stable/11/sys/arm/ti/ti_edma3.h
>   stable/11/sys/arm/ti/ti_gpio.c
>   stable/11/sys/arm/ti/ti_i2c.c
>   stable/11/sys/arm/ti/ti_i2c.h
>   stable/11/sys/arm/ti/ti_machdep.c
>   stable/11/sys/arm/ti/ti_mbox.c
>   stable/11/sys/arm/ti/ti_mbox.h
>   stable/11/sys/arm/ti/ti_prcm.c
>   stable/11/sys/arm/ti/ti_prcm.h
>   stable/11/sys/arm/ti/ti_pruss.c
>   stable/11/sys/arm/ti/ti_pruss.h
>   stable/11/sys/arm/ti/ti_scm.c
>   stable/11/sys/arm/ti/ti_scm.h
>   stable/11/sys/arm/ti/ti_sdhci.c
>   stable/11/sys/arm/ti/ti_sdma.c
>   stable/11/sys/arm/ti/ti_sdma.h
>   stable/11/sys/arm/ti/ti_sdmareg.h
>   stable/11/sys/arm/ti/ti_smc.h
>   stable/11/sys/arm/ti/tivar.h
>   stable/11/sys/arm/ti/twl/twl.c
>   stable/11/sys/arm/ti/twl/twl.h
>   stable/11/sys/arm/ti/twl/twl_clks.c
>   stable/11/sys/arm/ti/twl/twl_clks.h
>   stable/11/sys/arm/ti/twl/twl_vreg.c
>   stable/11/sys/arm/ti/twl/twl_vreg.h
>   stable/11/sys/arm/ti/usb/omap_ehci.c
>   stable/11/sys/arm/ti/usb/omap_usb.h
>   stable/11/sys/arm/versatile/pl050.c
>   stable/11/sys/arm/versatile/sp804.c
>   stable/11/sys/arm/versatile/versatile_clcd.c
>   stable/11/sys/arm/versatile/versatile_common.c
>   stable/11/sys/arm/versatile/versatile_machdep.c
>   stable/11/sys/arm/versatile/versatile_pci.c
>   stable/11/sys/arm/versatile/versatile_sic.c
>   stable/11/sys/arm/xilinx/uart_dev_cdnc.c
>   stable/11/sys/arm/xilinx/zy7_devcfg.c
>   stable/11/sys/arm/xilinx/zy7_ehci.c
>   stable/11/sys/arm/xilinx/zy7_gpio.c
>   stable/11/sys/arm/xilinx/zy7_l2cache.c
>   stable/11/sys/arm/xilinx/zy7_machdep.c
>   stable/11/sys/arm/xilinx/zy7_reg.h
>   stable/11/sys/arm/xilinx/zy7_slcr.c
>   stable/11/sys/arm/xilinx/zy7_slcr.h
>   stable/11/sys/arm/xscale/i8134x/crb_machdep.c
>   stable/11/sys/arm/xscale/i8134x/i81342.c
>   stable/11/sys/arm/xscale/i8134x/i81342_mcu.c
>   stable/11/sys/arm/xscale/i8134x/i81342_pci.c
>   stable/11/sys/arm/xscale/i8134x/i81342_space.c
>   stable/11/sys/arm/xscale/i8134x/i81342reg.h
>   stable/11/sys/arm/xscale/i8134x/i81342var.h
>   stable/11/sys/arm/xscale/i8134x/iq81342_7seg.c
>   stable/11/sys/arm/xscale/i8134x/iq81342reg.h
>   stable/11/sys/arm/xscale/i8134x/iq81342var.h
>   stable/11/sys/arm/xscale/i8134x/obio.c
>   stable/11/sys/arm/xscale/i8134x/obiovar.h
>   stable/11/sys/arm/xscale/i8134x/uart_bus_i81342.c
>   stable/11/sys/arm/xscale/i8134x/uart_cpu_i81342.c
>   stable/11/sys/arm/xscale/ixp425/avila_ata.c
>   stable/11/sys/arm/xscale/ixp425/avila_gpio.c
>   stable/11/sys/arm/xscale/ixp425/avila_led.c
>   stable/11/sys/arm/xscale/ixp425/avila_machdep.c
>   stable/11/sys/arm/xscale/ixp425/cambria_exp_space.c
>   stable/11/sys/arm/xscale/ixp425/cambria_fled.c
>   stable/11/sys/arm/xscale/ixp425/cambria_gpio.c
>   stable/11/sys/arm/xscale/ixp425/cambria_led.c
>   stable/11/sys/arm/xscale/ixp425/if_npe.c
>   stable/11/sys/arm/xscale/ixp425/if_npereg.h
>   stable/11/sys/arm/xscale/ixp425/ixdp425_pci.c
>   stable/11/sys/arm/xscale/ixp425/ixdp425reg.h
>   stable/11/sys/arm/xscale/ixp425/ixp425.c
>   stable/11/sys/arm/xscale/ixp425/ixp425_a4x_space.c
>   stable/11/sys/arm/xscale/ixp425/ixp425_iic.c
>   stable/11/sys/arm/xscale/ixp425/ixp425_intr.h
>   stable/11/sys/arm/xscale/ixp425/ixp425_mem.c
>   stable/11/sys/arm/xscale/ixp425/ixp425_npe.c
>   stable/11/sys/arm/xscale/ixp425/ixp425_npereg.h
>   stable/11/sys/arm/xscale/ixp425/ixp425_npevar.h
>   stable/11/sys/arm/xscale/ixp425/ixp425_pci.c
>   stable/11/sys/arm/xscale/ixp425/ixp425_pci_space.c
>   stable/11/sys/arm/xscale/ixp425/ixp425_qmgr.c
>   stable/11/sys/arm/xscale/ixp425/ixp425_qmgr.h
>   stable/11/sys/arm/xscale/ixp425/ixp425_space.c
>   stable/11/sys/arm/xscale/ixp425/ixp425_timer.c
>   stable/11/sys/arm/xscale/ixp425/ixp425_wdog.c
>   stable/11/sys/arm/xscale/ixp425/ixp425reg.h
>   stable/11/sys/arm/xscale/ixp425/ixp425var.h
>   stable/11/sys/arm/xscale/ixp425/uart_bus_ixp425.c
>   stable/11/sys/arm/xscale/ixp425/uart_cpu_ixp425.c
>   stable/11/sys/arm/xscale/pxa/if_smc_smi.c
>   stable/11/sys/arm/xscale/pxa/pxa_gpio.c
>   stable/11/sys/arm/xscale/pxa/pxa_icu.c
>   stable/11/sys/arm/xscale/pxa/pxa_machdep.c
>   stable/11/sys/arm/xscale/pxa/pxa_obio.c
>   stable/11/sys/arm/xscale/pxa/pxa_smi.c
>   stable/11/sys/arm/xscale/pxa/pxa_space.c
>   stable/11/sys/arm/xscale/pxa/pxa_timer.c
>   stable/11/sys/arm/xscale/pxa/pxareg.h
>   stable/11/sys/arm/xscale/pxa/pxavar.h
>   stable/11/sys/arm/xscale/pxa/uart_bus_pxa.c
>   stable/11/sys/arm/xscale/pxa/uart_cpu_pxa.c
>   stable/11/sys/bsm/audit.h
>   stable/11/sys/bsm/audit_domain.h
>   stable/11/sys/bsm/audit_errno.h
>   stable/11/sys/bsm/audit_fcntl.h
>   stable/11/sys/bsm/audit_internal.h
>   stable/11/sys/bsm/audit_kevents.h
>   stable/11/sys/bsm/audit_record.h
>   stable/11/sys/bsm/audit_socket_type.h
>   stable/11/sys/compat/freebsd32/freebsd32_ioctl.c
>   stable/11/sys/compat/freebsd32/freebsd32_ioctl.h
>   stable/11/sys/compat/linprocfs/linprocfs.c
>   stable/11/sys/compat/ndis/cfg_var.h
>   stable/11/sys/compat/ndis/hal_var.h
>   stable/11/sys/compat/ndis/kern_ndis.c
>   stable/11/sys/compat/ndis/kern_windrv.c
>   stable/11/sys/compat/ndis/ndis_var.h
>   stable/11/sys/compat/ndis/ntoskrnl_var.h
>   stable/11/sys/compat/ndis/pe_var.h
>   stable/11/sys/compat/ndis/resource_var.h
>   stable/11/sys/compat/ndis/subr_hal.c
>   stable/11/sys/compat/ndis/subr_ndis.c
>   stable/11/sys/compat/ndis/subr_ntoskrnl.c
>   stable/11/sys/compat/ndis/subr_pe.c
>   stable/11/sys/compat/ndis/subr_usbd.c
>   stable/11/sys/compat/ndis/usbd_var.h
>   stable/11/sys/conf/newvers.sh
>   stable/11/sys/conf/systags.sh
>   stable/11/sys/crypto/sha1.c
>   stable/11/sys/crypto/sha1.h
>   stable/11/sys/ddb/db_ps.c
>   stable/11/sys/ddb/ddb.h
>   stable/11/sys/dev/aac/aac.c
>   stable/11/sys/dev/aac/aac_cam.c
>   stable/11/sys/dev/aac/aac_debug.c
>   stable/11/sys/dev/aac/aac_disk.c
>   stable/11/sys/dev/aac/aac_linux.c
>   stable/11/sys/dev/aac/aac_pci.c
>   stable/11/sys/dev/aac/aac_tables.h
>   stable/11/sys/dev/aac/aacreg.h
>   stable/11/sys/dev/aac/aacvar.h
>   stable/11/sys/dev/aacraid/aacraid.c
>   stable/11/sys/dev/aacraid/aacraid_cam.c
>   stable/11/sys/dev/aacraid/aacraid_debug.c
>   stable/11/sys/dev/aacraid/aacraid_debug.h
>   stable/11/sys/dev/aacraid/aacraid_linux.c
>   stable/11/sys/dev/aacraid/aacraid_pci.c
>   stable/11/sys/dev/aacraid/aacraid_reg.h
>   stable/11/sys/dev/aacraid/aacraid_var.h
>   stable/11/sys/dev/adb/adb.h
>   stable/11/sys/dev/adb/adb_bus.c
>   stable/11/sys/dev/adb/adb_buttons.c
>   stable/11/sys/dev/adb/adb_kbd.c
>   stable/11/sys/dev/adb/adb_mouse.c
>   stable/11/sys/dev/adb/adbvar.h
>   stable/11/sys/dev/adlink/adlink.c
>   stable/11/sys/dev/advansys/adv_isa.c
>   stable/11/sys/dev/advansys/adv_pci.c
>   stable/11/sys/dev/advansys/advansys.c
>   stable/11/sys/dev/advansys/advansys.h
>   stable/11/sys/dev/advansys/advlib.c
>   stable/11/sys/dev/advansys/advlib.h
>   stable/11/sys/dev/advansys/adw_pci.c
>   stable/11/sys/dev/advansys/adwcam.c
>   stable/11/sys/dev/advansys/adwlib.c
>   stable/11/sys/dev/advansys/adwlib.h
>   stable/11/sys/dev/advansys/adwvar.h
>   stable/11/sys/dev/ae/if_ae.c
>   stable/11/sys/dev/ae/if_aereg.h
>   stable/11/sys/dev/ae/if_aevar.h
>   stable/11/sys/dev/age/if_age.c
>   stable/11/sys/dev/age/if_agereg.h
>   stable/11/sys/dev/age/if_agevar.h
>   stable/11/sys/dev/agp/agp.c
>   stable/11/sys/dev/agp/agp_ali.c
>   stable/11/sys/dev/agp/agp_amd.c
>   stable/11/sys/dev/agp/agp_amd64.c
>   stable/11/sys/dev/agp/agp_apple.c
>   stable/11/sys/dev/agp/agp_ati.c
>   stable/11/sys/dev/agp/agp_i810.c
>   stable/11/sys/dev/agp/agp_i810.h
>   stable/11/sys/dev/agp/agp_intel.c
>   stable/11/sys/dev/agp/agp_nvidia.c
>   stable/11/sys/dev/agp/agp_sis.c
>   stable/11/sys/dev/agp/agp_via.c
>   stable/11/sys/dev/agp/agppriv.h
>   stable/11/sys/dev/agp/agpreg.h
>   stable/11/sys/dev/agp/agpvar.h
>   stable/11/sys/dev/aha/aha.c
>   stable/11/sys/dev/aha/aha_isa.c
>   stable/11/sys/dev/aha/ahareg.h
>   stable/11/sys/dev/ahci/ahci.c
>   stable/11/sys/dev/ahci/ahci.h
>   stable/11/sys/dev/ahci/ahciem.c
>   stable/11/sys/dev/aic/aic.c
>   stable/11/sys/dev/aic/aic6360reg.h
>   stable/11/sys/dev/aic/aic_isa.c
>   stable/11/sys/dev/aic/aic_pccard.c
>   stable/11/sys/dev/aic/aicvar.h
>   stable/11/sys/dev/aic7xxx/ahc_isa.c
>   stable/11/sys/dev/aic7xxx/aic7770.c
>   stable/11/sys/dev/aic7xxx/aic79xx.c
>   stable/11/sys/dev/aic7xxx/aic79xx.h
>   stable/11/sys/dev/aic7xxx/aic79xx_inline.h
>   stable/11/sys/dev/aic7xxx/aic79xx_pci.c
>   stable/11/sys/dev/aic7xxx/aic7xxx.c
>   stable/11/sys/dev/aic7xxx/aic7xxx.h
>   stable/11/sys/dev/aic7xxx/aic7xxx_93cx6.h
>   stable/11/sys/dev/aic7xxx/aic7xxx_inline.h
>   stable/11/sys/dev/aic7xxx/aic7xxx_pci.c
>   stable/11/sys/dev/aic7xxx/aicasm/aicasm.c
>   stable/11/sys/dev/aic7xxx/aicasm/aicasm.h
>   stable/11/sys/dev/aic7xxx/aicasm/aicasm_gram.y
>   stable/11/sys/dev/aic7xxx/aicasm/aicasm_insformat.h
>   stable/11/sys/dev/aic7xxx/aicasm/aicasm_macro_gram.y
>   stable/11/sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l
>   stable/11/sys/dev/aic7xxx/aicasm/aicasm_scan.l
>   stable/11/sys/dev/aic7xxx/aicasm/aicasm_symbol.c
>   stable/11/sys/dev/aic7xxx/aicasm/aicasm_symbol.h
>   stable/11/sys/dev/alc/if_alc.c
>   stable/11/sys/dev/alc/if_alcreg.h
>   stable/11/sys/dev/alc/if_alcvar.h
>   stable/11/sys/dev/ale/if_ale.c
>   stable/11/sys/dev/ale/if_alereg.h
>   stable/11/sys/dev/ale/if_alevar.h
>   stable/11/sys/dev/altera/atse/a_api.h
>   stable/11/sys/dev/altera/atse/if_atse.c
>   stable/11/sys/dev/altera/atse/if_atse_fdt.c
>   stable/11/sys/dev/altera/atse/if_atse_nexus.c
>   stable/11/sys/dev/altera/atse/if_atsereg.h
>   stable/11/sys/dev/altera/avgen/altera_avgen.c
>   stable/11/sys/dev/altera/avgen/altera_avgen.h
>   stable/11/sys/dev/altera/avgen/altera_avgen_fdt.c
>   stable/11/sys/dev/altera/avgen/altera_avgen_nexus.c
>   stable/11/sys/dev/altera/jtag_uart/altera_jtag_uart.h
>   stable/11/sys/dev/altera/jtag_uart/altera_jtag_uart_cons.c
>   stable/11/sys/dev/altera/jtag_uart/altera_jtag_uart_fdt.c
>   stable/11/sys/dev/altera/jtag_uart/altera_jtag_uart_nexus.c
>   stable/11/sys/dev/altera/jtag_uart/altera_jtag_uart_tty.c
>   stable/11/sys/dev/altera/sdcard/altera_sdcard.c
>   stable/11/sys/dev/altera/sdcard/altera_sdcard.h
>   stable/11/sys/dev/altera/sdcard/altera_sdcard_disk.c
>   stable/11/sys/dev/altera/sdcard/altera_sdcard_fdt.c
>   stable/11/sys/dev/altera/sdcard/altera_sdcard_io.c
>   stable/11/sys/dev/altera/sdcard/altera_sdcard_nexus.c
>   stable/11/sys/dev/amdsbwd/amdsbwd.c
>   stable/11/sys/dev/amdtemp/amdtemp.c
>   stable/11/sys/dev/amr/amr.c
>   stable/11/sys/dev/amr/amr_cam.c
>   stable/11/sys/dev/amr/amr_disk.c
>   stable/11/sys/dev/amr/amr_linux.c
>   stable/11/sys/dev/amr/amr_pci.c
>   stable/11/sys/dev/amr/amr_tables.h
>   stable/11/sys/dev/amr/amrio.h
>   stable/11/sys/dev/amr/amrreg.h
>   stable/11/sys/dev/amr/amrvar.h
>   stable/11/sys/dev/an/if_aironet_ieee.h
>   stable/11/sys/dev/an/if_an.c
>   stable/11/sys/dev/an/if_an_isa.c
>   stable/11/sys/dev/an/if_an_pccard.c
>   stable/11/sys/dev/an/if_an_pci.c
>   stable/11/sys/dev/an/if_anreg.h
>   stable/11/sys/dev/arcmsr/arcmsr.c
>   stable/11/sys/dev/arcmsr/arcmsr.h
>   stable/11/sys/dev/asmc/asmc.c
>   stable/11/sys/dev/asmc/asmcvar.h
>   stable/11/sys/dev/ata/ata-all.c
>   stable/11/sys/dev/ata/ata-all.h
>   stable/11/sys/dev/ata/ata-card.c
>   stable/11/sys/dev/ata/ata-dma.c
>   stable/11/sys/dev/ata/ata-isa.c
>   stable/11/sys/dev/ata/ata-lowlevel.c
>   stable/11/sys/dev/ata/ata-pci.c
>   stable/11/sys/dev/ata/ata-pci.h
>   stable/11/sys/dev/ata/ata-sata.c
>   stable/11/sys/dev/ata/chipsets/ata-acard.c
>   stable/11/sys/dev/ata/chipsets/ata-acerlabs.c
>   stable/11/sys/dev/ata/chipsets/ata-amd.c
>   stable/11/sys/dev/ata/chipsets/ata-ati.c
>   stable/11/sys/dev/ata/chipsets/ata-cenatek.c
>   stable/11/sys/dev/ata/chipsets/ata-cypress.c
>   stable/11/sys/dev/ata/chipsets/ata-cyrix.c
>   stable/11/sys/dev/ata/chipsets/ata-fsl.c
>   stable/11/sys/dev/ata/chipsets/ata-highpoint.c
>   stable/11/sys/dev/ata/chipsets/ata-intel.c
>   stable/11/sys/dev/ata/chipsets/ata-ite.c
>   stable/11/sys/dev/ata/chipsets/ata-jmicron.c
>   stable/11/sys/dev/ata/chipsets/ata-marvell.c
>   stable/11/sys/dev/ata/chipsets/ata-micron.c
>   stable/11/sys/dev/ata/chipsets/ata-national.c
>   stable/11/sys/dev/ata/chipsets/ata-netcell.c
>   stable/11/sys/dev/ata/chipsets/ata-nvidia.c
>   stable/11/sys/dev/ata/chipsets/ata-promise.c
>   stable/11/sys/dev/ata/chipsets/ata-serverworks.c
>   stable/11/sys/dev/ata/chipsets/ata-siliconimage.c
>   stable/11/sys/dev/ata/chipsets/ata-sis.c
>   stable/11/sys/dev/ata/chipsets/ata-via.c
>   stable/11/sys/dev/ath/ah_osdep.c
>   stable/11/sys/dev/ath/ah_osdep.h
>   stable/11/sys/dev/ath/ath_dfs/null/dfs_null.c
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9002phy.h
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9280_olc.c
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9280_olc.h
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_cal.c
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_cal.h
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.c
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.h
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_phy.c
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_phy.h
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9285phy.h
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9287_cal.c
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9287_cal.h
>   stable/11/sys/dev/ath/ath_hal/ar9002/ar9287_olc.c
>   stable/11/sys/dev/ath/ath_hal/ar9003/ar9300_devid.h
>   stable/11/sys/dev/ath/ath_rate/amrr/amrr.c
>   stable/11/sys/dev/ath/ath_rate/amrr/amrr.h
>   stable/11/sys/dev/ath/ath_rate/onoe/onoe.c
>   stable/11/sys/dev/ath/ath_rate/onoe/onoe.h
>   stable/11/sys/dev/ath/ath_rate/sample/sample.c
>   stable/11/sys/dev/ath/ath_rate/sample/sample.h
>   stable/11/sys/dev/ath/ath_rate/sample/tx_schedules.h
>   stable/11/sys/dev/ath/if_ath.c
>   stable/11/sys/dev/ath/if_ath_ahb.c
>   stable/11/sys/dev/ath/if_ath_alq.c
>   stable/11/sys/dev/ath/if_ath_alq.h
>   stable/11/sys/dev/ath/if_ath_beacon.c
>   stable/11/sys/dev/ath/if_ath_beacon.h
>   stable/11/sys/dev/ath/if_ath_btcoex.c
>   stable/11/sys/dev/ath/if_ath_btcoex.h
>   stable/11/sys/dev/ath/if_ath_debug.c
>   stable/11/sys/dev/ath/if_ath_debug.h
>   stable/11/sys/dev/ath/if_ath_keycache.c
>   stable/11/sys/dev/ath/if_ath_keycache.h
>   stable/11/sys/dev/ath/if_ath_led.c
>   stable/11/sys/dev/ath/if_ath_led.h
>   stable/11/sys/dev/ath/if_ath_lna_div.c
>   stable/11/sys/dev/ath/if_ath_lna_div.h
>   stable/11/sys/dev/ath/if_ath_misc.h
>   stable/11/sys/dev/ath/if_ath_pci.c
>   stable/11/sys/dev/ath/if_ath_rx.c
>   stable/11/sys/dev/ath/if_ath_rx.h
>   stable/11/sys/dev/ath/if_ath_rx_edma.c
>   stable/11/sys/dev/ath/if_ath_rx_edma.h
>   stable/11/sys/dev/ath/if_ath_spectral.c
>   stable/11/sys/dev/ath/if_ath_spectral.h
>   stable/11/sys/dev/ath/if_ath_sysctl.c
>   stable/11/sys/dev/ath/if_ath_sysctl.h
>   stable/11/sys/dev/ath/if_ath_tdma.c
>   stable/11/sys/dev/ath/if_ath_tdma.h
>   stable/11/sys/dev/ath/if_ath_tsf.h
>   stable/11/sys/dev/ath/if_ath_tx.c
>   stable/11/sys/dev/ath/if_ath_tx.h
>   stable/11/sys/dev/ath/if_ath_tx_edma.c
>   stable/11/sys/dev/ath/if_ath_tx_edma.h
>   stable/11/sys/dev/ath/if_ath_tx_ht.c
>   stable/11/sys/dev/ath/if_ath_tx_ht.h
>   stable/11/sys/dev/ath/if_athdfs.h
>   stable/11/sys/dev/ath/if_athioctl.h
>   stable/11/sys/dev/ath/if_athrate.h
>   stable/11/sys/dev/ath/if_athvar.h
>   stable/11/sys/dev/atkbdc/atkbd.c
>   stable/11/sys/dev/atkbdc/atkbd_atkbdc.c
>   stable/11/sys/dev/atkbdc/atkbdc.c
>   stable/11/sys/dev/atkbdc/atkbdc_ebus.c
>   stable/11/sys/dev/atkbdc/atkbdc_isa.c
>   stable/11/sys/dev/atkbdc/atkbdc_subr.c
>   stable/11/sys/dev/atkbdc/atkbdc_subr.h
>   stable/11/sys/dev/atkbdc/atkbdcreg.h
>   stable/11/sys/dev/atkbdc/atkbdreg.h
>   stable/11/sys/dev/auxio/auxio.c
>   stable/11/sys/dev/auxio/auxioreg.h
>   stable/11/sys/dev/bce/if_bce.c
>   stable/11/sys/dev/bce/if_bcefw.h
>   stable/11/sys/dev/bce/if_bcereg.h
>   stable/11/sys/dev/bfe/if_bfe.c
>   stable/11/sys/dev/bfe/if_bfereg.h
>   stable/11/sys/dev/bge/if_bge.c
>   stable/11/sys/dev/bge/if_bgereg.h
>   stable/11/sys/dev/bktr/bktr_audio.c
>   stable/11/sys/dev/bktr/bktr_audio.h
>   stable/11/sys/dev/bktr/bktr_card.c
>   stable/11/sys/dev/bktr/bktr_card.h
>   stable/11/sys/dev/bktr/bktr_core.c
>   stable/11/sys/dev/bktr/bktr_core.h
>   stable/11/sys/dev/bktr/bktr_i2c.c
>   stable/11/sys/dev/bktr/bktr_i2c.h
>   stable/11/sys/dev/bktr/bktr_mem.c
>   stable/11/sys/dev/bktr/bktr_mem.h
>   stable/11/sys/dev/bktr/bktr_os.c
>   stable/11/sys/dev/bktr/bktr_os.h
>   stable/11/sys/dev/bktr/bktr_reg.h
>   stable/11/sys/dev/bktr/bktr_tuner.c
>   stable/11/sys/dev/bktr/bktr_tuner.h
>   stable/11/sys/dev/bktr/ioctl_meteor.h
>   stable/11/sys/dev/bktr/msp34xx.c
>   stable/11/sys/dev/bm/if_bm.c
>   stable/11/sys/dev/bm/if_bmreg.h
>   stable/11/sys/dev/bm/if_bmvar.h
>   stable/11/sys/dev/buslogic/bt.c
>   stable/11/sys/dev/buslogic/bt_isa.c
>   stable/11/sys/dev/buslogic/bt_pci.c
>   stable/11/sys/dev/buslogic/btreg.h
>   stable/11/sys/dev/bvm/bvm_console.c
>   stable/11/sys/dev/bvm/bvm_dbg.c
>   stable/11/sys/dev/bwi/bitops.h
>   stable/11/sys/dev/bwi/bwimac.c
>   stable/11/sys/dev/bwi/bwimac.h
>   stable/11/sys/dev/bwi/bwiphy.c
>   stable/11/sys/dev/bwi/bwiphy.h
>   stable/11/sys/dev/bwi/bwirf.c
>   stable/11/sys/dev/bwi/bwirf.h
>   stable/11/sys/dev/bwi/if_bwi.c
>   stable/11/sys/dev/bwi/if_bwi_pci.c
>   stable/11/sys/dev/bwi/if_bwireg.h
>   stable/11/sys/dev/bwi/if_bwivar.h
>   stable/11/sys/dev/bwn/if_bwn.c
>   stable/11/sys/dev/bwn/if_bwnreg.h
>   stable/11/sys/dev/bwn/if_bwnvar.h
>   stable/11/sys/dev/bxe/57710_init_values.c
>   stable/11/sys/dev/bxe/57710_int_offsets.h
>   stable/11/sys/dev/bxe/57711_init_values.c
>   stable/11/sys/dev/bxe/57711_int_offsets.h
>   stable/11/sys/dev/bxe/57712_init_values.c
>   stable/11/sys/dev/bxe/57712_int_offsets.h
>   stable/11/sys/dev/bxe/bxe.c
>   stable/11/sys/dev/bxe/bxe.h
>   stable/11/sys/dev/bxe/bxe_dcb.h
>   stable/11/sys/dev/bxe/bxe_debug.c
>   stable/11/sys/dev/bxe/bxe_elink.c
>   stable/11/sys/dev/bxe/bxe_elink.h
>   stable/11/sys/dev/bxe/bxe_stats.c
>   stable/11/sys/dev/bxe/bxe_stats.h
>   stable/11/sys/dev/bxe/ecore_fw_defs.h
>   stable/11/sys/dev/bxe/ecore_hsi.h
>   stable/11/sys/dev/bxe/ecore_init.h
>   stable/11/sys/dev/bxe/ecore_init_ops.h
>   stable/11/sys/dev/bxe/ecore_mfw_req.h
>   stable/11/sys/dev/bxe/ecore_reg.h
>   stable/11/sys/dev/bxe/ecore_sp.c
>   stable/11/sys/dev/bxe/ecore_sp.h
>   stable/11/sys/dev/cadence/if_cgem.c
>   stable/11/sys/dev/cadence/if_cgem_hw.h
>   stable/11/sys/dev/cardbus/cardbus.c
>   stable/11/sys/dev/cardbus/cardbus_cis.c
>   stable/11/sys/dev/cardbus/cardbus_cis.h
>   stable/11/sys/dev/cardbus/cardbus_device.c
>   stable/11/sys/dev/cardbus/cardbusreg.h
>   stable/11/sys/dev/cardbus/cardbusvar.h
>   stable/11/sys/dev/cas/if_cas.c
>   stable/11/sys/dev/cas/if_casreg.h
>   stable/11/sys/dev/cas/if_casvar.h
>   stable/11/sys/dev/cesa/cesa.c
>   stable/11/sys/dev/cesa/cesa.h
>   stable/11/sys/dev/cfe/cfe_api.c
>   stable/11/sys/dev/cfe/cfe_api.h
>   stable/11/sys/dev/cfe/cfe_api_int.h
>   stable/11/sys/dev/cfe/cfe_console.c
>   stable/11/sys/dev/cfe/cfe_env.c
>   stable/11/sys/dev/cfe/cfe_error.h
>   stable/11/sys/dev/cfe/cfe_ioctl.h
>   stable/11/sys/dev/cfe/cfe_resource.c
>   stable/11/sys/dev/cfi/cfi_bus_fdt.c
>   stable/11/sys/dev/cfi/cfi_bus_ixp4xx.c
>   stable/11/sys/dev/cfi/cfi_bus_nexus.c
>   stable/11/sys/dev/cfi/cfi_core.c
>   stable/11/sys/dev/cfi/cfi_dev.c
>   stable/11/sys/dev/cfi/cfi_disk.c
>   stable/11/sys/dev/cfi/cfi_reg.h
>   stable/11/sys/dev/cfi/cfi_var.h
>   stable/11/sys/dev/ciss/ciss.c
>   stable/11/sys/dev/ciss/cissio.h
>   stable/11/sys/dev/ciss/cissreg.h
>   stable/11/sys/dev/ciss/cissvar.h
>   stable/11/sys/dev/cm/if_cm_isa.c
>   stable/11/sys/dev/cm/smc90cx6.c
>   stable/11/sys/dev/cm/smc90cx6reg.h
>   stable/11/sys/dev/cm/smc90cx6var.h
>   stable/11/sys/dev/cmx/cmx_pccard.c
>   stable/11/sys/dev/cmx/cmxreg.h
>   stable/11/sys/dev/cmx/cmxvar.h
>   stable/11/sys/dev/coretemp/coretemp.c
>   stable/11/sys/dev/cpuctl/cpuctl.c
>   stable/11/sys/dev/cpufreq/ichss.c
>   stable/11/sys/dev/cs/if_cs.c
>   stable/11/sys/dev/cs/if_cs_isa.c
>   stable/11/sys/dev/cs/if_cs_pccard.c
>   stable/11/sys/dev/cs/if_csreg.h
>   stable/11/sys/dev/cs/if_csvar.h
>   stable/11/sys/dev/cxgb/bin2h.pl
>   stable/11/sys/dev/cxgb/common/cxgb_ael1002.c
>   stable/11/sys/dev/cxgb/common/cxgb_aq100x.c
>   stable/11/sys/dev/cxgb/common/cxgb_common.h
>   stable/11/sys/dev/cxgb/common/cxgb_firmware_exports.h
>   stable/11/sys/dev/cxgb/common/cxgb_mc5.c
>   stable/11/sys/dev/cxgb/common/cxgb_mv88e1xxx.c
>   stable/11/sys/dev/cxgb/common/cxgb_regs.h
>   stable/11/sys/dev/cxgb/common/cxgb_sge_defs.h
>   stable/11/sys/dev/cxgb/common/cxgb_t3_cpl.h
>   stable/11/sys/dev/cxgb/common/cxgb_t3_hw.c
>   stable/11/sys/dev/cxgb/common/cxgb_tcb.h
>   stable/11/sys/dev/cxgb/common/cxgb_tn1010.c
>   stable/11/sys/dev/cxgb/common/cxgb_vsc7323.c
>   stable/11/sys/dev/cxgb/common/cxgb_vsc8211.c
>   stable/11/sys/dev/cxgb/common/cxgb_xgmac.c
>   stable/11/sys/dev/cxgb/cxgb_adapter.h
>   stable/11/sys/dev/cxgb/cxgb_ioctl.h
>   stable/11/sys/dev/cxgb/cxgb_main.c
>   stable/11/sys/dev/cxgb/cxgb_offload.h
>   stable/11/sys/dev/cxgb/cxgb_osdep.h
>   stable/11/sys/dev/cxgb/cxgb_sge.c
>   stable/11/sys/dev/cxgb/cxgb_t3fw.h
>   stable/11/sys/dev/cxgb/sys/mvec.h
>   stable/11/sys/dev/cxgb/sys/uipc_mvec.c
>   stable/11/sys/dev/cxgb/t3b_protocol_sram.h
>   stable/11/sys/dev/cxgb/t3b_tp_eeprom.h
>   stable/11/sys/dev/cxgb/t3c_protocol_sram.h
>   stable/11/sys/dev/cxgb/t3c_tp_eeprom.h
>   stable/11/sys/dev/cxgbe/adapter.h
>   stable/11/sys/dev/cxgbe/common/common.h
>   stable/11/sys/dev/cxgbe/common/t4_hw.c
>   stable/11/sys/dev/cxgbe/common/t4_hw.h
>   stable/11/sys/dev/cxgbe/common/t4_msg.h
>   stable/11/sys/dev/cxgbe/common/t4_regs.h
>   stable/11/sys/dev/cxgbe/common/t4_regs_values.h
>   stable/11/sys/dev/cxgbe/common/t4_tcb.h
>   stable/11/sys/dev/cxgbe/iw_cxgbe/cm.c
>   stable/11/sys/dev/cxgbe/iw_cxgbe/cq.c
>   stable/11/sys/dev/cxgbe/iw_cxgbe/device.c
>   stable/11/sys/dev/cxgbe/iw_cxgbe/ev.c
>   stable/11/sys/dev/cxgbe/iw_cxgbe/id_table.c
>   stable/11/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h
>   stable/11/sys/dev/cxgbe/iw_cxgbe/mem.c
>   stable/11/sys/dev/cxgbe/iw_cxgbe/provider.c
>   stable/11/sys/dev/cxgbe/iw_cxgbe/qp.c
>   stable/11/sys/dev/cxgbe/iw_cxgbe/resource.c
>   stable/11/sys/dev/cxgbe/iw_cxgbe/t4.h
>   stable/11/sys/dev/cxgbe/iw_cxgbe/user.h
>   stable/11/sys/dev/cxgbe/offload.h
>   stable/11/sys/dev/cxgbe/osdep.h
>   stable/11/sys/dev/cxgbe/t4_ioctl.h
>   stable/11/sys/dev/cxgbe/t4_l2t.c
>   stable/11/sys/dev/cxgbe/t4_l2t.h
>   stable/11/sys/dev/cxgbe/t4_main.c
>   stable/11/sys/dev/cxgbe/t4_sge.c
>   stable/11/sys/dev/cxgbe/t4_tracer.c
>   stable/11/sys/dev/cxgbe/tom/t4_connect.c
>   stable/11/sys/dev/cxgbe/tom/t4_cpl_io.c
>   stable/11/sys/dev/cxgbe/tom/t4_ddp.c
>   stable/11/sys/dev/cxgbe/tom/t4_listen.c
>   stable/11/sys/dev/cxgbe/tom/t4_tom.c
>   stable/11/sys/dev/cxgbe/tom/t4_tom.h
>   stable/11/sys/dev/cxgbe/tom/t4_tom_l2t.c
>   stable/11/sys/dev/cxgbe/tom/t4_tom_l2t.h
>   stable/11/sys/dev/cy/cy.c
>   stable/11/sys/dev/cy/cy_isa.c
>   stable/11/sys/dev/cy/cy_pci.c
>   stable/11/sys/dev/cy/cyreg.h
>   stable/11/sys/dev/cy/cyvar.h
>   stable/11/sys/dev/dc/dcphy.c
>   stable/11/sys/dev/dc/if_dc.c
>   stable/11/sys/dev/dc/if_dcreg.h
>   stable/11/sys/dev/dc/pnphy.c
>   stable/11/sys/dev/dcons/dcons.c
>   stable/11/sys/dev/dcons/dcons.h
>   stable/11/sys/dev/dcons/dcons_crom.c
>   stable/11/sys/dev/dcons/dcons_os.c
>   stable/11/sys/dev/dcons/dcons_os.h
>   stable/11/sys/dev/de/dc21040reg.h
>   stable/11/sys/dev/de/if_de.c
>   stable/11/sys/dev/de/if_devar.h
>   stable/11/sys/dev/dpms/dpms.c
>   stable/11/sys/dev/dpt/dpt.h
>   stable/11/sys/dev/dpt/dpt_pci.c
>   stable/11/sys/dev/dpt/dpt_scsi.c
>   stable/11/sys/dev/drm2/drm_gem.c
>   stable/11/sys/dev/drm2/drm_gem_names.c
>   stable/11/sys/dev/drm2/drm_gem_names.h
>   stable/11/sys/dev/drm2/drm_linux_list_sort.c
>   stable/11/sys/dev/drm2/i915/i915_gem.c
>   stable/11/sys/dev/e1000/e1000_80003es2lan.c
>   stable/11/sys/dev/e1000/e1000_80003es2lan.h
>   stable/11/sys/dev/e1000/e1000_82540.c
>   stable/11/sys/dev/e1000/e1000_82541.c
>   stable/11/sys/dev/e1000/e1000_82541.h
>   stable/11/sys/dev/e1000/e1000_82542.c
>   stable/11/sys/dev/e1000/e1000_82543.c
>   stable/11/sys/dev/e1000/e1000_82543.h
>   stable/11/sys/dev/e1000/e1000_82571.c
>   stable/11/sys/dev/e1000/e1000_82571.h
>   stable/11/sys/dev/e1000/e1000_82575.c
>   stable/11/sys/dev/e1000/e1000_82575.h
>   stable/11/sys/dev/e1000/e1000_api.c
>   stable/11/sys/dev/e1000/e1000_api.h
>   stable/11/sys/dev/e1000/e1000_defines.h
>   stable/11/sys/dev/e1000/e1000_hw.h
>   stable/11/sys/dev/e1000/e1000_i210.c
>   stable/11/sys/dev/e1000/e1000_i210.h
>   stable/11/sys/dev/e1000/e1000_ich8lan.c
>   stable/11/sys/dev/e1000/e1000_ich8lan.h
>   stable/11/sys/dev/e1000/e1000_mac.c
>   stable/11/sys/dev/e1000/e1000_mac.h
>   stable/11/sys/dev/e1000/e1000_manage.c
>   stable/11/sys/dev/e1000/e1000_manage.h
>   stable/11/sys/dev/e1000/e1000_mbx.c
>   stable/11/sys/dev/e1000/e1000_mbx.h
>   stable/11/sys/dev/e1000/e1000_nvm.c
>   stable/11/sys/dev/e1000/e1000_nvm.h
>   stable/11/sys/dev/e1000/e1000_osdep.c
>   stable/11/sys/dev/e1000/e1000_osdep.h
>   stable/11/sys/dev/e1000/e1000_phy.c
>   stable/11/sys/dev/e1000/e1000_phy.h
>   stable/11/sys/dev/e1000/e1000_regs.h
>   stable/11/sys/dev/e1000/e1000_vf.c
>   stable/11/sys/dev/e1000/e1000_vf.h
>   stable/11/sys/dev/e1000/if_em.c
>   stable/11/sys/dev/e1000/if_em.h
>   stable/11/sys/dev/ed/ax88x90reg.h
>   stable/11/sys/dev/ed/dl100xxreg.h
>   stable/11/sys/dev/ed/if_ed.c
>   stable/11/sys/dev/ed/if_ed_3c503.c
>   stable/11/sys/dev/ed/if_ed_hpp.c
>   stable/11/sys/dev/ed/if_ed_isa.c
>   stable/11/sys/dev/ed/if_ed_novell.c
>   stable/11/sys/dev/ed/if_ed_pccard.c
>   stable/11/sys/dev/ed/if_ed_pci.c
>   stable/11/sys/dev/ed/if_ed_rtl80x9.c
>   stable/11/sys/dev/ed/if_ed_sic.c
>   stable/11/sys/dev/ed/if_ed_wd80x3.c
>   stable/11/sys/dev/ed/if_edvar.h
>   stable/11/sys/dev/ed/rtl80x9reg.h
>   stable/11/sys/dev/ed/tc5299jreg.h
>   stable/11/sys/dev/ep/if_ep.c
>   stable/11/sys/dev/ep/if_ep_isa.c
>   stable/11/sys/dev/ep/if_ep_pccard.c
>   stable/11/sys/dev/ep/if_epreg.h
>   stable/11/sys/dev/ep/if_epvar.h
>   stable/11/sys/dev/esp/am53c974reg.h
>   stable/11/sys/dev/esp/esp_pci.c
>   stable/11/sys/dev/esp/esp_sbus.c
>   stable/11/sys/dev/esp/ncr53c9x.c
>   stable/11/sys/dev/esp/ncr53c9xreg.h
>   stable/11/sys/dev/esp/ncr53c9xvar.h
>   stable/11/sys/dev/et/if_et.c
>   stable/11/sys/dev/et/if_etreg.h
>   stable/11/sys/dev/et/if_etvar.h
>   stable/11/sys/dev/etherswitch/arswitch/arswitch.c
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_7240.c
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_7240.h
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_8216.c
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_8216.h
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_8226.c
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_8226.h
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_8316.c
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_8316.h
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_8327.c
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_8327.h
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_9340.c
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_9340.h
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_phy.c
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_phy.h
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_reg.c
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_reg.h
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_vlans.c
>   stable/11/sys/dev/etherswitch/arswitch/arswitch_vlans.h
>   stable/11/sys/dev/etherswitch/arswitch/arswitchreg.h
>   stable/11/sys/dev/etherswitch/arswitch/arswitchvar.h
>   stable/11/sys/dev/etherswitch/etherswitch.c
>   stable/11/sys/dev/etherswitch/ip17x/ip175c.c
>   stable/11/sys/dev/etherswitch/ip17x/ip175c.h
>   stable/11/sys/dev/etherswitch/ip17x/ip175d.c
>   stable/11/sys/dev/etherswitch/ip17x/ip175d.h
>   stable/11/sys/dev/etherswitch/ip17x/ip17x.c
>   stable/11/sys/dev/etherswitch/ip17x/ip17x_phy.c
>   stable/11/sys/dev/etherswitch/ip17x/ip17x_phy.h
>   stable/11/sys/dev/etherswitch/ip17x/ip17x_reg.h
>   stable/11/sys/dev/etherswitch/ip17x/ip17x_var.h
>   stable/11/sys/dev/etherswitch/ip17x/ip17x_vlans.c
>   stable/11/sys/dev/etherswitch/ip17x/ip17x_vlans.h
>   stable/11/sys/dev/etherswitch/miiproxy.c
>   stable/11/sys/dev/etherswitch/miiproxy.h
>   stable/11/sys/dev/etherswitch/rtl8366/rtl8366rb.c
>   stable/11/sys/dev/etherswitch/rtl8366/rtl8366rbvar.h
>   stable/11/sys/dev/etherswitch/ukswitch/ukswitch.c
>   stable/11/sys/dev/ex/if_ex.c
>   stable/11/sys/dev/ex/if_ex_isa.c
>   stable/11/sys/dev/ex/if_ex_pccard.c
>   stable/11/sys/dev/ex/if_exreg.h
>   stable/11/sys/dev/ex/if_exvar.h
>   stable/11/sys/dev/exca/exca.c
>   stable/11/sys/dev/exca/excareg.h
>   stable/11/sys/dev/exca/excavar.h
>   stable/11/sys/dev/fb/creator.c
>   stable/11/sys/dev/fb/creatorreg.h
>   stable/11/sys/dev/fb/fb.c
>   stable/11/sys/dev/fb/fbd.c
>   stable/11/sys/dev/fb/fbreg.h
>   stable/11/sys/dev/fb/gallant12x22.c
>   stable/11/sys/dev/fb/machfb.c
>   stable/11/sys/dev/fb/s3_pci.c
>   stable/11/sys/dev/fb/splash.c
>   stable/11/sys/dev/fb/splash_bmp.c
>   stable/11/sys/dev/fb/splash_pcx.c
>   stable/11/sys/dev/fb/splash_txt.c
>   stable/11/sys/dev/fb/splashreg.h
>   stable/11/sys/dev/fb/vesa.c
>   stable/11/sys/dev/fb/vesa.h
>   stable/11/sys/dev/fb/vga.c
>   stable/11/sys/dev/fb/vgareg.h
>   stable/11/sys/dev/fdc/fdc.c
>   stable/11/sys/dev/fdc/fdc_acpi.c
>   stable/11/sys/dev/fdc/fdc_isa.c
>   stable/11/sys/dev/fdc/fdc_pccard.c
>   stable/11/sys/dev/fdc/fdcvar.h
>   stable/11/sys/dev/fdt/fdt_common.c
>   stable/11/sys/dev/fdt/fdt_common.h
>   stable/11/sys/dev/fdt/fdt_powerpc.c
>   stable/11/sys/dev/fdt/fdt_slicer.c
>   stable/11/sys/dev/fdt/simplebus.c
>   stable/11/sys/dev/ffec/if_ffec.c
>   stable/11/sys/dev/ffec/if_ffecreg.h
>   stable/11/sys/dev/filemon/filemon.c
>   stable/11/sys/dev/filemon/filemon.h
>   stable/11/sys/dev/filemon/filemon_wrapper.c
>   stable/11/sys/dev/firewire/firewire.c
>   stable/11/sys/dev/firewire/firewire.h
>   stable/11/sys/dev/firewire/firewire_phy.h
>   stable/11/sys/dev/firewire/firewirereg.h
>   stable/11/sys/dev/firewire/fwcrom.c
>   stable/11/sys/dev/firewire/fwdev.c
>   stable/11/sys/dev/firewire/fwdma.c
>   stable/11/sys/dev/firewire/fwdma.h
>   stable/11/sys/dev/firewire/fwmem.c
>   stable/11/sys/dev/firewire/fwmem.h
>   stable/11/sys/dev/firewire/fwohci.c
>   stable/11/sys/dev/firewire/fwohci_pci.c
>   stable/11/sys/dev/firewire/fwohcireg.h
>   stable/11/sys/dev/firewire/fwohcivar.h
>   stable/11/sys/dev/firewire/fwphyreg.h
>   stable/11/sys/dev/firewire/iec13213.h
>   stable/11/sys/dev/firewire/iec68113.h
>   stable/11/sys/dev/firewire/if_fwe.c
>   stable/11/sys/dev/firewire/if_fwevar.h
>   stable/11/sys/dev/firewire/if_fwip.c
>   stable/11/sys/dev/firewire/if_fwipvar.h
>   stable/11/sys/dev/firewire/sbp.c
>   stable/11/sys/dev/firewire/sbp.h
>   stable/11/sys/dev/firewire/sbp_targ.c
>   stable/11/sys/dev/flash/at45d.c
>   stable/11/sys/dev/flash/mx25l.c
>   stable/11/sys/dev/flash/mx25lreg.h
>   stable/11/sys/dev/fxp/if_fxp.c
>   stable/11/sys/dev/fxp/if_fxpreg.h
>   stable/11/sys/dev/fxp/if_fxpvar.h
>   stable/11/sys/dev/fxp/inphy.c
>   stable/11/sys/dev/fxp/inphyreg.h
>   stable/11/sys/dev/fxp/rcvbundl.h
>   stable/11/sys/dev/gem/if_gem.c
>   stable/11/sys/dev/gem/if_gem_pci.c
>   stable/11/sys/dev/gem/if_gem_sbus.c
>   stable/11/sys/dev/gem/if_gemreg.h
>   stable/11/sys/dev/gem/if_gemvar.h
>   stable/11/sys/dev/glxiic/glxiic.c
>   stable/11/sys/dev/glxsb/glxsb.h
>   stable/11/sys/dev/glxsb/glxsb_hash.c
>   stable/11/sys/dev/gpio/gpiobus.c
>   stable/11/sys/dev/gpio/gpiobusvar.h
>   stable/11/sys/dev/gpio/gpioc.c
>   stable/11/sys/dev/gpio/gpioiic.c
>   stable/11/sys/dev/gpio/gpioled.c
>   stable/11/sys/dev/gpio/ofw_gpiobus.c
>   stable/11/sys/dev/gxemul/cons/gxemul_cons.c
>   stable/11/sys/dev/gxemul/disk/gxemul_disk.c
>   stable/11/sys/dev/gxemul/disk/gxemul_diskreg.h
>   stable/11/sys/dev/gxemul/ether/gxreg.h
>   stable/11/sys/dev/gxemul/ether/if_gx.c
>   stable/11/sys/dev/hifn/hifn7751.c
>   stable/11/sys/dev/hifn/hifn7751reg.h
>   stable/11/sys/dev/hifn/hifn7751var.h
>   stable/11/sys/dev/hme/if_hme.c
>   stable/11/sys/dev/hme/if_hme_pci.c
>   stable/11/sys/dev/hme/if_hme_sbus.c
>   stable/11/sys/dev/hme/if_hmereg.h
>   stable/11/sys/dev/hme/if_hmevar.h
>   stable/11/sys/dev/hpt27xx/array.h
>   stable/11/sys/dev/hpt27xx/him.h
>   stable/11/sys/dev/hpt27xx/himfuncs.h
>   stable/11/sys/dev/hpt27xx/hpt27xx_config.c
>   stable/11/sys/dev/hpt27xx/hpt27xx_config.h
>   stable/11/sys/dev/hpt27xx/hpt27xx_os_bsd.c
>   stable/11/sys/dev/hpt27xx/hpt27xx_osm_bsd.c
>   stable/11/sys/dev/hpt27xx/hptintf.h
>   stable/11/sys/dev/hpt27xx/ldm.h
>   stable/11/sys/dev/hpt27xx/list.h
>   stable/11/sys/dev/hpt27xx/os_bsd.h
>   stable/11/sys/dev/hpt27xx/osm.h
>   stable/11/sys/dev/hpt27xx/wj.h
>   stable/11/sys/dev/hptiop/hptiop.c
>   stable/11/sys/dev/hptiop/hptiop.h
>   stable/11/sys/dev/hptmv/access601.h
>   stable/11/sys/dev/hptmv/array.h
>   stable/11/sys/dev/hptmv/atapi.h
>   stable/11/sys/dev/hptmv/command.h
>   stable/11/sys/dev/hptmv/entry.c
>   stable/11/sys/dev/hptmv/global.h
>   stable/11/sys/dev/hptmv/gui_lib.c
>   stable/11/sys/dev/hptmv/hptintf.h
>   stable/11/sys/dev/hptmv/hptproc.c
>   stable/11/sys/dev/hptmv/ioctl.c
>   stable/11/sys/dev/hptmv/mv.c
>   stable/11/sys/dev/hptmv/mvOs.h
>   stable/11/sys/dev/hptmv/mvSata.h
>   stable/11/sys/dev/hptmv/mvStorageDev.h
>   stable/11/sys/dev/hptmv/osbsd.h
>   stable/11/sys/dev/hptmv/raid5n.h
>   stable/11/sys/dev/hptmv/vdevice.h
>   stable/11/sys/dev/hptnr/array.h
>   stable/11/sys/dev/hptnr/him.h
>   stable/11/sys/dev/hptnr/himfuncs.h
>   stable/11/sys/dev/hptnr/hptintf.h
>   stable/11/sys/dev/hptnr/hptnr_config.c
>   stable/11/sys/dev/hptnr/hptnr_config.h
>   stable/11/sys/dev/hptnr/hptnr_os_bsd.c
>   stable/11/sys/dev/hptnr/hptnr_osm_bsd.c
>   stable/11/sys/dev/hptnr/ldm.h
>   stable/11/sys/dev/hptnr/list.h
>   stable/11/sys/dev/hptnr/os_bsd.h
>   stable/11/sys/dev/hptnr/osm.h
>   stable/11/sys/dev/hptnr/wj.h
>   stable/11/sys/dev/hptrr/array.h
>   stable/11/sys/dev/hptrr/him.h
>   stable/11/sys/dev/hptrr/himfuncs.h
>   stable/11/sys/dev/hptrr/hptintf.h
>   stable/11/sys/dev/hptrr/hptrr_config.c
>   stable/11/sys/dev/hptrr/hptrr_config.h
>   stable/11/sys/dev/hptrr/hptrr_os_bsd.c
>   stable/11/sys/dev/hptrr/hptrr_osm_bsd.c
>   stable/11/sys/dev/hptrr/ldm.h
>   stable/11/sys/dev/hptrr/list.h
>   stable/11/sys/dev/hptrr/os_bsd.h
>   stable/11/sys/dev/hptrr/osm.h
>   stable/11/sys/dev/hwpmc/hwpmc_amd.c
>   stable/11/sys/dev/hwpmc/hwpmc_amd.h
>   stable/11/sys/dev/hwpmc/hwpmc_arm.c
>   stable/11/sys/dev/hwpmc/hwpmc_core.c
>   stable/11/sys/dev/hwpmc/hwpmc_core.h
>   stable/11/sys/dev/hwpmc/hwpmc_intel.c
>   stable/11/sys/dev/hwpmc/hwpmc_logging.c
>   stable/11/sys/dev/hwpmc/hwpmc_mips.c
>   stable/11/sys/dev/hwpmc/hwpmc_mips24k.c
>   stable/11/sys/dev/hwpmc/hwpmc_mod.c
>   stable/11/sys/dev/hwpmc/hwpmc_mpc7xxx.c
>   stable/11/sys/dev/hwpmc/hwpmc_octeon.c
>   stable/11/sys/dev/hwpmc/hwpmc_pentium.c
>   stable/11/sys/dev/hwpmc/hwpmc_pentium.h
>   stable/11/sys/dev/hwpmc/hwpmc_piv.c
>   stable/11/sys/dev/hwpmc/hwpmc_piv.h
>   stable/11/sys/dev/hwpmc/hwpmc_powerpc.c
>   stable/11/sys/dev/hwpmc/hwpmc_powerpc.h
>   stable/11/sys/dev/hwpmc/hwpmc_ppc970.c
>   stable/11/sys/dev/hwpmc/hwpmc_ppro.c
>   stable/11/sys/dev/hwpmc/hwpmc_ppro.h
>   stable/11/sys/dev/hwpmc/hwpmc_soft.c
>   stable/11/sys/dev/hwpmc/hwpmc_soft.h
>   stable/11/sys/dev/hwpmc/hwpmc_sparc64.c
>   stable/11/sys/dev/hwpmc/hwpmc_tsc.c
>   stable/11/sys/dev/hwpmc/hwpmc_tsc.h
>   stable/11/sys/dev/hwpmc/hwpmc_uncore.c
>   stable/11/sys/dev/hwpmc/hwpmc_uncore.h
>   stable/11/sys/dev/hwpmc/hwpmc_x86.c
>   stable/11/sys/dev/hwpmc/hwpmc_xscale.c
>   stable/11/sys/dev/hwpmc/hwpmc_xscale.h
>   stable/11/sys/dev/hwpmc/pmc_events.h
>   stable/11/sys/dev/hyperv/include/hyperv.h
>   stable/11/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
>   stable/11/sys/dev/hyperv/storvsc/hv_vstorage.h
>   stable/11/sys/dev/hyperv/utilities/hv_kvp.h
>   stable/11/sys/dev/ic/cd1400.h
>   stable/11/sys/dev/ic/cd180.h
>   stable/11/sys/dev/ic/esp.h
>   stable/11/sys/dev/ic/i8253reg.h
>   stable/11/sys/dev/ic/i82586.h
>   stable/11/sys/dev/ic/i8259.h
>   stable/11/sys/dev/ic/nec765.h
>   stable/11/sys/dev/ic/ns16550.h
>   stable/11/sys/dev/ic/quicc.h
>   stable/11/sys/dev/ic/sab82532.h
>   stable/11/sys/dev/ic/via6522reg.h
>   stable/11/sys/dev/ic/z8530.h
>   stable/11/sys/dev/ichwd/ichwd.c
>   stable/11/sys/dev/ichwd/ichwd.h
>   stable/11/sys/dev/ida/ida.c
>   stable/11/sys/dev/ida/ida_disk.c
>   stable/11/sys/dev/ida/ida_pci.c
>   stable/11/sys/dev/ida/idareg.h
>   stable/11/sys/dev/ida/idavar.h
>   stable/11/sys/dev/if_ndis/if_ndis.c
>   stable/11/sys/dev/if_ndis/if_ndis_pccard.c
>   stable/11/sys/dev/if_ndis/if_ndis_pci.c
>   stable/11/sys/dev/if_ndis/if_ndis_usb.c
>   stable/11/sys/dev/if_ndis/if_ndisvar.h
>   stable/11/sys/dev/iicbus/ad7417.c
>   stable/11/sys/dev/iicbus/ad7418.c
>   stable/11/sys/dev/iicbus/adt746x.c
>   stable/11/sys/dev/iicbus/ds1631.c
>   stable/11/sys/dev/iicbus/ds1672.c
>   stable/11/sys/dev/iicbus/ds1775.c
>   stable/11/sys/dev/iicbus/icee.c
>   stable/11/sys/dev/iicbus/if_ic.c
>   stable/11/sys/dev/iicbus/iic.c
>   stable/11/sys/dev/iicbus/iic.h
>   stable/11/sys/dev/iicbus/iicbb.c
>   stable/11/sys/dev/iicbus/iicbus.c
>   stable/11/sys/dev/iicbus/iicbus.h
>   stable/11/sys/dev/iicbus/iicoc.c
>   stable/11/sys/dev/iicbus/iicoc.h
>   stable/11/sys/dev/iicbus/iiconf.c
>   stable/11/sys/dev/iicbus/iiconf.h
>   stable/11/sys/dev/iicbus/iicsmb.c
>   stable/11/sys/dev/iicbus/max6690.c
>   stable/11/sys/dev/iicbus/s35390a.c
>   stable/11/sys/dev/iir/iir.c
>   stable/11/sys/dev/iir/iir.h
>   stable/11/sys/dev/iir/iir_ctrl.c
>   stable/11/sys/dev/iir/iir_pci.c
>   stable/11/sys/dev/io/iodev.c
>   stable/11/sys/dev/io/iodev.h
>   stable/11/sys/dev/ipmi/ipmi.c
>   stable/11/sys/dev/ipmi/ipmi_acpi.c
>   stable/11/sys/dev/ipmi/ipmi_isa.c
>   stable/11/sys/dev/ipmi/ipmi_kcs.c
>   stable/11/sys/dev/ipmi/ipmi_linux.c
>   stable/11/sys/dev/ipmi/ipmi_pci.c
>   stable/11/sys/dev/ipmi/ipmi_smbios.c
>   stable/11/sys/dev/ipmi/ipmi_smbus.c
>   stable/11/sys/dev/ipmi/ipmi_smic.c
>   stable/11/sys/dev/ipmi/ipmi_ssif.c
>   stable/11/sys/dev/ipmi/ipmivars.h
>   stable/11/sys/dev/ips/ips.c
>   stable/11/sys/dev/ips/ips.h
>   stable/11/sys/dev/ips/ips_commands.c
>   stable/11/sys/dev/ips/ips_disk.c
>   stable/11/sys/dev/ips/ips_disk.h
>   stable/11/sys/dev/ips/ips_ioctl.c
>   stable/11/sys/dev/ips/ips_ioctl.h
>   stable/11/sys/dev/ips/ips_pci.c
>   stable/11/sys/dev/ips/ipsreg.h
>   stable/11/sys/dev/ipw/if_ipw.c
>   stable/11/sys/dev/ipw/if_ipwreg.h
>   stable/11/sys/dev/ipw/if_ipwvar.h
>   stable/11/sys/dev/isci/environment.h
>   stable/11/sys/dev/isci/isci.c
>   stable/11/sys/dev/isci/isci.h
>   stable/11/sys/dev/isci/isci_controller.c
>   stable/11/sys/dev/isci/isci_domain.c
>   stable/11/sys/dev/isci/isci_interrupt.c
>   stable/11/sys/dev/isci/isci_io_request.c
>   stable/11/sys/dev/isci/isci_logger.c
>   stable/11/sys/dev/isci/isci_oem_parameters.c
>   stable/11/sys/dev/isci/isci_remote_device.c
>   stable/11/sys/dev/isci/isci_sysctl.c
>   stable/11/sys/dev/isci/isci_task_request.c
>   stable/11/sys/dev/isci/isci_timer.c
>   stable/11/sys/dev/isci/scil/intel_ata.h
>   stable/11/sys/dev/isci/scil/intel_pci.h
>   stable/11/sys/dev/isci/scil/intel_sas.h
>   stable/11/sys/dev/isci/scil/intel_sat.h
>   stable/11/sys/dev/isci/scil/intel_sata.h
>   stable/11/sys/dev/isci/scil/intel_scsi.h
>   stable/11/sys/dev/isci/scil/sati.c
>   stable/11/sys/dev/isci/scil/sati.h
>   stable/11/sys/dev/isci/scil/sati_abort_task_set.c
>   stable/11/sys/dev/isci/scil/sati_abort_task_set.h
>   stable/11/sys/dev/isci/scil/sati_atapi.c
>   stable/11/sys/dev/isci/scil/sati_atapi.h
>   stable/11/sys/dev/isci/scil/sati_callbacks.h
>   stable/11/sys/dev/isci/scil/sati_design.h
>   stable/11/sys/dev/isci/scil/sati_device.c
>   stable/11/sys/dev/isci/scil/sati_device.h
>   stable/11/sys/dev/isci/scil/sati_inquiry.c
>   stable/11/sys/dev/isci/scil/sati_inquiry.h
>   stable/11/sys/dev/isci/scil/sati_log_sense.c
>   stable/11/sys/dev/isci/scil/sati_log_sense.h
>   stable/11/sys/dev/isci/scil/sati_lun_reset.c
>   stable/11/sys/dev/isci/scil/sati_lun_reset.h
>   stable/11/sys/dev/isci/scil/sati_mode_pages.c
>   stable/11/sys/dev/isci/scil/sati_mode_pages.h
>   stable/11/sys/dev/isci/scil/sati_mode_select.c
>   stable/11/sys/dev/isci/scil/sati_mode_select.h
>   stable/11/sys/dev/isci/scil/sati_mode_sense.c
>   stable/11/sys/dev/isci/scil/sati_mode_sense.h
>   stable/11/sys/dev/isci/scil/sati_mode_sense_10.c
>   stable/11/sys/dev/isci/scil/sati_mode_sense_10.h
>   stable/11/sys/dev/isci/scil/sati_mode_sense_6.c
>   stable/11/sys/dev/isci/scil/sati_mode_sense_6.h
>   stable/11/sys/dev/isci/scil/sati_move.c
>   stable/11/sys/dev/isci/scil/sati_move.h
>   stable/11/sys/dev/isci/scil/sati_passthrough.c
>   stable/11/sys/dev/isci/scil/sati_passthrough.h
>   stable/11/sys/dev/isci/scil/sati_read.c
>   stable/11/sys/dev/isci/scil/sati_read.h
>   stable/11/sys/dev/isci/scil/sati_read_buffer.c
>   stable/11/sys/dev/isci/scil/sati_read_buffer.h
>   stable/11/sys/dev/isci/scil/sati_read_capacity.c
>   stable/11/sys/dev/isci/scil/sati_read_capacity.h
>   stable/11/sys/dev/isci/scil/sati_reassign_blocks.c
>   stable/11/sys/dev/isci/scil/sati_reassign_blocks.h
>   stable/11/sys/dev/isci/scil/sati_report_luns.c
>   stable/11/sys/dev/isci/scil/sati_report_luns.h
>   stable/11/sys/dev/isci/scil/sati_request_sense.c
>   stable/11/sys/dev/isci/scil/sati_request_sense.h
>   stable/11/sys/dev/isci/scil/sati_start_stop_unit.c
>   stable/11/sys/dev/isci/scil/sati_start_stop_unit.h
>   stable/11/sys/dev/isci/scil/sati_synchronize_cache.c
>   stable/11/sys/dev/isci/scil/sati_synchronize_cache.h
>   stable/11/sys/dev/isci/scil/sati_test_unit_ready.c
>   stable/11/sys/dev/isci/scil/sati_test_unit_ready.h
>   stable/11/sys/dev/isci/scil/sati_translator_sequence.h
>   stable/11/sys/dev/isci/scil/sati_types.h
>   stable/11/sys/dev/isci/scil/sati_unmap.c
>   stable/11/sys/dev/isci/scil/sati_unmap.h
>   stable/11/sys/dev/isci/scil/sati_util.c
>   stable/11/sys/dev/isci/scil/sati_util.h
>   stable/11/sys/dev/isci/scil/sati_verify.c
>   stable/11/sys/dev/isci/scil/sati_verify.h
>   stable/11/sys/dev/isci/scil/sati_write.c
>   stable/11/sys/dev/isci/scil/sati_write.h
>   stable/11/sys/dev/isci/scil/sati_write_and_verify.c
>   stable/11/sys/dev/isci/scil/sati_write_and_verify.h
>   stable/11/sys/dev/isci/scil/sati_write_buffer.c
>   stable/11/sys/dev/isci/scil/sati_write_buffer.h
>   stable/11/sys/dev/isci/scil/sati_write_long.c
>   stable/11/sys/dev/isci/scil/sati_write_long.h
>   stable/11/sys/dev/isci/scil/sci_abstract_list.c
>   stable/11/sys/dev/isci/scil/sci_abstract_list.h
>   stable/11/sys/dev/isci/scil/sci_base_controller.c
>   stable/11/sys/dev/isci/scil/sci_base_controller.h
>   stable/11/sys/dev/isci/scil/sci_base_domain.c
>   stable/11/sys/dev/isci/scil/sci_base_domain.h
>   stable/11/sys/dev/isci/scil/sci_base_iterator.c
>   stable/11/sys/dev/isci/scil/sci_base_iterator.h
>   stable/11/sys/dev/isci/scil/sci_base_library.c
>   stable/11/sys/dev/isci/scil/sci_base_library.h
>   stable/11/sys/dev/isci/scil/sci_base_logger.c
>   stable/11/sys/dev/isci/scil/sci_base_logger.h
>   stable/11/sys/dev/isci/scil/sci_base_memory_descriptor_list.c
>   stable/11/sys/dev/isci/scil/sci_base_memory_descriptor_list.h
>   stable/11/sys/dev/isci/scil/sci_base_memory_descriptor_list_decorator.c
>   stable/11/sys/dev/isci/scil/sci_base_object.c
>   stable/11/sys/dev/isci/scil/sci_base_object.h
>   stable/11/sys/dev/isci/scil/sci_base_observer.c
>   stable/11/sys/dev/isci/scil/sci_base_observer.h
>   stable/11/sys/dev/isci/scil/sci_base_phy.c
>   stable/11/sys/dev/isci/scil/sci_base_phy.h
>   stable/11/sys/dev/isci/scil/sci_base_port.c
>   stable/11/sys/dev/isci/scil/sci_base_port.h
>   stable/11/sys/dev/isci/scil/sci_base_remote_device.c
>   stable/11/sys/dev/isci/scil/sci_base_remote_device.h
>   stable/11/sys/dev/isci/scil/sci_base_request.c
>   stable/11/sys/dev/isci/scil/sci_base_request.h
>   stable/11/sys/dev/isci/scil/sci_base_state.h
>   stable/11/sys/dev/isci/scil/sci_base_state_machine.c
>   stable/11/sys/dev/isci/scil/sci_base_state_machine.h
>   stable/11/sys/dev/isci/scil/sci_base_state_machine_logger.c
>   stable/11/sys/dev/isci/scil/sci_base_state_machine_logger.h
>   stable/11/sys/dev/isci/scil/sci_base_state_machine_observer.c
>   stable/11/sys/dev/isci/scil/sci_base_state_machine_observer.h
>   stable/11/sys/dev/isci/scil/sci_base_subject.c
>   stable/11/sys/dev/isci/scil/sci_base_subject.h
>   stable/11/sys/dev/isci/scil/sci_controller.h
>   stable/11/sys/dev/isci/scil/sci_controller_constants.h
>   stable/11/sys/dev/isci/scil/sci_fast_list.h
>   stable/11/sys/dev/isci/scil/sci_iterator.h
>   stable/11/sys/dev/isci/scil/sci_library.h
>   stable/11/sys/dev/isci/scil/sci_logger.h
>   stable/11/sys/dev/isci/scil/sci_memory_descriptor_list.h
>   stable/11/sys/dev/isci/scil/sci_memory_descriptor_list_decorator.h
>   stable/11/sys/dev/isci/scil/sci_object.h
>   stable/11/sys/dev/isci/scil/sci_overview.h
>   stable/11/sys/dev/isci/scil/sci_pool.h
>   stable/11/sys/dev/isci/scil/sci_simple_list.h
>   stable/11/sys/dev/isci/scil/sci_status.h
>   stable/11/sys/dev/isci/scil/sci_types.h
>   stable/11/sys/dev/isci/scil/sci_util.c
>   stable/11/sys/dev/isci/scil/sci_util.h
>   stable/11/sys/dev/isci/scil/scic_config_parameters.h
>   stable/11/sys/dev/isci/scil/scic_controller.h
>   stable/11/sys/dev/isci/scil/scic_io_request.h
>   stable/11/sys/dev/isci/scil/scic_library.h
>   stable/11/sys/dev/isci/scil/scic_logger.h
>   stable/11/sys/dev/isci/scil/scic_overview.h
>   stable/11/sys/dev/isci/scil/scic_phy.h
>   stable/11/sys/dev/isci/scil/scic_port.h
>   stable/11/sys/dev/isci/scil/scic_remote_device.h
>   stable/11/sys/dev/isci/scil/scic_sds_controller.c
>   stable/11/sys/dev/isci/scil/scic_sds_controller.h
>   stable/11/sys/dev/isci/scil/scic_sds_controller_registers.h
>   stable/11/sys/dev/isci/scil/scic_sds_library.c
>   stable/11/sys/dev/isci/scil/scic_sds_library.h
>   stable/11/sys/dev/isci/scil/scic_sds_logger.h
>   stable/11/sys/dev/isci/scil/scic_sds_pci.c
>   stable/11/sys/dev/isci/scil/scic_sds_pci.h
>   stable/11/sys/dev/isci/scil/scic_sds_phy.c
>   stable/11/sys/dev/isci/scil/scic_sds_phy.h
>   stable/11/sys/dev/isci/scil/scic_sds_phy_registers.h
>   stable/11/sys/dev/isci/scil/scic_sds_port.c
>   stable/11/sys/dev/isci/scil/scic_sds_port.h
>   stable/11/sys/dev/isci/scil/scic_sds_port_configuration_agent.c
>   stable/11/sys/dev/isci/scil/scic_sds_port_configuration_agent.h
>   stable/11/sys/dev/isci/scil/scic_sds_port_registers.h
>   stable/11/sys/dev/isci/scil/scic_sds_remote_device.c
>   stable/11/sys/dev/isci/scil/scic_sds_remote_device.h
>   stable/11/sys/dev/isci/scil/scic_sds_remote_node_context.c
>   stable/11/sys/dev/isci/scil/scic_sds_remote_node_context.h
>   stable/11/sys/dev/isci/scil/scic_sds_remote_node_table.c
>   stable/11/sys/dev/isci/scil/scic_sds_remote_node_table.h
>   stable/11/sys/dev/isci/scil/scic_sds_request.c
>   stable/11/sys/dev/isci/scil/scic_sds_request.h
>   stable/11/sys/dev/isci/scil/scic_sds_sgpio.c
>   stable/11/sys/dev/isci/scil/scic_sds_smp_remote_device.c
>   stable/11/sys/dev/isci/scil/scic_sds_smp_request.c
>   stable/11/sys/dev/isci/scil/scic_sds_smp_request.h
>   stable/11/sys/dev/isci/scil/scic_sds_ssp_request.c
>   stable/11/sys/dev/isci/scil/scic_sds_stp_packet_request.c
>   stable/11/sys/dev/isci/scil/scic_sds_stp_packet_request.h
>   stable/11/sys/dev/isci/scil/scic_sds_stp_pio_request.h
>   stable/11/sys/dev/isci/scil/scic_sds_stp_remote_device.c
>   stable/11/sys/dev/isci/scil/scic_sds_stp_request.c
>   stable/11/sys/dev/isci/scil/scic_sds_stp_request.h
>   stable/11/sys/dev/isci/scil/scic_sds_unsolicited_frame_control.c
>   stable/11/sys/dev/isci/scil/scic_sds_unsolicited_frame_control.h
>   stable/11/sys/dev/isci/scil/scic_sgpio.h
>   stable/11/sys/dev/isci/scil/scic_task_request.h
>   stable/11/sys/dev/isci/scil/scic_user_callback.h
>   stable/11/sys/dev/isci/scil/scif_config_parameters.h
>   stable/11/sys/dev/isci/scil/scif_controller.h
>   stable/11/sys/dev/isci/scil/scif_domain.h
>   stable/11/sys/dev/isci/scil/scif_io_request.h
>   stable/11/sys/dev/isci/scil/scif_library.h
>   stable/11/sys/dev/isci/scil/scif_logger.h
>   stable/11/sys/dev/isci/scil/scif_overview.h
>   stable/11/sys/dev/isci/scil/scif_remote_device.h
>   stable/11/sys/dev/isci/scil/scif_sas_constants.h
>   stable/11/sys/dev/isci/scil/scif_sas_controller.c
>   stable/11/sys/dev/isci/scil/scif_sas_controller.h
>   stable/11/sys/dev/isci/scil/scif_sas_controller_state_handlers.c
>   stable/11/sys/dev/isci/scil/scif_sas_controller_states.c
>   stable/11/sys/dev/isci/scil/scif_sas_design.h
>   stable/11/sys/dev/isci/scil/scif_sas_domain.c
>   stable/11/sys/dev/isci/scil/scif_sas_domain.h
>   stable/11/sys/dev/isci/scil/scif_sas_domain_state_handlers.c
>   stable/11/sys/dev/isci/scil/scif_sas_domain_states.c
>   stable/11/sys/dev/isci/scil/scif_sas_high_priority_request_queue.c
>   stable/11/sys/dev/isci/scil/scif_sas_high_priority_request_queue.h
>   stable/11/sys/dev/isci/scil/scif_sas_internal_io_request.c
>   stable/11/sys/dev/isci/scil/scif_sas_internal_io_request.h
>   stable/11/sys/dev/isci/scil/scif_sas_io_request.c
>   stable/11/sys/dev/isci/scil/scif_sas_io_request.h
>   stable/11/sys/dev/isci/scil/scif_sas_io_request_state_handlers.c
>   stable/11/sys/dev/isci/scil/scif_sas_io_request_states.c
>   stable/11/sys/dev/isci/scil/scif_sas_library.c
>   stable/11/sys/dev/isci/scil/scif_sas_library.h
>   stable/11/sys/dev/isci/scil/scif_sas_logger.h
>   stable/11/sys/dev/isci/scil/scif_sas_remote_device.c
>   stable/11/sys/dev/isci/scil/scif_sas_remote_device.h
>
> stable/11/sys/dev/isci/scil/scif_sas_remote_device_ready_substate_handlers.c
>   stable/11/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c
>
> stable/11/sys/dev/isci/scil/scif_sas_remote_device_starting_substate_handlers.c
>   stable/11/sys/dev/isci/scil/scif_sas_remote_device_starting_substates.c
>   stable/11/sys/dev/isci/scil/scif_sas_remote_device_state_handlers.c
>   stable/11/sys/dev/isci/scil/scif_sas_remote_device_states.c
>   stable/11/sys/dev/isci/scil/scif_sas_request.c
>   stable/11/sys/dev/isci/scil/scif_sas_request.h
>   stable/11/sys/dev/isci/scil/scif_sas_sati_binding.h
>   stable/11/sys/dev/isci/scil/scif_sas_smp_activity_clear_affiliation.c
>   stable/11/sys/dev/isci/scil/scif_sas_smp_io_request.c
>   stable/11/sys/dev/isci/scil/scif_sas_smp_io_request.h
>   stable/11/sys/dev/isci/scil/scif_sas_smp_phy.c
>   stable/11/sys/dev/isci/scil/scif_sas_smp_phy.h
>   stable/11/sys/dev/isci/scil/scif_sas_smp_remote_device.c
>   stable/11/sys/dev/isci/scil/scif_sas_smp_remote_device.h
>   stable/11/sys/dev/isci/scil/scif_sas_stp_io_request.c
>   stable/11/sys/dev/isci/scil/scif_sas_stp_io_request.h
>   stable/11/sys/dev/isci/scil/scif_sas_stp_remote_device.c
>   stable/11/sys/dev/isci/scil/scif_sas_stp_remote_device.h
>   stable/11/sys/dev/isci/scil/scif_sas_stp_task_request.c
>   stable/11/sys/dev/isci/scil/scif_sas_stp_task_request.h
>   stable/11/sys/dev/isci/scil/scif_sas_task_request.c
>   stable/11/sys/dev/isci/scil/scif_sas_task_request.h
>   stable/11/sys/dev/isci/scil/scif_sas_task_request_state_handlers.c
>   stable/11/sys/dev/isci/scil/scif_sas_task_request_states.c
>   stable/11/sys/dev/isci/scil/scif_sas_timer.c
>   stable/11/sys/dev/isci/scil/scif_task_request.h
>   stable/11/sys/dev/isci/scil/scif_user_callback.h
>   stable/11/sys/dev/isci/scil/scu_bios_definitions.h
>   stable/11/sys/dev/isci/scil/scu_completion_codes.h
>   stable/11/sys/dev/isci/scil/scu_constants.h
>   stable/11/sys/dev/isci/scil/scu_event_codes.h
>   stable/11/sys/dev/isci/scil/scu_registers.h
>   stable/11/sys/dev/isci/scil/scu_remote_node_context.h
>   stable/11/sys/dev/isci/scil/scu_task_context.h
>   stable/11/sys/dev/isci/scil/scu_unsolicited_frame.h
>   stable/11/sys/dev/isci/scil/scu_viit_data.h
>   stable/11/sys/dev/isci/types.h
>   stable/11/sys/dev/iscsi/icl.c
>   stable/11/sys/dev/iscsi/icl.h
>   stable/11/sys/dev/iscsi/iscsi.c
>   stable/11/sys/dev/iscsi/iscsi.h
>   stable/11/sys/dev/iscsi/iscsi_ioctl.h
>   stable/11/sys/dev/iscsi/iscsi_proto.h
>   stable/11/sys/dev/iscsi_initiator/isc_cam.c
>   stable/11/sys/dev/iscsi_initiator/isc_sm.c
>   stable/11/sys/dev/iscsi_initiator/isc_soc.c
>   stable/11/sys/dev/iscsi_initiator/isc_subr.c
>   stable/11/sys/dev/iscsi_initiator/iscsi.c
>   stable/11/sys/dev/iscsi_initiator/iscsi.h
>   stable/11/sys/dev/iscsi_initiator/iscsi_subr.c
>   stable/11/sys/dev/iscsi_initiator/iscsivar.h
>   stable/11/sys/dev/isp/isp_freebsd.c
>   stable/11/sys/dev/isp/isp_freebsd.h
>   stable/11/sys/dev/isp/isp_ioctl.h
>   stable/11/sys/dev/isp/isp_library.c
>   stable/11/sys/dev/isp/isp_library.h
>   stable/11/sys/dev/isp/isp_sbus.c
>   stable/11/sys/dev/isp/isp_stds.h
>   stable/11/sys/dev/isp/isp_target.c
>   stable/11/sys/dev/isp/isp_target.h
>   stable/11/sys/dev/isp/ispreg.h
>   stable/11/sys/dev/ispfw/asm_1000.h
>   stable/11/sys/dev/ispfw/asm_1040.h
>   stable/11/sys/dev/ispfw/asm_1080.h
>   stable/11/sys/dev/ispfw/asm_12160.h
>   stable/11/sys/dev/ispfw/asm_2100.h
>   stable/11/sys/dev/ispfw/asm_2200.h
>   stable/11/sys/dev/ispfw/asm_2300.h
>   stable/11/sys/dev/ispfw/asm_2322.h
>   stable/11/sys/dev/ispfw/asm_2400.h
>   stable/11/sys/dev/ispfw/asm_2500.h
>   stable/11/sys/dev/ispfw/ispfw.c
>   stable/11/sys/dev/iwi/if_iwi.c
>   stable/11/sys/dev/iwi/if_iwireg.h
>   stable/11/sys/dev/iwi/if_iwivar.h
>   stable/11/sys/dev/ixgb/if_ixgb.c
>   stable/11/sys/dev/ixgb/if_ixgb.h
>   stable/11/sys/dev/ixgb/if_ixgb_osdep.h
>   stable/11/sys/dev/ixgb/ixgb_ee.c
>   stable/11/sys/dev/ixgb/ixgb_ee.h
>   stable/11/sys/dev/ixgb/ixgb_hw.c
>   stable/11/sys/dev/ixgb/ixgb_hw.h
>   stable/11/sys/dev/ixgb/ixgb_ids.h
>   stable/11/sys/dev/ixgbe/ixgbe.h
>   stable/11/sys/dev/ixgbe/ixgbe_82598.c
>   stable/11/sys/dev/ixgbe/ixgbe_82598.h
>   stable/11/sys/dev/ixgbe/ixgbe_82599.c
>   stable/11/sys/dev/ixgbe/ixgbe_82599.h
>   stable/11/sys/dev/ixgbe/ixgbe_api.c
>   stable/11/sys/dev/ixgbe/ixgbe_api.h
>   stable/11/sys/dev/ixgbe/ixgbe_common.c
>   stable/11/sys/dev/ixgbe/ixgbe_common.h
>   stable/11/sys/dev/ixgbe/ixgbe_dcb.c
>   stable/11/sys/dev/ixgbe/ixgbe_dcb.h
>   stable/11/sys/dev/ixgbe/ixgbe_dcb_82598.c
>   stable/11/sys/dev/ixgbe/ixgbe_dcb_82598.h
>   stable/11/sys/dev/ixgbe/ixgbe_dcb_82599.c
>   stable/11/sys/dev/ixgbe/ixgbe_dcb_82599.h
>   stable/11/sys/dev/ixgbe/ixgbe_mbx.c
>   stable/11/sys/dev/ixgbe/ixgbe_mbx.h
>   stable/11/sys/dev/ixgbe/ixgbe_osdep.h
>   stable/11/sys/dev/ixgbe/ixgbe_phy.c
>   stable/11/sys/dev/ixgbe/ixgbe_phy.h
>   stable/11/sys/dev/ixgbe/ixgbe_type.h
>   stable/11/sys/dev/ixgbe/ixgbe_vf.c
>   stable/11/sys/dev/ixgbe/ixgbe_vf.h
>   stable/11/sys/dev/ixgbe/ixgbe_x540.c
>   stable/11/sys/dev/ixgbe/ixgbe_x540.h
>   stable/11/sys/dev/jme/if_jme.c
>   stable/11/sys/dev/jme/if_jmereg.h
>   stable/11/sys/dev/jme/if_jmevar.h
>   stable/11/sys/dev/joy/joy.c
>   stable/11/sys/dev/joy/joy_isa.c
>   stable/11/sys/dev/joy/joyvar.h
>   stable/11/sys/dev/kbd/kbd.c
>   stable/11/sys/dev/kbd/kbdreg.h
>   stable/11/sys/dev/kbd/kbdtables.h
>   stable/11/sys/dev/kbdmux/kbdmux.c
>   stable/11/sys/dev/ksyms/ksyms.c
>   stable/11/sys/dev/le/am7990.c
>   stable/11/sys/dev/le/am79900.c
>   stable/11/sys/dev/le/am79900reg.h
>   stable/11/sys/dev/le/am79900var.h
>   stable/11/sys/dev/le/am7990reg.h
>   stable/11/sys/dev/le/am7990var.h
>   stable/11/sys/dev/le/if_le_isa.c
>   stable/11/sys/dev/le/if_le_lebuffer.c
>   stable/11/sys/dev/le/if_le_ledma.c
>   stable/11/sys/dev/le/if_le_pci.c
>   stable/11/sys/dev/le/lance.c
>   stable/11/sys/dev/le/lancereg.h
>   stable/11/sys/dev/le/lancevar.h
>   stable/11/sys/dev/le/lebuffer_sbus.c
>   stable/11/sys/dev/lge/if_lge.c
>   stable/11/sys/dev/lge/if_lgereg.h
>   stable/11/sys/dev/lmc/if_lmc.c
>   stable/11/sys/dev/lmc/if_lmc.h
>   stable/11/sys/dev/malo/if_malo.c
>   stable/11/sys/dev/malo/if_malo.h
>   stable/11/sys/dev/malo/if_malo_pci.c
>   stable/11/sys/dev/malo/if_malohal.c
>   stable/11/sys/dev/malo/if_malohal.h
>   stable/11/sys/dev/malo/if_maloioctl.h
>   stable/11/sys/dev/mc146818/mc146818.c
>   stable/11/sys/dev/mc146818/mc146818var.h
>   stable/11/sys/dev/md/md.c
>   stable/11/sys/dev/mem/memdev.c
>   stable/11/sys/dev/mem/memutil.c
>   stable/11/sys/dev/mfi/mfi.c
>   stable/11/sys/dev/mfi/mfi_cam.c
>   stable/11/sys/dev/mfi/mfi_debug.c
>   stable/11/sys/dev/mfi/mfi_disk.c
>   stable/11/sys/dev/mfi/mfi_ioctl.h
>   stable/11/sys/dev/mfi/mfi_linux.c
>   stable/11/sys/dev/mfi/mfi_pci.c
>   stable/11/sys/dev/mfi/mfi_syspd.c
>   stable/11/sys/dev/mfi/mfi_tbolt.c
>   stable/11/sys/dev/mfi/mfireg.h
>   stable/11/sys/dev/mfi/mfivar.h
>   stable/11/sys/dev/mge/if_mge.c
>   stable/11/sys/dev/mge/if_mgevar.h
>   stable/11/sys/dev/mii/acphy.c
>   stable/11/sys/dev/mii/acphyreg.h
>   stable/11/sys/dev/mii/amphy.c
>   stable/11/sys/dev/mii/amphyreg.h
>   stable/11/sys/dev/mii/atphy.c
>   stable/11/sys/dev/mii/atphyreg.h
>   stable/11/sys/dev/mii/axphy.c
>   stable/11/sys/dev/mii/bmtphy.c
>   stable/11/sys/dev/mii/bmtphyreg.h
>   stable/11/sys/dev/mii/brgphy.c
>   stable/11/sys/dev/mii/brgphyreg.h
>   stable/11/sys/dev/mii/ciphy.c
>   stable/11/sys/dev/mii/ciphyreg.h
>   stable/11/sys/dev/mii/e1000phy.c
>   stable/11/sys/dev/mii/e1000phyreg.h
>   stable/11/sys/dev/mii/gentbi.c
>   stable/11/sys/dev/mii/icsphy.c
>   stable/11/sys/dev/mii/icsphyreg.h
>   stable/11/sys/dev/mii/ip1000phy.c
>   stable/11/sys/dev/mii/ip1000phyreg.h
>   stable/11/sys/dev/mii/jmphy.c
>   stable/11/sys/dev/mii/jmphyreg.h
>   stable/11/sys/dev/mii/lxtphy.c
>   stable/11/sys/dev/mii/lxtphyreg.h
>   stable/11/sys/dev/mii/mii.c
>   stable/11/sys/dev/mii/mii.h
>   stable/11/sys/dev/mii/mii_bitbang.c
>   stable/11/sys/dev/mii/mii_bitbang.h
>   stable/11/sys/dev/mii/mii_physubr.c
>   stable/11/sys/dev/mii/miivar.h
>   stable/11/sys/dev/mii/mlphy.c
>   stable/11/sys/dev/mii/nsgphy.c
>   stable/11/sys/dev/mii/nsgphyreg.h
>   stable/11/sys/dev/mii/nsphy.c
>   stable/11/sys/dev/mii/nsphyreg.h
>   stable/11/sys/dev/mii/nsphyter.c
>   stable/11/sys/dev/mii/nsphyterreg.h
>   stable/11/sys/dev/mii/pnaphy.c
>   stable/11/sys/dev/mii/qsphy.c
>   stable/11/sys/dev/mii/qsphyreg.h
>   stable/11/sys/dev/mii/rdcphy.c
>   stable/11/sys/dev/mii/rdcphyreg.h
>   stable/11/sys/dev/mii/rgephy.c
>   stable/11/sys/dev/mii/rgephyreg.h
>   stable/11/sys/dev/mii/rlphy.c
>   stable/11/sys/dev/mii/rlswitch.c
>   stable/11/sys/dev/mii/smcphy.c
>   stable/11/sys/dev/mii/smscphy.c
>   stable/11/sys/dev/mii/tdkphy.c
>   stable/11/sys/dev/mii/tdkphyreg.h
>   stable/11/sys/dev/mii/tlphy.c
>   stable/11/sys/dev/mii/tlphyreg.h
>   stable/11/sys/dev/mii/truephy.c
>   stable/11/sys/dev/mii/truephyreg.h
>   stable/11/sys/dev/mii/ukphy.c
>   stable/11/sys/dev/mii/ukphy_subr.c
>   stable/11/sys/dev/mii/xmphy.c
>   stable/11/sys/dev/mii/xmphyreg.h
>   stable/11/sys/dev/mk48txx/mk48txx.c
>   stable/11/sys/dev/mk48txx/mk48txxreg.h
>   stable/11/sys/dev/mk48txx/mk48txxvar.h
>   stable/11/sys/dev/mlx/mlx.c
>   stable/11/sys/dev/mlx/mlx_disk.c
>   stable/11/sys/dev/mlx/mlx_pci.c
>   stable/11/sys/dev/mlx/mlxio.h
>   stable/11/sys/dev/mlx/mlxreg.h
>   stable/11/sys/dev/mlx/mlxvar.h
>   stable/11/sys/dev/mly/mly.c
>   stable/11/sys/dev/mly/mly_tables.h
>   stable/11/sys/dev/mly/mlyio.h
>   stable/11/sys/dev/mly/mlyreg.h
>   stable/11/sys/dev/mly/mlyvar.h
>   stable/11/sys/dev/mmc/bridge.h
>   stable/11/sys/dev/mmc/mmc.c
>   stable/11/sys/dev/mmc/mmcbrvar.h
>   stable/11/sys/dev/mmc/mmcreg.h
>   stable/11/sys/dev/mmc/mmcsd.c
>   stable/11/sys/dev/mmc/mmcvar.h
>   stable/11/sys/dev/mps/mpi/mpi2.h
>   stable/11/sys/dev/mps/mpi/mpi2_cnfg.h
>   stable/11/sys/dev/mps/mpi/mpi2_hbd.h
>   stable/11/sys/dev/mps/mpi/mpi2_init.h
>   stable/11/sys/dev/mps/mpi/mpi2_ioc.h
>   stable/11/sys/dev/mps/mpi/mpi2_ra.h
>   stable/11/sys/dev/mps/mpi/mpi2_raid.h
>   stable/11/sys/dev/mps/mpi/mpi2_sas.h
>   stable/11/sys/dev/mps/mpi/mpi2_targ.h
>   stable/11/sys/dev/mps/mpi/mpi2_tool.h
>   stable/11/sys/dev/mps/mpi/mpi2_type.h
>   stable/11/sys/dev/mps/mps.c
>   stable/11/sys/dev/mps/mps_config.c
>   stable/11/sys/dev/mps/mps_ioctl.h
>   stable/11/sys/dev/mps/mps_mapping.c
>   stable/11/sys/dev/mps/mps_mapping.h
>   stable/11/sys/dev/mps/mps_pci.c
>   stable/11/sys/dev/mps/mps_sas.c
>   stable/11/sys/dev/mps/mps_sas.h
>   stable/11/sys/dev/mps/mps_sas_lsi.c
>   stable/11/sys/dev/mps/mps_table.c
>   stable/11/sys/dev/mps/mps_table.h
>   stable/11/sys/dev/mps/mps_user.c
>   stable/11/sys/dev/mps/mpsvar.h
>   stable/11/sys/dev/mpt/mpilib/mpi.h
>   stable/11/sys/dev/mpt/mpilib/mpi_cnfg.h
>   stable/11/sys/dev/mpt/mpilib/mpi_fc.h
>   stable/11/sys/dev/mpt/mpilib/mpi_init.h
>   stable/11/sys/dev/mpt/mpilib/mpi_ioc.h
>   stable/11/sys/dev/mpt/mpilib/mpi_lan.h
>   stable/11/sys/dev/mpt/mpilib/mpi_log_fc.h
>   stable/11/sys/dev/mpt/mpilib/mpi_log_sas.h
>   stable/11/sys/dev/mpt/mpilib/mpi_raid.h
>   stable/11/sys/dev/mpt/mpilib/mpi_sas.h
>   stable/11/sys/dev/mpt/mpilib/mpi_targ.h
>   stable/11/sys/dev/mpt/mpilib/mpi_tool.h
>   stable/11/sys/dev/mpt/mpilib/mpi_type.h
>   stable/11/sys/dev/mpt/mpt.c
>   stable/11/sys/dev/mpt/mpt.h
>   stable/11/sys/dev/mpt/mpt_cam.c
>   stable/11/sys/dev/mpt/mpt_cam.h
>   stable/11/sys/dev/mpt/mpt_debug.c
>   stable/11/sys/dev/mpt/mpt_pci.c
>   stable/11/sys/dev/mpt/mpt_raid.c
>   stable/11/sys/dev/mpt/mpt_raid.h
>   stable/11/sys/dev/mpt/mpt_reg.h
>   stable/11/sys/dev/mpt/mpt_user.c
>   stable/11/sys/dev/mse/mse.c
>   stable/11/sys/dev/mse/mse_isa.c
>   stable/11/sys/dev/mse/msevar.h
>   stable/11/sys/dev/msk/if_msk.c
>   stable/11/sys/dev/msk/if_mskreg.h
>   stable/11/sys/dev/mvs/mvs.c
>   stable/11/sys/dev/mvs/mvs.h
>   stable/11/sys/dev/mvs/mvs_pci.c
>   stable/11/sys/dev/mvs/mvs_soc.c
>   stable/11/sys/dev/mwl/if_mwl.c
>   stable/11/sys/dev/mwl/if_mwl_pci.c
>   stable/11/sys/dev/mwl/if_mwlioctl.h
>   stable/11/sys/dev/mwl/if_mwlvar.h
>   stable/11/sys/dev/mwl/mwldiag.h
>   stable/11/sys/dev/mwl/mwlhal.c
>   stable/11/sys/dev/mwl/mwlhal.h
>   stable/11/sys/dev/mwl/mwlreg.h
>   stable/11/sys/dev/mxge/eth_z8e.h
>   stable/11/sys/dev/mxge/ethp_z8e.h
>   stable/11/sys/dev/mxge/if_mxge.c
>   stable/11/sys/dev/mxge/if_mxge_var.h
>   stable/11/sys/dev/mxge/mcp_gen_header.h
>   stable/11/sys/dev/mxge/mxge_mcp.h
>   stable/11/sys/dev/mxge/rss_eth_z8e.h
>   stable/11/sys/dev/mxge/rss_ethp_z8e.h
>   stable/11/sys/dev/my/if_my.c
>   stable/11/sys/dev/my/if_myreg.h
>   stable/11/sys/dev/nand/nand.c
>   stable/11/sys/dev/nand/nand.h
>   stable/11/sys/dev/nand/nand_bbt.c
>   stable/11/sys/dev/nand/nand_cdev.c
>   stable/11/sys/dev/nand/nand_dev.h
>   stable/11/sys/dev/nand/nand_ecc_pos.h
>   stable/11/sys/dev/nand/nand_generic.c
>   stable/11/sys/dev/nand/nand_geom.c
>   stable/11/sys/dev/nand/nand_id.c
>   stable/11/sys/dev/nand/nandbus.c
>   stable/11/sys/dev/nand/nandbus.h
>   stable/11/sys/dev/nand/nandsim.c
>   stable/11/sys/dev/nand/nandsim.h
>   stable/11/sys/dev/nand/nandsim_chip.c
>   stable/11/sys/dev/nand/nandsim_chip.h
>   stable/11/sys/dev/nand/nandsim_ctrl.c
>   stable/11/sys/dev/nand/nandsim_log.c
>   stable/11/sys/dev/nand/nandsim_log.h
>   stable/11/sys/dev/nand/nandsim_swap.c
>   stable/11/sys/dev/nand/nandsim_swap.h
>   stable/11/sys/dev/nand/nfc_at91.c
>   stable/11/sys/dev/nand/nfc_at91.h
>   stable/11/sys/dev/nand/nfc_fsl.c
>   stable/11/sys/dev/nand/nfc_fsl.h
>   stable/11/sys/dev/nand/nfc_mv.c
>   stable/11/sys/dev/ncv/ncr53c500.c
>   stable/11/sys/dev/ncv/ncr53c500_pccard.c
>   stable/11/sys/dev/ncv/ncr53c500hw.h
>   stable/11/sys/dev/ncv/ncr53c500hwtab.h
>   stable/11/sys/dev/ncv/ncr53c500reg.h
>   stable/11/sys/dev/ncv/ncr53c500var.h
>   stable/11/sys/dev/netmap/if_em_netmap.h
>   stable/11/sys/dev/netmap/if_igb_netmap.h
>   stable/11/sys/dev/netmap/if_lem_netmap.h
>   stable/11/sys/dev/netmap/if_re_netmap.h
>   stable/11/sys/dev/netmap/ixgbe_netmap.h
>   stable/11/sys/dev/netmap/netmap.c
>   stable/11/sys/dev/netmap/netmap_freebsd.c
>   stable/11/sys/dev/netmap/netmap_generic.c
>   stable/11/sys/dev/netmap/netmap_kern.h
>   stable/11/sys/dev/netmap/netmap_mbq.c
>   stable/11/sys/dev/netmap/netmap_mbq.h
>   stable/11/sys/dev/netmap/netmap_mem2.c
>   stable/11/sys/dev/netmap/netmap_mem2.h
>   stable/11/sys/dev/netmap/netmap_offloadings.c
>   stable/11/sys/dev/netmap/netmap_pipe.c
>   stable/11/sys/dev/netmap/netmap_vale.c
>   stable/11/sys/dev/nge/if_nge.c
>   stable/11/sys/dev/nge/if_ngereg.h
>   stable/11/sys/dev/nmdm/nmdm.c
>   stable/11/sys/dev/nsp/nsp.c
>   stable/11/sys/dev/nsp/nsp_pccard.c
>   stable/11/sys/dev/nsp/nspreg.h
>   stable/11/sys/dev/nsp/nspvar.h
>   stable/11/sys/dev/null/null.c
>   stable/11/sys/dev/nvd/nvd.c
>   stable/11/sys/dev/nvme/nvme.c
>   stable/11/sys/dev/nvme/nvme.h
>   stable/11/sys/dev/nvme/nvme_ctrlr.c
>   stable/11/sys/dev/nvme/nvme_ctrlr_cmd.c
>   stable/11/sys/dev/nvme/nvme_ns.c
>   stable/11/sys/dev/nvme/nvme_ns_cmd.c
>   stable/11/sys/dev/nvme/nvme_private.h
>   stable/11/sys/dev/nvme/nvme_qpair.c
>   stable/11/sys/dev/nvme/nvme_sysctl.c
>   stable/11/sys/dev/nvme/nvme_test.c
>   stable/11/sys/dev/nvme/nvme_util.c
>   stable/11/sys/dev/nvram/nvram.c
>   stable/11/sys/dev/nvram2env/nvram2env.c
>   stable/11/sys/dev/nxge/if_nxge.c
>   stable/11/sys/dev/nxge/if_nxge.h
>   stable/11/sys/dev/nxge/include/version.h
>   stable/11/sys/dev/nxge/include/xge-debug.h
>   stable/11/sys/dev/nxge/include/xge-defs.h
>   stable/11/sys/dev/nxge/include/xge-list.h
>   stable/11/sys/dev/nxge/include/xge-os-pal.h
>   stable/11/sys/dev/nxge/include/xge-queue.h
>   stable/11/sys/dev/nxge/include/xgehal-channel.h
>   stable/11/sys/dev/nxge/include/xgehal-config.h
>   stable/11/sys/dev/nxge/include/xgehal-device.h
>   stable/11/sys/dev/nxge/include/xgehal-driver.h
>   stable/11/sys/dev/nxge/include/xgehal-event.h
>   stable/11/sys/dev/nxge/include/xgehal-fifo.h
>   stable/11/sys/dev/nxge/include/xgehal-mgmt.h
>   stable/11/sys/dev/nxge/include/xgehal-mgmtaux.h
>   stable/11/sys/dev/nxge/include/xgehal-mm.h
>   stable/11/sys/dev/nxge/include/xgehal-regs.h
>   stable/11/sys/dev/nxge/include/xgehal-ring.h
>   stable/11/sys/dev/nxge/include/xgehal-stats.h
>   stable/11/sys/dev/nxge/include/xgehal-types.h
>   stable/11/sys/dev/nxge/include/xgehal.h
>   stable/11/sys/dev/nxge/xge-osdep.h
>   stable/11/sys/dev/nxge/xgehal/xge-queue.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-channel-fp.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-channel.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-config.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-device-fp.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-device.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-driver.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-fifo-fp.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-fifo.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-mgmt.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-mgmtaux.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-mm.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-ring-fp.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-ring.c
>   stable/11/sys/dev/nxge/xgehal/xgehal-stats.c
>   stable/11/sys/dev/nxge/xgell-version.h
>   stable/11/sys/dev/oce/oce_hw.c
>   stable/11/sys/dev/oce/oce_hw.h
>   stable/11/sys/dev/oce/oce_if.c
>   stable/11/sys/dev/oce/oce_if.h
>   stable/11/sys/dev/oce/oce_mbox.c
>   stable/11/sys/dev/oce/oce_queue.c
>   stable/11/sys/dev/oce/oce_sysctl.c
>   stable/11/sys/dev/oce/oce_util.c
>   stable/11/sys/dev/ofw/ofw_bus.h
>   stable/11/sys/dev/ofw/ofw_bus_subr.c
>   stable/11/sys/dev/ofw/ofw_bus_subr.h
>   stable/11/sys/dev/ofw/ofw_console.c
>   stable/11/sys/dev/ofw/ofw_disk.c
>   stable/11/sys/dev/ofw/ofw_fdt.c
>   stable/11/sys/dev/ofw/ofw_pci.h
>   stable/11/sys/dev/ofw/ofw_standard.c
>   stable/11/sys/dev/ofw/ofwvar.h
>   stable/11/sys/dev/ofw/openfirm.c
>   stable/11/sys/dev/ofw/openfirm.h
>   stable/11/sys/dev/ofw/openfirmio.c
>   stable/11/sys/dev/ofw/openfirmio.h
>   stable/11/sys/dev/ofw/openpromio.c
>   stable/11/sys/dev/ofw/openpromio.h
>   stable/11/sys/dev/pbio/pbio.c
>   stable/11/sys/dev/pbio/pbioio.h
>   stable/11/sys/dev/pccard/pccard.c
>   stable/11/sys/dev/pccard/pccard_cis.c
>   stable/11/sys/dev/pccard/pccard_cis.h
>   stable/11/sys/dev/pccard/pccard_cis_quirks.c
>   stable/11/sys/dev/pccard/pccard_device.c
>   stable/11/sys/dev/pccard/pccardreg.h
>   stable/11/sys/dev/pccard/pccardvar.h
>   stable/11/sys/dev/pccard/pccardvarp.h
>   stable/11/sys/dev/pccbb/pccbb.c
>   stable/11/sys/dev/pccbb/pccbb_isa.c
>   stable/11/sys/dev/pccbb/pccbb_pci.c
>   stable/11/sys/dev/pccbb/pccbbdevid.h
>   stable/11/sys/dev/pccbb/pccbbreg.h
>   stable/11/sys/dev/pccbb/pccbbvar.h
>   stable/11/sys/dev/pcf/envctrl.c
>   stable/11/sys/dev/pcf/pcf.c
>   stable/11/sys/dev/pcf/pcf_ebus.c
>   stable/11/sys/dev/pcf/pcf_isa.c
>   stable/11/sys/dev/pcf/pcfvar.h
>   stable/11/sys/dev/pci/fixup_pci.c
>   stable/11/sys/dev/pci/hostb_pci.c
>   stable/11/sys/dev/pci/ignore_pci.c
>   stable/11/sys/dev/pci/isa_pci.c
>   stable/11/sys/dev/pci/pci.c
>   stable/11/sys/dev/pci/pci_pci.c
>   stable/11/sys/dev/pci/pci_private.h
>   stable/11/sys/dev/pci/pci_subr.c
>   stable/11/sys/dev/pci/pci_user.c
>   stable/11/sys/dev/pci/pcib_private.h
>   stable/11/sys/dev/pci/pcireg.h
>   stable/11/sys/dev/pci/pcivar.h
>   stable/11/sys/dev/pci/vga_pci.c
>   stable/11/sys/dev/pcn/if_pcn.c
>   stable/11/sys/dev/pcn/if_pcnreg.h
>   stable/11/sys/dev/pdq/if_fpa.c
>   stable/11/sys/dev/pdq/pdq.c
>   stable/11/sys/dev/pdq/pdq_freebsd.h
>   stable/11/sys/dev/pdq/pdq_ifsubr.c
>   stable/11/sys/dev/pdq/pdqreg.h
>   stable/11/sys/dev/pdq/pdqvar.h
>   stable/11/sys/dev/powermac_nvram/powermac_nvram.c
>   stable/11/sys/dev/powermac_nvram/powermac_nvramvar.h
>   stable/11/sys/dev/ppbus/if_plip.c
>   stable/11/sys/dev/ppbus/immio.c
>   stable/11/sys/dev/ppbus/lpbb.c
>   stable/11/sys/dev/ppbus/lpt.c
>   stable/11/sys/dev/ppbus/lpt.h
>   stable/11/sys/dev/ppbus/pcfclock.c
>   stable/11/sys/dev/ppbus/ppb_1284.c
>   stable/11/sys/dev/ppbus/ppb_1284.h
>   stable/11/sys/dev/ppbus/ppb_base.c
>   stable/11/sys/dev/ppbus/ppb_msq.c
>   stable/11/sys/dev/ppbus/ppb_msq.h
>   stable/11/sys/dev/ppbus/ppbconf.c
>   stable/11/sys/dev/ppbus/ppbconf.h
>   stable/11/sys/dev/ppbus/ppbio.h
>   stable/11/sys/dev/ppbus/ppi.c
>   stable/11/sys/dev/ppbus/ppi.h
>   stable/11/sys/dev/ppbus/vpo.c
>   stable/11/sys/dev/ppbus/vpoio.c
>   stable/11/sys/dev/ppbus/vpoio.h
>   stable/11/sys/dev/ppc/ppc.c
>   stable/11/sys/dev/ppc/ppc_acpi.c
>   stable/11/sys/dev/ppc/ppc_isa.c
>   stable/11/sys/dev/ppc/ppc_pci.c
>   stable/11/sys/dev/ppc/ppc_puc.c
>   stable/11/sys/dev/ppc/ppcreg.h
>   stable/11/sys/dev/ppc/ppcvar.h
>   stable/11/sys/dev/pst/pst-iop.c
>   stable/11/sys/dev/pst/pst-iop.h
>   stable/11/sys/dev/pst/pst-pci.c
>   stable/11/sys/dev/pst/pst-raid.c
>   stable/11/sys/dev/pty/pty.c
>   stable/11/sys/dev/puc/puc.c
>   stable/11/sys/dev/puc/puc_bfe.h
>   stable/11/sys/dev/puc/puc_bus.h
>   stable/11/sys/dev/puc/puc_cfg.c
>   stable/11/sys/dev/puc/puc_cfg.h
>   stable/11/sys/dev/puc/puc_pccard.c
>   stable/11/sys/dev/puc/puc_pci.c
>   stable/11/sys/dev/puc/pucdata.c
>   stable/11/sys/dev/qlxgb/qla_dbg.c
>   stable/11/sys/dev/qlxgb/qla_dbg.h
>   stable/11/sys/dev/qlxgb/qla_def.h
>   stable/11/sys/dev/qlxgb/qla_glbl.h
>   stable/11/sys/dev/qlxgb/qla_hw.c
>   stable/11/sys/dev/qlxgb/qla_hw.h
>   stable/11/sys/dev/qlxgb/qla_inline.h
>   stable/11/sys/dev/qlxgb/qla_ioctl.c
>   stable/11/sys/dev/qlxgb/qla_ioctl.h
>   stable/11/sys/dev/qlxgb/qla_isr.c
>   stable/11/sys/dev/qlxgb/qla_misc.c
>   stable/11/sys/dev/qlxgb/qla_os.c
>   stable/11/sys/dev/qlxgb/qla_os.h
>   stable/11/sys/dev/qlxgb/qla_reg.h
>   stable/11/sys/dev/qlxgb/qla_ver.h
>   stable/11/sys/dev/qlxgbe/ql_dbg.c
>   stable/11/sys/dev/qlxgbe/ql_dbg.h
>   stable/11/sys/dev/qlxgbe/ql_def.h
>   stable/11/sys/dev/qlxgbe/ql_glbl.h
>   stable/11/sys/dev/qlxgbe/ql_hw.c
>   stable/11/sys/dev/qlxgbe/ql_hw.h
>   stable/11/sys/dev/qlxgbe/ql_inline.h
>   stable/11/sys/dev/qlxgbe/ql_ioctl.c
>   stable/11/sys/dev/qlxgbe/ql_ioctl.h
>   stable/11/sys/dev/qlxgbe/ql_isr.c
>   stable/11/sys/dev/qlxgbe/ql_misc.c
>   stable/11/sys/dev/qlxgbe/ql_os.c
>   stable/11/sys/dev/qlxgbe/ql_os.h
>   stable/11/sys/dev/qlxgbe/ql_reset.c
>   stable/11/sys/dev/qlxgbe/ql_tmplt.h
>   stable/11/sys/dev/qlxgbe/ql_ver.h
>   stable/11/sys/dev/qlxge/qls_dbg.c
>   stable/11/sys/dev/qlxge/qls_dbg.h
>   stable/11/sys/dev/qlxge/qls_def.h
>   stable/11/sys/dev/qlxge/qls_dump.c
>   stable/11/sys/dev/qlxge/qls_dump.h
>   stable/11/sys/dev/qlxge/qls_glbl.h
>   stable/11/sys/dev/qlxge/qls_hw.c
>   stable/11/sys/dev/qlxge/qls_hw.h
>   stable/11/sys/dev/qlxge/qls_inline.h
>   stable/11/sys/dev/qlxge/qls_ioctl.c
>   stable/11/sys/dev/qlxge/qls_ioctl.h
>   stable/11/sys/dev/qlxge/qls_isr.c
>   stable/11/sys/dev/qlxge/qls_os.c
>   stable/11/sys/dev/qlxge/qls_os.h
>   stable/11/sys/dev/qlxge/qls_ver.h
>   stable/11/sys/dev/quicc/quicc_bfe.h
>   stable/11/sys/dev/quicc/quicc_bfe_fdt.c
>   stable/11/sys/dev/quicc/quicc_bus.h
>   stable/11/sys/dev/quicc/quicc_core.c
>   stable/11/sys/dev/rc/rc.c
>   stable/11/sys/dev/rc/rcreg.h
>   stable/11/sys/dev/re/if_re.c
>   stable/11/sys/dev/rndtest/rndtest.c
>   stable/11/sys/dev/rndtest/rndtest.h
>   stable/11/sys/dev/rp/rp.c
>   stable/11/sys/dev/rp/rp_isa.c
>   stable/11/sys/dev/rp/rp_pci.c
>   stable/11/sys/dev/rp/rpreg.h
>   stable/11/sys/dev/rp/rpvar.h
>   stable/11/sys/dev/rt/if_rt.c
>   stable/11/sys/dev/rt/if_rtreg.h
>   stable/11/sys/dev/rt/if_rtvar.h
>   stable/11/sys/dev/safe/safe.c
>   stable/11/sys/dev/safe/safereg.h
>   stable/11/sys/dev/safe/safevar.h
>   stable/11/sys/dev/scc/scc_bfe.h
>   stable/11/sys/dev/scc/scc_bfe_ebus.c
>   stable/11/sys/dev/scc/scc_bfe_macio.c
>   stable/11/sys/dev/scc/scc_bfe_quicc.c
>   stable/11/sys/dev/scc/scc_bfe_sbus.c
>   stable/11/sys/dev/scc/scc_bus.h
>   stable/11/sys/dev/scc/scc_core.c
>   stable/11/sys/dev/scc/scc_dev_quicc.c
>   stable/11/sys/dev/scc/scc_dev_sab82532.c
>   stable/11/sys/dev/scc/scc_dev_z8530.c
>   stable/11/sys/dev/sdhci/sdhci.c
>   stable/11/sys/dev/sdhci/sdhci.h
>   stable/11/sys/dev/sdhci/sdhci_fdt.c
>   stable/11/sys/dev/sdhci/sdhci_pci.c
>   stable/11/sys/dev/sec/sec.c
>   stable/11/sys/dev/sec/sec.h
>   stable/11/sys/dev/sf/if_sf.c
>   stable/11/sys/dev/sf/if_sfreg.h
>   stable/11/sys/dev/sfxge/common/efsys.h
>   stable/11/sys/dev/sfxge/common/efx.h
>   stable/11/sys/dev/sfxge/common/efx_bootcfg.c
>   stable/11/sys/dev/sfxge/common/efx_ev.c
>   stable/11/sys/dev/sfxge/common/efx_filter.c
>   stable/11/sys/dev/sfxge/common/efx_impl.h
>   stable/11/sys/dev/sfxge/common/efx_intr.c
>   stable/11/sys/dev/sfxge/common/efx_mac.c
>   stable/11/sys/dev/sfxge/common/efx_mcdi.c
>   stable/11/sys/dev/sfxge/common/efx_mcdi.h
>   stable/11/sys/dev/sfxge/common/efx_mon.c
>   stable/11/sys/dev/sfxge/common/efx_nic.c
>   stable/11/sys/dev/sfxge/common/efx_nvram.c
>   stable/11/sys/dev/sfxge/common/efx_phy.c
>   stable/11/sys/dev/sfxge/common/efx_port.c
>   stable/11/sys/dev/sfxge/common/efx_regs.h
>   stable/11/sys/dev/sfxge/common/efx_regs_ef10.h
>   stable/11/sys/dev/sfxge/common/efx_regs_mcdi.h
>   stable/11/sys/dev/sfxge/common/efx_regs_pci.h
>   stable/11/sys/dev/sfxge/common/efx_rx.c
>   stable/11/sys/dev/sfxge/common/efx_sram.c
>   stable/11/sys/dev/sfxge/common/efx_tx.c
>   stable/11/sys/dev/sfxge/common/efx_types.h
>   stable/11/sys/dev/sfxge/common/efx_vpd.c
>   stable/11/sys/dev/sfxge/common/siena_flash.h
>   stable/11/sys/dev/sfxge/common/siena_impl.h
>   stable/11/sys/dev/sfxge/common/siena_mac.c
>   stable/11/sys/dev/sfxge/common/siena_nic.c
>   stable/11/sys/dev/sfxge/common/siena_nvram.c
>   stable/11/sys/dev/sfxge/common/siena_phy.c
>   stable/11/sys/dev/sfxge/common/siena_sram.c
>   stable/11/sys/dev/sfxge/common/siena_vpd.c
>   stable/11/sys/dev/sfxge/sfxge.c
>   stable/11/sys/dev/sfxge/sfxge.h
>   stable/11/sys/dev/sfxge/sfxge_dma.c
>   stable/11/sys/dev/sfxge/sfxge_ev.c
>   stable/11/sys/dev/sfxge/sfxge_intr.c
>   stable/11/sys/dev/sfxge/sfxge_mcdi.c
>   stable/11/sys/dev/sfxge/sfxge_port.c
>   stable/11/sys/dev/sfxge/sfxge_rx.c
>   stable/11/sys/dev/sfxge/sfxge_rx.h
>   stable/11/sys/dev/sfxge/sfxge_tx.c
>   stable/11/sys/dev/sfxge/sfxge_tx.h
>   stable/11/sys/dev/sge/if_sge.c
>   stable/11/sys/dev/sge/if_sgereg.h
>   stable/11/sys/dev/siba/siba_bwn.c
>   stable/11/sys/dev/siba/siba_core.c
>   stable/11/sys/dev/siba/siba_ids.h
>   stable/11/sys/dev/siba/sibareg.h
>   stable/11/sys/dev/siba/sibavar.h
>   stable/11/sys/dev/siis/siis.c
>   stable/11/sys/dev/siis/siis.h
>   stable/11/sys/dev/sio/sio.c
>   stable/11/sys/dev/sio/sio_isa.c
>   stable/11/sys/dev/sio/sio_pccard.c
>   stable/11/sys/dev/sio/sio_pci.c
>   stable/11/sys/dev/sio/sio_puc.c
>   stable/11/sys/dev/sio/sioreg.h
>   stable/11/sys/dev/sio/siovar.h
>   stable/11/sys/dev/sis/if_sis.c
>   stable/11/sys/dev/sis/if_sisreg.h
>   stable/11/sys/dev/sk/if_sk.c
>   stable/11/sys/dev/sk/if_skreg.h
>   stable/11/sys/dev/sk/xmaciireg.h
>   stable/11/sys/dev/smbus/smb.c
>   stable/11/sys/dev/smbus/smb.h
>   stable/11/sys/dev/smbus/smbconf.c
>   stable/11/sys/dev/smbus/smbconf.h
>   stable/11/sys/dev/smbus/smbus.c
>   stable/11/sys/dev/smbus/smbus.h
>   stable/11/sys/dev/smc/if_smc.c
>   stable/11/sys/dev/smc/if_smcreg.h
>   stable/11/sys/dev/smc/if_smcvar.h
>   stable/11/sys/dev/sn/if_sn.c
>   stable/11/sys/dev/sn/if_sn_isa.c
>   stable/11/sys/dev/sn/if_sn_pccard.c
>   stable/11/sys/dev/sn/if_snreg.h
>   stable/11/sys/dev/sn/if_snvar.h
>   stable/11/sys/dev/sn/ositech.h
>   stable/11/sys/dev/snp/snp.c
>   stable/11/sys/dev/sound/chip.h
>   stable/11/sys/dev/sound/clone.c
>   stable/11/sys/dev/sound/clone.h
>   stable/11/sys/dev/sound/driver.c
>   stable/11/sys/dev/sound/isa/ad1816.c
>   stable/11/sys/dev/sound/isa/ad1816.h
>   stable/11/sys/dev/sound/isa/ess.c
>   stable/11/sys/dev/sound/isa/gusc.c
>   stable/11/sys/dev/sound/isa/mss.c
>   stable/11/sys/dev/sound/isa/mss.h
>   stable/11/sys/dev/sound/isa/sb.h
>   stable/11/sys/dev/sound/isa/sb16.c
>   stable/11/sys/dev/sound/isa/sb8.c
>   stable/11/sys/dev/sound/isa/sbc.c
>   stable/11/sys/dev/sound/isa/sndbuf_dma.c
>   stable/11/sys/dev/sound/macio/aoa.c
>   stable/11/sys/dev/sound/macio/aoa.h
>   stable/11/sys/dev/sound/macio/davbus.c
>   stable/11/sys/dev/sound/macio/davbusreg.h
>   stable/11/sys/dev/sound/macio/i2s.c
>   stable/11/sys/dev/sound/macio/onyx.c
>   stable/11/sys/dev/sound/macio/snapper.c
>   stable/11/sys/dev/sound/macio/tumbler.c
>   stable/11/sys/dev/sound/midi/midi.c
>   stable/11/sys/dev/sound/midi/midi.h
>   stable/11/sys/dev/sound/midi/midiq.h
>   stable/11/sys/dev/sound/midi/mpu401.c
>   stable/11/sys/dev/sound/midi/mpu401.h
>   stable/11/sys/dev/sound/midi/sequencer.c
>   stable/11/sys/dev/sound/midi/sequencer.h
>   stable/11/sys/dev/sound/pci/allegro_code.h
>   stable/11/sys/dev/sound/pci/allegro_reg.h
>   stable/11/sys/dev/sound/pci/als4000.c
>   stable/11/sys/dev/sound/pci/als4000.h
>   stable/11/sys/dev/sound/pci/atiixp.c
>   stable/11/sys/dev/sound/pci/atiixp.h
>   stable/11/sys/dev/sound/pci/aureal.c
>   stable/11/sys/dev/sound/pci/aureal.h
>   stable/11/sys/dev/sound/pci/cmi.c
>   stable/11/sys/dev/sound/pci/cmireg.h
>   stable/11/sys/dev/sound/pci/cs4281.c
>   stable/11/sys/dev/sound/pci/cs4281.h
>   stable/11/sys/dev/sound/pci/cs461x_dsp.h
>   stable/11/sys/dev/sound/pci/csa.c
>   stable/11/sys/dev/sound/pci/csapcm.c
>   stable/11/sys/dev/sound/pci/csareg.h
>   stable/11/sys/dev/sound/pci/csavar.h
>   stable/11/sys/dev/sound/pci/ds1-fw.h
>   stable/11/sys/dev/sound/pci/ds1.c
>   stable/11/sys/dev/sound/pci/emu10k1.c
>   stable/11/sys/dev/sound/pci/emu10kx-midi.c
>   stable/11/sys/dev/sound/pci/emu10kx-pcm.c
>   stable/11/sys/dev/sound/pci/emu10kx.c
>   stable/11/sys/dev/sound/pci/emu10kx.h
>   stable/11/sys/dev/sound/pci/envy24.c
>   stable/11/sys/dev/sound/pci/envy24.h
>   stable/11/sys/dev/sound/pci/envy24ht.c
>   stable/11/sys/dev/sound/pci/envy24ht.h
>   stable/11/sys/dev/sound/pci/es137x.c
>   stable/11/sys/dev/sound/pci/es137x.h
>   stable/11/sys/dev/sound/pci/fm801.c
>   stable/11/sys/dev/sound/pci/hda/hda_reg.h
>   stable/11/sys/dev/sound/pci/hda/hdaa.c
>   stable/11/sys/dev/sound/pci/hda/hdaa.h
>   stable/11/sys/dev/sound/pci/hda/hdaa_patches.c
>   stable/11/sys/dev/sound/pci/hda/hdac.c
>   stable/11/sys/dev/sound/pci/hda/hdac.h
>   stable/11/sys/dev/sound/pci/hda/hdac_private.h
>   stable/11/sys/dev/sound/pci/hda/hdac_reg.h
>   stable/11/sys/dev/sound/pci/hda/hdacc.c
>   stable/11/sys/dev/sound/pci/hdspe-pcm.c
>   stable/11/sys/dev/sound/pci/hdspe.c
>   stable/11/sys/dev/sound/pci/hdspe.h
>   stable/11/sys/dev/sound/pci/ich.c
>   stable/11/sys/dev/sound/pci/ich.h
>   stable/11/sys/dev/sound/pci/maestro.c
>   stable/11/sys/dev/sound/pci/maestro3.c
>   stable/11/sys/dev/sound/pci/maestro_reg.h
>   stable/11/sys/dev/sound/pci/neomagic-coeff.h
>   stable/11/sys/dev/sound/pci/neomagic.c
>   stable/11/sys/dev/sound/pci/neomagic.h
>   stable/11/sys/dev/sound/pci/solo.c
>   stable/11/sys/dev/sound/pci/spicds.c
>   stable/11/sys/dev/sound/pci/spicds.h
>   stable/11/sys/dev/sound/pci/t4dwave.c
>   stable/11/sys/dev/sound/pci/t4dwave.h
>   stable/11/sys/dev/sound/pci/via8233.c
>   stable/11/sys/dev/sound/pci/via8233.h
>   stable/11/sys/dev/sound/pci/via82c686.c
>   stable/11/sys/dev/sound/pci/via82c686.h
>   stable/11/sys/dev/sound/pci/vibes.c
>   stable/11/sys/dev/sound/pci/vibes.h
>   stable/11/sys/dev/sound/pcm/ac97.c
>   stable/11/sys/dev/sound/pcm/ac97.h
>   stable/11/sys/dev/sound/pcm/ac97_patch.c
>   stable/11/sys/dev/sound/pcm/ac97_patch.h
>   stable/11/sys/dev/sound/pcm/buffer.c
>   stable/11/sys/dev/sound/pcm/buffer.h
>   stable/11/sys/dev/sound/pcm/channel.c
>   stable/11/sys/dev/sound/pcm/channel.h
>   stable/11/sys/dev/sound/pcm/dsp.c
>   stable/11/sys/dev/sound/pcm/dsp.h
>   stable/11/sys/dev/sound/pcm/feeder.c
>   stable/11/sys/dev/sound/pcm/feeder.h
>   stable/11/sys/dev/sound/pcm/feeder_chain.c
>   stable/11/sys/dev/sound/pcm/feeder_eq.c
>   stable/11/sys/dev/sound/pcm/feeder_format.c
>   stable/11/sys/dev/sound/pcm/feeder_matrix.c
>   stable/11/sys/dev/sound/pcm/feeder_mixer.c
>   stable/11/sys/dev/sound/pcm/feeder_rate.c
>   stable/11/sys/dev/sound/pcm/feeder_volume.c
>   stable/11/sys/dev/sound/pcm/g711.h
>   stable/11/sys/dev/sound/pcm/intpcm.h
>   stable/11/sys/dev/sound/pcm/matrix.h
>   stable/11/sys/dev/sound/pcm/matrix_map.h
>   stable/11/sys/dev/sound/pcm/mixer.c
>   stable/11/sys/dev/sound/pcm/mixer.h
>   stable/11/sys/dev/sound/pcm/pcm.h
>   stable/11/sys/dev/sound/pcm/sndstat.c
>   stable/11/sys/dev/sound/pcm/sndstat.h
>   stable/11/sys/dev/sound/pcm/sound.c
>   stable/11/sys/dev/sound/pcm/sound.h
>   stable/11/sys/dev/sound/pcm/vchan.c
>   stable/11/sys/dev/sound/pcm/vchan.h
>   stable/11/sys/dev/sound/sbus/apcdmareg.h
>   stable/11/sys/dev/sound/sbus/cs4231.c
>   stable/11/sys/dev/sound/sbus/cs4231.h
>   stable/11/sys/dev/sound/unit.c
>   stable/11/sys/dev/sound/unit.h
>   stable/11/sys/dev/sound/usb/uaudio.c
>   stable/11/sys/dev/sound/usb/uaudio.h
>   stable/11/sys/dev/sound/usb/uaudio_pcm.c
>   stable/11/sys/dev/sound/usb/uaudioreg.h
>   stable/11/sys/dev/sound/version.h
>   stable/11/sys/dev/spibus/ofw_spibus.c
>   stable/11/sys/dev/ste/if_ste.c
>   stable/11/sys/dev/ste/if_stereg.h
>   stable/11/sys/dev/stg/tmc18c30.c
>   stable/11/sys/dev/stg/tmc18c30_isa.c
>   stable/11/sys/dev/stg/tmc18c30_pccard.c
>   stable/11/sys/dev/stg/tmc18c30_pci.c
>   stable/11/sys/dev/stg/tmc18c30_subr.c
>   stable/11/sys/dev/stg/tmc18c30reg.h
>   stable/11/sys/dev/stg/tmc18c30var.h
>   stable/11/sys/dev/stge/if_stge.c
>   stable/11/sys/dev/stge/if_stgereg.h
>   stable/11/sys/dev/sym/sym_conf.h
>   stable/11/sys/dev/sym/sym_defs.h
>   stable/11/sys/dev/sym/sym_fw.h
>   stable/11/sys/dev/sym/sym_fw1.h
>   stable/11/sys/dev/sym/sym_fw2.h
>   stable/11/sys/dev/sym/sym_hipd.c
>   stable/11/sys/dev/syscons/apm/apm_saver.c
>   stable/11/sys/dev/syscons/blank/blank_saver.c
>   stable/11/sys/dev/syscons/daemon/daemon_saver.c
>   stable/11/sys/dev/syscons/dragon/dragon_saver.c
>   stable/11/sys/dev/syscons/fade/fade_saver.c
>   stable/11/sys/dev/syscons/fire/fire_saver.c
>   stable/11/sys/dev/syscons/green/green_saver.c
>   stable/11/sys/dev/syscons/logo/logo_saver.c
>   stable/11/sys/dev/syscons/rain/rain_saver.c
>   stable/11/sys/dev/syscons/scgfbrndr.c
>   stable/11/sys/dev/syscons/schistory.c
>   stable/11/sys/dev/syscons/scmouse.c
>   stable/11/sys/dev/syscons/scterm-teken.c
>   stable/11/sys/dev/syscons/scterm.c
>   stable/11/sys/dev/syscons/scvesactl.c
>   stable/11/sys/dev/syscons/scvgarndr.c
>   stable/11/sys/dev/syscons/scvidctl.c
>   stable/11/sys/dev/syscons/scvtb.c
>   stable/11/sys/dev/syscons/snake/snake_saver.c
>   stable/11/sys/dev/syscons/star/star_saver.c
>   stable/11/sys/dev/syscons/syscons.c
>   stable/11/sys/dev/syscons/syscons.h
>   stable/11/sys/dev/syscons/sysmouse.c
>   stable/11/sys/dev/syscons/warp/warp_saver.c
>   stable/11/sys/dev/tdfx/tdfx_io.h
>   stable/11/sys/dev/tdfx/tdfx_linux.c
>   stable/11/sys/dev/tdfx/tdfx_linux.h
>   stable/11/sys/dev/tdfx/tdfx_pci.c
>   stable/11/sys/dev/tdfx/tdfx_pci.h
>   stable/11/sys/dev/tdfx/tdfx_vars.h
>   stable/11/sys/dev/terasic/de4led/terasic_de4led.c
>   stable/11/sys/dev/terasic/de4led/terasic_de4led.h
>   stable/11/sys/dev/terasic/de4led/terasic_de4led_fdt.c
>   stable/11/sys/dev/terasic/de4led/terasic_de4led_nexus.c
>   stable/11/sys/dev/terasic/mtl/terasic_mtl.c
>   stable/11/sys/dev/terasic/mtl/terasic_mtl.h
>   stable/11/sys/dev/terasic/mtl/terasic_mtl_fdt.c
>   stable/11/sys/dev/terasic/mtl/terasic_mtl_nexus.c
>   stable/11/sys/dev/terasic/mtl/terasic_mtl_pixel.c
>   stable/11/sys/dev/terasic/mtl/terasic_mtl_reg.c
>   stable/11/sys/dev/terasic/mtl/terasic_mtl_syscons.c
>   stable/11/sys/dev/terasic/mtl/terasic_mtl_text.c
>   stable/11/sys/dev/ti/if_ti.c
>   stable/11/sys/dev/ti/if_tireg.h
>   stable/11/sys/dev/tl/if_tl.c
>   stable/11/sys/dev/tl/if_tlreg.h
>   stable/11/sys/dev/trm/trm.c
>   stable/11/sys/dev/trm/trm.h
>   stable/11/sys/dev/tsec/if_tsec.c
>   stable/11/sys/dev/tsec/if_tsec.h
>   stable/11/sys/dev/tsec/if_tsec_fdt.c
>   stable/11/sys/dev/tsec/if_tsecreg.h
>   stable/11/sys/dev/twa/tw_cl.h
>   stable/11/sys/dev/twa/tw_cl_externs.h
>   stable/11/sys/dev/twa/tw_cl_fwif.h
>   stable/11/sys/dev/twa/tw_cl_init.c
>   stable/11/sys/dev/twa/tw_cl_intr.c
>   stable/11/sys/dev/twa/tw_cl_io.c
>   stable/11/sys/dev/twa/tw_cl_ioctl.h
>   stable/11/sys/dev/twa/tw_cl_misc.c
>   stable/11/sys/dev/twa/tw_cl_share.h
>   stable/11/sys/dev/twa/tw_osl.h
>   stable/11/sys/dev/twa/tw_osl_cam.c
>   stable/11/sys/dev/twa/tw_osl_externs.h
>   stable/11/sys/dev/twa/tw_osl_freebsd.c
>   stable/11/sys/dev/twa/tw_osl_includes.h
>   stable/11/sys/dev/twa/tw_osl_inline.h
>   stable/11/sys/dev/twa/tw_osl_ioctl.h
>   stable/11/sys/dev/twa/tw_osl_share.h
>   stable/11/sys/dev/twa/tw_osl_types.h
>   stable/11/sys/dev/twe/twe.c
>   stable/11/sys/dev/twe/twe_compat.h
>   stable/11/sys/dev/twe/twe_freebsd.c
>   stable/11/sys/dev/twe/twe_tables.h
>   stable/11/sys/dev/twe/tweio.h
>   stable/11/sys/dev/twe/twereg.h
>   stable/11/sys/dev/twe/twevar.h
>   stable/11/sys/dev/tws/tws.c
>   stable/11/sys/dev/tws/tws.h
>   stable/11/sys/dev/tws/tws_cam.c
>   stable/11/sys/dev/tws/tws_hdm.c
>   stable/11/sys/dev/tws/tws_hdm.h
>   stable/11/sys/dev/tws/tws_services.c
>   stable/11/sys/dev/tws/tws_services.h
>   stable/11/sys/dev/tws/tws_user.c
>   stable/11/sys/dev/tws/tws_user.h
>   stable/11/sys/dev/tx/if_tx.c
>   stable/11/sys/dev/tx/if_txreg.h
>   stable/11/sys/dev/tx/if_txvar.h
>   stable/11/sys/dev/txp/3c990img.h
>   stable/11/sys/dev/txp/if_txp.c
>   stable/11/sys/dev/txp/if_txpreg.h
>   stable/11/sys/dev/uart/uart.h
>   stable/11/sys/dev/uart/uart_bus.h
>   stable/11/sys/dev/uart/uart_bus_acpi.c
>   stable/11/sys/dev/uart/uart_bus_ebus.c
>   stable/11/sys/dev/uart/uart_bus_fdt.c
>   stable/11/sys/dev/uart/uart_bus_isa.c
>   stable/11/sys/dev/uart/uart_bus_pccard.c
>   stable/11/sys/dev/uart/uart_bus_pci.c
>   stable/11/sys/dev/uart/uart_bus_puc.c
>   stable/11/sys/dev/uart/uart_bus_scc.c
>   stable/11/sys/dev/uart/uart_core.c
>   stable/11/sys/dev/uart/uart_cpu.h
>   stable/11/sys/dev/uart/uart_cpu_fdt.c
>   stable/11/sys/dev/uart/uart_cpu_powerpc.c
>   stable/11/sys/dev/uart/uart_cpu_sparc64.c
>   stable/11/sys/dev/uart/uart_cpu_x86.c
>   stable/11/sys/dev/uart/uart_dbg.c
>   stable/11/sys/dev/uart/uart_dev_imx.c
>   stable/11/sys/dev/uart/uart_dev_lpc.c
>   stable/11/sys/dev/uart/uart_dev_ns8250.c
>   stable/11/sys/dev/uart/uart_dev_ns8250.h
>   stable/11/sys/dev/uart/uart_dev_pl011.c
>   stable/11/sys/dev/uart/uart_dev_quicc.c
>   stable/11/sys/dev/uart/uart_dev_sab82532.c
>   stable/11/sys/dev/uart/uart_dev_ti8250.c
>   stable/11/sys/dev/uart/uart_dev_z8530.c
>   stable/11/sys/dev/uart/uart_kbd_sun.c
>   stable/11/sys/dev/uart/uart_kbd_sun.h
>   stable/11/sys/dev/uart/uart_subr.c
>   stable/11/sys/dev/uart/uart_tty.c
>   stable/11/sys/dev/ubsec/ubsec.c
>   stable/11/sys/dev/ubsec/ubsecreg.h
>   stable/11/sys/dev/ubsec/ubsecvar.h
>   stable/11/sys/dev/usb/controller/at91dci.c
>   stable/11/sys/dev/usb/controller/at91dci.h
>   stable/11/sys/dev/usb/controller/at91dci_atmelarm.c
>   stable/11/sys/dev/usb/controller/at91dci_fdt.c
>   stable/11/sys/dev/usb/controller/atmegadci.c
>   stable/11/sys/dev/usb/controller/atmegadci.h
>   stable/11/sys/dev/usb/controller/atmegadci_atmelarm.c
>   stable/11/sys/dev/usb/controller/avr32dci.c
>   stable/11/sys/dev/usb/controller/avr32dci.h
>   stable/11/sys/dev/usb/controller/dwc_otg.c
>   stable/11/sys/dev/usb/controller/dwc_otg.h
>   stable/11/sys/dev/usb/controller/dwc_otg_fdt.c
>   stable/11/sys/dev/usb/controller/dwc_otgreg.h
>   stable/11/sys/dev/usb/controller/ehci.c
>   stable/11/sys/dev/usb/controller/ehci.h
>   stable/11/sys/dev/usb/controller/ehci_fsl.c
>   stable/11/sys/dev/usb/controller/ehci_imx.c
>   stable/11/sys/dev/usb/controller/ehci_ixp4xx.c
>   stable/11/sys/dev/usb/controller/ehci_mv.c
>   stable/11/sys/dev/usb/controller/ehci_pci.c
>   stable/11/sys/dev/usb/controller/ehcireg.h
>   stable/11/sys/dev/usb/controller/musb_otg.c
>   stable/11/sys/dev/usb/controller/musb_otg.h
>   stable/11/sys/dev/usb/controller/musb_otg_atmelarm.c
>   stable/11/sys/dev/usb/controller/ohci.c
>   stable/11/sys/dev/usb/controller/ohci.h
>   stable/11/sys/dev/usb/controller/ohci_pci.c
>   stable/11/sys/dev/usb/controller/ohci_s3c24x0.c
>   stable/11/sys/dev/usb/controller/ohcireg.h
>   stable/11/sys/dev/usb/controller/uhci.c
>   stable/11/sys/dev/usb/controller/uhci.h
>   stable/11/sys/dev/usb/controller/uhci_pci.c
>   stable/11/sys/dev/usb/controller/uhcireg.h
>   stable/11/sys/dev/usb/controller/usb_controller.c
>   stable/11/sys/dev/usb/controller/uss820dci.c
>   stable/11/sys/dev/usb/controller/uss820dci.h
>   stable/11/sys/dev/usb/controller/uss820dci_atmelarm.c
>   stable/11/sys/dev/usb/controller/xhci.c
>   stable/11/sys/dev/usb/controller/xhci.h
>   stable/11/sys/dev/usb/controller/xhci_pci.c
>   stable/11/sys/dev/usb/controller/xhcireg.h
>   stable/11/sys/dev/usb/gadget/g_audio.c
>   stable/11/sys/dev/usb/gadget/g_audio.h
>   stable/11/sys/dev/usb/gadget/g_keyboard.c
>   stable/11/sys/dev/usb/gadget/g_keyboard.h
>   stable/11/sys/dev/usb/gadget/g_modem.c
>   stable/11/sys/dev/usb/gadget/g_modem.h
>   stable/11/sys/dev/usb/gadget/g_mouse.c
>   stable/11/sys/dev/usb/gadget/g_mouse.h
>   stable/11/sys/dev/usb/input/atp.c
>   stable/11/sys/dev/usb/input/uep.c
>   stable/11/sys/dev/usb/input/uhid.c
>   stable/11/sys/dev/usb/input/ukbd.c
>   stable/11/sys/dev/usb/input/ums.c
>   stable/11/sys/dev/usb/input/usb_rdesc.h
>   stable/11/sys/dev/usb/input/wsp.c
>   stable/11/sys/dev/usb/misc/udbp.c
>   stable/11/sys/dev/usb/misc/ufm.c
>   stable/11/sys/dev/usb/net/if_aue.c
>   stable/11/sys/dev/usb/net/if_auereg.h
>   stable/11/sys/dev/usb/net/if_axe.c
>   stable/11/sys/dev/usb/net/if_axereg.h
>   stable/11/sys/dev/usb/net/if_axge.c
>   stable/11/sys/dev/usb/net/if_axgereg.h
>   stable/11/sys/dev/usb/net/if_cdce.c
>   stable/11/sys/dev/usb/net/if_cdcereg.h
>   stable/11/sys/dev/usb/net/if_cue.c
>   stable/11/sys/dev/usb/net/if_cuereg.h
>   stable/11/sys/dev/usb/net/if_ipheth.c
>   stable/11/sys/dev/usb/net/if_iphethvar.h
>   stable/11/sys/dev/usb/net/if_kue.c
>   stable/11/sys/dev/usb/net/if_kuefw.h
>   stable/11/sys/dev/usb/net/if_kuereg.h
>   stable/11/sys/dev/usb/net/if_mos.c
>   stable/11/sys/dev/usb/net/if_mosreg.h
>   stable/11/sys/dev/usb/net/if_rue.c
>   stable/11/sys/dev/usb/net/if_ruereg.h
>   stable/11/sys/dev/usb/net/if_smsc.c
>   stable/11/sys/dev/usb/net/if_smscreg.h
>   stable/11/sys/dev/usb/net/if_udav.c
>   stable/11/sys/dev/usb/net/if_udavreg.h
>   stable/11/sys/dev/usb/net/if_usie.c
>   stable/11/sys/dev/usb/net/if_usievar.h
>   stable/11/sys/dev/usb/net/ruephy.c
>   stable/11/sys/dev/usb/net/ruephyreg.h
>   stable/11/sys/dev/usb/net/uhso.c
>   stable/11/sys/dev/usb/net/usb_ethernet.c
>   stable/11/sys/dev/usb/net/usb_ethernet.h
>   stable/11/sys/dev/usb/quirk/usb_quirk.c
>   stable/11/sys/dev/usb/quirk/usb_quirk.h
>   stable/11/sys/dev/usb/serial/ubsa.c
>   stable/11/sys/dev/usb/serial/ubser.c
>   stable/11/sys/dev/usb/serial/uchcom.c
>   stable/11/sys/dev/usb/serial/ucycom.c
>   stable/11/sys/dev/usb/serial/ufoma.c
>   stable/11/sys/dev/usb/serial/uftdi.c
>   stable/11/sys/dev/usb/serial/ugensa.c
>   stable/11/sys/dev/usb/serial/uipaq.c
>   stable/11/sys/dev/usb/serial/ulpt.c
>   stable/11/sys/dev/usb/serial/umcs.c
>   stable/11/sys/dev/usb/serial/umcs.h
>   stable/11/sys/dev/usb/serial/umct.c
>   stable/11/sys/dev/usb/serial/umodem.c
>   stable/11/sys/dev/usb/serial/uplcom.c
>   stable/11/sys/dev/usb/serial/usb_serial.c
>   stable/11/sys/dev/usb/serial/usb_serial.h
>   stable/11/sys/dev/usb/serial/uvisor.c
>   stable/11/sys/dev/usb/serial/uvscom.c
>   stable/11/sys/dev/usb/storage/umass.c
>   stable/11/sys/dev/usb/storage/urio.c
>   stable/11/sys/dev/usb/storage/ustorage_fs.c
>   stable/11/sys/dev/usb/template/usb_template.c
>   stable/11/sys/dev/usb/template/usb_template.h
>   stable/11/sys/dev/usb/template/usb_template_audio.c
>   stable/11/sys/dev/usb/template/usb_template_cdce.c
>   stable/11/sys/dev/usb/template/usb_template_kbd.c
>   stable/11/sys/dev/usb/template/usb_template_modem.c
>   stable/11/sys/dev/usb/template/usb_template_mouse.c
>   stable/11/sys/dev/usb/template/usb_template_msc.c
>   stable/11/sys/dev/usb/template/usb_template_mtp.c
>   stable/11/sys/dev/usb/ufm_ioctl.h
>   stable/11/sys/dev/usb/usb.h
>   stable/11/sys/dev/usb/usb_bus.h
>   stable/11/sys/dev/usb/usb_busdma.c
>   stable/11/sys/dev/usb/usb_busdma.h
>   stable/11/sys/dev/usb/usb_cdc.h
>   stable/11/sys/dev/usb/usb_controller.h
>   stable/11/sys/dev/usb/usb_core.c
>   stable/11/sys/dev/usb/usb_core.h
>   stable/11/sys/dev/usb/usb_debug.c
>   stable/11/sys/dev/usb/usb_debug.h
>   stable/11/sys/dev/usb/usb_dev.c
>   stable/11/sys/dev/usb/usb_dev.h
>   stable/11/sys/dev/usb/usb_device.c
>   stable/11/sys/dev/usb/usb_device.h
>   stable/11/sys/dev/usb/usb_dynamic.c
>   stable/11/sys/dev/usb/usb_dynamic.h
>   stable/11/sys/dev/usb/usb_endian.h
>   stable/11/sys/dev/usb/usb_error.c
>   stable/11/sys/dev/usb/usb_freebsd.h
>   stable/11/sys/dev/usb/usb_freebsd_loader.h
>   stable/11/sys/dev/usb/usb_generic.c
>   stable/11/sys/dev/usb/usb_generic.h
>   stable/11/sys/dev/usb/usb_handle_request.c
>   stable/11/sys/dev/usb/usb_hid.c
>   stable/11/sys/dev/usb/usb_hub.c
>   stable/11/sys/dev/usb/usb_hub.h
>   stable/11/sys/dev/usb/usb_ioctl.h
>   stable/11/sys/dev/usb/usb_lookup.c
>   stable/11/sys/dev/usb/usb_mbuf.c
>   stable/11/sys/dev/usb/usb_mbuf.h
>   stable/11/sys/dev/usb/usb_msctest.c
>   stable/11/sys/dev/usb/usb_msctest.h
>   stable/11/sys/dev/usb/usb_parse.c
>   stable/11/sys/dev/usb/usb_pci.h
>   stable/11/sys/dev/usb/usb_pf.c
>   stable/11/sys/dev/usb/usb_pf.h
>   stable/11/sys/dev/usb/usb_process.c
>   stable/11/sys/dev/usb/usb_process.h
>   stable/11/sys/dev/usb/usb_request.c
>   stable/11/sys/dev/usb/usb_request.h
>   stable/11/sys/dev/usb/usb_transfer.c
>   stable/11/sys/dev/usb/usb_transfer.h
>   stable/11/sys/dev/usb/usb_util.c
>   stable/11/sys/dev/usb/usb_util.h
>   stable/11/sys/dev/usb/usbdi.h
>   stable/11/sys/dev/usb/usbdi_util.h
>   stable/11/sys/dev/usb/usbhid.h
>   stable/11/sys/dev/usb/wlan/if_uath.c
>   stable/11/sys/dev/usb/wlan/if_zydfw.h
>   stable/11/sys/dev/vge/if_vge.c
>   stable/11/sys/dev/vge/if_vgereg.h
>   stable/11/sys/dev/vge/if_vgevar.h
>   stable/11/sys/dev/viawd/viawd.c
>   stable/11/sys/dev/viawd/viawd.h
>   stable/11/sys/dev/virtio/balloon/virtio_balloon.c
>   stable/11/sys/dev/virtio/balloon/virtio_balloon.h
>   stable/11/sys/dev/virtio/block/virtio_blk.c
>   stable/11/sys/dev/virtio/block/virtio_blk.h
>   stable/11/sys/dev/virtio/network/if_vtnet.c
>   stable/11/sys/dev/virtio/network/if_vtnetvar.h
>   stable/11/sys/dev/virtio/network/virtio_net.h
>   stable/11/sys/dev/virtio/pci/virtio_pci.c
>   stable/11/sys/dev/virtio/pci/virtio_pci.h
>   stable/11/sys/dev/virtio/random/virtio_random.c
>   stable/11/sys/dev/virtio/scsi/virtio_scsi.c
>   stable/11/sys/dev/virtio/scsi/virtio_scsi.h
>   stable/11/sys/dev/virtio/scsi/virtio_scsivar.h
>   stable/11/sys/dev/virtio/virtio.c
>   stable/11/sys/dev/virtio/virtio.h
>   stable/11/sys/dev/virtio/virtio_ring.h
>   stable/11/sys/dev/virtio/virtqueue.c
>   stable/11/sys/dev/virtio/virtqueue.h
>   stable/11/sys/dev/vkbd/vkbd.c
>   stable/11/sys/dev/vkbd/vkbd_var.h
>   stable/11/sys/dev/vr/if_vr.c
>   stable/11/sys/dev/vr/if_vrreg.h
>   stable/11/sys/dev/vt/colors/vt_termcolors.c
>   stable/11/sys/dev/vt/colors/vt_termcolors.h
>   stable/11/sys/dev/vt/font/vt_font_default.c
>   stable/11/sys/dev/vt/font/vt_mouse_cursor.c
>   stable/11/sys/dev/vt/hw/efifb/efifb.c
>   stable/11/sys/dev/vt/hw/fb/vt_early_fb.c
>   stable/11/sys/dev/vt/hw/fb/vt_fb.c
>   stable/11/sys/dev/vt/hw/fb/vt_fb.h
>   stable/11/sys/dev/vt/hw/ofwfb/ofwfb.c
>   stable/11/sys/dev/vt/logo/logo_freebsd.c
>   stable/11/sys/dev/vt/vt.h
>   stable/11/sys/dev/vt/vt_buf.c
>   stable/11/sys/dev/vt/vt_consolectl.c
>   stable/11/sys/dev/vt/vt_core.c
>   stable/11/sys/dev/vt/vt_font.c
>   stable/11/sys/dev/vt/vt_sysmouse.c
>   stable/11/sys/dev/vte/if_vte.c
>   stable/11/sys/dev/vte/if_vtereg.h
>   stable/11/sys/dev/vte/if_vtevar.h
>   stable/11/sys/dev/vx/if_vx.c
>   stable/11/sys/dev/vx/if_vx_pci.c
>   stable/11/sys/dev/vx/if_vxreg.h
>   stable/11/sys/dev/vx/if_vxvar.h
>   stable/11/sys/dev/vxge/include/vxge-debug.h
>   stable/11/sys/dev/vxge/include/vxge-defs.h
>   stable/11/sys/dev/vxge/include/vxge-list.h
>   stable/11/sys/dev/vxge/include/vxge-os-debug.h
>   stable/11/sys/dev/vxge/include/vxge-os-pal.h
>   stable/11/sys/dev/vxge/include/vxge-queue.h
>   stable/11/sys/dev/vxge/include/vxgehal-config.h
>   stable/11/sys/dev/vxge/include/vxgehal-ll.h
>   stable/11/sys/dev/vxge/include/vxgehal-mgmt.h
>   stable/11/sys/dev/vxge/include/vxgehal-mgmtaux.h
>   stable/11/sys/dev/vxge/include/vxgehal-stats.h
>   stable/11/sys/dev/vxge/include/vxgehal-status.h
>   stable/11/sys/dev/vxge/include/vxgehal-types.h
>   stable/11/sys/dev/vxge/include/vxgehal-version.h
>   stable/11/sys/dev/vxge/vxge-firmware.h
>   stable/11/sys/dev/vxge/vxge-osdep.h
>   stable/11/sys/dev/vxge/vxge.c
>   stable/11/sys/dev/vxge/vxge.h
>   stable/11/sys/dev/vxge/vxgehal/vxge-queue.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-blockpool.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-blockpool.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-channel.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-channel.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-common-reg.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-config-priv.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-config.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-debug.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-device.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-device.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-doorbells.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-doorbells.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-driver.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-driver.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-fifo.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-fifo.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-ifmsg.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-ifmsg.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-legacy-reg.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-memrepair-reg.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-mgmt.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-mgmtaux.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-mm.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-mm.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-mrpcim-reg.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-mrpcim.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-mrpcim.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-pcicfgmgmt-reg.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-regdefs.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-regs.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-ring.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-ring.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-srpcim-reg.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-srpcim.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-srpcim.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-swapper.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-swapper.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-toc-reg.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-virtualpath.c
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-virtualpath.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-vpath-reg.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal-vpmgmt-reg.h
>   stable/11/sys/dev/vxge/vxgehal/vxgehal.h
>   stable/11/sys/dev/vxge/vxgell-version.h
>   stable/11/sys/dev/watchdog/watchdog.c
>   stable/11/sys/dev/wb/if_wb.c
>   stable/11/sys/dev/wb/if_wbreg.h
>   stable/11/sys/dev/wbwd/wbwd.c
>   stable/11/sys/dev/wi/if_wavelan_ieee.h
>   stable/11/sys/dev/wi/if_wi_macio.c
>   stable/11/sys/dev/wi/if_wi_pccard.c
>   stable/11/sys/dev/wi/if_wi_pci.c
>   stable/11/sys/dev/wi/if_wireg.h
>   stable/11/sys/dev/wi/if_wivar.h
>   stable/11/sys/dev/wtap/if_medium.c
>   stable/11/sys/dev/wtap/if_medium.h
>   stable/11/sys/dev/wtap/if_wtap.c
>   stable/11/sys/dev/wtap/if_wtap_module.c
>   stable/11/sys/dev/wtap/if_wtapioctl.h
>   stable/11/sys/dev/wtap/if_wtapvar.h
>   stable/11/sys/dev/wtap/plugins/visibility.c
>   stable/11/sys/dev/wtap/plugins/visibility.h
>   stable/11/sys/dev/wtap/plugins/visibility_ioctl.h
>   stable/11/sys/dev/wtap/plugins/wtap_plugin.h
>   stable/11/sys/dev/wtap/wtap_hal/hal.c
>   stable/11/sys/dev/wtap/wtap_hal/hal.h
>   stable/11/sys/dev/wtap/wtap_hal/handler.h
>   stable/11/sys/dev/xe/if_xe.c
>   stable/11/sys/dev/xe/if_xe_pccard.c
>   stable/11/sys/dev/xe/if_xereg.h
>   stable/11/sys/dev/xe/if_xevar.h
>   stable/11/sys/dev/xen/blkback/blkback.c
>   stable/11/sys/dev/xen/control/control.c
>   stable/11/sys/dev/xen/netback/netback.c
>   stable/11/sys/dev/xen/netback/netback_unit_tests.c
>   stable/11/sys/dev/xen/netfront/netfront.c
>   stable/11/sys/dev/xen/pcifront/pcifront.c
>   stable/11/sys/dev/xen/timer/timer.c
>   stable/11/sys/dev/xen/timer/timer.h
>   stable/11/sys/dev/xen/xenpci/xenpci.c
>   stable/11/sys/dev/xen/xenpci/xenpcivar.h
>   stable/11/sys/dev/xl/if_xl.c
>   stable/11/sys/dev/xl/if_xlreg.h
>   stable/11/sys/dev/xl/xlphy.c
>   stable/11/sys/fs/cd9660/cd9660_bmap.c
>   stable/11/sys/fs/cd9660/cd9660_lookup.c
>   stable/11/sys/fs/cd9660/cd9660_mount.h
>   stable/11/sys/fs/cd9660/cd9660_node.c
>   stable/11/sys/fs/cd9660/cd9660_node.h
>   stable/11/sys/fs/cd9660/cd9660_rrip.c
>   stable/11/sys/fs/cd9660/cd9660_rrip.h
>   stable/11/sys/fs/cd9660/cd9660_util.c
>   stable/11/sys/fs/cd9660/cd9660_vfsops.c
>   stable/11/sys/fs/cd9660/cd9660_vnops.c
>   stable/11/sys/fs/cd9660/iso.h
>   stable/11/sys/fs/cd9660/iso_rrip.h
>   stable/11/sys/fs/deadfs/dead_vnops.c
>   stable/11/sys/fs/ext2fs/ext2_alloc.c
>   stable/11/sys/fs/ext2fs/ext2_balloc.c
>   stable/11/sys/fs/ext2fs/ext2_bmap.c
>   stable/11/sys/fs/ext2fs/ext2_extern.h
>   stable/11/sys/fs/ext2fs/ext2_inode.c
>   stable/11/sys/fs/ext2fs/ext2_lookup.c
>   stable/11/sys/fs/ext2fs/ext2_mount.h
>   stable/11/sys/fs/ext2fs/ext2_subr.c
>   stable/11/sys/fs/ext2fs/ext2_vfsops.c
>   stable/11/sys/fs/ext2fs/ext2_vnops.c
>   stable/11/sys/fs/ext2fs/fs.h
>   stable/11/sys/fs/ext2fs/inode.h
>   stable/11/sys/fs/fdescfs/fdesc.h
>   stable/11/sys/fs/fdescfs/fdesc_vfsops.c
>   stable/11/sys/fs/fdescfs/fdesc_vnops.c
>   stable/11/sys/fs/fifofs/fifo_vnops.c
>   stable/11/sys/fs/fuse/fuse.h
>   stable/11/sys/fs/fuse/fuse_debug.h
>   stable/11/sys/fs/fuse/fuse_device.c
>   stable/11/sys/fs/fuse/fuse_file.c
>   stable/11/sys/fs/fuse/fuse_file.h
>   stable/11/sys/fs/fuse/fuse_internal.c
>   stable/11/sys/fs/fuse/fuse_internal.h
>   stable/11/sys/fs/fuse/fuse_io.c
>   stable/11/sys/fs/fuse/fuse_io.h
>   stable/11/sys/fs/fuse/fuse_ipc.c
>   stable/11/sys/fs/fuse/fuse_ipc.h
>   stable/11/sys/fs/fuse/fuse_kernel.h
>   stable/11/sys/fs/fuse/fuse_main.c
>   stable/11/sys/fs/fuse/fuse_node.c
>   stable/11/sys/fs/fuse/fuse_node.h
>   stable/11/sys/fs/fuse/fuse_param.h
>   stable/11/sys/fs/fuse/fuse_vfsops.c
>   stable/11/sys/fs/fuse/fuse_vnops.c
>   stable/11/sys/fs/nfs/nfs.h
>   stable/11/sys/fs/nfs/nfs_commonkrpc.c
>   stable/11/sys/fs/nfs/nfs_commonport.c
>   stable/11/sys/fs/nfs/nfs_commonsubs.c
>   stable/11/sys/fs/nfs/nfs_var.h
>   stable/11/sys/fs/nfs/nfsm_subs.h
>   stable/11/sys/fs/nfs/nfsport.h
>   stable/11/sys/fs/nfs/nfsproto.h
>   stable/11/sys/fs/nfs/nfsrvcache.h
>   stable/11/sys/fs/nfs/rpcv2.h
>   stable/11/sys/fs/nfs/xdr_subs.h
>   stable/11/sys/fs/nfsclient/nfs.h
>   stable/11/sys/fs/nfsclient/nfs_clbio.c
>   stable/11/sys/fs/nfsclient/nfs_clcomsubs.c
>   stable/11/sys/fs/nfsclient/nfs_clkrpc.c
>   stable/11/sys/fs/nfsclient/nfs_clnfsiod.c
>   stable/11/sys/fs/nfsclient/nfs_clnode.c
>   stable/11/sys/fs/nfsclient/nfs_clport.c
>   stable/11/sys/fs/nfsclient/nfs_clrpcops.c
>   stable/11/sys/fs/nfsclient/nfs_clsubs.c
>   stable/11/sys/fs/nfsclient/nfs_clvfsops.c
>   stable/11/sys/fs/nfsclient/nfs_clvnops.c
>   stable/11/sys/fs/nfsclient/nfsmount.h
>   stable/11/sys/fs/nfsclient/nfsnode.h
>   stable/11/sys/fs/nfsserver/nfs_nfsdcache.c
>   stable/11/sys/fs/nfsserver/nfs_nfsdkrpc.c
>   stable/11/sys/fs/nfsserver/nfs_nfsdport.c
>   stable/11/sys/fs/nfsserver/nfs_nfsdserv.c
>   stable/11/sys/fs/nfsserver/nfs_nfsdsocket.c
>   stable/11/sys/fs/nfsserver/nfs_nfsdsubs.c
>   stable/11/sys/fs/nullfs/null.h
>   stable/11/sys/fs/nullfs/null_subr.c
>   stable/11/sys/fs/nullfs/null_vfsops.c
>   stable/11/sys/fs/nullfs/null_vnops.c
>   stable/11/sys/fs/procfs/procfs.c
>   stable/11/sys/fs/procfs/procfs.h
>   stable/11/sys/fs/procfs/procfs_dbregs.c
>   stable/11/sys/fs/procfs/procfs_fpregs.c
>   stable/11/sys/fs/procfs/procfs_map.c
>   stable/11/sys/fs/procfs/procfs_mem.c
>   stable/11/sys/fs/procfs/procfs_note.c
>   stable/11/sys/fs/procfs/procfs_osrel.c
>   stable/11/sys/fs/procfs/procfs_regs.c
>   stable/11/sys/fs/procfs/procfs_rlimit.c
>   stable/11/sys/fs/procfs/procfs_status.c
>   stable/11/sys/fs/procfs/procfs_type.c
>   stable/11/sys/fs/unionfs/union.h
>   stable/11/sys/fs/unionfs/union_subr.c
>   stable/11/sys/fs/unionfs/union_vfsops.c
>   stable/11/sys/fs/unionfs/union_vnops.c
>   stable/11/sys/geom/vinum/geom_vinum_share.c
>   stable/11/sys/geom/vinum/geom_vinum_subr.c
>   stable/11/sys/geom/vinum/geom_vinum_var.h
>   stable/11/sys/i386/acpica/acpi_machdep.c
>   stable/11/sys/i386/bios/smapi.c
>   stable/11/sys/i386/i386/atomic.c
>   stable/11/sys/i386/i386/bios.c
>   stable/11/sys/i386/i386/bpf_jit_machdep.c
>   stable/11/sys/i386/i386/bpf_jit_machdep.h
>   stable/11/sys/i386/i386/elf_machdep.c
>   stable/11/sys/i386/i386/gdb_machdep.c
>   stable/11/sys/i386/i386/genassym.c
>   stable/11/sys/i386/i386/geode.c
>   stable/11/sys/i386/i386/in_cksum.c
>   stable/11/sys/i386/i386/initcpu.c
>   stable/11/sys/i386/i386/io.c
>   stable/11/sys/i386/i386/k6_mem.c
>   stable/11/sys/i386/i386/longrun.c
>   stable/11/sys/i386/i386/machdep.c
>   stable/11/sys/i386/i386/mem.c
>   stable/11/sys/i386/i386/minidump_machdep.c
>   stable/11/sys/i386/i386/mp_machdep.c
>   stable/11/sys/i386/i386/pmap.c
>   stable/11/sys/i386/i386/ptrace_machdep.c
>   stable/11/sys/i386/i386/sys_machdep.c
>   stable/11/sys/i386/i386/trap.c
>   stable/11/sys/i386/i386/uio_machdep.c
>   stable/11/sys/i386/i386/vm86.c
>   stable/11/sys/i386/i386/vm_machdep.c
>   stable/11/sys/i386/ibcs2/coff.h
>   stable/11/sys/i386/ibcs2/ibcs2_dirent.h
>   stable/11/sys/i386/ibcs2/ibcs2_errno.c
>   stable/11/sys/i386/ibcs2/ibcs2_errno.h
>   stable/11/sys/i386/ibcs2/ibcs2_fcntl.c
>   stable/11/sys/i386/ibcs2/ibcs2_fcntl.h
>   stable/11/sys/i386/ibcs2/ibcs2_ioctl.c
>   stable/11/sys/i386/ibcs2/ibcs2_ipc.c
>   stable/11/sys/i386/ibcs2/ibcs2_ipc.h
>   stable/11/sys/i386/ibcs2/ibcs2_isc.c
>   stable/11/sys/i386/ibcs2/ibcs2_misc.c
>   stable/11/sys/i386/ibcs2/ibcs2_mount.h
>   stable/11/sys/i386/ibcs2/ibcs2_msg.c
>   stable/11/sys/i386/ibcs2/ibcs2_other.c
>   stable/11/sys/i386/ibcs2/ibcs2_signal.c
>   stable/11/sys/i386/ibcs2/ibcs2_signal.h
>   stable/11/sys/i386/ibcs2/ibcs2_socksys.c
>   stable/11/sys/i386/ibcs2/ibcs2_socksys.h
>   stable/11/sys/i386/ibcs2/ibcs2_stat.c
>   stable/11/sys/i386/ibcs2/ibcs2_stat.h
>   stable/11/sys/i386/ibcs2/ibcs2_statfs.h
>   stable/11/sys/i386/ibcs2/ibcs2_stropts.h
>   stable/11/sys/i386/ibcs2/ibcs2_sysi86.c
>   stable/11/sys/i386/ibcs2/ibcs2_sysvec.c
>   stable/11/sys/i386/ibcs2/ibcs2_termios.h
>   stable/11/sys/i386/ibcs2/ibcs2_time.h
>   stable/11/sys/i386/ibcs2/ibcs2_types.h
>   stable/11/sys/i386/ibcs2/ibcs2_unistd.h
>   stable/11/sys/i386/ibcs2/ibcs2_ustat.h
>   stable/11/sys/i386/ibcs2/ibcs2_util.c
>   stable/11/sys/i386/ibcs2/ibcs2_util.h
>   stable/11/sys/i386/ibcs2/ibcs2_utime.h
>   stable/11/sys/i386/ibcs2/ibcs2_utsname.h
>   stable/11/sys/i386/ibcs2/ibcs2_xenix.c
>   stable/11/sys/i386/ibcs2/imgact_coff.c
>   stable/11/sys/i386/include/_bus.h
>   stable/11/sys/i386/include/asm.h
>   stable/11/sys/i386/include/asmacros.h
>   stable/11/sys/i386/include/atomic.h
>   stable/11/sys/i386/include/bootinfo.h
>   stable/11/sys/i386/include/bus_dma.h
>   stable/11/sys/i386/include/counter.h
>   stable/11/sys/i386/include/cpu.h
>   stable/11/sys/i386/include/cpufunc.h
>   stable/11/sys/i386/include/cputypes.h
>   stable/11/sys/i386/include/elan_mmcr.h
>   stable/11/sys/i386/include/exec.h
>   stable/11/sys/i386/include/floatingpoint.h
>   stable/11/sys/i386/include/gdb_machdep.h
>   stable/11/sys/i386/include/ieeefp.h
>   stable/11/sys/i386/include/if_wl_wavelan.h
>   stable/11/sys/i386/include/in_cksum.h
>   stable/11/sys/i386/include/intr_machdep.h
>   stable/11/sys/i386/include/ioctl_bt848.h
>   stable/11/sys/i386/include/ioctl_meteor.h
>   stable/11/sys/i386/include/iodev.h
>   stable/11/sys/i386/include/kdb.h
>   stable/11/sys/i386/include/limits.h
>   stable/11/sys/i386/include/md_var.h
>   stable/11/sys/i386/include/memdev.h
>   stable/11/sys/i386/include/minidump.h
>   stable/11/sys/i386/include/mp_watchdog.h
>   stable/11/sys/i386/include/npx.h
>   stable/11/sys/i386/include/param.h
>   stable/11/sys/i386/include/pc/bios.h
>   stable/11/sys/i386/include/pcaudioio.h
>   stable/11/sys/i386/include/pcb.h
>   stable/11/sys/i386/include/pcb_ext.h
>   stable/11/sys/i386/include/pcpu.h
>   stable/11/sys/i386/include/pmap.h
>   stable/11/sys/i386/include/pmc_mdep.h
>   stable/11/sys/i386/include/ppireg.h
>   stable/11/sys/i386/include/proc.h
>   stable/11/sys/i386/include/profile.h
>   stable/11/sys/i386/include/reloc.h
>   stable/11/sys/i386/include/runq.h
>   stable/11/sys/i386/include/segments.h
>   stable/11/sys/i386/include/sf_buf.h
>   stable/11/sys/i386/include/sigframe.h
>   stable/11/sys/i386/include/signal.h
>   stable/11/sys/i386/include/smapi.h
>   stable/11/sys/i386/include/timerreg.h
>   stable/11/sys/i386/include/tss.h
>   stable/11/sys/i386/include/ucontext.h
>   stable/11/sys/i386/include/varargs.h
>   stable/11/sys/i386/include/vm.h
>   stable/11/sys/i386/include/vm86.h
>   stable/11/sys/i386/include/vmparam.h
>   stable/11/sys/i386/isa/ccbque.h
>   stable/11/sys/i386/isa/elink.c
>   stable/11/sys/i386/isa/elink.h
>   stable/11/sys/i386/isa/pmtimer.c
>   stable/11/sys/i386/isa/prof_machdep.c
>   stable/11/sys/i386/linux/imgact_linux.c
>   stable/11/sys/i386/linux/linux.h
>   stable/11/sys/i386/linux/linux_dummy.c
>   stable/11/sys/i386/linux/linux_machdep.c
>   stable/11/sys/i386/linux/linux_ptrace.c
>   stable/11/sys/i386/linux/linux_sysvec.c
>   stable/11/sys/i386/pci/pci_cfgreg.c
>   stable/11/sys/i386/pci/pci_pir.c
>   stable/11/sys/isa/isareg.h
>   stable/11/sys/isa/pnpreg.h
>   stable/11/sys/isa/rtc.h
>   stable/11/sys/kern/init_main.c
>   stable/11/sys/kern/kern_acct.c
>   stable/11/sys/kern/kern_clock.c
>   stable/11/sys/kern/kern_cons.c
>   stable/11/sys/kern/kern_descrip.c
>   stable/11/sys/kern/kern_exit.c
>   stable/11/sys/kern/kern_fork.c
>   stable/11/sys/kern/kern_ktrace.c
>   stable/11/sys/kern/kern_lockf.c
>   stable/11/sys/kern/kern_malloc.c
>   stable/11/sys/kern/kern_mib.c
>   stable/11/sys/kern/kern_proc.c
>   stable/11/sys/kern/kern_prot.c
>   stable/11/sys/kern/kern_resource.c
>   stable/11/sys/kern/kern_rmlock.c
>   stable/11/sys/kern/kern_shutdown.c
>   stable/11/sys/kern/kern_sig.c
>   stable/11/sys/kern/kern_synch.c
>   stable/11/sys/kern/kern_sysctl.c
>   stable/11/sys/kern/kern_time.c
>   stable/11/sys/kern/kern_timeout.c
>   stable/11/sys/kern/kern_xxx.c
>   stable/11/sys/kern/ksched.c
>   stable/11/sys/kern/p1003_1b.c
>   stable/11/sys/kern/posix4_mib.c
>   stable/11/sys/kern/sched_4bsd.c
>   stable/11/sys/kern/subr_autoconf.c
>   stable/11/sys/kern/subr_blist.c
>   stable/11/sys/kern/subr_clock.c
>   stable/11/sys/kern/subr_hash.c
>   stable/11/sys/kern/subr_log.c
>   stable/11/sys/kern/subr_mchain.c
>   stable/11/sys/kern/subr_param.c
>   stable/11/sys/kern/subr_pcpu.c
>   stable/11/sys/kern/subr_prf.c
>   stable/11/sys/kern/subr_prof.c
>   stable/11/sys/kern/subr_rtc.c
>   stable/11/sys/kern/subr_scanf.c
>   stable/11/sys/kern/subr_sglist.c
>   stable/11/sys/kern/subr_syscall.c
>   stable/11/sys/kern/subr_trap.c
>   stable/11/sys/kern/subr_uio.c
>   stable/11/sys/kern/sys_generic.c
>   stable/11/sys/kern/sys_socket.c
>   stable/11/sys/kern/tty_compat.c
>   stable/11/sys/kern/tty_info.c
>   stable/11/sys/kern/uipc_domain.c
>   stable/11/sys/kern/uipc_mbuf.c
>   stable/11/sys/kern/uipc_mbuf2.c
>   stable/11/sys/kern/uipc_sockbuf.c
>   stable/11/sys/kern/uipc_socket.c
>   stable/11/sys/kern/uipc_syscalls.c
>   stable/11/sys/kern/uipc_usrreq.c
>   stable/11/sys/kern/vfs_cache.c
>   stable/11/sys/kern/vfs_cluster.c
>   stable/11/sys/kern/vfs_default.c
>   stable/11/sys/kern/vfs_export.c
>   stable/11/sys/kern/vfs_init.c
>   stable/11/sys/kern/vfs_lookup.c
>   stable/11/sys/kern/vfs_mount.c
>   stable/11/sys/kern/vfs_mountroot.c
>   stable/11/sys/kern/vfs_subr.c
>   stable/11/sys/kern/vfs_syscalls.c
>   stable/11/sys/kern/vfs_vnops.c
>   stable/11/sys/libkern/arm/muldi3.c
>   stable/11/sys/libkern/ashldi3.c
>   stable/11/sys/libkern/ashrdi3.c
>   stable/11/sys/libkern/bcmp.c
>   stable/11/sys/libkern/bsearch.c
>   stable/11/sys/libkern/cmpdi2.c
>   stable/11/sys/libkern/divdi3.c
>   stable/11/sys/libkern/ffs.c
>   stable/11/sys/libkern/ffsl.c
>   stable/11/sys/libkern/fls.c
>   stable/11/sys/libkern/flsl.c
>   stable/11/sys/libkern/flsll.c
>   stable/11/sys/libkern/fnmatch.c
>   stable/11/sys/libkern/lshrdi3.c
>   stable/11/sys/libkern/mcount.c
>   stable/11/sys/libkern/memchr.c
>   stable/11/sys/libkern/memcmp.c
>   stable/11/sys/libkern/moddi3.c
>   stable/11/sys/libkern/qdivrem.c
>   stable/11/sys/libkern/qsort.c
>   stable/11/sys/libkern/quad.h
>   stable/11/sys/libkern/random.c
>   stable/11/sys/libkern/scanc.c
>   stable/11/sys/libkern/strcasecmp.c
>   stable/11/sys/libkern/strcat.c
>   stable/11/sys/libkern/strchr.c
>   stable/11/sys/libkern/strcmp.c
>   stable/11/sys/libkern/strcpy.c
>   stable/11/sys/libkern/strncmp.c
>   stable/11/sys/libkern/strncpy.c
>   stable/11/sys/libkern/strrchr.c
>   stable/11/sys/libkern/strsep.c
>   stable/11/sys/libkern/strstr.c
>   stable/11/sys/libkern/strtol.c
>   stable/11/sys/libkern/strtoq.c
>   stable/11/sys/libkern/strtoul.c
>   stable/11/sys/libkern/strtouq.c
>   stable/11/sys/libkern/ucmpdi2.c
>   stable/11/sys/libkern/udivdi3.c
>   stable/11/sys/libkern/umoddi3.c
>   stable/11/sys/mips/adm5120/adm5120_machdep.c
>   stable/11/sys/mips/adm5120/adm5120reg.h
>   stable/11/sys/mips/adm5120/admpci.c
>   stable/11/sys/mips/adm5120/console.c
>   stable/11/sys/mips/adm5120/if_admsw.c
>   stable/11/sys/mips/adm5120/if_admswreg.h
>   stable/11/sys/mips/adm5120/if_admswvar.h
>   stable/11/sys/mips/adm5120/obio.c
>   stable/11/sys/mips/adm5120/obiovar.h
>   stable/11/sys/mips/adm5120/uart_bus_adm5120.c
>   stable/11/sys/mips/adm5120/uart_cpu_adm5120.c
>   stable/11/sys/mips/adm5120/uart_dev_adm5120.c
>   stable/11/sys/mips/adm5120/uart_dev_adm5120.h
>   stable/11/sys/mips/alchemy/alchemy_machdep.c
>   stable/11/sys/mips/alchemy/aureg.h
>   stable/11/sys/mips/alchemy/obio.c
>   stable/11/sys/mips/alchemy/uart_bus_alchemy.c
>   stable/11/sys/mips/alchemy/uart_cpu_alchemy.c
>   stable/11/sys/mips/atheros/apb.c
>   stable/11/sys/mips/atheros/apbvar.h
>   stable/11/sys/mips/atheros/ar71xx_bus_space_reversed.c
>   stable/11/sys/mips/atheros/ar71xx_bus_space_reversed.h
>   stable/11/sys/mips/atheros/ar71xx_chip.c
>   stable/11/sys/mips/atheros/ar71xx_chip.h
>   stable/11/sys/mips/atheros/ar71xx_cpudef.h
>   stable/11/sys/mips/atheros/ar71xx_ehci.c
>   stable/11/sys/mips/atheros/ar71xx_fixup.c
>   stable/11/sys/mips/atheros/ar71xx_fixup.h
>   stable/11/sys/mips/atheros/ar71xx_gpio.c
>   stable/11/sys/mips/atheros/ar71xx_gpiovar.h
>   stable/11/sys/mips/atheros/ar71xx_machdep.c
>   stable/11/sys/mips/atheros/ar71xx_ohci.c
>   stable/11/sys/mips/atheros/ar71xx_pci.c
>   stable/11/sys/mips/atheros/ar71xx_pci_bus_space.c
>   stable/11/sys/mips/atheros/ar71xx_pci_bus_space.h
>   stable/11/sys/mips/atheros/ar71xx_setup.c
>   stable/11/sys/mips/atheros/ar71xx_setup.h
>   stable/11/sys/mips/atheros/ar71xx_spi.c
>   stable/11/sys/mips/atheros/ar71xx_wdog.c
>   stable/11/sys/mips/atheros/ar71xxreg.h
>   stable/11/sys/mips/atheros/ar724x_chip.c
>   stable/11/sys/mips/atheros/ar724x_chip.h
>   stable/11/sys/mips/atheros/ar724x_pci.c
>   stable/11/sys/mips/atheros/ar724xreg.h
>   stable/11/sys/mips/atheros/ar91xx_chip.c
>   stable/11/sys/mips/atheros/ar91xx_chip.h
>   stable/11/sys/mips/atheros/ar91xxreg.h
>   stable/11/sys/mips/atheros/ar933x_chip.c
>   stable/11/sys/mips/atheros/ar933x_chip.h
>   stable/11/sys/mips/atheros/ar933x_uart.h
>   stable/11/sys/mips/atheros/ar933xreg.h
>   stable/11/sys/mips/atheros/ar934x_chip.c
>   stable/11/sys/mips/atheros/ar934x_chip.h
>   stable/11/sys/mips/atheros/ar934xreg.h
>   stable/11/sys/mips/atheros/if_arge.c
>   stable/11/sys/mips/atheros/if_argevar.h
>   stable/11/sys/mips/atheros/pcf2123_rtc.c
>   stable/11/sys/mips/atheros/pcf2123reg.h
>   stable/11/sys/mips/atheros/uart_bus_ar71xx.c
>   stable/11/sys/mips/atheros/uart_bus_ar933x.c
>   stable/11/sys/mips/atheros/uart_cpu_ar71xx.c
>   stable/11/sys/mips/atheros/uart_cpu_ar933x.c
>   stable/11/sys/mips/atheros/uart_dev_ar933x.c
>   stable/11/sys/mips/atheros/uart_dev_ar933x.h
>   stable/11/sys/mips/beri/beri_machdep.c
>   stable/11/sys/mips/beri/beri_pic.c
>   stable/11/sys/mips/cavium/ciu.c
>   stable/11/sys/mips/cavium/cryptocteon/cavium_crypto.c
>   stable/11/sys/mips/cavium/cvmx_config.h
>   stable/11/sys/mips/cavium/if_octm.c
>   stable/11/sys/mips/cavium/obio.c
>   stable/11/sys/mips/cavium/obiovar.h
>   stable/11/sys/mips/cavium/octe/cavium-ethernet.h
>   stable/11/sys/mips/cavium/octe/ethernet-common.c
>   stable/11/sys/mips/cavium/octe/ethernet-common.h
>   stable/11/sys/mips/cavium/octe/ethernet-defines.h
>   stable/11/sys/mips/cavium/octe/ethernet-headers.h
>   stable/11/sys/mips/cavium/octe/ethernet-mdio.c
>   stable/11/sys/mips/cavium/octe/ethernet-mdio.h
>   stable/11/sys/mips/cavium/octe/ethernet-mem.c
>   stable/11/sys/mips/cavium/octe/ethernet-mem.h
>   stable/11/sys/mips/cavium/octe/ethernet-mv88e61xx.c
>   stable/11/sys/mips/cavium/octe/ethernet-mv88e61xx.h
>   stable/11/sys/mips/cavium/octe/ethernet-rgmii.c
>   stable/11/sys/mips/cavium/octe/ethernet-rx.c
>   stable/11/sys/mips/cavium/octe/ethernet-rx.h
>   stable/11/sys/mips/cavium/octe/ethernet-sgmii.c
>   stable/11/sys/mips/cavium/octe/ethernet-spi.c
>   stable/11/sys/mips/cavium/octe/ethernet-tx.c
>   stable/11/sys/mips/cavium/octe/ethernet-tx.h
>   stable/11/sys/mips/cavium/octe/ethernet-util.h
>   stable/11/sys/mips/cavium/octe/ethernet-xaui.c
>   stable/11/sys/mips/cavium/octe/ethernet.c
>   stable/11/sys/mips/cavium/octe/mv88e61xxphy.c
>   stable/11/sys/mips/cavium/octe/mv88e61xxphyreg.h
>   stable/11/sys/mips/cavium/octe/octe.c
>   stable/11/sys/mips/cavium/octe/octebus.c
>   stable/11/sys/mips/cavium/octe/octebusvar.h
>   stable/11/sys/mips/cavium/octe/wrapper-cvmx-includes.h
>   stable/11/sys/mips/cavium/octeon_cop2.h
>   stable/11/sys/mips/cavium/octeon_ds1337.c
>   stable/11/sys/mips/cavium/octeon_ebt3000_cf.c
>   stable/11/sys/mips/cavium/octeon_gpio.c
>   stable/11/sys/mips/cavium/octeon_gpiovar.h
>   stable/11/sys/mips/cavium/octeon_irq.h
>   stable/11/sys/mips/cavium/octeon_machdep.c
>   stable/11/sys/mips/cavium/octeon_mp.c
>   stable/11/sys/mips/cavium/octeon_pci_console.c
>   stable/11/sys/mips/cavium/octeon_pcmap_regs.h
>   stable/11/sys/mips/cavium/octeon_pmc.c
>   stable/11/sys/mips/cavium/octeon_rnd.c
>   stable/11/sys/mips/cavium/octeon_rtc.c
>   stable/11/sys/mips/cavium/octeon_wdog.c
>   stable/11/sys/mips/cavium/octopci.c
>   stable/11/sys/mips/cavium/octopci_bus_space.c
>   stable/11/sys/mips/cavium/octopcireg.h
>   stable/11/sys/mips/cavium/octopcivar.h
>   stable/11/sys/mips/cavium/uart_bus_octeonusart.c
>   stable/11/sys/mips/cavium/uart_cpu_octeonusart.c
>   stable/11/sys/mips/cavium/uart_dev_oct16550.c
>   stable/11/sys/mips/cavium/usb/octusb.c
>   stable/11/sys/mips/cavium/usb/octusb.h
>   stable/11/sys/mips/cavium/usb/octusb_octeon.c
>   stable/11/sys/mips/gxemul/gxemul_machdep.c
>   stable/11/sys/mips/gxemul/mpreg.h
>   stable/11/sys/mips/idt/idt_machdep.c
>   stable/11/sys/mips/idt/idtpci.c
>   stable/11/sys/mips/idt/idtreg.h
>   stable/11/sys/mips/idt/if_kr.c
>   stable/11/sys/mips/idt/if_krreg.h
>   stable/11/sys/mips/idt/obio.c
>   stable/11/sys/mips/idt/obiovar.h
>   stable/11/sys/mips/idt/uart_bus_rc32434.c
>   stable/11/sys/mips/idt/uart_cpu_rc32434.c
>   stable/11/sys/mips/include/_align.h
>   stable/11/sys/mips/include/_bus.h
>   stable/11/sys/mips/include/_inttypes.h
>   stable/11/sys/mips/include/_limits.h
>   stable/11/sys/mips/include/_stdint.h
>   stable/11/sys/mips/include/_types.h
>   stable/11/sys/mips/include/asm.h
>   stable/11/sys/mips/include/atomic.h
>   stable/11/sys/mips/include/bootinfo.h
>   stable/11/sys/mips/include/bus.h
>   stable/11/sys/mips/include/bus_dma.h
>   stable/11/sys/mips/include/cache.h
>   stable/11/sys/mips/include/cache_mipsNN.h
>   stable/11/sys/mips/include/cache_r4k.h
>   stable/11/sys/mips/include/counter.h
>   stable/11/sys/mips/include/cpu.h
>   stable/11/sys/mips/include/cpufunc.h
>   stable/11/sys/mips/include/cpuinfo.h
>   stable/11/sys/mips/include/cpuregs.h
>   stable/11/sys/mips/include/db_machdep.h
>   stable/11/sys/mips/include/elf.h
>   stable/11/sys/mips/include/endian.h
>   stable/11/sys/mips/include/exec.h
>   stable/11/sys/mips/include/fdt.h
>   stable/11/sys/mips/include/float.h
>   stable/11/sys/mips/include/floatingpoint.h
>   stable/11/sys/mips/include/fls64.h
>   stable/11/sys/mips/include/frame.h
>   stable/11/sys/mips/include/gdb_machdep.h
>   stable/11/sys/mips/include/hwfunc.h
>   stable/11/sys/mips/include/ieee.h
>   stable/11/sys/mips/include/in_cksum.h
>   stable/11/sys/mips/include/intr_machdep.h
>   stable/11/sys/mips/include/kdb.h
>   stable/11/sys/mips/include/limits.h
>   stable/11/sys/mips/include/md_var.h
>   stable/11/sys/mips/include/memdev.h
>   stable/11/sys/mips/include/metadata.h
>   stable/11/sys/mips/include/minidump.h
>   stable/11/sys/mips/include/mips_opcode.h
>   stable/11/sys/mips/include/octeon_cop2.h
>   stable/11/sys/mips/include/ofw_machdep.h
>   stable/11/sys/mips/include/param.h
>   stable/11/sys/mips/include/pcb.h
>   stable/11/sys/mips/include/pcpu.h
>   stable/11/sys/mips/include/pmap.h
>   stable/11/sys/mips/include/proc.h
>   stable/11/sys/mips/include/profile.h
>   stable/11/sys/mips/include/pte.h
>   stable/11/sys/mips/include/ptrace.h
>   stable/11/sys/mips/include/reg.h
>   stable/11/sys/mips/include/regdef.h
>   stable/11/sys/mips/include/regnum.h
>   stable/11/sys/mips/include/reloc.h
>   stable/11/sys/mips/include/runq.h
>   stable/11/sys/mips/include/sc_machdep.h
>   stable/11/sys/mips/include/sf_buf.h
>   stable/11/sys/mips/include/sigframe.h
>   stable/11/sys/mips/include/signal.h
>   stable/11/sys/mips/include/sysarch.h
>   stable/11/sys/mips/include/tlb.h
>   stable/11/sys/mips/include/tls.h
>   stable/11/sys/mips/include/trap.h
>   stable/11/sys/mips/include/ucontext.h
>   stable/11/sys/mips/include/varargs.h
>   stable/11/sys/mips/include/vdso.h
>   stable/11/sys/mips/include/vm.h
>   stable/11/sys/mips/include/vmparam.h
>   stable/11/sys/mips/malta/gt.c
>   stable/11/sys/mips/malta/gt_pci.c
>   stable/11/sys/mips/malta/gt_pci_bus_space.c
>   stable/11/sys/mips/malta/gt_pci_bus_space.h
>   stable/11/sys/mips/malta/gtreg.h
>   stable/11/sys/mips/malta/gtvar.h
>   stable/11/sys/mips/malta/malta_machdep.c
>   stable/11/sys/mips/malta/maltareg.h
>   stable/11/sys/mips/malta/obio.c
>   stable/11/sys/mips/malta/obiovar.h
>   stable/11/sys/mips/malta/uart_bus_maltausart.c
>   stable/11/sys/mips/malta/uart_cpu_maltausart.c
>   stable/11/sys/mips/malta/yamon.c
>   stable/11/sys/mips/malta/yamon.h
>   stable/11/sys/mips/mips/autoconf.c
>   stable/11/sys/mips/mips/bus_space_generic.c
>   stable/11/sys/mips/mips/busdma_machdep.c
>   stable/11/sys/mips/mips/cache.c
>   stable/11/sys/mips/mips/cache_mipsNN.c
>   stable/11/sys/mips/mips/cpu.c
>   stable/11/sys/mips/mips/db_disasm.c
>   stable/11/sys/mips/mips/db_interface.c
>   stable/11/sys/mips/mips/db_trace.c
>   stable/11/sys/mips/mips/dump_machdep.c
>   stable/11/sys/mips/mips/elf_machdep.c
>   stable/11/sys/mips/mips/elf_trampoline.c
>   stable/11/sys/mips/mips/freebsd32_machdep.c
>   stable/11/sys/mips/mips/gdb_machdep.c
>   stable/11/sys/mips/mips/genassym.c
>   stable/11/sys/mips/mips/in_cksum.c
>   stable/11/sys/mips/mips/intr_machdep.c
>   stable/11/sys/mips/mips/libkern_machdep.c
>   stable/11/sys/mips/mips/machdep.c
>   stable/11/sys/mips/mips/mem.c
>   stable/11/sys/mips/mips/minidump_machdep.c
>   stable/11/sys/mips/mips/mp_machdep.c
>   stable/11/sys/mips/mips/octeon_cop2.c
>   stable/11/sys/mips/mips/pm_machdep.c
>   stable/11/sys/mips/mips/pmap.c
>   stable/11/sys/mips/mips/ptrace_machdep.c
>   stable/11/sys/mips/mips/sc_machdep.c
>   stable/11/sys/mips/mips/stack_machdep.c
>   stable/11/sys/mips/mips/stdatomic.c
>   stable/11/sys/mips/mips/sys_machdep.c
>   stable/11/sys/mips/mips/tick.c
>   stable/11/sys/mips/mips/tlb.c
>   stable/11/sys/mips/mips/trap.c
>   stable/11/sys/mips/mips/uio_machdep.c
>   stable/11/sys/mips/mips/uma_machdep.c
>   stable/11/sys/mips/mips/vm_machdep.c
>   stable/11/sys/mips/nlm/board.c
>   stable/11/sys/mips/nlm/board.h
>   stable/11/sys/mips/nlm/board_cpld.c
>   stable/11/sys/mips/nlm/board_eeprom.c
>   stable/11/sys/mips/nlm/bus_space_rmi.c
>   stable/11/sys/mips/nlm/bus_space_rmi_pci.c
>   stable/11/sys/mips/nlm/clock.h
>   stable/11/sys/mips/nlm/cms.c
>   stable/11/sys/mips/nlm/dev/net/mdio.c
>   stable/11/sys/mips/nlm/dev/net/nae.c
>   stable/11/sys/mips/nlm/dev/net/sgmii.c
>   stable/11/sys/mips/nlm/dev/net/ucore/ucore.h
>   stable/11/sys/mips/nlm/dev/net/ucore/ucore_app.c
>   stable/11/sys/mips/nlm/dev/net/xaui.c
>   stable/11/sys/mips/nlm/dev/net/xlpge.c
>   stable/11/sys/mips/nlm/dev/net/xlpge.h
>   stable/11/sys/mips/nlm/dev/sec/nlmrsa.c
>   stable/11/sys/mips/nlm/dev/sec/nlmrsalib.h
>   stable/11/sys/mips/nlm/dev/sec/nlmsec.c
>   stable/11/sys/mips/nlm/dev/sec/nlmseclib.c
>   stable/11/sys/mips/nlm/dev/sec/nlmseclib.h
>   stable/11/sys/mips/nlm/dev/sec/rsa_ucode.h
>   stable/11/sys/mips/nlm/hal/bridge.h
>   stable/11/sys/mips/nlm/hal/cop2.h
>   stable/11/sys/mips/nlm/hal/cpucontrol.h
>   stable/11/sys/mips/nlm/hal/fmn.c
>   stable/11/sys/mips/nlm/hal/fmn.h
>   stable/11/sys/mips/nlm/hal/gbu.h
>   stable/11/sys/mips/nlm/hal/haldefs.h
>   stable/11/sys/mips/nlm/hal/interlaken.h
>   stable/11/sys/mips/nlm/hal/iomap.h
>   stable/11/sys/mips/nlm/hal/mdio.h
>   stable/11/sys/mips/nlm/hal/mips-extns.h
>   stable/11/sys/mips/nlm/hal/mmu.h
>   stable/11/sys/mips/nlm/hal/nae.h
>   stable/11/sys/mips/nlm/hal/nlm_hal.c
>   stable/11/sys/mips/nlm/hal/nlmsaelib.h
>   stable/11/sys/mips/nlm/hal/pcibus.h
>   stable/11/sys/mips/nlm/hal/pic.h
>   stable/11/sys/mips/nlm/hal/poe.h
>   stable/11/sys/mips/nlm/hal/sgmii.h
>   stable/11/sys/mips/nlm/hal/sys.h
>   stable/11/sys/mips/nlm/hal/uart.h
>   stable/11/sys/mips/nlm/hal/ucore_loader.h
>   stable/11/sys/mips/nlm/hal/usb.h
>   stable/11/sys/mips/nlm/hal/xaui.h
>   stable/11/sys/mips/nlm/interrupt.h
>   stable/11/sys/mips/nlm/intr_machdep.c
>   stable/11/sys/mips/nlm/msgring.h
>   stable/11/sys/mips/nlm/tick.c
>   stable/11/sys/mips/nlm/uart_cpu_xlp.c
>   stable/11/sys/mips/nlm/usb_init.c
>   stable/11/sys/mips/nlm/xlp.h
>   stable/11/sys/mips/nlm/xlp_machdep.c
>   stable/11/sys/mips/nlm/xlp_pci.c
>   stable/11/sys/mips/rmi/board.c
>   stable/11/sys/mips/rmi/board.h
>   stable/11/sys/mips/rmi/bus_space_rmi.c
>   stable/11/sys/mips/rmi/bus_space_rmi_pci.c
>   stable/11/sys/mips/rmi/dev/iic/at24co2n.c
>   stable/11/sys/mips/rmi/dev/iic/max6657.c
>   stable/11/sys/mips/rmi/dev/nlge/if_nlge.c
>   stable/11/sys/mips/rmi/dev/nlge/if_nlge.h
>   stable/11/sys/mips/rmi/dev/sec/desc.h
>   stable/11/sys/mips/rmi/dev/sec/rmilib.c
>   stable/11/sys/mips/rmi/dev/sec/rmilib.h
>   stable/11/sys/mips/rmi/dev/sec/rmisec.c
>   stable/11/sys/mips/rmi/dev/xlr/atx_cpld.h
>   stable/11/sys/mips/rmi/dev/xlr/debug.h
>   stable/11/sys/mips/rmi/dev/xlr/xgmac_mdio.h
>   stable/11/sys/mips/rmi/fmn.c
>   stable/11/sys/mips/rmi/interrupt.h
>   stable/11/sys/mips/rmi/intr_machdep.c
>   stable/11/sys/mips/rmi/iodi.c
>   stable/11/sys/mips/rmi/iomap.h
>   stable/11/sys/mips/rmi/msgring.c
>   stable/11/sys/mips/rmi/msgring.cfg
>   stable/11/sys/mips/rmi/msgring.h
>   stable/11/sys/mips/rmi/pcibus.h
>   stable/11/sys/mips/rmi/pic.h
>   stable/11/sys/mips/rmi/rmi_boot_info.h
>   stable/11/sys/mips/rmi/rmi_mips_exts.h
>   stable/11/sys/mips/rmi/tick.c
>   stable/11/sys/mips/rmi/uart_bus_xlr_iodi.c
>   stable/11/sys/mips/rmi/uart_cpu_mips_xlr.c
>   stable/11/sys/mips/rmi/xlr_i2c.c
>   stable/11/sys/mips/rmi/xlr_machdep.c
>   stable/11/sys/mips/rmi/xlr_pci.c
>   stable/11/sys/mips/rmi/xlr_pcmcia.c
>   stable/11/sys/mips/rmi/xls_ehci.c
>   stable/11/sys/mips/rt305x/obio.c
>   stable/11/sys/mips/rt305x/obiovar.h
>   stable/11/sys/mips/rt305x/rt305x_dotg.c
>   stable/11/sys/mips/rt305x/rt305x_gpio.c
>   stable/11/sys/mips/rt305x/rt305x_gpio.h
>   stable/11/sys/mips/rt305x/rt305x_gpiovar.h
>   stable/11/sys/mips/rt305x/rt305x_ic.c
>   stable/11/sys/mips/rt305x/rt305x_icvar.h
>   stable/11/sys/mips/rt305x/rt305x_machdep.c
>   stable/11/sys/mips/rt305x/rt305x_sysctl.c
>   stable/11/sys/mips/rt305x/rt305x_sysctlvar.h
>   stable/11/sys/mips/rt305x/rt305xreg.h
>   stable/11/sys/mips/rt305x/rt_swreg.h
>   stable/11/sys/mips/rt305x/uart_bus_rt305x.c
>   stable/11/sys/mips/rt305x/uart_cpu_rt305x.c
>   stable/11/sys/mips/rt305x/uart_dev_rt305x.c
>   stable/11/sys/mips/rt305x/uart_dev_rt305x.h
>   stable/11/sys/mips/sibyte/ata_zbbus.c
>   stable/11/sys/mips/sibyte/sb_bus_space.h
>   stable/11/sys/mips/sibyte/sb_machdep.c
>   stable/11/sys/mips/sibyte/sb_scd.c
>   stable/11/sys/mips/sibyte/sb_scd.h
>   stable/11/sys/mips/sibyte/sb_zbbus.c
>   stable/11/sys/mips/sibyte/sb_zbpci.c
>   stable/11/sys/net/bpf.c
>   stable/11/sys/net/bpf.h
>   stable/11/sys/net/bpf_buffer.c
>   stable/11/sys/net/bpf_filter.c
>   stable/11/sys/net/bpf_jitter.c
>   stable/11/sys/net/bpf_jitter.h
>   stable/11/sys/net/bpfdesc.h
>   stable/11/sys/net/fddi.h
>   stable/11/sys/net/if.c
>   stable/11/sys/net/if.h
>   stable/11/sys/net/if_arc.h
>   stable/11/sys/net/if_arcsubr.c
>   stable/11/sys/net/if_arp.h
>   stable/11/sys/net/if_clone.c
>   stable/11/sys/net/if_clone.h
>   stable/11/sys/net/if_disc.c
>   stable/11/sys/net/if_dl.h
>   stable/11/sys/net/if_edsc.c
>   stable/11/sys/net/if_ethersubr.c
>   stable/11/sys/net/if_fddisubr.c
>   stable/11/sys/net/if_fwsubr.c
>   stable/11/sys/net/if_gif.c
>   stable/11/sys/net/if_gif.h
>   stable/11/sys/net/if_llc.h
>   stable/11/sys/net/if_loop.c
>   stable/11/sys/net/if_stf.c
>   stable/11/sys/net/if_types.h
>   stable/11/sys/net/if_var.h
>   stable/11/sys/net/ifq.h
>   stable/11/sys/net/pfkeyv2.h
>   stable/11/sys/net/radix.c
>   stable/11/sys/net/radix.h
>   stable/11/sys/net/radix_mpath.c
>   stable/11/sys/net/radix_mpath.h
>   stable/11/sys/net/raw_cb.c
>   stable/11/sys/net/raw_cb.h
>   stable/11/sys/net/raw_usrreq.c
>   stable/11/sys/net/route.c
>   stable/11/sys/net/route.h
>   stable/11/sys/net/rtsock.c
>   stable/11/sys/net/slcompress.c
>   stable/11/sys/net/slcompress.h
>   stable/11/sys/netinet/icmp6.h
>   stable/11/sys/netinet/icmp_var.h
>   stable/11/sys/netinet/if_ether.c
>   stable/11/sys/netinet/if_ether.h
>   stable/11/sys/netinet/igmp.c
>   stable/11/sys/netinet/igmp.h
>   stable/11/sys/netinet/igmp_var.h
>   stable/11/sys/netinet/in.c
>   stable/11/sys/netinet/in.h
>   stable/11/sys/netinet/in_cksum.c
>   stable/11/sys/netinet/in_gif.c
>   stable/11/sys/netinet/in_pcb.c
>   stable/11/sys/netinet/in_pcb.h
>   stable/11/sys/netinet/in_proto.c
>   stable/11/sys/netinet/in_systm.h
>   stable/11/sys/netinet/in_var.h
>   stable/11/sys/netinet/ip.h
>   stable/11/sys/netinet/ip6.h
>   stable/11/sys/netinet/ip_divert.c
>   stable/11/sys/netinet/ip_ecn.c
>   stable/11/sys/netinet/ip_ecn.h
>   stable/11/sys/netinet/ip_encap.c
>   stable/11/sys/netinet/ip_encap.h
>   stable/11/sys/netinet/ip_icmp.c
>   stable/11/sys/netinet/ip_icmp.h
>   stable/11/sys/netinet/ip_input.c
>   stable/11/sys/netinet/ip_mroute.c
>   stable/11/sys/netinet/ip_mroute.h
>   stable/11/sys/netinet/ip_options.c
>   stable/11/sys/netinet/ip_options.h
>   stable/11/sys/netinet/ip_output.c
>   stable/11/sys/netinet/ip_var.h
>   stable/11/sys/netinet/pim.h
>   stable/11/sys/netinet/pim_var.h
>   stable/11/sys/netinet/raw_ip.c
>   stable/11/sys/netinet/sctp.h
>   stable/11/sys/netinet/sctp_asconf.c
>   stable/11/sys/netinet/sctp_asconf.h
>   stable/11/sys/netinet/sctp_auth.c
>   stable/11/sys/netinet/sctp_auth.h
>   stable/11/sys/netinet/sctp_bsd_addr.c
>   stable/11/sys/netinet/sctp_bsd_addr.h
>   stable/11/sys/netinet/sctp_cc_functions.c
>   stable/11/sys/netinet/sctp_constants.h
>   stable/11/sys/netinet/sctp_crc32.c
>   stable/11/sys/netinet/sctp_crc32.h
>   stable/11/sys/netinet/sctp_dtrace_declare.h
>   stable/11/sys/netinet/sctp_dtrace_define.h
>   stable/11/sys/netinet/sctp_header.h
>   stable/11/sys/netinet/sctp_indata.c
>   stable/11/sys/netinet/sctp_indata.h
>   stable/11/sys/netinet/sctp_input.c
>   stable/11/sys/netinet/sctp_input.h
>   stable/11/sys/netinet/sctp_lock_bsd.h
>   stable/11/sys/netinet/sctp_os.h
>   stable/11/sys/netinet/sctp_os_bsd.h
>   stable/11/sys/netinet/sctp_output.c
>   stable/11/sys/netinet/sctp_output.h
>   stable/11/sys/netinet/sctp_pcb.c
>   stable/11/sys/netinet/sctp_pcb.h
>   stable/11/sys/netinet/sctp_peeloff.c
>   stable/11/sys/netinet/sctp_peeloff.h
>   stable/11/sys/netinet/sctp_structs.h
>   stable/11/sys/netinet/sctp_sysctl.c
>   stable/11/sys/netinet/sctp_sysctl.h
>   stable/11/sys/netinet/sctp_timer.c
>   stable/11/sys/netinet/sctp_timer.h
>   stable/11/sys/netinet/sctp_uio.h
>   stable/11/sys/netinet/sctp_usrreq.c
>   stable/11/sys/netinet/sctp_var.h
>   stable/11/sys/netinet/sctputil.c
>   stable/11/sys/netinet/sctputil.h
>   stable/11/sys/netinet/tcp.h
>   stable/11/sys/netinet/tcp_debug.c
>   stable/11/sys/netinet/tcp_debug.h
>   stable/11/sys/netinet/tcp_fsm.h
>   stable/11/sys/netinet/tcp_input.c
>   stable/11/sys/netinet/tcp_output.c
>   stable/11/sys/netinet/tcp_reass.c
>   stable/11/sys/netinet/tcp_sack.c
>   stable/11/sys/netinet/tcp_seq.h
>   stable/11/sys/netinet/tcp_subr.c
>   stable/11/sys/netinet/tcp_syncache.h
>   stable/11/sys/netinet/tcp_timer.c
>   stable/11/sys/netinet/tcp_timer.h
>   stable/11/sys/netinet/tcp_timewait.c
>   stable/11/sys/netinet/tcp_usrreq.c
>   stable/11/sys/netinet/tcp_var.h
>   stable/11/sys/netinet/tcpip.h
>   stable/11/sys/netinet/udp.h
>   stable/11/sys/netinet/udp_usrreq.c
>   stable/11/sys/netinet/udp_var.h
>   stable/11/sys/netinet6/dest6.c
>   stable/11/sys/netinet6/frag6.c
>   stable/11/sys/netinet6/icmp6.c
>   stable/11/sys/netinet6/in6.c
>   stable/11/sys/netinet6/in6.h
>   stable/11/sys/netinet6/in6_cksum.c
>   stable/11/sys/netinet6/in6_gif.c
>   stable/11/sys/netinet6/in6_ifattach.c
>   stable/11/sys/netinet6/in6_ifattach.h
>   stable/11/sys/netinet6/in6_pcb.c
>   stable/11/sys/netinet6/in6_pcb.h
>   stable/11/sys/netinet6/in6_proto.c
>   stable/11/sys/netinet6/in6_rmx.c
>   stable/11/sys/netinet6/in6_src.c
>   stable/11/sys/netinet6/in6_var.h
>   stable/11/sys/netinet6/ip6_ecn.h
>   stable/11/sys/netinet6/ip6_forward.c
>   stable/11/sys/netinet6/ip6_id.c
>   stable/11/sys/netinet6/ip6_input.c
>   stable/11/sys/netinet6/ip6_mroute.c
>   stable/11/sys/netinet6/ip6_mroute.h
>   stable/11/sys/netinet6/ip6_output.c
>   stable/11/sys/netinet6/ip6_var.h
>   stable/11/sys/netinet6/ip6protosw.h
>   stable/11/sys/netinet6/mld6.c
>   stable/11/sys/netinet6/nd6.c
>   stable/11/sys/netinet6/nd6.h
>   stable/11/sys/netinet6/nd6_nbr.c
>   stable/11/sys/netinet6/nd6_rtr.c
>   stable/11/sys/netinet6/pim6.h
>   stable/11/sys/netinet6/pim6_var.h
>   stable/11/sys/netinet6/raw_ip6.c
>   stable/11/sys/netinet6/raw_ip6.h
>   stable/11/sys/netinet6/route6.c
>   stable/11/sys/netinet6/scope6.c
>   stable/11/sys/netinet6/scope6_var.h
>   stable/11/sys/netinet6/sctp6_usrreq.c
>   stable/11/sys/netinet6/sctp6_var.h
>   stable/11/sys/netinet6/tcp6_var.h
>   stable/11/sys/netinet6/udp6_usrreq.c
>   stable/11/sys/netinet6/udp6_var.h
>   stable/11/sys/netipsec/ah.h
>   stable/11/sys/netipsec/esp.h
>   stable/11/sys/netipsec/ipcomp.h
>   stable/11/sys/netipsec/ipcomp_var.h
>   stable/11/sys/netipsec/ipsec.c
>   stable/11/sys/netipsec/ipsec.h
>   stable/11/sys/netipsec/ipsec6.h
>   stable/11/sys/netipsec/key.c
>   stable/11/sys/netipsec/key.h
>   stable/11/sys/netipsec/key_debug.c
>   stable/11/sys/netipsec/key_debug.h
>   stable/11/sys/netipsec/key_var.h
>   stable/11/sys/netipsec/keydb.h
>   stable/11/sys/netipsec/keysock.c
>   stable/11/sys/netipsec/keysock.h
>   stable/11/sys/netpfil/pf/in4_cksum.c
>   stable/11/sys/netsmb/smb_crypt.c
>   stable/11/sys/nfs/bootp_subr.c
>   stable/11/sys/nfs/krpc_subr.c
>   stable/11/sys/nfs/nfs_common.h
>   stable/11/sys/nfs/nfs_diskless.c
>   stable/11/sys/nfs/nfs_nfssvc.c
>   stable/11/sys/nfs/nfsdiskless.h
>   stable/11/sys/nfs/nfsproto.h
>   stable/11/sys/nfs/nfssvc.h
>   stable/11/sys/nfs/xdr_subs.h
>   stable/11/sys/nfsclient/nfs.h
>   stable/11/sys/nfsclient/nfsargs.h
>   stable/11/sys/nfsclient/nfsm_subs.h
>   stable/11/sys/nfsclient/nfsmount.h
>   stable/11/sys/nfsclient/nfsnode.h
>   stable/11/sys/nfsclient/nfsstats.h
>   stable/11/sys/nfsserver/nfs.h
>   stable/11/sys/nfsserver/nfsm_subs.h
>   stable/11/sys/nfsserver/nfsrvcache.h
>   stable/11/sys/nfsserver/nfsrvstats.h
>   stable/11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
>   stable/11/sys/powerpc/aim/mmu_oea.c
>   stable/11/sys/powerpc/aim/mmu_oea64.c
>   stable/11/sys/powerpc/aim/mmu_oea64.h
>   stable/11/sys/powerpc/aim/moea64_native.c
>   stable/11/sys/powerpc/aim/mp_cpudep.c
>   stable/11/sys/powerpc/aim/slb.c
>   stable/11/sys/powerpc/booke/machdep_e500.c
>   stable/11/sys/powerpc/booke/machdep_ppc4xx.c
>   stable/11/sys/powerpc/booke/mp_cpudep.c
>   stable/11/sys/powerpc/booke/platform_bare.c
>   stable/11/sys/powerpc/booke/pmap.c
>   stable/11/sys/powerpc/cpufreq/dfs.c
>   stable/11/sys/powerpc/cpufreq/pcr.c
>   stable/11/sys/powerpc/cpufreq/pmufreq.c
>   stable/11/sys/powerpc/fpu/fpu_add.c
>   stable/11/sys/powerpc/fpu/fpu_arith.h
>   stable/11/sys/powerpc/fpu/fpu_compare.c
>   stable/11/sys/powerpc/fpu/fpu_div.c
>   stable/11/sys/powerpc/fpu/fpu_emu.c
>   stable/11/sys/powerpc/fpu/fpu_emu.h
>   stable/11/sys/powerpc/fpu/fpu_explode.c
>   stable/11/sys/powerpc/fpu/fpu_extern.h
>   stable/11/sys/powerpc/fpu/fpu_implode.c
>   stable/11/sys/powerpc/fpu/fpu_instr.h
>   stable/11/sys/powerpc/fpu/fpu_mul.c
>   stable/11/sys/powerpc/fpu/fpu_sqrt.c
>   stable/11/sys/powerpc/fpu/fpu_subr.c
>   stable/11/sys/powerpc/include/_align.h
>   stable/11/sys/powerpc/include/_bus.h
>   stable/11/sys/powerpc/include/_inttypes.h
>   stable/11/sys/powerpc/include/_limits.h
>   stable/11/sys/powerpc/include/_stdint.h
>   stable/11/sys/powerpc/include/_types.h
>   stable/11/sys/powerpc/include/altivec.h
>   stable/11/sys/powerpc/include/asm.h
>   stable/11/sys/powerpc/include/atomic.h
>   stable/11/sys/powerpc/include/bat.h
>   stable/11/sys/powerpc/include/bus.h
>   stable/11/sys/powerpc/include/bus_dma.h
>   stable/11/sys/powerpc/include/counter.h
>   stable/11/sys/powerpc/include/cpu.h
>   stable/11/sys/powerpc/include/cpufunc.h
>   stable/11/sys/powerpc/include/dbdma.h
>   stable/11/sys/powerpc/include/elf.h
>   stable/11/sys/powerpc/include/endian.h
>   stable/11/sys/powerpc/include/exec.h
>   stable/11/sys/powerpc/include/float.h
>   stable/11/sys/powerpc/include/floatingpoint.h
>   stable/11/sys/powerpc/include/fpu.h
>   stable/11/sys/powerpc/include/frame.h
>   stable/11/sys/powerpc/include/gdb_machdep.h
>   stable/11/sys/powerpc/include/hid.h
>   stable/11/sys/powerpc/include/ieee.h
>   stable/11/sys/powerpc/include/in_cksum.h
>   stable/11/sys/powerpc/include/intr_machdep.h
>   stable/11/sys/powerpc/include/kdb.h
>   stable/11/sys/powerpc/include/limits.h
>   stable/11/sys/powerpc/include/machdep.h
>   stable/11/sys/powerpc/include/md_var.h
>   stable/11/sys/powerpc/include/memdev.h
>   stable/11/sys/powerpc/include/metadata.h
>   stable/11/sys/powerpc/include/mmuvar.h
>   stable/11/sys/powerpc/include/ofw_machdep.h
>   stable/11/sys/powerpc/include/openpicreg.h
>   stable/11/sys/powerpc/include/openpicvar.h
>   stable/11/sys/powerpc/include/param.h
>   stable/11/sys/powerpc/include/pcb.h
>   stable/11/sys/powerpc/include/pcpu.h
>   stable/11/sys/powerpc/include/pio.h
>   stable/11/sys/powerpc/include/platform.h
>   stable/11/sys/powerpc/include/platformvar.h
>   stable/11/sys/powerpc/include/pmap.h
>   stable/11/sys/powerpc/include/proc.h
>   stable/11/sys/powerpc/include/psl.h
>   stable/11/sys/powerpc/include/pte.h
>   stable/11/sys/powerpc/include/ptrace.h
>   stable/11/sys/powerpc/include/reloc.h
>   stable/11/sys/powerpc/include/rtas.h
>   stable/11/sys/powerpc/include/runq.h
>   stable/11/sys/powerpc/include/sc_machdep.h
>   stable/11/sys/powerpc/include/sigframe.h
>   stable/11/sys/powerpc/include/signal.h
>   stable/11/sys/powerpc/include/slb.h
>   stable/11/sys/powerpc/include/smp.h
>   stable/11/sys/powerpc/include/spr.h
>   stable/11/sys/powerpc/include/sr.h
>   stable/11/sys/powerpc/include/stdarg.h
>   stable/11/sys/powerpc/include/sysarch.h
>   stable/11/sys/powerpc/include/tlb.h
>   stable/11/sys/powerpc/include/trap.h
>   stable/11/sys/powerpc/include/ucontext.h
>   stable/11/sys/powerpc/include/varargs.h
>   stable/11/sys/powerpc/include/vdso.h
>   stable/11/sys/powerpc/include/vm.h
>   stable/11/sys/powerpc/include/vmparam.h
>   stable/11/sys/powerpc/mambo/mambo.c
>   stable/11/sys/powerpc/mambo/mambo_console.c
>   stable/11/sys/powerpc/mambo/mambo_disk.c
>   stable/11/sys/powerpc/mambo/mambocall.h
>   stable/11/sys/powerpc/mpc85xx/atpic.c
>   stable/11/sys/powerpc/mpc85xx/ds1553_bus_fdt.c
>   stable/11/sys/powerpc/mpc85xx/ds1553_core.c
>   stable/11/sys/powerpc/mpc85xx/ds1553_reg.h
>   stable/11/sys/powerpc/mpc85xx/i2c.c
>   stable/11/sys/powerpc/mpc85xx/isa.c
>   stable/11/sys/powerpc/mpc85xx/lbc.c
>   stable/11/sys/powerpc/mpc85xx/lbc.h
>   stable/11/sys/powerpc/mpc85xx/mpc85xx.c
>   stable/11/sys/powerpc/mpc85xx/mpc85xx.h
>   stable/11/sys/powerpc/mpc85xx/pci_mpc85xx.c
>   stable/11/sys/powerpc/mpc85xx/platform_mpc85xx.c
>   stable/11/sys/powerpc/ofw/ofw_machdep.c
>   stable/11/sys/powerpc/ofw/ofw_pcib_pci.c
>   stable/11/sys/powerpc/ofw/ofw_pcibus.c
>   stable/11/sys/powerpc/ofw/ofw_pcibus.h
>   stable/11/sys/powerpc/ofw/ofw_real.c
>   stable/11/sys/powerpc/ofw/ofw_syscons.c
>   stable/11/sys/powerpc/ofw/ofw_syscons.h
>   stable/11/sys/powerpc/ofw/openpic_ofw.c
>   stable/11/sys/powerpc/ofw/rtas.c
>   stable/11/sys/powerpc/powermac/ata_dbdma.c
>   stable/11/sys/powerpc/powermac/ata_dbdma.h
>   stable/11/sys/powerpc/powermac/ata_kauai.c
>   stable/11/sys/powerpc/powermac/ata_macio.c
>   stable/11/sys/powerpc/powermac/atibl.c
>   stable/11/sys/powerpc/powermac/cpcht.c
>   stable/11/sys/powerpc/powermac/cuda.c
>   stable/11/sys/powerpc/powermac/cudavar.h
>   stable/11/sys/powerpc/powermac/dbdma.c
>   stable/11/sys/powerpc/powermac/dbdmavar.h
>   stable/11/sys/powerpc/powermac/fcu.c
>   stable/11/sys/powerpc/powermac/grackle.c
>   stable/11/sys/powerpc/powermac/gracklevar.h
>   stable/11/sys/powerpc/powermac/hrowpic.c
>   stable/11/sys/powerpc/powermac/hrowpicvar.h
>   stable/11/sys/powerpc/powermac/kiic.c
>   stable/11/sys/powerpc/powermac/macgpio.c
>   stable/11/sys/powerpc/powermac/macgpiovar.h
>   stable/11/sys/powerpc/powermac/macio.c
>   stable/11/sys/powerpc/powermac/maciovar.h
>   stable/11/sys/powerpc/powermac/nvbl.c
>   stable/11/sys/powerpc/powermac/platform_powermac.c
>   stable/11/sys/powerpc/powermac/pmu.c
>   stable/11/sys/powerpc/powermac/pmuvar.h
>   stable/11/sys/powerpc/powermac/powermac_thermal.c
>   stable/11/sys/powerpc/powermac/powermac_thermal.h
>   stable/11/sys/powerpc/powermac/pswitch.c
>   stable/11/sys/powerpc/powermac/smu.c
>   stable/11/sys/powerpc/powermac/smusat.c
>   stable/11/sys/powerpc/powermac/uninorth.c
>   stable/11/sys/powerpc/powermac/uninorthpci.c
>   stable/11/sys/powerpc/powermac/uninorthvar.h
>   stable/11/sys/powerpc/powermac/vcoregpio.c
>   stable/11/sys/powerpc/powermac/viareg.h
>   stable/11/sys/powerpc/powerpc/altivec.c
>   stable/11/sys/powerpc/powerpc/autoconf.c
>   stable/11/sys/powerpc/powerpc/bcopy.c
>   stable/11/sys/powerpc/powerpc/bus_machdep.c
>   stable/11/sys/powerpc/powerpc/busdma_machdep.c
>   stable/11/sys/powerpc/powerpc/clock.c
>   stable/11/sys/powerpc/powerpc/copyinout.c
>   stable/11/sys/powerpc/powerpc/copystr.c
>   stable/11/sys/powerpc/powerpc/cpu.c
>   stable/11/sys/powerpc/powerpc/db_hwwatch.c
>   stable/11/sys/powerpc/powerpc/dump_machdep.c
>   stable/11/sys/powerpc/powerpc/elf32_machdep.c
>   stable/11/sys/powerpc/powerpc/elf64_machdep.c
>   stable/11/sys/powerpc/powerpc/exec_machdep.c
>   stable/11/sys/powerpc/powerpc/fpu.c
>   stable/11/sys/powerpc/powerpc/fuswintr.c
>   stable/11/sys/powerpc/powerpc/gdb_machdep.c
>   stable/11/sys/powerpc/powerpc/genassym.c
>   stable/11/sys/powerpc/powerpc/in_cksum.c
>   stable/11/sys/powerpc/powerpc/intr_machdep.c
>   stable/11/sys/powerpc/powerpc/mem.c
>   stable/11/sys/powerpc/powerpc/mp_machdep.c
>   stable/11/sys/powerpc/powerpc/openpic.c
>   stable/11/sys/powerpc/powerpc/platform.c
>   stable/11/sys/powerpc/powerpc/pmap_dispatch.c
>   stable/11/sys/powerpc/powerpc/sc_machdep.c
>   stable/11/sys/powerpc/powerpc/stack_machdep.c
>   stable/11/sys/powerpc/powerpc/suswintr.c
>   stable/11/sys/powerpc/powerpc/syncicache.c
>   stable/11/sys/powerpc/powerpc/sys_machdep.c
>   stable/11/sys/powerpc/powerpc/uio_machdep.c
>   stable/11/sys/powerpc/powerpc/vm_machdep.c
>   stable/11/sys/powerpc/ps3/ehci_ps3.c
>   stable/11/sys/powerpc/ps3/if_glc.c
>   stable/11/sys/powerpc/ps3/if_glcreg.h
>   stable/11/sys/powerpc/ps3/mmu_ps3.c
>   stable/11/sys/powerpc/ps3/ohci_ps3.c
>   stable/11/sys/powerpc/ps3/platform_ps3.c
>   stable/11/sys/powerpc/ps3/ps3_syscons.c
>   stable/11/sys/powerpc/ps3/ps3bus.c
>   stable/11/sys/powerpc/ps3/ps3bus.h
>   stable/11/sys/powerpc/ps3/ps3cdrom.c
>   stable/11/sys/powerpc/ps3/ps3disk.c
>   stable/11/sys/powerpc/ps3/ps3pic.c
>   stable/11/sys/powerpc/pseries/mmu_phyp.c
>   stable/11/sys/powerpc/pseries/phyp-hvcall.h
>   stable/11/sys/powerpc/pseries/phyp_console.c
>   stable/11/sys/powerpc/pseries/phyp_llan.c
>   stable/11/sys/powerpc/pseries/phyp_vscsi.c
>   stable/11/sys/powerpc/pseries/platform_chrp.c
>   stable/11/sys/powerpc/pseries/plpar_iommu.c
>   stable/11/sys/powerpc/pseries/plpar_iommu.h
>   stable/11/sys/powerpc/pseries/plpar_pcibus.c
>   stable/11/sys/powerpc/pseries/rtas_dev.c
>   stable/11/sys/powerpc/pseries/rtas_pci.c
>   stable/11/sys/powerpc/pseries/vdevice.c
>   stable/11/sys/powerpc/pseries/xics.c
>   stable/11/sys/powerpc/psim/ata_iobus.c
>   stable/11/sys/powerpc/psim/iobus.c
>   stable/11/sys/powerpc/psim/iobusvar.h
>   stable/11/sys/powerpc/psim/openpic_iobus.c
>   stable/11/sys/powerpc/psim/uart_iobus.c
>   stable/11/sys/riscv/riscv/in_cksum.c
>   stable/11/sys/riscv/riscv/pmap.c
>   stable/11/sys/rpc/auth.h
>   stable/11/sys/rpc/auth_none.c
>   stable/11/sys/rpc/auth_unix.c
>   stable/11/sys/rpc/authunix_prot.c
>   stable/11/sys/rpc/clnt.h
>   stable/11/sys/rpc/clnt_dg.c
>   stable/11/sys/rpc/clnt_vc.c
>   stable/11/sys/rpc/krpc.h
>   stable/11/sys/rpc/nettype.h
>   stable/11/sys/rpc/pmap_prot.h
>   stable/11/sys/rpc/rpc.h
>   stable/11/sys/rpc/rpc_callmsg.c
>   stable/11/sys/rpc/rpc_com.h
>   stable/11/sys/rpc/rpc_generic.c
>   stable/11/sys/rpc/rpc_msg.h
>   stable/11/sys/rpc/rpc_prot.c
>   stable/11/sys/rpc/rpcb_clnt.c
>   stable/11/sys/rpc/rpcb_clnt.h
>   stable/11/sys/rpc/rpcb_prot.c
>   stable/11/sys/rpc/rpcb_prot.h
>   stable/11/sys/rpc/rpcm_subs.h
>   stable/11/sys/rpc/rpcsec_gss/rpcsec_gss.c
>   stable/11/sys/rpc/rpcsec_gss/rpcsec_gss_int.h
>   stable/11/sys/rpc/rpcsec_gss/rpcsec_gss_prot.c
>   stable/11/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c
>   stable/11/sys/rpc/svc.c
>   stable/11/sys/rpc/svc.h
>   stable/11/sys/rpc/svc_auth.c
>   stable/11/sys/rpc/svc_auth.h
>   stable/11/sys/rpc/svc_auth_unix.c
>   stable/11/sys/rpc/svc_dg.c
>   stable/11/sys/rpc/svc_generic.c
>   stable/11/sys/rpc/svc_vc.c
>   stable/11/sys/rpc/types.h
>   stable/11/sys/rpc/xdr.h
>   stable/11/sys/security/audit/audit.c
>   stable/11/sys/security/audit/audit.h
>   stable/11/sys/security/audit/audit_arg.c
>   stable/11/sys/security/audit/audit_bsm.c
>   stable/11/sys/security/audit/audit_bsm_klib.c
>   stable/11/sys/security/audit/audit_private.h
>   stable/11/sys/security/audit/audit_syscalls.c
>   stable/11/sys/security/audit/audit_worker.c
>   stable/11/sys/security/audit/bsm_domain.c
>   stable/11/sys/security/audit/bsm_errno.c
>   stable/11/sys/security/audit/bsm_fcntl.c
>   stable/11/sys/security/audit/bsm_socket_type.c
>   stable/11/sys/security/audit/bsm_token.c
>   stable/11/sys/sparc64/include/_types.h
>   stable/11/sys/sparc64/include/asm.h
>   stable/11/sys/sparc64/include/bus_common.h
>   stable/11/sys/sparc64/include/cache.h
>   stable/11/sys/sparc64/include/cpu.h
>   stable/11/sys/sparc64/include/endian.h
>   stable/11/sys/sparc64/include/float.h
>   stable/11/sys/sparc64/include/floatingpoint.h
>   stable/11/sys/sparc64/include/ieee.h
>   stable/11/sys/sparc64/include/in_cksum.h
>   stable/11/sys/sparc64/include/iommureg.h
>   stable/11/sys/sparc64/include/md_var.h
>   stable/11/sys/sparc64/include/pmap.h
>   stable/11/sys/sparc64/include/proc.h
>   stable/11/sys/sparc64/include/ptrace.h
>   stable/11/sys/sparc64/include/reg.h
>   stable/11/sys/sparc64/include/reloc.h
>   stable/11/sys/sparc64/include/setjmp.h
>   stable/11/sys/sparc64/include/signal.h
>   stable/11/sys/sparc64/include/sysarch.h
>   stable/11/sys/sparc64/include/varargs.h
>   stable/11/sys/sparc64/include/vmparam.h
>   stable/11/sys/sparc64/sparc64/cache.c
>   stable/11/sys/sparc64/sparc64/eeprom.c
>   stable/11/sys/sparc64/sparc64/in_cksum.c
>   stable/11/sys/sparc64/sparc64/intr_machdep.c
>   stable/11/sys/sparc64/sparc64/machdep.c
>   stable/11/sys/sparc64/sparc64/mem.c
>   stable/11/sys/sparc64/sparc64/pmap.c
>   stable/11/sys/sparc64/sparc64/trap.c
>   stable/11/sys/sparc64/sparc64/uio_machdep.c
>   stable/11/sys/sparc64/sparc64/vm_machdep.c
>   stable/11/sys/sys/_bitset.h
>   stable/11/sys/sys/_bus_dma.h
>   stable/11/sys/sys/_callout.h
>   stable/11/sys/sys/_cpuset.h
>   stable/11/sys/sys/_ffcounter.h
>   stable/11/sys/sys/_iovec.h
>   stable/11/sys/sys/_kstack_cache.h
>   stable/11/sys/sys/_lock.h
>   stable/11/sys/sys/_lockmgr.h
>   stable/11/sys/sys/_mutex.h
>   stable/11/sys/sys/_null.h
>   stable/11/sys/sys/_pctrie.h
>   stable/11/sys/sys/_pthreadtypes.h
>   stable/11/sys/sys/_rmlock.h
>   stable/11/sys/sys/_rwlock.h
>   stable/11/sys/sys/_semaphore.h
>   stable/11/sys/sys/_sigset.h
>   stable/11/sys/sys/_sockaddr_storage.h
>   stable/11/sys/sys/_stack.h
>   stable/11/sys/sys/_stdint.h
>   stable/11/sys/sys/_sx.h
>   stable/11/sys/sys/_task.h
>   stable/11/sys/sys/_termios.h
>   stable/11/sys/sys/_timespec.h
>   stable/11/sys/sys/_timeval.h
>   stable/11/sys/sys/_types.h
>   stable/11/sys/sys/_umtx.h
>   stable/11/sys/sys/_unrhdr.h
>   stable/11/sys/sys/aac_ioctl.h
>   stable/11/sys/sys/acct.h
>   stable/11/sys/sys/acl.h
>   stable/11/sys/sys/agpio.h
>   stable/11/sys/sys/aio.h
>   stable/11/sys/sys/alq.h
>   stable/11/sys/sys/assym.h
>   stable/11/sys/sys/ata.h
>   stable/11/sys/sys/bio.h
>   stable/11/sys/sys/bitset.h
>   stable/11/sys/sys/bitstring.h
>   stable/11/sys/sys/blist.h
>   stable/11/sys/sys/boot.h
>   stable/11/sys/sys/buf.h
>   stable/11/sys/sys/buf_ring.h
>   stable/11/sys/sys/bufobj.h
>   stable/11/sys/sys/bus.h
>   stable/11/sys/sys/bus_dma.h
>   stable/11/sys/sys/busdma_bufalloc.h
>   stable/11/sys/sys/callout.h
>   stable/11/sys/sys/capability.h
>   stable/11/sys/sys/caprights.h
>   stable/11/sys/sys/cdefs.h
>   stable/11/sys/sys/cdrio.h
>   stable/11/sys/sys/cfictl.h
>   stable/11/sys/sys/chio.h
>   stable/11/sys/sys/clock.h
>   stable/11/sys/sys/condvar.h
>   stable/11/sys/sys/conf.h
>   stable/11/sys/sys/cons.h
>   stable/11/sys/sys/consio.h
>   stable/11/sys/sys/copyright.h
>   stable/11/sys/sys/counter.h
>   stable/11/sys/sys/cpu.h
>   stable/11/sys/sys/cpuctl.h
>   stable/11/sys/sys/cpuset.h
>   stable/11/sys/sys/ctype.h
>   stable/11/sys/sys/devicestat.h
>   stable/11/sys/sys/digiio.h
>   stable/11/sys/sys/dir.h
>   stable/11/sys/sys/dirent.h
>   stable/11/sys/sys/disklabel.h
>   stable/11/sys/sys/diskmbr.h
>   stable/11/sys/sys/dkstat.h
>   stable/11/sys/sys/domain.h
>   stable/11/sys/sys/dtrace_bsd.h
>   stable/11/sys/sys/dvdio.h
>   stable/11/sys/sys/elf.h
>   stable/11/sys/sys/elf32.h
>   stable/11/sys/sys/elf64.h
>   stable/11/sys/sys/elf_common.h
>   stable/11/sys/sys/elf_generic.h
>   stable/11/sys/sys/endian.h
>   stable/11/sys/sys/errno.h
>   stable/11/sys/sys/eui64.h
>   stable/11/sys/sys/event.h
>   stable/11/sys/sys/eventhandler.h
>   stable/11/sys/sys/eventvar.h
>   stable/11/sys/sys/exec.h
>   stable/11/sys/sys/extattr.h
>   stable/11/sys/sys/fail.h
>   stable/11/sys/sys/fbio.h
>   stable/11/sys/sys/fcntl.h
>   stable/11/sys/sys/fdcio.h
>   stable/11/sys/sys/file.h
>   stable/11/sys/sys/filedesc.h
>   stable/11/sys/sys/filio.h
>   stable/11/sys/sys/firmware.h
>   stable/11/sys/sys/gmon.h
>   stable/11/sys/sys/gpio.h
>   stable/11/sys/sys/gpt.h
>   stable/11/sys/sys/hash.h
>   stable/11/sys/sys/hhook.h
>   stable/11/sys/sys/iconv.h
>   stable/11/sys/sys/imgact.h
>   stable/11/sys/sys/imgact_aout.h
>   stable/11/sys/sys/imgact_elf.h
>   stable/11/sys/sys/interrupt.h
>   stable/11/sys/sys/ioccom.h
>   stable/11/sys/sys/ioctl.h
>   stable/11/sys/sys/ioctl_compat.h
>   stable/11/sys/sys/ipc.h
>   stable/11/sys/sys/ipmi.h
>   stable/11/sys/sys/jail.h
>   stable/11/sys/sys/joystick.h
>   stable/11/sys/sys/kdb.h
>   stable/11/sys/sys/kenv.h
>   stable/11/sys/sys/kernel.h
>   stable/11/sys/sys/kerneldump.h
>   stable/11/sys/sys/khelp.h
>   stable/11/sys/sys/kobj.h
>   stable/11/sys/sys/ksem.h
>   stable/11/sys/sys/kthread.h
>   stable/11/sys/sys/ktr.h
>   stable/11/sys/sys/ktr_class.h
>   stable/11/sys/sys/ktrace.h
>   stable/11/sys/sys/libkern.h
>   stable/11/sys/sys/limits.h
>   stable/11/sys/sys/link_aout.h
>   stable/11/sys/sys/link_elf.h
>   stable/11/sys/sys/linker.h
>   stable/11/sys/sys/linker_set.h
>   stable/11/sys/sys/lock.h
>   stable/11/sys/sys/lock_profile.h
>   stable/11/sys/sys/lockf.h
>   stable/11/sys/sys/lockmgr.h
>   stable/11/sys/sys/lockstat.h
>   stable/11/sys/sys/loginclass.h
>   stable/11/sys/sys/mac.h
>   stable/11/sys/sys/malloc.h
>   stable/11/sys/sys/mbuf.h
>   stable/11/sys/sys/mchain.h
>   stable/11/sys/sys/mdioctl.h
>   stable/11/sys/sys/memdesc.h
>   stable/11/sys/sys/mman.h
>   stable/11/sys/sys/module.h
>   stable/11/sys/sys/module_khelp.h
>   stable/11/sys/sys/mount.h
>   stable/11/sys/sys/mpt_ioctl.h
>   stable/11/sys/sys/mqueue.h
>   stable/11/sys/sys/msg.h
>   stable/11/sys/sys/msgbuf.h
>   stable/11/sys/sys/mtio.h
>   stable/11/sys/sys/mutex.h
>   stable/11/sys/sys/namei.h
>   stable/11/sys/sys/nlist_aout.h
>   stable/11/sys/sys/osd.h
>   stable/11/sys/sys/param.h
>   stable/11/sys/sys/pciio.h
>   stable/11/sys/sys/pcpu.h
>   stable/11/sys/sys/pctrie.h
>   stable/11/sys/sys/pioctl.h
>   stable/11/sys/sys/pmc.h
>   stable/11/sys/sys/pmckern.h
>   stable/11/sys/sys/pmclog.h
>   stable/11/sys/sys/poll.h
>   stable/11/sys/sys/posix4.h
>   stable/11/sys/sys/power.h
>   stable/11/sys/sys/priority.h
>   stable/11/sys/sys/priv.h
>   stable/11/sys/sys/proc.h
>   stable/11/sys/sys/procctl.h
>   stable/11/sys/sys/procdesc.h
>   stable/11/sys/sys/procfs.h
>   stable/11/sys/sys/protosw.h
>   stable/11/sys/sys/ptio.h
>   stable/11/sys/sys/ptrace.h
>   stable/11/sys/sys/queue.h
>   stable/11/sys/sys/racct.h
>   stable/11/sys/sys/random.h
>   stable/11/sys/sys/rangelock.h
>   stable/11/sys/sys/rctl.h
>   stable/11/sys/sys/reboot.h
>   stable/11/sys/sys/refcount.h
>   stable/11/sys/sys/regression.h
>   stable/11/sys/sys/resource.h
>   stable/11/sys/sys/resourcevar.h
>   stable/11/sys/sys/rmlock.h
>   stable/11/sys/sys/rtprio.h
>   stable/11/sys/sys/runq.h
>   stable/11/sys/sys/rwlock.h
>   stable/11/sys/sys/sbuf.h
>   stable/11/sys/sys/sched.h
>   stable/11/sys/sys/sdt.h
>   stable/11/sys/sys/select.h
>   stable/11/sys/sys/selinfo.h
>   stable/11/sys/sys/sema.h
>   stable/11/sys/sys/serial.h
>   stable/11/sys/sys/sf_buf.h
>   stable/11/sys/sys/sglist.h
>   stable/11/sys/sys/shm.h
>   stable/11/sys/sys/sigio.h
>   stable/11/sys/sys/signal.h
>   stable/11/sys/sys/signalvar.h
>   stable/11/sys/sys/sleepqueue.h
>   stable/11/sys/sys/slicer.h
>   stable/11/sys/sys/snoop.h
>   stable/11/sys/sys/sockbuf.h
>   stable/11/sys/sys/socket.h
>   stable/11/sys/sys/socketvar.h
>   stable/11/sys/sys/sockio.h
>   stable/11/sys/sys/sockopt.h
>   stable/11/sys/sys/stack.h
>   stable/11/sys/sys/stat.h
>   stable/11/sys/sys/stdatomic.h
>   stable/11/sys/sys/stddef.h
>   stable/11/sys/sys/stdint.h
>   stable/11/sys/sys/sun_disklabel.h
>   stable/11/sys/sys/sx.h
>   stable/11/sys/sys/syscallsubr.h
>   stable/11/sys/sys/sysctl.h
>   stable/11/sys/sys/sysent.h
>   stable/11/sys/sys/syslimits.h
>   stable/11/sys/sys/syslog.h
>   stable/11/sys/sys/systm.h
>   stable/11/sys/sys/taskqueue.h
>   stable/11/sys/sys/terminal.h
>   stable/11/sys/sys/thr.h
>   stable/11/sys/sys/tiio.h
>   stable/11/sys/sys/time.h
>   stable/11/sys/sys/timeb.h
>   stable/11/sys/sys/timeet.h
>   stable/11/sys/sys/timeffc.h
>   stable/11/sys/sys/timers.h
>   stable/11/sys/sys/times.h
>   stable/11/sys/sys/timespec.h
>   stable/11/sys/sys/tree.h
>   stable/11/sys/sys/tty.h
>   stable/11/sys/sys/ttycom.h
>   stable/11/sys/sys/ttydefaults.h
>   stable/11/sys/sys/ttydevsw.h
>   stable/11/sys/sys/ttydisc.h
>   stable/11/sys/sys/ttyhook.h
>   stable/11/sys/sys/ttyqueue.h
>   stable/11/sys/sys/turnstile.h
>   stable/11/sys/sys/types.h
>   stable/11/sys/sys/ucontext.h
>   stable/11/sys/sys/ucred.h
>   stable/11/sys/sys/uio.h
>   stable/11/sys/sys/umtx.h
>   stable/11/sys/sys/un.h
>   stable/11/sys/sys/unistd.h
>   stable/11/sys/sys/unpcb.h
>   stable/11/sys/sys/user.h
>   stable/11/sys/sys/utsname.h
>   stable/11/sys/sys/uuid.h
>   stable/11/sys/sys/vdso.h
>   stable/11/sys/sys/vmem.h
>   stable/11/sys/sys/vmmeter.h
>   stable/11/sys/sys/vnode.h
>   stable/11/sys/sys/wait.h
>   stable/11/sys/sys/watchdog.h
>   stable/11/sys/tools/makeobjops.awk
>   stable/11/sys/tools/vnode_if.awk
>   stable/11/sys/ufs/ffs/ffs_alloc.c
>   stable/11/sys/ufs/ffs/ffs_balloc.c
>   stable/11/sys/ufs/ffs/ffs_extern.h
>   stable/11/sys/ufs/ffs/ffs_inode.c
>   stable/11/sys/ufs/ffs/ffs_subr.c
>   stable/11/sys/ufs/ffs/ffs_tables.c
>   stable/11/sys/ufs/ffs/ffs_vfsops.c
>   stable/11/sys/ufs/ffs/ffs_vnops.c
>   stable/11/sys/ufs/ffs/fs.h
>   stable/11/sys/ufs/ufs/dir.h
>   stable/11/sys/ufs/ufs/inode.h
>   stable/11/sys/ufs/ufs/quota.h
>   stable/11/sys/ufs/ufs/ufs_bmap.c
>   stable/11/sys/ufs/ufs/ufs_extern.h
>   stable/11/sys/ufs/ufs/ufs_inode.c
>   stable/11/sys/ufs/ufs/ufs_lookup.c
>   stable/11/sys/ufs/ufs/ufs_quota.c
>   stable/11/sys/ufs/ufs/ufs_vfsops.c
>   stable/11/sys/ufs/ufs/ufs_vnops.c
>   stable/11/sys/ufs/ufs/ufsmount.h
>   stable/11/sys/vm/device_pager.c
>   stable/11/sys/vm/pmap.h
>   stable/11/sys/vm/swap_pager.c
>   stable/11/sys/vm/swap_pager.h
>   stable/11/sys/vm/vm.h
>   stable/11/sys/vm/vm_extern.h
>   stable/11/sys/vm/vm_fault.c
>   stable/11/sys/vm/vm_glue.c
>   stable/11/sys/vm/vm_init.c
>   stable/11/sys/vm/vm_kern.c
>   stable/11/sys/vm/vm_kern.h
>   stable/11/sys/vm/vm_map.c
>   stable/11/sys/vm/vm_map.h
>   stable/11/sys/vm/vm_meter.c
>   stable/11/sys/vm/vm_mmap.c
>   stable/11/sys/vm/vm_object.c
>   stable/11/sys/vm/vm_object.h
>   stable/11/sys/vm/vm_page.c
>   stable/11/sys/vm/vm_page.h
>   stable/11/sys/vm/vm_pageout.c
>   stable/11/sys/vm/vm_pageout.h
>   stable/11/sys/vm/vm_pager.c
>   stable/11/sys/vm/vm_pager.h
>   stable/11/sys/vm/vm_param.h
>   stable/11/sys/vm/vm_unix.c
>   stable/11/sys/vm/vnode_pager.c
>   stable/11/sys/vm/vnode_pager.h
>   stable/11/sys/x86/include/_align.h
>   stable/11/sys/x86/include/_limits.h
>   stable/11/sys/x86/include/_types.h
>   stable/11/sys/x86/include/endian.h
>   stable/11/sys/x86/include/float.h
>   stable/11/sys/x86/include/frame.h
>   stable/11/sys/x86/include/psl.h
>   stable/11/sys/x86/include/ptrace.h
>   stable/11/sys/x86/include/reg.h
>   stable/11/sys/x86/include/segments.h
>   stable/11/sys/x86/include/setjmp.h
>   stable/11/sys/x86/include/signal.h
>   stable/11/sys/x86/include/specialreg.h
>   stable/11/sys/x86/include/stdarg.h
>   stable/11/sys/x86/include/sysarch.h
>   stable/11/sys/x86/include/trap.h
>   stable/11/sys/x86/isa/clock.c
>   stable/11/sys/x86/isa/icu.h
>   stable/11/sys/x86/isa/isa_dma.c
>   stable/11/sys/x86/isa/nmi.c
>   stable/11/sys/x86/x86/delay.c
>   stable/11/sys/x86/x86/msi.c
>   stable/11/tools/regression/aio/aiop/aiop.c
>   stable/11/tools/regression/p1003_1b/fifo.c
>   stable/11/tools/regression/p1003_1b/memlock.c
>   stable/11/tools/regression/p1003_1b/p26.c
>   stable/11/tools/regression/p1003_1b/sched.c
>   stable/11/tools/regression/p1003_1b/yield.c
>   stable/11/tools/regression/posixsem/posixsem.c
>   stable/11/tools/regression/posixsem/test.c
>   stable/11/tools/regression/posixsem/test.h
>   stable/11/tools/test/hwpmc/pmctest.py
>   stable/11/tools/tools/cxgbtool/cxgbtool.c
>   stable/11/tools/tools/pirtool/pirtable.h
>   stable/11/tools/tools/pirtool/pirtool.c
>   stable/11/tools/tools/vxge/vxge_cmn.h
>   stable/11/tools/tools/vxge/vxge_info.c
>   stable/11/tools/tools/vxge/vxge_info.h
>   stable/11/tools/tools/vxge/vxge_log.c
>   stable/11/tools/tools/vxge/vxge_log.h
>   stable/11/usr.bin/apply/apply.c
>   stable/11/usr.bin/ar/ar.c
>   stable/11/usr.bin/banner/banner.c
>   stable/11/usr.bin/basename/basename.c
>   stable/11/usr.bin/biff/biff.c
>   stable/11/usr.bin/calendar/calendar.c
>   stable/11/usr.bin/calendar/calendar.h
>   stable/11/usr.bin/calendar/day.c
>   stable/11/usr.bin/calendar/io.c
>   stable/11/usr.bin/calendar/locale.c
>   stable/11/usr.bin/calendar/pathnames.h
>   stable/11/usr.bin/calendar/pom.c
>   stable/11/usr.bin/cap_mkdb/cap_mkdb.c
>   stable/11/usr.bin/chpass/chpass.c
>   stable/11/usr.bin/chpass/chpass.h
>   stable/11/usr.bin/chpass/edit.c
>   stable/11/usr.bin/chpass/field.c
>   stable/11/usr.bin/chpass/table.c
>   stable/11/usr.bin/chpass/util.c
>   stable/11/usr.bin/cksum/cksum.c
>   stable/11/usr.bin/cksum/crc.c
>   stable/11/usr.bin/cksum/extern.h
>   stable/11/usr.bin/cksum/print.c
>   stable/11/usr.bin/cksum/sum1.c
>   stable/11/usr.bin/cksum/sum2.c
>   stable/11/usr.bin/cmp/cmp.c
>   stable/11/usr.bin/cmp/extern.h
>   stable/11/usr.bin/cmp/misc.c
>   stable/11/usr.bin/cmp/regular.c
>   stable/11/usr.bin/cmp/special.c
>   stable/11/usr.bin/col/col.c
>   stable/11/usr.bin/colrm/colrm.c
>   stable/11/usr.bin/column/column.c
>   stable/11/usr.bin/comm/comm.c
>   stable/11/usr.bin/compress/compress.c
>   stable/11/usr.bin/compress/zopen.c
>   stable/11/usr.bin/ctags/C.c
>   stable/11/usr.bin/ctags/ctags.c
>   stable/11/usr.bin/ctags/ctags.h
>   stable/11/usr.bin/ctags/fortran.c
>   stable/11/usr.bin/ctags/lisp.c
>   stable/11/usr.bin/ctags/print.c
>   stable/11/usr.bin/ctags/tree.c
>   stable/11/usr.bin/ctags/yacc.c
>   stable/11/usr.bin/cut/cut.c
>   stable/11/usr.bin/dirname/dirname.c
>   stable/11/usr.bin/du/du.c
>   stable/11/usr.bin/env/env.c
>   stable/11/usr.bin/expand/expand.c
>   stable/11/usr.bin/false/false.c
>   stable/11/usr.bin/find/extern.h
>   stable/11/usr.bin/find/find.c
>   stable/11/usr.bin/find/find.h
>   stable/11/usr.bin/find/function.c
>   stable/11/usr.bin/find/ls.c
>   stable/11/usr.bin/find/main.c
>   stable/11/usr.bin/find/misc.c
>   stable/11/usr.bin/find/operator.c
>   stable/11/usr.bin/find/option.c
>   stable/11/usr.bin/finger/extern.h
>   stable/11/usr.bin/finger/finger.c
>   stable/11/usr.bin/finger/finger.h
>   stable/11/usr.bin/finger/lprint.c
>   stable/11/usr.bin/finger/net.c
>   stable/11/usr.bin/finger/sprint.c
>   stable/11/usr.bin/finger/util.c
>   stable/11/usr.bin/fold/fold.c
>   stable/11/usr.bin/from/from.c
>   stable/11/usr.bin/fstat/fstat.c
>   stable/11/usr.bin/gcore/extern.h
>   stable/11/usr.bin/gcore/gcore.c
>   stable/11/usr.bin/gprof/amd64.h
>   stable/11/usr.bin/gprof/aout.c
>   stable/11/usr.bin/gprof/arcs.c
>   stable/11/usr.bin/gprof/arm.h
>   stable/11/usr.bin/gprof/dfn.c
>   stable/11/usr.bin/gprof/elf.c
>   stable/11/usr.bin/gprof/gprof.c
>   stable/11/usr.bin/gprof/gprof.h
>   stable/11/usr.bin/gprof/hertz.c
>   stable/11/usr.bin/gprof/i386.h
>   stable/11/usr.bin/gprof/lookup.c
>   stable/11/usr.bin/gprof/mips.h
>   stable/11/usr.bin/gprof/pathnames.h
>   stable/11/usr.bin/gprof/powerpc.h
>   stable/11/usr.bin/gprof/printgprof.c
>   stable/11/usr.bin/gprof/printlist.c
>   stable/11/usr.bin/gprof/sparc64.h
>   stable/11/usr.bin/gzip/zuncompress.c
>   stable/11/usr.bin/head/head.c
>   stable/11/usr.bin/hexdump/conv.c
>   stable/11/usr.bin/hexdump/display.c
>   stable/11/usr.bin/hexdump/hexdump.c
>   stable/11/usr.bin/hexdump/hexdump.h
>   stable/11/usr.bin/hexdump/hexsyntax.c
>   stable/11/usr.bin/hexdump/odsyntax.c
>   stable/11/usr.bin/hexdump/parse.c
>   stable/11/usr.bin/id/id.c
>   stable/11/usr.bin/indent/args.c
>   stable/11/usr.bin/indent/indent.c
>   stable/11/usr.bin/indent/indent_codes.h
>   stable/11/usr.bin/indent/indent_globs.h
>   stable/11/usr.bin/indent/io.c
>   stable/11/usr.bin/indent/lexi.c
>   stable/11/usr.bin/indent/parse.c
>   stable/11/usr.bin/indent/pr_comment.c
>   stable/11/usr.bin/join/join.c
>   stable/11/usr.bin/jot/jot.c
>   stable/11/usr.bin/kdump/kdump.c
>   stable/11/usr.bin/ktrace/ktrace.c
>   stable/11/usr.bin/ktrace/ktrace.h
>   stable/11/usr.bin/ktrace/subr.c
>   stable/11/usr.bin/lam/lam.c
>   stable/11/usr.bin/last/last.c
>   stable/11/usr.bin/lastcomm/lastcomm.c
>   stable/11/usr.bin/lastcomm/pathnames.h
>   stable/11/usr.bin/leave/leave.c
>   stable/11/usr.bin/lex/initparse.c
>   stable/11/usr.bin/locate/bigram/locate.bigram.c
>   stable/11/usr.bin/locate/code/locate.code.c
>   stable/11/usr.bin/locate/locate/fastfind.c
>   stable/11/usr.bin/locate/locate/locate.c
>   stable/11/usr.bin/locate/locate/locate.h
>   stable/11/usr.bin/locate/locate/util.c
>   stable/11/usr.bin/lock/lock.c
>   stable/11/usr.bin/logger/logger.c
>   stable/11/usr.bin/login/login.c
>   stable/11/usr.bin/login/login_audit.c
>   stable/11/usr.bin/login/pathnames.h
>   stable/11/usr.bin/logname/logname.c
>   stable/11/usr.bin/look/look.c
>   stable/11/usr.bin/look/pathnames.h
>   stable/11/usr.bin/lorder/lorder.sh
>   stable/11/usr.bin/m4/eval.c
>   stable/11/usr.bin/m4/extern.h
>   stable/11/usr.bin/m4/look.c
>   stable/11/usr.bin/m4/main.c
>   stable/11/usr.bin/m4/mdef.h
>   stable/11/usr.bin/m4/misc.c
>   stable/11/usr.bin/m4/pathnames.h
>   stable/11/usr.bin/m4/stdd.h
>   stable/11/usr.bin/mail/cmd1.c
>   stable/11/usr.bin/mail/cmd2.c
>   stable/11/usr.bin/mail/cmd3.c
>   stable/11/usr.bin/mail/cmdtab.c
>   stable/11/usr.bin/mail/collect.c
>   stable/11/usr.bin/mail/def.h
>   stable/11/usr.bin/mail/edit.c
>   stable/11/usr.bin/mail/extern.h
>   stable/11/usr.bin/mail/fio.c
>   stable/11/usr.bin/mail/getname.c
>   stable/11/usr.bin/mail/glob.h
>   stable/11/usr.bin/mail/head.c
>   stable/11/usr.bin/mail/lex.c
>   stable/11/usr.bin/mail/list.c
>   stable/11/usr.bin/mail/main.c
>   stable/11/usr.bin/mail/names.c
>   stable/11/usr.bin/mail/pathnames.h
>   stable/11/usr.bin/mail/popen.c
>   stable/11/usr.bin/mail/quit.c
>   stable/11/usr.bin/mail/rcv.h
>   stable/11/usr.bin/mail/send.c
>   stable/11/usr.bin/mail/strings.c
>   stable/11/usr.bin/mail/temp.c
>   stable/11/usr.bin/mail/tty.c
>   stable/11/usr.bin/mail/util.c
>   stable/11/usr.bin/mail/v7.local.c
>   stable/11/usr.bin/mail/vars.c
>   stable/11/usr.bin/mail/version.c
>   stable/11/usr.bin/mesg/mesg.c
>   stable/11/usr.bin/mkdep/mkdep.gcc.sh
>   stable/11/usr.bin/mkdep/mkdep.sh
>   stable/11/usr.bin/mkfifo/mkfifo.c
>   stable/11/usr.bin/mklocale/extern.h
>   stable/11/usr.bin/mklocale/ldef.h
>   stable/11/usr.bin/mklocale/lex.l
>   stable/11/usr.bin/mklocale/yacc.y
>   stable/11/usr.bin/mkstr/mkstr.c
>   stable/11/usr.bin/msgs/msgs.c
>   stable/11/usr.bin/msgs/pathnames.h
>   stable/11/usr.bin/mt/mt.c
>   stable/11/usr.bin/netstat/if.c
>   stable/11/usr.bin/netstat/inet6.c
>   stable/11/usr.bin/netstat/ipsec.c
>   stable/11/usr.bin/netstat/main.c
>   stable/11/usr.bin/netstat/mbuf.c
>   stable/11/usr.bin/netstat/mroute.c
>   stable/11/usr.bin/netstat/mroute6.c
>   stable/11/usr.bin/netstat/netstat.h
>   stable/11/usr.bin/netstat/pfkey.c
>   stable/11/usr.bin/netstat/route.c
>   stable/11/usr.bin/netstat/sctp.c
>   stable/11/usr.bin/netstat/unix.c
>   stable/11/usr.bin/nice/nice.c
>   stable/11/usr.bin/nohup/nohup.c
>   stable/11/usr.bin/pagesize/pagesize.sh
>   stable/11/usr.bin/paste/paste.c
>   stable/11/usr.bin/patch/mkpath.c
>   stable/11/usr.bin/pr/egetopt.c
>   stable/11/usr.bin/pr/extern.h
>   stable/11/usr.bin/pr/pr.c
>   stable/11/usr.bin/pr/pr.h
>   stable/11/usr.bin/printenv/printenv.c
>   stable/11/usr.bin/printf/printf.c
>   stable/11/usr.bin/quota/quota.c
>   stable/11/usr.bin/renice/renice.c
>   stable/11/usr.bin/rev/rev.c
>   stable/11/usr.bin/rs/rs.c
>   stable/11/usr.bin/rup/rup.c
>   stable/11/usr.bin/ruptime/ruptime.c
>   stable/11/usr.bin/rusers/rusers.c
>   stable/11/usr.bin/rwall/rwall.c
>   stable/11/usr.bin/rwho/rwho.c
>   stable/11/usr.bin/script/script.c
>   stable/11/usr.bin/sed/compile.c
>   stable/11/usr.bin/sed/defs.h
>   stable/11/usr.bin/sed/extern.h
>   stable/11/usr.bin/sed/main.c
>   stable/11/usr.bin/sed/misc.c
>   stable/11/usr.bin/sed/process.c
>   stable/11/usr.bin/shar/shar.sh
>   stable/11/usr.bin/showmount/showmount.c
>   stable/11/usr.bin/split/split.c
>   stable/11/usr.bin/su/su.c
>   stable/11/usr.bin/systat/cmds.c
>   stable/11/usr.bin/systat/cmdtab.c
>   stable/11/usr.bin/systat/devs.c
>   stable/11/usr.bin/systat/extern.h
>   stable/11/usr.bin/systat/fetch.c
>   stable/11/usr.bin/systat/icmp.c
>   stable/11/usr.bin/systat/icmp6.c
>   stable/11/usr.bin/systat/iostat.c
>   stable/11/usr.bin/systat/ip.c
>   stable/11/usr.bin/systat/ip6.c
>   stable/11/usr.bin/systat/keyboard.c
>   stable/11/usr.bin/systat/main.c
>   stable/11/usr.bin/systat/netcmds.c
>   stable/11/usr.bin/systat/netstat.c
>   stable/11/usr.bin/systat/pigs.c
>   stable/11/usr.bin/systat/swap.c
>   stable/11/usr.bin/systat/systat.h
>   stable/11/usr.bin/systat/tcp.c
>   stable/11/usr.bin/systat/vmstat.c
>   stable/11/usr.bin/tail/extern.h
>   stable/11/usr.bin/tail/forward.c
>   stable/11/usr.bin/tail/misc.c
>   stable/11/usr.bin/tail/read.c
>   stable/11/usr.bin/tail/reverse.c
>   stable/11/usr.bin/tail/tail.c
>   stable/11/usr.bin/talk/ctl.c
>   stable/11/usr.bin/talk/ctl_transact.c
>   stable/11/usr.bin/talk/display.c
>   stable/11/usr.bin/talk/get_addrs.c
>   stable/11/usr.bin/talk/get_names.c
>   stable/11/usr.bin/talk/init_disp.c
>   stable/11/usr.bin/talk/invite.c
>   stable/11/usr.bin/talk/io.c
>   stable/11/usr.bin/talk/look_up.c
>   stable/11/usr.bin/talk/msgs.c
>   stable/11/usr.bin/talk/talk.c
>   stable/11/usr.bin/talk/talk.h
>   stable/11/usr.bin/talk/talk_ctl.h
>   stable/11/usr.bin/tcopy/tcopy.c
>   stable/11/usr.bin/tee/tee.c
>   stable/11/usr.bin/tftp/main.c
>   stable/11/usr.bin/tftp/tftp.c
>   stable/11/usr.bin/tftp/tftp.h
>   stable/11/usr.bin/time/time.c
>   stable/11/usr.bin/tip/libacu/biz22.c
>   stable/11/usr.bin/tip/libacu/biz31.c
>   stable/11/usr.bin/tip/libacu/courier.c
>   stable/11/usr.bin/tip/libacu/df.c
>   stable/11/usr.bin/tip/libacu/dn11.c
>   stable/11/usr.bin/tip/libacu/hayes.c
>   stable/11/usr.bin/tip/libacu/t3000.c
>   stable/11/usr.bin/tip/libacu/v3451.c
>   stable/11/usr.bin/tip/libacu/v831.c
>   stable/11/usr.bin/tip/libacu/ventel.c
>   stable/11/usr.bin/tip/tip/acu.c
>   stable/11/usr.bin/tip/tip/acutab.c
>   stable/11/usr.bin/tip/tip/cmds.c
>   stable/11/usr.bin/tip/tip/cmdtab.c
>   stable/11/usr.bin/tip/tip/cu.c
>   stable/11/usr.bin/tip/tip/hunt.c
>   stable/11/usr.bin/tip/tip/log.c
>   stable/11/usr.bin/tip/tip/partab.c
>   stable/11/usr.bin/tip/tip/pathnames.h
>   stable/11/usr.bin/tip/tip/remote.c
>   stable/11/usr.bin/tip/tip/tip.c
>   stable/11/usr.bin/tip/tip/tip.h
>   stable/11/usr.bin/tip/tip/tipout.c
>   stable/11/usr.bin/tip/tip/uucplock.c
>   stable/11/usr.bin/tip/tip/value.c
>   stable/11/usr.bin/tip/tip/vars.c
>   stable/11/usr.bin/touch/touch.c
>   stable/11/usr.bin/tput/clear.sh
>   stable/11/usr.bin/tput/tput.c
>   stable/11/usr.bin/tr/extern.h
>   stable/11/usr.bin/tr/str.c
>   stable/11/usr.bin/tr/tr.c
>   stable/11/usr.bin/true/true.c
>   stable/11/usr.bin/truss/amd64-freebsd.c
>   stable/11/usr.bin/truss/amd64-freebsd32.c
>   stable/11/usr.bin/truss/amd64-linux.c
>   stable/11/usr.bin/truss/amd64-linux32.c
>   stable/11/usr.bin/truss/arm-freebsd.c
>   stable/11/usr.bin/truss/extern.h
>   stable/11/usr.bin/truss/i386-freebsd.c
>   stable/11/usr.bin/truss/i386-linux.c
>   stable/11/usr.bin/truss/main.c
>   stable/11/usr.bin/truss/mips-freebsd.c
>   stable/11/usr.bin/truss/setup.c
>   stable/11/usr.bin/truss/sparc64-freebsd.c
>   stable/11/usr.bin/truss/syscalls.c
>   stable/11/usr.bin/tset/extern.h
>   stable/11/usr.bin/tset/map.c
>   stable/11/usr.bin/tset/misc.c
>   stable/11/usr.bin/tset/set.c
>   stable/11/usr.bin/tset/term.c
>   stable/11/usr.bin/tset/tset.c
>   stable/11/usr.bin/tset/wrterm.c
>   stable/11/usr.bin/tsort/tsort.c
>   stable/11/usr.bin/tty/tty.c
>   stable/11/usr.bin/ul/ul.c
>   stable/11/usr.bin/uname/uname.c
>   stable/11/usr.bin/unexpand/unexpand.c
>   stable/11/usr.bin/uniq/uniq.c
>   stable/11/usr.bin/uudecode/uudecode.c
>   stable/11/usr.bin/uuencode/uuencode.c
>   stable/11/usr.bin/vgrind/extern.h
>   stable/11/usr.bin/vgrind/pathnames.h
>   stable/11/usr.bin/vgrind/regexp.c
>   stable/11/usr.bin/vgrind/vfontedpr.c
>   stable/11/usr.bin/vgrind/vgrind.sh
>   stable/11/usr.bin/vmstat/vmstat.c
>   stable/11/usr.bin/w/extern.h
>   stable/11/usr.bin/w/pr_time.c
>   stable/11/usr.bin/w/proc_compare.c
>   stable/11/usr.bin/w/w.c
>   stable/11/usr.bin/wall/ttymsg.c
>   stable/11/usr.bin/wall/wall.c
>   stable/11/usr.bin/wc/wc.c
>   stable/11/usr.bin/what/what.c
>   stable/11/usr.bin/whois/whois.c
>   stable/11/usr.bin/write/write.c
>   stable/11/usr.bin/xargs/pathnames.h
>   stable/11/usr.bin/xargs/xargs.c
>   stable/11/usr.bin/xinstall/xinstall.c
>   stable/11/usr.bin/xstr/pathnames.h
>   stable/11/usr.bin/xstr/xstr.c
>   stable/11/usr.bin/yes/yes.c
>   stable/11/usr.sbin/accton/accton.c
>   stable/11/usr.sbin/ancontrol/ancontrol.c
>   stable/11/usr.sbin/arp/arp.c
>   stable/11/usr.sbin/chown/chown.c
>   stable/11/usr.sbin/chroot/chroot.c
>   stable/11/usr.sbin/config/config.h
>   stable/11/usr.sbin/config/config.y
>   stable/11/usr.sbin/config/lang.l
>   stable/11/usr.sbin/config/main.c
>   stable/11/usr.sbin/config/mkheaders.c
>   stable/11/usr.sbin/config/mkmakefile.c
>   stable/11/usr.sbin/config/mkoptions.c
>   stable/11/usr.sbin/crashinfo/crashinfo.sh
>   stable/11/usr.sbin/dconschat/dconschat.c
>   stable/11/usr.sbin/edquota/edquota.c
>   stable/11/usr.sbin/edquota/pathnames.h
>   stable/11/usr.sbin/fwcontrol/fwcontrol.c
>   stable/11/usr.sbin/fwcontrol/fwdv.c
>   stable/11/usr.sbin/fwcontrol/fwmpegts.c
>   stable/11/usr.sbin/ifmcstat/ifmcstat.c
>   stable/11/usr.sbin/ifmcstat/printb.c
>   stable/11/usr.sbin/inetd/inetd.c
>   stable/11/usr.sbin/inetd/inetd.h
>   stable/11/usr.sbin/inetd/pathnames.h
>   stable/11/usr.sbin/iostat/iostat.c
>   stable/11/usr.sbin/ip6addrctl/ip6addrctl.c
>   stable/11/usr.sbin/kgmon/kgmon.c
>   stable/11/usr.sbin/kldxref/ef.c
>   stable/11/usr.sbin/kldxref/ef_obj.c
>   stable/11/usr.sbin/kldxref/kldxref.c
>   stable/11/usr.sbin/lpr/common_source/common.c
>   stable/11/usr.sbin/lpr/common_source/displayq.c
>   stable/11/usr.sbin/lpr/common_source/lp.h
>   stable/11/usr.sbin/lpr/common_source/lp.local.h
>   stable/11/usr.sbin/lpr/common_source/net.c
>   stable/11/usr.sbin/lpr/common_source/pathnames.h
>   stable/11/usr.sbin/lpr/common_source/printcap.c
>   stable/11/usr.sbin/lpr/common_source/rmjob.c
>   stable/11/usr.sbin/lpr/common_source/startdaemon.c
>   stable/11/usr.sbin/lpr/filters/lpf.c
>   stable/11/usr.sbin/lpr/lpc/cmds.c
>   stable/11/usr.sbin/lpr/lpc/cmdtab.c
>   stable/11/usr.sbin/lpr/lpc/extern.h
>   stable/11/usr.sbin/lpr/lpc/lpc.c
>   stable/11/usr.sbin/lpr/lpc/lpc.h
>   stable/11/usr.sbin/lpr/lpd/extern.h
>   stable/11/usr.sbin/lpr/lpd/lpd.c
>   stable/11/usr.sbin/lpr/lpd/lpdchar.c
>   stable/11/usr.sbin/lpr/lpd/modes.c
>   stable/11/usr.sbin/lpr/lpd/printjob.c
>   stable/11/usr.sbin/lpr/lpd/recvjob.c
>   stable/11/usr.sbin/lpr/lpq/lpq.c
>   stable/11/usr.sbin/lpr/lpr/lpr.c
>   stable/11/usr.sbin/lpr/lprm/lprm.c
>   stable/11/usr.sbin/lpr/lptest/lptest.c
>   stable/11/usr.sbin/lpr/pac/pac.c
>   stable/11/usr.sbin/makefs/ffs.c
>   stable/11/usr.sbin/makefs/ffs/ffs_alloc.c
>   stable/11/usr.sbin/makefs/ffs/ffs_balloc.c
>   stable/11/usr.sbin/makefs/ffs/ffs_extern.h
>   stable/11/usr.sbin/makefs/ffs/ffs_subr.c
>   stable/11/usr.sbin/makefs/ffs/mkfs.c
>   stable/11/usr.sbin/makefs/ffs/ufs_bmap.c
>   stable/11/usr.sbin/makefs/ffs/ufs_inode.h
>   stable/11/usr.sbin/manctl/manctl.sh
>   stable/11/usr.sbin/mld6query/mld6.c
>   stable/11/usr.sbin/mountd/mountd.c
>   stable/11/usr.sbin/mountd/pathnames.h
>   stable/11/usr.sbin/mptutil/mpt_cam.c
>   stable/11/usr.sbin/mptutil/mpt_cmd.c
>   stable/11/usr.sbin/mptutil/mpt_config.c
>   stable/11/usr.sbin/mptutil/mpt_drive.c
>   stable/11/usr.sbin/mptutil/mpt_evt.c
>   stable/11/usr.sbin/mptutil/mpt_show.c
>   stable/11/usr.sbin/mptutil/mpt_volume.c
>   stable/11/usr.sbin/mptutil/mptutil.c
>   stable/11/usr.sbin/mptutil/mptutil.h
>   stable/11/usr.sbin/nandsim/nandsim_rcfile.c
>   stable/11/usr.sbin/nandsim/nandsim_rcfile.h
>   stable/11/usr.sbin/ndiscvt/inf-parse.y
>   stable/11/usr.sbin/ndiscvt/inf-token.l
>   stable/11/usr.sbin/ndiscvt/inf.c
>   stable/11/usr.sbin/ndiscvt/ndiscvt.c
>   stable/11/usr.sbin/ndiscvt/ndisgen.sh
>   stable/11/usr.sbin/ndiscvt/windrv_stub.c
>   stable/11/usr.sbin/ndp/ndp.c
>   stable/11/usr.sbin/nfsd/nfsd.c
>   stable/11/usr.sbin/pciconf/cap.c
>   stable/11/usr.sbin/pciconf/pciconf.h
>   stable/11/usr.sbin/ppp/slcompress.c
>   stable/11/usr.sbin/ppp/slcompress.h
>   stable/11/usr.sbin/pstat/pstat.c
>   stable/11/usr.sbin/pwd_mkdb/pwd_mkdb.c
>   stable/11/usr.sbin/quotaon/quotaon.c
>   stable/11/usr.sbin/repquota/repquota.c
>   stable/11/usr.sbin/rip6query/rip6query.c
>   stable/11/usr.sbin/rmt/rmt.c
>   stable/11/usr.sbin/route6d/misc/cksum.c
>   stable/11/usr.sbin/route6d/route6d.c
>   stable/11/usr.sbin/route6d/route6d.h
>   stable/11/usr.sbin/rpc.lockd/lock_proc.c
>   stable/11/usr.sbin/rpc.lockd/lockd.c
>   stable/11/usr.sbin/rpc.lockd/lockd.h
>   stable/11/usr.sbin/rpc.lockd/lockd_lock.c
>   stable/11/usr.sbin/rpc.statd/file.c
>   stable/11/usr.sbin/rpc.statd/procs.c
>   stable/11/usr.sbin/rpc.statd/statd.c
>   stable/11/usr.sbin/rpc.statd/statd.h
>   stable/11/usr.sbin/rpc.yppasswdd/yppasswdd_extern.h
>   stable/11/usr.sbin/rpc.yppasswdd/yppasswdd_main.c
>   stable/11/usr.sbin/rpc.yppasswdd/yppasswdd_server.c
>   stable/11/usr.sbin/rpc.ypupdated/yp_dbdelete.c
>   stable/11/usr.sbin/rpc.ypupdated/yp_dbupdate.c
>   stable/11/usr.sbin/rpc.ypupdated/ypupdated_main.c
>   stable/11/usr.sbin/rpc.ypupdated/ypupdated_server.c
>   stable/11/usr.sbin/rpc.ypxfrd/ypxfrd_extern.h
>   stable/11/usr.sbin/rpc.ypxfrd/ypxfrd_main.c
>   stable/11/usr.sbin/rpc.ypxfrd/ypxfrd_server.c
>   stable/11/usr.sbin/rpcbind/check_bound.c
>   stable/11/usr.sbin/rpcbind/pmap_svc.c
>   stable/11/usr.sbin/rpcbind/rpcb_stat.c
>   stable/11/usr.sbin/rpcbind/rpcb_svc.c
>   stable/11/usr.sbin/rpcbind/rpcb_svc_4.c
>   stable/11/usr.sbin/rpcbind/rpcb_svc_com.c
>   stable/11/usr.sbin/rpcbind/rpcbind.c
>   stable/11/usr.sbin/rpcbind/rpcbind.h
>   stable/11/usr.sbin/rpcbind/warmstart.c
>   stable/11/usr.sbin/rrenumd/lexer.l
>   stable/11/usr.sbin/rrenumd/parser.y
>   stable/11/usr.sbin/rrenumd/rrenumd.c
>   stable/11/usr.sbin/rrenumd/rrenumd.h
>   stable/11/usr.sbin/rtadvd/advcap.c
>   stable/11/usr.sbin/rtadvd/config.c
>   stable/11/usr.sbin/rtadvd/config.h
>   stable/11/usr.sbin/rtadvd/if.c
>   stable/11/usr.sbin/rtadvd/if.h
>   stable/11/usr.sbin/rtadvd/rrenum.c
>   stable/11/usr.sbin/rtadvd/rrenum.h
>   stable/11/usr.sbin/rtadvd/rtadvd.c
>   stable/11/usr.sbin/rtadvd/rtadvd.h
>   stable/11/usr.sbin/rtadvd/timer.c
>   stable/11/usr.sbin/rtadvd/timer.h
>   stable/11/usr.sbin/rtadvd/timer_subr.c
>   stable/11/usr.sbin/rtadvd/timer_subr.h
>   stable/11/usr.sbin/rtsold/dump.c
>   stable/11/usr.sbin/rtsold/if.c
>   stable/11/usr.sbin/rtsold/probe.c
>   stable/11/usr.sbin/rtsold/rtsock.c
>   stable/11/usr.sbin/rtsold/rtsol.c
>   stable/11/usr.sbin/rtsold/rtsold.c
>   stable/11/usr.sbin/rtsold/rtsold.h
>   stable/11/usr.sbin/rwhod/rwhod.c
>   stable/11/usr.sbin/setfib/setfib.c
>   stable/11/usr.sbin/syslogd/pathnames.h
>   stable/11/usr.sbin/syslogd/syslogd.c
>   stable/11/usr.sbin/timed/timed/acksend.c
>   stable/11/usr.sbin/timed/timed/byteorder.c
>   stable/11/usr.sbin/timed/timed/candidate.c
>   stable/11/usr.sbin/timed/timed/cksum.c
>   stable/11/usr.sbin/timed/timed/correct.c
>   stable/11/usr.sbin/timed/timed/extern.h
>   stable/11/usr.sbin/timed/timed/globals.h
>   stable/11/usr.sbin/timed/timed/master.c
>   stable/11/usr.sbin/timed/timed/measure.c
>   stable/11/usr.sbin/timed/timed/networkdelta.c
>   stable/11/usr.sbin/timed/timed/pathnames.h
>   stable/11/usr.sbin/timed/timed/readmsg.c
>   stable/11/usr.sbin/timed/timed/slave.c
>   stable/11/usr.sbin/timed/timed/timed.c
>   stable/11/usr.sbin/timed/timedc/cmds.c
>   stable/11/usr.sbin/timed/timedc/cmdtab.c
>   stable/11/usr.sbin/timed/timedc/extern.h
>   stable/11/usr.sbin/timed/timedc/timedc.c
>   stable/11/usr.sbin/timed/timedc/timedc.h
>   stable/11/usr.sbin/traceroute6/traceroute6.c
>   stable/11/usr.sbin/trpt/trpt.c
>   stable/11/usr.sbin/vipw/vipw.c
>   stable/11/usr.sbin/wpa/ndis_events/ndis_events.c
>   stable/11/usr.sbin/wpa/wpa_supplicant/Packet32.c
>   stable/11/usr.sbin/wpa/wpa_supplicant/Packet32.h
>   stable/11/usr.sbin/yp_mkdb/yp_mkdb.c
>   stable/11/usr.sbin/ypbind/yp_ping.c
>   stable/11/usr.sbin/yppush/yppush_main.c
>   stable/11/usr.sbin/ypserv/yp_access.c
>   stable/11/usr.sbin/ypserv/yp_dblookup.c
>   stable/11/usr.sbin/ypserv/yp_dnslookup.c
>   stable/11/usr.sbin/ypserv/yp_error.c
>   stable/11/usr.sbin/ypserv/yp_extern.h
>   stable/11/usr.sbin/ypserv/yp_main.c
>   stable/11/usr.sbin/ypserv/yp_server.c
>   stable/11/usr.sbin/ypserv/yp_svc_udp.c
> Directory Properties:
>   stable/11/   (props changed)
>
> Modified: stable/11/bin/cat/cat.c
> ==============================================================================
> --- stable/11/bin/cat/cat.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/cat/cat.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1989, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/chflags/chflags.c
> ==============================================================================
> --- stable/11/bin/chflags/chflags.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/chflags/chflags.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/chmod/chmod.c
> ==============================================================================
> --- stable/11/bin/chmod/chmod.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/chmod/chmod.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1989, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/cp/cp.c
> ==============================================================================
> --- stable/11/bin/cp/cp.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/cp/cp.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1988, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/cp/extern.h
> ==============================================================================
> --- stable/11/bin/cp/extern.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/cp/extern.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/cp/utils.c
> ==============================================================================
> --- stable/11/bin/cp/utils.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/cp/utils.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/date/date.c
> ==============================================================================
> --- stable/11/bin/date/date.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/date/date.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1985, 1987, 1988, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/date/extern.h
> ==============================================================================
> --- stable/11/bin/date/extern.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/date/extern.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/date/netdate.c
> ==============================================================================
> --- stable/11/bin/date/netdate.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/date/netdate.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1990, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/dd/args.c
> ==============================================================================
> --- stable/11/bin/dd/args.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/dd/args.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/dd/conv.c
> ==============================================================================
> --- stable/11/bin/dd/conv.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/dd/conv.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/dd/conv_tab.c
> ==============================================================================
> --- stable/11/bin/dd/conv_tab.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/dd/conv_tab.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/dd/dd.c
> ==============================================================================
> --- stable/11/bin/dd/dd.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/dd/dd.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/dd/dd.h
> ==============================================================================
> --- stable/11/bin/dd/dd.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/dd/dd.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/dd/extern.h
> ==============================================================================
> --- stable/11/bin/dd/extern.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/dd/extern.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/dd/misc.c
> ==============================================================================
> --- stable/11/bin/dd/misc.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/dd/misc.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/dd/position.c
> ==============================================================================
> --- stable/11/bin/dd/position.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/dd/position.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/df/df.c
> ==============================================================================
> --- stable/11/bin/df/df.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/df/df.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1980, 1990, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   * (c) UNIX System Laboratories, Inc.
>
> Modified: stable/11/bin/domainname/domainname.c
> ==============================================================================
> --- stable/11/bin/domainname/domainname.c	Wed Mar 14 03:09:47
> 2018	(r330896)
> +++ stable/11/bin/domainname/domainname.c	Wed Mar 14 03:19:51
> 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1988, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/echo/echo.c
> ==============================================================================
> --- stable/11/bin/echo/echo.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/echo/echo.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1989, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ed/cbc.c
> ==============================================================================
> --- stable/11/bin/ed/cbc.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ed/cbc.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,5 +1,7 @@
>  /* cbc.c: This file contains the encryption routines for the ed line editor
> */
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1993 The Regents of the University of California.
>   * All rights reserved.
>   *
>
> Modified: stable/11/bin/hostname/hostname.c
> ==============================================================================
> --- stable/11/bin/hostname/hostname.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/hostname/hostname.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1988, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/kill/kill.c
> ==============================================================================
> --- stable/11/bin/kill/kill.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/kill/kill.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1988, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ln/ln.c
> ==============================================================================
> --- stable/11/bin/ln/ln.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ln/ln.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1987, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ls/cmp.c
> ==============================================================================
> --- stable/11/bin/ls/cmp.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ls/cmp.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1989, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ls/extern.h
> ==============================================================================
> --- stable/11/bin/ls/extern.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ls/extern.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ls/ls.c
> ==============================================================================
> --- stable/11/bin/ls/ls.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ls/ls.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1989, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ls/ls.h
> ==============================================================================
> --- stable/11/bin/ls/ls.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ls/ls.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1989, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ls/print.c
> ==============================================================================
> --- stable/11/bin/ls/print.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ls/print.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1989, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ls/util.c
> ==============================================================================
> --- stable/11/bin/ls/util.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ls/util.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1989, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/mkdir/mkdir.c
> ==============================================================================
> --- stable/11/bin/mkdir/mkdir.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/mkdir/mkdir.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1983, 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/mv/mv.c
> ==============================================================================
> --- stable/11/bin/mv/mv.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/mv/mv.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1989, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/pax/ar_io.c
> ==============================================================================
> --- stable/11/bin/pax/ar_io.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/ar_io.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/ar_subs.c
> ==============================================================================
> --- stable/11/bin/pax/ar_subs.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/ar_subs.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/buf_subs.c
> ==============================================================================
> --- stable/11/bin/pax/buf_subs.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/buf_subs.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/cache.c
> ==============================================================================
> --- stable/11/bin/pax/cache.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/cache.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/cache.h
> ==============================================================================
> --- stable/11/bin/pax/cache.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/cache.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/cpio.c
> ==============================================================================
> --- stable/11/bin/pax/cpio.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/cpio.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/cpio.h
> ==============================================================================
> --- stable/11/bin/pax/cpio.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/cpio.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/extern.h
> ==============================================================================
> --- stable/11/bin/pax/extern.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/extern.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/file_subs.c
> ==============================================================================
> --- stable/11/bin/pax/file_subs.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/file_subs.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/ftree.c
> ==============================================================================
> --- stable/11/bin/pax/ftree.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/ftree.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/ftree.h
> ==============================================================================
> --- stable/11/bin/pax/ftree.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/ftree.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/gen_subs.c
> ==============================================================================
> --- stable/11/bin/pax/gen_subs.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/gen_subs.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/options.c
> ==============================================================================
> --- stable/11/bin/pax/options.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/options.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/options.h
> ==============================================================================
> --- stable/11/bin/pax/options.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/options.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/pat_rep.c
> ==============================================================================
> --- stable/11/bin/pax/pat_rep.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/pat_rep.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/pat_rep.h
> ==============================================================================
> --- stable/11/bin/pax/pat_rep.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/pat_rep.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/pax.c
> ==============================================================================
> --- stable/11/bin/pax/pax.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/pax.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/pax.h
> ==============================================================================
> --- stable/11/bin/pax/pax.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/pax.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/sel_subs.c
> ==============================================================================
> --- stable/11/bin/pax/sel_subs.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/sel_subs.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/sel_subs.h
> ==============================================================================
> --- stable/11/bin/pax/sel_subs.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/sel_subs.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/tables.c
> ==============================================================================
> --- stable/11/bin/pax/tables.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/tables.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/tables.h
> ==============================================================================
> --- stable/11/bin/pax/tables.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/tables.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/tar.c
> ==============================================================================
> --- stable/11/bin/pax/tar.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/tar.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/tar.h
> ==============================================================================
> --- stable/11/bin/pax/tar.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/tar.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/pax/tty_subs.c
> ==============================================================================
> --- stable/11/bin/pax/tty_subs.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pax/tty_subs.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992 Keith Muller.
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>
> Modified: stable/11/bin/ps/extern.h
> ==============================================================================
> --- stable/11/bin/ps/extern.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ps/extern.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ps/fmt.c
> ==============================================================================
> --- stable/11/bin/ps/fmt.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ps/fmt.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ps/keyword.c
> ==============================================================================
> --- stable/11/bin/ps/keyword.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ps/keyword.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1990, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ps/nlist.c
> ==============================================================================
> --- stable/11/bin/ps/nlist.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ps/nlist.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1990, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ps/print.c
> ==============================================================================
> --- stable/11/bin/ps/print.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ps/print.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1990, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ps/ps.c
> ==============================================================================
> --- stable/11/bin/ps/ps.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ps/ps.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1990, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/ps/ps.h
> ==============================================================================
> --- stable/11/bin/ps/ps.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/ps/ps.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1990, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/pwd/pwd.c
> ==============================================================================
> --- stable/11/bin/pwd/pwd.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/pwd/pwd.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/realpath/realpath.c
> ==============================================================================
> --- stable/11/bin/realpath/realpath.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/realpath/realpath.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/rm/rm.c
> ==============================================================================
> --- stable/11/bin/rm/rm.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/rm/rm.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1990, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/rmdir/rmdir.c
> ==============================================================================
> --- stable/11/bin/rmdir/rmdir.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/rmdir/rmdir.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992, 1993, 1994
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/bltin/bltin.h
> ==============================================================================
> --- stable/11/bin/sh/bltin/bltin.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/bltin/bltin.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/bltin/echo.c
> ==============================================================================
> --- stable/11/bin/sh/bltin/echo.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/bltin/echo.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/mail.h
> ==============================================================================
> --- stable/11/bin/sh/mail.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/mail.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/main.c
> ==============================================================================
> --- stable/11/bin/sh/main.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/main.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/main.h
> ==============================================================================
> --- stable/11/bin/sh/main.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/main.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/memalloc.c
> ==============================================================================
> --- stable/11/bin/sh/memalloc.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/memalloc.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/memalloc.h
> ==============================================================================
> --- stable/11/bin/sh/memalloc.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/memalloc.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/miscbltin.c
> ==============================================================================
> --- stable/11/bin/sh/miscbltin.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/miscbltin.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/mknodes.c
> ==============================================================================
> --- stable/11/bin/sh/mknodes.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/mknodes.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/mksyntax.c
> ==============================================================================
> --- stable/11/bin/sh/mksyntax.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/mksyntax.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/myhistedit.h
> ==============================================================================
> --- stable/11/bin/sh/myhistedit.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/myhistedit.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/mystring.c
> ==============================================================================
> --- stable/11/bin/sh/mystring.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/mystring.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/mystring.h
> ==============================================================================
> --- stable/11/bin/sh/mystring.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/mystring.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/options.c
> ==============================================================================
> --- stable/11/bin/sh/options.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/options.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/options.h
> ==============================================================================
> --- stable/11/bin/sh/options.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/options.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/output.c
> ==============================================================================
> --- stable/11/bin/sh/output.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/output.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/output.h
> ==============================================================================
> --- stable/11/bin/sh/output.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/output.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/parser.c
> ==============================================================================
> --- stable/11/bin/sh/parser.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/parser.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/parser.h
> ==============================================================================
> --- stable/11/bin/sh/parser.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/parser.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/redir.c
> ==============================================================================
> --- stable/11/bin/sh/redir.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/redir.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/redir.h
> ==============================================================================
> --- stable/11/bin/sh/redir.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/redir.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/shell.h
> ==============================================================================
> --- stable/11/bin/sh/shell.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/shell.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/show.c
> ==============================================================================
> --- stable/11/bin/sh/show.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/show.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/show.h
> ==============================================================================
> --- stable/11/bin/sh/show.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/show.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1995
>   *      The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/trap.c
> ==============================================================================
> --- stable/11/bin/sh/trap.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/trap.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/trap.h
> ==============================================================================
> --- stable/11/bin/sh/trap.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/trap.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/var.c
> ==============================================================================
> --- stable/11/bin/sh/var.c	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/var.c	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/bin/sh/var.h
> ==============================================================================
> --- stable/11/bin/sh/var.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/bin/sh/var.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/include/_ctype.h
> ==============================================================================
> --- stable/11/include/_ctype.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/_ctype.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
> -/*
> +/*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1989, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   * (c) UNIX System Laboratories, Inc.
>
> Modified: stable/11/include/a.out.h
> ==============================================================================
> --- stable/11/include/a.out.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/a.out.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/include/ar.h
> ==============================================================================
> --- stable/11/include/ar.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/ar.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1991, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   * (c) UNIX System Laboratories, Inc.
>
> Modified: stable/11/include/arpa/ftp.h
> ==============================================================================
> --- stable/11/include/arpa/ftp.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/arpa/ftp.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
> -/*
> +/*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1983, 1989, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/include/arpa/inet.h
> ==============================================================================
> --- stable/11/include/arpa/inet.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/arpa/inet.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
> -/*
> +/*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * ++Copyright++ 1983, 1993
>   * -
>   * Copyright (c) 1983, 1993
>
> Modified: stable/11/include/arpa/nameser.h
> ==============================================================================
> --- stable/11/include/arpa/nameser.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/arpa/nameser.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -15,7 +15,9 @@
>   * PERFORMANCE OF THIS SOFTWARE.
>   */
>
> -/*
> +/*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1983, 1989, 1993
>   *    The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/include/arpa/nameser_compat.h
> ==============================================================================
> --- stable/11/include/arpa/nameser_compat.h	Wed Mar 14 03:09:47
> 2018	(r330896)
> +++ stable/11/include/arpa/nameser_compat.h	Wed Mar 14 03:19:51
> 2018	(r330897)
> @@ -1,4 +1,7 @@
> -/* Copyright (c) 1983, 1989
> +/*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
> + * Copyright (c) 1983, 1989
>   *    The Regents of the University of California.  All rights reserved.
>   *
>   * Redistribution and use in source and binary forms, with or without
>
> Modified: stable/11/include/arpa/telnet.h
> ==============================================================================
> --- stable/11/include/arpa/telnet.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/arpa/telnet.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
> -/*
> +/*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1983, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/include/arpa/tftp.h
> ==============================================================================
> --- stable/11/include/arpa/tftp.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/arpa/tftp.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
> -/*
> +/*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1983, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   *
>
> Modified: stable/11/include/assert.h
> ==============================================================================
> --- stable/11/include/assert.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/assert.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>   * Copyright (c) 1992, 1993
>   *	The Regents of the University of California.  All rights reserved.
>   * (c) UNIX System Laboratories, Inc.
>
> Modified: stable/11/include/bitstring.h
> ==============================================================================
> --- stable/11/include/bitstring.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/bitstring.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
> + *
>   * Copyright (c) 2003 Poul-Henning Kamp
>   * All rights reserved.
>   *
>
> Modified: stable/11/include/complex.h
> ==============================================================================
> --- stable/11/include/complex.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/complex.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
> + *
>   * Copyright (c) 2001-2011 The FreeBSD Project.
>   * All rights reserved.
>   *
>
> Modified: stable/11/include/cpio.h
> ==============================================================================
> --- stable/11/include/cpio.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/cpio.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
>  /*-
> + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
> + *
>   * Copyright (c) 2002 Mike Barcroft 
>   * All rights reserved.
>   *
>
> Modified: stable/11/include/ctype.h
> ==============================================================================
> --- stable/11/include/ctype.h	Wed Mar 14 03:09:47 2018	(r330896)
> +++ stable/11/include/ctype.h	Wed Mar 14 03:19:51 2018	(r330897)
> @@ -1,4 +1,6 @@
> -/*
> +/*-
> + * SPDX-License-Identifier: BSD-3-Clause
> + *
>
> *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
> _______________________________________________
> svn-src-stable-11@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-stable-11
> To unsubscribe, send any mail to
> "svn-src-stable-11-unsubscribe@freebsd.org"
>

From owner-svn-src-all@freebsd.org  Wed Mar 28 18:19:46 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C24CF6EE08
 for ;
 Wed, 28 Mar 2018 18:19:46 +0000 (UTC)
 (envelope-from oliver.pinter@hardenedbsd.org)
Received: from mail-yw0-x242.google.com (mail-yw0-x242.google.com
 [IPv6:2607:f8b0:4002:c05::242])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E4EE17B7A7
 for ; Wed, 28 Mar 2018 18:19:45 +0000 (UTC)
 (envelope-from oliver.pinter@hardenedbsd.org)
Received: by mail-yw0-x242.google.com with SMTP id z21so1106725ywg.11
 for ; Wed, 28 Mar 2018 11:19:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=27rNzb9IOMhcYWvi/CyiRZBFDDV05vc2S1y8ysHZQIA=;
 b=zf79myFCxjaX4xmtMm3ZJkqR4M15safUUin6jj9rnoPZd3zJqR+SmyjSVpBPsPGN5R
 KJ5Pb+Cb9z/0u8PuvoK9D3nusVcdm2IjPTnrtholvtmsooZew5mOx4N5f8lj+b4TazGO
 i16k8Bu6Ufe3bj8loP9kMar4AhoDaD3LJWb7j56SLigzvPtfgC7snJKJGkYDABvYqT7l
 sMQs8KHOjYdJ8i+1xS0tF1RmIrMFwt6dMwJ8DXZuf/rnWO7FtEbjgqRUvjgQ93XwQAiL
 XI75QyGi1+5J0Cx/V7GQiGaD1JvgLZIz4puHnRjUfq4fCBGIGJe+1xdqbPhKG4A/V/6H
 ouFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=27rNzb9IOMhcYWvi/CyiRZBFDDV05vc2S1y8ysHZQIA=;
 b=tlvdpAf6Np0RwRv4DTHVKC5edUL1oywx5trcKRQxCpGwtyigH3GHNeoSUNIB/oNy6x
 vzFewCwlDKVV+UdA5ufaof3an4xS5OfbGGR/CPU3Qbwwm3kwo/34JcvMK0wrFc8Ervyy
 MEtRq7TYxntaZV8XTVeIx9XAVnX4dCTQyAWu5KXQQvagwAXW4uX7ThTVpmdixs2Ca7Ok
 D3ToRgAKDBmsUCt/C+Y2Y5/O7Oh6Ka8vGt5wSYAfSQwL+RS4mygATiFveyoVSrEL3fBw
 RZ67MRtzdmHFKyqLbtT41Wz5427CQ70NfnNF40/u2LGKnTwauAFjH8blhhv3R1TVMiFZ
 8MeQ==
X-Gm-Message-State: AElRT7FpPPwpIc0sFHxEil2AHqaE9ayjOWrJJKnR2PGQ5L/uI/26uc/P
 PS6lr8rcjvlcyUx4K42PRvY3plaOEmS1bOSHzbyn4g==
X-Google-Smtp-Source: AIpwx481n1xmvOBkujlVuxf+X6CXU5/Smgx/9u3zNcpCSt9IKflpPUpuA9BiwzIV2WbnneonsabsimJ03QiZ9M4E8gE=
X-Received: by 10.13.204.146 with SMTP id o140mr2992519ywd.265.1522261185454; 
 Wed, 28 Mar 2018 11:19:45 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a25:61c5:0:0:0:0:0 with HTTP; Wed, 28 Mar 2018 11:19:45
 -0700 (PDT)
In-Reply-To: 
References: <201803140319.w2E3JuGP036341@repo.freebsd.org>
 
From: Oliver Pinter 
Date: Wed, 28 Mar 2018 20:19:45 +0200
Message-ID: 
Subject: Re: svn commit: r330897 - in stable/11: bin/cat bin/chflags bin/chmod
 bin/cp bin/date bin/dd bin/df bin/domainname bin/echo bin/ed
 bin/hostname
 bin/kill bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bi...
To: Eitan Adler , cem@freebsd.org
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 18:19:46 -0000

On 3/28/18, Oliver Pinter  wrote:
> Hi!
>
> This part of the MFC is wrong:
>
> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
>
> Could you please MFC back the other random related changes too? Some
> of them made by cem@.

Namely these commits:

commit b95744ba0ac2f46a95ecbe423a4d8dd7c9513da0
Author: Oliver Pinter 
Date:   Sun Oct 15 17:15:48 2017 +0200

    opBSD MFC r324394: random(4): Gather entropy from Pure sources

    At initialization, hc_source_mask only includes non-Pure sources.

    The patch changes source registration to enable the registered source in the
    hc_source_mask bitmask. This mask governs which sources are harvested.

    This patch also disallows userspace from disabling such sources.

    PR:             222807
    Submitted by:   W. Dean Freeman 
    Reviewed by:    jmg (earlier version), delphij
    Approved by:    secteam (delphij)
    Obtained from:  HBSD 0054e3e170e083811acc9f3b637f8be8a86c03e7
    Security:       yes
    Differential Revision:  https://reviews.freebsd.org/D12611

    (cherry picked from commit 1c36667f647c87c89227b495e8a79ff1d38a2d31)

    Author: cem 
    Original-commit-date: Sat Oct 7 19:02:03 2017 +0000
    svn-commit-id: /head/ r324394
    Signed-off-by: Oliver Pinter 

commit 6c94c5ce8a5b3ed5dec3bb0437da293de1da22fc
Author: Oliver Pinter 
Date:   Sun Oct 15 17:15:43 2017 +0200

    opBSD MFC r324393: random(4): Add missing source descriptions

    Add source descriptions missed in r260847, r303035.

    While here, convert the array to C99 initializers.

    Reviewed by:    delphij
    Approved by:    secteam (delphij)
    Sponsored by:   Dell EMC Isilon
    Differential Revision:  https://reviews.freebsd.org/D12618

    (cherry picked from commit 25edb3fc554994c75b6282d88b1dd960fd476737)

    Adopted to 11-STABLE since arm/broadcom/bcm2835/bcm2835_rng.c
    does not exists here.

    Author: cem 
    Original-commit-date: Sat Oct 7 18:59:29 2017 +0000
    svn-commit-id: /head/ r324393
    Signed-off-by: Oliver Pinter 

commit 28fc9178aca64f2fec46e2753187b35bcab8e962
Author: Oliver Pinter 
Date:   Sun Oct 15 17:15:37 2017 +0200

    opBSD MFC r324372: random(4): Discard low entropy inputs

    The later fields of the harvest_event structure are predictable and provide
    little value to the entropy pool.  Only feed in the relatively high entropy
    counter and explicit entropy buffer to increase measured input entropy.

    See also:
    https://people.freebsd.org/~jmg/vbsdcon_2017_ddfreebsdrng_slides.pdf

    PR:             222807
    Submitted by:   W. Dean Freeman 
    Reviewed by:    jmg (earlier version), delphij
    Approved by:    secteam (delphij)
    Obtained from:  HBSD 8d809124d563937edd84c9c9d5494406e359c55c
    Security:       no -- low entropy marginal input has no known
negative affect on pool quality
    Differential Revision:  https://reviews.freebsd.org/D12610

    (cherry picked from commit 1d234c562d594d49fd330eef90cd1b8f0e73f8fa)

    Author: cem 
    Original-commit-date: Fri Oct 6 18:27:55 2017 +0000
    svn-commit-id: /head/ r324372
    Signed-off-by: Oliver Pinter 


>
> On 3/14/18, Eitan Adler  wrote:
>> Author: eadler
>> Date: Wed Mar 14 03:19:51 2018
>> New Revision: 330897
>> URL: https://svnweb.freebsd.org/changeset/base/330897
>>

[... trim ...]

From owner-svn-src-all@freebsd.org  Wed Mar 28 18:28:28 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39E7FF6F1B8;
 Wed, 28 Mar 2018 18:28:28 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E39717BD77;
 Wed, 28 Mar 2018 18:28:27 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D8B436A46;
 Wed, 28 Mar 2018 18:28:27 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SISRa9019436;
 Wed, 28 Mar 2018 18:28:27 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SISRvN019435;
 Wed, 28 Mar 2018 18:28:27 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201803281828.w2SISRvN019435@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber 
Date: Wed, 28 Mar 2018 18:28:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331696 - head/share/man/man7
X-SVN-Group: head
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: head/share/man/man7
X-SVN-Commit-Revision: 331696
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 18:28:28 -0000

Author: gjb
Date: Wed Mar 28 18:28:27 2018
New Revision: 331696
URL: https://svnweb.freebsd.org/changeset/base/331696

Log:
  Update the Release Engineering article URL to the modern version.
  
  MFC after:	3 days
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/share/man/man7/release.7

Modified: head/share/man/man7/release.7
==============================================================================
--- head/share/man/man7/release.7	Wed Mar 28 18:12:06 2018	(r331695)
+++ head/share/man/man7/release.7	Wed Mar 28 18:28:27 2018	(r331696)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 28, 2017
+.Dd March 28, 2018
 .Dt RELEASE 7
 .Os
 .Sh NAME
@@ -709,7 +709,7 @@ variable in
 .Xr sysctl 8
 .Rs
 .%T "FreeBSD Release Engineering"
-.%U https://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/
+.%U https://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/freebsd-releng/
 .Re
 .Rs
 .%T "FreeBSD Developers' Handbook"

From owner-svn-src-all@freebsd.org  Wed Mar 28 18:34:18 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id EAD60F6F42C
 for ;
 Wed, 28 Mar 2018 18:34:17 +0000 (UTC)
 (envelope-from oliver.pinter@hardenedbsd.org)
Received: from mail-yb0-x242.google.com (mail-yb0-x242.google.com
 [IPv6:2607:f8b0:4002:c09::242])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EA9907C285
 for ; Wed, 28 Mar 2018 18:34:16 +0000 (UTC)
 (envelope-from oliver.pinter@hardenedbsd.org)
Received: by mail-yb0-x242.google.com with SMTP id x72-v6so1134129ybe.8
 for ; Wed, 28 Mar 2018 11:34:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=hardenedbsd-org.20150623.gappssmtp.com; s=20150623;
 h=mime-version:in-reply-to:references:from:date:message-id:subject:to
 :cc; bh=+1dfVU3FReVH0ojA+Bhrwh+JP2g8PoV7rolRqSj1AZQ=;
 b=FTVZrrKuHZJ/Q8Rw4/3H3t/vbrb2nvR8VUDk3oEL4h0TIeTftvabNfToeifVFexwo2
 p2y7TiMJACQXpEJUrKUpXpWmGvlNlm1uJow71nwHhhxJm4kLGe4eUqnGI7VcakBAqu6I
 t1Rw+2d+ZN3dH1lmWlT4vIcXZhVAUJ/Qtm5F5D9ZZVMytSEtYVC18vhKPvx31ZNbk9yS
 JlyFnSzyjziFbwZB1U1o0Not0BN2a9hSUJeCmm7Urly0zgCfr2mHV4I/+heyXdQ0N6QW
 0bb5Peq2IEpylUmvz8OfLCpVH8NZKU+ykiNUIcA7xuwVJGg+HQsybO0QfGlp6VWwu67o
 s9fg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=+1dfVU3FReVH0ojA+Bhrwh+JP2g8PoV7rolRqSj1AZQ=;
 b=aQ23xLRNkDl1tYYWk85RPz6/Prp5swqDAa6vlI7Xv5H41paKOVqzdKKb9hQmTTFSo9
 C6LSd32ssYTBiPvUuB89Di/I4gYZkJ5NQCSLZ8uWeUNvyj66WDa7DWFLfwIGEP9ZQKuB
 20mwkuTEG7TLueDwnbi9LlD11vf/HfxfVLY6WjN0bsaQlerT4XFCra5pG51TtWtkPmJp
 aJGVrVv0FMEPQUOG3unjYPTD91HmxJnM/yO/p/hmfPAt9Ey/2T0ue98wNVlIUYqG+VdX
 g5ZSLanXTLo0rDsKQliFrXQukEJYQfL7ffCHHxIvq6gysTTvaxWnIxup86xVLhQQ50VK
 kLow==
X-Gm-Message-State: AElRT7EKULKrnJFn2vODoXRP/DaVoHu3bo0zfOHlo4a4DBUmprpHF1Ko
 7QW07ZoOUJxLagq4fZNUcGV7bNQBOvVd3l0TxPj54w==
X-Google-Smtp-Source: AIpwx48t6gdN+o/JaYzlB0GXdZkLWJAFbVey1gaYFrPl/T3VMJdwtp+or3wyF8ww64ylIdOpNlIYhC5v0v0jDZqeLvg=
X-Received: by 2002:a25:c791:: with SMTP id
 w139-v6mr2971660ybe.199.1522262056487; 
 Wed, 28 Mar 2018 11:34:16 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a25:61c5:0:0:0:0:0 with HTTP; Wed, 28 Mar 2018 11:34:15
 -0700 (PDT)
In-Reply-To: 
References: <201803140319.w2E3JuGP036341@repo.freebsd.org>
 
 
From: Oliver Pinter 
Date: Wed, 28 Mar 2018 20:34:15 +0200
Message-ID: 
Subject: Re: svn commit: r330897 - in stable/11: bin/cat bin/chflags bin/chmod
 bin/cp bin/date bin/dd bin/df bin/domainname bin/echo bin/ed
 bin/hostname
 bin/kill bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bi...
To: Eitan Adler , cem@freebsd.org
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Content-Type: multipart/mixed; boundary="00000000000021f99505687d419c"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 18:34:18 -0000

--00000000000021f99505687d419c
Content-Type: text/plain; charset="UTF-8"

On 3/28/18, Oliver Pinter  wrote:
> On 3/28/18, Oliver Pinter  wrote:
>> Hi!
>>
>> This part of the MFC is wrong:
>>
>> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
>>
>> Could you please MFC back the other random related changes too? Some
>> of them made by cem@.
>
> Namely these commits:
>
> commit b95744ba0ac2f46a95ecbe423a4d8dd7c9513da0
> Author: Oliver Pinter 
> Date:   Sun Oct 15 17:15:48 2017 +0200
>
>     opBSD MFC r324394: random(4): Gather entropy from Pure sources
>
>     At initialization, hc_source_mask only includes non-Pure sources.
>
>     The patch changes source registration to enable the registered source in
> the
>     hc_source_mask bitmask. This mask governs which sources are harvested.
>
>     This patch also disallows userspace from disabling such sources.
>
>     PR:             222807
>     Submitted by:   W. Dean Freeman 
>     Reviewed by:    jmg (earlier version), delphij
>     Approved by:    secteam (delphij)
>     Obtained from:  HBSD 0054e3e170e083811acc9f3b637f8be8a86c03e7
>     Security:       yes
>     Differential Revision:  https://reviews.freebsd.org/D12611
>
>     (cherry picked from commit 1c36667f647c87c89227b495e8a79ff1d38a2d31)
>
>     Author: cem 
>     Original-commit-date: Sat Oct 7 19:02:03 2017 +0000
>     svn-commit-id: /head/ r324394
>     Signed-off-by: Oliver Pinter 
>
> commit 6c94c5ce8a5b3ed5dec3bb0437da293de1da22fc
> Author: Oliver Pinter 
> Date:   Sun Oct 15 17:15:43 2017 +0200
>
>     opBSD MFC r324393: random(4): Add missing source descriptions
>
>     Add source descriptions missed in r260847, r303035.
>
>     While here, convert the array to C99 initializers.
>
>     Reviewed by:    delphij
>     Approved by:    secteam (delphij)
>     Sponsored by:   Dell EMC Isilon
>     Differential Revision:  https://reviews.freebsd.org/D12618
>
>     (cherry picked from commit 25edb3fc554994c75b6282d88b1dd960fd476737)
>
>     Adopted to 11-STABLE since arm/broadcom/bcm2835/bcm2835_rng.c
>     does not exists here.
>
>     Author: cem 
>     Original-commit-date: Sat Oct 7 18:59:29 2017 +0000
>     svn-commit-id: /head/ r324393
>     Signed-off-by: Oliver Pinter 
>
> commit 28fc9178aca64f2fec46e2753187b35bcab8e962
> Author: Oliver Pinter 
> Date:   Sun Oct 15 17:15:37 2017 +0200
>
>     opBSD MFC r324372: random(4): Discard low entropy inputs
>
>     The later fields of the harvest_event structure are predictable and
> provide
>     little value to the entropy pool.  Only feed in the relatively high
> entropy
>     counter and explicit entropy buffer to increase measured input entropy.
>
>     See also:
>     https://people.freebsd.org/~jmg/vbsdcon_2017_ddfreebsdrng_slides.pdf
>
>     PR:             222807
>     Submitted by:   W. Dean Freeman 
>     Reviewed by:    jmg (earlier version), delphij
>     Approved by:    secteam (delphij)
>     Obtained from:  HBSD 8d809124d563937edd84c9c9d5494406e359c55c
>     Security:       no -- low entropy marginal input has no known
> negative affect on pool quality
>     Differential Revision:  https://reviews.freebsd.org/D12610
>
>     (cherry picked from commit 1d234c562d594d49fd330eef90cd1b8f0e73f8fa)
>
>     Author: cem 
>     Original-commit-date: Fri Oct 6 18:27:55 2017 +0000
>     svn-commit-id: /head/ r324372
>     Signed-off-by: Oliver Pinter 
>

Or please apply the attached patch.

>
>>
>> On 3/14/18, Eitan Adler  wrote:
>>> Author: eadler
>>> Date: Wed Mar 14 03:19:51 2018
>>> New Revision: 330897
>>> URL: https://svnweb.freebsd.org/changeset/base/330897
>>>
>
> [... trim ...]
>

--00000000000021f99505687d419c
Content-Type: text/plain; charset="US-ASCII"; name="sys-sys-random-h-mismerge.diff"
Content-Disposition: attachment; filename="sys-sys-random-h-mismerge.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: file0

RnJvbSAzOGQ5YjY3MDgwNmM2NGMzMWY0OWY0MjU3MDdkNTlhYWQ4OWI2MjQ2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBPbGl2ZXIgUGludGVyIDxvbGl2ZXIucGludGVyQGhhcmRlbmVk
YnNkLm9yZz4KRGF0ZTogV2VkLCAyOCBNYXIgMjAxOCAyMDoyNjozMCArMDIwMApTdWJqZWN0OiBb
UEFUQ0hdIG9wQlNEOiByZXZlcnQgbWlzTUZDZCBwYXJ0cyBvZiBzeXMvc3lzL3JhbmRvbS5oCgpT
aWduZWQtb2ZmLWJ5OiBPbGl2ZXIgUGludGVyIDxvbGl2ZXIucGludGVyQGhhcmRlbmVkYnNkLm9y
Zz4KCmRpZmYgLS1naXQgYS9zeXMvc3lzL3JhbmRvbS5oIGIvc3lzL3N5cy9yYW5kb20uaAppbmRl
eCA5ZTAzZTVlZjY1MjcuLjI2NzY0ODUxZDAwYyAxMDA2NDQKLS0tIGEvc3lzL3N5cy9yYW5kb20u
aAorKysgYi9zeXMvc3lzL3JhbmRvbS5oCkBAIC02MCw5ICs2MCw5IEBAIHJlYWRfcmFuZG9tKHZv
aWQgKmEgX191bnVzZWQsIHVfaW50IGIgX191bnVzZWQpCiAjZW5kaWYKIAogLyoKLSAqIE5vdGU6
IGlmIHlvdSBhZGQgb3IgcmVtb3ZlIG1lbWJlcnMgb2YgcmFuZG9tX2VudHJvcHlfc291cmNlLCBy
ZW1lbWJlciB0bwotICogYWxzbyB1cGRhdGUgdGhlIHN0cmluZ3MgaW4gdGhlIHN0YXRpYyBhcnJh
eSByYW5kb21fc291cmNlX2Rlc2NyW10gaW4KLSAqIHJhbmRvbV9oYXJ2ZXN0cS5jLgorICogTm90
ZTogaWYgeW91IGFkZCBvciByZW1vdmUgbWVtYmVycyBvZiByYW5kb21fZW50cm9weV9zb3VyY2Us
IHJlbWVtYmVyIHRvIGFsc28gdXBkYXRlIHRoZQorICogS0FTU0VSVCByZWdhcmRpbmcgd2hhdCB2
YWxpZCBtZW1iZXJzIGFyZSBpbiByYW5kb21faGFydmVzdF9pbnRlcm5hbCgpLCBhbmQgcmVtZW1i
ZXIgdGhlCisgKiBzdHJpbmdzIGluIHRoZSBzdGF0aWMgYXJyYXkgcmFuZG9tX3NvdXJjZV9kZXNj
cltdIGluIHJhbmRvbV9oYXJ2ZXN0cS5jLgogICoKICAqIE5PVEU6IGNvbXBsYWluIGxvdWRseSB0
byBtYXJrbUAgb3Igb24gdGhlIGxpc3RzIGlmIHRoaXMgZW51bSBnZXRzIG1vcmUgdGhhbiAzMgog
ICogZGlzdGluY3QgdmFsdWVzICgwLTMxKSEgRU5UUk9QWVNPVVJDRSBtYXkgYmUgPT0gMzIsIGJ1
dCBub3QgPiAzMi4KQEAgLTgzLDggKzgzLDcgQEAgZW51bSByYW5kb21fZW50cm9weV9zb3VyY2Ug
ewogCVJBTkRPTV9VTUEsCS8qIFNwZWNpYWwhISBVTUEvU0xBQiBBbGxvY2F0b3IgKi8KIAlSQU5E
T01fRU5WSVJPTk1FTlRBTF9FTkQgPSBSQU5ET01fVU1BLAogCS8qIEZhc3QgaGFyZHdhcmUgcmFu
ZG9tLW51bWJlciBzb3VyY2VzIGZyb20gaGVyZSBvbi4gKi8KLQlSQU5ET01fUFVSRV9TVEFSVCwK
LQlSQU5ET01fUFVSRV9PQ1RFT04gPSBSQU5ET01fUFVSRV9TVEFSVCwKKwlSQU5ET01fUFVSRV9P
Q1RFT04sCiAJUkFORE9NX1BVUkVfU0FGRSwKIAlSQU5ET01fUFVSRV9HTFhTQiwKIAlSQU5ET01f
UFVSRV9VQlNFQywKQEAgLTkzLDI5ICs5MiwxOSBAQCBlbnVtIHJhbmRvbV9lbnRyb3B5X3NvdXJj
ZSB7CiAJUkFORE9NX1BVUkVfTkVIRU1JQUgsCiAJUkFORE9NX1BVUkVfUk5EVEVTVCwKIAlSQU5E
T01fUFVSRV9WSVJUSU8sCi0JUkFORE9NX1BVUkVfQlJPQURDT00sCiAJRU5UUk9QWVNPVVJDRQog
fTsKIAogI2RlZmluZSBSQU5ET01fSEFSVkVTVF9FVkVSWVRISU5HX01BU0sgKCgxIDw8IChSQU5E
T01fRU5WSVJPTk1FTlRBTF9FTkQgKyAxKSkgLSAxKQotI2RlZmluZSBSQU5ET01fSEFSVkVTVF9Q
VVJFX01BU0sgKCgoMSA8PCBFTlRST1BZU09VUkNFKSAtIDEpICYgKC0xVUwgPDwgUkFORE9NX1BV
UkVfU1RBUlQpKQotCi0jZGVmaW5lIFJBTkRPTV9MRUdBQ1lfQk9PVF9FTlRST1BZX01PRFVMRQki
L2Jvb3QvZW50cm9weSIKLSNkZWZpbmUgUkFORE9NX0NBQ0hFRF9CT09UX0VOVFJPUFlfTU9EVUxF
CSJib290X2VudHJvcHlfY2FjaGUiCi0jZGVmaW5lCVJBTkRPTV9DQUNIRURfU0tJUF9TVEFSVAky
NTYKIAogI2lmIGRlZmluZWQoREVWX1JBTkRPTSkKIHZvaWQgcmFuZG9tX2hhcnZlc3RfcXVldWUo
Y29uc3Qgdm9pZCAqLCB1X2ludCwgdV9pbnQsIGVudW0gcmFuZG9tX2VudHJvcHlfc291cmNlKTsK
IHZvaWQgcmFuZG9tX2hhcnZlc3RfZmFzdChjb25zdCB2b2lkICosIHVfaW50LCB1X2ludCwgZW51
bSByYW5kb21fZW50cm9weV9zb3VyY2UpOwogdm9pZCByYW5kb21faGFydmVzdF9kaXJlY3QoY29u
c3Qgdm9pZCAqLCB1X2ludCwgdV9pbnQsIGVudW0gcmFuZG9tX2VudHJvcHlfc291cmNlKTsKLXZv
aWQgcmFuZG9tX2hhcnZlc3RfcmVnaXN0ZXJfc291cmNlKGVudW0gcmFuZG9tX2VudHJvcHlfc291
cmNlKTsKLXZvaWQgcmFuZG9tX2hhcnZlc3RfZGVyZWdpc3Rlcl9zb3VyY2UoZW51bSByYW5kb21f
ZW50cm9weV9zb3VyY2UpOwogI2Vsc2UKICNkZWZpbmUgcmFuZG9tX2hhcnZlc3RfcXVldWUoYSwg
YiwgYywgZCkgZG8ge30gd2hpbGUgKDApCiAjZGVmaW5lIHJhbmRvbV9oYXJ2ZXN0X2Zhc3QoYSwg
YiwgYywgZCkgZG8ge30gd2hpbGUgKDApCiAjZGVmaW5lIHJhbmRvbV9oYXJ2ZXN0X2RpcmVjdChh
LCBiLCBjLCBkKSBkbyB7fSB3aGlsZSAoMCkKLSNkZWZpbmUgcmFuZG9tX2hhcnZlc3RfcmVnaXN0
ZXJfc291cmNlKGEpIGRvIHt9IHdoaWxlICgwKQotI2RlZmluZSByYW5kb21faGFydmVzdF9kZXJl
Z2lzdGVyX3NvdXJjZShhKSBkbyB7fSB3aGlsZSAoMCkKICNlbmRpZgogCiAjaWYgZGVmaW5lZChS
QU5ET01fRU5BQkxFX1VNQSkK
--00000000000021f99505687d419c--

From owner-svn-src-all@freebsd.org  Wed Mar 28 18:43:06 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AD95DF6FB57;
 Wed, 28 Mar 2018 18:43:06 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 60E2C7CDAD;
 Wed, 28 Mar 2018 18:43:06 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5BDEE6D70;
 Wed, 28 Mar 2018 18:43:06 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SIh6l4029592;
 Wed, 28 Mar 2018 18:43:06 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SIh6u6029591;
 Wed, 28 Mar 2018 18:43:06 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201803281843.w2SIh6u6029591@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber 
Date: Wed, 28 Mar 2018 18:43:06 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331697 - head/share/man/man7
X-SVN-Group: head
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: head/share/man/man7
X-SVN-Commit-Revision: 331697
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 18:43:06 -0000

Author: gjb
Date: Wed Mar 28 18:43:06 2018
New Revision: 331697
URL: https://svnweb.freebsd.org/changeset/base/331697

Log:
  Add an example for building SD card images for the RPI-B and
  RPI3.
  
  MFC after:	3 days
  Suggested by:	Arshan Khanifar
  Reviewed by:	Arshan Khanifar 
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/share/man/man7/release.7

Modified: head/share/man/man7/release.7
==============================================================================
--- head/share/man/man7/release.7	Wed Mar 28 18:28:27 2018	(r331696)
+++ head/share/man/man7/release.7	Wed Mar 28 18:43:06 2018	(r331697)
@@ -687,6 +687,23 @@ cd /usr/src/release
 sh release.sh -c $HOME/release.conf
 .Ed
 .Pp
+Configuration files specific to various supported embedded systems, such as
+the Raspberry Pi, exist in the directory corresponding to the
+.Va TARGET
+.Xr make 1
+variable.
+For example, to build an image for the Raspberry Pi:
+.Bd -literal -offset indent
+cd /usr/src/release
+sh release.sh -c arm/RPI-B.conf
+.Ed
+.Pp
+To build an image for the Raspberry Pi 3:
+.Bd -literal -offset indent
+cd /usr/src/release
+sh release.sh -c arm64/RPI3.conf
+.Ed
+.Pp
 After running these commands, all prepared release files are available in the
 .Pa /scratch
 directory.

From owner-svn-src-all@freebsd.org  Wed Mar 28 18:47:37 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CADE5F6FCFE;
 Wed, 28 Mar 2018 18:47:36 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 7C3487D01B;
 Wed, 28 Mar 2018 18:47:36 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 578E86D71;
 Wed, 28 Mar 2018 18:47:36 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SIlakb029832;
 Wed, 28 Mar 2018 18:47:36 GMT (envelope-from jeff@FreeBSD.org)
Received: (from jeff@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SIlZh9029824;
 Wed, 28 Mar 2018 18:47:35 GMT (envelope-from jeff@FreeBSD.org)
Message-Id: <201803281847.w2SIlZh9029824@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jeff set sender to
 jeff@FreeBSD.org using -f
From: Jeff Roberson 
Date: Wed, 28 Mar 2018 18:47:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331698 - in head/sys: amd64/include i386/include kern
 x86/x86 x86/xen
X-SVN-Group: head
X-SVN-Commit-Author: jeff
X-SVN-Commit-Paths: in head/sys: amd64/include i386/include kern x86/x86
 x86/xen
X-SVN-Commit-Revision: 331698
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 18:47:37 -0000

Author: jeff
Date: Wed Mar 28 18:47:35 2018
New Revision: 331698
URL: https://svnweb.freebsd.org/changeset/base/331698

Log:
  Restore r331606 with a bugfix to setup cpuset_domain[] earlier on all
  platforms.  Original commit message as follows:
  
  Only use CPUs in the domain the device is attached to for default
  assignment.  Device drivers are able to override the default assignment
  if they bind directly.  There are severe performance penalties for
  handling interrupts on remote CPUs and this should only be done in
  very controlled circumstances.
  
  Reviewed by:    jhb, kib
  Tested by:      pho
  Sponsored by:   Netflix, Dell/EMC Isilon
  Differential Revision:  https://reviews.freebsd.org/D14838

Modified:
  head/sys/amd64/include/intr_machdep.h
  head/sys/i386/include/intr_machdep.h
  head/sys/kern/kern_cpuset.c
  head/sys/x86/x86/intr_machdep.c
  head/sys/x86/x86/io_apic.c
  head/sys/x86/x86/msi.c
  head/sys/x86/x86/nexus.c
  head/sys/x86/xen/xen_intr.c

Modified: head/sys/amd64/include/intr_machdep.h
==============================================================================
--- head/sys/amd64/include/intr_machdep.h	Wed Mar 28 18:43:06 2018	(r331697)
+++ head/sys/amd64/include/intr_machdep.h	Wed Mar 28 18:47:35 2018	(r331698)
@@ -132,6 +132,7 @@ struct intsrc {
 	u_long *is_straycount;
 	u_int is_index;
 	u_int is_handlers;
+	u_int is_domain;
 	u_int is_cpu;
 };
 
@@ -168,7 +169,7 @@ void	intr_add_cpu(u_int cpu);
 #endif
 int	intr_add_handler(const char *name, int vector, driver_filter_t filter, 
 			 driver_intr_t handler, void *arg, enum intr_type flags, 
-			 void **cookiep);    
+			 void **cookiep, int domain);    
 #ifdef SMP
 int	intr_bind(u_int vector, u_char cpu);
 #endif
@@ -176,7 +177,7 @@ int	intr_config_intr(int vector, enum intr_trigger tri
     enum intr_polarity pol);
 int	intr_describe(u_int vector, void *ih, const char *descr);
 void	intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame);
-u_int	intr_next_cpu(void);
+u_int	intr_next_cpu(int domain);
 struct intsrc *intr_lookup_source(int vector);
 int	intr_register_pic(struct pic *pic);
 int	intr_register_source(struct intsrc *isrc);

Modified: head/sys/i386/include/intr_machdep.h
==============================================================================
--- head/sys/i386/include/intr_machdep.h	Wed Mar 28 18:43:06 2018	(r331697)
+++ head/sys/i386/include/intr_machdep.h	Wed Mar 28 18:47:35 2018	(r331698)
@@ -132,6 +132,7 @@ struct intsrc {
 	u_long *is_straycount;
 	u_int is_index;
 	u_int is_handlers;
+	u_int is_domain;
 	u_int is_cpu;
 };
 
@@ -158,7 +159,8 @@ void	elcr_write_trigger(u_int irq, enum intr_trigger t
 void	intr_add_cpu(u_int cpu);
 #endif
 int	intr_add_handler(const char *name, int vector, driver_filter_t filter,
-    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep);
+    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
+    int domain);
 #ifdef SMP
 int	intr_bind(u_int vector, u_char cpu);
 #endif
@@ -166,7 +168,7 @@ int	intr_config_intr(int vector, enum intr_trigger tri
     enum intr_polarity pol);
 int	intr_describe(u_int vector, void *ih, const char *descr);
 void	intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame);
-u_int	intr_next_cpu(void);
+u_int	intr_next_cpu(int domain);
 struct intsrc *intr_lookup_source(int vector);
 int	intr_register_pic(struct pic *pic);
 int	intr_register_source(struct intsrc *isrc);

Modified: head/sys/kern/kern_cpuset.c
==============================================================================
--- head/sys/kern/kern_cpuset.c	Wed Mar 28 18:43:06 2018	(r331697)
+++ head/sys/kern/kern_cpuset.c	Wed Mar 28 18:47:35 2018	(r331698)
@@ -1363,6 +1363,7 @@ cpuset_thread0(void)
 {
 	struct cpuset *set;
 	int error;
+	int i;
 
 	cpuset_zone = uma_zcreate("cpuset", sizeof(struct cpuset), NULL, NULL,
 	    NULL, NULL, UMA_ALIGN_PTR, 0);
@@ -1374,11 +1375,11 @@ cpuset_thread0(void)
 	 * cpuset_create() due to NULL parent.
 	 */
 	set = uma_zalloc(cpuset_zone, M_WAITOK | M_ZERO);
-	CPU_FILL(&set->cs_mask);
+	CPU_COPY(&all_cpus, &set->cs_mask);
 	LIST_INIT(&set->cs_children);
 	LIST_INSERT_HEAD(&cpuset_ids, set, cs_link);
 	set->cs_ref = 1;
-	set->cs_flags = CPU_SET_ROOT;
+	set->cs_flags = CPU_SET_ROOT | CPU_SET_RDONLY;
 	set->cs_domain = &domainset0;
 	cpuset_zero = set;
 	cpuset_root = &set->cs_mask;
@@ -1396,6 +1397,16 @@ cpuset_thread0(void)
 	 */
 	cpuset_unr = new_unrhdr(2, INT_MAX, NULL);
 
+	/*
+	 * If MD code has not initialized per-domain cpusets, place all
+	 * CPUs in domain 0.
+	 */
+	for (i = 0; i < MAXMEMDOM; i++)
+		if (!CPU_EMPTY(&cpuset_domain[i]))
+			goto domains_set;
+	CPU_COPY(&all_cpus, &cpuset_domain[0]);
+domains_set:
+
 	return (set);
 }
 
@@ -1446,34 +1457,6 @@ cpuset_setproc_update_set(struct proc *p, struct cpuse
 	cpuset_rel(set);
 	return (0);
 }
-
-/*
- * This is called once the final set of system cpus is known.  Modifies
- * the root set and all children and mark the root read-only.  
- */
-static void
-cpuset_init(void *arg)
-{
-	cpuset_t mask;
-	int i;
-
-	mask = all_cpus;
-	if (cpuset_modify(cpuset_zero, &mask))
-		panic("Can't set initial cpuset mask.\n");
-	cpuset_zero->cs_flags |= CPU_SET_RDONLY;
-
-	/*
-	 * If MD code has not initialized per-domain cpusets, place all
-	 * CPUs in domain 0.
-	 */
-	for (i = 0; i < MAXMEMDOM; i++)
-		if (!CPU_EMPTY(&cpuset_domain[i]))
-			goto domains_set;
-	CPU_COPY(&all_cpus, &cpuset_domain[0]);
-domains_set:
-	return;
-}
-SYSINIT(cpuset, SI_SUB_SMP, SI_ORDER_ANY, cpuset_init, NULL);
 
 #ifndef _SYS_SYSPROTO_H_
 struct cpuset_args {

Modified: head/sys/x86/x86/intr_machdep.c
==============================================================================
--- head/sys/x86/x86/intr_machdep.c	Wed Mar 28 18:43:06 2018	(r331697)
+++ head/sys/x86/x86/intr_machdep.c	Wed Mar 28 18:47:35 2018	(r331698)
@@ -71,6 +71,8 @@
 #include 
 #endif
 
+#include 
+
 #define	MAX_STRAY_LOG	5
 
 typedef void (*mask_fn)(void *);
@@ -185,7 +187,8 @@ intr_lookup_source(int vector)
 
 int
 intr_add_handler(const char *name, int vector, driver_filter_t filter,
-    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep)
+    driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
+    int domain)
 {
 	struct intsrc *isrc;
 	int error;
@@ -200,6 +203,7 @@ intr_add_handler(const char *name, int vector, driver_
 		intrcnt_updatename(isrc);
 		isrc->is_handlers++;
 		if (isrc->is_handlers == 1) {
+			isrc->is_domain = domain;
 			isrc->is_pic->pic_enable_intr(isrc);
 			isrc->is_pic->pic_enable_source(isrc);
 		}
@@ -507,14 +511,27 @@ DB_SHOW_COMMAND(irqs, db_show_irqs)
  */
 
 cpuset_t intr_cpus = CPUSET_T_INITIALIZER(0x1);
-static int current_cpu;
+static int current_cpu[MAXMEMDOM];
 
+static void
+intr_init_cpus(void)
+{
+	int i;
+
+	for (i = 0; i < vm_ndomains; i++) {
+		current_cpu[i] = 0;
+		if (!CPU_ISSET(current_cpu[i], &intr_cpus) ||
+		    !CPU_ISSET(current_cpu[i], &cpuset_domain[i]))
+			intr_next_cpu(i);
+	}
+}
+
 /*
  * Return the CPU that the next interrupt source should use.  For now
  * this just returns the next local APIC according to round-robin.
  */
 u_int
-intr_next_cpu(void)
+intr_next_cpu(int domain)
 {
 	u_int apic_id;
 
@@ -529,12 +546,13 @@ intr_next_cpu(void)
 #endif
 
 	mtx_lock_spin(&icu_lock);
-	apic_id = cpu_apic_ids[current_cpu];
+	apic_id = cpu_apic_ids[current_cpu[domain]];
 	do {
-		current_cpu++;
-		if (current_cpu > mp_maxid)
-			current_cpu = 0;
-	} while (!CPU_ISSET(current_cpu, &intr_cpus));
+		current_cpu[domain]++;
+		if (current_cpu[domain] > mp_maxid)
+			current_cpu[domain] = 0;
+	} while (!CPU_ISSET(current_cpu[domain], &intr_cpus) ||
+	    !CPU_ISSET(current_cpu[domain], &cpuset_domain[domain]));
 	mtx_unlock_spin(&icu_lock);
 	return (apic_id);
 }
@@ -568,7 +586,18 @@ intr_add_cpu(u_int cpu)
 	CPU_SET(cpu, &intr_cpus);
 }
 
-#ifndef EARLY_AP_STARTUP
+#ifdef EARLY_AP_STARTUP
+static void
+intr_smp_startup(void *arg __unused)
+{
+
+	intr_init_cpus();
+	return;
+}
+SYSINIT(intr_smp_startup, SI_SUB_SMP, SI_ORDER_SECOND, intr_smp_startup,
+    NULL);
+
+#else
 /*
  * Distribute all the interrupt sources among the available CPUs once the
  * AP's have been launched.
@@ -580,6 +609,7 @@ intr_shuffle_irqs(void *arg __unused)
 	u_int cpu;
 	int i;
 
+	intr_init_cpus();
 	/* Don't bother on UP. */
 	if (mp_ncpus == 1)
 		return;
@@ -599,12 +629,12 @@ intr_shuffle_irqs(void *arg __unused)
 			 */
 			cpu = isrc->is_event->ie_cpu;
 			if (cpu == NOCPU)
-				cpu = current_cpu;
+				cpu = current_cpu[isrc->is_domain];
 			if (isrc->is_pic->pic_assign_cpu(isrc,
 			    cpu_apic_ids[cpu]) == 0) {
 				isrc->is_cpu = cpu;
 				if (isrc->is_event->ie_cpu == NOCPU)
-					intr_next_cpu();
+					intr_next_cpu(isrc->is_domain);
 			}
 		}
 	}
@@ -635,10 +665,11 @@ sysctl_hw_intrs(SYSCTL_HANDLER_ARGS)
 		isrc = interrupt_sources[i];
 		if (isrc == NULL)
 			continue;
-		sbuf_printf(&sbuf, "%s:%d @%d: %ld\n",
+		sbuf_printf(&sbuf, "%s:%d @cpu%d(domain%d): %ld\n",
 		    isrc->is_event->ie_fullname,
 		    isrc->is_index,
 		    isrc->is_cpu,
+		    isrc->is_domain,
 		    *isrc->is_count);
 	}
 
@@ -697,7 +728,7 @@ intr_balance(void *dummy __unused, int pending __unuse
 	 * Restart the scan from the same location to avoid moving in the
 	 * common case.
 	 */
-	current_cpu = 0;
+	intr_init_cpus();
 
 	/*
 	 * Assign round-robin from most loaded to least.
@@ -706,8 +737,8 @@ intr_balance(void *dummy __unused, int pending __unuse
 		isrc = interrupt_sorted[i];
 		if (isrc == NULL  || isrc->is_event->ie_cpu != NOCPU)
 			continue;
-		cpu = current_cpu;
-		intr_next_cpu();
+		cpu = current_cpu[isrc->is_domain];
+		intr_next_cpu(isrc->is_domain);
 		if (isrc->is_cpu != cpu &&
 		    isrc->is_pic->pic_assign_cpu(isrc,
 		    cpu_apic_ids[cpu]) == 0)
@@ -735,7 +766,7 @@ SYSINIT(intr_balance_init, SI_SUB_SMP, SI_ORDER_ANY, i
  * Always route interrupts to the current processor in the UP case.
  */
 u_int
-intr_next_cpu(void)
+intr_next_cpu(int domain)
 {
 
 	return (PCPU_GET(apic_id));

Modified: head/sys/x86/x86/io_apic.c
==============================================================================
--- head/sys/x86/x86/io_apic.c	Wed Mar 28 18:43:06 2018	(r331697)
+++ head/sys/x86/x86/io_apic.c	Wed Mar 28 18:47:35 2018	(r331698)
@@ -499,7 +499,7 @@ ioapic_enable_intr(struct intsrc *isrc)
 	struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc;
 
 	if (intpin->io_vector == 0)
-		if (ioapic_assign_cpu(isrc, intr_next_cpu()) != 0)
+		if (ioapic_assign_cpu(isrc, intr_next_cpu(isrc->is_domain)) != 0)
 			panic("Couldn't find an APIC vector for IRQ %d",
 			    intpin->io_irq);
 	apic_enable_vector(intpin->io_cpu, intpin->io_vector);

Modified: head/sys/x86/x86/msi.c
==============================================================================
--- head/sys/x86/x86/msi.c	Wed Mar 28 18:43:06 2018	(r331697)
+++ head/sys/x86/x86/msi.c	Wed Mar 28 18:47:35 2018	(r331698)
@@ -363,7 +363,7 @@ int
 msi_alloc(device_t dev, int count, int maxcount, int *irqs)
 {
 	struct msi_intsrc *msi, *fsrc;
-	u_int cpu;
+	u_int cpu, domain;
 	int cnt, i, *mirqs, vector;
 #ifdef ACPI_DMAR
 	u_int cookies[count];
@@ -373,6 +373,9 @@ msi_alloc(device_t dev, int count, int maxcount, int *
 	if (!msi_enabled)
 		return (ENXIO);
 
+	if (bus_get_domain(dev, &domain) != 0)
+		domain = 0;
+
 	if (count > 1)
 		mirqs = malloc(count * sizeof(*mirqs), M_MSI, M_WAITOK);
 	else
@@ -420,7 +423,7 @@ again:
 	KASSERT(cnt == count, ("count mismatch"));
 
 	/* Allocate 'count' IDT vectors. */
-	cpu = intr_next_cpu();
+	cpu = intr_next_cpu(domain);
 	vector = apic_alloc_vectors(cpu, irqs, count, maxcount);
 	if (vector == 0) {
 		mtx_unlock(&msi_lock);
@@ -610,7 +613,7 @@ int
 msix_alloc(device_t dev, int *irq)
 {
 	struct msi_intsrc *msi;
-	u_int cpu;
+	u_int cpu, domain;
 	int i, vector;
 #ifdef ACPI_DMAR
 	u_int cookie;
@@ -620,6 +623,9 @@ msix_alloc(device_t dev, int *irq)
 	if (!msi_enabled)
 		return (ENXIO);
 
+	if (bus_get_domain(dev, &domain) != 0)
+		domain = 0;
+
 again:
 	mtx_lock(&msi_lock);
 
@@ -651,7 +657,7 @@ again:
 	}
 
 	/* Allocate an IDT vector. */
-	cpu = intr_next_cpu();
+	cpu = intr_next_cpu(domain);
 	vector = apic_alloc_vector(cpu, i);
 	if (vector == 0) {
 		mtx_unlock(&msi_lock);

Modified: head/sys/x86/x86/nexus.c
==============================================================================
--- head/sys/x86/x86/nexus.c	Wed Mar 28 18:43:06 2018	(r331697)
+++ head/sys/x86/x86/nexus.c	Wed Mar 28 18:47:35 2018	(r331698)
@@ -573,7 +573,7 @@ nexus_setup_intr(device_t bus, device_t child, struct 
 		 int flags, driver_filter_t filter, void (*ihand)(void *),
 		 void *arg, void **cookiep)
 {
-	int		error;
+	int		error, domain;
 
 	/* somebody tried to setup an irq that failed to allocate! */
 	if (irq == NULL)
@@ -589,9 +589,11 @@ nexus_setup_intr(device_t bus, device_t child, struct 
 	error = rman_activate_resource(irq);
 	if (error)
 		return (error);
+	if (bus_get_domain(child, &domain) != 0)
+		domain = 0;
 
 	error = intr_add_handler(device_get_nameunit(child),
-	    rman_get_start(irq), filter, ihand, arg, flags, cookiep);
+	    rman_get_start(irq), filter, ihand, arg, flags, cookiep, domain);
 
 	return (error);
 }

Modified: head/sys/x86/xen/xen_intr.c
==============================================================================
--- head/sys/x86/xen/xen_intr.c	Wed Mar 28 18:43:06 2018	(r331697)
+++ head/sys/x86/xen/xen_intr.c	Wed Mar 28 18:47:35 2018	(r331698)
@@ -430,7 +430,7 @@ xen_intr_bind_isrc(struct xenisrc **isrcp, evtchn_port
 		 * unless specified otherwise, so shuffle them to balance
 		 * the interrupt load.
 		 */
-		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu());
+		xen_intr_assign_cpu(&isrc->xi_intsrc, intr_next_cpu(0));
 	}
 #endif
 
@@ -1562,7 +1562,7 @@ xen_intr_add_handler(const char *name, driver_filter_t
 		return (EINVAL);
 
 	error = intr_add_handler(name, isrc->xi_vector,filter, handler, arg,
-	    flags|INTR_EXCL, &isrc->xi_cookie);
+	    flags|INTR_EXCL, &isrc->xi_cookie, 0);
 	if (error != 0) {
 		printf(
 		    "%s: xen_intr_add_handler: intr_add_handler failed: %d\n",

From owner-svn-src-all@freebsd.org  Wed Mar 28 19:54:50 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3F034F71985;
 Wed, 28 Mar 2018 19:54:50 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from tensor.andric.com (tensor.andric.com [87.251.56.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "tensor.andric.com",
 Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BE3C77FE75;
 Wed, 28 Mar 2018 19:54:49 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from coleburn.home.andric.com (coleburn.home.andric.com
 [192.168.0.15])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by tensor.andric.com (Postfix) with ESMTPSA id C8D593680B;
 Wed, 28 Mar 2018 21:54:41 +0200 (CEST)
From: Dimitry Andric 
Message-Id: <3653AD2C-F427-4BE7-874C-FF3AF3BDA85D@FreeBSD.org>
Content-Type: multipart/signed;
 boundary="Apple-Mail=_D2238B82-5359-4904-BC5F-4728A6A0C306";
 protocol="application/pgp-signature"; micalg=pgp-sha1
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: svn commit: r331686 - head
Date: Wed, 28 Mar 2018 21:54:41 +0200
In-Reply-To: <201803281651.w2SGp59K069533@repo.freebsd.org>
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
To: John Baldwin 
References: <201803281651.w2SGp59K069533@repo.freebsd.org>
X-Mailer: Apple Mail (2.3273)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 19:54:50 -0000


--Apple-Mail=_D2238B82-5359-4904-BC5F-4728A6A0C306
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 28 Mar 2018, at 18:51, John Baldwin  wrote:
>=20
> Author: jhb
> Date: Wed Mar 28 16:51:05 2018
> New Revision: 331686
> URL: https://svnweb.freebsd.org/changeset/base/331686
>=20
> Log:
>  Expand remaining instances of 'make kernel' to buildkernel + =
installkernel.
>=20
>  The 'kernel' target is a bit more obscure compared to buildkernel and
>  installkernel.

The 'kernel' target doesn't seem that obscure to me, it is clearly
documented in build(7), right?  In my opinion, the main advantage of
separate build and install steps is that you can run the former as a
non-privileged user, while only having to run the latter as super-user.

-Dimitry


--Apple-Mail=_D2238B82-5359-4904-BC5F-4728A6A0C306
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.2

iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCWrvzAQAKCRCwXqMKLiCW
oyJsAKC67EzcDGx3uWKUAUaSZi8pT+Rd9wCg+cgvLbmXVNBQenx7jMyAFirfqFM=
=O2e+
-----END PGP SIGNATURE-----

--Apple-Mail=_D2238B82-5359-4904-BC5F-4728A6A0C306--

From owner-svn-src-all@freebsd.org  Wed Mar 28 20:41:16 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C1295F72C6A;
 Wed, 28 Mar 2018 20:41:15 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 715E081DBC;
 Wed, 28 Mar 2018 20:41:15 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6C33010030;
 Wed, 28 Mar 2018 20:41:15 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SKfFXi089767;
 Wed, 28 Mar 2018 20:41:15 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SKfFba089765;
 Wed, 28 Mar 2018 20:41:15 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282041.w2SKfFba089765@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 20:41:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331699 - in head/cddl/contrib/opensolaris/cmd: zdb ztest
X-SVN-Group: head
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: in head/cddl/contrib/opensolaris/cmd: zdb ztest
X-SVN-Commit-Revision: 331699
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 20:41:16 -0000

Author: mav
Date: Wed Mar 28 20:41:15 2018
New Revision: 331699
URL: https://svnweb.freebsd.org/changeset/base/331699

Log:
  Partial MFV r329753:
  8809 libzpool should leverage work done in libfakekernel
  
  illumos/illumos-gate@f06dce2c1f0f3af78581e7574f65bfba843ddb6e
  
  Reviewed by: Sebastien Roy 
  Reviewed by: Prakash Surya 
  Reviewed by: Gordon Ross 
  Approved by: Richard Lowe 
  Author: Andrew Stormont 
  
  We do not have libfakekernel, but need to reduce code divergence.

Modified:
  head/cddl/contrib/opensolaris/cmd/zdb/zdb.c
  head/cddl/contrib/opensolaris/cmd/ztest/ztest.c
Directory Properties:
  head/cddl/contrib/opensolaris/   (props changed)
  head/cddl/contrib/opensolaris/cmd/zdb/   (props changed)

Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.c
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Wed Mar 28 18:47:35 2018	(r331698)
+++ head/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Wed Mar 28 20:41:15 2018	(r331699)
@@ -24,6 +24,7 @@
  * Copyright (c) 2011, 2017 by Delphix. All rights reserved.
  * Copyright (c) 2014 Integros [integros.com]
  * Copyright 2017 Nexenta Systems, Inc.
+ * Copyright 2017 RackTop Systems.
  */
 
 #include 
@@ -88,12 +89,14 @@ extern boolean_t zfs_recover;
 extern uint64_t zfs_arc_max, zfs_arc_meta_limit;
 extern int zfs_vdev_async_read_max_active;
 extern boolean_t spa_load_verify_dryrun;
+extern int aok;
 #else
 int reference_tracking_enable;
 boolean_t zfs_recover;
 uint64_t zfs_arc_max, zfs_arc_meta_limit;
 int zfs_vdev_async_read_max_active;
 boolean_t spa_load_verify_dryrun;
+int aok;
 #endif
 
 static const char cmdname[] = "zdb";

Modified: head/cddl/contrib/opensolaris/cmd/ztest/ztest.c
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Wed Mar 28 18:47:35 2018	(r331698)
+++ head/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Wed Mar 28 20:41:15 2018	(r331699)
@@ -26,6 +26,7 @@
  * Copyright (c) 2013 Steven Hartland. All rights reserved.
  * Copyright (c) 2014 Integros [integros.com]
  * Copyright 2017 Joyent, Inc.
+ * Copyright 2017 RackTop Systems.
  */
 
 /*
@@ -247,8 +248,8 @@ typedef enum {
 typedef struct rll {
 	void		*rll_writer;
 	int		rll_readers;
-	mutex_t		rll_lock;
-	cond_t		rll_cv;
+	kmutex_t	rll_lock;
+	kcondvar_t	rll_cv;
 } rll_t;
 
 typedef struct rl {
@@ -282,11 +283,11 @@ typedef struct ztest_od {
 typedef struct ztest_ds {
 	ztest_shared_ds_t *zd_shared;
 	objset_t	*zd_os;
-	rwlock_t	zd_zilog_lock;
+	krwlock_t	zd_zilog_lock;
 	zilog_t		*zd_zilog;
 	ztest_od_t	*zd_od;		/* debugging aid */
 	char		zd_name[ZFS_MAX_DATASET_NAME_LEN];
-	mutex_t		zd_dirobj_lock;
+	kmutex_t	zd_dirobj_lock;
 	rll_t		zd_object_lock[ZTEST_OBJECT_LOCKS];
 	rll_t		zd_range_lock[ZTEST_RANGE_LOCKS];
 } ztest_ds_t;
@@ -397,7 +398,7 @@ ztest_info_t ztest_info[] = {
  * The callbacks are ordered by txg number.
  */
 typedef struct ztest_cb_list {
-	mutex_t	zcl_callbacks_lock;
+	kmutex_t zcl_callbacks_lock;
 	list_t	zcl_callbacks;
 } ztest_cb_list_t;
 
@@ -432,7 +433,7 @@ ztest_shared_t *ztest_shared;
 static spa_t *ztest_spa = NULL;
 static ztest_ds_t *ztest_ds;
 
-static mutex_t ztest_vdev_lock;
+static kmutex_t ztest_vdev_lock;
 
 /*
  * The ztest_name_lock protects the pool and dataset namespace used by
@@ -440,7 +441,7 @@ static mutex_t ztest_vdev_lock;
  * this lock as writer. Grabbing the lock as reader will ensure that the
  * namespace does not change while the lock is held.
  */
-static rwlock_t ztest_name_lock;
+static krwlock_t ztest_name_lock;
 
 static boolean_t ztest_dump_core = B_TRUE;
 static boolean_t ztest_exiting;
@@ -1096,8 +1097,8 @@ ztest_rll_init(rll_t *rll)
 {
 	rll->rll_writer = NULL;
 	rll->rll_readers = 0;
-	VERIFY(_mutex_init(&rll->rll_lock, USYNC_THREAD, NULL) == 0);
-	VERIFY(cond_init(&rll->rll_cv, USYNC_THREAD, NULL) == 0);
+	mutex_init(&rll->rll_lock, NULL, USYNC_THREAD, NULL);
+	cv_init(&rll->rll_cv, NULL, USYNC_THREAD, NULL);
 }
 
 static void
@@ -1105,32 +1106,32 @@ ztest_rll_destroy(rll_t *rll)
 {
 	ASSERT(rll->rll_writer == NULL);
 	ASSERT(rll->rll_readers == 0);
-	VERIFY(_mutex_destroy(&rll->rll_lock) == 0);
-	VERIFY(cond_destroy(&rll->rll_cv) == 0);
+	mutex_destroy(&rll->rll_lock);
+	cv_destroy(&rll->rll_cv);
 }
 
 static void
 ztest_rll_lock(rll_t *rll, rl_type_t type)
 {
-	VERIFY(mutex_lock(&rll->rll_lock) == 0);
+	mutex_enter(&rll->rll_lock);
 
 	if (type == RL_READER) {
 		while (rll->rll_writer != NULL)
-			(void) cond_wait(&rll->rll_cv, &rll->rll_lock);
+			cv_wait(&rll->rll_cv, &rll->rll_lock);
 		rll->rll_readers++;
 	} else {
 		while (rll->rll_writer != NULL || rll->rll_readers)
-			(void) cond_wait(&rll->rll_cv, &rll->rll_lock);
+			cv_wait(&rll->rll_cv, &rll->rll_lock);
 		rll->rll_writer = curthread;
 	}
 
-	VERIFY(mutex_unlock(&rll->rll_lock) == 0);
+	mutex_exit(&rll->rll_lock);
 }
 
 static void
 ztest_rll_unlock(rll_t *rll)
 {
-	VERIFY(mutex_lock(&rll->rll_lock) == 0);
+	mutex_enter(&rll->rll_lock);
 
 	if (rll->rll_writer) {
 		ASSERT(rll->rll_readers == 0);
@@ -1142,9 +1143,9 @@ ztest_rll_unlock(rll_t *rll)
 	}
 
 	if (rll->rll_writer == NULL && rll->rll_readers == 0)
-		VERIFY(cond_broadcast(&rll->rll_cv) == 0);
+		cv_broadcast(&rll->rll_cv);
 
-	VERIFY(mutex_unlock(&rll->rll_lock) == 0);
+	mutex_exit(&rll->rll_lock);
 }
 
 static void
@@ -1203,8 +1204,8 @@ ztest_zd_init(ztest_ds_t *zd, ztest_shared_ds_t *szd, 
 	if (zd->zd_shared != NULL)
 		zd->zd_shared->zd_seq = 0;
 
-	VERIFY(rwlock_init(&zd->zd_zilog_lock, USYNC_THREAD, NULL) == 0);
-	VERIFY(_mutex_init(&zd->zd_dirobj_lock, USYNC_THREAD, NULL) == 0);
+	rw_init(&zd->zd_zilog_lock, NULL, USYNC_THREAD, NULL);
+	mutex_init(&zd->zd_dirobj_lock, NULL, USYNC_THREAD, NULL);
 
 	for (int l = 0; l < ZTEST_OBJECT_LOCKS; l++)
 		ztest_rll_init(&zd->zd_object_lock[l]);
@@ -1216,7 +1217,7 @@ ztest_zd_init(ztest_ds_t *zd, ztest_shared_ds_t *szd, 
 static void
 ztest_zd_fini(ztest_ds_t *zd)
 {
-	VERIFY(_mutex_destroy(&zd->zd_dirobj_lock) == 0);
+	mutex_destroy(&zd->zd_dirobj_lock);
 
 	for (int l = 0; l < ZTEST_OBJECT_LOCKS; l++)
 		ztest_rll_destroy(&zd->zd_object_lock[l]);
@@ -1971,7 +1972,7 @@ ztest_lookup(ztest_ds_t *zd, ztest_od_t *od, int count
 	int missing = 0;
 	int error;
 
-	ASSERT(_mutex_held(&zd->zd_dirobj_lock));
+	ASSERT(MUTEX_HELD(&zd->zd_dirobj_lock));
 
 	for (int i = 0; i < count; i++, od++) {
 		od->od_object = 0;
@@ -2011,7 +2012,7 @@ ztest_create(ztest_ds_t *zd, ztest_od_t *od, int count
 {
 	int missing = 0;
 
-	ASSERT(_mutex_held(&zd->zd_dirobj_lock));
+	ASSERT(MUTEX_HELD(&zd->zd_dirobj_lock));
 
 	for (int i = 0; i < count; i++, od++) {
 		if (missing) {
@@ -2056,7 +2057,7 @@ ztest_remove(ztest_ds_t *zd, ztest_od_t *od, int count
 	int missing = 0;
 	int error;
 
-	ASSERT(_mutex_held(&zd->zd_dirobj_lock));
+	ASSERT(MUTEX_HELD(&zd->zd_dirobj_lock));
 
 	od += count - 1;
 
@@ -2202,7 +2203,7 @@ ztest_io(ztest_ds_t *zd, uint64_t object, uint64_t off
 	if (ztest_random(2) == 0)
 		io_type = ZTEST_IO_WRITE_TAG;
 
-	(void) rw_rdlock(&zd->zd_zilog_lock);
+	rw_enter(&zd->zd_zilog_lock, RW_READER);
 
 	switch (io_type) {
 
@@ -2239,7 +2240,7 @@ ztest_io(ztest_ds_t *zd, uint64_t object, uint64_t off
 		break;
 
 	case ZTEST_IO_REWRITE:
-		(void) rw_rdlock(&ztest_name_lock);
+		rw_enter(&ztest_name_lock, RW_READER);
 		err = ztest_dsl_prop_set_uint64(zd->zd_name,
 		    ZFS_PROP_CHECKSUM, spa_dedup_checksum(ztest_spa),
 		    B_FALSE);
@@ -2249,7 +2250,7 @@ ztest_io(ztest_ds_t *zd, uint64_t object, uint64_t off
 		    ztest_random_dsl_prop(ZFS_PROP_COMPRESSION),
 		    B_FALSE);
 		VERIFY(err == 0 || err == ENOSPC);
-		(void) rw_unlock(&ztest_name_lock);
+		rw_exit(&ztest_name_lock);
 
 		VERIFY0(dmu_read(zd->zd_os, object, offset, blocksize, data,
 		    DMU_READ_NO_PREFETCH));
@@ -2258,7 +2259,7 @@ ztest_io(ztest_ds_t *zd, uint64_t object, uint64_t off
 		break;
 	}
 
-	(void) rw_unlock(&zd->zd_zilog_lock);
+	rw_exit(&zd->zd_zilog_lock);
 
 	umem_free(data, blocksize);
 }
@@ -2297,13 +2298,13 @@ ztest_object_init(ztest_ds_t *zd, ztest_od_t *od, size
 	int count = size / sizeof (*od);
 	int rv = 0;
 
-	VERIFY(mutex_lock(&zd->zd_dirobj_lock) == 0);
+	mutex_enter(&zd->zd_dirobj_lock);
 	if ((ztest_lookup(zd, od, count) != 0 || remove) &&
 	    (ztest_remove(zd, od, count) != 0 ||
 	    ztest_create(zd, od, count) != 0))
 		rv = -1;
 	zd->zd_od = od;
-	VERIFY(mutex_unlock(&zd->zd_dirobj_lock) == 0);
+	mutex_exit(&zd->zd_dirobj_lock);
 
 	return (rv);
 }
@@ -2314,7 +2315,7 @@ ztest_zil_commit(ztest_ds_t *zd, uint64_t id)
 {
 	zilog_t *zilog = zd->zd_zilog;
 
-	(void) rw_rdlock(&zd->zd_zilog_lock);
+	rw_enter(&zd->zd_zilog_lock, RW_READER);
 
 	zil_commit(zilog, ztest_random(ZTEST_OBJECTS));
 
@@ -2329,7 +2330,7 @@ ztest_zil_commit(ztest_ds_t *zd, uint64_t id)
 	zd->zd_shared->zd_seq = zilog->zl_commit_lr_seq;
 	mutex_exit(&zilog->zl_lock);
 
-	(void) rw_unlock(&zd->zd_zilog_lock);
+	rw_exit(&zd->zd_zilog_lock);
 }
 
 /*
@@ -2348,8 +2349,8 @@ ztest_zil_remount(ztest_ds_t *zd, uint64_t id)
 	 * updating the zil (i.e. adding in-memory log records) and the
 	 * zd_zilog_lock to block any I/O.
 	 */
-	VERIFY0(mutex_lock(&zd->zd_dirobj_lock));
-	(void) rw_wrlock(&zd->zd_zilog_lock);
+	mutex_enter(&zd->zd_dirobj_lock);
+	rw_enter(&zd->zd_zilog_lock, RW_WRITER);
 
 	/* zfsvfs_teardown() */
 	zil_close(zd->zd_zilog);
@@ -2358,8 +2359,8 @@ ztest_zil_remount(ztest_ds_t *zd, uint64_t id)
 	VERIFY(zil_open(os, ztest_get_data) == zd->zd_zilog);
 	zil_replay(os, zd, ztest_replay_vector);
 
-	(void) rw_unlock(&zd->zd_zilog_lock);
-	VERIFY(mutex_unlock(&zd->zd_dirobj_lock) == 0);
+	rw_exit(&zd->zd_zilog_lock);
+	mutex_exit(&zd->zd_dirobj_lock);
 }
 
 /*
@@ -2394,7 +2395,7 @@ ztest_spa_create_destroy(ztest_ds_t *zd, uint64_t id)
 	 * Attempt to create an existing pool.  It shouldn't matter
 	 * what's in the nvroot; we should fail with EEXIST.
 	 */
-	(void) rw_rdlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_READER);
 	nvroot = make_vdev_root("/dev/bogus", NULL, NULL, 0, 0, 0, 0, 0, 1);
 	VERIFY3U(EEXIST, ==, spa_create(zo->zo_pool, nvroot, NULL, NULL));
 	nvlist_free(nvroot);
@@ -2402,7 +2403,7 @@ ztest_spa_create_destroy(ztest_ds_t *zd, uint64_t id)
 	VERIFY3U(EBUSY, ==, spa_destroy(zo->zo_pool));
 	spa_close(spa, FTAG);
 
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 }
 
 /* ARGSUSED */
@@ -2415,7 +2416,7 @@ ztest_spa_upgrade(ztest_ds_t *zd, uint64_t id)
 	nvlist_t *nvroot, *props;
 	char *name;
 
-	VERIFY0(mutex_lock(&ztest_vdev_lock));
+	mutex_enter(&ztest_vdev_lock);
 	name = kmem_asprintf("%s_upgrade", ztest_opts.zo_pool);
 
 	/*
@@ -2474,7 +2475,7 @@ ztest_spa_upgrade(ztest_ds_t *zd, uint64_t id)
 	spa_close(spa, FTAG);
 
 	strfree(name);
-	VERIFY0(mutex_unlock(&ztest_vdev_lock));
+	mutex_exit(&ztest_vdev_lock);
 }
 
 static vdev_t *
@@ -2527,7 +2528,7 @@ ztest_vdev_add_remove(ztest_ds_t *zd, uint64_t id)
 	nvlist_t *nvroot;
 	int error;
 
-	VERIFY(mutex_lock(&ztest_vdev_lock) == 0);
+	mutex_enter(&ztest_vdev_lock);
 	leaves = MAX(zs->zs_mirrors + zs->zs_splits, 1) * ztest_opts.zo_raidz;
 
 	spa_config_enter(spa, SCL_VDEV, FTAG, RW_READER);
@@ -2553,9 +2554,9 @@ ztest_vdev_add_remove(ztest_ds_t *zd, uint64_t id)
 		 * dmu_objset_destroy() to fail with EBUSY thus
 		 * leaving the dataset in an inconsistent state.
 		 */
-		VERIFY(rw_wrlock(&ztest_name_lock) == 0);
+		rw_enter(&ztest_name_lock, RW_WRITER);
 		error = spa_vdev_remove(spa, guid, B_FALSE);
-		VERIFY(rw_unlock(&ztest_name_lock) == 0);
+		rw_exit(&ztest_name_lock);
 
 		if (error && error != EEXIST)
 			fatal(0, "spa_vdev_remove() = %d", error);
@@ -2579,7 +2580,7 @@ ztest_vdev_add_remove(ztest_ds_t *zd, uint64_t id)
 			fatal(0, "spa_vdev_add() = %d", error);
 	}
 
-	VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+	mutex_exit(&ztest_vdev_lock);
 }
 
 /*
@@ -2605,7 +2606,7 @@ ztest_vdev_aux_add_remove(ztest_ds_t *zd, uint64_t id)
 		aux = ZPOOL_CONFIG_L2CACHE;
 	}
 
-	VERIFY(mutex_lock(&ztest_vdev_lock) == 0);
+	mutex_enter(&ztest_vdev_lock);
 
 	spa_config_enter(spa, SCL_VDEV, FTAG, RW_READER);
 
@@ -2662,7 +2663,7 @@ ztest_vdev_aux_add_remove(ztest_ds_t *zd, uint64_t id)
 			fatal(0, "spa_vdev_remove(%llu) = %d", guid, error);
 	}
 
-	VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+	mutex_exit(&ztest_vdev_lock);
 }
 
 /*
@@ -2679,11 +2680,11 @@ ztest_split_pool(ztest_ds_t *zd, uint64_t id)
 	uint_t c, children, schildren = 0, lastlogid = 0;
 	int error = 0;
 
-	VERIFY(mutex_lock(&ztest_vdev_lock) == 0);
+	mutex_enter(&ztest_vdev_lock);
 
 	/* ensure we have a useable config; mirrors of raidz aren't supported */
 	if (zs->zs_mirrors < 3 || ztest_opts.zo_raidz > 1) {
-		VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+		mutex_exit(&ztest_vdev_lock);
 		return;
 	}
 
@@ -2742,9 +2743,9 @@ ztest_split_pool(ztest_ds_t *zd, uint64_t id)
 
 	spa_config_exit(spa, SCL_VDEV, FTAG);
 
-	(void) rw_wrlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_WRITER);
 	error = spa_vdev_split_mirror(spa, "splitp", config, NULL, B_FALSE);
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 
 	nvlist_free(config);
 
@@ -2757,7 +2758,7 @@ ztest_split_pool(ztest_ds_t *zd, uint64_t id)
 		++zs->zs_splits;
 		--zs->zs_mirrors;
 	}
-	VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+	mutex_exit(&ztest_vdev_lock);
 
 }
 
@@ -2786,7 +2787,7 @@ ztest_vdev_attach_detach(ztest_ds_t *zd, uint64_t id)
 	int oldvd_is_log;
 	int error, expected_error;
 
-	VERIFY(mutex_lock(&ztest_vdev_lock) == 0);
+	mutex_enter(&ztest_vdev_lock);
 	leaves = MAX(zs->zs_mirrors, 1) * ztest_opts.zo_raidz;
 
 	spa_config_enter(spa, SCL_ALL, FTAG, RW_WRITER);
@@ -2799,7 +2800,7 @@ ztest_vdev_attach_detach(ztest_ds_t *zd, uint64_t id)
 	 */
 	if (spa->spa_vdev_removal != NULL) {
 		spa_config_exit(spa, SCL_ALL, FTAG);
-		VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+		mutex_exit(&ztest_vdev_lock);
 		return;
 	}
 
@@ -2859,7 +2860,7 @@ ztest_vdev_attach_detach(ztest_ds_t *zd, uint64_t id)
 		if (error != 0 && error != ENODEV && error != EBUSY &&
 		    error != ENOTSUP)
 			fatal(0, "detach (%s) returned %d", oldpath, error);
-		VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+		mutex_exit(&ztest_vdev_lock);
 		return;
 	}
 
@@ -2957,7 +2958,7 @@ ztest_vdev_attach_detach(ztest_ds_t *zd, uint64_t id)
 		    newsize, replacing, error, expected_error);
 	}
 
-	VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+	mutex_exit(&ztest_vdev_lock);
 }
 
 /* ARGSUSED */
@@ -2968,7 +2969,7 @@ ztest_device_removal(ztest_ds_t *zd, uint64_t id)
 	vdev_t *vd;
 	uint64_t guid;
 
-	VERIFY(mutex_lock(&ztest_vdev_lock) == 0);
+	mutex_enter(&ztest_vdev_lock);
 
 	spa_config_enter(spa, SCL_VDEV, FTAG, RW_READER);
 	vd = vdev_lookup_top(spa, ztest_random_vdev_top(spa, B_FALSE));
@@ -2977,7 +2978,7 @@ ztest_device_removal(ztest_ds_t *zd, uint64_t id)
 
 	(void) spa_vdev_remove(spa, guid, B_FALSE);
 
-	VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+	mutex_exit(&ztest_vdev_lock);
 }
 
 /*
@@ -3105,7 +3106,7 @@ ztest_vdev_LUN_growth(ztest_ds_t *zd, uint64_t id)
 	uint64_t top;
 	uint64_t old_class_space, new_class_space, old_ms_count, new_ms_count;
 
-	VERIFY(mutex_lock(&ztest_vdev_lock) == 0);
+	mutex_enter(&ztest_vdev_lock);
 	spa_config_enter(spa, SCL_STATE, spa, RW_READER);
 
 	/*
@@ -3116,7 +3117,7 @@ ztest_vdev_LUN_growth(ztest_ds_t *zd, uint64_t id)
 	 */
 	if (spa->spa_vdev_removal != NULL) {
 		spa_config_exit(spa, SCL_STATE, FTAG);
-		VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+		mutex_exit(&ztest_vdev_lock);
 		return;
 	}
 
@@ -3145,7 +3146,7 @@ ztest_vdev_LUN_growth(ztest_ds_t *zd, uint64_t id)
 	if (tvd->vdev_state != VDEV_STATE_HEALTHY ||
 	    psize == 0 || psize >= 4 * ztest_opts.zo_vdev_size) {
 		spa_config_exit(spa, SCL_STATE, spa);
-		VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+		mutex_exit(&ztest_vdev_lock);
 		return;
 	}
 	ASSERT(psize > 0);
@@ -3170,7 +3171,7 @@ ztest_vdev_LUN_growth(ztest_ds_t *zd, uint64_t id)
 			    "the vdev configuration changed.\n");
 		}
 		spa_config_exit(spa, SCL_STATE, spa);
-		VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+		mutex_exit(&ztest_vdev_lock);
 		return;
 	}
 
@@ -3204,7 +3205,7 @@ ztest_vdev_LUN_growth(ztest_ds_t *zd, uint64_t id)
 			    "intervening vdev offline or remove.\n");
 		}
 		spa_config_exit(spa, SCL_STATE, spa);
-		VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+		mutex_exit(&ztest_vdev_lock);
 		return;
 	}
 
@@ -3234,7 +3235,7 @@ ztest_vdev_LUN_growth(ztest_ds_t *zd, uint64_t id)
 	}
 
 	spa_config_exit(spa, SCL_STATE, spa);
-	VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+	mutex_exit(&ztest_vdev_lock);
 }
 
 /*
@@ -3345,7 +3346,7 @@ ztest_dmu_objset_create_destroy(ztest_ds_t *zd, uint64
 	char name[ZFS_MAX_DATASET_NAME_LEN];
 	zilog_t *zilog;
 
-	(void) rw_rdlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_READER);
 
 	(void) snprintf(name, sizeof (name), "%s/temp_%llu",
 	    ztest_opts.zo_pool, (u_longlong_t)id);
@@ -3384,7 +3385,7 @@ ztest_dmu_objset_create_destroy(ztest_ds_t *zd, uint64
 	if (error) {
 		if (error == ENOSPC) {
 			ztest_record_enospc(FTAG);
-			(void) rw_unlock(&ztest_name_lock);
+			rw_exit(&ztest_name_lock);
 			return;
 		}
 		fatal(0, "dmu_objset_create(%s) = %d", name, error);
@@ -3432,7 +3433,7 @@ ztest_dmu_objset_create_destroy(ztest_ds_t *zd, uint64
 	dmu_objset_disown(os, FTAG);
 	ztest_zd_fini(&zdtmp);
 
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 }
 
 /*
@@ -3441,10 +3442,10 @@ ztest_dmu_objset_create_destroy(ztest_ds_t *zd, uint64
 void
 ztest_dmu_snapshot_create_destroy(ztest_ds_t *zd, uint64_t id)
 {
-	(void) rw_rdlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_READER);
 	(void) ztest_snapshot_destroy(zd->zd_name, id);
 	(void) ztest_snapshot_create(zd->zd_name, id);
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 }
 
 /*
@@ -3503,7 +3504,7 @@ ztest_dsl_dataset_promote_busy(ztest_ds_t *zd, uint64_
 	char *osname = zd->zd_name;
 	int error;
 
-	(void) rw_rdlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_READER);
 
 	ztest_dsl_dataset_cleanup(osname, id);
 
@@ -3580,7 +3581,7 @@ ztest_dsl_dataset_promote_busy(ztest_ds_t *zd, uint64_
 out:
 	ztest_dsl_dataset_cleanup(osname, id);
 
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 }
 
 /*
@@ -4513,9 +4514,9 @@ ztest_commit_callback(void *arg, int error)
 	ASSERT3U(data->zcd_txg, !=, 0);
 
 	/* Remove our callback from the list */
-	(void) mutex_lock(&zcl.zcl_callbacks_lock);
+	mutex_enter(&zcl.zcl_callbacks_lock);
 	list_remove(&zcl.zcl_callbacks, data);
-	(void) mutex_unlock(&zcl.zcl_callbacks_lock);
+	mutex_exit(&zcl.zcl_callbacks_lock);
 
 out:
 	umem_free(data, sizeof (ztest_cb_data_t));
@@ -4617,7 +4618,7 @@ ztest_dmu_commit_callbacks(ztest_ds_t *zd, uint64_t id
 
 	dmu_write(os, od[0].od_object, 0, sizeof (uint64_t), &txg, tx);
 
-	(void) mutex_lock(&zcl.zcl_callbacks_lock);
+	mutex_enter(&zcl.zcl_callbacks_lock);
 
 	/*
 	 * Since commit callbacks don't have any ordering requirement and since
@@ -4664,7 +4665,7 @@ ztest_dmu_commit_callbacks(ztest_ds_t *zd, uint64_t id
 		tmp_cb = cb_data[i];
 	}
 
-	(void) mutex_unlock(&zcl.zcl_callbacks_lock);
+	mutex_exit(&zcl.zcl_callbacks_lock);
 
 	dmu_tx_commit(tx);
 }
@@ -4680,27 +4681,27 @@ ztest_dsl_prop_get_set(ztest_ds_t *zd, uint64_t id)
 		ZFS_PROP_DEDUP
 	};
 
-	(void) rw_rdlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_READER);
 
 	for (int p = 0; p < sizeof (proplist) / sizeof (proplist[0]); p++)
 		(void) ztest_dsl_prop_set_uint64(zd->zd_name, proplist[p],
 		    ztest_random_dsl_prop(proplist[p]), (int)ztest_random(2));
 
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 }
 
 /* ARGSUSED */
 void
 ztest_remap_blocks(ztest_ds_t *zd, uint64_t id)
 {
-	(void) rw_rdlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_READER);
 
 	int error = dmu_objset_remap_indirects(zd->zd_name);
 	if (error == ENOSPC)
 		error = 0;
 	ASSERT0(error);
 
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 }
 
 /* ARGSUSED */
@@ -4709,7 +4710,7 @@ ztest_spa_prop_get_set(ztest_ds_t *zd, uint64_t id)
 {
 	nvlist_t *props = NULL;
 
-	(void) rw_rdlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_READER);
 
 	(void) ztest_spa_prop_set_uint64(ZPOOL_PROP_DEDUPDITTO,
 	    ZIO_DEDUPDITTO_MIN + ztest_random(ZIO_DEDUPDITTO_MIN));
@@ -4721,7 +4722,7 @@ ztest_spa_prop_get_set(ztest_ds_t *zd, uint64_t id)
 
 	nvlist_free(props);
 
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 }
 
 static int
@@ -4756,7 +4757,7 @@ ztest_dmu_snapshot_hold(ztest_ds_t *zd, uint64_t id)
 	char osname[ZFS_MAX_DATASET_NAME_LEN];
 	nvlist_t *holds;
 
-	(void) rw_rdlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_READER);
 
 	dmu_objset_name(os, osname);
 
@@ -4861,7 +4862,7 @@ ztest_dmu_snapshot_hold(ztest_ds_t *zd, uint64_t id)
 	VERIFY3U(dmu_objset_hold(fullname, FTAG, &origin), ==, ENOENT);
 
 out:
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 }
 
 /*
@@ -4889,11 +4890,11 @@ ztest_fault_inject(ztest_ds_t *zd, uint64_t id)
 	uint64_t guid0 = 0;
 	boolean_t islog = B_FALSE;
 
-	VERIFY(mutex_lock(&ztest_vdev_lock) == 0);
+	mutex_enter(&ztest_vdev_lock);
 	maxfaults = MAXFAULTS();
 	leaves = MAX(zs->zs_mirrors, 1) * ztest_opts.zo_raidz;
 	mirror_save = zs->zs_mirrors;
-	VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+	mutex_exit(&ztest_vdev_lock);
 
 	ASSERT(leaves >= 1);
 
@@ -4903,7 +4904,7 @@ ztest_fault_inject(ztest_ds_t *zd, uint64_t id)
 	 * they are in progress (i.e. spa_change_guid). Those
 	 * operations will have grabbed the name lock as writer.
 	 */
-	(void) rw_rdlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_READER);
 
 	/*
 	 * We need SCL_STATE here because we're going to look at vd0->vdev_tsd.
@@ -4975,7 +4976,7 @@ ztest_fault_inject(ztest_ds_t *zd, uint64_t id)
 
 		if (sav->sav_count == 0) {
 			spa_config_exit(spa, SCL_STATE, FTAG);
-			(void) rw_unlock(&ztest_name_lock);
+			rw_exit(&ztest_name_lock);
 			return;
 		}
 		vd0 = sav->sav_vdevs[ztest_random(sav->sav_count)];
@@ -4989,7 +4990,7 @@ ztest_fault_inject(ztest_ds_t *zd, uint64_t id)
 	}
 
 	spa_config_exit(spa, SCL_STATE, FTAG);
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 
 	/*
 	 * If we can tolerate two or more faults, or we're dealing
@@ -5009,12 +5010,12 @@ ztest_fault_inject(ztest_ds_t *zd, uint64_t id)
 			 * leaving the dataset in an inconsistent state.
 			 */
 			if (islog)
-				(void) rw_wrlock(&ztest_name_lock);
+				rw_enter(&ztest_name_lock, RW_WRITER);
 
 			VERIFY(vdev_offline(spa, guid0, flags) != EBUSY);
 
 			if (islog)
-				(void) rw_unlock(&ztest_name_lock);
+				rw_exit(&ztest_name_lock);
 		} else {
 			/*
 			 * Ideally we would like to be able to randomly
@@ -5025,9 +5026,9 @@ ztest_fault_inject(ztest_ds_t *zd, uint64_t id)
 			 * prevent a race between injection testing and
 			 * aux_vdev removal.
 			 */
-			VERIFY(mutex_lock(&ztest_vdev_lock) == 0);
+			mutex_enter(&ztest_vdev_lock);
 			(void) vdev_online(spa, guid0, 0, NULL);
-			VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+			mutex_exit(&ztest_vdev_lock);
 		}
 	}
 
@@ -5099,9 +5100,9 @@ ztest_fault_inject(ztest_ds_t *zd, uint64_t id)
 		    offset + sizeof (bad) > psize - VDEV_LABEL_END_SIZE)
 			continue;
 
-		VERIFY(mutex_lock(&ztest_vdev_lock) == 0);
+		mutex_enter(&ztest_vdev_lock);
 		if (mirror_save != zs->zs_mirrors) {
-			VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+			mutex_exit(&ztest_vdev_lock);
 			(void) close(fd);
 			return;
 		}
@@ -5110,7 +5111,7 @@ ztest_fault_inject(ztest_ds_t *zd, uint64_t id)
 			fatal(1, "can't inject bad word at 0x%llx in %s",
 			    offset, pathrand);
 
-		VERIFY(mutex_unlock(&ztest_vdev_lock) == 0);
+		mutex_exit(&ztest_vdev_lock);
 
 		if (ztest_opts.zo_verbose >= 7)
 			(void) printf("injected bad word into %s,"
@@ -5150,13 +5151,13 @@ ztest_ddt_repair(ztest_ds_t *zd, uint64_t id)
 	 * Take the name lock as writer to prevent anyone else from changing
 	 * the pool and dataset properies we need to maintain during this test.
 	 */
-	(void) rw_wrlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_WRITER);
 
 	if (ztest_dsl_prop_set_uint64(zd->zd_name, ZFS_PROP_DEDUP, checksum,
 	    B_FALSE) != 0 ||
 	    ztest_dsl_prop_set_uint64(zd->zd_name, ZFS_PROP_COPIES, 1,
 	    B_FALSE) != 0) {
-		(void) rw_unlock(&ztest_name_lock);
+		rw_exit(&ztest_name_lock);
 		return;
 	}
 
@@ -5175,7 +5176,7 @@ ztest_ddt_repair(ztest_ds_t *zd, uint64_t id)
 	dmu_tx_hold_write(tx, object, 0, copies * blocksize);
 	txg = ztest_tx_assign(tx, TXG_WAIT, FTAG);
 	if (txg == 0) {
-		(void) rw_unlock(&ztest_name_lock);
+		rw_exit(&ztest_name_lock);
 		return;
 	}
 
@@ -5223,7 +5224,7 @@ ztest_ddt_repair(ztest_ds_t *zd, uint64_t id)
 
 	abd_free(abd);
 
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 }
 
 /*
@@ -5254,9 +5255,9 @@ ztest_reguid(ztest_ds_t *zd, uint64_t id)
 	orig = spa_guid(spa);
 	load = spa_load_guid(spa);
 
-	(void) rw_wrlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_WRITER);
 	error = spa_change_guid(spa);
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 
 	if (error != 0)
 		return;
@@ -5280,7 +5281,7 @@ ztest_spa_rename(ztest_ds_t *zd, uint64_t id)
 	char *oldname, *newname;
 	spa_t *spa;
 
-	(void) rw_wrlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_WRITER);
 
 	oldname = ztest_opts.zo_pool;
 	newname = umem_alloc(strlen(oldname) + 5, UMEM_NOFAIL);
@@ -5320,7 +5321,7 @@ ztest_spa_rename(ztest_ds_t *zd, uint64_t id)
 
 	umem_free(newname, strlen(newname) + 1);
 
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 }
 
 /*
@@ -5676,18 +5677,18 @@ ztest_dataset_open(int d)
 
 	ztest_dataset_name(name, ztest_opts.zo_pool, d);
 
-	(void) rw_rdlock(&ztest_name_lock);
+	rw_enter(&ztest_name_lock, RW_READER);
 
 	error = ztest_dataset_create(name);
 	if (error == ENOSPC) {
-		(void) rw_unlock(&ztest_name_lock);
+		rw_exit(&ztest_name_lock);
 		ztest_record_enospc(FTAG);
 		return (error);
 	}
 	ASSERT(error == 0 || error == EEXIST);
 
 	VERIFY0(dmu_objset_own(name, DMU_OST_OTHER, B_FALSE, zd, &os));
-	(void) rw_unlock(&ztest_name_lock);
+	rw_exit(&ztest_name_lock);
 
 	ztest_zd_init(zd, ZTEST_GET_SHARED_DS(d), os);
 
@@ -5749,8 +5750,8 @@ ztest_run(ztest_shared_t *zs)
 	/*
 	 * Initialize parent/child shared state.
 	 */
-	VERIFY(_mutex_init(&ztest_vdev_lock, USYNC_THREAD, NULL) == 0);
-	VERIFY(rwlock_init(&ztest_name_lock, USYNC_THREAD, NULL) == 0);
+	mutex_init(&ztest_vdev_lock, NULL, USYNC_THREAD, NULL);
+	rw_init(&ztest_name_lock, NULL, USYNC_THREAD, NULL);
 
 	zs->zs_thread_start = gethrtime();
 	zs->zs_thread_stop =
@@ -5762,7 +5763,7 @@ ztest_run(ztest_shared_t *zs)
 		    ztest_random(ztest_opts.zo_passtime * NANOSEC);
 	}
 
-	(void) _mutex_init(&zcl.zcl_callbacks_lock, USYNC_THREAD, NULL);
+	mutex_init(&zcl.zcl_callbacks_lock, NULL, USYNC_THREAD, NULL);
 
 	list_create(&zcl.zcl_callbacks, sizeof (ztest_cb_data_t),
 	    offsetof(ztest_cb_data_t, zcd_node));
@@ -5909,10 +5910,10 @@ ztest_run(ztest_shared_t *zs)
 
 	list_destroy(&zcl.zcl_callbacks);
 
-	(void) _mutex_destroy(&zcl.zcl_callbacks_lock);
+	mutex_destroy(&zcl.zcl_callbacks_lock);
 
-	(void) rwlock_destroy(&ztest_name_lock);
-	(void) _mutex_destroy(&ztest_vdev_lock);
+	rw_destroy(&ztest_name_lock);
+	mutex_destroy(&ztest_vdev_lock);
 }
 
 static void
@@ -6056,8 +6057,8 @@ ztest_init(ztest_shared_t *zs)
 	spa_t *spa;
 	nvlist_t *nvroot, *props;
 
-	VERIFY(_mutex_init(&ztest_vdev_lock, USYNC_THREAD, NULL) == 0);
-	VERIFY(rwlock_init(&ztest_name_lock, USYNC_THREAD, NULL) == 0);
+	mutex_init(&ztest_vdev_lock, NULL, USYNC_THREAD, NULL);
+	rw_init(&ztest_name_lock, NULL, USYNC_THREAD, NULL);
 
 	kernel_init(FREAD | FWRITE);
 
@@ -6095,8 +6096,8 @@ ztest_init(ztest_shared_t *zs)
 
 	ztest_run_zdb(ztest_opts.zo_pool);
 
-	(void) rwlock_destroy(&ztest_name_lock);
-	(void) _mutex_destroy(&ztest_vdev_lock);
+	rw_destroy(&ztest_name_lock);
+	mutex_destroy(&ztest_vdev_lock);
 }
 
 static void

From owner-svn-src-all@freebsd.org  Wed Mar 28 21:00:35 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09262F730D0;
 Wed, 28 Mar 2018 21:00:35 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id AB0FB826FA;
 Wed, 28 Mar 2018 21:00:34 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A5CD81023C;
 Wed, 28 Mar 2018 21:00:34 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SL0Y62095970;
 Wed, 28 Mar 2018 21:00:34 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SL0YHk095968;
 Wed, 28 Mar 2018 21:00:34 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282100.w2SL0YHk095968@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 21:00:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331700 - in vendor-sys/illumos/dist/uts/common/fs/zfs: .
 sys
X-SVN-Group: vendor-sys
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: in vendor-sys/illumos/dist/uts/common/fs/zfs: . sys
X-SVN-Commit-Revision: 331700
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 21:00:35 -0000

Author: mav
Date: Wed Mar 28 21:00:34 2018
New Revision: 331700
URL: https://svnweb.freebsd.org/changeset/base/331700

Log:
  Add files missed from r331695.

Added:
  vendor-sys/illumos/dist/uts/common/fs/zfs/spa_checkpoint.c   (contents, props changed)
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/spa_checkpoint.h   (contents, props changed)

Added: vendor-sys/illumos/dist/uts/common/fs/zfs/spa_checkpoint.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/spa_checkpoint.c	Wed Mar 28 21:00:34 2018	(r331700)
@@ -0,0 +1,623 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2017 by Delphix. All rights reserved.
+ */
+
+/*
+ * Storage Pool Checkpoint
+ *
+ * A storage pool checkpoint can be thought of as a pool-wide snapshot or
+ * a stable version of extreme rewind that guarantees no blocks from the
+ * checkpointed state will have been overwritten. It remembers the entire
+ * state of the storage pool (e.g. snapshots, dataset names, etc..) from the
+ * point that it was taken and the user can rewind back to that point even if
+ * they applied destructive operations on their datasets or even enabled new
+ * zpool on-disk features. If a pool has a checkpoint that is no longer
+ * needed, the user can discard it.
+ *
+ * == On disk data structures used ==
+ *
+ * - The pool has a new feature flag and a new entry in the MOS. The feature
+ *   flag is set to active when we create the checkpoint and remains active
+ *   until the checkpoint is fully discarded. The entry in the MOS config
+ *   (DMU_POOL_ZPOOL_CHECKPOINT) is populated with the uberblock that
+ *   references the state of the pool when we take the checkpoint. The entry
+ *   remains populated until we start discarding the checkpoint or we rewind
+ *   back to it.
+ *
+ * - Each vdev contains a vdev-wide space map while the pool has a checkpoint,
+ *   which persists until the checkpoint is fully discarded. The space map
+ *   contains entries that have been freed in the current state of the pool
+ *   but we want to keep around in case we decide to rewind to the checkpoint.
+ *   [see vdev_checkpoint_sm]
+ *
+ * - Each metaslab's ms_sm space map behaves the same as without the
+ *   checkpoint, with the only exception being the scenario when we free
+ *   blocks that belong to the checkpoint. In this case, these blocks remain
+ *   ALLOCATED in the metaslab's space map and they are added as FREE in the
+ *   vdev's checkpoint space map.
+ *
+ * - Each uberblock has a field (ub_checkpoint_txg) which holds the txg that
+ *   the uberblock was checkpointed. For normal uberblocks this field is 0.
+ *
+ * == Overview of operations ==
+ *
+ * - To create a checkpoint, we first wait for the current TXG to be synced,
+ *   so we can use the most recently synced uberblock (spa_ubsync) as the
+ *   checkpointed uberblock. Then we use an early synctask to place that
+ *   uberblock in MOS config, increment the feature flag for the checkpoint
+ *   (marking it active), and setting spa_checkpoint_txg (see its use below)
+ *   to the TXG of the checkpointed uberblock. We use an early synctask for
+ *   the aforementioned operations to ensure that no blocks were dirtied
+ *   between the current TXG and the TXG of the checkpointed uberblock
+ *   (e.g the previous txg).
+ *
+ * - When a checkpoint exists, we need to ensure that the blocks that
+ *   belong to the checkpoint are freed but never reused. This means that
+ *   these blocks should never end up in the ms_allocatable or the ms_freeing
+ *   trees of a metaslab. Therefore, whenever there is a checkpoint the new
+ *   ms_checkpointing tree is used in addition to the aforementioned ones.
+ *
+ *   Whenever a block is freed and we find out that it is referenced by the
+ *   checkpoint (we find out by comparing its birth to spa_checkpoint_txg),
+ *   we place it in the ms_checkpointing tree instead of the ms_freeingtree.
+ *   This way, we divide the blocks that are being freed into checkpointed
+ *   and not-checkpointed blocks.
+ *
+ *   In order to persist these frees, we write the extents from the
+ *   ms_freeingtree to the ms_sm as usual, and the extents from the
+ *   ms_checkpointing tree to the vdev_checkpoint_sm. This way, these
+ *   checkpointed extents will remain allocated in the metaslab's ms_sm space
+ *   map, and therefore won't be reused [see metaslab_sync()]. In addition,
+ *   when we discard the checkpoint, we can find the entries that have
+ *   actually been freed in vdev_checkpoint_sm.
+ *   [see spa_checkpoint_discard_thread_sync()]
+ *
+ * - To discard the checkpoint we use an early synctask to delete the
+ *   checkpointed uberblock from the MOS config, set spa_checkpoint_txg to 0,
+ *   and wakeup the discarding zthr thread (an open-context async thread).
+ *   We use an early synctask to ensure that the operation happens before any
+ *   new data end up in the checkpoint's data structures.
+ *
+ *   Once the synctask is done and the discarding zthr is awake, we discard
+ *   the checkpointed data over multiple TXGs by having the zthr prefetching
+ *   entries from vdev_checkpoint_sm and then starting a synctask that places
+ *   them as free blocks in to their respective ms_allocatable and ms_sm
+ *   structures.
+ *   [see spa_checkpoint_discard_thread()]
+ *
+ *   When there are no entries left in the vdev_checkpoint_sm of all
+ *   top-level vdevs, a final synctask runs that decrements the feature flag.
+ *
+ * - To rewind to the checkpoint, we first use the current uberblock and
+ *   open the MOS so we can access the checkpointed uberblock from the MOS
+ *   config. After we retrieve the checkpointed uberblock, we use it as the
+ *   current uberblock for the pool by writing it to disk with an updated
+ *   TXG, opening its version of the MOS, and moving on as usual from there.
+ *   [see spa_ld_checkpoint_rewind()]
+ *
+ *   An important note on rewinding to the checkpoint has to do with how we
+ *   handle ZIL blocks. In the scenario of a rewind, we clear out any ZIL
+ *   blocks that have not been claimed by the time we took the checkpoint
+ *   as they should no longer be valid.
+ *   [see comment in zil_claim()]
+ *
+ * == Miscellaneous information ==
+ *
+ * - In the hypothetical event that we take a checkpoint, remove a vdev,
+ *   and attempt to rewind, the rewind would fail as the checkpointed
+ *   uberblock would reference data in the removed device. For this reason
+ *   and others of similar nature, we disallow the following operations that
+ *   can change the config:
+ *   	vdev removal and attach/detach, mirror splitting, and pool reguid.
+ *
+ * - As most of the checkpoint logic is implemented in the SPA and doesn't
+ *   distinguish datasets when it comes to space accounting, having a
+ *   checkpoint can potentially break the boundaries set by dataset
+ *   reservations.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+/*
+ * The following parameter limits the amount of memory to be used for the
+ * prefetching of the checkpoint space map done on each vdev while
+ * discarding the checkpoint.
+ *
+ * The reason it exists is because top-level vdevs with long checkpoint
+ * space maps can potentially take up a lot of memory depending on the
+ * amount of checkpointed data that has been freed within them while
+ * the pool had a checkpoint.
+ */
+uint64_t	zfs_spa_discard_memory_limit = 16 * 1024 * 1024;
+
+int
+spa_checkpoint_get_stats(spa_t *spa, pool_checkpoint_stat_t *pcs)
+{
+	if (!spa_feature_is_active(spa, SPA_FEATURE_POOL_CHECKPOINT))
+		return (SET_ERROR(ZFS_ERR_NO_CHECKPOINT));
+
+	bzero(pcs, sizeof (pool_checkpoint_stat_t));
+
+	int error = zap_contains(spa_meta_objset(spa),
+	    DMU_POOL_DIRECTORY_OBJECT, DMU_POOL_ZPOOL_CHECKPOINT);
+	ASSERT(error == 0 || error == ENOENT);
+
+	if (error == ENOENT)
+		pcs->pcs_state = CS_CHECKPOINT_DISCARDING;
+	else
+		pcs->pcs_state = CS_CHECKPOINT_EXISTS;
+
+	pcs->pcs_space = spa->spa_checkpoint_info.sci_dspace;
+	pcs->pcs_start_time = spa->spa_checkpoint_info.sci_timestamp;
+
+	return (0);
+}
+
+static void
+spa_checkpoint_discard_complete_sync(void *arg, dmu_tx_t *tx)
+{
+	spa_t *spa = arg;
+
+	spa->spa_checkpoint_info.sci_timestamp = 0;
+
+	spa_feature_decr(spa, SPA_FEATURE_POOL_CHECKPOINT, tx);
+
+	spa_history_log_internal(spa, "spa discard checkpoint", tx,
+	    "finished discarding checkpointed state from the pool");
+}
+
+typedef struct spa_checkpoint_discard_sync_callback_arg {
+	vdev_t *sdc_vd;
+	uint64_t sdc_txg;
+	uint64_t sdc_entry_limit;
+} spa_checkpoint_discard_sync_callback_arg_t;
+
+static int
+spa_checkpoint_discard_sync_callback(maptype_t type, uint64_t offset,
+    uint64_t size, void *arg)
+{
+	spa_checkpoint_discard_sync_callback_arg_t *sdc = arg;
+	vdev_t *vd = sdc->sdc_vd;
+	metaslab_t *ms = vd->vdev_ms[offset >> vd->vdev_ms_shift];
+	uint64_t end = offset + size;
+
+	if (sdc->sdc_entry_limit == 0)
+		return (EINTR);
+
+	/*
+	 * Since the space map is not condensed, we know that
+	 * none of its entries is crossing the boundaries of
+	 * its respective metaslab.
+	 *
+	 * That said, there is no fundamental requirement that
+	 * the checkpoint's space map entries should not cross
+	 * metaslab boundaries. So if needed we could add code
+	 * that handles metaslab-crossing segments in the future.
+	 */
+	VERIFY3U(type, ==, SM_FREE);
+	VERIFY3U(offset, >=, ms->ms_start);
+	VERIFY3U(end, <=, ms->ms_start + ms->ms_size);
+
+	/*
+	 * At this point we should not be processing any
+	 * other frees concurrently, so the lock is technically
+	 * unnecessary. We use the lock anyway though to
+	 * potentially save ourselves from future headaches.
+	 */
+	mutex_enter(&ms->ms_lock);
+	if (range_tree_is_empty(ms->ms_freeing))
+		vdev_dirty(vd, VDD_METASLAB, ms, sdc->sdc_txg);
+	range_tree_add(ms->ms_freeing, offset, size);
+	mutex_exit(&ms->ms_lock);
+
+	ASSERT3U(vd->vdev_spa->spa_checkpoint_info.sci_dspace, >=, size);
+	ASSERT3U(vd->vdev_stat.vs_checkpoint_space, >=, size);
+
+	vd->vdev_spa->spa_checkpoint_info.sci_dspace -= size;
+	vd->vdev_stat.vs_checkpoint_space -= size;
+	sdc->sdc_entry_limit--;
+
+	return (0);
+}
+
+static void
+spa_checkpoint_accounting_verify(spa_t *spa)
+{
+	vdev_t *rvd = spa->spa_root_vdev;
+	uint64_t ckpoint_sm_space_sum = 0;
+	uint64_t vs_ckpoint_space_sum = 0;
+
+	for (uint64_t c = 0; c < rvd->vdev_children; c++) {
+		vdev_t *vd = rvd->vdev_child[c];
+
+		if (vd->vdev_checkpoint_sm != NULL) {
+			ckpoint_sm_space_sum +=
+			    -vd->vdev_checkpoint_sm->sm_alloc;
+			vs_ckpoint_space_sum +=
+			    vd->vdev_stat.vs_checkpoint_space;
+			ASSERT3U(ckpoint_sm_space_sum, ==,
+			    vs_ckpoint_space_sum);
+		} else {
+			ASSERT0(vd->vdev_stat.vs_checkpoint_space);
+		}
+	}
+	ASSERT3U(spa->spa_checkpoint_info.sci_dspace, ==, ckpoint_sm_space_sum);
+}
+
+static void
+spa_checkpoint_discard_thread_sync(void *arg, dmu_tx_t *tx)
+{
+	vdev_t *vd = arg;
+	int error;
+
+	/*
+	 * The space map callback is applied only to non-debug entries.
+	 * Because the number of debug entries is less or equal to the
+	 * number of non-debug entries, we want to ensure that we only
+	 * read what we prefetched from open-context.
+	 *
+	 * Thus, we set the maximum entries that the space map callback
+	 * will be applied to be half the entries that could fit in the
+	 * imposed memory limit.
+	 */
+	uint64_t max_entry_limit =
+	    (zfs_spa_discard_memory_limit / sizeof (uint64_t)) >> 1;
+
+	uint64_t entries_in_sm =
+	    space_map_length(vd->vdev_checkpoint_sm) / sizeof (uint64_t);
+
+	/*
+	 * Iterate from the end of the space map towards the beginning,
+	 * placing its entries on ms_freeing and removing them from the
+	 * space map. The iteration stops if one of the following
+	 * conditions is true:
+	 *
+	 * 1] We reached the beginning of the space map. At this point
+	 *    the space map should be completely empty and
+	 *    space_map_incremental_destroy should have returned 0.
+	 *    The next step would be to free and close the space map
+	 *    and remove its entry from its vdev's top zap. This allows
+	 *    spa_checkpoint_discard_thread() to move on to the next vdev.
+	 *
+	 * 2] We reached the memory limit (amount of memory used to hold
+	 *    space map entries in memory) and space_map_incremental_destroy
+	 *    returned EINTR. This means that there are entries remaining
+	 *    in the space map that will be cleared in a future invocation
+	 *    of this function by spa_checkpoint_discard_thread().
+	 */
+	spa_checkpoint_discard_sync_callback_arg_t sdc;
+	sdc.sdc_vd = vd;
+	sdc.sdc_txg = tx->tx_txg;
+	sdc.sdc_entry_limit = MIN(entries_in_sm, max_entry_limit);
+
+	uint64_t entries_before = entries_in_sm;
+
+	error = space_map_incremental_destroy(vd->vdev_checkpoint_sm,
+	    spa_checkpoint_discard_sync_callback, &sdc, tx);
+
+	uint64_t entries_after =
+	    space_map_length(vd->vdev_checkpoint_sm) / sizeof (uint64_t);
+
+#ifdef DEBUG
+	spa_checkpoint_accounting_verify(vd->vdev_spa);
+#endif
+
+	zfs_dbgmsg("discarding checkpoint: txg %llu, vdev id %d, "
+	    "deleted %llu entries - %llu entries are left",
+	    tx->tx_txg, vd->vdev_id, (entries_before - entries_after),
+	    entries_after);
+
+	if (error != EINTR) {
+		if (error != 0) {
+			zfs_panic_recover("zfs: error %d was returned "
+			    "while incrementally destroying the checkpoint "
+			    "space map of vdev %llu\n",
+			    error, vd->vdev_id);
+		}
+		ASSERT0(entries_after);
+		ASSERT0(vd->vdev_checkpoint_sm->sm_alloc);
+		ASSERT0(vd->vdev_checkpoint_sm->sm_length);
+
+		space_map_free(vd->vdev_checkpoint_sm, tx);
+		space_map_close(vd->vdev_checkpoint_sm);
+		vd->vdev_checkpoint_sm = NULL;
+
+		VERIFY0(zap_remove(vd->vdev_spa->spa_meta_objset,
+		    vd->vdev_top_zap, VDEV_TOP_ZAP_POOL_CHECKPOINT_SM, tx));
+	}
+}
+
+static boolean_t
+spa_checkpoint_discard_is_done(spa_t *spa)
+{
+	vdev_t *rvd = spa->spa_root_vdev;
+
+	ASSERT(!spa_has_checkpoint(spa));
+	ASSERT(spa_feature_is_active(spa, SPA_FEATURE_POOL_CHECKPOINT));
+
+	for (uint64_t c = 0; c < rvd->vdev_children; c++) {
+		if (rvd->vdev_child[c]->vdev_checkpoint_sm != NULL)
+			return (B_FALSE);
+		ASSERT0(rvd->vdev_child[c]->vdev_stat.vs_checkpoint_space);
+	}
+
+	return (B_TRUE);
+}
+
+/* ARGSUSED */
+boolean_t
+spa_checkpoint_discard_thread_check(void *arg, zthr_t *zthr)
+{
+	spa_t *spa = arg;
+
+	if (!spa_feature_is_active(spa, SPA_FEATURE_POOL_CHECKPOINT))
+		return (B_FALSE);
+
+	if (spa_has_checkpoint(spa))
+		return (B_FALSE);
+
+	return (B_TRUE);
+}
+
+int
+spa_checkpoint_discard_thread(void *arg, zthr_t *zthr)
+{
+	spa_t *spa = arg;
+	vdev_t *rvd = spa->spa_root_vdev;
+
+	for (uint64_t c = 0; c < rvd->vdev_children; c++) {
+		vdev_t *vd = rvd->vdev_child[c];
+
+		while (vd->vdev_checkpoint_sm != NULL) {
+			space_map_t *checkpoint_sm = vd->vdev_checkpoint_sm;
+			int numbufs;
+			dmu_buf_t **dbp;
+
+			if (zthr_iscancelled(zthr))
+				return (0);
+
+			ASSERT3P(vd->vdev_ops, !=, &vdev_indirect_ops);
+
+			uint64_t size = MIN(space_map_length(checkpoint_sm),
+			    zfs_spa_discard_memory_limit);
+			uint64_t offset =
+			    space_map_length(checkpoint_sm) - size;
+
+			/*
+			 * Ensure that the part of the space map that will
+			 * be destroyed by the synctask, is prefetched in
+			 * memory before the synctask runs.
+			 */
+			int error = dmu_buf_hold_array_by_bonus(
+			    checkpoint_sm->sm_dbuf, offset, size,
+			    B_TRUE, FTAG, &numbufs, &dbp);
+			if (error != 0) {
+				zfs_panic_recover("zfs: error %d was returned "
+				    "while prefetching checkpoint space map "
+				    "entries of vdev %llu\n",
+				    error, vd->vdev_id);
+			}
+
+			VERIFY0(dsl_sync_task(spa->spa_name, NULL,
+			    spa_checkpoint_discard_thread_sync, vd,
+			    0, ZFS_SPACE_CHECK_NONE));
+
+			dmu_buf_rele_array(dbp, numbufs, FTAG);
+		}
+	}
+
+	VERIFY(spa_checkpoint_discard_is_done(spa));
+	VERIFY0(spa->spa_checkpoint_info.sci_dspace);
+	VERIFY0(dsl_sync_task(spa->spa_name, NULL,
+	    spa_checkpoint_discard_complete_sync, spa,
+	    0, ZFS_SPACE_CHECK_NONE));
+
+	return (0);
+}
+
+
+/* ARGSUSED */
+static int
+spa_checkpoint_check(void *arg, dmu_tx_t *tx)
+{
+	spa_t *spa = dmu_tx_pool(tx)->dp_spa;
+
+	if (!spa_feature_is_enabled(spa, SPA_FEATURE_POOL_CHECKPOINT))
+		return (SET_ERROR(ENOTSUP));
+
+	if (!spa_top_vdevs_spacemap_addressable(spa))
+		return (SET_ERROR(ZFS_ERR_VDEV_TOO_BIG));
+
+	if (spa->spa_vdev_removal != NULL)
+		return (SET_ERROR(ZFS_ERR_DEVRM_IN_PROGRESS));
+
+	if (spa->spa_checkpoint_txg != 0)
+		return (SET_ERROR(ZFS_ERR_CHECKPOINT_EXISTS));
+
+	if (spa_feature_is_active(spa, SPA_FEATURE_POOL_CHECKPOINT))
+		return (SET_ERROR(ZFS_ERR_DISCARDING_CHECKPOINT));
+
+	return (0);
+}
+
+/* ARGSUSED */
+static void
+spa_checkpoint_sync(void *arg, dmu_tx_t *tx)
+{
+	dsl_pool_t *dp = dmu_tx_pool(tx);
+	spa_t *spa = dp->dp_spa;
+	uberblock_t checkpoint = spa->spa_ubsync;
+
+	/*
+	 * At this point, there should not be a checkpoint in the MOS.
+	 */
+	ASSERT3U(zap_contains(spa_meta_objset(spa), DMU_POOL_DIRECTORY_OBJECT,
+	    DMU_POOL_ZPOOL_CHECKPOINT), ==, ENOENT);
+
+	ASSERT0(spa->spa_checkpoint_info.sci_timestamp);
+	ASSERT0(spa->spa_checkpoint_info.sci_dspace);
+
+	/*
+	 * Since the checkpointed uberblock is the one that just got synced
+	 * (we use spa_ubsync), its txg must be equal to the txg number of
+	 * the txg we are syncing, minus 1.
+	 */
+	ASSERT3U(checkpoint.ub_txg, ==, spa->spa_syncing_txg - 1);
+
+	/*
+	 * Once the checkpoint is in place, we need to ensure that none of
+	 * its blocks will be marked for reuse after it has been freed.
+	 * When there is a checkpoint and a block is freed, we compare its
+	 * birth txg to the txg of the checkpointed uberblock to see if the
+	 * block is part of the checkpoint or not. Therefore, we have to set
+	 * spa_checkpoint_txg before any frees happen in this txg (which is
+	 * why this is done as an early_synctask as explained in the comment
+	 * in spa_checkpoint()).
+	 */
+	spa->spa_checkpoint_txg = checkpoint.ub_txg;
+	spa->spa_checkpoint_info.sci_timestamp = checkpoint.ub_timestamp;
+
+	checkpoint.ub_checkpoint_txg = checkpoint.ub_txg;
+	VERIFY0(zap_add(spa->spa_dsl_pool->dp_meta_objset,
+	    DMU_POOL_DIRECTORY_OBJECT, DMU_POOL_ZPOOL_CHECKPOINT,
+	    sizeof (uint64_t), sizeof (uberblock_t) / sizeof (uint64_t),
+	    &checkpoint, tx));
+
+	/*
+	 * Increment the feature refcount and thus activate the feature.
+	 * Note that the feature will be deactivated when we've
+	 * completely discarded all checkpointed state (both vdev
+	 * space maps and uberblock).
+	 */
+	spa_feature_incr(spa, SPA_FEATURE_POOL_CHECKPOINT, tx);
+
+	spa_history_log_internal(spa, "spa checkpoint", tx,
+	    "checkpointed uberblock txg=%llu", checkpoint.ub_txg);
+}
+
+/*
+ * Create a checkpoint for the pool.
+ */
+int
+spa_checkpoint(const char *pool)
+{
+	int error;
+	spa_t *spa;
+
+	error = spa_open(pool, &spa, FTAG);
+	if (error != 0)
+		return (error);
+
+	mutex_enter(&spa->spa_vdev_top_lock);
+
+	/*
+	 * Wait for current syncing txg to finish so the latest synced
+	 * uberblock (spa_ubsync) has all the changes that we expect
+	 * to see if we were to revert later to the checkpoint. In other
+	 * words we want the checkpointed uberblock to include/reference
+	 * all the changes that were pending at the time that we issued
+	 * the checkpoint command.
+	 */
+	txg_wait_synced(spa_get_dsl(spa), 0);
+
+	/*
+	 * As the checkpointed uberblock references blocks from the previous
+	 * txg (spa_ubsync) we want to ensure that are not freeing any of
+	 * these blocks in the same txg that the following synctask will
+	 * run. Thus, we run it as an early synctask, so the dirty changes
+	 * that are synced to disk afterwards during zios and other synctasks
+	 * do not reuse checkpointed blocks.
+	 */
+	error = dsl_early_sync_task(pool, spa_checkpoint_check,
+	    spa_checkpoint_sync, NULL, 0, ZFS_SPACE_CHECK_NORMAL);
+
+	mutex_exit(&spa->spa_vdev_top_lock);
+
+	spa_close(spa, FTAG);
+	return (error);
+}
+
+/* ARGSUSED */
+static int
+spa_checkpoint_discard_check(void *arg, dmu_tx_t *tx)
+{
+	spa_t *spa = dmu_tx_pool(tx)->dp_spa;
+
+	if (!spa_feature_is_active(spa, SPA_FEATURE_POOL_CHECKPOINT))
+		return (SET_ERROR(ZFS_ERR_NO_CHECKPOINT));
+
+	if (spa->spa_checkpoint_txg == 0)
+		return (SET_ERROR(ZFS_ERR_DISCARDING_CHECKPOINT));
+
+	VERIFY0(zap_contains(spa_meta_objset(spa),
+	    DMU_POOL_DIRECTORY_OBJECT, DMU_POOL_ZPOOL_CHECKPOINT));
+
+	return (0);
+}
+
+/* ARGSUSED */
+static void
+spa_checkpoint_discard_sync(void *arg, dmu_tx_t *tx)
+{
+	spa_t *spa = dmu_tx_pool(tx)->dp_spa;
+
+	VERIFY0(zap_remove(spa_meta_objset(spa), DMU_POOL_DIRECTORY_OBJECT,
+	    DMU_POOL_ZPOOL_CHECKPOINT, tx));
+
+	spa->spa_checkpoint_txg = 0;
+
+	zthr_wakeup(spa->spa_checkpoint_discard_zthr);
+
+	spa_history_log_internal(spa, "spa discard checkpoint", tx,
+	    "started discarding checkpointed state from the pool");
+}
+
+/*
+ * Discard the checkpoint from a pool.
+ */
+int
+spa_checkpoint_discard(const char *pool)
+{
+	/*
+	 * Similarly to spa_checkpoint(), we want our synctask to run
+	 * before any pending dirty data are written to disk so they
+	 * won't end up in the checkpoint's data structures (e.g.
+	 * ms_checkpointing and vdev_checkpoint_sm) and re-create any
+	 * space maps that the discarding open-context thread has
+	 * deleted.
+	 * [see spa_discard_checkpoint_sync and spa_discard_checkpoint_thread]
+	 */
+	return (dsl_early_sync_task(pool, spa_checkpoint_discard_check,
+	    spa_checkpoint_discard_sync, NULL, 0,
+	    ZFS_SPACE_CHECK_DISCARD_CHECKPOINT));
+}

Added: vendor-sys/illumos/dist/uts/common/fs/zfs/sys/spa_checkpoint.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/sys/spa_checkpoint.h	Wed Mar 28 21:00:34 2018	(r331700)
@@ -0,0 +1,44 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2017 by Delphix. All rights reserved.
+ */
+
+#ifndef _SYS_SPA_CHECKPOINT_H
+#define	_SYS_SPA_CHECKPOINT_H
+
+#include 
+
+typedef struct spa_checkpoint_info {
+	uint64_t sci_timestamp; /* when checkpointed uberblock was synced  */
+	uint64_t sci_dspace;    /* disk space used by checkpoint in bytes */
+} spa_checkpoint_info_t;
+
+int spa_checkpoint(const char *);
+int spa_checkpoint_discard(const char *);
+
+boolean_t spa_checkpoint_discard_thread_check(void *, zthr_t *);
+int spa_checkpoint_discard_thread(void *, zthr_t *);
+
+int spa_checkpoint_get_stats(spa_t *, pool_checkpoint_stat_t *);
+
+#endif /* _SYS_SPA_CHECKPOINT_H */

From owner-svn-src-all@freebsd.org  Wed Mar 28 22:01:28 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E203BF75C92;
 Wed, 28 Mar 2018 22:01:27 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 94322848FF;
 Wed, 28 Mar 2018 22:01:27 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8EE6610C04;
 Wed, 28 Mar 2018 22:01:27 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SM1RKD029677;
 Wed, 28 Mar 2018 22:01:27 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SM1RTe029674;
 Wed, 28 Mar 2018 22:01:27 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282201.w2SM1RTe029674@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 22:01:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331701 - in head: cddl/contrib/opensolaris/cmd/zdb
 cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/cmd/ztest
 cddl/contrib/opensolaris/lib/libzfs/common cddl/contrib/opensol...
X-SVN-Group: head
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: in head: cddl/contrib/opensolaris/cmd/zdb
 cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/cmd/ztest
 cddl/contrib/opensolaris/lib/libzfs/common
 cddl/contrib/opensolaris/lib/libzfs_core/comm...
X-SVN-Commit-Revision: 331701
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 22:01:28 -0000

Author: mav
Date: Wed Mar 28 22:01:27 2018
New Revision: 331701
URL: https://svnweb.freebsd.org/changeset/base/331701

Log:
  MFV r331695, 331700: 9166 zfs storage pool checkpoint
  
  illumos/illumos-gate@8671400134a11c848244896ca51a7db4d0f69da4
  
  The idea of Storage Pool Checkpoint (aka zpool checkpoint) deals with
  exactly that.  It can be thought of as a “pool-wide snapshot” (or a
  variation of extreme rewind that doesn’t corrupt your data).  It remembers
  the entire state of the pool at the point that it was taken and the user
  can revert back to it later or discard it.  Its generic use case is an
  administrator that is about to perform a set of destructive actions to ZFS
  as part of a critical procedure.  She takes a checkpoint of the pool before
  performing the actions, then rewinds back to it if one of them fails or puts
  the pool into an unexpected state.  Otherwise, she discards it.  With the
  assumption that no one else is making modifications to ZFS, she basically
  wraps all these actions into a “high-level transaction”.
  
  Reviewed by: Matthew Ahrens 
  Reviewed by: John Kennedy 
  Reviewed by: Dan Kimmel 
  Approved by: Richard Lowe 
  Author: Serapheim Dimitropoulos 

Added:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_checkpoint.c
     - copied unchanged from r331700, vendor-sys/illumos/dist/uts/common/fs/zfs/spa_checkpoint.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_checkpoint.h
     - copied unchanged from r331700, vendor-sys/illumos/dist/uts/common/fs/zfs/sys/spa_checkpoint.h
Modified:
  head/cddl/contrib/opensolaris/cmd/zdb/zdb.8
  head/cddl/contrib/opensolaris/cmd/zdb/zdb.c
  head/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c
  head/cddl/contrib/opensolaris/cmd/zpool/zpool-features.7
  head/cddl/contrib/opensolaris/cmd/zpool/zpool.8
  head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
  head/cddl/contrib/opensolaris/cmd/ztest/ztest.c
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c
  head/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.c
  head/cddl/contrib/opensolaris/lib/libzfs_core/common/libzfs_core.h
  head/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c
  head/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h
  head/sys/cddl/contrib/opensolaris/common/zfs/zpool_prop.c
  head/sys/cddl/contrib/opensolaris/uts/common/Makefile.files
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_userhold.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/range_tree.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_synctask.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab_impl.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/range_tree.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/space_map.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/uberblock_impl.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_removal.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zthr.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/uberblock.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_indirect.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_removal.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zcp.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zcp_synctask.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zthr.c
  head/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
  head/sys/conf/files
Directory Properties:
  head/cddl/contrib/opensolaris/   (props changed)
  head/cddl/contrib/opensolaris/cmd/zdb/   (props changed)
  head/cddl/contrib/opensolaris/lib/libzfs/   (props changed)
  head/sys/cddl/contrib/opensolaris/   (props changed)

Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.8
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/zdb/zdb.8	Wed Mar 28 21:00:34 2018	(r331700)
+++ head/cddl/contrib/opensolaris/cmd/zdb/zdb.8	Wed Mar 28 22:01:27 2018	(r331701)
@@ -21,7 +21,7 @@
 .Nd display zpool debugging and consistency information
 .Sh SYNOPSIS
 .Nm
-.Op Fl AbcdDFGhiLMPsvX
+.Op Fl AbcdDFGhikLMPsvX
 .Op Fl e Oo Fl V Oc Op Fl p Ar path ...
 .Op Fl I Ar inflight I/Os
 .Oo Fl o Ar var Ns = Ns Ar value Oc Ns ...
@@ -170,6 +170,9 @@ Display information about intent log
 .Pq ZIL
 entries relating to each dataset.
 If specified multiple times, display counts of each intent log transaction type.
+.It Fl k
+Examine the checkpointed state of the pool.
+Note, the on disk format of the pool is not reverted to the checkpointed state.
 .It Fl l Ar device
 Read the vdev labels from the specified device.
 .Nm Fl l

Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.c
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Wed Mar 28 21:00:34 2018	(r331700)
+++ head/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Wed Mar 28 22:01:27 2018	(r331701)
@@ -131,7 +131,7 @@ static void
 usage(void)
 {
 	(void) fprintf(stderr,
-	    "Usage:\t%s [-AbcdDFGhiLMPsvX] [-e [-V] [-p  ...]] "
+	    "Usage:\t%s [-AbcdDFGhikLMPsvX] [-e [-V] [-p  ...]] "
 	    "[-I ]\n"
 	    "\t\t[-o =]... [-t ] [-U ] [-x ]\n"
 	    "\t\t[ [ ...]]\n"
@@ -168,6 +168,8 @@ usage(void)
 	(void) fprintf(stderr, "        -h pool history\n");
 	(void) fprintf(stderr, "        -i intent logs\n");
 	(void) fprintf(stderr, "        -l read label contents\n");
+	(void) fprintf(stderr, "        -k examine the checkpointed state "
+	    "of the pool\n");
 	(void) fprintf(stderr, "        -L disable leak tracking (do not "
 	    "load spacemaps)\n");
 	(void) fprintf(stderr, "        -m metaslabs\n");
@@ -729,6 +731,22 @@ get_prev_obsolete_spacemap_refcount(spa_t *spa)
 }
 
 static int
+get_checkpoint_refcount(vdev_t *vd)
+{
+	int refcount = 0;
+
+	if (vd->vdev_top == vd && vd->vdev_top_zap != 0 &&
+	    zap_contains(spa_meta_objset(vd->vdev_spa),
+	    vd->vdev_top_zap, VDEV_TOP_ZAP_POOL_CHECKPOINT_SM) == 0)
+		refcount++;
+
+	for (uint64_t c = 0; c < vd->vdev_children; c++)
+		refcount += get_checkpoint_refcount(vd->vdev_child[c]);
+
+	return (refcount);
+}
+
+static int
 verify_spacemap_refcounts(spa_t *spa)
 {
 	uint64_t expected_refcount = 0;
@@ -741,6 +759,7 @@ verify_spacemap_refcounts(spa_t *spa)
 	actual_refcount += get_metaslab_refcount(spa->spa_root_vdev);
 	actual_refcount += get_obsolete_refcount(spa->spa_root_vdev);
 	actual_refcount += get_prev_obsolete_spacemap_refcount(spa);
+	actual_refcount += get_checkpoint_refcount(spa->spa_root_vdev);
 
 	if (expected_refcount != actual_refcount) {
 		(void) printf("space map refcount mismatch: expected %lld != "
@@ -814,8 +833,8 @@ static void
 dump_metaslab_stats(metaslab_t *msp)
 {
 	char maxbuf[32];
-	range_tree_t *rt = msp->ms_tree;
-	avl_tree_t *t = &msp->ms_size_tree;
+	range_tree_t *rt = msp->ms_allocatable;
+	avl_tree_t *t = &msp->ms_allocatable_by_size;
 	int free_pct = range_tree_space(rt) * 100 / msp->ms_size;
 
 	/* max sure nicenum has enough space */
@@ -851,7 +870,7 @@ dump_metaslab(metaslab_t *msp)
 		metaslab_load_wait(msp);
 		if (!msp->ms_loaded) {
 			VERIFY0(metaslab_load(msp));
-			range_tree_stat_verify(msp->ms_tree);
+			range_tree_stat_verify(msp->ms_allocatable);
 		}
 		dump_metaslab_stats(msp);
 		metaslab_unload(msp);
@@ -2289,6 +2308,8 @@ dump_uberblock(uberblock_t *ub, const char *header, co
 		snprintf_blkptr(blkbuf, sizeof (blkbuf), &ub->ub_rootbp);
 		(void) printf("\trootbp = %s\n", blkbuf);
 	}
+	(void) printf("\tcheckpoint_txg = %llu\n",
+	    (u_longlong_t)ub->ub_checkpoint_txg);
 	(void) printf("%s", footer ? footer : "");
 }
 
@@ -2649,6 +2670,7 @@ static const char *zdb_ot_extname[] = {
 typedef struct zdb_cb {
 	zdb_blkstats_t	zcb_type[ZB_TOTAL + 1][ZDB_OT_TOTAL + 1];
 	uint64_t	zcb_removing_size;
+	uint64_t	zcb_checkpoint_size;
 	uint64_t	zcb_dedup_asize;
 	uint64_t	zcb_dedup_blocks;
 	uint64_t	zcb_embedded_blocks[NUM_BP_EMBEDDED_TYPES];
@@ -2748,7 +2770,7 @@ zdb_count_block(zdb_cb_t *zcb, zilog_t *zilog, const b
 	}
 
 	VERIFY3U(zio_wait(zio_claim(NULL, zcb->zcb_spa,
-	    refcnt ? 0 : spa_first_txg(zcb->zcb_spa),
+	    refcnt ? 0 : spa_min_claim_txg(zcb->zcb_spa),
 	    bp, NULL, NULL, ZIO_FLAG_CANFAIL)), ==, 0);
 }
 
@@ -2950,7 +2972,7 @@ claim_segment_impl_cb(uint64_t inner_offset, vdev_t *v
 	ASSERT(vdev_is_concrete(vd));
 
 	VERIFY0(metaslab_claim_impl(vd, offset, size,
-	    spa_first_txg(vd->vdev_spa)));
+	    spa_min_claim_txg(vd->vdev_spa)));
 }
 
 static void
@@ -3011,70 +3033,6 @@ zdb_claim_removing(spa_t *spa, zdb_cb_t *zcb)
 	spa_config_exit(spa, SCL_CONFIG, FTAG);
 }
 
-/*
- * vm_idxp is an in-out parameter which (for indirect vdevs) is the
- * index in vim_entries that has the first entry in this metaslab.  On
- * return, it will be set to the first entry after this metaslab.
- */
-static void
-zdb_leak_init_ms(metaslab_t *msp, uint64_t *vim_idxp)
-{
-	metaslab_group_t *mg = msp->ms_group;
-	vdev_t *vd = mg->mg_vd;
-	vdev_t *rvd = vd->vdev_spa->spa_root_vdev;
-
-	mutex_enter(&msp->ms_lock);
-	metaslab_unload(msp);
-
-	/*
-	 * We don't want to spend the CPU manipulating the size-ordered
-	 * tree, so clear the range_tree ops.
-	 */
-	msp->ms_tree->rt_ops = NULL;
-
-	(void) fprintf(stderr,
-	    "\rloading vdev %llu of %llu, metaslab %llu of %llu ...",
-	    (longlong_t)vd->vdev_id,
-	    (longlong_t)rvd->vdev_children,
-	    (longlong_t)msp->ms_id,
-	    (longlong_t)vd->vdev_ms_count);
-
-	/*
-	 * For leak detection, we overload the metaslab ms_tree to
-	 * contain allocated segments instead of free segments. As a
-	 * result, we can't use the normal metaslab_load/unload
-	 * interfaces.
-	 */
-	if (vd->vdev_ops == &vdev_indirect_ops) {
-		vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
-		for (; *vim_idxp < vdev_indirect_mapping_num_entries(vim);
-		    (*vim_idxp)++) {
-			vdev_indirect_mapping_entry_phys_t *vimep =
-			    &vim->vim_entries[*vim_idxp];
-			uint64_t ent_offset = DVA_MAPPING_GET_SRC_OFFSET(vimep);
-			uint64_t ent_len = DVA_GET_ASIZE(&vimep->vimep_dst);
-			ASSERT3U(ent_offset, >=, msp->ms_start);
-			if (ent_offset >= msp->ms_start + msp->ms_size)
-				break;
-
-			/*
-			 * Mappings do not cross metaslab boundaries,
-			 * because we create them by walking the metaslabs.
-			 */
-			ASSERT3U(ent_offset + ent_len, <=,
-			    msp->ms_start + msp->ms_size);
-			range_tree_add(msp->ms_tree, ent_offset, ent_len);
-		}
-	} else if (msp->ms_sm != NULL) {
-		VERIFY0(space_map_load(msp->ms_sm, msp->ms_tree, SM_ALLOC));
-	}
-
-	if (!msp->ms_loaded) {
-		msp->ms_loaded = B_TRUE;
-	}
-	mutex_exit(&msp->ms_lock);
-}
-
 /* ARGSUSED */
 static int
 increment_indirect_mapping_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx)
@@ -3131,7 +3089,243 @@ zdb_load_obsolete_counts(vdev_t *vd)
 	return (counts);
 }
 
+typedef struct checkpoint_sm_exclude_entry_arg {
+	vdev_t *cseea_vd;
+	uint64_t cseea_checkpoint_size;
+} checkpoint_sm_exclude_entry_arg_t;
+
+static int
+checkpoint_sm_exclude_entry_cb(maptype_t type, uint64_t offset, uint64_t size,
+    void *arg)
+{
+	checkpoint_sm_exclude_entry_arg_t *cseea = arg;
+	vdev_t *vd = cseea->cseea_vd;
+	metaslab_t *ms = vd->vdev_ms[offset >> vd->vdev_ms_shift];
+	uint64_t end = offset + size;
+
+	ASSERT(type == SM_FREE);
+
+	/*
+	 * Since the vdev_checkpoint_sm exists in the vdev level
+	 * and the ms_sm space maps exist in the metaslab level,
+	 * an entry in the checkpoint space map could theoretically
+	 * cross the boundaries of the metaslab that it belongs.
+	 *
+	 * In reality, because of the way that we populate and
+	 * manipulate the checkpoint's space maps currently,
+	 * there shouldn't be any entries that cross metaslabs.
+	 * Hence the assertion below.
+	 *
+	 * That said, there is no fundamental requirement that
+	 * the checkpoint's space map entries should not cross
+	 * metaslab boundaries. So if needed we could add code
+	 * that handles metaslab-crossing segments in the future.
+	 */
+	VERIFY3U(offset, >=, ms->ms_start);
+	VERIFY3U(end, <=, ms->ms_start + ms->ms_size);
+
+	/*
+	 * By removing the entry from the allocated segments we
+	 * also verify that the entry is there to begin with.
+	 */
+	mutex_enter(&ms->ms_lock);
+	range_tree_remove(ms->ms_allocatable, offset, size);
+	mutex_exit(&ms->ms_lock);
+
+	cseea->cseea_checkpoint_size += size;
+	return (0);
+}
+
 static void
+zdb_leak_init_vdev_exclude_checkpoint(vdev_t *vd, zdb_cb_t *zcb)
+{
+	spa_t *spa = vd->vdev_spa;
+	space_map_t *checkpoint_sm = NULL;
+	uint64_t checkpoint_sm_obj;
+
+	/*
+	 * If there is no vdev_top_zap, we are in a pool whose
+	 * version predates the pool checkpoint feature.
+	 */
+	if (vd->vdev_top_zap == 0)
+		return;
+
+	/*
+	 * If there is no reference of the vdev_checkpoint_sm in
+	 * the vdev_top_zap, then one of the following scenarios
+	 * is true:
+	 *
+	 * 1] There is no checkpoint
+	 * 2] There is a checkpoint, but no checkpointed blocks
+	 *    have been freed yet
+	 * 3] The current vdev is indirect
+	 *
+	 * In these cases we return immediately.
+	 */
+	if (zap_contains(spa_meta_objset(spa), vd->vdev_top_zap,
+	    VDEV_TOP_ZAP_POOL_CHECKPOINT_SM) != 0)
+		return;
+
+	VERIFY0(zap_lookup(spa_meta_objset(spa), vd->vdev_top_zap,
+	    VDEV_TOP_ZAP_POOL_CHECKPOINT_SM, sizeof (uint64_t), 1,
+	    &checkpoint_sm_obj));
+
+	checkpoint_sm_exclude_entry_arg_t cseea;
+	cseea.cseea_vd = vd;
+	cseea.cseea_checkpoint_size = 0;
+
+	VERIFY0(space_map_open(&checkpoint_sm, spa_meta_objset(spa),
+	    checkpoint_sm_obj, 0, vd->vdev_asize, vd->vdev_ashift));
+	space_map_update(checkpoint_sm);
+
+	VERIFY0(space_map_iterate(checkpoint_sm,
+	    checkpoint_sm_exclude_entry_cb, &cseea));
+	space_map_close(checkpoint_sm);
+
+	zcb->zcb_checkpoint_size += cseea.cseea_checkpoint_size;
+}
+
+static void
+zdb_leak_init_exclude_checkpoint(spa_t *spa, zdb_cb_t *zcb)
+{
+	vdev_t *rvd = spa->spa_root_vdev;
+	for (uint64_t c = 0; c < rvd->vdev_children; c++) {
+		ASSERT3U(c, ==, rvd->vdev_child[c]->vdev_id);
+		zdb_leak_init_vdev_exclude_checkpoint(rvd->vdev_child[c], zcb);
+	}
+}
+
+static void
+load_concrete_ms_allocatable_trees(spa_t *spa, maptype_t maptype)
+{
+	vdev_t *rvd = spa->spa_root_vdev;
+	for (uint64_t i = 0; i < rvd->vdev_children; i++) {
+		vdev_t *vd = rvd->vdev_child[i];
+
+		ASSERT3U(i, ==, vd->vdev_id);
+
+		if (vd->vdev_ops == &vdev_indirect_ops)
+			continue;
+
+		for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
+			metaslab_t *msp = vd->vdev_ms[m];
+
+			(void) fprintf(stderr,
+			    "\rloading concrete vdev %llu, "
+			    "metaslab %llu of %llu ...",
+			    (longlong_t)vd->vdev_id,
+			    (longlong_t)msp->ms_id,
+			    (longlong_t)vd->vdev_ms_count);
+
+			mutex_enter(&msp->ms_lock);
+			metaslab_unload(msp);
+
+			/*
+			 * We don't want to spend the CPU manipulating the
+			 * size-ordered tree, so clear the range_tree ops.
+			 */
+			msp->ms_allocatable->rt_ops = NULL;
+
+			if (msp->ms_sm != NULL) {
+				VERIFY0(space_map_load(msp->ms_sm,
+				    msp->ms_allocatable, maptype));
+			}
+			if (!msp->ms_loaded)
+				msp->ms_loaded = B_TRUE;
+			mutex_exit(&msp->ms_lock);
+		}
+	}
+}
+
+/*
+ * vm_idxp is an in-out parameter which (for indirect vdevs) is the
+ * index in vim_entries that has the first entry in this metaslab.
+ * On return, it will be set to the first entry after this metaslab.
+ */
+static void
+load_indirect_ms_allocatable_tree(vdev_t *vd, metaslab_t *msp,
+    uint64_t *vim_idxp)
+{
+	vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
+
+	mutex_enter(&msp->ms_lock);
+	metaslab_unload(msp);
+
+	/*
+	 * We don't want to spend the CPU manipulating the
+	 * size-ordered tree, so clear the range_tree ops.
+	 */
+	msp->ms_allocatable->rt_ops = NULL;
+
+	for (; *vim_idxp < vdev_indirect_mapping_num_entries(vim);
+	    (*vim_idxp)++) {
+		vdev_indirect_mapping_entry_phys_t *vimep =
+		    &vim->vim_entries[*vim_idxp];
+		uint64_t ent_offset = DVA_MAPPING_GET_SRC_OFFSET(vimep);
+		uint64_t ent_len = DVA_GET_ASIZE(&vimep->vimep_dst);
+		ASSERT3U(ent_offset, >=, msp->ms_start);
+		if (ent_offset >= msp->ms_start + msp->ms_size)
+			break;
+
+		/*
+		 * Mappings do not cross metaslab boundaries,
+		 * because we create them by walking the metaslabs.
+		 */
+		ASSERT3U(ent_offset + ent_len, <=,
+		    msp->ms_start + msp->ms_size);
+		range_tree_add(msp->ms_allocatable, ent_offset, ent_len);
+	}
+
+	if (!msp->ms_loaded)
+		msp->ms_loaded = B_TRUE;
+	mutex_exit(&msp->ms_lock);
+}
+
+static void
+zdb_leak_init_prepare_indirect_vdevs(spa_t *spa, zdb_cb_t *zcb)
+{
+	vdev_t *rvd = spa->spa_root_vdev;
+	for (uint64_t c = 0; c < rvd->vdev_children; c++) {
+		vdev_t *vd = rvd->vdev_child[c];
+
+		ASSERT3U(c, ==, vd->vdev_id);
+
+		if (vd->vdev_ops != &vdev_indirect_ops)
+			continue;
+
+		/*
+		 * Note: we don't check for mapping leaks on
+		 * removing vdevs because their ms_allocatable's
+		 * are used to look for leaks in allocated space.
+		 */
+		zcb->zcb_vd_obsolete_counts[c] = zdb_load_obsolete_counts(vd);
+
+		/*
+		 * Normally, indirect vdevs don't have any
+		 * metaslabs.  We want to set them up for
+		 * zio_claim().
+		 */
+		VERIFY0(vdev_metaslab_init(vd, 0));
+
+		vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping;
+		uint64_t vim_idx = 0;
+		for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
+
+			(void) fprintf(stderr,
+			    "\rloading indirect vdev %llu, "
+			    "metaslab %llu of %llu ...",
+			    (longlong_t)vd->vdev_id,
+			    (longlong_t)vd->vdev_ms[m]->ms_id,
+			    (longlong_t)vd->vdev_ms_count);
+
+			load_indirect_ms_allocatable_tree(vd, vd->vdev_ms[m],
+			    &vim_idx);
+		}
+		ASSERT3U(vim_idx, ==, vdev_indirect_mapping_num_entries(vim));
+	}
+}
+
+static void
 zdb_leak_init(spa_t *spa, zdb_cb_t *zcb)
 {
 	zcb->zcb_spa = spa;
@@ -3142,7 +3336,7 @@ zdb_leak_init(spa_t *spa, zdb_cb_t *zcb)
 
 		/*
 		 * We are going to be changing the meaning of the metaslab's
-		 * ms_tree.  Ensure that the allocator doesn't try to
+		 * ms_allocatable.  Ensure that the allocator doesn't try to
 		 * use the tree.
 		 */
 		spa->spa_normal_class->mc_ops = &zdb_metaslab_ops;
@@ -3152,39 +3346,37 @@ zdb_leak_init(spa_t *spa, zdb_cb_t *zcb)
 		    umem_zalloc(rvd->vdev_children * sizeof (uint32_t *),
 		    UMEM_NOFAIL);
 
+		/*
+		 * For leak detection, we overload the ms_allocatable trees
+		 * to contain allocated segments instead of free segments.
+		 * As a result, we can't use the normal metaslab_load/unload
+		 * interfaces.
+		 */
+		zdb_leak_init_prepare_indirect_vdevs(spa, zcb);
+		load_concrete_ms_allocatable_trees(spa, SM_ALLOC);
 
-		for (uint64_t c = 0; c < rvd->vdev_children; c++) {
-			vdev_t *vd = rvd->vdev_child[c];
-			uint64_t vim_idx = 0;
+		/*
+		 * On load_concrete_ms_allocatable_trees() we loaded all the
+		 * allocated entries from the ms_sm to the ms_allocatable for
+		 * each metaslab. If the pool has a checkpoint or is in the
+		 * middle of discarding a checkpoint, some of these blocks
+		 * may have been freed but their ms_sm may not have been
+		 * updated because they are referenced by the checkpoint. In
+		 * order to avoid false-positives during leak-detection, we
+		 * go through the vdev's checkpoint space map and exclude all
+		 * its entries from their relevant ms_allocatable.
+		 *
+		 * We also aggregate the space held by the checkpoint and add
+		 * it to zcb_checkpoint_size.
+		 *
+		 * Note that at this point we are also verifying that all the
+		 * entries on the checkpoint_sm are marked as allocated in
+		 * the ms_sm of their relevant metaslab.
+		 * [see comment in checkpoint_sm_exclude_entry_cb()]
+		 */
+		zdb_leak_init_exclude_checkpoint(spa, zcb);
 
-			ASSERT3U(c, ==, vd->vdev_id);
-
-			/*
-			 * Note: we don't check for mapping leaks on
-			 * removing vdevs because their ms_tree's are
-			 * used to look for leaks in allocated space.
-			 */
-			if (vd->vdev_ops == &vdev_indirect_ops) {
-				zcb->zcb_vd_obsolete_counts[c] =
-				    zdb_load_obsolete_counts(vd);
-
-				/*
-				 * Normally, indirect vdevs don't have any
-				 * metaslabs.  We want to set them up for
-				 * zio_claim().
-				 */
-				VERIFY0(vdev_metaslab_init(vd, 0));
-			}
-
-			for (uint64_t m = 0; m < vd->vdev_ms_count; m++) {
-				zdb_leak_init_ms(vd->vdev_ms[m], &vim_idx);
-			}
-			if (vd->vdev_ops == &vdev_indirect_ops) {
-				ASSERT3U(vim_idx, ==,
-				    vdev_indirect_mapping_num_entries(
-				    vd->vdev_indirect_mapping));
-			}
-		}
+		/* for cleaner progress output */
 		(void) fprintf(stderr, "\n");
 
 		if (bpobj_is_open(&dp->dp_obsolete_bpobj)) {
@@ -3193,12 +3385,16 @@ zdb_leak_init(spa_t *spa, zdb_cb_t *zcb)
 			(void) bpobj_iterate_nofree(&dp->dp_obsolete_bpobj,
 			    increment_indirect_mapping_cb, zcb, NULL);
 		}
+	} else {
+		/*
+		 * If leak tracing is disabled, we still need to consider
+		 * any checkpointed space in our space verification.
+		 */
+		zcb->zcb_checkpoint_size += spa_get_checkpoint_space(spa);
 	}
 
 	spa_config_enter(spa, SCL_CONFIG, FTAG, RW_READER);
-
 	zdb_ddt_leak_init(spa, zcb);
-
 	spa_config_exit(spa, SCL_CONFIG, FTAG);
 }
 
@@ -3225,7 +3421,7 @@ zdb_check_for_obsolete_leaks(vdev_t *vd, zdb_cb_t *zcb
 		for (uint64_t inner_offset = 0;
 		    inner_offset < DVA_GET_ASIZE(&vimep->vimep_dst);
 		    inner_offset += 1 << vd->vdev_ashift) {
-			if (range_tree_contains(msp->ms_tree,
+			if (range_tree_contains(msp->ms_allocatable,
 			    offset + inner_offset, 1 << vd->vdev_ashift)) {
 				obsolete_bytes += 1 << vd->vdev_ashift;
 			}
@@ -3291,23 +3487,23 @@ zdb_leak_fini(spa_t *spa, zdb_cb_t *zcb)
 				ASSERT3P(mg, ==, msp->ms_group);
 
 				/*
-				 * The ms_tree has been overloaded to
-				 * contain allocated segments. Now that we
-				 * finished traversing all blocks, any
-				 * block that remains in the ms_tree
+				 * ms_allocatable has been overloaded
+				 * to contain allocated segments. Now that
+				 * we finished traversing all blocks, any
+				 * block that remains in the ms_allocatable
 				 * represents an allocated block that we
 				 * did not claim during the traversal.
 				 * Claimed blocks would have been removed
-				 * from the ms_tree.  For indirect vdevs,
-				 * space remaining in the tree represents
-				 * parts of the mapping that are not
-				 * referenced, which is not a bug.
+				 * from the ms_allocatable.  For indirect
+				 * vdevs, space remaining in the tree
+				 * represents parts of the mapping that are
+				 * not referenced, which is not a bug.
 				 */
 				if (vd->vdev_ops == &vdev_indirect_ops) {
-					range_tree_vacate(msp->ms_tree,
+					range_tree_vacate(msp->ms_allocatable,
 					    NULL, NULL);
 				} else {
-					range_tree_vacate(msp->ms_tree,
+					range_tree_vacate(msp->ms_allocatable,
 					    zdb_leak, vd);
 				}
 
@@ -3430,7 +3626,7 @@ dump_block_stats(spa_t *spa)
 
 	total_alloc = norm_alloc + metaslab_class_get_alloc(spa_log_class(spa));
 	total_found = tzb->zb_asize - zcb.zcb_dedup_asize +
-	    zcb.zcb_removing_size;
+	    zcb.zcb_removing_size + zcb.zcb_checkpoint_size;
 
 	if (total_found == total_alloc) {
 		if (!dump_opt['L'])
@@ -3839,7 +4035,385 @@ verify_device_removal_feature_counts(spa_t *spa)
 	return (ret);
 }
 
+#define	BOGUS_SUFFIX "_CHECKPOINTED_UNIVERSE"
+/*
+ * Import the checkpointed state of the pool specified by the target
+ * parameter as readonly. The function also accepts a pool config
+ * as an optional parameter, else it attempts to infer the config by
+ * the name of the target pool.
+ *
+ * Note that the checkpointed state's pool name will be the name of
+ * the original pool with the above suffix appened to it. In addition,
+ * if the target is not a pool name (e.g. a path to a dataset) then
+ * the new_path parameter is populated with the updated path to
+ * reflect the fact that we are looking into the checkpointed state.
+ *
+ * The function returns a newly-allocated copy of the name of the
+ * pool containing the checkpointed state. When this copy is no
+ * longer needed it should be freed with free(3C). Same thing
+ * applies to the new_path parameter if allocated.
+ */
+static char *
+import_checkpointed_state(char *target, nvlist_t *cfg, char **new_path)
+{
+	int error = 0;
+	char *poolname, *bogus_name;
+
+	/* If the target is not a pool, the extract the pool name */
+	char *path_start = strchr(target, '/');
+	if (path_start != NULL) {
+		size_t poolname_len = path_start - target;
+		poolname = strndup(target, poolname_len);
+	} else {
+		poolname = target;
+	}
+
+	if (cfg == NULL) {
+		error = spa_get_stats(poolname, &cfg, NULL, 0);
+		if (error != 0) {
+			fatal("Tried to read config of pool \"%s\" but "
+			    "spa_get_stats() failed with error %d\n",
+			    poolname, error);
+		}
+	}
+
+	(void) asprintf(&bogus_name, "%s%s", poolname, BOGUS_SUFFIX);
+	fnvlist_add_string(cfg, ZPOOL_CONFIG_POOL_NAME, bogus_name);
+
+	error = spa_import(bogus_name, cfg, NULL,
+	    ZFS_IMPORT_MISSING_LOG | ZFS_IMPORT_CHECKPOINT);
+	if (error != 0) {
+		fatal("Tried to import pool \"%s\" but spa_import() failed "
+		    "with error %d\n", bogus_name, error);
+	}
+
+	if (new_path != NULL && path_start != NULL)
+		(void) asprintf(new_path, "%s%s", bogus_name, path_start);
+
+	if (target != poolname)
+		free(poolname);
+
+	return (bogus_name);
+}
+
+typedef struct verify_checkpoint_sm_entry_cb_arg {
+	vdev_t *vcsec_vd;
+
+	/* the following fields are only used for printing progress */
+	uint64_t vcsec_entryid;
+	uint64_t vcsec_num_entries;
+} verify_checkpoint_sm_entry_cb_arg_t;
+
+#define	ENTRIES_PER_PROGRESS_UPDATE 10000
+
+static int
+verify_checkpoint_sm_entry_cb(maptype_t type, uint64_t offset, uint64_t size,
+    void *arg)
+{
+	verify_checkpoint_sm_entry_cb_arg_t *vcsec = arg;
+	vdev_t *vd = vcsec->vcsec_vd;
+	metaslab_t *ms = vd->vdev_ms[offset >> vd->vdev_ms_shift];
+	uint64_t end = offset + size;
+
+	ASSERT(type == SM_FREE);
+
+	if ((vcsec->vcsec_entryid % ENTRIES_PER_PROGRESS_UPDATE) == 0) {
+		(void) fprintf(stderr,
+		    "\rverifying vdev %llu, space map entry %llu of %llu ...",
+		    (longlong_t)vd->vdev_id,
+		    (longlong_t)vcsec->vcsec_entryid,
+		    (longlong_t)vcsec->vcsec_num_entries);
+	}
+	vcsec->vcsec_entryid++;
+
+	/*
+	 * See comment in checkpoint_sm_exclude_entry_cb()
+	 */
+	VERIFY3U(offset, >=, ms->ms_start);
+	VERIFY3U(end, <=, ms->ms_start + ms->ms_size);
+
+	/*
+	 * The entries in the vdev_checkpoint_sm should be marked as
+	 * allocated in the checkpointed state of the pool, therefore
+	 * their respective ms_allocateable trees should not contain them.
+	 */
+	mutex_enter(&ms->ms_lock);
+	range_tree_verify(ms->ms_allocatable, offset, size);
+	mutex_exit(&ms->ms_lock);
+
+	return (0);
+}
+
+/*
+ * Verify that all segments in the vdev_checkpoint_sm are allocated
+ * according to the checkpoint's ms_sm (i.e. are not in the checkpoint's
+ * ms_allocatable).
+ *
+ * Do so by comparing the checkpoint space maps (vdev_checkpoint_sm) of
+ * each vdev in the current state of the pool to the metaslab space maps
+ * (ms_sm) of the checkpointed state of the pool.
+ *
+ * Note that the function changes the state of the ms_allocatable
+ * trees of the current spa_t. The entries of these ms_allocatable
+ * trees are cleared out and then repopulated from with the free
+ * entries of their respective ms_sm space maps.
+ */
 static void
+verify_checkpoint_vdev_spacemaps(spa_t *checkpoint, spa_t *current)
+{
+	vdev_t *ckpoint_rvd = checkpoint->spa_root_vdev;
+	vdev_t *current_rvd = current->spa_root_vdev;
+
+	load_concrete_ms_allocatable_trees(checkpoint, SM_FREE);
+
+	for (uint64_t c = 0; c < ckpoint_rvd->vdev_children; c++) {
+		vdev_t *ckpoint_vd = ckpoint_rvd->vdev_child[c];
+		vdev_t *current_vd = current_rvd->vdev_child[c];
+
+		space_map_t *checkpoint_sm = NULL;
+		uint64_t checkpoint_sm_obj;
+
+		if (ckpoint_vd->vdev_ops == &vdev_indirect_ops) {
+			/*
+			 * Since we don't allow device removal in a pool
+			 * that has a checkpoint, we expect that all removed
+			 * vdevs were removed from the pool before the
+			 * checkpoint.
+			 */
+			ASSERT3P(current_vd->vdev_ops, ==, &vdev_indirect_ops);
+			continue;
+		}
+
+		/*
+		 * If the checkpoint space map doesn't exist, then nothing
+		 * here is checkpointed so there's nothing to verify.
+		 */
+		if (current_vd->vdev_top_zap == 0 ||
+		    zap_contains(spa_meta_objset(current),
+		    current_vd->vdev_top_zap,
+		    VDEV_TOP_ZAP_POOL_CHECKPOINT_SM) != 0)
+			continue;
+
+		VERIFY0(zap_lookup(spa_meta_objset(current),
+		    current_vd->vdev_top_zap, VDEV_TOP_ZAP_POOL_CHECKPOINT_SM,
+		    sizeof (uint64_t), 1, &checkpoint_sm_obj));
+
+		VERIFY0(space_map_open(&checkpoint_sm, spa_meta_objset(current),
+		    checkpoint_sm_obj, 0, current_vd->vdev_asize,
+		    current_vd->vdev_ashift));
+		space_map_update(checkpoint_sm);
+
+		verify_checkpoint_sm_entry_cb_arg_t vcsec;
+		vcsec.vcsec_vd = ckpoint_vd;
+		vcsec.vcsec_entryid = 0;
+		vcsec.vcsec_num_entries =
+		    space_map_length(checkpoint_sm) / sizeof (uint64_t);
+		VERIFY0(space_map_iterate(checkpoint_sm,
+		    verify_checkpoint_sm_entry_cb, &vcsec));
+		dump_spacemap(current->spa_meta_objset, checkpoint_sm);
+		space_map_close(checkpoint_sm);
+	}
+
+	/*
+	 * If we've added vdevs since we took the checkpoint, ensure
+	 * that their checkpoint space maps are empty.
+	 */
+	if (ckpoint_rvd->vdev_children < current_rvd->vdev_children) {
+		for (uint64_t c = ckpoint_rvd->vdev_children;
+		    c < current_rvd->vdev_children; c++) {
+			vdev_t *current_vd = current_rvd->vdev_child[c];
+			ASSERT3P(current_vd->vdev_checkpoint_sm, ==, NULL);
+		}
+	}
+
+	/* for cleaner progress output */
+	(void) fprintf(stderr, "\n");
+}
+
+/*
+ * Verifies that all space that's allocated in the checkpoint is
+ * still allocated in the current version, by checking that everything
+ * in checkpoint's ms_allocatable (which is actually allocated, not
+ * allocatable/free) is not present in current's ms_allocatable.
+ *
+ * Note that the function changes the state of the ms_allocatable
+ * trees of both spas when called. The entries of all ms_allocatable
+ * trees are cleared out and then repopulated from their respective
+ * ms_sm space maps. In the checkpointed state we load the allocated
+ * entries, and in the current state we load the free entries.
+ */
+static void
+verify_checkpoint_ms_spacemaps(spa_t *checkpoint, spa_t *current)
+{
+	vdev_t *ckpoint_rvd = checkpoint->spa_root_vdev;
+	vdev_t *current_rvd = current->spa_root_vdev;
+
+	load_concrete_ms_allocatable_trees(checkpoint, SM_ALLOC);
+	load_concrete_ms_allocatable_trees(current, SM_FREE);
+
+	for (uint64_t i = 0; i < ckpoint_rvd->vdev_children; i++) {
+		vdev_t *ckpoint_vd = ckpoint_rvd->vdev_child[i];
+		vdev_t *current_vd = current_rvd->vdev_child[i];
+
+		if (ckpoint_vd->vdev_ops == &vdev_indirect_ops) {
+			/*
+			 * See comment in verify_checkpoint_vdev_spacemaps()
+			 */
+			ASSERT3P(current_vd->vdev_ops, ==, &vdev_indirect_ops);
+			continue;
+		}
+
+		for (uint64_t m = 0; m < ckpoint_vd->vdev_ms_count; m++) {
+			metaslab_t *ckpoint_msp = ckpoint_vd->vdev_ms[m];
+			metaslab_t *current_msp = current_vd->vdev_ms[m];
+
+			(void) fprintf(stderr,
+			    "\rverifying vdev %llu of %llu, "
+			    "metaslab %llu of %llu ...",
+			    (longlong_t)current_vd->vdev_id,
+			    (longlong_t)current_rvd->vdev_children,
+			    (longlong_t)current_vd->vdev_ms[m]->ms_id,
+			    (longlong_t)current_vd->vdev_ms_count);
+
+			/*
+			 * We walk through the ms_allocatable trees that
+			 * are loaded with the allocated blocks from the
+			 * ms_sm spacemaps of the checkpoint. For each
+			 * one of these ranges we ensure that none of them
+			 * exists in the ms_allocatable trees of the
+			 * current state which are loaded with the ranges
+			 * that are currently free.
+			 *
+			 * This way we ensure that none of the blocks that
+			 * are part of the checkpoint were freed by mistake.
+			 */
+			range_tree_walk(ckpoint_msp->ms_allocatable,
+			    (range_tree_func_t *)range_tree_verify,
+			    current_msp->ms_allocatable);
+		}
+	}
+
+	/* for cleaner progress output */
+	(void) fprintf(stderr, "\n");
+}
+
+static void
+verify_checkpoint_blocks(spa_t *spa)
+{
+	spa_t *checkpoint_spa;
+	char *checkpoint_pool;
+	nvlist_t *config = NULL;
+	int error = 0;
+
+	/*
+	 * We import the checkpointed state of the pool (under a different
+	 * name) so we can do verification on it against the current state
+	 * of the pool.
+	 */
+	checkpoint_pool = import_checkpointed_state(spa->spa_name, config,
+	    NULL);
+	ASSERT(strcmp(spa->spa_name, checkpoint_pool) != 0);
+
+	error = spa_open(checkpoint_pool, &checkpoint_spa, FTAG);
+	if (error != 0) {
+		fatal("Tried to open pool \"%s\" but spa_open() failed with "
+		    "error %d\n", checkpoint_pool, error);
+	}
+
+	/*
+	 * Ensure that ranges in the checkpoint space maps of each vdev
+	 * are allocated according to the checkpointed state's metaslab
+	 * space maps.
+	 */
+	verify_checkpoint_vdev_spacemaps(checkpoint_spa, spa);
+
+	/*
+	 * Ensure that allocated ranges in the checkpoint's metaslab
+	 * space maps remain allocated in the metaslab space maps of
+	 * the current state.
+	 */
+	verify_checkpoint_ms_spacemaps(checkpoint_spa, spa);
+
+	/*
+	 * Once we are done, we get rid of the checkpointed state.
+	 */
+	spa_close(checkpoint_spa, FTAG);
+	free(checkpoint_pool);
+}
+
+static void
+dump_leftover_checkpoint_blocks(spa_t *spa)
+{
+	vdev_t *rvd = spa->spa_root_vdev;
+
+	for (uint64_t i = 0; i < rvd->vdev_children; i++) {
+		vdev_t *vd = rvd->vdev_child[i];
+
+		space_map_t *checkpoint_sm = NULL;
+		uint64_t checkpoint_sm_obj;
+
+		if (vd->vdev_top_zap == 0)
+			continue;
+
+		if (zap_contains(spa_meta_objset(spa), vd->vdev_top_zap,
+		    VDEV_TOP_ZAP_POOL_CHECKPOINT_SM) != 0)
+			continue;
+
+		VERIFY0(zap_lookup(spa_meta_objset(spa), vd->vdev_top_zap,
+		    VDEV_TOP_ZAP_POOL_CHECKPOINT_SM,
+		    sizeof (uint64_t), 1, &checkpoint_sm_obj));
+
+		VERIFY0(space_map_open(&checkpoint_sm, spa_meta_objset(spa),
+		    checkpoint_sm_obj, 0, vd->vdev_asize, vd->vdev_ashift));
+		space_map_update(checkpoint_sm);
+		dump_spacemap(spa->spa_meta_objset, checkpoint_sm);
+		space_map_close(checkpoint_sm);
+	}
+}
+
+static int
+verify_checkpoint(spa_t *spa)
+{
+	uberblock_t checkpoint;
+	int error;
+
+	if (!spa_feature_is_active(spa, SPA_FEATURE_POOL_CHECKPOINT))
+		return (0);
+
+	error = zap_lookup(spa->spa_meta_objset, DMU_POOL_DIRECTORY_OBJECT,
+	    DMU_POOL_ZPOOL_CHECKPOINT, sizeof (uint64_t),
+	    sizeof (uberblock_t) / sizeof (uint64_t), &checkpoint);
+
+	if (error == ENOENT) {
+		/*
+		 * If the feature is active but the uberblock is missing
+		 * then we must be in the middle of discarding the
+		 * checkpoint.
+		 */
+		(void) printf("\nPartially discarded checkpoint "
+		    "state found:\n");
+		dump_leftover_checkpoint_blocks(spa);
+		return (0);
+	} else if (error != 0) {
+		(void) printf("lookup error %d when looking for "
+		    "checkpointed uberblock in MOS\n", error);
+		return (error);
+	}
+	dump_uberblock(&checkpoint, "\nCheckpointed uberblock found:\n", "\n");
+
+	if (checkpoint.ub_checkpoint_txg == 0) {
+		(void) printf("\nub_checkpoint_txg not set in checkpointed "
+		    "uberblock\n");
+		error = 3;
+	}
+
+	if (error == 0)
+		verify_checkpoint_blocks(spa);
+
+	return (error);
+}
+
+static void
 dump_zpool(spa_t *spa)
 {
 	dsl_pool_t *dp = spa_get_dsl(spa);
@@ -3938,6 +4512,9 @@ dump_zpool(spa_t *spa)
 	if (dump_opt['h'])
 		dump_history(spa);
 
+	if (rc == 0 && !dump_opt['L'])
+		rc = verify_checkpoint(spa);
+
 	if (rc != 0) {
 		dump_debug_buffer();
 		exit(rc);
@@ -4451,6 +5028,7 @@ main(int argc, char **argv)
 	int rewind = ZPOOL_NEVER_REWIND;
 	char *spa_config_path_env;
 	boolean_t target_is_spa = B_TRUE;
+	nvlist_t *cfg = NULL;
 
 	(void) setrlimit(RLIMIT_NOFILE, &rl);
 	(void) enable_extended_FILE_stdio(-1, -1);
@@ -4467,7 +5045,7 @@ main(int argc, char **argv)
 		spa_config_path = spa_config_path_env;
 
 	while ((c = getopt(argc, argv,
-	    "AbcCdDeEFGhiI:lLmMo:Op:PqRsSt:uU:vVx:X")) != -1) {

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Wed Mar 28 22:06:13 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id F21EEF76341;
 Wed, 28 Mar 2018 22:06:12 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id A52BE84D10;
 Wed, 28 Mar 2018 22:06:12 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A015410D55;
 Wed, 28 Mar 2018 22:06:12 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SM6CQH030777;
 Wed, 28 Mar 2018 22:06:12 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SM6CX3030776;
 Wed, 28 Mar 2018 22:06:12 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282206.w2SM6CX3030776@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 22:06:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331702 - vendor-sys/illumos/dist/uts/common/fs/zfs
X-SVN-Group: vendor-sys
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: vendor-sys/illumos/dist/uts/common/fs/zfs
X-SVN-Commit-Revision: 331702
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 22:06:13 -0000

Author: mav
Date: Wed Mar 28 22:06:12 2018
New Revision: 331702
URL: https://svnweb.freebsd.org/changeset/base/331702

Log:
  9187 racing condition between vdev label and spa_last_synced_txg in vdev_validate
  
  illumos/illumos-gate@d1de72cfa29ab77ff80e2bb0e668a6afa5bccaf0
  
  ztest failed with uncorrectable IO error despite having the fix for #7163.
  Both sides of the mirror have CANT_OPEN_BAD_LABEL, which also distinguishes
  it from that issue.
  
  Definitely seems like a racing condition between the vdev_validate and spa_sync:
  1. Thread A (spa_sync): vdev label is updated to latest txg
  2. Thread B (vdev_validate): vdev label's txg is compared to spa_last_synced_txg and is ahead.
  3. Thread A (spa_sync): spa_last_synced_txg is updated to latest txg.
  
  Solution: do not check txg in vdev_validate unless config lock is held.
  
  Reviewed by: George Wilson 
  Reviewed by: Matt Ahrens 
  Approved by: Robert Mustacchi 
  Author: Pavel Zakharov 

Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c	Wed Mar 28 22:01:27 2018	(r331701)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c	Wed Mar 28 22:06:12 2018	(r331702)
@@ -1573,8 +1573,11 @@ vdev_validate(vdev_t *vd)
 	/*
 	 * If we are performing an extreme rewind, we allow for a label that
 	 * was modified at a point after the current txg.
+	 * If config lock is not held do not check for the txg. spa_sync could
+	 * be updating the vdev's label before updating spa_last_synced_txg.
 	 */
-	if (spa->spa_extreme_rewind || spa_last_synced_txg(spa) == 0)
+	if (spa->spa_extreme_rewind || spa_last_synced_txg(spa) == 0 ||
+	    spa_config_held(spa, SCL_CONFIG, RW_WRITER) != SCL_CONFIG)
 		txg = UINT64_MAX;
 	else
 		txg = spa_last_synced_txg(spa);

From owner-svn-src-all@freebsd.org  Wed Mar 28 22:07:31 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D1B20F764BF;
 Wed, 28 Mar 2018 22:07:31 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 835AE84EDE;
 Wed, 28 Mar 2018 22:07:31 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7E3F110D57;
 Wed, 28 Mar 2018 22:07:31 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SM7Vg1030876;
 Wed, 28 Mar 2018 22:07:31 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SM7V5j030875;
 Wed, 28 Mar 2018 22:07:31 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282207.w2SM7V5j030875@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 22:07:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331703 -
 head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Group: head
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Commit-Revision: 331703
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 22:07:32 -0000

Author: mav
Date: Wed Mar 28 22:07:31 2018
New Revision: 331703
URL: https://svnweb.freebsd.org/changeset/base/331703

Log:
  MFV 331702:
  9187 racing condition between vdev label and spa_last_synced_txg in vdev_validate
  
  illumos/illumos-gate@d1de72cfa29ab77ff80e2bb0e668a6afa5bccaf0
  
  ztest failed with uncorrectable IO error despite having the fix for #7163.
  Both sides of the mirror have CANT_OPEN_BAD_LABEL, which also distinguishes
  it from that issue.
  
  Definitely seems like a racing condition between the vdev_validate and spa_sync:
  1. Thread A (spa_sync): vdev label is updated to latest txg
  2. Thread B (vdev_validate): vdev label's txg is compared to spa_last_synced_txg and is ahead.
  3. Thread A (spa_sync): spa_last_synced_txg is updated to latest txg.
  
  Solution: do not check txg in vdev_validate unless config lock is held.
  
  Reviewed by: George Wilson 
  Reviewed by: Matt Ahrens 
  Approved by: Robert Mustacchi 
  Author: Pavel Zakharov 

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
Directory Properties:
  head/sys/cddl/contrib/opensolaris/   (props changed)

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c	Wed Mar 28 22:06:12 2018	(r331702)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c	Wed Mar 28 22:07:31 2018	(r331703)
@@ -1696,8 +1696,11 @@ vdev_validate(vdev_t *vd)
 	/*
 	 * If we are performing an extreme rewind, we allow for a label that
 	 * was modified at a point after the current txg.
+	 * If config lock is not held do not check for the txg. spa_sync could
+	 * be updating the vdev's label before updating spa_last_synced_txg.
 	 */
-	if (spa->spa_extreme_rewind || spa_last_synced_txg(spa) == 0)
+	if (spa->spa_extreme_rewind || spa_last_synced_txg(spa) == 0 ||
+	    spa_config_held(spa, SCL_CONFIG, RW_WRITER) != SCL_CONFIG)
 		txg = UINT64_MAX;
 	else
 		txg = spa_last_synced_txg(spa);

From owner-svn-src-all@freebsd.org  Wed Mar 28 22:08:58 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 37A7BF76648;
 Wed, 28 Mar 2018 22:08:58 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id D7578850C5;
 Wed, 28 Mar 2018 22:08:57 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D205410D58;
 Wed, 28 Mar 2018 22:08:57 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SM8vvj030964;
 Wed, 28 Mar 2018 22:08:57 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SM8vel030963;
 Wed, 28 Mar 2018 22:08:57 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282208.w2SM8vel030963@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 22:08:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331704 - vendor-sys/illumos/dist/uts/common/fs/zfs
X-SVN-Group: vendor-sys
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: vendor-sys/illumos/dist/uts/common/fs/zfs
X-SVN-Commit-Revision: 331704
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 22:08:58 -0000

Author: mav
Date: Wed Mar 28 22:08:57 2018
New Revision: 331704
URL: https://svnweb.freebsd.org/changeset/base/331704

Log:
  9191 dump vdev tree to zfs_dbgmsg when spa load fails due to missing log devices
  
  illumos/illumos-gate@ccef24b493bcbd146fcd6d8946666cae081470b6
  
  Reviewed by: George Wilson 
  Reviewed by: Prakash Surya 
  Reviewed by: Matt Ahrens 
  Approved by: Robert Mustacchi 
  Author: Pavel Zakharov 

Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c	Wed Mar 28 22:07:31 2018	(r331703)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c	Wed Mar 28 22:08:57 2018	(r331704)
@@ -1814,6 +1814,7 @@ spa_check_for_missing_logs(spa_t *spa)
 
 		if (idx > 0) {
 			spa_load_failed(spa, "some log devices are missing");
+			vdev_dbgmsg_print_tree(rvd, 2);
 			return (SET_ERROR(ENXIO));
 		}
 	} else {
@@ -1825,6 +1826,7 @@ spa_check_for_missing_logs(spa_t *spa)
 				spa_set_log_state(spa, SPA_LOG_CLEAR);
 				spa_load_note(spa, "some log devices are "
 				    "missing, ZIL is dropped.");
+				vdev_dbgmsg_print_tree(rvd, 2);
 				break;
 			}
 		}

From owner-svn-src-all@freebsd.org  Wed Mar 28 22:10:07 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6F7BEF76752;
 Wed, 28 Mar 2018 22:10:07 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 1EEA385255;
 Wed, 28 Mar 2018 22:10:07 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 196A810D5C;
 Wed, 28 Mar 2018 22:10:07 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SMA6rn031097;
 Wed, 28 Mar 2018 22:10:06 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SMA6PO031096;
 Wed, 28 Mar 2018 22:10:06 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282210.w2SMA6PO031096@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 22:10:06 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331705 -
 head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Group: head
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Commit-Revision: 331705
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 22:10:07 -0000

Author: mav
Date: Wed Mar 28 22:10:06 2018
New Revision: 331705
URL: https://svnweb.freebsd.org/changeset/base/331705

Log:
  MFV 331704:
  9191 dump vdev tree to zfs_dbgmsg when spa load fails due to missing log devices
  
  illumos/illumos-gate@ccef24b493bcbd146fcd6d8946666cae081470b6
  
  Reviewed by: George Wilson 
  Reviewed by: Prakash Surya 
  Reviewed by: Matt Ahrens 
  Approved by: Robert Mustacchi 
  Author: Pavel Zakharov 

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
Directory Properties:
  head/sys/cddl/contrib/opensolaris/   (props changed)

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Wed Mar 28 22:08:57 2018	(r331704)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Wed Mar 28 22:10:06 2018	(r331705)
@@ -1887,6 +1887,7 @@ spa_check_for_missing_logs(spa_t *spa)
 
 		if (idx > 0) {
 			spa_load_failed(spa, "some log devices are missing");
+			vdev_dbgmsg_print_tree(rvd, 2);
 			return (SET_ERROR(ENXIO));
 		}
 	} else {
@@ -1898,6 +1899,7 @@ spa_check_for_missing_logs(spa_t *spa)
 				spa_set_log_state(spa, SPA_LOG_CLEAR);
 				spa_load_note(spa, "some log devices are "
 				    "missing, ZIL is dropped.");
+				vdev_dbgmsg_print_tree(rvd, 2);
 				break;
 			}
 		}

From owner-svn-src-all@freebsd.org  Wed Mar 28 22:16:52 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AFC5AF4E007;
 Wed, 28 Mar 2018 22:16:52 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6020285BC7;
 Wed, 28 Mar 2018 22:16:52 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 56BAB10EFF;
 Wed, 28 Mar 2018 22:16:52 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SMGqrn035971;
 Wed, 28 Mar 2018 22:16:52 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SMGpKW035967;
 Wed, 28 Mar 2018 22:16:51 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282216.w2SMGpKW035967@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 22:16:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331706 - vendor-sys/illumos/dist/common/zfs
 vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor-sys/illumos/dist/uts/common/sys/fs vendor/illumos/dist/cmd/zdb
 vendor/illumos/dist/cmd/zpoo...
X-SVN-Group: vendor-sys
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: vendor-sys/illumos/dist/common/zfs
 vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor-sys/illumos/dist/uts/common/sys/fs vendor/illumos/dist/cmd/zdb
 vendor/illumos/dist/cmd/zpool vendor/illumos/dist/lib...
X-SVN-Commit-Revision: 331706
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 22:16:52 -0000

Author: mav
Date: Wed Mar 28 22:16:51 2018
New Revision: 331706
URL: https://svnweb.freebsd.org/changeset/base/331706

Log:
  9235 rename zpool_rewind_policy_t to zpool_load_policy_t
  
  illumos/illumos-gate@5dafeea3ebd2dd77affc802bcb90f63faf01589f
  
  We want to be able to pass various settings during import/open of a pool,
  which are not only related to rewind. Instead of adding a new policy and
  duplicate a bunch of code, we should just rename rewind_policy to a more
  generic term like load_policy.
  
  For instance, we'd like to set spa->spa_import_flags from the nvlist,
  rather from a flags parameter passed to spa_import as in some cases we want
  those flags not only for the import case, but also for the open case. One
  such flag could be ZFS_IMPORT_MISSING_LOG (as used in zdb) which would
  allow zfs to open a pool when logs are missing.
  
  Reviewed by: Matt Ahrens 
  Reviewed by: George Wilson 
  Approved by: Robert Mustacchi 
  Author: Pavel Zakharov 

Modified:
  vendor-sys/illumos/dist/common/zfs/zfs_comutil.c
  vendor-sys/illumos/dist/common/zfs/zfs_comutil.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c
  vendor-sys/illumos/dist/uts/common/sys/fs/zfs.h

Changes in other areas also in this revision:
Modified:
  vendor/illumos/dist/cmd/zdb/zdb.c
  vendor/illumos/dist/cmd/zpool/zpool_main.c
  vendor/illumos/dist/lib/libzfs/common/libzfs.h
  vendor/illumos/dist/lib/libzfs/common/libzfs_import.c
  vendor/illumos/dist/lib/libzfs/common/libzfs_pool.c

Modified: vendor-sys/illumos/dist/common/zfs/zfs_comutil.c
==============================================================================
--- vendor-sys/illumos/dist/common/zfs/zfs_comutil.c	Wed Mar 28 22:10:06 2018	(r331705)
+++ vendor-sys/illumos/dist/common/zfs/zfs_comutil.c	Wed Mar 28 22:16:51 2018	(r331706)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  */
 
 /*
@@ -67,17 +67,17 @@ zfs_allocatable_devs(nvlist_t *nv)
 }
 
 void
-zpool_get_rewind_policy(nvlist_t *nvl, zpool_rewind_policy_t *zrpp)
+zpool_get_load_policy(nvlist_t *nvl, zpool_load_policy_t *zlpp)
 {
 	nvlist_t *policy;
 	nvpair_t *elem;
 	char *nm;
 
 	/* Defaults */
-	zrpp->zrp_request = ZPOOL_NO_REWIND;
-	zrpp->zrp_maxmeta = 0;
-	zrpp->zrp_maxdata = UINT64_MAX;
-	zrpp->zrp_txg = UINT64_MAX;
+	zlpp->zlp_rewind = ZPOOL_NO_REWIND;
+	zlpp->zlp_maxmeta = 0;
+	zlpp->zlp_maxdata = UINT64_MAX;
+	zlpp->zlp_txg = UINT64_MAX;
 
 	if (nvl == NULL)
 		return;
@@ -85,24 +85,24 @@ zpool_get_rewind_policy(nvlist_t *nvl, zpool_rewind_po
 	elem = NULL;
 	while ((elem = nvlist_next_nvpair(nvl, elem)) != NULL) {
 		nm = nvpair_name(elem);
-		if (strcmp(nm, ZPOOL_REWIND_POLICY) == 0) {
+		if (strcmp(nm, ZPOOL_LOAD_POLICY) == 0) {
 			if (nvpair_value_nvlist(elem, &policy) == 0)
-				zpool_get_rewind_policy(policy, zrpp);
+				zpool_get_load_policy(policy, zlpp);
 			return;
-		} else if (strcmp(nm, ZPOOL_REWIND_REQUEST) == 0) {
-			if (nvpair_value_uint32(elem, &zrpp->zrp_request) == 0)
-				if (zrpp->zrp_request & ~ZPOOL_REWIND_POLICIES)
-					zrpp->zrp_request = ZPOOL_NO_REWIND;
-		} else if (strcmp(nm, ZPOOL_REWIND_REQUEST_TXG) == 0) {
-			(void) nvpair_value_uint64(elem, &zrpp->zrp_txg);
-		} else if (strcmp(nm, ZPOOL_REWIND_META_THRESH) == 0) {
-			(void) nvpair_value_uint64(elem, &zrpp->zrp_maxmeta);
-		} else if (strcmp(nm, ZPOOL_REWIND_DATA_THRESH) == 0) {
-			(void) nvpair_value_uint64(elem, &zrpp->zrp_maxdata);
+		} else if (strcmp(nm, ZPOOL_LOAD_REWIND_POLICY) == 0) {
+			if (nvpair_value_uint32(elem, &zlpp->zlp_rewind) == 0)
+				if (zlpp->zlp_rewind & ~ZPOOL_REWIND_POLICIES)
+					zlpp->zlp_rewind = ZPOOL_NO_REWIND;
+		} else if (strcmp(nm, ZPOOL_LOAD_REQUEST_TXG) == 0) {
+			(void) nvpair_value_uint64(elem, &zlpp->zlp_txg);
+		} else if (strcmp(nm, ZPOOL_LOAD_META_THRESH) == 0) {
+			(void) nvpair_value_uint64(elem, &zlpp->zlp_maxmeta);
+		} else if (strcmp(nm, ZPOOL_LOAD_DATA_THRESH) == 0) {
+			(void) nvpair_value_uint64(elem, &zlpp->zlp_maxdata);
 		}
 	}
-	if (zrpp->zrp_request == 0)
-		zrpp->zrp_request = ZPOOL_NO_REWIND;
+	if (zlpp->zlp_rewind == 0)
+		zlpp->zlp_rewind = ZPOOL_NO_REWIND;
 }
 
 typedef struct zfs_version_spa_map {

Modified: vendor-sys/illumos/dist/common/zfs/zfs_comutil.h
==============================================================================
--- vendor-sys/illumos/dist/common/zfs/zfs_comutil.h	Wed Mar 28 22:10:06 2018	(r331705)
+++ vendor-sys/illumos/dist/common/zfs/zfs_comutil.h	Wed Mar 28 22:16:51 2018	(r331706)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  */
 
 #ifndef	_ZFS_COMUTIL_H
@@ -34,7 +34,7 @@ extern "C" {
 #endif
 
 extern boolean_t zfs_allocatable_devs(nvlist_t *);
-extern void zpool_get_rewind_policy(nvlist_t *, zpool_rewind_policy_t *);
+extern void zpool_get_load_policy(nvlist_t *, zpool_load_policy_t *);
 
 extern int zfs_zpl_version_map(int spa_version);
 extern int zfs_spa_version_map(int zpl_version);

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c	Wed Mar 28 22:10:06 2018	(r331705)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c	Wed Mar 28 22:16:51 2018	(r331706)
@@ -2021,13 +2021,13 @@ spa_load_verify(spa_t *spa)
 {
 	zio_t *rio;
 	spa_load_error_t sle = { 0 };
-	zpool_rewind_policy_t policy;
+	zpool_load_policy_t policy;
 	boolean_t verify_ok = B_FALSE;
 	int error = 0;
 
-	zpool_get_rewind_policy(spa->spa_config, &policy);
+	zpool_get_load_policy(spa->spa_config, &policy);
 
-	if (policy.zrp_request & ZPOOL_NEVER_REWIND)
+	if (policy.zlp_rewind & ZPOOL_NEVER_REWIND)
 		return (0);
 
 	dsl_pool_config_enter(spa->spa_dsl_pool, FTAG);
@@ -2066,8 +2066,8 @@ spa_load_verify(spa_t *spa)
 	}
 
 	if (spa_load_verify_dryrun ||
-	    (!error && sle.sle_meta_count <= policy.zrp_maxmeta &&
-	    sle.sle_data_count <= policy.zrp_maxdata)) {
+	    (!error && sle.sle_meta_count <= policy.zlp_maxmeta &&
+	    sle.sle_data_count <= policy.zlp_maxdata)) {
 		int64_t loss = 0;
 
 		verify_ok = B_TRUE;
@@ -2767,17 +2767,17 @@ spa_ld_trusted_config(spa_t *spa, spa_import_type_t ty
 	/*
 	 * We will use spa_config if we decide to reload the spa or if spa_load
 	 * fails and we rewind. We must thus regenerate the config using the
-	 * MOS information with the updated paths. Rewind policy is an import
-	 * setting and is not in the MOS. We copy it over to our new, trusted
-	 * config.
+	 * MOS information with the updated paths. ZPOOL_LOAD_POLICY is used to
+	 * pass settings on how to load the pool and is not stored in the MOS.
+	 * We copy it over to our new, trusted config.
 	 */
 	mos_config_txg = fnvlist_lookup_uint64(mos_config,
 	    ZPOOL_CONFIG_POOL_TXG);
 	nvlist_free(mos_config);
 	mos_config = spa_config_generate(spa, NULL, mos_config_txg, B_FALSE);
-	if (nvlist_lookup_nvlist(spa->spa_config, ZPOOL_REWIND_POLICY,
+	if (nvlist_lookup_nvlist(spa->spa_config, ZPOOL_LOAD_POLICY,
 	    &policy) == 0)
-		fnvlist_add_nvlist(mos_config, ZPOOL_REWIND_POLICY, policy);
+		fnvlist_add_nvlist(mos_config, ZPOOL_LOAD_POLICY, policy);
 	spa_config_set(spa, mos_config);
 	spa->spa_config_source = SPA_CONFIG_SRC_MOS;
 
@@ -4036,11 +4036,11 @@ spa_open_common(const char *pool, spa_t **spapp, void 
 	}
 
 	if (spa->spa_state == POOL_STATE_UNINITIALIZED) {
-		zpool_rewind_policy_t policy;
+		zpool_load_policy_t policy;
 
-		zpool_get_rewind_policy(nvpolicy ? nvpolicy : spa->spa_config,
+		zpool_get_load_policy(nvpolicy ? nvpolicy : spa->spa_config,
 		    &policy);
-		if (policy.zrp_request & ZPOOL_DO_REWIND)
+		if (policy.zlp_rewind & ZPOOL_DO_REWIND)
 			state = SPA_LOAD_RECOVER;
 
 		spa_activate(spa, spa_mode_global);
@@ -4050,8 +4050,8 @@ spa_open_common(const char *pool, spa_t **spapp, void 
 		spa->spa_config_source = SPA_CONFIG_SRC_CACHEFILE;
 
 		zfs_dbgmsg("spa_open_common: opening %s", pool);
-		error = spa_load_best(spa, state, policy.zrp_txg,
-		    policy.zrp_request);
+		error = spa_load_best(spa, state, policy.zlp_txg,
+		    policy.zlp_rewind);
 
 		if (error == EBADF) {
 			/*
@@ -5018,7 +5018,7 @@ spa_import(const char *pool, nvlist_t *config, nvlist_
 	spa_t *spa;
 	char *altroot = NULL;
 	spa_load_state_t state = SPA_LOAD_IMPORT;
-	zpool_rewind_policy_t policy;
+	zpool_load_policy_t policy;
 	uint64_t mode = spa_mode_global;
 	uint64_t readonly = B_FALSE;
 	int error;
@@ -5069,8 +5069,8 @@ spa_import(const char *pool, nvlist_t *config, nvlist_
 	 */
 	spa_async_suspend(spa);
 
-	zpool_get_rewind_policy(config, &policy);
-	if (policy.zrp_request & ZPOOL_DO_REWIND)
+	zpool_get_load_policy(config, &policy);
+	if (policy.zlp_rewind & ZPOOL_DO_REWIND)
 		state = SPA_LOAD_RECOVER;
 
 	spa->spa_config_source = SPA_CONFIG_SRC_TRYIMPORT;
@@ -5080,9 +5080,9 @@ spa_import(const char *pool, nvlist_t *config, nvlist_
 		zfs_dbgmsg("spa_import: importing %s", pool);
 	} else {
 		zfs_dbgmsg("spa_import: importing %s, max_txg=%lld "
-		    "(RECOVERY MODE)", pool, (longlong_t)policy.zrp_txg);
+		    "(RECOVERY MODE)", pool, (longlong_t)policy.zlp_txg);
 	}
-	error = spa_load_best(spa, state, policy.zrp_txg, policy.zrp_request);
+	error = spa_load_best(spa, state, policy.zlp_txg, policy.zlp_rewind);
 
 	/*
 	 * Propagate anything learned while loading the pool and pass it
@@ -5204,7 +5204,7 @@ spa_tryimport(nvlist_t *tryconfig)
 	spa_t *spa;
 	uint64_t state;
 	int error;
-	zpool_rewind_policy_t policy;
+	zpool_load_policy_t policy;
 
 	if (nvlist_lookup_string(tryconfig, ZPOOL_CONFIG_POOL_NAME, &poolname))
 		return (NULL);
@@ -5220,16 +5220,14 @@ spa_tryimport(nvlist_t *tryconfig)
 	spa_activate(spa, FREAD);
 
 	/*
-	 * Rewind pool if a max txg was provided. Note that even though we
-	 * retrieve the complete rewind policy, only the rewind txg is relevant
-	 * for tryimport.
+	 * Rewind pool if a max txg was provided.
 	 */
-	zpool_get_rewind_policy(spa->spa_config, &policy);
-	if (policy.zrp_txg != UINT64_MAX) {
-		spa->spa_load_max_txg = policy.zrp_txg;
+	zpool_get_load_policy(spa->spa_config, &policy);
+	if (policy.zlp_txg != UINT64_MAX) {
+		spa->spa_load_max_txg = policy.zlp_txg;
 		spa->spa_extreme_rewind = B_TRUE;
 		zfs_dbgmsg("spa_tryimport: importing %s, max_txg=%lld",
-		    poolname, (longlong_t)policy.zrp_txg);
+		    poolname, (longlong_t)policy.zlp_txg);
 	} else {
 		zfs_dbgmsg("spa_tryimport: importing %s", poolname);
 	}

Modified: vendor-sys/illumos/dist/uts/common/sys/fs/zfs.h
==============================================================================
--- vendor-sys/illumos/dist/uts/common/sys/fs/zfs.h	Wed Mar 28 22:10:06 2018	(r331705)
+++ vendor-sys/illumos/dist/uts/common/sys/fs/zfs.h	Wed Mar 28 22:16:51 2018	(r331706)
@@ -491,7 +491,7 @@ typedef enum {
 #define	ZPL_VERSION_USERSPACE		ZPL_VERSION_4
 #define	ZPL_VERSION_SA			ZPL_VERSION_5
 
-/* Rewind request information */
+/* Rewind policy information */
 #define	ZPOOL_NO_REWIND		1  /* No policy - default behavior */
 #define	ZPOOL_NEVER_REWIND	2  /* Do not search for best txg or rewind */
 #define	ZPOOL_TRY_REWIND	4  /* Search for best txg, but do not rewind */
@@ -500,12 +500,12 @@ typedef enum {
 #define	ZPOOL_REWIND_MASK	28 /* All the possible rewind bits */
 #define	ZPOOL_REWIND_POLICIES	31 /* All the possible policy bits */
 
-typedef struct zpool_rewind_policy {
-	uint32_t	zrp_request;	/* rewind behavior requested */
-	uint64_t	zrp_maxmeta;	/* max acceptable meta-data errors */
-	uint64_t	zrp_maxdata;	/* max acceptable data errors */
-	uint64_t	zrp_txg;	/* specific txg to load */
-} zpool_rewind_policy_t;
+typedef struct zpool_load_policy {
+	uint32_t	zlp_rewind;	/* rewind policy requested */
+	uint64_t	zlp_maxmeta;	/* max acceptable meta-data errors */
+	uint64_t	zlp_maxdata;	/* max acceptable data errors */
+	uint64_t	zlp_txg;	/* specific txg to load */
+} zpool_load_policy_t;
 
 /*
  * The following are configuration names used in the nvlist describing a pool's
@@ -593,12 +593,12 @@ typedef struct zpool_rewind_policy {
 #define	ZPOOL_CONFIG_FRU		"fru"
 #define	ZPOOL_CONFIG_AUX_STATE		"aux_state"
 
-/* Rewind policy parameters */
-#define	ZPOOL_REWIND_POLICY		"rewind-policy"
-#define	ZPOOL_REWIND_REQUEST		"rewind-request"
-#define	ZPOOL_REWIND_REQUEST_TXG	"rewind-request-txg"
-#define	ZPOOL_REWIND_META_THRESH	"rewind-meta-thresh"
-#define	ZPOOL_REWIND_DATA_THRESH	"rewind-data-thresh"
+/* Pool load policy parameters */
+#define	ZPOOL_LOAD_POLICY		"load-policy"
+#define	ZPOOL_LOAD_REWIND_POLICY	"load-rewind-policy"
+#define	ZPOOL_LOAD_REQUEST_TXG		"load-request-txg"
+#define	ZPOOL_LOAD_META_THRESH		"load-meta-thresh"
+#define	ZPOOL_LOAD_DATA_THRESH		"load-data-thresh"
 
 /* Rewind data discovered */
 #define	ZPOOL_CONFIG_LOAD_TIME		"rewind_txg_ts"

From owner-svn-src-all@freebsd.org  Wed Mar 28 22:16:53 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4DDC5F4E010;
 Wed, 28 Mar 2018 22:16:53 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EED3885BC9;
 Wed, 28 Mar 2018 22:16:52 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E9F4E10F00;
 Wed, 28 Mar 2018 22:16:52 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SMGq3Y035982;
 Wed, 28 Mar 2018 22:16:52 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SMGqUK035976;
 Wed, 28 Mar 2018 22:16:52 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282216.w2SMGqUK035976@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 22:16:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331706 - vendor-sys/illumos/dist/common/zfs
 vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor-sys/illumos/dist/uts/common/sys/fs vendor/illumos/dist/cmd/zdb
 vendor/illumos/dist/cmd/zpoo...
X-SVN-Group: vendor
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: vendor-sys/illumos/dist/common/zfs
 vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor-sys/illumos/dist/uts/common/sys/fs vendor/illumos/dist/cmd/zdb
 vendor/illumos/dist/cmd/zpool vendor/illumos/dist/lib...
X-SVN-Commit-Revision: 331706
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 22:16:53 -0000

Author: mav
Date: Wed Mar 28 22:16:51 2018
New Revision: 331706
URL: https://svnweb.freebsd.org/changeset/base/331706

Log:
  9235 rename zpool_rewind_policy_t to zpool_load_policy_t
  
  illumos/illumos-gate@5dafeea3ebd2dd77affc802bcb90f63faf01589f
  
  We want to be able to pass various settings during import/open of a pool,
  which are not only related to rewind. Instead of adding a new policy and
  duplicate a bunch of code, we should just rename rewind_policy to a more
  generic term like load_policy.
  
  For instance, we'd like to set spa->spa_import_flags from the nvlist,
  rather from a flags parameter passed to spa_import as in some cases we want
  those flags not only for the import case, but also for the open case. One
  such flag could be ZFS_IMPORT_MISSING_LOG (as used in zdb) which would
  allow zfs to open a pool when logs are missing.
  
  Reviewed by: Matt Ahrens 
  Reviewed by: George Wilson 
  Approved by: Robert Mustacchi 
  Author: Pavel Zakharov 

Modified:
  vendor/illumos/dist/cmd/zdb/zdb.c
  vendor/illumos/dist/cmd/zpool/zpool_main.c
  vendor/illumos/dist/lib/libzfs/common/libzfs.h
  vendor/illumos/dist/lib/libzfs/common/libzfs_import.c
  vendor/illumos/dist/lib/libzfs/common/libzfs_pool.c

Changes in other areas also in this revision:
Modified:
  vendor-sys/illumos/dist/common/zfs/zfs_comutil.c
  vendor-sys/illumos/dist/common/zfs/zfs_comutil.h
  vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c
  vendor-sys/illumos/dist/uts/common/sys/fs/zfs.h

Modified: vendor/illumos/dist/cmd/zdb/zdb.c
==============================================================================
--- vendor/illumos/dist/cmd/zdb/zdb.c	Wed Mar 28 22:10:06 2018	(r331705)
+++ vendor/illumos/dist/cmd/zdb/zdb.c	Wed Mar 28 22:16:51 2018	(r331706)
@@ -5183,8 +5183,8 @@ main(int argc, char **argv)
 		    (dump_opt['X'] ? ZPOOL_EXTREME_REWIND : 0);
 
 	if (nvlist_alloc(&policy, NV_UNIQUE_NAME_TYPE, 0) != 0 ||
-	    nvlist_add_uint64(policy, ZPOOL_REWIND_REQUEST_TXG, max_txg) != 0 ||
-	    nvlist_add_uint32(policy, ZPOOL_REWIND_REQUEST, rewind) != 0)
+	    nvlist_add_uint64(policy, ZPOOL_LOAD_REQUEST_TXG, max_txg) != 0 ||
+	    nvlist_add_uint32(policy, ZPOOL_LOAD_REWIND_POLICY, rewind) != 0)
 		fatal("internal error: %s", strerror(ENOMEM));
 
 	error = 0;
@@ -5201,7 +5201,7 @@ main(int argc, char **argv)
 			}
 
 			if (nvlist_add_nvlist(cfg,
-			    ZPOOL_REWIND_POLICY, policy) != 0) {
+			    ZPOOL_LOAD_POLICY, policy) != 0) {
 				fatal("can't open '%s': %s",
 				    target, strerror(ENOMEM));
 			}

Modified: vendor/illumos/dist/cmd/zpool/zpool_main.c
==============================================================================
--- vendor/illumos/dist/cmd/zpool/zpool_main.c	Wed Mar 28 22:10:06 2018	(r331705)
+++ vendor/illumos/dist/cmd/zpool/zpool_main.c	Wed Mar 28 22:16:51 2018	(r331706)
@@ -2325,8 +2325,9 @@ zpool_do_import(int argc, char **argv)
 
 	/* In the future, we can capture further policy and include it here */
 	if (nvlist_alloc(&policy, NV_UNIQUE_NAME, 0) != 0 ||
-	    nvlist_add_uint64(policy, ZPOOL_REWIND_REQUEST_TXG, txg) != 0 ||
-	    nvlist_add_uint32(policy, ZPOOL_REWIND_REQUEST, rewind_policy) != 0)
+	    nvlist_add_uint64(policy, ZPOOL_LOAD_REQUEST_TXG, txg) != 0 ||
+	    nvlist_add_uint32(policy, ZPOOL_LOAD_REWIND_POLICY,
+	    rewind_policy) != 0)
 		goto error;
 
 	if (searchdirs == NULL) {
@@ -2451,7 +2452,7 @@ zpool_do_import(int argc, char **argv)
 		if (do_destroyed && pool_state != POOL_STATE_DESTROYED)
 			continue;
 
-		verify(nvlist_add_nvlist(config, ZPOOL_REWIND_POLICY,
+		verify(nvlist_add_nvlist(config, ZPOOL_LOAD_POLICY,
 		    policy) == 0);
 
 		if (argc == 0) {
@@ -3939,8 +3940,10 @@ zpool_do_clear(int argc, char **argv)
 
 	/* In future, further rewind policy choices can be passed along here */
 	if (nvlist_alloc(&policy, NV_UNIQUE_NAME, 0) != 0 ||
-	    nvlist_add_uint32(policy, ZPOOL_REWIND_REQUEST, rewind_policy) != 0)
+	    nvlist_add_uint32(policy, ZPOOL_LOAD_REWIND_POLICY,
+	    rewind_policy) != 0) {
 		return (1);
+	}
 
 	pool = argv[0];
 	device = argc == 2 ? argv[1] : NULL;

Modified: vendor/illumos/dist/lib/libzfs/common/libzfs.h
==============================================================================
--- vendor/illumos/dist/lib/libzfs/common/libzfs.h	Wed Mar 28 22:10:06 2018	(r331705)
+++ vendor/illumos/dist/lib/libzfs/common/libzfs.h	Wed Mar 28 22:16:51 2018	(r331706)
@@ -393,7 +393,7 @@ typedef struct importargs {
 	int can_be_active : 1;	/* can the pool be active?		*/
 	int unique : 1;		/* does 'poolname' already exist?	*/
 	int exists : 1;		/* set on return if pool already exists	*/
-	nvlist_t *policy;	/* rewind policy (rewind txg, etc.)	*/
+	nvlist_t *policy;	/* load policy (max txg, rewind, etc.)	*/
 } importargs_t;
 
 extern nvlist_t *zpool_search_import(libzfs_handle_t *, importargs_t *);

Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_import.c
==============================================================================
--- vendor/illumos/dist/lib/libzfs/common/libzfs_import.c	Wed Mar 28 22:10:06 2018	(r331705)
+++ vendor/illumos/dist/lib/libzfs/common/libzfs_import.c	Wed Mar 28 22:16:51 2018	(r331706)
@@ -21,7 +21,7 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2016 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  * Copyright 2015 RackTop Systems.
  * Copyright 2017 Nexenta Systems, Inc.
  */
@@ -748,7 +748,7 @@ get_configs(libzfs_handle_t *hdl, pool_list_t *pl, boo
 		}
 
 		if (policy != NULL) {
-			if (nvlist_add_nvlist(config, ZPOOL_REWIND_POLICY,
+			if (nvlist_add_nvlist(config, ZPOOL_LOAD_POLICY,
 			    policy) != 0)
 				goto nomem;
 		}

Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_pool.c
==============================================================================
--- vendor/illumos/dist/lib/libzfs/common/libzfs_pool.c	Wed Mar 28 22:10:06 2018	(r331705)
+++ vendor/illumos/dist/lib/libzfs/common/libzfs_pool.c	Wed Mar 28 22:16:51 2018	(r331706)
@@ -1714,7 +1714,7 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
     nvlist_t *props, int flags)
 {
 	zfs_cmd_t zc = { 0 };
-	zpool_rewind_policy_t policy;
+	zpool_load_policy_t policy;
 	nvlist_t *nv = NULL;
 	nvlist_t *nvinfo = NULL;
 	nvlist_t *missing = NULL;
@@ -1786,7 +1786,7 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
 
 	zcmd_free_nvlists(&zc);
 
-	zpool_get_rewind_policy(config, &policy);
+	zpool_get_load_policy(config, &policy);
 
 	if (error) {
 		char desc[1024];
@@ -1795,7 +1795,7 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
 		 * Dry-run failed, but we print out what success
 		 * looks like if we found a best txg
 		 */
-		if (policy.zrp_request & ZPOOL_TRY_REWIND) {
+		if (policy.zlp_rewind & ZPOOL_TRY_REWIND) {
 			zpool_rewind_exclaim(hdl, newname ? origname : thename,
 			    B_TRUE, nv);
 			nvlist_free(nv);
@@ -1888,10 +1888,10 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
 			ret = -1;
 		else if (zhp != NULL)
 			zpool_close(zhp);
-		if (policy.zrp_request &
+		if (policy.zlp_rewind &
 		    (ZPOOL_DO_REWIND | ZPOOL_TRY_REWIND)) {
 			zpool_rewind_exclaim(hdl, newname ? origname : thename,
-			    ((policy.zrp_request & ZPOOL_TRY_REWIND) != 0), nv);
+			    ((policy.zlp_rewind & ZPOOL_TRY_REWIND) != 0), nv);
 		}
 		nvlist_free(nv);
 		return (0);
@@ -3268,7 +3268,7 @@ zpool_clear(zpool_handle_t *zhp, const char *path, nvl
 	zfs_cmd_t zc = { 0 };
 	char msg[1024];
 	nvlist_t *tgt;
-	zpool_rewind_policy_t policy;
+	zpool_load_policy_t policy;
 	boolean_t avail_spare, l2cache;
 	libzfs_handle_t *hdl = zhp->zpool_hdl;
 	nvlist_t *nvi = NULL;
@@ -3300,8 +3300,8 @@ zpool_clear(zpool_handle_t *zhp, const char *path, nvl
 		    &zc.zc_guid) == 0);
 	}
 
-	zpool_get_rewind_policy(rewindnvl, &policy);
-	zc.zc_cookie = policy.zrp_request;
+	zpool_get_load_policy(rewindnvl, &policy);
+	zc.zc_cookie = policy.zlp_rewind;
 
 	if (zcmd_alloc_dst_nvlist(hdl, &zc, zhp->zpool_config_size * 2) != 0)
 		return (-1);
@@ -3317,13 +3317,13 @@ zpool_clear(zpool_handle_t *zhp, const char *path, nvl
 		}
 	}
 
-	if (!error || ((policy.zrp_request & ZPOOL_TRY_REWIND) &&
+	if (!error || ((policy.zlp_rewind & ZPOOL_TRY_REWIND) &&
 	    errno != EPERM && errno != EACCES)) {
-		if (policy.zrp_request &
+		if (policy.zlp_rewind &
 		    (ZPOOL_DO_REWIND | ZPOOL_TRY_REWIND)) {
 			(void) zcmd_read_dst_nvlist(hdl, &zc, &nvi);
 			zpool_rewind_exclaim(hdl, zc.zc_name,
-			    ((policy.zrp_request & ZPOOL_TRY_REWIND) != 0),
+			    ((policy.zlp_rewind & ZPOOL_TRY_REWIND) != 0),
 			    nvi);
 			nvlist_free(nvi);
 		}

From owner-svn-src-all@freebsd.org  Wed Mar 28 22:29:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 25AB9F4F15D;
 Wed, 28 Mar 2018 22:29:08 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id C9394864A3;
 Wed, 28 Mar 2018 22:29:07 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BD687110B8;
 Wed, 28 Mar 2018 22:29:07 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SMT7a0040921;
 Wed, 28 Mar 2018 22:29:07 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SMT6bd040912;
 Wed, 28 Mar 2018 22:29:06 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282229.w2SMT6bd040912@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 22:29:06 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331707 - in head: cddl/contrib/opensolaris/cmd/zdb
 cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libzfs/common
 sys/cddl/contrib/opensolaris/common/zfs sys/cddl/contri...
X-SVN-Group: head
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: in head: cddl/contrib/opensolaris/cmd/zdb
 cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libzfs/common
 sys/cddl/contrib/opensolaris/common/zfs
 sys/cddl/contrib/opensolaris/uts/common/...
X-SVN-Commit-Revision: 331707
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 22:29:08 -0000

Author: mav
Date: Wed Mar 28 22:29:06 2018
New Revision: 331707
URL: https://svnweb.freebsd.org/changeset/base/331707

Log:
  MFV r331706:
  9235 rename zpool_rewind_policy_t to zpool_load_policy_t
  
  illumos/illumos-gate@5dafeea3ebd2dd77affc802bcb90f63faf01589f
  
  We want to be able to pass various settings during import/open of a pool,
  which are not only related to rewind. Instead of adding a new policy and
  duplicate a bunch of code, we should just rename rewind_policy to a more
  generic term like load_policy.
  
  For instance, we'd like to set spa->spa_import_flags from the nvlist,
  rather from a flags parameter passed to spa_import as in some cases we want
  those flags not only for the import case, but also for the open case. One
  such flag could be ZFS_IMPORT_MISSING_LOG (as used in zdb) which would
  allow zfs to open a pool when logs are missing.
  
  Reviewed by: Matt Ahrens 
  Reviewed by: George Wilson 
  Approved by: Robert Mustacchi 
  Author: Pavel Zakharov 

Modified:
  head/cddl/contrib/opensolaris/cmd/zdb/zdb.c
  head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
  head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
  head/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.c
  head/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  head/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
Directory Properties:
  head/cddl/contrib/opensolaris/   (props changed)
  head/cddl/contrib/opensolaris/cmd/zdb/   (props changed)
  head/cddl/contrib/opensolaris/lib/libzfs/   (props changed)
  head/sys/cddl/contrib/opensolaris/   (props changed)

Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.c
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Wed Mar 28 22:16:51 2018	(r331706)
+++ head/cddl/contrib/opensolaris/cmd/zdb/zdb.c	Wed Mar 28 22:29:06 2018	(r331707)
@@ -5222,8 +5222,8 @@ main(int argc, char **argv)
 		    (dump_opt['X'] ? ZPOOL_EXTREME_REWIND : 0);
 
 	if (nvlist_alloc(&policy, NV_UNIQUE_NAME_TYPE, 0) != 0 ||
-	    nvlist_add_uint64(policy, ZPOOL_REWIND_REQUEST_TXG, max_txg) != 0 ||
-	    nvlist_add_uint32(policy, ZPOOL_REWIND_REQUEST, rewind) != 0)
+	    nvlist_add_uint64(policy, ZPOOL_LOAD_REQUEST_TXG, max_txg) != 0 ||
+	    nvlist_add_uint32(policy, ZPOOL_LOAD_REWIND_POLICY, rewind) != 0)
 		fatal("internal error: %s", strerror(ENOMEM));
 
 	error = 0;
@@ -5240,7 +5240,7 @@ main(int argc, char **argv)
 			}
 
 			if (nvlist_add_nvlist(cfg,
-			    ZPOOL_REWIND_POLICY, policy) != 0) {
+			    ZPOOL_LOAD_POLICY, policy) != 0) {
 				fatal("can't open '%s': %s",
 				    target, strerror(ENOMEM));
 			}

Modified: head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c	Wed Mar 28 22:16:51 2018	(r331706)
+++ head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c	Wed Mar 28 22:29:06 2018	(r331707)
@@ -2357,8 +2357,9 @@ zpool_do_import(int argc, char **argv)
 
 	/* In the future, we can capture further policy and include it here */
 	if (nvlist_alloc(&policy, NV_UNIQUE_NAME, 0) != 0 ||
-	    nvlist_add_uint64(policy, ZPOOL_REWIND_REQUEST_TXG, txg) != 0 ||
-	    nvlist_add_uint32(policy, ZPOOL_REWIND_REQUEST, rewind_policy) != 0)
+	    nvlist_add_uint64(policy, ZPOOL_LOAD_REQUEST_TXG, txg) != 0 ||
+	    nvlist_add_uint32(policy, ZPOOL_LOAD_REWIND_POLICY,
+	    rewind_policy) != 0)
 		goto error;
 
 	if (searchdirs == NULL) {
@@ -2483,7 +2484,7 @@ zpool_do_import(int argc, char **argv)
 		if (do_destroyed && pool_state != POOL_STATE_DESTROYED)
 			continue;
 
-		verify(nvlist_add_nvlist(config, ZPOOL_REWIND_POLICY,
+		verify(nvlist_add_nvlist(config, ZPOOL_LOAD_POLICY,
 		    policy) == 0);
 
 		if (argc == 0) {
@@ -3971,8 +3972,10 @@ zpool_do_clear(int argc, char **argv)
 
 	/* In future, further rewind policy choices can be passed along here */
 	if (nvlist_alloc(&policy, NV_UNIQUE_NAME, 0) != 0 ||
-	    nvlist_add_uint32(policy, ZPOOL_REWIND_REQUEST, rewind_policy) != 0)
+	    nvlist_add_uint32(policy, ZPOOL_LOAD_REWIND_POLICY,
+	    rewind_policy) != 0) {
 		return (1);
+	}
 
 	pool = argv[0];
 	device = argc == 2 ? argv[1] : NULL;

Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h	Wed Mar 28 22:16:51 2018	(r331706)
+++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h	Wed Mar 28 22:29:06 2018	(r331707)
@@ -396,7 +396,7 @@ typedef struct importargs {
 	int can_be_active : 1;	/* can the pool be active?		*/
 	int unique : 1;		/* does 'poolname' already exist?	*/
 	int exists : 1;		/* set on return if pool already exists	*/
-	nvlist_t *policy;	/* rewind policy (rewind txg, etc.)	*/
+	nvlist_t *policy;	/* load policy (max txg, rewind, etc.)	*/
 } importargs_t;
 
 extern nvlist_t *zpool_search_import(libzfs_handle_t *, importargs_t *);

Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c	Wed Mar 28 22:16:51 2018	(r331706)
+++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c	Wed Mar 28 22:29:06 2018	(r331707)
@@ -21,7 +21,7 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2016 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  * Copyright 2015 RackTop Systems.
  * Copyright 2016 Nexenta Systems, Inc.
  */
@@ -776,7 +776,7 @@ get_configs(libzfs_handle_t *hdl, pool_list_t *pl, boo
 		}
 
 		if (policy != NULL) {
-			if (nvlist_add_nvlist(config, ZPOOL_REWIND_POLICY,
+			if (nvlist_add_nvlist(config, ZPOOL_LOAD_POLICY,
 			    policy) != 0)
 				goto nomem;
 		}

Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c	Wed Mar 28 22:16:51 2018	(r331706)
+++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c	Wed Mar 28 22:29:06 2018	(r331707)
@@ -1715,7 +1715,7 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
     nvlist_t *props, int flags)
 {
 	zfs_cmd_t zc = { 0 };
-	zpool_rewind_policy_t policy;
+	zpool_load_policy_t policy;
 	nvlist_t *nv = NULL;
 	nvlist_t *nvinfo = NULL;
 	nvlist_t *missing = NULL;
@@ -1787,7 +1787,7 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
 
 	zcmd_free_nvlists(&zc);
 
-	zpool_get_rewind_policy(config, &policy);
+	zpool_get_load_policy(config, &policy);
 
 	if (error) {
 		char desc[1024];
@@ -1796,7 +1796,7 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
 		 * Dry-run failed, but we print out what success
 		 * looks like if we found a best txg
 		 */
-		if (policy.zrp_request & ZPOOL_TRY_REWIND) {
+		if (policy.zlp_rewind & ZPOOL_TRY_REWIND) {
 			zpool_rewind_exclaim(hdl, newname ? origname : thename,
 			    B_TRUE, nv);
 			nvlist_free(nv);
@@ -1889,10 +1889,10 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *con
 			ret = -1;
 		else if (zhp != NULL)
 			zpool_close(zhp);
-		if (policy.zrp_request &
+		if (policy.zlp_rewind &
 		    (ZPOOL_DO_REWIND | ZPOOL_TRY_REWIND)) {
 			zpool_rewind_exclaim(hdl, newname ? origname : thename,
-			    ((policy.zrp_request & ZPOOL_TRY_REWIND) != 0), nv);
+			    ((policy.zlp_rewind & ZPOOL_TRY_REWIND) != 0), nv);
 		}
 		nvlist_free(nv);
 		return (0);
@@ -3286,7 +3286,7 @@ zpool_clear(zpool_handle_t *zhp, const char *path, nvl
 	zfs_cmd_t zc = { 0 };
 	char msg[1024];
 	nvlist_t *tgt;
-	zpool_rewind_policy_t policy;
+	zpool_load_policy_t policy;
 	boolean_t avail_spare, l2cache;
 	libzfs_handle_t *hdl = zhp->zpool_hdl;
 	nvlist_t *nvi = NULL;
@@ -3318,8 +3318,8 @@ zpool_clear(zpool_handle_t *zhp, const char *path, nvl
 		    &zc.zc_guid) == 0);
 	}
 
-	zpool_get_rewind_policy(rewindnvl, &policy);
-	zc.zc_cookie = policy.zrp_request;
+	zpool_get_load_policy(rewindnvl, &policy);
+	zc.zc_cookie = policy.zlp_rewind;
 
 	if (zcmd_alloc_dst_nvlist(hdl, &zc, zhp->zpool_config_size * 2) != 0)
 		return (-1);
@@ -3335,13 +3335,13 @@ zpool_clear(zpool_handle_t *zhp, const char *path, nvl
 		}
 	}
 
-	if (!error || ((policy.zrp_request & ZPOOL_TRY_REWIND) &&
+	if (!error || ((policy.zlp_rewind & ZPOOL_TRY_REWIND) &&
 	    errno != EPERM && errno != EACCES)) {
-		if (policy.zrp_request &
+		if (policy.zlp_rewind &
 		    (ZPOOL_DO_REWIND | ZPOOL_TRY_REWIND)) {
 			(void) zcmd_read_dst_nvlist(hdl, &zc, &nvi);
 			zpool_rewind_exclaim(hdl, zc.zc_name,
-			    ((policy.zrp_request & ZPOOL_TRY_REWIND) != 0),
+			    ((policy.zlp_rewind & ZPOOL_TRY_REWIND) != 0),
 			    nvi);
 			nvlist_free(nvi);
 		}

Modified: head/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.c	Wed Mar 28 22:16:51 2018	(r331706)
+++ head/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.c	Wed Mar 28 22:29:06 2018	(r331707)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  */
 
 /*
@@ -66,17 +66,17 @@ zfs_allocatable_devs(nvlist_t *nv)
 }
 
 void
-zpool_get_rewind_policy(nvlist_t *nvl, zpool_rewind_policy_t *zrpp)
+zpool_get_load_policy(nvlist_t *nvl, zpool_load_policy_t *zlpp)
 {
 	nvlist_t *policy;
 	nvpair_t *elem;
 	char *nm;
 
 	/* Defaults */
-	zrpp->zrp_request = ZPOOL_NO_REWIND;
-	zrpp->zrp_maxmeta = 0;
-	zrpp->zrp_maxdata = UINT64_MAX;
-	zrpp->zrp_txg = UINT64_MAX;
+	zlpp->zlp_rewind = ZPOOL_NO_REWIND;
+	zlpp->zlp_maxmeta = 0;
+	zlpp->zlp_maxdata = UINT64_MAX;
+	zlpp->zlp_txg = UINT64_MAX;
 
 	if (nvl == NULL)
 		return;
@@ -84,24 +84,24 @@ zpool_get_rewind_policy(nvlist_t *nvl, zpool_rewind_po
 	elem = NULL;
 	while ((elem = nvlist_next_nvpair(nvl, elem)) != NULL) {
 		nm = nvpair_name(elem);
-		if (strcmp(nm, ZPOOL_REWIND_POLICY) == 0) {
+		if (strcmp(nm, ZPOOL_LOAD_POLICY) == 0) {
 			if (nvpair_value_nvlist(elem, &policy) == 0)
-				zpool_get_rewind_policy(policy, zrpp);
+				zpool_get_load_policy(policy, zlpp);
 			return;
-		} else if (strcmp(nm, ZPOOL_REWIND_REQUEST) == 0) {
-			if (nvpair_value_uint32(elem, &zrpp->zrp_request) == 0)
-				if (zrpp->zrp_request & ~ZPOOL_REWIND_POLICIES)
-					zrpp->zrp_request = ZPOOL_NO_REWIND;
-		} else if (strcmp(nm, ZPOOL_REWIND_REQUEST_TXG) == 0) {
-			(void) nvpair_value_uint64(elem, &zrpp->zrp_txg);
-		} else if (strcmp(nm, ZPOOL_REWIND_META_THRESH) == 0) {
-			(void) nvpair_value_uint64(elem, &zrpp->zrp_maxmeta);
-		} else if (strcmp(nm, ZPOOL_REWIND_DATA_THRESH) == 0) {
-			(void) nvpair_value_uint64(elem, &zrpp->zrp_maxdata);
+		} else if (strcmp(nm, ZPOOL_LOAD_REWIND_POLICY) == 0) {
+			if (nvpair_value_uint32(elem, &zlpp->zlp_rewind) == 0)
+				if (zlpp->zlp_rewind & ~ZPOOL_REWIND_POLICIES)
+					zlpp->zlp_rewind = ZPOOL_NO_REWIND;
+		} else if (strcmp(nm, ZPOOL_LOAD_REQUEST_TXG) == 0) {
+			(void) nvpair_value_uint64(elem, &zlpp->zlp_txg);
+		} else if (strcmp(nm, ZPOOL_LOAD_META_THRESH) == 0) {
+			(void) nvpair_value_uint64(elem, &zlpp->zlp_maxmeta);
+		} else if (strcmp(nm, ZPOOL_LOAD_DATA_THRESH) == 0) {
+			(void) nvpair_value_uint64(elem, &zlpp->zlp_maxdata);
 		}
 	}
-	if (zrpp->zrp_request == 0)
-		zrpp->zrp_request = ZPOOL_NO_REWIND;
+	if (zlpp->zlp_rewind == 0)
+		zlpp->zlp_rewind = ZPOOL_NO_REWIND;
 }
 
 typedef struct zfs_version_spa_map {

Modified: head/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.h
==============================================================================
--- head/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.h	Wed Mar 28 22:16:51 2018	(r331706)
+++ head/sys/cddl/contrib/opensolaris/common/zfs/zfs_comutil.h	Wed Mar 28 22:29:06 2018	(r331707)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  */
 
 #ifndef	_ZFS_COMUTIL_H
@@ -34,7 +34,7 @@ extern "C" {
 #endif
 
 extern boolean_t zfs_allocatable_devs(nvlist_t *);
-extern void zpool_get_rewind_policy(nvlist_t *, zpool_rewind_policy_t *);
+extern void zpool_get_load_policy(nvlist_t *, zpool_load_policy_t *);
 
 extern int zfs_zpl_version_map(int spa_version);
 extern int zfs_spa_version_map(int zpl_version);

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Wed Mar 28 22:16:51 2018	(r331706)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Wed Mar 28 22:29:06 2018	(r331707)
@@ -2109,13 +2109,13 @@ spa_load_verify(spa_t *spa)
 {
 	zio_t *rio;
 	spa_load_error_t sle = { 0 };
-	zpool_rewind_policy_t policy;
+	zpool_load_policy_t policy;
 	boolean_t verify_ok = B_FALSE;
 	int error = 0;
 
-	zpool_get_rewind_policy(spa->spa_config, &policy);
+	zpool_get_load_policy(spa->spa_config, &policy);
 
-	if (policy.zrp_request & ZPOOL_NEVER_REWIND)
+	if (policy.zlp_rewind & ZPOOL_NEVER_REWIND)
 		return (0);
 
 	dsl_pool_config_enter(spa->spa_dsl_pool, FTAG);
@@ -2154,8 +2154,8 @@ spa_load_verify(spa_t *spa)
 	}
 
 	if (spa_load_verify_dryrun ||
-	    (!error && sle.sle_meta_count <= policy.zrp_maxmeta &&
-	    sle.sle_data_count <= policy.zrp_maxdata)) {
+	    (!error && sle.sle_meta_count <= policy.zlp_maxmeta &&
+	    sle.sle_data_count <= policy.zlp_maxdata)) {
 		int64_t loss = 0;
 
 		verify_ok = B_TRUE;
@@ -2855,17 +2855,17 @@ spa_ld_trusted_config(spa_t *spa, spa_import_type_t ty
 	/*
 	 * We will use spa_config if we decide to reload the spa or if spa_load
 	 * fails and we rewind. We must thus regenerate the config using the
-	 * MOS information with the updated paths. Rewind policy is an import
-	 * setting and is not in the MOS. We copy it over to our new, trusted
-	 * config.
+	 * MOS information with the updated paths. ZPOOL_LOAD_POLICY is used to
+	 * pass settings on how to load the pool and is not stored in the MOS.
+	 * We copy it over to our new, trusted config.
 	 */
 	mos_config_txg = fnvlist_lookup_uint64(mos_config,
 	    ZPOOL_CONFIG_POOL_TXG);
 	nvlist_free(mos_config);
 	mos_config = spa_config_generate(spa, NULL, mos_config_txg, B_FALSE);
-	if (nvlist_lookup_nvlist(spa->spa_config, ZPOOL_REWIND_POLICY,
+	if (nvlist_lookup_nvlist(spa->spa_config, ZPOOL_LOAD_POLICY,
 	    &policy) == 0)
-		fnvlist_add_nvlist(mos_config, ZPOOL_REWIND_POLICY, policy);
+		fnvlist_add_nvlist(mos_config, ZPOOL_LOAD_POLICY, policy);
 	spa_config_set(spa, mos_config);
 	spa->spa_config_source = SPA_CONFIG_SRC_MOS;
 
@@ -4125,13 +4125,13 @@ spa_open_common(const char *pool, spa_t **spapp, void 
 	}
 
 	if (spa->spa_state == POOL_STATE_UNINITIALIZED) {
-		zpool_rewind_policy_t policy;
+		zpool_load_policy_t policy;
 
 		firstopen = B_TRUE;
 
-		zpool_get_rewind_policy(nvpolicy ? nvpolicy : spa->spa_config,
+		zpool_get_load_policy(nvpolicy ? nvpolicy : spa->spa_config,
 		    &policy);
-		if (policy.zrp_request & ZPOOL_DO_REWIND)
+		if (policy.zlp_rewind & ZPOOL_DO_REWIND)
 			state = SPA_LOAD_RECOVER;
 
 		spa_activate(spa, spa_mode_global);
@@ -4141,8 +4141,8 @@ spa_open_common(const char *pool, spa_t **spapp, void 
 		spa->spa_config_source = SPA_CONFIG_SRC_CACHEFILE;
 
 		zfs_dbgmsg("spa_open_common: opening %s", pool);
-		error = spa_load_best(spa, state, policy.zrp_txg,
-		    policy.zrp_request);
+		error = spa_load_best(spa, state, policy.zlp_txg,
+		    policy.zlp_rewind);
 
 		if (error == EBADF) {
 			/*
@@ -5326,7 +5326,7 @@ spa_import(const char *pool, nvlist_t *config, nvlist_
 	spa_t *spa;
 	char *altroot = NULL;
 	spa_load_state_t state = SPA_LOAD_IMPORT;
-	zpool_rewind_policy_t policy;
+	zpool_load_policy_t policy;
 	uint64_t mode = spa_mode_global;
 	uint64_t readonly = B_FALSE;
 	int error;
@@ -5377,8 +5377,8 @@ spa_import(const char *pool, nvlist_t *config, nvlist_
 	 */
 	spa_async_suspend(spa);
 
-	zpool_get_rewind_policy(config, &policy);
-	if (policy.zrp_request & ZPOOL_DO_REWIND)
+	zpool_get_load_policy(config, &policy);
+	if (policy.zlp_rewind & ZPOOL_DO_REWIND)
 		state = SPA_LOAD_RECOVER;
 
 	spa->spa_config_source = SPA_CONFIG_SRC_TRYIMPORT;
@@ -5388,9 +5388,9 @@ spa_import(const char *pool, nvlist_t *config, nvlist_
 		zfs_dbgmsg("spa_import: importing %s", pool);
 	} else {
 		zfs_dbgmsg("spa_import: importing %s, max_txg=%lld "
-		    "(RECOVERY MODE)", pool, (longlong_t)policy.zrp_txg);
+		    "(RECOVERY MODE)", pool, (longlong_t)policy.zlp_txg);
 	}
-	error = spa_load_best(spa, state, policy.zrp_txg, policy.zrp_request);
+	error = spa_load_best(spa, state, policy.zlp_txg, policy.zlp_rewind);
 
 	/*
 	 * Propagate anything learned while loading the pool and pass it
@@ -5517,7 +5517,7 @@ spa_tryimport(nvlist_t *tryconfig)
 	spa_t *spa;
 	uint64_t state;
 	int error;
-	zpool_rewind_policy_t policy;
+	zpool_load_policy_t policy;
 
 	if (nvlist_lookup_string(tryconfig, ZPOOL_CONFIG_POOL_NAME, &poolname))
 		return (NULL);
@@ -5533,16 +5533,14 @@ spa_tryimport(nvlist_t *tryconfig)
 	spa_activate(spa, FREAD);
 
 	/*
-	 * Rewind pool if a max txg was provided. Note that even though we
-	 * retrieve the complete rewind policy, only the rewind txg is relevant
-	 * for tryimport.
+	 * Rewind pool if a max txg was provided.
 	 */
-	zpool_get_rewind_policy(spa->spa_config, &policy);
-	if (policy.zrp_txg != UINT64_MAX) {
-		spa->spa_load_max_txg = policy.zrp_txg;
+	zpool_get_load_policy(spa->spa_config, &policy);
+	if (policy.zlp_txg != UINT64_MAX) {
+		spa->spa_load_max_txg = policy.zlp_txg;
 		spa->spa_extreme_rewind = B_TRUE;
 		zfs_dbgmsg("spa_tryimport: importing %s, max_txg=%lld",
-		    poolname, (longlong_t)policy.zrp_txg);
+		    poolname, (longlong_t)policy.zlp_txg);
 	} else {
 		zfs_dbgmsg("spa_tryimport: importing %s", poolname);
 	}

Modified: head/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h	Wed Mar 28 22:16:51 2018	(r331706)
+++ head/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h	Wed Mar 28 22:29:06 2018	(r331707)
@@ -501,7 +501,7 @@ typedef enum {
 #define	ZPL_VERSION_USERSPACE		ZPL_VERSION_4
 #define	ZPL_VERSION_SA			ZPL_VERSION_5
 
-/* Rewind request information */
+/* Rewind policy information */
 #define	ZPOOL_NO_REWIND		1  /* No policy - default behavior */
 #define	ZPOOL_NEVER_REWIND	2  /* Do not search for best txg or rewind */
 #define	ZPOOL_TRY_REWIND	4  /* Search for best txg, but do not rewind */
@@ -510,12 +510,12 @@ typedef enum {
 #define	ZPOOL_REWIND_MASK	28 /* All the possible rewind bits */
 #define	ZPOOL_REWIND_POLICIES	31 /* All the possible policy bits */
 
-typedef struct zpool_rewind_policy {
-	uint32_t	zrp_request;	/* rewind behavior requested */
-	uint64_t	zrp_maxmeta;	/* max acceptable meta-data errors */
-	uint64_t	zrp_maxdata;	/* max acceptable data errors */
-	uint64_t	zrp_txg;	/* specific txg to load */
-} zpool_rewind_policy_t;
+typedef struct zpool_load_policy {
+	uint32_t	zlp_rewind;	/* rewind policy requested */
+	uint64_t	zlp_maxmeta;	/* max acceptable meta-data errors */
+	uint64_t	zlp_maxdata;	/* max acceptable data errors */
+	uint64_t	zlp_txg;	/* specific txg to load */
+} zpool_load_policy_t;
 
 /*
  * The following are configuration names used in the nvlist describing a pool's
@@ -603,12 +603,12 @@ typedef struct zpool_rewind_policy {
 #define	ZPOOL_CONFIG_FRU		"fru"
 #define	ZPOOL_CONFIG_AUX_STATE		"aux_state"
 
-/* Rewind policy parameters */
-#define	ZPOOL_REWIND_POLICY		"rewind-policy"
-#define	ZPOOL_REWIND_REQUEST		"rewind-request"
-#define	ZPOOL_REWIND_REQUEST_TXG	"rewind-request-txg"
-#define	ZPOOL_REWIND_META_THRESH	"rewind-meta-thresh"
-#define	ZPOOL_REWIND_DATA_THRESH	"rewind-data-thresh"
+/* Pool load policy parameters */
+#define	ZPOOL_LOAD_POLICY		"load-policy"
+#define	ZPOOL_LOAD_REWIND_POLICY	"load-rewind-policy"
+#define	ZPOOL_LOAD_REQUEST_TXG		"load-request-txg"
+#define	ZPOOL_LOAD_META_THRESH		"load-meta-thresh"
+#define	ZPOOL_LOAD_DATA_THRESH		"load-data-thresh"
 
 /* Rewind data discovered */
 #define	ZPOOL_CONFIG_LOAD_TIME		"rewind_txg_ts"

From owner-svn-src-all@freebsd.org  Wed Mar 28 22:43:55 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B8BE1F5032B;
 Wed, 28 Mar 2018 22:43:55 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6C46287038;
 Wed, 28 Mar 2018 22:43:55 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 673B81140A;
 Wed, 28 Mar 2018 22:43:55 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SMht26051021;
 Wed, 28 Mar 2018 22:43:55 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SMhtES051020;
 Wed, 28 Mar 2018 22:43:55 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282243.w2SMhtES051020@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 22:43:55 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331708 - vendor-sys/illumos/dist/uts/common/fs/zfs
X-SVN-Group: vendor-sys
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: vendor-sys/illumos/dist/uts/common/fs/zfs
X-SVN-Commit-Revision: 331708
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 22:43:55 -0000

Author: mav
Date: Wed Mar 28 22:43:55 2018
New Revision: 331708
URL: https://svnweb.freebsd.org/changeset/base/331708

Log:
  9321 arc_loan_compressed_buf() can increment arc_loaned_bytes by the wrong value
  
  illumos/illumos-gate@9be12bd737714550277bd02b0c693db560976990
  
  arc_loan_compressed_buf() increments arc_loaned_bytes by psize unconditionally
  In the case of zfs_compressed_arc_enabled=0, when the buf is returned via
  arc_return_buf(), if ARC_BUF_COMPRESSED(buf) is false, then arc_loaned_bytes
  is decremented by lsize, not psize.
  
  Switch to using arc_buf_size(buf), instead of psize, which will return
  psize or lsize, depending on the result of ARC_BUF_COMPRESSED(buf).
  
  Reviewed by: Matt Ahrens 
  Reviewed by: George Wilson 
  Approved by: Garrett D'Amore 
  Author: Allan Jude 

Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c	Wed Mar 28 22:29:06 2018	(r331707)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c	Wed Mar 28 22:43:55 2018	(r331708)
@@ -2557,7 +2557,7 @@ arc_loan_buf(spa_t *spa, boolean_t is_metadata, int si
 	arc_buf_t *buf = arc_alloc_buf(spa, arc_onloan_tag,
 	    is_metadata ? ARC_BUFC_METADATA : ARC_BUFC_DATA, size);
 
-	arc_loaned_bytes_update(size);
+	arc_loaned_bytes_update(arc_buf_size(buf));
 
 	return (buf);
 }
@@ -2569,7 +2569,7 @@ arc_loan_compressed_buf(spa_t *spa, uint64_t psize, ui
 	arc_buf_t *buf = arc_alloc_compressed_buf(spa, arc_onloan_tag,
 	    psize, lsize, compression_type);
 
-	arc_loaned_bytes_update(psize);
+	arc_loaned_bytes_update(arc_buf_size(buf));
 
 	return (buf);
 }

From owner-svn-src-all@freebsd.org  Wed Mar 28 22:50:06 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0648BF50CA2;
 Wed, 28 Mar 2018 22:50:06 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id AD2CA87490;
 Wed, 28 Mar 2018 22:50:05 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A3C0B1140F;
 Wed, 28 Mar 2018 22:50:05 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SMo5pH051350;
 Wed, 28 Mar 2018 22:50:05 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SMo5qL051349;
 Wed, 28 Mar 2018 22:50:05 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282250.w2SMo5qL051349@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 22:50:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331709 -
 head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Group: head
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Commit-Revision: 331709
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 22:50:06 -0000

Author: mav
Date: Wed Mar 28 22:50:05 2018
New Revision: 331709
URL: https://svnweb.freebsd.org/changeset/base/331709

Log:
  MFV r331708:
  9321 arc_loan_compressed_buf() can increment arc_loaned_bytes by the wrong value
  
  illumos/illumos-gate@9be12bd737714550277bd02b0c693db560976990
  
  arc_loan_compressed_buf() increments arc_loaned_bytes by psize unconditionally
  In the case of zfs_compressed_arc_enabled=0, when the buf is returned via
  arc_return_buf(), if ARC_BUF_COMPRESSED(buf) is false, then arc_loaned_bytes
  is decremented by lsize, not psize.
  
  Switch to using arc_buf_size(buf), instead of psize, which will return
  psize or lsize, depending on the result of ARC_BUF_COMPRESSED(buf).
  
  Reviewed by: Matt Ahrens 
  Reviewed by: George Wilson 
  Approved by: Garrett D'Amore 
  Author: Allan Jude 

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
Directory Properties:
  head/sys/cddl/contrib/opensolaris/   (props changed)

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Wed Mar 28 22:43:55 2018	(r331708)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Wed Mar 28 22:50:05 2018	(r331709)
@@ -2877,7 +2877,7 @@ arc_loan_buf(spa_t *spa, boolean_t is_metadata, int si
 	arc_buf_t *buf = arc_alloc_buf(spa, arc_onloan_tag,
 	    is_metadata ? ARC_BUFC_METADATA : ARC_BUFC_DATA, size);
 
-	arc_loaned_bytes_update(size);
+	arc_loaned_bytes_update(arc_buf_size(buf));
 
 	return (buf);
 }
@@ -2889,7 +2889,7 @@ arc_loan_compressed_buf(spa_t *spa, uint64_t psize, ui
 	arc_buf_t *buf = arc_alloc_compressed_buf(spa, arc_onloan_tag,
 	    psize, lsize, compression_type);
 
-	arc_loaned_bytes_update(psize);
+	arc_loaned_bytes_update(arc_buf_size(buf));
 
 	return (buf);
 }

From owner-svn-src-all@freebsd.org  Wed Mar 28 22:57:03 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E602F51684;
 Wed, 28 Mar 2018 22:57:03 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4875887A7E;
 Wed, 28 Mar 2018 22:57:03 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3AF3D115BB;
 Wed, 28 Mar 2018 22:57:03 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SMv3pe056221;
 Wed, 28 Mar 2018 22:57:03 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SMv3WN056220;
 Wed, 28 Mar 2018 22:57:03 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282257.w2SMv3WN056220@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 22:57:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331710 - vendor-sys/illumos/dist/uts/common/fs/zfs
X-SVN-Group: vendor-sys
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: vendor-sys/illumos/dist/uts/common/fs/zfs
X-SVN-Commit-Revision: 331710
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 22:57:03 -0000

Author: mav
Date: Wed Mar 28 22:57:02 2018
New Revision: 331710
URL: https://svnweb.freebsd.org/changeset/base/331710

Log:
  9188 increase size of dbuf cache to reduce indirect block decompression
  
  illumos/illumos-gate@268bbb2a2fa79c36d4695d13a595ba50a7754b76
  
  With compressed ARC (6950) we use up to 25% of our CPU to decompress indirect
  blocks, under a workload of random cached reads. To reduce this decompression
  cost, we would like to increase the size of the dbuf cache so that more
  indirect blocks can be stored uncompressed.
  
  If we are caching entire large files of recordsize=8K, the indirect blocks
  use 1/64th as much memory as the data blocks (assuming they have the same
  compression ratio). We suggest making the dbuf cache be 1/32nd of all memory,
  so that in this scenario we should be able to keep all the indirect blocks
  decompressed in the dbuf cache. (We want it to be more than the 1/64th that
  the indirect blocks would use because we need to cache other stuff in the
  dbuf cache as well.)
  
  In real world workloads, this won't help as dramatically as the example
  above, but we think it's still worth it because the risk of decreasing
  performance is low. The potential negative performance impact is that we
  will be slightly reducing the size of the ARC (by ~3%).
  
  Reviewed by: Dan Kimmel 
  Reviewed by: Prashanth Sreenivasa 
  Reviewed by: Paul Dagnelie 
  Reviewed by: Sanjay Nadkarni 
  Reviewed by: Allan Jude 
  Reviewed by: Igor Kozhukhov 
  Approved by: Garrett D'Amore 
  Author: George Wilson 

Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c	Wed Mar 28 22:50:05 2018	(r331709)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c	Wed Mar 28 22:57:02 2018	(r331710)
@@ -85,10 +85,10 @@ static boolean_t dbuf_evict_thread_exit;
  */
 static multilist_t *dbuf_cache;
 static refcount_t dbuf_cache_size;
-uint64_t dbuf_cache_max_bytes = 100 * 1024 * 1024;
+uint64_t dbuf_cache_max_bytes = 0;
 
-/* Cap the size of the dbuf cache to log2 fraction of arc size. */
-int dbuf_cache_max_shift = 5;
+/* Set the default size of the dbuf cache to log2 fraction of arc size. */
+int dbuf_cache_shift = 5;
 
 /*
  * The dbuf cache uses a three-stage eviction policy:
@@ -600,11 +600,15 @@ retry:
 		mutex_init(&h->hash_mutexes[i], NULL, MUTEX_DEFAULT, NULL);
 
 	/*
-	 * Setup the parameters for the dbuf cache. We cap the size of the
-	 * dbuf cache to 1/32nd (default) of the size of the ARC.
+	 * Setup the parameters for the dbuf cache. We set the size of the
+	 * dbuf cache to 1/32nd (default) of the size of the ARC. If the value
+	 * has been set in /etc/system and it's not greater than the size of
+	 * the ARC, then we honor that value.
 	 */
-	dbuf_cache_max_bytes = MIN(dbuf_cache_max_bytes,
-	    arc_max_bytes() >> dbuf_cache_max_shift);
+	if (dbuf_cache_max_bytes == 0 ||
+	    dbuf_cache_max_bytes >= arc_max_bytes())  {
+		dbuf_cache_max_bytes = arc_max_bytes() >> dbuf_cache_shift;
+	}
 
 	/*
 	 * All entries are queued via taskq_dispatch_ent(), so min/maxalloc

From owner-svn-src-all@freebsd.org  Wed Mar 28 23:05:49 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4B13AF523B9;
 Wed, 28 Mar 2018 23:05:49 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EE18E68184;
 Wed, 28 Mar 2018 23:05:48 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E25151174F;
 Wed, 28 Mar 2018 23:05:48 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SN5mPO061276;
 Wed, 28 Mar 2018 23:05:48 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SN5mKn061275;
 Wed, 28 Mar 2018 23:05:48 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282305.w2SN5mKn061275@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 23:05:48 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331711 -
 head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Group: head
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Commit-Revision: 331711
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 23:05:49 -0000

Author: mav
Date: Wed Mar 28 23:05:48 2018
New Revision: 331711
URL: https://svnweb.freebsd.org/changeset/base/331711

Log:
  MFV 331710:
  9188 increase size of dbuf cache to reduce indirect block decompression
  
  illumos/illumos-gate@268bbb2a2fa79c36d4695d13a595ba50a7754b76
  
  With compressed ARC (6950) we use up to 25% of our CPU to decompress indirect
  blocks, under a workload of random cached reads. To reduce this decompression
  cost, we would like to increase the size of the dbuf cache so that more
  indirect blocks can be stored uncompressed.
  
  If we are caching entire large files of recordsize=8K, the indirect blocks
  use 1/64th as much memory as the data blocks (assuming they have the same
  compression ratio). We suggest making the dbuf cache be 1/32nd of all memory,
  so that in this scenario we should be able to keep all the indirect blocks
  decompressed in the dbuf cache. (We want it to be more than the 1/64th that
  the indirect blocks would use because we need to cache other stuff in the
  dbuf cache as well.)
  
  In real world workloads, this won't help as dramatically as the example
  above, but we think it's still worth it because the risk of decreasing
  performance is low. The potential negative performance impact is that we
  will be slightly reducing the size of the ARC (by ~3%).
  
  Reviewed by: Dan Kimmel 
  Reviewed by: Prashanth Sreenivasa 
  Reviewed by: Paul Dagnelie 
  Reviewed by: Sanjay Nadkarni 
  Reviewed by: Allan Jude 
  Reviewed by: Igor Kozhukhov 
  Approved by: Garrett D'Amore 
  Author: George Wilson 

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
Directory Properties:
  head/sys/cddl/contrib/opensolaris/   (props changed)

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c	Wed Mar 28 22:57:02 2018	(r331710)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c	Wed Mar 28 23:05:48 2018	(r331711)
@@ -85,10 +85,10 @@ static boolean_t dbuf_evict_thread_exit;
  */
 static multilist_t *dbuf_cache;
 static refcount_t dbuf_cache_size;
-uint64_t dbuf_cache_max_bytes = 100 * 1024 * 1024;
+uint64_t dbuf_cache_max_bytes = 0;
 
-/* Cap the size of the dbuf cache to log2 fraction of arc size. */
-int dbuf_cache_max_shift = 5;
+/* Set the default size of the dbuf cache to log2 fraction of arc size. */
+int dbuf_cache_shift = 5;
 
 /*
  * The dbuf cache uses a three-stage eviction policy:
@@ -138,8 +138,8 @@ uint_t dbuf_cache_lowater_pct = 10;
 SYSCTL_DECL(_vfs_zfs);
 SYSCTL_QUAD(_vfs_zfs, OID_AUTO, dbuf_cache_max_bytes, CTLFLAG_RWTUN,
     &dbuf_cache_max_bytes, 0, "dbuf cache size in bytes");
-SYSCTL_INT(_vfs_zfs, OID_AUTO, dbuf_cache_max_shift, CTLFLAG_RDTUN,
-    &dbuf_cache_max_shift, 0, "dbuf size as log2 fraction of ARC");
+SYSCTL_INT(_vfs_zfs, OID_AUTO, dbuf_cache_shift, CTLFLAG_RDTUN,
+    &dbuf_cache_shift, 0, "dbuf cache size as log2 fraction of ARC");
 SYSCTL_UINT(_vfs_zfs, OID_AUTO, dbuf_cache_hiwater_pct, CTLFLAG_RWTUN,
     &dbuf_cache_hiwater_pct, 0, "max percents above the dbuf cache size");
 SYSCTL_UINT(_vfs_zfs, OID_AUTO, dbuf_cache_lowater_pct, CTLFLAG_RWTUN,
@@ -610,11 +610,15 @@ retry:
 		mutex_init(&h->hash_mutexes[i], NULL, MUTEX_DEFAULT, NULL);
 
 	/*
-	 * Setup the parameters for the dbuf cache. We cap the size of the
-	 * dbuf cache to 1/32nd (default) of the size of the ARC.
+	 * Setup the parameters for the dbuf cache. We set the size of the
+	 * dbuf cache to 1/32nd (default) of the size of the ARC. If the value
+	 * has been set in /etc/system and it's not greater than the size of
+	 * the ARC, then we honor that value.
 	 */
-	dbuf_cache_max_bytes = MIN(dbuf_cache_max_bytes,
-	    arc_max_bytes() >> dbuf_cache_max_shift);
+	if (dbuf_cache_max_bytes == 0 ||
+	    dbuf_cache_max_bytes >= arc_max_bytes())  {
+		dbuf_cache_max_bytes = arc_max_bytes() >> dbuf_cache_shift;
+	}
 
 	/*
 	 * All entries are queued via taskq_dispatch_ent(), so min/maxalloc

From owner-svn-src-all@freebsd.org  Wed Mar 28 23:12:04 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 793E5F52BEF;
 Wed, 28 Mar 2018 23:12:04 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 2A9896866A;
 Wed, 28 Mar 2018 23:12:04 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 257D2117B7;
 Wed, 28 Mar 2018 23:12:04 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SNC4bB065367;
 Wed, 28 Mar 2018 23:12:04 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SNC4iL065366;
 Wed, 28 Mar 2018 23:12:04 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282312.w2SNC4iL065366@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 23:12:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331712 - vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor/illumos/dist/cmd/ztest
X-SVN-Group: vendor-sys
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor/illumos/dist/cmd/ztest
X-SVN-Commit-Revision: 331712
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 23:12:04 -0000

Author: mav
Date: Wed Mar 28 23:12:03 2018
New Revision: 331712
URL: https://svnweb.freebsd.org/changeset/base/331712

Log:
  9280 Assertion failure while running removal_with_ganging test with 4K devices
  
  illumos/illumos-gate@243952c7eeef020886e3e2e3df99a513df40584a
  
  Reviewed by: George Wilson 
  Reviewed by: John Kennedy 
  Approved by: Garrett D'Amore 
  Author: Matt Ahrens 

Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c

Changes in other areas also in this revision:
Modified:
  vendor/illumos/dist/cmd/ztest/ztest.c

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c	Wed Mar 28 23:05:48 2018	(r331711)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c	Wed Mar 28 23:12:03 2018	(r331712)
@@ -41,7 +41,7 @@
 	((flags) & (METASLAB_GANG_CHILD | METASLAB_GANG_HEADER))
 
 uint64_t metaslab_aliquot = 512ULL << 10;
-uint64_t metaslab_gang_bang = SPA_MAXBLOCKSIZE + 1;	/* force gang blocks */
+uint64_t metaslab_force_ganging = SPA_MAXBLOCKSIZE + 1;	/* force gang blocks */
 
 /*
  * Since we can touch multiple metaslabs (and their respective space maps)
@@ -3080,7 +3080,7 @@ metaslab_alloc_dva(spa_t *spa, metaslab_class_t *mc, u
 	/*
 	 * For testing, make some blocks above a certain size be gang blocks.
 	 */
-	if (psize >= metaslab_gang_bang && (ddi_get_lbolt() & 3) == 0) {
+	if (psize >= metaslab_force_ganging && (ddi_get_lbolt() & 3) == 0) {
 		metaslab_trace_add(zal, NULL, NULL, psize, d, TRACE_FORCE_GANG);
 		return (SET_ERROR(ENOSPC));
 	}

From owner-svn-src-all@freebsd.org  Wed Mar 28 23:12:04 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4533F52BF7;
 Wed, 28 Mar 2018 23:12:04 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 675526866C;
 Wed, 28 Mar 2018 23:12:04 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 62524117B9;
 Wed, 28 Mar 2018 23:12:04 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SNC4W5065373;
 Wed, 28 Mar 2018 23:12:04 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SNC4R4065372;
 Wed, 28 Mar 2018 23:12:04 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282312.w2SNC4R4065372@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 23:12:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-vendor@freebsd.org
Subject: svn commit: r331712 - vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor/illumos/dist/cmd/ztest
X-SVN-Group: vendor
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: vendor-sys/illumos/dist/uts/common/fs/zfs
 vendor/illumos/dist/cmd/ztest
X-SVN-Commit-Revision: 331712
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 23:12:04 -0000

Author: mav
Date: Wed Mar 28 23:12:03 2018
New Revision: 331712
URL: https://svnweb.freebsd.org/changeset/base/331712

Log:
  9280 Assertion failure while running removal_with_ganging test with 4K devices
  
  illumos/illumos-gate@243952c7eeef020886e3e2e3df99a513df40584a
  
  Reviewed by: George Wilson 
  Reviewed by: John Kennedy 
  Approved by: Garrett D'Amore 
  Author: Matt Ahrens 

Modified:
  vendor/illumos/dist/cmd/ztest/ztest.c

Changes in other areas also in this revision:
Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c

Modified: vendor/illumos/dist/cmd/ztest/ztest.c
==============================================================================
--- vendor/illumos/dist/cmd/ztest/ztest.c	Wed Mar 28 23:05:48 2018	(r331711)
+++ vendor/illumos/dist/cmd/ztest/ztest.c	Wed Mar 28 23:12:03 2018	(r331712)
@@ -162,7 +162,7 @@ typedef struct ztest_shared_opts {
 	int zo_init;
 	uint64_t zo_time;
 	uint64_t zo_maxloops;
-	uint64_t zo_metaslab_gang_bang;
+	uint64_t zo_metaslab_force_ganging;
 } ztest_shared_opts_t;
 
 static const ztest_shared_opts_t ztest_opts_defaults = {
@@ -184,10 +184,10 @@ static const ztest_shared_opts_t ztest_opts_defaults =
 	.zo_init = 1,
 	.zo_time = 300,			/* 5 minutes */
 	.zo_maxloops = 50,		/* max loops during spa_freeze() */
-	.zo_metaslab_gang_bang = 32 << 10
+	.zo_metaslab_force_ganging = 32 << 10
 };
 
-extern uint64_t metaslab_gang_bang;
+extern uint64_t metaslab_force_ganging;
 extern uint64_t metaslab_df_alloc_threshold;
 extern uint64_t zfs_deadman_synctime_ms;
 extern int metaslab_preload_limit;
@@ -565,12 +565,12 @@ usage(boolean_t requested)
 	const ztest_shared_opts_t *zo = &ztest_opts_defaults;
 
 	char nice_vdev_size[NN_NUMBUF_SZ];
-	char nice_gang_bang[NN_NUMBUF_SZ];
+	char nice_force_ganging[NN_NUMBUF_SZ];
 	FILE *fp = requested ? stdout : stderr;
 
 	nicenum(zo->zo_vdev_size, nice_vdev_size, sizeof (nice_vdev_size));
-	nicenum(zo->zo_metaslab_gang_bang, nice_gang_bang,
-	    sizeof (nice_gang_bang));
+	nicenum(zo->zo_metaslab_force_ganging, nice_force_ganging,
+	    sizeof (nice_force_ganging));
 
 	(void) fprintf(fp, "Usage: %s\n"
 	    "\t[-v vdevs (default: %llu)]\n"
@@ -605,7 +605,7 @@ usage(boolean_t requested)
 	    zo->zo_raidz_parity,			/* -R */
 	    zo->zo_datasets,				/* -d */
 	    zo->zo_threads,				/* -t */
-	    nice_gang_bang,				/* -g */
+	    nice_force_ganging,				/* -g */
 	    zo->zo_init,				/* -i */
 	    (u_longlong_t)zo->zo_killrate,		/* -k */
 	    zo->zo_pool,				/* -p */
@@ -674,8 +674,8 @@ process_options(int argc, char **argv)
 			zo->zo_threads = MAX(1, value);
 			break;
 		case 'g':
-			zo->zo_metaslab_gang_bang = MAX(SPA_MINBLOCKSIZE << 1,
-			    value);
+			zo->zo_metaslab_force_ganging =
+			    MAX(SPA_MINBLOCKSIZE << 1, value);
 			break;
 		case 'i':
 			zo->zo_init = value;
@@ -6418,7 +6418,7 @@ main(int argc, char **argv)
 	zs = ztest_shared;
 
 	if (fd_data_str) {
-		metaslab_gang_bang = ztest_opts.zo_metaslab_gang_bang;
+		metaslab_force_ganging = ztest_opts.zo_metaslab_force_ganging;
 		metaslab_df_alloc_threshold =
 		    zs->zs_metaslab_df_alloc_threshold;
 

From owner-svn-src-all@freebsd.org  Wed Mar 28 23:17:30 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A032F53250;
 Wed, 28 Mar 2018 23:17:30 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3796368A6B;
 Wed, 28 Mar 2018 23:17:30 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2E4B7118DF;
 Wed, 28 Mar 2018 23:17:30 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SNHU8a066323;
 Wed, 28 Mar 2018 23:17:30 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SNHT8k066321;
 Wed, 28 Mar 2018 23:17:29 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803282317.w2SNHT8k066321@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Wed, 28 Mar 2018 23:17:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331713 - in head: cddl/contrib/opensolaris/cmd/ztest
 sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Group: head
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: in head: cddl/contrib/opensolaris/cmd/ztest
 sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Commit-Revision: 331713
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 23:17:30 -0000

Author: mav
Date: Wed Mar 28 23:17:29 2018
New Revision: 331713
URL: https://svnweb.freebsd.org/changeset/base/331713

Log:
  MFV r331712:
  9280 Assertion failure while running removal_with_ganging test with 4K devices
  
  illumos/illumos-gate@243952c7eeef020886e3e2e3df99a513df40584a
  
  Reviewed by: George Wilson 
  Reviewed by: John Kennedy 
  Approved by: Garrett D'Amore 
  Author: Matt Ahrens 

Modified:
  head/cddl/contrib/opensolaris/cmd/ztest/ztest.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
Directory Properties:
  head/cddl/contrib/opensolaris/   (props changed)
  head/sys/cddl/contrib/opensolaris/   (props changed)

Modified: head/cddl/contrib/opensolaris/cmd/ztest/ztest.c
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Wed Mar 28 23:12:03 2018	(r331712)
+++ head/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Wed Mar 28 23:17:29 2018	(r331713)
@@ -164,7 +164,7 @@ typedef struct ztest_shared_opts {
 	int zo_init;
 	uint64_t zo_time;
 	uint64_t zo_maxloops;
-	uint64_t zo_metaslab_gang_bang;
+	uint64_t zo_metaslab_force_ganging;
 } ztest_shared_opts_t;
 
 static const ztest_shared_opts_t ztest_opts_defaults = {
@@ -186,10 +186,10 @@ static const ztest_shared_opts_t ztest_opts_defaults =
 	.zo_init = 1,
 	.zo_time = 300,			/* 5 minutes */
 	.zo_maxloops = 50,		/* max loops during spa_freeze() */
-	.zo_metaslab_gang_bang = 32 << 10
+	.zo_metaslab_force_ganging = 32 << 10
 };
 
-extern uint64_t metaslab_gang_bang;
+extern uint64_t metaslab_force_ganging;
 extern uint64_t metaslab_df_alloc_threshold;
 extern uint64_t zfs_deadman_synctime_ms;
 extern int metaslab_preload_limit;
@@ -567,12 +567,12 @@ usage(boolean_t requested)
 	const ztest_shared_opts_t *zo = &ztest_opts_defaults;
 
 	char nice_vdev_size[NN_NUMBUF_SZ];
-	char nice_gang_bang[NN_NUMBUF_SZ];
+	char nice_force_ganging[NN_NUMBUF_SZ];
 	FILE *fp = requested ? stdout : stderr;
 
 	nicenum(zo->zo_vdev_size, nice_vdev_size, sizeof (nice_vdev_size));
-	nicenum(zo->zo_metaslab_gang_bang, nice_gang_bang,
-	    sizeof (nice_gang_bang));
+	nicenum(zo->zo_metaslab_force_ganging, nice_force_ganging,
+	    sizeof (nice_force_ganging));
 
 	(void) fprintf(fp, "Usage: %s\n"
 	    "\t[-v vdevs (default: %llu)]\n"
@@ -607,7 +607,7 @@ usage(boolean_t requested)
 	    zo->zo_raidz_parity,			/* -R */
 	    zo->zo_datasets,				/* -d */
 	    zo->zo_threads,				/* -t */
-	    nice_gang_bang,				/* -g */
+	    nice_force_ganging,				/* -g */
 	    zo->zo_init,				/* -i */
 	    (u_longlong_t)zo->zo_killrate,		/* -k */
 	    zo->zo_pool,				/* -p */
@@ -676,8 +676,8 @@ process_options(int argc, char **argv)
 			zo->zo_threads = MAX(1, value);
 			break;
 		case 'g':
-			zo->zo_metaslab_gang_bang = MAX(SPA_MINBLOCKSIZE << 1,
-			    value);
+			zo->zo_metaslab_force_ganging =
+			    MAX(SPA_MINBLOCKSIZE << 1, value);
 			break;
 		case 'i':
 			zo->zo_init = value;
@@ -6425,7 +6425,7 @@ main(int argc, char **argv)
 	zs = ztest_shared;
 
 	if (fd_data_str) {
-		metaslab_gang_bang = ztest_opts.zo_metaslab_gang_bang;
+		metaslab_force_ganging = ztest_opts.zo_metaslab_force_ganging;
 		metaslab_df_alloc_threshold =
 		    zs->zs_metaslab_df_alloc_threshold;
 

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c	Wed Mar 28 23:12:03 2018	(r331712)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c	Wed Mar 28 23:17:29 2018	(r331713)
@@ -44,9 +44,9 @@ SYSCTL_NODE(_vfs_zfs, OID_AUTO, metaslab, CTLFLAG_RW, 
 	((flags) & (METASLAB_GANG_CHILD | METASLAB_GANG_HEADER))
 
 uint64_t metaslab_aliquot = 512ULL << 10;
-uint64_t metaslab_gang_bang = SPA_MAXBLOCKSIZE + 1;	/* force gang blocks */
-SYSCTL_QUAD(_vfs_zfs_metaslab, OID_AUTO, gang_bang, CTLFLAG_RWTUN,
-    &metaslab_gang_bang, 0,
+uint64_t metaslab_force_ganging = SPA_MAXBLOCKSIZE + 1;	/* force gang blocks */
+SYSCTL_QUAD(_vfs_zfs_metaslab, OID_AUTO, force_ganging, CTLFLAG_RWTUN,
+    &metaslab_force_ganging, 0,
     "Force gang block allocation for blocks larger than or equal to this value");
 
 /*
@@ -3172,7 +3172,7 @@ metaslab_alloc_dva(spa_t *spa, metaslab_class_t *mc, u
 	/*
 	 * For testing, make some blocks above a certain size be gang blocks.
 	 */
-	if (psize >= metaslab_gang_bang && (ddi_get_lbolt() & 3) == 0) {
+	if (psize >= metaslab_force_ganging && (ddi_get_lbolt() & 3) == 0) {
 		metaslab_trace_add(zal, NULL, NULL, psize, d, TRACE_FORCE_GANG);
 		return (SET_ERROR(ENOSPC));
 	}

From owner-svn-src-all@freebsd.org  Wed Mar 28 23:33:28 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4EF03F5469E;
 Wed, 28 Mar 2018 23:33:28 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E758E69612;
 Wed, 28 Mar 2018 23:33:27 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DDE6011C16;
 Wed, 28 Mar 2018 23:33:27 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2SNXRxp076404;
 Wed, 28 Mar 2018 23:33:27 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2SNXQH8076392;
 Wed, 28 Mar 2018 23:33:26 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803282333.w2SNXQH8076392@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Wed, 28 Mar 2018 23:33:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331714 - in head: . sys/conf sys/net sys/netinet
 sys/netinet6 sys/nfs usr.sbin/arp
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in head: . sys/conf sys/net sys/netinet sys/netinet6
 sys/nfs usr.sbin/arp
X-SVN-Commit-Revision: 331714
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Wed, 28 Mar 2018 23:33:28 -0000

Author: brooks
Date: Wed Mar 28 23:33:26 2018
New Revision: 331714
URL: https://svnweb.freebsd.org/changeset/base/331714

Log:
  Remove infrastructure for token-ring networks.
  
  Reviewed by:	cem, imp, jhb, jmallett
  Relnotes:	yes
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14875

Deleted:
  head/sys/net/if_iso88025subr.c
  head/sys/net/iso88025.h
Modified:
  head/UPDATING
  head/sys/conf/NOTES
  head/sys/conf/files
  head/sys/net/if.c
  head/sys/netinet/ip_carp.c
  head/sys/netinet6/in6.c
  head/sys/netinet6/in6_ifattach.c
  head/sys/netinet6/nd6.c
  head/sys/netinet6/nd6_nbr.c
  head/sys/nfs/bootp_subr.c
  head/usr.sbin/arp/arp.c

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Wed Mar 28 23:17:29 2018	(r331713)
+++ head/UPDATING	Wed Mar 28 23:33:26 2018	(r331714)
@@ -51,6 +51,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW:
 
 ****************************** SPECIAL WARNING: ******************************
 
+20180528:
+	Support for token ring networks has been removed. If you
+	have "device token" in your kernel config you should remove
+	it. No device drivers supported token ring.
+
 20180323:
 	makefs was modified to be able to tag ISO9660 El Torito boot catalog
 	entries as EFI instead of overloading the i386 tag as done previously.

Modified: head/sys/conf/NOTES
==============================================================================
--- head/sys/conf/NOTES	Wed Mar 28 23:17:29 2018	(r331713)
+++ head/sys/conf/NOTES	Wed Mar 28 23:33:26 2018	(r331714)
@@ -807,7 +807,7 @@ device		loop
 
 #  The `ether' device provides generic code to handle
 #  Ethernets; it is MANDATORY when an Ethernet device driver is
-#  configured or token-ring is enabled.
+#  configured.
 device		ether
 
 #  The `vlan' device implements the VLAN tagging of Ethernet frames
@@ -845,9 +845,6 @@ device		wlan_xauth
 #  The 'wlan_amrr' device provides AMRR transmit rate control algorithm
 device		wlan_acl
 device		wlan_amrr
-
-# Generic TokenRing
-device		token
 
 #  The `fddi' device provides generic code to support FDDI.
 device		fddi

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files	Wed Mar 28 23:17:29 2018	(r331713)
+++ head/sys/conf/files	Wed Mar 28 23:33:26 2018	(r331714)
@@ -4114,7 +4114,6 @@ net/if_gif.c			optional gif inet | gif inet6 | \
 					 netgraph_gif inet | netgraph_gif inet6
 net/if_gre.c			optional gre inet | gre inet6
 net/if_ipsec.c			optional inet ipsec | inet6 ipsec
-net/if_iso88025subr.c		optional token
 net/if_lagg.c			optional lagg
 net/if_loop.c			optional loop
 net/if_llatbl.c			standard

Modified: head/sys/net/if.c
==============================================================================
--- head/sys/net/if.c	Wed Mar 28 23:17:29 2018	(r331713)
+++ head/sys/net/if.c	Wed Mar 28 23:33:26 2018	(r331714)
@@ -3626,7 +3626,6 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, 
 	case IFT_ETHER:
 	case IFT_FDDI:
 	case IFT_XETHER:
-	case IFT_ISO88025:
 	case IFT_L2VLAN:
 	case IFT_BRIDGE:
 	case IFT_ARCNET:

Modified: head/sys/netinet/ip_carp.c
==============================================================================
--- head/sys/netinet/ip_carp.c	Wed Mar 28 23:17:29 2018	(r331713)
+++ head/sys/netinet/ip_carp.c	Wed Mar 28 23:33:26 2018	(r331714)
@@ -61,7 +61,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 
@@ -1539,17 +1538,6 @@ carp_output(struct ifnet *ifp, struct mbuf *m, const s
 			fh->fddi_shost[5] = sc->sc_vhid;
 		}
 		break;
-	case IFT_ISO88025: {
- 			struct iso88025_header *th;
- 			th = mtod(m, struct iso88025_header *);
-			th->iso88025_shost[0] = 3;
-			th->iso88025_shost[1] = 0;
-			th->iso88025_shost[2] = 0x40 >> (sc->sc_vhid - 1);
-			th->iso88025_shost[3] = 0x40000 >> (sc->sc_vhid - 1);
-			th->iso88025_shost[4] = 0;
-			th->iso88025_shost[5] = 0;
-		}
-		break;
 	default:
 		printf("%s: carp is not supported for the %d interface type\n",
 		    ifp->if_xname, ifp->if_type);
@@ -1732,7 +1720,6 @@ carp_ioctl(struct ifreq *ifr, u_long cmd, struct threa
 	case IFT_L2VLAN:
 	case IFT_BRIDGE:
 	case IFT_FDDI:
-	case IFT_ISO88025:
 		break;
 	default:
 		error = EOPNOTSUPP;

Modified: head/sys/netinet6/in6.c
==============================================================================
--- head/sys/netinet6/in6.c	Wed Mar 28 23:17:29 2018	(r331713)
+++ head/sys/netinet6/in6.c	Wed Mar 28 23:33:26 2018	(r331714)
@@ -1971,8 +1971,6 @@ in6_if2idlen(struct ifnet *ifp)
 		return (64);
 	case IFT_FDDI:		/* RFC2467 */
 		return (64);
-	case IFT_ISO88025:	/* RFC2470 (IPv6 over Token Ring) */
-		return (64);
 	case IFT_PPP:		/* RFC2472 */
 		return (64);
 	case IFT_ARCNET:	/* RFC2497 */

Modified: head/sys/netinet6/in6_ifattach.c
==============================================================================
--- head/sys/netinet6/in6_ifattach.c	Wed Mar 28 23:17:29 2018	(r331713)
+++ head/sys/netinet6/in6_ifattach.c	Wed Mar 28 23:33:26 2018	(r331714)
@@ -275,7 +275,6 @@ found:
 	case IFT_ETHER:
 	case IFT_L2VLAN:
 	case IFT_FDDI:
-	case IFT_ISO88025:
 	case IFT_ATM:
 	case IFT_IEEE1394:
 		/* IEEE802/EUI64 cases - what others? */

Modified: head/sys/netinet6/nd6.c
==============================================================================
--- head/sys/netinet6/nd6.c	Wed Mar 28 23:17:29 2018	(r331713)
+++ head/sys/netinet6/nd6.c	Wed Mar 28 23:33:26 2018	(r331714)
@@ -61,7 +61,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -344,9 +343,6 @@ nd6_setmtu0(struct ifnet *ifp, struct nd_ifinfo *ndi)
 	case IFT_FDDI:
 		ndi->maxmtu = MIN(FDDIIPMTU, ifp->if_mtu); /* RFC2467 */
 		break;
-	case IFT_ISO88025:
-		 ndi->maxmtu = MIN(ISO88025_MAX_MTU, ifp->if_mtu);
-		 break;
 	default:
 		ndi->maxmtu = ifp->if_mtu;
 		break;
@@ -2279,7 +2275,6 @@ nd6_resolve(struct ifnet *ifp, int is_gw, struct mbuf 
 		case IFT_FDDI:
 		case IFT_L2VLAN:
 		case IFT_BRIDGE:
-		case IFT_ISO88025:
 			ETHER_MAP_IPV6_MULTICAST(&dst6->sin6_addr,
 						 desten);
 			return (0);

Modified: head/sys/netinet6/nd6_nbr.c
==============================================================================
--- head/sys/netinet6/nd6_nbr.c	Wed Mar 28 23:17:29 2018	(r331713)
+++ head/sys/netinet6/nd6_nbr.c	Wed Mar 28 23:33:26 2018	(r331714)
@@ -1097,7 +1097,6 @@ nd6_ifptomac(struct ifnet *ifp)
 	case IFT_L2VLAN:
 	case IFT_INFINIBAND:
 	case IFT_BRIDGE:
-	case IFT_ISO88025:
 		return IF_LLADDR(ifp);
 	default:
 		return NULL;

Modified: head/sys/nfs/bootp_subr.c
==============================================================================
--- head/sys/nfs/bootp_subr.c	Wed Mar 28 23:17:29 2018	(r331713)
+++ head/sys/nfs/bootp_subr.c	Wed Mar 28 23:33:26 2018	(r331714)
@@ -1646,7 +1646,6 @@ bootpc_init(void)
 		switch (ifp->if_alloctype) {
 			case IFT_ETHER:
 			case IFT_FDDI:
-			case IFT_ISO88025:
 				break;
 			default:
 				continue;
@@ -1677,7 +1676,6 @@ retry:
 		switch (ifp->if_alloctype) {
 			case IFT_ETHER:
 			case IFT_FDDI:
-			case IFT_ISO88025:
 				break;
 			default:
 				continue;

Modified: head/usr.sbin/arp/arp.c
==============================================================================
--- head/usr.sbin/arp/arp.c	Wed Mar 28 23:17:29 2018	(r331713)
+++ head/usr.sbin/arp/arp.c	Wed Mar 28 23:33:26 2018	(r331714)
@@ -62,7 +62,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
 
 #include 
 #include 
@@ -303,7 +302,6 @@ valid_type(int type)
 	case IFT_INFINIBAND:
 	case IFT_ISO88023:
 	case IFT_ISO88024:
-	case IFT_ISO88025:
 	case IFT_L2VLAN:
 	case IFT_BRIDGE:
 		return (1);
@@ -592,9 +590,7 @@ print_entry(struct sockaddr_dl *sdl,
 {
 	const char *host;
 	struct hostent *hp;
-	struct iso88025_sockaddr_dl_data *trld;
 	struct if_nameindex *p;
-	int seg;
 
 	if (ifnameindex == NULL)
 		if ((ifnameindex = if_nameindex()) == NULL)
@@ -659,17 +655,6 @@ print_entry(struct sockaddr_dl *sdl,
 	case IFT_ETHER:
 		xo_emit(" [{:type/ethernet}]");
 		break;
-	case IFT_ISO88025:
-		xo_emit(" [{:type/token-ring}]");
-		trld = SDL_ISO88025(sdl);
-		if (trld->trld_rcf != 0) {
-			xo_emit(" rt=%x", ntohs(trld->trld_rcf));
-			for (seg = 0;
-			     seg < ((TR_RCF_RIFLEN(trld->trld_rcf) - 2 ) / 2);
-			     seg++)
-				xo_emit(":%x", ntohs(*(trld->trld_route[seg])));
-		}
-                break;
 	case IFT_FDDI:
 		xo_emit(" [{:type/fddi}]");
 		break;

From owner-svn-src-all@freebsd.org  Thu Mar 29 00:04:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8ABDDF57187;
 Thu, 29 Mar 2018 00:04:08 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3C7F66ABAD;
 Thu, 29 Mar 2018 00:04:08 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3763612123;
 Thu, 29 Mar 2018 00:04:08 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T048mg091684;
 Thu, 29 Mar 2018 00:04:08 GMT (envelope-from jhb@FreeBSD.org)
Received: (from jhb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T047UZ091682;
 Thu, 29 Mar 2018 00:04:07 GMT (envelope-from jhb@FreeBSD.org)
Message-Id: <201803290004.w2T047UZ091682@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org
 using -f
From: John Baldwin 
Date: Thu, 29 Mar 2018 00:04:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331715 - head/usr.bin/truss
X-SVN-Group: head
X-SVN-Commit-Author: jhb
X-SVN-Commit-Paths: head/usr.bin/truss
X-SVN-Commit-Revision: 331715
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 00:04:08 -0000

Author: jhb
Date: Thu Mar 29 00:04:07 2018
New Revision: 331715
URL: https://svnweb.freebsd.org/changeset/base/331715

Log:
  Rename ClouduABIFDSFlags to CloudABIFDSFlags.

Modified:
  head/usr.bin/truss/syscall.h
  head/usr.bin/truss/syscalls.c

Modified: head/usr.bin/truss/syscall.h
==============================================================================
--- head/usr.bin/truss/syscall.h	Wed Mar 28 23:33:26 2018	(r331714)
+++ head/usr.bin/truss/syscall.h	Thu Mar 29 00:04:07 2018	(r331715)
@@ -84,7 +84,7 @@ enum Argtype { None = 1, Hex, Octal, Int, UInt, LongHe
 	Ptraceop, Quotactlcmd, Reboothowto, Rtpriofunc, Schedpolicy, Schedparam,
 	PSig, Siginfo, Kevent11, Iovec, Sctpsndrcvinfo, Msghdr,
 
-	CloudABIAdvice, CloudABIClockID, ClouduABIFDSFlags,
+	CloudABIAdvice, CloudABIClockID, CloudABIFDSFlags,
 	CloudABIFDStat, CloudABIFileStat, CloudABIFileType,
 	CloudABIFSFlags, CloudABILookup, CloudABIMFlags, CloudABIMProt,
 	CloudABIMSFlags, CloudABIOFlags, CloudABISDFlags,

Modified: head/usr.bin/truss/syscalls.c
==============================================================================
--- head/usr.bin/truss/syscalls.c	Wed Mar 28 23:33:26 2018	(r331714)
+++ head/usr.bin/truss/syscalls.c	Thu Mar 29 00:04:07 2018	(r331715)
@@ -580,7 +580,7 @@ static struct syscall decoded_syscalls[] = {
 	  .args = { { Int, 0 }, { CloudABIFDStat | OUT, 1 } } },
 	{ .name = "cloudabi_sys_fd_stat_put", .ret_type = 1, .nargs = 3,
 	  .args = { { Int, 0 }, { CloudABIFDStat | IN, 1 },
-	            { ClouduABIFDSFlags, 2 } } },
+	            { CloudABIFDSFlags, 2 } } },
 	{ .name = "cloudabi_sys_fd_sync", .ret_type = 1, .nargs = 1,
 	  .args = { { Int, 0 } } },
 	{ .name = "cloudabi_sys_file_advise", .ret_type = 1, .nargs = 4,
@@ -2519,7 +2519,7 @@ print_arg(struct syscall_args *sc, unsigned long *args
 	case CloudABIClockID:
 		fputs(xlookup(cloudabi_clockid, args[sc->offset]), fp);
 		break;
-	case ClouduABIFDSFlags:
+	case CloudABIFDSFlags:
 		fputs(xlookup_bits(cloudabi_fdsflags, args[sc->offset]), fp);
 		break;
 	case CloudABIFDStat: {

From owner-svn-src-all@freebsd.org  Thu Mar 29 00:12:51 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83466F57D27;
 Thu, 29 Mar 2018 00:12:51 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3564B6B196;
 Thu, 29 Mar 2018 00:12:51 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 30262122BC;
 Thu, 29 Mar 2018 00:12:51 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T0CpsK096433;
 Thu, 29 Mar 2018 00:12:51 GMT (envelope-from jhb@FreeBSD.org)
Received: (from jhb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T0CpA4096432;
 Thu, 29 Mar 2018 00:12:51 GMT (envelope-from jhb@FreeBSD.org)
Message-Id: <201803290012.w2T0CpA4096432@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org
 using -f
From: John Baldwin 
Date: Thu, 29 Mar 2018 00:12:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331716 - head/usr.bin/truss
X-SVN-Group: head
X-SVN-Commit-Author: jhb
X-SVN-Commit-Paths: head/usr.bin/truss
X-SVN-Commit-Revision: 331716
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 00:12:51 -0000

Author: jhb
Date: Thu Mar 29 00:12:50 2018
New Revision: 331716
URL: https://svnweb.freebsd.org/changeset/base/331716

Log:
  Reformat the enum of syscall argument types.
  
  List enum values on separate lines to minimize diffs as new types are
  added.  Split the enum values up into groups and use some simple sorting
  within groups (scalar enums are sorted by size, then base, all other
  groups are generally sorted alphabetically).
  
  No functional change.

Modified:
  head/usr.bin/truss/syscall.h

Modified: head/usr.bin/truss/syscall.h
==============================================================================
--- head/usr.bin/truss/syscall.h	Thu Mar 29 00:04:07 2018	(r331715)
+++ head/usr.bin/truss/syscall.h	Thu Mar 29 00:12:50 2018	(r331716)
@@ -69,31 +69,143 @@
  * IN (meaning that the data is passed *into* the system call).
  */
 
-enum Argtype { None = 1, Hex, Octal, Int, UInt, LongHex, Name, Ptr, Stat, Stat11, Ioctl,
-	Quad, Signal, Sockaddr, StringArray, Timespec, Timeval, Itimerval,
-	Pollfd, Fd_set, Sigaction, Fcntl, Mprot, Mmapflags, Whence, Readlinkres,
-	Sigset, Sigprocmask, StatFs, Kevent, Sockdomain, Socktype, Open,
-	Fcntlflag, Rusage, RusageWho, BinString, Shutdown, Resource, Rlimit,
-	Timeval2, Pathconf, Rforkflags, ExitStatus, Waitoptions, Idtype, Procctl,
-	LinuxSockArgs, Umtxop, Atfd, Atflags, Timespec2, Accessmode, Long,
-	Sysarch, ExecArgs, ExecEnv, PipeFds, QuadHex, Utrace, IntArray, Pipe2,
-	CapFcntlRights, Fadvice, FileFlags, Flockop, Getfsstatmode, Kldsymcmd,
-	Kldunloadflags, Sizet, Madvice, Socklent, Sockprotocol, Sockoptlevel,
-	Sockoptname, Msgflags, CapRights, PUInt, PQuadHex, Acltype,
-	Extattrnamespace, Minherit, Mlockall, Mountflags, Msync, Priowhich,
-	Ptraceop, Quotactlcmd, Reboothowto, Rtpriofunc, Schedpolicy, Schedparam,
-	PSig, Siginfo, Kevent11, Iovec, Sctpsndrcvinfo, Msghdr,
+enum Argtype {
+	None = 1,
 
-	CloudABIAdvice, CloudABIClockID, CloudABIFDSFlags,
-	CloudABIFDStat, CloudABIFileStat, CloudABIFileType,
-	CloudABIFSFlags, CloudABILookup, CloudABIMFlags, CloudABIMProt,
-	CloudABIMSFlags, CloudABIOFlags, CloudABISDFlags,
-	CloudABISignal, CloudABISockStat, CloudABISSFlags,
-	CloudABITimestamp, CloudABIULFlags, CloudABIWhence };
+	/* Scalar integers. */
+	Socklent,
+	Octal,
+	Int,
+	UInt,
+	Hex,
+	Long,
+	LongHex,
+	Sizet,
+	Quad,
+	QuadHex,
 
+	/* Encoded scalar values. */
+	Accessmode,
+	Acltype,
+	Atfd,
+	Atflags,
+	CapFcntlRights,
+	Extattrnamespace,
+	Fadvice,
+	Fcntl,
+	Fcntlflag,
+	FileFlags,
+	Flockop,
+	Getfsstatmode,
+	Idtype,
+	Ioctl,
+	Kldsymcmd,
+	Kldunloadflags,
+	Madvice,
+	Minherit,
+	Msgflags,
+	Mlockall,
+	Mmapflags,
+	Mountflags,
+	Mprot,
+	Msync,
+	Open,
+	Pathconf,
+	Pipe2,
+	Procctl,
+	Priowhich,
+	Ptraceop,
+	Quotactlcmd,
+	Reboothowto,
+	Resource,
+	Rforkflags,
+	Rtpriofunc,
+	RusageWho,
+	Schedpolicy,
+	Shutdown,
+	Signal,
+	Sigprocmask,
+	Sockdomain,
+	Sockoptlevel,
+	Sockoptname,
+	Sockprotocol,
+	Socktype,
+	Sysarch,
+	Umtxop,
+	Waitoptions,
+	Whence,
+
+	/* Pointers to non-structures. */
+	Ptr,
+	BinString,
+	CapRights,
+	ExecArgs,
+	ExecEnv,
+	ExitStatus,
+	Fd_set,
+	IntArray,
+	Iovec,
+	Name,
+	PipeFds,
+	PSig,
+	PQuadHex,
+	PUInt,
+	Readlinkres,
+	StringArray,
+
+	/* Pointers to structures. */
+	Itimerval,
+	Kevent,
+	Kevent11,
+	LinuxSockArgs,
+	Msghdr,
+	Pollfd,
+	Rlimit,
+	Rusage,
+	Schedparam,
+	Sctpsndrcvinfo,
+	Sigaction,
+	Siginfo,
+	Sigset,
+	Sockaddr,
+	Stat,
+	Stat11,
+	StatFs,
+	Timespec,
+	Timespec2,
+	Timeval,
+	Timeval2,
+	Utrace,
+
+	CloudABIAdvice,
+	CloudABIClockID,
+	CloudABIFDSFlags,
+	CloudABIFDStat,
+	CloudABIFileStat,
+	CloudABIFileType,
+	CloudABIFSFlags,
+	CloudABILookup,
+	CloudABIMFlags,
+	CloudABIMProt,
+	CloudABIMSFlags,
+	CloudABIOFlags,
+	CloudABISDFlags,
+	CloudABISignal,
+	CloudABISockStat,
+	CloudABISSFlags,
+	CloudABITimestamp,
+	CloudABIULFlags,
+	CloudABIWhence,
+
+	MAX_ARG_TYPE,
+};
+
 #define	ARG_MASK	0xff
 #define	OUT	0x100
 #define	IN	/*0x20*/0
+
+_Static_assert(ARG_MASK > MAX_ARG_TYPE,
+    "ARG_MASK overlaps with Argtype values");
 
 struct syscall_args {
 	enum Argtype type;

From owner-svn-src-all@freebsd.org  Thu Mar 29 00:42:45 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9868CF5B262;
 Thu, 29 Mar 2018 00:42:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 451776C4E3;
 Thu, 29 Mar 2018 00:42:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3D97112788;
 Thu, 29 Mar 2018 00:42:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T0gjCZ011936;
 Thu, 29 Mar 2018 00:42:45 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T0gj8H011935;
 Thu, 29 Mar 2018 00:42:45 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201803290042.w2T0gj8H011935@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber 
Date: Thu, 29 Mar 2018 00:42:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331717 - in stable: 10/release/tools 11/release/tools
X-SVN-Group: stable-10
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/release/tools 11/release/tools
X-SVN-Commit-Revision: 331717
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 00:42:45 -0000

Author: gjb
Date: Thu Mar 29 00:42:44 2018
New Revision: 331717
URL: https://svnweb.freebsd.org/changeset/base/331717

Log:
  MFC r331559:
   Escape trailing newlines in a long variable list for consistency.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/10/release/tools/gce.conf
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/release/tools/gce.conf
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/release/tools/gce.conf
==============================================================================
--- stable/10/release/tools/gce.conf	Thu Mar 29 00:12:50 2018	(r331716)
+++ stable/10/release/tools/gce.conf	Thu Mar 29 00:42:44 2018	(r331717)
@@ -11,8 +11,8 @@ export VM_EXTRA_PACKAGES="firstboot-freebsd-update fir
 # Set to a list of third-party software to enable in rc.conf(5).
 export VM_RC_LIST="ntpd sshd firstboot_growfs \
 	firstboot_pkgs firstboot_freebsd_update google_startup \
-	google_accounts_daemon google_clock_skew_daemon
-	google_instance_setup google_ip_forwarding_daemon
+	google_accounts_daemon google_clock_skew_daemon \
+	google_instance_setup google_ip_forwarding_daemon \
 	google_network_setup"
 
 vm_extra_install_base() {

From owner-svn-src-all@freebsd.org  Thu Mar 29 00:42:45 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C9F2DF5B266;
 Thu, 29 Mar 2018 00:42:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 775D16C4E4;
 Thu, 29 Mar 2018 00:42:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 71D2012789;
 Thu, 29 Mar 2018 00:42:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T0gjXu011942;
 Thu, 29 Mar 2018 00:42:45 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T0gjS4011941;
 Thu, 29 Mar 2018 00:42:45 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201803290042.w2T0gjS4011941@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber 
Date: Thu, 29 Mar 2018 00:42:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331717 - in stable: 10/release/tools 11/release/tools
X-SVN-Group: stable-11
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/release/tools 11/release/tools
X-SVN-Commit-Revision: 331717
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 00:42:46 -0000

Author: gjb
Date: Thu Mar 29 00:42:44 2018
New Revision: 331717
URL: https://svnweb.freebsd.org/changeset/base/331717

Log:
  MFC r331559:
   Escape trailing newlines in a long variable list for consistency.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/release/tools/gce.conf
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/release/tools/gce.conf
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/release/tools/gce.conf
==============================================================================
--- stable/11/release/tools/gce.conf	Thu Mar 29 00:12:50 2018	(r331716)
+++ stable/11/release/tools/gce.conf	Thu Mar 29 00:42:44 2018	(r331717)
@@ -11,8 +11,8 @@ export VM_EXTRA_PACKAGES="firstboot-freebsd-update fir
 # Set to a list of third-party software to enable in rc.conf(5).
 export VM_RC_LIST="ntpd sshd firstboot_growfs \
 	firstboot_pkgs firstboot_freebsd_update google_startup \
-	google_accounts_daemon google_clock_skew_daemon
-	google_instance_setup google_ip_forwarding_daemon
+	google_accounts_daemon google_clock_skew_daemon \
+	google_instance_setup google_ip_forwarding_daemon \
 	google_network_setup"
 
 vm_extra_install_base() {

From owner-svn-src-all@freebsd.org  Thu Mar 29 00:55:12 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A9AEF5C37F;
 Thu, 29 Mar 2018 00:55:12 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3DF036CFE2;
 Thu, 29 Mar 2018 00:55:12 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3842B1291A;
 Thu, 29 Mar 2018 00:55:12 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T0tBFV017468;
 Thu, 29 Mar 2018 00:55:11 GMT (envelope-from kevans@FreeBSD.org)
Received: (from kevans@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T0tBhU017467;
 Thu, 29 Mar 2018 00:55:11 GMT (envelope-from kevans@FreeBSD.org)
Message-Id: <201803290055.w2T0tBhU017467@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kevans set sender to
 kevans@FreeBSD.org using -f
From: Kyle Evans 
Date: Thu, 29 Mar 2018 00:55:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331718 - head/stand/i386/libi386
X-SVN-Group: head
X-SVN-Commit-Author: kevans
X-SVN-Commit-Paths: head/stand/i386/libi386
X-SVN-Commit-Revision: 331718
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 00:55:12 -0000

Author: kevans
Date: Thu Mar 29 00:55:11 2018
New Revision: 331718
URL: https://svnweb.freebsd.org/changeset/base/331718

Log:
  stand: Add workaround for HP BIOS issues
  
  hrs@ and kuriyama@ have found that on some HP BIOS, a system will fail to
  boot immediately after installation with the claim that it can't work out
  which disk they are booting from.
  
  They tracked it down to a buffer overrun, and found that it could be
  alleviated by doing a dummy read before-hand.
  
  Submitted by:	kuriyama
  MFC after:	1 week
  Differential Revision:	https://reviews.freebsd.org/D14341

Modified:
  head/stand/i386/libi386/biosdisk.c

Modified: head/stand/i386/libi386/biosdisk.c
==============================================================================
--- head/stand/i386/libi386/biosdisk.c	Thu Mar 29 00:42:44 2018	(r331717)
+++ head/stand/i386/libi386/biosdisk.c	Thu Mar 29 00:55:11 2018	(r331718)
@@ -122,6 +122,8 @@ static int nbdinfo = 0;
 
 #define	BD(dev)		(bdinfo[(dev)->dd.d_unit])
 
+static void bd_io_workaround(struct disk_devdesc *dev);
+
 static int bd_read(struct disk_devdesc *dev, daddr_t dblk, int blks,
     caddr_t dest);
 static int bd_write(struct disk_devdesc *dev, daddr_t dblk, int blks,
@@ -724,6 +726,15 @@ bd_chs_io(struct disk_devdesc *dev, daddr_t dblk, int 
     return (0);
 }
 
+static void
+bd_io_workaround(struct disk_devdesc *dev)
+{
+	uint8_t buf[8 * 1024];
+
+	bd_edd_io(dev, 0xffffffff, 1, (caddr_t)buf, 0);
+}
+
+
 static int
 bd_io(struct disk_devdesc *dev, daddr_t dblk, int blks, caddr_t dest, int write)
 {
@@ -736,6 +747,17 @@ bd_io(struct disk_devdesc *dev, daddr_t dblk, int blks
 
     resid = blks;
     p = dest;
+
+    /*
+     * Workaround for a problem with some HP ProLiant BIOS failing to work out
+     * the boot disk after installation. hrs and kuriyama discovered this
+     * problem with an HP ProLiant DL320e Gen 8 with a 3TB HDD, and discovered
+     * that an int13h call seems to cause a buffer overrun in the bios. The
+     * problem is alleviated by doing an extra read before the buggy read. It
+     * is not immediately known whether other models are similarly affected.
+     */
+    if (dblk >= 0x100000000)
+	bd_io_workaround(dev);
 
     /* Decide whether we have to bounce */
     if (VTOP(dest) >> 20 != 0 || (BD(dev).bd_unit < 0x80 &&

From owner-svn-src-all@freebsd.org  Thu Mar 29 01:04:34 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 28CDDF5E005;
 Thu, 29 Mar 2018 01:04:34 +0000 (UTC)
 (envelope-from allanjude@freebsd.org)
Received: from mx1.scaleengine.net (mx1.scaleengine.net [209.51.186.6])
 (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 BE8526D706;
 Thu, 29 Mar 2018 01:04:33 +0000 (UTC)
 (envelope-from allanjude@freebsd.org)
Received: from [10.1.1.2] (Seawolf.HML3.ScaleEngine.net [209.51.186.28])
 (Authenticated sender: allanjude.freebsd@scaleengine.com)
 by mx1.scaleengine.net (Postfix) with ESMTPSA id DBDCB149B2;
 Thu, 29 Mar 2018 01:04:26 +0000 (UTC)
Subject: Re: svn commit: r330897 - in stable/11: bin/cat bin/chflags bin/chmod
 bin/cp bin/date bin/dd bin/df bin/domainname bin/echo bin/ed
 bin/hostname
 bin/kill bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bi...
To: Oliver Pinter ,
 Eitan Adler , cem@freebsd.org
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
References: <201803140319.w2E3JuGP036341@repo.freebsd.org>
 
From: Allan Jude 
Message-ID: 
Date: Wed, 28 Mar 2018 21:04:28 -0400
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
 Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: 
Content-Type: multipart/signed; micalg=pgp-sha1;
 protocol="application/pgp-signature";
 boundary="s0jCILDPoFQEedGZAIrY7pdUcAe4UTApj"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 01:04:34 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--s0jCILDPoFQEedGZAIrY7pdUcAe4UTApj
Content-Type: multipart/mixed; boundary="yQGqAe4yGmYIJgHwBJkUOthxRRZRt8KEB";
 protected-headers="v1"
From: Allan Jude 
To: Oliver Pinter ,
 Eitan Adler , cem@freebsd.org
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Message-ID: 
Subject: Re: svn commit: r330897 - in stable/11: bin/cat bin/chflags bin/chmod
 bin/cp bin/date bin/dd bin/df bin/domainname bin/echo bin/ed bin/hostname
 bin/kill bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bi...
References: <201803140319.w2E3JuGP036341@repo.freebsd.org>
 
In-Reply-To: 

--yQGqAe4yGmYIJgHwBJkUOthxRRZRt8KEB
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable

On 2018-03-28 14:15, Oliver Pinter wrote:
> Hi!
>=20
> This part of the MFC is wrong:
>=20
> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_change=
s=3D0&r1=3D330897&r2=3D330896&pathrev=3D330897
>=20
> Could you please MFC back the other random related changes too? Some
> of them made by cem@.
>=20
> On 3/14/18, Eitan Adler  wrote:
>> Author: eadler
>> Date: Wed Mar 14 03:19:51 2018
>> New Revision: 330897
>> URL: https://svnweb.freebsd.org/changeset/base/330897
>>
>> Log:
>>   Partial merge of the SPDX changes
>>
>>   These changes are incomplete but are making it difficult
>>   to determine what other changes can/should be merged.
>>
>>   No objections from:	pfg
>>
Am I missing something? If this MFC was supposed to be of the SPDX
license tagging, why does it have any functional changes?

Especially changes to random(4)?


--=20
Allan Jude


--yQGqAe4yGmYIJgHwBJkUOthxRRZRt8KEB--

--s0jCILDPoFQEedGZAIrY7pdUcAe4UTApj
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)

iQIcBAEBAgAGBQJavDuiAAoJEBmVNT4SmAt+uR0P/RB3NFoHNz6KVtcQn/2oiQ5s
/pZ2yw3gZvq4WBgl6dCuYDM0cK/o/A7HIB9291CB/xzihjq3e+X6yCIKY0QLqAIv
/Fp2CHguUYG/EVVyN+2te03k639joNx3hlIvoAzZ/zmvQE+MpiL73CwUbUGa9ug3
1zt4fDCvMr+NSCtE3xJ117tHMufGj/Z9tD6ARlexdcMcBzh/e2hl2kcnDFyCIfh1
QZzyAjs3H1NFYuEAtby8qwXw4wfDjXoTKQ0z5KQKHynvKY1AbSHTaaFkzl6eN65l
c8WNOWEHC8v9hjJYIK/QJKUhUGj+Xn9u/OBSh/rTLm9SF6+JJ+30l4W05NrN5DCv
zPvoMl9Zz/yEFu3Htus4Xn8sUc6KT2l7vUq7GuG/6ogJL/PzZvmmUwa/bHgbeHNr
O7sSU2+LcwbghdHLeZe6P5xmjg0l2S3A+yZUVV5J8gbveOc1W1qD0gMV0PJg2/m8
DIS1G23GGGRqyA48qFhAKCdEFij+hyTUJ+y3IvH6cLLMUhbdwpOnglbfSh4sXFXP
XrI/jLRchXxJ3ARjmcKC9dTayjz87Z66JPmt5AD9Ws3/5Ay6Ztrpcz0cOJT5x3Zg
ZIjJmbWYwl6oAW5wDJiqM06HV5CMlYw+jbq7ok/qe3nLi10Gxu/dTfRFzOALEyb8
s39IqyXhKA+8Gq5Crj3V
=XK3K
-----END PGP SIGNATURE-----

--s0jCILDPoFQEedGZAIrY7pdUcAe4UTApj--

From owner-svn-src-all@freebsd.org  Thu Mar 29 01:11:47 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 070EEF5EC34;
 Thu, 29 Mar 2018 01:11:47 +0000 (UTC)
 (envelope-from byond.lenox@gmail.com)
Received: from mail-lf0-f46.google.com (mail-lf0-f46.google.com
 [209.85.215.46])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6C1A66DC81;
 Thu, 29 Mar 2018 01:11:46 +0000 (UTC)
 (envelope-from byond.lenox@gmail.com)
Received: by mail-lf0-f46.google.com with SMTP id o102-v6so6049222lfg.8;
 Wed, 28 Mar 2018 18:11:46 -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:in-reply-to:references:from:date
 :message-id:subject:to:cc;
 bh=XXe95vZDpk0svKwJ91FeHu1zD3ihGVLHXeh46sPc8OM=;
 b=bF+AXfqn4W4lxa7R9t8aWBUQNJ3mbt3OFwkWuyJPzQRvCyeeJwzIr1ZSDM4/7kjRRL
 K1dzCraf0vErwjCvvDmxi3Xqa5IcJd+sj3CAKdRvKYhrX3riTpbIRYLcNN8PwxBt+nvm
 ASL5lYIQ6k2NBZhvw0/9Y/O8ZLerbRMUHXQ7DFkaJr0xVdJQ02vGWCBySqIf/p2gJXLY
 ty8jtNo9IEfvak2dK7SSCyXfsHUs4RTg0Vj1pZiyGHdXDkuuYyU9oA2dXw63yoml0Xtx
 4N3ItMx7WtgV4qDyCMS3MaAcCR1AmHWgvQqCxI6nMbNmQgtdTWDCWssLa1D6WueHfycg
 vkFA==
X-Gm-Message-State: AElRT7G6LPr6krxhB7oT4uB4nMB+VZaH4YUE5GGTogzb9yDJVKJ4jPhB
 zWfl7V81KFLC47BshPDYwvBBzmte
X-Google-Smtp-Source: AIpwx4+nPohiuUvniPUuio5oD7vzgBrph8E3YQ4OVPS7z3dSbXgZedtj97CFV3fRIwwLnEm1TpVH9Q==
X-Received: by 10.46.9.65 with SMTP id 62mr3802365ljj.33.1522285898950;
 Wed, 28 Mar 2018 18:11:38 -0700 (PDT)
Received: from mail-lf0-f46.google.com (mail-lf0-f46.google.com.
 [209.85.215.46])
 by smtp.gmail.com with ESMTPSA id 17sm702314ljr.66.2018.03.28.18.11.38
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 28 Mar 2018 18:11:38 -0700 (PDT)
Received: by mail-lf0-f46.google.com with SMTP id e5-v6so6060220lfb.7;
 Wed, 28 Mar 2018 18:11:38 -0700 (PDT)
X-Received: by 2002:a19:7904:: with SMTP id
 u4-v6mr3929708lfc.129.1522285898729; 
 Wed, 28 Mar 2018 18:11:38 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.46.129.90 with HTTP; Wed, 28 Mar 2018 18:11:18 -0700 (PDT)
In-Reply-To: 
References: <201803140319.w2E3JuGP036341@repo.freebsd.org>
 
 
From: Kyle Evans 
Date: Wed, 28 Mar 2018 20:11:18 -0500
X-Gmail-Original-Message-ID: 
Message-ID: 
Subject: Re: svn commit: r330897 - in stable/11: bin/cat bin/chflags bin/chmod
 bin/cp bin/date bin/dd bin/df bin/domainname bin/echo bin/ed
 bin/hostname
 bin/kill bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bi...
To: Allan Jude 
Cc: Oliver Pinter ,
 Eitan Adler , 
 src-committers , svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 01:11:47 -0000

On Wed, Mar 28, 2018 at 8:04 PM, Allan Jude  wrote:
> On 2018-03-28 14:15, Oliver Pinter wrote:
>> Hi!
>>
>> This part of the MFC is wrong:
>>
>> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
>>
>> Could you please MFC back the other random related changes too? Some
>> of them made by cem@.
>>
>> On 3/14/18, Eitan Adler  wrote:
>>> Author: eadler
>>> Date: Wed Mar 14 03:19:51 2018
>>> New Revision: 330897
>>> URL: https://svnweb.freebsd.org/changeset/base/330897
>>>
>>> Log:
>>>   Partial merge of the SPDX changes
>>>
>>>   These changes are incomplete but are making it difficult
>>>   to determine what other changes can/should be merged.
>>>
>>>   No objections from:        pfg
>>>
> Am I missing something? If this MFC was supposed to be of the SPDX
> license tagging, why does it have any functional changes?
>
> Especially changes to random(4)?

For extra fun, it also had some ARM driver changes that had broken the
VERSATILE kernels, as I recall. gonzo@ took care of MFC'ing the other
parts needed for those, though. It does make me wonder what else was
overlooked, but the commit was large enough that it's not fun to
glance over.

From owner-svn-src-all@freebsd.org  Thu Mar 29 01:12:38 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3B6F3F5EDCD
 for ;
 Thu, 29 Mar 2018 01:12:38 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: from mail-yb0-x22d.google.com (mail-yb0-x22d.google.com
 [IPv6:2607:f8b0:4002:c09::22d])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 598BF6DF88
 for ; Thu, 29 Mar 2018 01:12:37 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: by mail-yb0-x22d.google.com with SMTP id e3-v6so1467645ybk.1
 for ; Wed, 28 Mar 2018 18:12:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=eitanadler.com; s=0xdeadbeef;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=S7KGwFJArH2O26+jC+XjRuiCIgydaPpVQQ+I2Wkp8rU=;
 b=VVVLucoFwO0BxaqAXvDjBnjjXVN+nFm0u9x/qP2DQiIQb7OY1iS8izBzvW+TPvoiz+
 Hxk5Z0dRJ9PB5+bCUKYKkAwJSBXPGMOoNichQ+WYxRQuQe4GcQzlsQSsIXF8QO/e5P+F
 D/PnCQybdFp2w6JyXXSax2gWYTWquKHgjciMg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc;
 bh=S7KGwFJArH2O26+jC+XjRuiCIgydaPpVQQ+I2Wkp8rU=;
 b=X8a87OYoqznQiDjVVCoP66c4IFHSwcWAWyo4SoNxc5h7z+GH4jDH7+W/f/nE8e8qsg
 0sDle7FwWvKiGHLCrjjgqtzqyIvZErxgBJd7yJr5SV0oRckKonvdAQS4DcX2xG5MCmqo
 z9ORktu6kJZ5fHbQUhe+Qb31thboTJByZjao+szf+g/ZPBMIZK1YRtUew59y/Z3vvQ9y
 ziVOs39ZnmJaXTOuTUXSwwshDHkRaeqmwTfmTTTe/bxs2q/IXOLrxQ46FznIT0sqJgah
 GcQfJ20vrw5Oa+oQ0uiuwbsrdtazAjjggyKEAGLsX3flaBR+pYDGigGaoCwRPEQCUeL0
 QC9Q==
X-Gm-Message-State: AElRT7Hwc7OBKPfu5BQ1T36qjeMJfonqRLGUir16p0R0NDXPfmcQhDp1
 mhDUb4jS6jVCttR86eVH+7wq37YG/qFvGmVU/527DQ==
X-Google-Smtp-Source: AIpwx4899V1fKsyaPTMngDJefMptgO2cEkJYvEIQmB1IWhw4ZANhUjux9t2m5Jx9/xKmIUkwNtt6tF1KvqLhdaIP5jM=
X-Received: by 2002:a25:40ca:: with SMTP id
 n193-v6mr3634765yba.89.1522285956562; 
 Wed, 28 Mar 2018 18:12:36 -0700 (PDT)
MIME-Version: 1.0
Sender: lists@eitanadler.com
Received: by 2002:a5b:990:0:0:0:0:0 with HTTP;
 Wed, 28 Mar 2018 18:12:06 -0700 (PDT)
In-Reply-To: 
References: <201803140319.w2E3JuGP036341@repo.freebsd.org>
 
 
From: Eitan Adler 
Date: Wed, 28 Mar 2018 18:12:06 -0700
X-Google-Sender-Auth: Zdy8-Pzb4N2qrxxERuPqT5f60IY
Message-ID: 
Subject: Re: svn commit: r330897 - in stable/11: bin/cat bin/chflags bin/chmod
 bin/cp bin/date bin/dd bin/df bin/domainname bin/echo bin/ed
 bin/hostname
 bin/kill bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bi...
To: Allan Jude 
Cc: Oliver Pinter ,
 "Conrad E. Meyer" , 
 src-committers , svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 01:12:38 -0000

On 28 March 2018 at 18:04, Allan Jude  wrote:
> On 2018-03-28 14:15, Oliver Pinter wrote:
>> Hi!
>>
>> This part of the MFC is wrong:
>>
>> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
>>
>> Could you please MFC back the other random related changes too? Some
>> of them made by cem@.
>>
>> On 3/14/18, Eitan Adler  wrote:
>>> Author: eadler
>>> Date: Wed Mar 14 03:19:51 2018
>>> New Revision: 330897
>>> URL: https://svnweb.freebsd.org/changeset/base/330897
>>>
>>> Log:
>>>   Partial merge of the SPDX changes
>>>
>>>   These changes are incomplete but are making it difficult
>>>   to determine what other changes can/should be merged.
>>>
>>>   No objections from:        pfg
>>>
> Am I missing something? If this MFC was supposed to be of the SPDX
> license tagging, why does it have any functional changes?
>
> Especially changes to random(4)?

This was my failure. I only spot checked & compile-checked the diff
since I expected all changes to be comments/SPDX.

However, I must have gotten carried away and included a few too many
revisions. Unfortunately some people have already merged fixes to my
failure and thus this can't be reverted as is without also reverting
those fixes.

That said, I should do that since this commit message is utterly wrong.


-- 
Eitan Adler
Source, Ports, Doc committer
Bugmeister, Ports Security teams

From owner-svn-src-all@freebsd.org  Thu Mar 29 01:17:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3F449F5F574;
 Thu, 29 Mar 2018 01:17:08 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 857036E40D;
 Thu, 29 Mar 2018 01:17:07 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2T1H3Iu059993;
 Wed, 28 Mar 2018 18:17:03 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2T1H3lt059992;
 Wed, 28 Mar 2018 18:17:03 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803290117.w2T1H3lt059992@pdx.rh.CN85.dnsmgr.net>
Subject: Re: svn commit: r330897 - in stable/11: bin/cat bin/chflags bin/chmod
 bin/cp bin/date bin/dd bin/df bin/domainname bin/echo bin/ed
 bin/hostname bin/kill
 bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bi...
In-Reply-To: 
To: Kyle Evans 
Date: Wed, 28 Mar 2018 18:17:03 -0700 (PDT)
CC: Allan Jude ,
 Oliver Pinter ,
 Eitan Adler ,
 src-committers , svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 01:17:08 -0000

[ Charset UTF-8 unsupported, converting... ]
> On Wed, Mar 28, 2018 at 8:04 PM, Allan Jude  wrote:
> > On 2018-03-28 14:15, Oliver Pinter wrote:
> >> Hi!
> >>
> >> This part of the MFC is wrong:
> >>
> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
> >>
> >> Could you please MFC back the other random related changes too? Some
> >> of them made by cem@.
> >>
> >> On 3/14/18, Eitan Adler  wrote:
> >>> Author: eadler
> >>> Date: Wed Mar 14 03:19:51 2018
> >>> New Revision: 330897
> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
> >>>
> >>> Log:
> >>>   Partial merge of the SPDX changes
> >>>
> >>>   These changes are incomplete but are making it difficult
> >>>   to determine what other changes can/should be merged.
> >>>
> >>>   No objections from:        pfg
> >>>
> > Am I missing something? If this MFC was supposed to be of the SPDX
> > license tagging, why does it have any functional changes?
> >
> > Especially changes to random(4)?
> 
> For extra fun, it also had some ARM driver changes that had broken the
> VERSATILE kernels, as I recall. gonzo@ took care of MFC'ing the other
> parts needed for those, though. It does make me wonder what else was
> overlooked, but the commit was large enough that it's not fun to
> glance over.

I have an audit report coming out in a few minutes that makes it
clear what the non SPDX bits are, I belive we can clean this up
with a few rXXXXXX reverts in short order.


-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Thu Mar 29 01:20:59 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 00F08F5FD72;
 Thu, 29 Mar 2018 01:20:59 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id A5F866E7C0;
 Thu, 29 Mar 2018 01:20:58 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A080D12CD6;
 Thu, 29 Mar 2018 01:20:58 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T1KwKJ030151;
 Thu, 29 Mar 2018 01:20:58 GMT (envelope-from np@FreeBSD.org)
Received: (from np@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T1KwIn030148;
 Thu, 29 Mar 2018 01:20:58 GMT (envelope-from np@FreeBSD.org)
Message-Id: <201803290120.w2T1KwIn030148@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org
 using -f
From: Navdeep Parhar 
Date: Thu, 29 Mar 2018 01:20:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331719 - in stable/10/sys: conf dev/cxgbe/firmware
 dev/cxgbe/iw_cxgbe modules/cxgbe/t4_firmware modules/cxgbe/t5_firmware
 modules/cxgbe/t6_firmware
X-SVN-Group: stable-10
X-SVN-Commit-Author: np
X-SVN-Commit-Paths: in stable/10/sys: conf dev/cxgbe/firmware
 dev/cxgbe/iw_cxgbe modules/cxgbe/t4_firmware modules/cxgbe/t5_firmware
 modules/cxgbe/t6_firmware
X-SVN-Commit-Revision: 331719
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 01:20:59 -0000

Author: np
Date: Thu Mar 29 01:20:58 2018
New Revision: 331719
URL: https://svnweb.freebsd.org/changeset/base/331719

Log:
  MFC r323006 and r324386.
  
  This brings the cxgbe(4) firmware up to 1.16.63.0.
  
  Sponsored by:	Chelsio Communications

Added:
  stable/10/sys/dev/cxgbe/firmware/t4fw-1.16.63.0.bin.uu
     - copied unchanged from r324386, head/sys/dev/cxgbe/firmware/t4fw-1.16.63.0.bin.uu
  stable/10/sys/dev/cxgbe/firmware/t5fw-1.16.63.0.bin.uu
     - copied unchanged from r324386, head/sys/dev/cxgbe/firmware/t5fw-1.16.63.0.bin.uu
  stable/10/sys/dev/cxgbe/firmware/t6fw-1.16.63.0.bin.uu
     - copied unchanged from r324386, head/sys/dev/cxgbe/firmware/t6fw-1.16.63.0.bin.uu
Deleted:
  stable/10/sys/dev/cxgbe/firmware/t4fw-1.16.45.0.bin.uu
  stable/10/sys/dev/cxgbe/firmware/t5fw-1.16.45.0.bin.uu
  stable/10/sys/dev/cxgbe/firmware/t6fw-1.16.45.0.bin.uu
Modified:
  stable/10/sys/conf/files
  stable/10/sys/dev/cxgbe/firmware/t4fw_interface.h
  stable/10/sys/dev/cxgbe/firmware/t6fw_cfg.txt
  stable/10/sys/dev/cxgbe/firmware/t6fw_cfg_uwire.txt
  stable/10/sys/dev/cxgbe/iw_cxgbe/qp.c
  stable/10/sys/modules/cxgbe/t4_firmware/Makefile
  stable/10/sys/modules/cxgbe/t5_firmware/Makefile
  stable/10/sys/modules/cxgbe/t6_firmware/Makefile
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/conf/files
==============================================================================
--- stable/10/sys/conf/files	Thu Mar 29 00:55:11 2018	(r331718)
+++ stable/10/sys/conf/files	Thu Mar 29 01:20:58 2018	(r331719)
@@ -1195,7 +1195,7 @@ t4fw.fwo		optional cxgbe					\
 	no-implicit-rule						\
 	clean		"t4fw.fwo"
 t4fw.fw			optional cxgbe					\
-	dependency	"$S/dev/cxgbe/firmware/t4fw-1.16.45.0.bin.uu"	\
+	dependency	"$S/dev/cxgbe/firmware/t4fw-1.16.63.0.bin.uu"	\
 	compile-with	"${NORMAL_FW}"					\
 	no-obj no-implicit-rule						\
 	clean		"t4fw.fw"
@@ -1219,7 +1219,7 @@ t5fw.fwo		optional cxgbe					\
 	no-implicit-rule						\
 	clean		"t5fw.fwo"
 t5fw.fw			optional cxgbe					\
-	dependency	"$S/dev/cxgbe/firmware/t5fw-1.16.45.0.bin.uu"	\
+	dependency	"$S/dev/cxgbe/firmware/t5fw-1.16.63.0.bin.uu"	\
 	compile-with	"${NORMAL_FW}"					\
 	no-obj no-implicit-rule						\
 	clean		"t5fw.fw"
@@ -1243,7 +1243,7 @@ t6fw.fwo		optional cxgbe					\
 	no-implicit-rule						\
 	clean		"t6fw.fwo"
 t6fw.fw			optional cxgbe					\
-	dependency	"$S/dev/cxgbe/firmware/t6fw-1.16.45.0.bin.uu"	\
+	dependency	"$S/dev/cxgbe/firmware/t6fw-1.16.63.0.bin.uu"	\
 	compile-with	"${NORMAL_FW}"					\
 	no-obj no-implicit-rule						\
 	clean		"t6fw.fw"

Copied: stable/10/sys/dev/cxgbe/firmware/t4fw-1.16.63.0.bin.uu (from r324386, head/sys/dev/cxgbe/firmware/t4fw-1.16.63.0.bin.uu)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/sys/dev/cxgbe/firmware/t4fw-1.16.63.0.bin.uu	Thu Mar 29 01:20:58 2018	(r331719, copy of r324386, head/sys/dev/cxgbe/firmware/t4fw-1.16.63.0.bin.uu)
@@ -0,0 +1,9567 @@
+/*-
+ * Copyright (c) 2017 Chelsio Communications, 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.
+ */
+begin-base64 644 t4fw
+AAAEJgEQPwAAAQkEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAABAkEGAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IEZyaSBTZXAgIDggMTA6
+MTg6MzMgUERUIDIwMTcgb24gdm5jNC5hc2ljZGVzaWduZXJzLmNvbTovaG9tZS9maXJtd2FyZS9j
+dnMvZnctcmVsZWFzZSksIFZlcnNpb24gVDR4eCAwMS4xMC4zZi4wMAAAAAAAAAAAAAAAABRhxKxg
+AMgA4QB78AAQAADhADC4eP///x/84UCAAAAB4QB7cAAAEAAf//4A4QGUcCAAAADhAZwE4QB5AAAC
+AEDhAHmAAAYAQAACAAoABgAK4QB5BAAMAACAAAEC4QB7POEAe0ThAHvk4gAAAAABAADhAHuQIAAA
+AAAAgADhAHsAAABAAeEAe5wAAEAAREREQuAAAADjAARzREREQOMACAAgAAJcAAAAAB//jhAAAAAA
+H/+OFAAAAAAf/44YAAAAAB//jhwf/8AAAAAAAAAAAADAABL/zRP/zZMgEv/NE//NhCAEMwGTIBH/
+zBL/zJIQEf/MEv/MkhAR/8wB9DER/8siCv+SEADkMQAFMQECABL/yALnMQIWABH/x4EQAQFfwCEC
+EQHJERH/xBL/xJIQEf/EEv/EkhBgAA8R/78S/8OSEBH/vxL/wpIQgRAR/8HAIJIREv/AkhLAIJIT
+Ev+/khCCEALyUGUv9xH/vccvkhAR/7ySEBL/vBP/vJMgwDKTIRP/u5MigiIS/7oT/7qTICMiIRT/
+uQQzAck4E/+4gzADgxQIMxEU/7akM5MhE/+qkyJgAAjCMJMhE/+nkyIS/7GQIJAhkCKQI5AkkCWQ
+JpAnkCiQKZAqkCuQLJAtkC6QLyAmECAmEYIiEv+kwDAtNzAtNzQtNzgtNzwjPQFyM+0AAgAS/6HA
+MC83AC83EC83IC83MCM9AXIz7QACABL/l8AwKDcwKDc0KDc4KDc8Iz0BcjPtEv+VwDAnNwAnNxAn
+NyAnNzAjPQFyM+0S/5AV/5AW/5HAMNcgBWYBYAAZAAAAAAAAAAQ2BQACANMP0w8FMwxuOxQHRxQH
+BEN2MeYENgUFMwxvO+0AAgAS/4MV/4EjCgACJwIHBEMEPgUFMwwHRxRvO/ADAgAS/33JLoMghCGF
+IrwidDsOhlC0VZYwtDN0M/Rj/+YAZT/iZV/fEv9xwDIDLgUDAgAS/2jAMCg3QCg3RCg3SCg3TCM9
+AXIz7QACABL/ay0nAMARAUkxAEgxAQIAwAAU/2gE0jEV/2eUUBT/ZwTTMRX/ZpRQFP9mBNQxFf9m
+lFAU/2UE1TEV/2WUUBD/ZQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/AAA
+H/wAAOMACfgf/AAAH/wAAOMACfgf/AAAH/wAAOMACfgf/4AAH/+FsOMACfgf/4WwH/+FsOMAD6gf
+/4WwH/+FsOMAD6gf/4WwH/+HWOMAD6gf/4dYH/+OEOMAEVAf/44QH/+v4OMAGAgf/6/gH/+v4OMA
+Odgf/8AAH//+7eMAOdggAAAAIAABauMAeMggAAF4IAABfOMAejQgAAF8IAABheMAejggAAGYIAAB
+nOMAekQgAAGcIAABpeMAekggAAG4IAABvOMAelQgAAG8IAABxeMAelggAAHYIAAB2OMAemQgAAHc
+IAAB4uMAemQgAAH4IAAB+OMAemwgAAH8IAAB/OMAemwgAAIYIAACGOMAemwgAAIcIAACHOMAemwg
+AAI4IAACOOMAemwgAAI8IAACPOMAemwgAAJYIAACWOMAemwgAAJcIAACYuMAemwgAAJ4IAACeOMA
+enQgAAJ8IAACguMAenQgAAKYIAH5KeMAenwgAwAAIAMXMOMCcRAgAxcwIAMXMOMCiEAgAxcwIAb7
+tOMCiEAgBvvAIAb/MOMGbNAgCAAAIAgS0OMGcEAgCBLQIAksJuMGgxAgCSwwIAks/OMHnHAgCwAA
+IAsAAOMHnTwgCwAAIAsAAOMHnTwgCwAAIAt0COMHnTwAAAAAAAAAAAAAAAAgABQWIAAUCCAAF/Ig
+ABQIIAAXbSAAFAggABS6IAAXBSAAFoogABQIIAAWOSAAFfIgABWFIAAT9SAAFS8gABQIIAAUCCAA
+FAggABTaAAAAAP///////w/8///w////APwgALbmIAC4WiAAuIogALhQIAC4ESAAuAcgALfWIAC3
+zCAAt8AgALdvIAC4iCAAt2UgALc1IAC4iiAAtysgALcZARAYAQAEAAAAAAAAAAAAAAACAgUFCAgL
+Cw4OEREUFBcXGhodHSAgIyMmJikpLCwvLzIyNTU4ODs7AAAAAAAAAAEDEREICBAJAwEAAAAAAAAg
+BNcIIAGtMCAAPWAgAXxIIAGpeCABo+wgAWIoIARAeB//6qQgAKLIIAC5QB//3YAgAG7AIABgIAAA
+AAAAAAAAIAF+ACAAjpAAAAAAAAAAAB//1gQf/8V8H//ClB//wDAgAFsgIABOfCAAS6ggAK5YH//k
+WCAG0YgAAAAAAAAAACAAUjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAG0jCABk+AgAMOI
+IADCvB//8Xgf/9CoH//MOCAAjAggBVfwIAEvQCABF7AgAPxgIADzuCAA6NwgANtUIADGaCAE2wAg
+AyegIAEkpCADVjAgAeAcIABugAAAAAAgAMPsIAXQxCAAtlggAYaEIAACmCAAqBgAAAAAAAAAAB//
+9MAgAMOkIAMqUAAAAAAAAAAAIAOsuCAAKewgA6sAIAAobAAAAAAgADSoIAAy3CAAMSQAAAAAIAA9
+BCABKGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgADdYIATWqAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAA7YCADtUAgADgwAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAACAAPWAgAKBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsA
+AAAgAxSECAAAACADFJAIAAAAIAMUnAoAAAAgAxSoDAAAACADFLQSAAAAIAMUxA0AAAAgAxTYDgAA
+ACADFOgTAAAAIAMU+AoAAAAgAxUMDgAAACADFRgYAAAAIAMVKA0AAAAgAxVEDgAAACADFVQQAAAA
+IAMVZBIAAAAgAxV4DgAAACADFYwQAAAAIAMVnBEAAAAgAxWwCgAAACADFcQLAAAAIAMV0A0AAAAg
+AxXcFAAAACADFewKAAAAIAMWBA8AAAAgAxYQBgAAACADFiAGAAAAIAMWKAYAAAAgAxYwBgAAACAD
+FjgGAAAAIAMWQAkAAAAgAxZIBgAAACADFlQEAAAAIAMWXAYAAAAgAxZkCwAAACADFmwLAAAAIAMW
+eAQAAAAgAxZcBAAAACADFoQJAAAAIAMWjAkAAAAgAxaYAAAAAAAAAAANAAAAIAMWpAoAAAAgAxa0
+BgAAACADFsACAAAAIAMWyAMAAAAgAxBcAQAAACADFswAAAAAAAAAANdqpHjox7dWJCBw28G9zu71
+fA+vR4fGKqgwRhP9RpUBaYCY2ItE96///1uxiVzXvmuQESL9mHGTpnlDjkm0CCH2HiViwECzQCZe
+WlHptseq1i8QXQJEFFPYoeaB59P7yCHhzebDNwfW9NUNh0VaFO2p4+kF/O+j+GdvAtmNKkyK//o5
+Qodx9oFtnWEi/eU4DKS+6kRL3s+p9rtLYL6/vHAom37G6qEn+tTvMIUEiB0F2dTQOebbmeUfonz4
+xKxWZfQpIkRDKv+Xq5Qjp/yToDllW1nDjwzMkv/v9H2FhF3Rb6h+T/4s5uCjAUMUTggRofdTfoK9
+OvI1KtfSu+uG05EHDBEWBwwRFgcMERYHDBEWBQkOFAUJDhQFCQ4UBQkOFAQLEBcECxAXBAsQFwQL
+EBcGCg8VBgoPFQYKDxUGCg8VH//AAAAEACAgBv8wIAcEoB/83gAf/6fEIAb/gB//qNQf/6xQA4AA
+AIEAAAAf/6xAAP/4AAEAAAAAEAAAgQQBAIEEAAABBAAAAQQBAIAAAAAABf//H/+AsAYAAAAqAAAA
+H//QACAEU9wCAAAAgBAAAEFAAABBQAEAgwAAAf//v/+/////H/+UEAQAAAggAw54gYAAAAwAAAAf
+/45g//8AAP//AP8AAQAAAAD//x//rUAf/6QUD///////0HT//9NwH/9h3B/84OggBv0M//+/BB//
+YdAf/2JU///BcB//qYwf/5okH/ziAAAACMjg//4A4QGSAB//lIQA////H/+psB//mLwEQQAIBAEA
+CKUAAADAAAAAwAQAADAAAAAf/6pAAAAdwAAA/4AgBvvAIAtFUOEALgAf/6o0H/+l7B//quAf/6ZQ
+AAAX8B//qjDgAACg4QAwuOAAAAAAAIAA4QBgEAAAQADhAhAA4QIwAOECUADhAnAA4QAQCB/84UDh
+AHtwH/+voB//r5gf/OAIH/+vnB//r7gf/6+wH/+vtB//r9Af/6/IH/+vzB//p8Qf/61AIAb/gB/8
+3gAf/6jUH/+oYB//qXAf/5jMH/+svB//pXQgCwBgH/+rDAAA/4AAAB6gH/+OYB//qxgf/6sUH/+r
+eB//rEAqAAAAIAsEYCALBJAEAAAIBQAAAIP/AACBAAAAABAAACALBNAgCwQwIAAJ+CADDYgf/4Tw
+H/+AsB//rFBnRSMB782riZi63P4QMlR2H/+AAAAAPyggAxBcz////yALBfAQAAAAP////wIAAABA
+AAAAGgAAAB/84HQgoAAAH/+naCAAHeAgAB98gAAAAAAAgAD//v//AAAQAABAAAAgADqUIAAi5CAA
+AAAgACNIIAsIwP//f///+///D/aAACALCPAgCwkgAAEAAAAEAAAf/6fYIAtRYCALCbAgADSoIAA1
++CAAMtwgCwtQIAsKECALCqAgADEkIAsK8FMAAAAA////UgAAAFEAAAAgAek0H/+l4AAA//8gBAv4
+H/+piCAAOfgf/6mwIAsLcB//mMQf/6lUIAsNkBQAAACAAAACfFAAAIAAABCAAAAGgACwAAAACgAA
+/zSS///wD4AAsQDhAZoAAAIAACALDSAf/5Y4AAB+QCALDWAf/6mEAP/AAAEAAAAoAAAA4AAAACYA
+AAAf/48gBgAAAAWAAAAf/6U4KwAAACAAVZggC1OwH/+nBAOAAAAH////BAEACDUAAAADAAAAAD//
+/4BAAAAID///H////wAAwAAf/6loPQAAAB//lLAHAAAAgQQBAIEEAAAf/6lAAAA6mMMAAAAAAA//
+AEMAAB//psgAAAgABAAAACALVBAf/68UH/+tYB//lBAABgAA4QB6AB//lIAf/6l0H/+Y1B//mMAg
+C1RAAAMHgCALVLAIAAAAH/+WoAAgAAAAAAkAAAAwAv/8+H/AAAAAo/+7AKP/ugANAAAA4AMAAIP/
+tgAP////D//4AP8AAAAgC1TwIAsO0CALDwAgC1WAAA8AAAAKAAD//wAPA//AAIP/wAAgC1YAIAtW
+cB//qlgf/63Q/2DwAB//rbAf/44gBIAACB//gFAARAAA/x///wDAAAABgMIAAAICAOEAAADhAOAA
+AACBAPAAAACBgAAA/3///x//pBT/v/////8AAACAAAAAAIbdH/+aHB/84gAf/48Q7gAAAAAACcwf
+/OIMDwAAACALD0Af/6n4AAAIzB//qwQf/5qYH/+UrB//gGAgBv1gAAAwAAAAJxAf/9zwIAtdICAL
+XPAf/6pkH/+UpAAA//4f/5i03q2+7yADCCA0AAAAPwAAAB//qzQAAIkGAJkAAB//rNgQAAcCAcCA
+AJkAAAAf/6ugAIgACIKAAAEf/60o///wAAMVAAADEQAAAA8D/yAA8BQgAPQAKQAAAAAAiRQgAPjU
+IAMLRAAAQAAgAw5wDAAAACABA7gf/63wAAAfkCADC1Qf/6rgH/+r+B//qYz/AP8A8PDw8KqqqqrM
+zMzMH/+liAAD//8AACf/IAMLmCALXXAgARQQAA9CQCADXVAf/6ooAAkAAAAASACCAAAAIAEocB//
+qdw7AAAIDgAAANAAAAAf/4CgAAAgegAACFAAAB9AH/+plCALHoAgCx6gIAsewAAJAAgf/60kMAAA
+AH8AAAAgCyHgAAAP/iALIRAgCyFwIAshsAAA4AD///f/IAsicCADY5wAAIP/IAcDaBWgAAAgBwRg
+H/+s6AAACAYAAIjMH/+WUAAEA/8KAAAAIAb/+CAHAZggBwBAH/+ZYIP/twCD/7YgIAsioDMAAAAf
+/6zwH/+t5AP/4AB///8AAD/2kAAAIIgD//AAIAtIMCALR/AgC0hQH/+u8B//rOwAD///H/+q8B//
+qZAgC2EQH/+Y9CAAcuggBvzoIAAFiB//pGAf/5XMH/+UTB//qMQgCyMgwAQAAB//p4Af/6d0H/+n
+jB//raAf/60UIAPlMCALI2AgAw8gH/+ljCAAc8jgAQAAH/+aICALYkAgCyOgH/+aGCAAszAgALAw
+IAthwCALYhAf/5ZwIAslsOD//gAgC0rQH/+aJCALMIAf/47kH/+QnB//qYAf/62UIAs88CALPSBI
+AAAAIAG8CB//pxQgAb4MH/+VAB//pewf/6TkH/+n1B//pKwAABhAAAAWTB//p+QgBv90H/+lNB//
+lIThAC4AH/+n8OEAXgDhAg4A//+//+EADgDhAY4A//++/x//mLwf/6W8IAHDOCABz2DgBQAAA/8A
+AB//pPQgAw54H/y//zwAAAAABf//gwAAAB//pOwPPAAAIAtHsCAB76wgAfKoH/+qdCAB9mAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAACBgAAAAAAAAP////////////////////8f//zoH//86B///LAf//ywH//8sB//
+/LAf//Y4H//5YB//97wf//e8H//3vCAG03gAAAAAAAAAAAAAAAAAAAAAIAbWwCAG1sAAAAAAAAAA
+AAAAAAAAAAAAIAbTeCAG03gf//pUH//6VB//+lQf//pUH//6VB//+lQAAAAAIAHEUAAAAAAAAAAA
+AAAAAAAAAAACAQAAAAAAAAAAAAAAAAAABAAAAAAAAACBgAAAAAAAEAUAAAAAAAAEAAAAAAAAAAAA
+AAAAAAAAAIEAAAAAAAAYBQAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAoAEfFrE/Fr0w8D
+5jEBAgAW8WkX8Wp3awaQYLRmd2P4VA9LVc62DxQAY//5AAAAbBAIKCAFJyAHKTEF+CCGFeAZRQD5
+AA6FYXcBAIoiFvFc/eK6BeAMlQDxV7wN4A+lAOrxWBvHAoAApogrgp4KeQopkr/9YA2DogCdACiC
+nQmIAegWBSQNUYAAKNII9wANqJIAnQArYq7s8U0VirmAACpirSzCf+yrAQRz/QAA/UAKHiIAnQAu
+1gj9QAoeIgCdAC8gFKT/Dw9HLyQU9eAMXdIAnQAZ8T8uIhYsISmIFR/xPa7Mn4DqIh4uZ8KAAP0A
+ZhWgDSUA/QBGFeALZQDt8TYdVgKAAAuqAosUmoHpABUEQEEAAIkVCACKKDwQ/SDGFeBMBQD9IOYV
+oAxFAOy7NgTIgQAAbbkFCACGCQJh7vEnFaCHgACIFe4ABQ3PAoAAqYjojCAlpDUAAAvJDG2ZAggC
+YS0hKdMP6iEoJugFAAANDU8tJSn9QAd0YgCdAP/iMAXgDBUA+iCoFeAe5QDqIh4uzUKAAPggJhXg
+CAUA+CAGFaANBQDoFgIl2YEAAFiEw/7gABc3xQEA98AARzANlQDt5p0oBAqAAPmABVlSAJ0AwCDR
+DwAAAOokAAnYBIAA7EQACugEgABYho3SoNEPAAAAAMCwD4k06dYILfYuAAD6QGgdoBvFAPwAAh2g
+DRUAWIzMY//BAADqJAAK2ASAAFiIJtKg0Q8A//lYDaAIBQDqJAAD2GEAAPwAAh2gDZUAWIzAY/+R
+wKBZyQgd8N+I2Pkf8giQD6UAY/+k2iBYC6Zj/nAAAAAAAPwAAh3gCgUA+kUkHa/8KgCKJ+tEAApo
+BIAA+0QAFaAMBQBYgDvSoNEPAAAAbBAGLiIQlBHlIRoq0ASAACYgB/ZBKBXgH8UA6hYAKsfCgAD/
+AlIN4WYBAAcJQvEgcA3ihQEAZIHy1PApIAX8QEgVoBuFAP6eAA2wGkUA+yAPlSIAnQDn8LYeC9YA
+AOXwsxtPAoAA9MAMEhIAnQClmS2SngdqCiqiv/egEbtSAJ0AKZKdCpkB7pQABI5JgACMKYsqDAc+
+DLsM92AJA+IAnQAqIE4tIEyxqPugDewgCxUAKCROKjABKSIY80AN9pIAnQArIActIST4YCQVoAxV
+AP1ABAUwuxEA4KoRDdqCgAALqgIb8JsKiAIqIQcsIQkL3QL7BgAMeqoBAOvwlh1TAoAACswCKiEi
+mOCIIJzjneQLqgKa4v0AABQwCmUACogCmOEtIhCd5SwgOBvwi/gAIh2gTRUA+cEmFaDMGQAM2Dkd
+8IeU6Ay9OfmmAA6wCwUAm+cY8Hqd5u3wexTgBQAALCYYm+uZ6ugAFQdIwQAACQCK7eYOIchBAADv
+5g8neQEAAAkghg8CYwkAhg8CYQxuEaXu6uadI4CxgACIKS8gOKeIKCYJ8+AIF5IAnQCJEAkJR/kg
+BwFSAJ0AwCDRD54S6iQAC9gEgABYiPaOEv9NEA3gH8UA7BIBKVAEgADtEgAp2ASAAFiF6dKg0Q8A
+HvBSiuj3QAY4kgCdAAxpEaWZK5Ke92AGi1IAnQApkp0Haworsr8LmQFkkL+wrJzo7pQADPN+AABg
+ACwAAAAAAPPf8EhSAJ0ACVQM9J0AFa/4AgAAAAAAAOsSAClQBIAAWId20qDRDwDqJAADWGEAAPwA
+Ih2gDWUAWIwSY/9pjSLA5A7dAvxARhXv/X4AAAAA+EOoFaTZAQAA0QQAvBoMiAL4Q6YVr/jGAIon
+jRHAwOqsIC7YBIAAWH+Q0qDRD9ogWIV/Y/75AAD/9zwNoAkFAMCgWchGHvAciuj5X/l4kB/FAP/9
+KA2gCQUAwJDAugurNPvBBhXv/O4AAAAAbBAOlRwoIhAuIgknITUpIAcjFg4qMgL+YIgV4A0VAPxg
+aB2ntQEA4yEaJdv5AAAL2zn6IaYV4ZkBAOf/Ngm3woAA/sJSDeOqAQAODkLxwHAN4tMBAGTUWyYg
+BcHo+f4ADzAXRQD2wCPdYgCdAIciix705XwN4A6FACuwAZ8R82Ag3xIAnQCZEJkamhQY7+7t7+4S
+KA0AAOUWCyyvAoAA6FUIDN+CgACtu+sWCSJwBQAAiRqeGI0b9SAGqhIAnQArUp6GGf1gCiPiAJ0A
+L1KdJmK/Bv8BZPQxGe/diZj3IAmYkgCdACqCrmShUhrv2SOCrSqifx3v1go7AesWBSTb/QAA+mAJ
+5iIAnQCb2PpgHyYiAJ0AhymGKgwDPgdmDPLACaviAJ0AKRoA8yIyDeD69QArIBacE/tgCf0iAJ0A
+ixGGwyogOPfg5hWgBgUA9+EmFaBHBQD74QYV4KoZAAp2ORfvx5YWLSIXFu/EnfotIhud+4nECnY5
+lhf5YBEC4gCdAIsdnh/sFgMljZmAAGABCxnvr4mYapEuixsqUp6PGXujSy1SnS/yvw/dAZ0VhhXr
+76cU0/0AAO9kAAMB6YAAmrhl/xNgA0KeH/wgZhWgCgUAWcfHGe+eiZgY75qME+4SDySO2wAA//9c
+DaAPBQDAoPogphWv/uYAHe+VwLoLmzT7oQYV7/72AAAAAAD/+xQNoA8FAJ4fLxYQ/CBmFaAKBQBZ
+x7MZ74qMEy8SEImYjh8Y74X5P/VwkgCdAGACtcCgmhWLFRbvgsDaDZ007WYILfYmAABgApyeHy8W
+EJwT6iQACdgEgABYiBSMEy8SEO4SDyV1oYAAYAJSKiAHnh8vFhD6IAAFMAwFAFiH64wTLxIQ7hIP
+LXVOAABgA8KLE4gUjBGGFo4XrN0IZgL3xgAPP4gFACgkOwyWDJa0LSYb7SIQKVAEgABYhqCOH4wT
+GO9d+rOmFaEJBQBzmwgrIBYqCv96uXmKKSsgOKOq6iYJKAQKgADzYAQXkgCdACYhNY/EKyEaKSIQ
+5v82De/CgAB/2woKCkLIpAsNQmTQcP4gJhXgHYUA+f4ADvAKFQD6IaYVoAY1APYhhhWv9eYAiicv
+FhCLHuqsICpgBIAAWIMyLxIQmhMtIhv5QIgV7/0KACogB/xgaB2hqgEAWIeJGO82jBP+IegVr/2+
+ANogWISSGO8xjBOOH/pBKBWv/coAcZ6LCr8M//0AFe/+FgAAAIsUihYtIhAZ7zcLqgIb7zYKaAKG
+HRrvLQmIAunvLRsLRgAAIxYRJRYSJiAHhcAjIQf2QSQV4GYRAOtVAQsygoAA9qYACrozAQDmISIp
+mwKAAAN3AgpVAiMhJAlmApXwhSCX85by/eCmFeOYAQDo9gYsygKAAAk5AuMSESJT+QAA6fYEKq4C
+gADl5QIGQIEAAOX2ASfIwQAA5RISIhQ1AABtqQUIAIYJAmEmIBSkZgYGRyYkFPTACD3SAJ0AiBj4
+s6YVoQcFAPLh8g3g+fUAKyAW+WAI5WIAnQAqIhexquomFyGAqYAAjCkrIDijzJwp82AHp5IAnQCN
+HWXQ0MAg0Q8vIE5k++IOeAL4QEYVoACKAAAAAAAAAPMf3QBSAJ0ADj8M//0AFe/uVgAAAAAAAOsS
+DilQBIAA7RIMKmAEgABYhHHSoNEPAOsSDClQBIAAWIYU0qDRDwD6QGgdoBvFAPwAIh2gDRUAWIqw
+Y//BixD6QGgdoAwVAO0SCyXYYQAAWIqqY/+pAAAmIDtkYHXqJAAOWASAAPwgKBWviQUA6SQ7LHAE
+gABYhgH6IQYVoAsFACsmG/pHZh3v+8oAAAAAAOsSBSlQBIAAWAmFY/7uiifrRAAKaASAAPtEABWg
+DAUAWH4f0qDRDwDaIFiED2P/BwAAKiAH/GBoHaGqAQBYhv1j/tYAJyEJJRYSIxYRJBYTJiAHhMAj
+IST0QOQV4GYRAOtEAQsygoAABkQCCkQC9kREFaq1AQDrIgct0wKAAAp3AglmAiqxFZoSlPCFIJfz
+lvL94KYV40gBAOj2BioiAoAABDMC4/YEJdiBAAD0ImgVr8MFAAO7ASMSEeupCAquAoAABeUC5fYB
+JmCBAADlEhIkyQEAAOnLR35ABIAALUz+DNYRpobmkz934MEAAPSf78kSAJ0AbdkFCACGDAJhY/3o
+AACLEPpAaB2gDBUA+2JAFeANBQBYilVj/lQAAAAAAPuPAAw//uYACJ0MDUkUbZkFCCCGDAJj79oI
+BcEBAADpTAwFSMEAAPWf7PkSAJ0AK8z+bbkFCECGCQJlY/2LAABsEAYoIAUc7mL33L4F4BpFAPsA
+Cp0iAJ0AKyBOiciwuyskTvcgCMiSAJ0ALnKu7e5ZFxGxgAArcq0t0n8NuwHmtAAFkWmAALCe7sYI
+JYg5gAAvIBSz/w8PRy8kFPXgEQXSAJ0ALiBz+EOoFe/69QD7wAQA0AsVAOC4GgdoBQAA+xcADTTd
+AQAtJHMJiAEIuDkKmQHpJh0sBw4AAIoifKcEKCBOyY99pwgrIEwpIE57kxTMbCwgFO0iAi5YHAAA
+ZNHRwCDRDwCOJ8fzD68B7yYCJ1DBAABYiWHj7j0VATmAACigANMP0w8DiAooghDsoActWASAAPpA
+aB2gDUUAC4AAZa/ciSfTD2SfpiqZFMqniplkr5wooAADiAooghDsoActWASAAPpAaB2gDTUAC4AA
+Za/gY/96AAD//1QNoAoFAMCgWcY8HO4Sicj5P/bokgCdAMBgKSAUs5n4QoYd7/weAAAAAAAAAADq
+JAAK2ASAAFiFRNKg0Q8AKiAFKyAHwdT9QA6lYbsBAAUFR/igDrlSAJ0AkxCNNp0S7e38HZgEgAD1
+YAnKEgCdAAy6EaeqLqKe98AN3NIAnQAqop0NvAoswr8MqgFkoUX6QAgV4AwVAFgj9x3t8SkhCRjt
+8SshIi8gBx7t+ywhJPlmAA2w/xEA6BICL/qCgAAPzAIOzAIspgAuIgCbovlAphWgDyUA6aYDL3YC
+gAAP7gL/QCYVoAkFAO0AFQVQYQAAsZnqgx4Mj+gAAAw5EfcgAETwCKUAKJad9L/ysRIAnQCKJ+tE
+AApoBIAA0w/7RAAVoAwFAFh9OGP+NwAAAAAA//dMDaALBQDAugubNOvGCCtuxgAAY/7T6iQAC1gE
+gABYCI3924IFr/dWAIonwLD7RAAVoAwVAFiIPBntzJmg/kAIFaAbxQD525QFoAwVAPlARhWgDRUA
+/cAAFzAIFQDo7gINeASAAO72ASlQBIAAWImNwCDRD4nI9yAEoJIAnQAMOhGnqi6invfABVTSAJ0A
+KqKdDT4KLuK/DqoBZKCYsJ+fyGWuuYgi6xYBJAThgAD4v+v5UgCdAIonKwoA+0QAFaAMFQBYgYqL
+EB7tqJ6gjCAd7aidov2AABYwDRUADcwCnKGLtvtAZhXv9SoAAAAA61QACVAEgABYhMhj/TSPM/4g
+RhXv+LYA//lEDaAKBQD6ICYV4AoFAFnFrBztg4nIixEd7YD5P/q4kgCdAP/9yA2gCgUAAMCgwIoI
+mDT5gQYVr/2KAAAAAOokAAXYYQAA/AAiHaANpQBYiVJj/1EAAGwQBCggFO+LHmoYBIAAiif6YGgd
+4AwFAOqsICnoBIAAWHzV0qDRDwCLInO+SxTtZopIaqFHG+1iLLKuyscd7WMssq0t0n8NywF9wBuw
+rp5IfcAhLyAU7yQUL9rQAADaIFgIJWP/p8CwwIoIqDToRggt/xYAAIkiyZXAINEPwKBZxXuKSGuh
+rWP/6gAAAAAAAPpAaB2gG8UA/AAiHaANFQBYiSjAINEPAGwQCCwiDy8gByghNCcyB/5DRBWn1QEA
++b/AFeALFQDpuTkJsASAAOsiCSpQBIAA+CCGFeAEFQDodzYPT8KAAPciUg3h/wEACwlC8SBwDeKO
+AQBkgnLBtOx7Hw6UfAAALCBP0w/pIE0mYAUAAAwMRywkT/0gFROiAJ0ALCAF+4ATbWIAnQCNIvog
+BhWv+zUA/WAOSOIAnQAoIhmOMvnAFQUiAJ0AiTgY7SAc7Rzkkitv34KAAJoQmBGsu+jtFxVIDQAA
+mRPrFgIvpwKAAKhE9eANEhIAnQCLEypCnvtAG0viAJ0AihIpQp0qor8KmQHulAAEkrGAAIwpiyoM
+BT7TDwy7DPVgCdviAJ0ALRoA9aHyDeD49QArIBb5YBmlIgCdACwhIhntEyghByohJCshCfxA8BXq
+iAEA6aoCDEMCgAAIuwIZ7QwY7P0NLUDpzAIO6oKAAAjdAp3giSCc4prk+8BmFeAKVQDr7QQczgKA
+AAqZApnhiC+Y5SwgOPfBBhXgDQUA/cDmFeAKJQD92fgF4EklAPjAiBWgzBkADJo5mOkM2zmNZZ3q
+Hez2/MDIFaAJBQDs5gsjh+GAAAqcEA3MApzsjBGJaJfvme6IaSjmEI1qLeYR7AAVB0khAAAJAIqI
+Z/jgC+OiAJ0AH+zbCr0CD90CnebAxfyTphWhCQUA9SHyDeD49QArIBb5YBPFIgCdACwiGYopKyBP
+KSA45aoIBmAFAADsJhkl2/0AACskT5op8yAPz5IAnQCLFGWx98Ag0Q+fFZ8WnhfqJAAK2ASAAFiF
+T44X7xIFJXWRgACMFGXP24on2zDsEgAlUMEAAFiAg8Ag0Q8a7KuKqPdAEMCSAJ0AjBMrQp79YBF7
+ogCdAIsSKUKdK7K/HeyiC5kB5JIbZWP9AACc2O6UAAzyZgAAYACWKCA58R/4DhIAnQD/++QNoAkV
+AAAAAADzn+xIUgCdAAnnDPb9gBXv9foAiTdkndPwANgNoAoVAAAAAAAAAMGze8kULCA6mhD+IMYV
+4A31AP2AEL1iAJ0A6iQACtgEgABYg8DSoNEPAMGtjDcrIQmNOI4y668RDd0CgAAPuwLkuwIJUASA
+AFiDpsAg0Q8AAAD//1gNoBqFAOokAAfYYQAA/CBoFeAMFQBYiFBj/v0AAAq4ApjmwNX8k6YV4QwF
+AHXLDSsgFikK//lgDjViAJ0AihRkoV2LaoxnimmrewfMDJxn92DSDeAOBQCxqoxlm2qLZppprOqr
+e3e7AbGqjimbZpplLSA4pe6eKfOgCjeSAJ0AiScomRTKgouZyb4Z7GMosACfFZ8WCYgKKIIQLLAH
++kBoHaANNQALgACPFYsix6P7X/JA4gCdACghNIdnLiEaii+LKeh3Ng9nwoAAd8sKCwlCyJQOC0Jk
+sLTB1Pr+AA6wDBUA/CCGFa/ylgDaIFiBmmP+Aoon6qwwK1gEgABYh0rSoNEPAAD/8ogNoAkFAJ8V
+KiAHnxaeF/ogAAUwDAUAWISqjhfvEgUtZbYAAOokAAfYSQAA/AAiHaANBQBYiAdj/dcqIAf8oGgd
+oaoBAFiEdWP9ep8V/iDGFeAKBQBZxEka7B+KqI8V+V/uoJIAnQD/98QNoAkFAMCQHOwZwLoLqzT7
+gQYV7/d+AAAAAAAA81/6OFIAnQAJ5wz2/YAV7/zyAIonnxXvFgYp2ASAAOwSACVQwQAAWH/h1qD+
+IKgV7/oWAJ8V7xYGKVAEgABYgWL+IKgV7/q2AAAAwVP6QGgdoAsFAPwAAh2gDTUAWHoNKyAFjxaK
+EPV/2lViAJ0AY/0ZKiAHnxWfFvygaB2hqgEAWIRE/iCoFe/4ogBsEA6ILycgBS4hNCkgB5Uc8iFm
+FeAGFQDygGgd50UBAO0SCyJ7+QAAD285nx0vIRqM1JwT7dABLqgEgAD/gQAOMZkBAO4iCS+3woAA
+/MJSDaCtMQAODkLxwHAN4m8BAGRkacH0CM+N/uAlzWIAnQCOIg8CAPXGzA3gD4UALBYB86AhlxIA
+nQCZEJkZmhLm68wRwA0AAJga6OvJHP+CgACm/+8WCCznAoAAqMzsFg4h6AUAAIYZnReKHvTABiIS
+AJ0Aixoqop6GGC8SDvtACWviAJ0AJmK/L/KdBv8BZPRqGeu5iZj3IAjgkgCdACqCruTrthUJsYAA
+LoKtJEJ/F+uxBOsB6xYEJLP9AAD1wAj2IgCdAJZ49cAg3iIAnQCKKYkqDAQ+CpkM9SAIu6IAnQAr
+GgD1YfINoPz1ACsgFv1gCQUiAJ0AjhEqIDj8CAIdoAcFAPfg5hXhCQUA9qCIFaCqGQDqlzkL2ASA
+AArLOZsVlxb3wBISogCdAIsdZLHZYAEBGeuQiZhqkTKKHosajBgqop4swr97o0aLHiuynQy7AZsU
+jhTq64gUs/0AAO/kAAcByYAAlqhl/yVgA438IeYV4AoFAFnDqBnrf4mYGOt87RIPJI7bAAD//2wN
+oA8FAMCg+iCGFa/+9gAc63bAugubNPuBBhXv/wYAAAAA//twDaAPBQCdH/4iBhXgCgUAWcOWGets
+LxIQiZiNHxjraPk/9lCSAJ0AYAMKwKCaFIsUHutlwMoMnDTs5ggt9xYAAGAC8Z0fLxYQ6iQAClgE
+gABYg/gvEhDtEg8ldrGAAGACfgAqIAedHy8WEPogAAUwDAUAWIPPLxIQ7RIPLXZWAABgBAwAnR/8
+ICgVr4kFAOkkOyK4QQAA5wMeB7CBAAAGAmGOV5z4hlSJVq7ODGYMllR86wftFg8kyAUAAJ5XhhaO
+FZlWBu4CFutVjBHtIg8pUASAAObuAgrYBIAAWIJ5jR8Y6zeJHvszphWhBwUAdHsNKyAWKgr/+2AE
+LSIAnQCKKSsgOKSq6iYJKAQKgADzYAQ/kgCdAC8hNIxULiEaiS/vzDYPX8KAAHy7CgoKQsikDgZC
+ZGB0/CAmFaAfRQD5ngAP8AsVAPohphXgCjUA+iGGFa/1jgAAAAAAnR+KJy8WEIsb6qwgKeAEgABY
+fwjvEhAtKASAAPwh6BXv/C4AAAAqIAf8gGgdoaoBAFiDXxjrDPwh6BXv/aoA2iBYgGgY6wiNH/pB
+KBWv/b4AcZ6HCuwM/Z2AFa/+BgAc6wsY6w+LEo4V+gAiHaAJBQALqTgH7gIa6wT31iQF4AYFAAmG
+OQbuAoYdG+sG6fwgIsBBAADn7gILC54AACYgB4VQBiZA61UBCzKCgAAGVQIKVQIqIQcrISInIQn2
+QegVqqoBAOy7Ag1TAoAACncCKiEklfCFIJfzm/L34KYVo74BAO72Bi3aAoAAC6oC6vYEKq4CgADl
+1QIB0/0AAOX2ASGMNQAAbakFCACGCQJhiB4nEgf3E6YV4QYFAPTB8g2g+fUAKyAW+WAKpWIAnQAq
+IBSjqgoKRyokFPVACH3SAJ0AyE+MKSsgOKTMnCnzYAknkgCdAI0dZdEAwCDRDyYgTmRryw/oAvhA
+RhWgAIoAAAAAAAAA8x/ckFIAnQAO/Az9nYAVr+4eAIQcBARHaEIVhhOIVMCRBpY5CGYo9qCGFaAC
+BQDRD4onixvqrCAp4ASAAFh+oIsTjKTA0QvbOQy7KPtAhhXgAgUA0Q8AAOsSDClQBIAAWIHi0qDR
+DwD6QGgdoBvFAPwAIh2gDRUAWIZ+Y/+UixD6QGgdoAwVAO0SCiXYYQAAWIZ4Y/98AAAmIDsPAgAP
+AgBkYHj8ICgVr4oFACokOwgghgkCY+z2CCrYBIAA7SIPKVAEgABYgcv6IOYVoAsFAPpHZh3v+xoA
+6xIEKVAEgABYBVFj/uaKJ+s0AAnoBIAA+0QAFaAMBQBYeevSoNEPANogWH/bY/7XAAAqIAf8gGgd
+oaoBAFiCyWP+ngAAIxYSJyEHg1AlIAf2QSQVqncBAOszAQu7AoAA+kDoFeBVEQDnZgIKqoKAAAUz
+AgozAiohIocvJbEVDKoCLCEkk/CDIJryl/WW8+72BimeAoAA86YACfPeAQDj9gEu6gKAAO3MAgXY
+gQAA/eCGFa/MBQAMuwGrXeMSEibpAQAA7YtBfGAEgACwOAyGEabGdtM69H/vSJIAnQBtiQUMQIYJ
+AmVj/dgAAIsQ+kBoHaAMFQD7YkAV4A0FAFiGJ2P+NwAAAAAA9Q8ADn/+/gAM3QwNSBRtiQUMYIYJ
+Amfv3ggFyQEAAOg8DAdAgQAA9Z/seJIAnQCwz235BQmAhggCaWP9fAAAAGwQBiggBSMgByQKA/0P
+QERRMwEAKCAiZIBvAioCWHeu/UzAgNANFQAsICEY6ikPAgDsMxEGfVaAAKgzKTKeDwIAbpNFKzKd
+ZLA/+kAIFaD+5QAOzgH9xgAO8A8FAPxEJh3gCQUA+CAGFeAMBQD4ICYV4A6VAPggRhXgDQUAWH3T
+9HOmFaACBQDRD8Ag0Q8AAGwQCiogBfhA8BXgDBUA+GBoHae1AQDoFgAl2/kAAOvLOQoYBIAA6xYF
+LCAEgAD9QcAEUZkBAMHD/UAf5SIAnQCNIu/qAB6b5gAA6+n9EbARAADmFgQs94KAAK/u7hYDLNcC
+gACrquoWByzABIAAhxf1AAQiEgCdAIoUJ3KehhOPF/rgB1uiAJ0AJmK/L/KdBv8B7xYGJ5nRgAAl
+IRuKQocphioFpTb1TwAOcQsFAHyzAdWgmBoHZgz0wAXj4gCdACoaAPVCMg3g/PUAKyAWmBr9YAX1
+IgCdAIpC+qAOUqIAnQAb6fKHQwt3AYsV6BYKJYkJgABgALgAGunUiqjoFgolDN+AAIsXjBSGEyuy
+no8XJmK/fLNDL/KdHOnLBv8B5PA5ZVv9AACbyO8WBi/7bgAAYAKbAAAAAPghZhXgCgUAWcHqGunB
+iqiJG+gSCiUO3wAA//9MDaAPBQDA8Bzpu8C6C6s0+4EGFe//BgAAAAAA//x4DaAPBQCZG+okAArY
+BIAAWIJMiRvoEgoleamAAGACLyogB5kb+iAABTAMBQBYgiWJG+gSCi15hgAAYAMQAPDgBEBSAJ0A
+LSEajCmXGPghRhWi7QEA6RYLLwPOAACXGPghRhWi7AEA6RYLJwM5gACYGukWCy7/woAAdftVDtUM
++dNeBaC36QDmQgMt3IKAAAt5ApkYCGYB9oBmFaAA3gCKJ5kbixDqrCAp4ASAAFh9fIkb+CFIFaAL
+JQDrpAItIASAAOqiAiOGAoAAjCmXGJgamRuOGI8W5a0MClgEgADlzAgJUASAAO1GAiroBIAA7CYJ
+KeAEgABYfZiIGokbjxf786YVoQ4FAHXrCCsgFiYK/3a5CsCh+iCmFa/3jgAAKiAH/KBoHaGqAQBY
+gbyJG/ghSBWv/4YAjykY6YKJFqX/nymMQ4tAjRXnxAAEyIEAAPwOAAU36wEA7hYBLojOAAAnIAcH
+B0EIdwoncp/urRANU8KAAO2qAgJAQQAA6ncBAdP9AADnxwIBjD0AAG2pBQgAhgkCYYtAwICYEhnp
+bhrpbC8hGoYWHulpJCEHGOlm/CAoFaHXMQD/oABGukQBAO3QgConAoAA7MwPJnBBAAD4hgAKNMwd
+AORmACZgBQAADDwMFOlBDV0M6CIAL/oCgACfZpdnnmOdZQykOQmJAulmBCxGAoAA5GYCIdAFAAAI
+qAKYYSYgFONmCA0gBIAA5iQUKAQKgADzYAQCkgCdAIgX9ROmFaEHBQD04fIN4Pn1ACsgFvlgBNVi
+AJ0AiBLSgNEPihVkoJ7AINEPAAAAAADqJAAE2GEAAPwgiBXgDBUAWIT4Y//biif8ISYVp9tBAOqs
+ICgECoAA9aAEYdIAnQCMFisKAezMICnoBIAAWHh6mhL6gAgV7/vaAACLFuxNEQlQBIAA/WAARfAM
+FQBYdlj0gGAVr/2uAGW8BPlf4AjSAJ0ALyAg8f/ft5IAnQBj/3UAKiAH/KBoHaGqAQBYgUuIEtKA
+0Q+KJ9ww6xIAJVCBAABYfOfAsvtARh3gAgUA0Q8AAAAAAAAA6zQADjgEgAD8YGgd4AwFAFh4V9tA
+7DQACugEgADqFgIr8ASAAO8SBilQBIAAWH0F+oAIFe/7IgDqJAAE2EkAAPwAIh2gDQUAWIS8Y/7r
+AABsEAiSFJMVGejpiED4IEYVr8sFAOsqAQJwIQAA+iBmFaeIQQDkgcBiUBEAAI8TLSEFqYwswACv
+3wTMC+/8QC5YBIAA/4ANiuIAnQD6ICYVoGgBAP4AIh3gDQUABv04C98L690KB9ghAACCFZ4Q+QAA
+RXAMJQDyQQAV4A8FAPJAgBWgAg4AjRQOVQz/4CAVoAMFAO/kAARABQAA8Q5gDeB+AQCGEyKgAC3R
+BQQiC+bWCAlYBIAA4hYGIzEBAAD2QAZ6ogCdAAgGQPIAIh2gDQUABi04C9IL690KAVghAAD3IBAV
+oAIVAAcjOIcVB2YLF+jApzcncKAGMgoGMwvsfAgBmCEAAI7QCwCJBe42LiYAAwCLItIA6qwBJMgF
+AAD0X/sj4gCdAAUpDA4qDPugBhWgBxUA9WAoFeAGBQAJdjgIaAgisgAF5QgltgF+WwIiLAHitgAm
+fRKAABbop4sSHuim5rYBB5AFAAAGIgKGFe67AQxuAoAADbsCkmD6gAYV4SwdANEPixD8ICgV7/1S
+AAAA/E8ADf/8xgCFFRnodwXFC/gAChXgAgUAsSLlgx4JD+gAAB3okIYSGuiQ7W0BB9gFAAANuwKN
+FepmAQxOAoAACWYC69YAJhAFAAD2gAYVoSIdANEPAAAAAOoWAS1oBIAA+8BoHe/51gD9jwAN//k+
+AGwQDPhASBWgCgUA6yAHKcgEgADygGgd58UBAP2fwBWgBBUA7Ew5DLgEgAD8ISYVobsBAPMbXA3g
+DAUAmhacFZkTmxSbGy4gFhXoSB3oSB/oa+8WCC3HgoAA7YgIDacCgAClRB3oZygWCvnQggWg//UA
+f+ETAioCWC68GOg9Hehg6hYIJSoRgABgABcAAGZjy/jAHyiQ+vUAKSAW+yAZTSIAnQCJiPcgBhCS
+AJ0AK1KuHOgxZLDRLMJ/K1KtDLsBZLDHsJmZiBzoT2SzSyzAgCzMN/4haBWkzB0ArDzrFgImYB0A
+APXABYISAJ0ALkKe/cAIK6IAnQCMGitCnSzCvwy7AesWACWZUYAAKnEMiXeZEf1ADqxiAJ0ALHAQ
+63IDJglBgAD5n/so0gCdAC5yA2Tg0I8WZfGwhhGPGI0U7hIAKVAEgADm/zYL2ASAAO8WASngBIAA
+WCxyGOgGHegp568ubTAEgABgAvIAAMCgWcApGOgAiYgd6CL5P/mIkgCdAP/9CA2gCwUAwLDAqgqZ
+NPkBBhXv/M4AAGqRJCtCnnyzQYwaK0KdLMK/DLsB5LA1ZPP9AAD/AQYVr/0qAAAAAAD8IaYVoAoF
+AFnAEhjn6YmIHegM7BINJI8TAAD//IwNoAsFAMCwwPoPnzT/AQYV7/xSAAAAAAAAAP/8GA2gCwUA
+AAAAihjAsZsW+V/5KuIAnQDA4J4W+V/4yuIAnQDrdAAJUASAAO0SCSngBIAAWCyu/gAiHeAHFQDn
+FgktOASAAP9AZhXv+7oAZLBJjxX+ACIdoAwFAA/sOGTAjIgRhhjqJAAL2ASAAO0SBCngBIAA6GY2
+CPAEgADmFgEg+BEAAFgtOujnux0wBIAA/c+6Be/3/gAAAACLGA8CAA8CAPlhNg3gDAUAeaMBwMH4
+ACId4A4FAAyeOOwWBSd8kYAA63QACVAEgADtEgkp4ASAAFgt2PdAaB3gCxUA+iEmFeAKFQD64GYV
+r/2eAIsQFee/KiEHiXAc57v/z0QF6qoBAP9AABU4mQEA7KoCBMA9AAD8ISgVpIgdAOq2ACRACQAA
+CDgMjiCZs+hfOQGz/QAA77YCL3YCgADubgIFqEEAAO62AS4O5gAAiBPojCAhlFUAAOo8/irIBIAA
+bakFCACGCQJhKzz+DLsRq1ubECggFCwgBKOI9YAImRIAnQAICUcpJBT1IAouUgCdAIhyKCYciXHo
+FgctqASAAPMgCjBSAJ0A8TX4DeAHBQCnZiZGnSogFisK/3uhCusSASlQBIAAWDFEjBllwOPAINEP
+6xIBKVAEgABYMT8uIBYY52b9zxIF4P/1AP/f5RxiAJ0AY/yHiBllj9IqcBDbcPxgaB2gCRUA+1/g
+FaANBQDqnTgJUASAAFgrZMAg0Q8AAAD6QGgdoBvFAPwAIh2gDRUAWIMwY/+9AAAd53Ut0IDrEgQm
+6N0AAPpAaB2k3R0A/GAARvAMFQDt3Acl2GEAAFiDJWP/jy4gFi8K///f+vRiAJ0A6xIBKVAEgABY
+MRfAINEPixAMbBGsu/ogBhXv+5YAKCQUjXDxv/i6kgCdAPpAaB2gDAUAWHSG9sBgFa/8EgCKJ+s0
+AAnoBIAA+0QAFaAMBQBYdpnSoNEPAAAAAAAAAOsSAilQBIAAWAHz+iAIFe/6wgAAAAAAAOokAAxg
+BIAAWAN2iBeJcZoc56QADV8CgADrVQgE9U2AAOtUAAlQBIAA/QBoHeAMBQBYAzv3QABD//o6AIon
+/KBoHaALJQDqrCAp6ASAAFgrVitwEPl/8TjSAJ0AKXAVCQhFZI4ZK3EJHOcuKnEML3ARjicMqgyr
+/w+ICf3CpBWvzQUA7uwgJHiJAADt7gEEQEkAAAr4Oah9rs7u7EAm6IEAAO7bWn7QBIAADuowG+ce
+LaEB/UAEFaH5MQAL/worIhfv8p8uZAKAAAzdAgvuDA/uLK7dqF79wCQd792BAP3ABB3v9nYAixT6
+QGgdoAwVAPtiQBXgDQUAWILEY/4NAAD9rwANP/6aAGwQBCMgACQK7XQxBiIhA7wi0Q+EIYYg8kBo
+FaAIJQD3ZAACsJRxAPkPAAxzNgEA9GAAQfNmgQDl5vscAQqAAABmGvZgAQG9RAEA5SIBAag5AADl
+IgwBmGkAAAQkLAQzKKMi0Q9sEAiKIicgB4kwlRX4QtAVoXcBAPFdTA3omQEA+CAmFeD89QB8gR0F
+C0f7f8AV4AkVAOubOQlQBIAAWDC981MwDeD89QAa5reIqBbmtPcADZiSAJ0ALmKuGea0ZOHbKZJ/
+JWKtCVUBZFHRKIz/KKYI6VQAAo2BgAAb5tAlsIDt5qgSqN0AAPggBhXkVR0A5UUIC88CgADmmQgC
+qA0AAPTgCJISAJ0AKJKe9QATO+IAnQAlkp0NeAoogr8IVQFkUYgpIBb9IyYNoOvVACowEPtAElRi
+AJ0AKzELvLvaIFgwaSggFCwgBKSI9YAMQReYAQApJBT1IA4uUgCdAIoVHuanjREoIQcc5osZ5qP/
+oeAV6ogBAP8AABQ0/x0A6YgCB/gFAAAPTwyYUIsgD+w5/KBmFeeqAQDsVgIt3gKAAOtLAgLIQQAA
+61YBIcBBAAD5QAlxUgCdAOhBDWJT/QAAbakFCACGCQJhwICYFOkgBCJb/QAADLsRq1v1IAkJEgCd
+AIgyKCYc6TIBJdhBAACbEygWAvMgCbhQBQUAZpFQpUyIFAx9Eabd7NadLBAEgADRDwAAAAAA9wAO
+kJIAnQAMeRGmmS6SnvXADvviAJ0AJZKdDXsKK7K/C1UBZFHNsI2dqGVe3WAAYwAAAAAAAADqJAAJ
+2ASAAO0SBSpgBIAAWHvf0qDRDwDAoFm+cBrmRoio+R/yGJD89QD/+VgNoAUFAAAAAAAAAPpAaB2g
+G8UA/AAiHaANFQBYghpj/7HAUMDqDog0+UEGFa/4rgAd5lst0IAt3Df64wAV5N0dAO1NCAlQBIAA
+/aBgFeAMFQBYgg1j/3sAAAAA+EKGHa/6DgAAAACKJ/0gaB2gCxUA6qwgKmgEgABYdZD6IIYVr/tK
+AIsw82AIopIAnQDiEgQr5wKAAKbMJMad0Q8AAAAAAAAA6xIAKVAEgABYAONj/jAAAOokAAxgBIAA
+WAJoiTGLE4gS7KwRDSgEgADsuwgE9Z2AANog/QBoHeAMBQBYAi+IFKWlpUwMfRGm3ezWnSwQBIAA
+0Q8AAAAAAP/2lA2gBQUAjTWMNB7mKPpg6BXgCSUA/HAAB7CtcQD7LwAMu4whAPsgBADTzAEA6MwI
+D/gKgAD/gAEGfd0BAO67AQZwOQAA7rsMBmBpAAANvSwNzCj9YABFv/W6AAAAAOokAAPYSQAA/AAi
+HaANBQBYgcZj/mHAoFm+Dhrl5YioHeXj+R/xCJD89QD/+PANoAUFAMBQwLoLizT7QQYV7/i2ALBL
+DLsR61sICVAEgAD7YgAV4AwFAFhzKLNM4hIEK+8CgACm3SzWndEPAGwQBIk3F+X3KzAW+cvcBaMq
+BQAKKigLtgnoqAgLNwKAAKhmGOXxp2fkcr8pAQqAAP74CBWgDBUA6GYIDmgKgADmQRh0wCEAAIsy
+mOCek5aSDbsCKHbAmzLRDwAAH+Xkr68p8r0AsQTt8sEucAqAAA6ZAvn3phXv/vUADt0DDZkBHuXc
+5XLAKW8CgACu3ZnQjzKYUOaGACkBCoAA5YYBLiAKgAAE/wIodsCfMtEPAAAAbBAKGeXQCSkKKJJ/
+4hYIKWgEgAD7AAQA0AYVAOYWCisoCoAA+CCGFeBVTQAS5ccb5ccc5bgY5ZX1y4wFoyoFAOraKA6/
+AoAA6ZJ/Juu5AACdFaSkqHesrJwWKHK5JEKf66oIBMv9AAD6IOYVo5kBAPghJhXgYwUA+IAEAjAA
+agCKGsCw/f/iHaBjBQDsVQMFAuGAAJsaLXK4BF4BDt0BnRABAIcDNmBoPtWKGIsXjRUc5amIFuM5
+CQHygQAA7hYJLM8CgACpiP0AAEY///UA4ogIDwEKgADogp8rSAqAAA+ZAwlEAQuAAGP/qgCKGYsU
+saoKCkMqtn/RDwAAbBAEG+WWiiArsn8e5ZX7TwANcy8FAA+vKA7+CCnivyjivv3LIAXv+/UAC5kD
+6YsBDWcCgAD9gABGf/T1AP2ACBWgAxUA+Q7gHeANBQAZ5YYY5XL5AABGfywBAOz8CAX9RIAAyykI
+6jApwr8v4sAJiAzo+xN+gQqAAC/ivgA4GgSIAwj/AS/mvv2gIBXhux0A5LAsZmDBAAB/txRj/8QA
+AAnqMPmX5hXv/4YAAAAAAAD9oCAV4bsdAOW/3GZgwQAAWDEYwCDRDwBsEAQmIQn4QpAV7/gFACcg
+FeiYAQs2AoAA6JkMC7kCgAAHZgL4QoYd4AcFACc0APhgZh2gBBUABGYCljEV5SMkVq3RDwAAAABs
+EAQW5VYV5S3TD6YiBTUCJSaAJCKAZ0ALbQgFKCKAZ4ACY//z0Q8AbBAEE+VNIjaKY//8AAAAAGwQ
+BCggBSUgB/pgqBWv9NUA+kBIFeADJQD9ASAR0VUBAMAg0Q8AiCmaKw8CAPsACDwiAJ0AGuU9CloJ
+6aH8JVALAAAqoQD7IASzogCdAPNgBHASAJ0AAioCWHJuKyICDwIAA7oBZK+4iicEuwHrJgIlUMEA
+AFiAKePlBRUBOYAAKKAA0w/TDwOICiiCEOygBy1YBIAA+kBoHaANRQALgABlr9yJJ9MPZJ92KpkU
+yqeKmWSvbCigAAOICiiCEOygBy1YBIAA+kBoHaANNQALgABlr+Bj/0oAAP//VA2gCgUA2iBYclsr
+ICLquwwJUASAAFhzpdpQ+gAiHeAMBQBYdViLIgO6AfN/+uZiAJ0ALyAH2iD8ACIdoA0FAPVgBAcx
+vwEA7iYCJdh9AABYgKjAINEPAAAAAAAAAOsgIilQBIAAWHORKiAFwYN4oQxoqCmLIvNgBAV//EYA
+KSA6wL97mer6QGgdoAsFAPwAAh2gDSUAWHLIY//XAAD6QGgdoAsFAPwAAh2gDSUAWHJBY/+/AABs
+EAqIKx3k1S4gIYs3/GDIFaD/5QAP7gEuJCENzAEMuwzriQh4yASAAMAg0Q8DAIYJAmGbFSggBSUg
+B/ghBhXv9NUA/EBIFeADJQD9G0BB0VUBAIopHOTRmyv7QAgUYgCdAAxcCevB/CZgCwAALMEA/WAE
+o6IAnQDzoARgEgCdANogWHIAiyIDugFkr5uKJwS7AesmAiVQwQAAWH+8CqsC4+SXFQEpgAAosADT
+DwOICiiCECywB/pAaB2gDUUAC4AA66QADX8eAACJJ2SfWiqZFCuSCcqoZL9PKLAAA4gKKIIQLLAH
++kBoHaANNQALgADrpAANfy4AAGP/LQAAAAAA//9IDaALBQDaIFhx7SsgIuq7DAlQBIAAWHM32lD6
+ACId4AwFAFh06osiA7oB83/6zmIAnQAvIAfaIPwAIh2gDQUA9WAEBzG/AQDuJgIl2H0AAFiAOsAg
+0Q8AAAAAAAAA6yAiKVAEgABYcyMqIAXBg3ihDGioKYsi82AEBX/8OgApIDrAv3uZ6vpAaB2gCwUA
+/AACHaANJQBYclpj/9cAAPpAaB2gCwUA/AACHaANJQBYcdNj/78AAGwQBBzkeYs0KTAW/WAEBbWZ
+HQD1IAgIkgCdAO7kdBSIiYAA+8jmBa/95QDk5EYUpLkAAGmVIiyhfuyzDHZQEQAA+2AIm6IAnQAr
+IAawuwsLR+skBiWCyYAAwCDRDyyhftMP7LMMdngRAAD/YAfT4gCdACggBrCICAhH6CQGLH7eAACJ
+J4siKpkUDbsBmyKLmWSgtCiwAASICiiCENog/WDwFaANNQALgADAINEPAIsiiicPAgANuwHrJgIl
+UMEAAFh/RMmtKKAABIgKKIIQ7KAHLVgEgAD6QGgdoA1FAAuAAGWv4IknZJ9vKpkUZKBgiplkr2Qo
+oAAEiAooghDsoActWASAAPpAaB2gDTUAC4AAZa/gY/9CAADqJAAJ2ASAAOxEAAroBIAAWHLbwCDR
+DwDqJAAJ2ASAAOxEAAroBIAAW/9BwCDRDwD//RwNoAsFAP/+dA2gCgUAiDci4n8JiBH4QABBP/uW
+AIg3IuJ/CYgR+EAAQT/7+gBsEAQa5AMoottkgAsJ6jArotwLmQxnkAHRD1h0/9EPAGwQBB3kFicg
+BxzkFf5BBBXg5xEADtw5nDCIIPvHsgXgCiUA+mBGFeAZBQDpNgMsRgKAAAqJAvhgJhXhdwEA5iB5
+K7wCgAD35gAPcA0FAPwEAh2gCzUA6eQDEwI5gACdNZwzC4oCFuQAmjEa5AAG7gImIQmeNJo2BGYC
+IiAHnTmVO/jGAAtxIgEA5jYKKRQCgAAC/wIJ/wLvNggtkASAANEPLCEIKyEJnTWVNwfMAgS7Agm7
+AgnMApw06zYGLRAEgADRDwBsEAQY488e4+QsIAcd4+QZ4+f6QQQV4PwRAP/NAA7xzAEA7TYALmQC
+gAAMuwIJuwLjgIApsASAAB3jofxACBWgDgUAnmXtZgIhuN0AAPrAhhXkdx0A6nz/LmYCgADsfAIN
+VwKAAOxmASVT4QAAmmMCBImZZiNmBwYgiyUhCfTBZhWkMx0A5WYKK5AEgADogAUDKMEAAG05AgUC
+YdEPAAAAbBAGHePDCysRrbMqMn8Z48EX456IoMBA+OAARPAGFQDpuQgEAamAACwyeC8ye/mABXxi
+AJ0AZfEULDZ8KzJ5KzZ73UAN5BYBAgCUoA3kFsDJ/EAF3CIAnQAvMnvBwO3jrheDkYAAIjJ8KiEE
+jiDz4f4NproBACQ2fPRvZhWgAB4ALjZ87a8BBcP9AAAI/wLvJQQljFkAACIyfLDM7zJ7IQDxgADJ
+xmP/v9ogWHUbZaDCKiEE/0EADBaaAQDIl9EP2iBYdQ7RD9ogWHTQ0Q8AAAAAAAD6QGgdoAsFAFh1
+ntEPLiz46tKILwEKgAD8wAEF3/z1AAy7AwuqASrWiFnAvCQ2fCQ2e/pv6BWv/OIAAAAV4z8vUFhk
+8GpZtsNYdIYoctvTD8iBWHRbKVBYZJ8pWHRVyK4V43osUmuwzOxWayYCyYAAWHPdY/8OAAAAABzj
+dP5viBWgClUA/G9IFeALRQDtFgAha+UAAFm91Ppv6BWv+zIALjJ74jZ8L3oeAAAiNnvRDx/jaC/y
+rnH2i/arBh2v/iIAAAAAAFm2ivqtZhWv/pIAbBAEFONgGeNa6OM3GV7CgACktCNCf6mI6LgIAYIh
+gAAqMgB4qQIqQnsc41IrMQQqRn8MugHqNQQp0ASAAFh0zc6pKTEE/yEADBbZAQDI19EP2jBYdMHR
+D9owWHSD0Q8A+kBoHaALBQBYdVLRDyNGf9EPAABsEATwYOAN7/n1AIgiCTkDCYgBmCKKJyqsMFh+
+KePjBBUBGYAAKKAAA4gKKIIQ7KAHLVgEgAD6QGgdoA1FAAuAAGWv4Ikny5IqmRTKpYqZya0ooAAD
+iAooghDsoActWASAAPpAaB2gDTUAC4AAZa/g0Q8AAP//XA2gCgUA0Q8AAGwQCBbjJBvjJBTi2P3F
+9AXgGMUA4yzoJdOBAAD4QA3MJzMBAAw1EaRV6FKeKWbCgACmxClAf/kAEJPiAJ0AKFKdZIIHmxHq
+Cx4NSASAAJkQCiCGCwJlCwJjDQCHCQJhCQJhFuMPH+MN7cMICQEKgADyIKYV4A4VAOPizh9wCoAA
+nhOvz/4ghhXv//UA/9cAD3AHRQD+IEYVoAC6AACKmcmtKKAAA4gKKIIQ7KAHLVgEgAD6QGgdoA01
+AAuAAGWv4ClCIGSQ6y1AfB7i9owVDdsJrt4MuwosQH2mu4qyLuCAZKE4/ce+DaAIFQDA8A2POIgV
+D/8JCP8KL/0YL/yML/Ib8eFwDeAMBQDAsQvbAwsLRytEfAu7CQi7Cqa7/I+mHaAMBQCNsO9Snibz
+/wAALuD//+AEe6IAnQAvUp32/+AV4Pj1APHnwA3ndwEAeHF06hIEJkAFAADoRH0m4+EAAFh0UokT
+0qDrEgIkgGGAAIqiC6oBKiYCiicqrDBYfbHJrSigAAOICiiCEOygBy1YBIAA+kBoHaANRQALgABl
+r+CJJ2SfGyqZFGWu8v/7xA2gCgUAjBGLEAyAhgxghgsCaQsCZ9EPjxGNEC5Efw/Ahg+ghg0CbQ0C
+a9EPmxHqBx4NQASAAJgQCgCGCwJjCwJhDeCHCAJv6OwACdAEgABZte1kr6/t4nwZrwKAAORVCAlm
+woAA94AAQj/5MgAAAP4gqBWgCxUA+7cADfAMBQD8j6Ydp7sBACtEfAu7Cf9gAQWwDAUA92AARb/7
+egAAAAtghgtAhgoCZwoCZdEPAABsEAQY4kMCA0cMMxGoMysyhBniUCiwAIqxCYgKCiGMAgo+KIIQ
+AwI+/EBoHaANJQALgAAiNoTRD2wQBBTiNQIDRwwzEQQzCCQyhCpCASZAAChACPqYaB2gqSUAAgU+
+AwI+eYEjGOI8CGgKKIIQ6lQAClgEgAD8QGgdoA0lAAuAACI2hNEPAAAA6yQAClAEgABYdBfzQGgd
+r/82AAAAAAAAbBAEWblrEuIaE+I7DAIAKSKCCRqOA6gKiIQLgABj/+sS4mMD6DAE7jAFsTCTIJQh
+lSIS4l8T4h2EIAQzApMgEuJdwDqEIAQzApMgEuJbwDAoN0AoN0QoN0goN0wjPQFyM+0S4lbAMJMg
+xy8T4lUDIwMS4lSEIAQ0AZQgEuJThCAENAGUIBLiUYQgBDQBlCAS4lCEIAQ0AZQgxy/AMQMjAxLi
+TYQgBDQBlCBj//wAAAAS4kqDIAMTFA8zEZMgEuJHwDAjJgBX/9YQ4kaRAJIBkwKUAxHiRIIQAeow
+ohEB8DHAQATkFgACABHiQIIQIxoAAyICkhAR4j3AIZIQBOQxhAODAoIBgQAA0jABIwAAAAAQ4jiR
+AJIBkwKUAxHiNoIQAeowohEB8THAQATkFgACABHiLoIQIyoAAyICkhAR4i7AIZIQBOQxhAODAoIB
+gQAA0zABMwAAAAAQ4imRAJIBkwKUAxHiJ4IQAeowohEB8jHAQATkFgACABHiHIIQI0oAAyICkhAR
+4h/AIZIQBOQxhAODAoIBgQAA1DABQwAAAAAAXJQBXZQCXpQDX5QAQwAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFyQAV2QAl6QA1+QAFMAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACclAAdkAGdlAKelAOflAQI
+lAUJlAYKlAcLlABDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJABnZACnpAH
+HZADn5AEeJAFeZAGepAHe5AAUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANyU
+AB2QAd2UAt6UA9+UBASUBQWUBgaUBweUCAiUCQmUCgqUCwuUAEMAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAADckAHdkALekAsdkAPfkAS0kAW1kAa2kAe3kAi4kAm5kAq6kAu7kABTAAAAH//+GADSMRD/
+/goAAAAAAB///mAA0zEQ//4KAAAAAAAf//6oANQxEP/+CgAAAAAAAPQwCgAAAAAA9DAKAAAAAAD0
+MAoAAAAAbBAIJyAHiCIW4TH7wloF4XcBAOWA8WvXAoAAGOEqLoCA5qoIB3DdAAD9U8gVpO4dAK5O
+7eElF3AJAAD/gAhLoAmlACqinQt8CizCvwyqAeoWAiUH+YAAiNj3AAjwkgCdAC9iruzhGxeFwYAA
+KmKtLMJ/7KsBBHP9AAD9QAUmIgCdAJ7Y/UAFLiIAnQAvIBSk/w8PRy8kFPXgB65SAJ0A+CBIFeeF
+AQD5AAdxUgCdAOg8ECIMPQAAsEptqQUIAIYJAmHAUIgSjTLtJhwiS/0AAOsyASzPAoAAqYiYE/Ng
+CkBQCgUA6hYALYtKAACLEOtLCAvnAoAA5swIBdv9AADrxp0qkASAANEP6iQACdgEgADsRAAK6ASA
+AFh2G9Kg0Q8AwLAJjDTs1ggt+x4AAI0iZd/V+kBoHaAbxQD8ACIdoA0VAFh8WmP/v//8DA2gCgUA
+AACOImXvsC2AgC3cN/rjABXk3R0A7U0ICVAEgAD9oEAV4AwVAFh8TWP/jMCgWbiVHeDSiNj5H/bA
+kAmlAGP/nNogW/szY/8GAI4nnhGI6fvCpBXvyQUA5ekUJ2CBAAAJyQHpvQgKVwKAAOpVDARAQQAA
+mOkIVTLl5RQm6QEAAP0ACDriAJ0AaKs9qKsrvPD7oATT4gCdAO8SAiIMdQAAsE5t6QUIAIYPAmEr
+wgELqwjlyQQl28EAAP1gBsxiAJ0A68YBLcAEgABkUKn1AGgd7/qWAAAAAAAA6iQADuAEgADsFgQs
+WASAAFv8kosxiBONFOoWAC1nAoAA7IgIBfT9gADaIPsAaB3gDAUAW/xZjRDtrQgKkASAAO1NCAv3
+AoAA5u4IBuv9AAAt5p3RDwjdDPogSBXk/R0A0w9t+QUIIIYLAmMrEgLvTwwEwQEAAO27CAeMQQAA
+Lvz/bekFCECGCwJlL8kEDagMqJgojDDoxgEv+tYAACqcQJrB+4AGFaAIBQD5gIQdr/0WAAuIDPnB
+JhWv+9oAKJxA+YAmFa/8sgBsEAQd4Hga4Hkc4Hct0rQqoX4swo+j3eo6DA7uQoAA/YAARnALBQAr
+xAQrxAVZFOj6QGgdoAsFAFv9BNEPAAAAbBAEGOBrKYJ/KjAHLZECLpEE/SCkFaAPBQDrkgAmiRGA
+AO7s/yaT/QAA4pUCL3cCgADuuwgOZwKAAP1vAA2wAMYAK5EFLZEEsbv/v+AVr7sBAOuVBS93AoAA
+/WAGvGIAnQCMkO7MCA3fAoAAC8sMCwCHD99g6wAHBvMngAAe4E0pkQUr4n8JmRGp2e3ifSWGEYAA
+jNGL0JvAi9CcsZ/Qn9Er4n+wuyvmf/WgBhwfuQEAjNn5owAVr8kFAPkABAR/EgUAotIrJjr/ogQd
+5UkFAOnVESQhAQAA5NYHLS8CgADk1gYqWASAAPWABOQiAJ0AJdUQ6FgIBHgbAADsjEAn+gEAAP3g
+BGOiAJ0AyTLpRAAFAIGAAG2pBQMAhgkCYSsiQqtY/wAFjGIAnQDoJkImk+EAANEPL5UF//yYDaAL
+BQDApf3AOgWgOyUAWbpZwCDRDy3igIzRi9CbwIvQnLGf0J/RK+KCsLv70EYV7/z6AADAwPsP6BWg
+DRUAWG6SwCDRDwAAAAAAAADv1gkmk+EAANEPAMsw+mBoHeBcxQDsrDYKcASAAG3JBQsghg4CY/hg
+AEXwXkUAfqENL6ys0w9t+QULQIYEAmUpjfvpJkImk+EAANEPAAAAAOQmQiaT4QAA0Q8AAGwQBIIj
+AgJB0Q8AAGwQBIUjgyAU3/H4QIQVoVUBAOrf7xquwoAA5FQIAYC5gAD7AAQENpg5AAmIAiglBCJC
+f9EPHd/mE9/nH9/nJkJ+KyEELkJ/kmCWIaP//WAEBfbLOQAMuwKvX+8mACcoBQAAJUZ/IkZ+6yUE
+KpAEgADRDwAAbBAEiiBloFAd39jqIgMp9sKAAK7d/a/oFeAMFQD8gEAGMaoBAAaqAg3ILAjdKCcl
+Be3MDARYBQAA/W0ADD/7xQDrqgEMTkKAAAlZAgOqApojCYgCKCUE0Q+PIxvfxA8PQQv+EavrLbJ/
+Gd++LLJ+ctkZ2cDzI94NoAwFAMDALLZ/LLZ++kAIFaAARgDYwPMMRg2gDAUActEcjSGa0I4gKbJ9
+neGcIOwmASTL/QAA+W+mFe/9WgAZ36oY36qpiKjoeKEg6rZ/L4EuAADNrSqyfWqiGC2ye/1v5hXg
+AEoAAAAAAAAA7LZ/J/8pgAD6QAgVr/6mABzfm4ghrJmp6fkPAAzwDAUACcg4+W/GFa/+KgBsEAT1
+vy4F4AYVAPRAaB2gAjUA9oBAAzAAHgAAsCIoUn/oY/dyq4EAANEPAGwQBPRDqBWjIwEA8loACThT
+HQAEIgqEJoIhBUQoCkQRpCLRD2wQBIgnG9+D9QKCFe/HBQDiggkpMASAAOmBFSQggQAA50QBAqkB
+AADlhRQhEwEAAOKGCSIhAQAA9EFSDaAKRQACkggihgkLAIft33MZKASAAG2qAgUCYZ0gjGDA1OMm
+Ai5mAoAADcwCnCHRD2wQCi4iAioiGA8CAPHdjA3nNQEAHN9nLiIA/UAIFeA7BQD/QLAV4ApVAFm5
+lSoiEiQgB/o+AAQwBzUA9QAMWJFEAQAKyFH1AAxwkgCdABzfWf5NMBWgCxUA+H/AFeFqQQD8wGgd
+4ApVAOm5OQ9HAoAA+MYACzA7BQDpFgAreASAAFm5fxzfN+rfORpIBIAA9IAHahIAnQAMSxGquy2y
+nvegC+nSAJ0AK7KdDE0KLdK/DbsB6RYIJYpJgAAsIQcd3z4MDErv3z4eZwKAAA3MApywHN87/kAI
+FaM9BQD9YOYV4AkFAJm46bYGK1cCgACauf1gphWgGoUAmrMZ3zLv7gIPRgKAAJ60KbYCB4gCKLYB
+KBIIGd8W798sHEcCgAAJiAgnhp0uIhIqIhAP7gLuJhIpWASAAFjk5vRgBFESAJ0AiicPAgAPAgCN
+rPtGABWgCwUA6t4MBushAAAO2zlYea79vjYFoDsFAO0kAA0YBIAA/mBoHaAKVQBZuUHSMNEPAB7e
++o3o5BYIKAQKgAD3oAS4kgCdAAybEaq7L7Ke9+AFSdIAnQArsp0Mnwov8r8PuwHksJdmw/0AAJjo
+6RYILffmAABgADnAINEPKRoACaoC+kJGFa/5vgArKgALqgL6QkYVr/myAAAA+gCiHaA7BQDs3vgZ
+aASAAFm5IWAAFAAA6iQAAlhhAAD8AAIdoA01AFh6TmgyQsAg0Q8AAAAAAAD/+jwNoAsFAMCgWbaS
+Ht7OGt7Pjegc3sqJGPm/+riSAJ0A//3UDaALBQDAsMDKDNw0/cEGFa/9mgAf3tSfFI4g2iD9vbgF
+4AwVAO0WBi92AoAA7O4CANhBAADuFgUq6ASAAFh5SMAg0Q8AAABsEBiSEI4gFd7RiSOLIYoiKhYi
+KxYk+CRmFeAEFQD0IOYVoAgFAPggphWgDEUA/CFGFaANNQCdGfQgxhXgDyUAnxj1vYYF4A+lAP4i
+BhXgDbUA/CImFeAMxQD8IkYVoAiFAPghxhWgBJUA9CHmFaAJdQD4IaYV4AtVAPohZhXgCmUA+iGG
+FaAL1QD6ImYV4ArlACoWFPW9XgWgCfUA+CKmFeAIRQCYFIYWKxIkiRUnYX4sEiIiYX8HmSgvUICp
+KfieCBWjmQEAA5kK7pIAL1AEgAAmYj4tEiOo7gtgAI4XLBIkLRIiB+4oL1CBri74nigVo+4BAAPu
+Co7gKhYW6hIjLVgEgACo7gtgAI4YLBIWLRIkB+4oL1CCri74nkgVo+4BAAPuCo7gKhYX6hIiLVgE
+gAAI7ggLYACOGSwSFy0SFgfuKC9Qg64u+J5oFaPuAQAD7gqO4CoWGOoSJC1YBIAAqO4LYACOGiwS
+GC0SFwfuKC9QhK4u+J6IFaPuAQAD7gqO4CoWGeoSFi1YBIAAqO4LYACOGywSGS0SGAfuKC9Qha4u
++J6oFaPuAQAD7gqO4CoWGuoSFy1YBIAACO4IC2AAjhwsEhotEhkH7igvUIauLvieyBWj7gEAA+4K
+juAqFhvqEhgtWASAAKjuC2AAjh0sEhstEhoH7igvUIeuLvie6BWj7gEAA+4KjuAqFhzqEhktWASA
+AKjuC2AAjh4sEhwtEhsH7igvUIiuLvifCBWj7gEAA+4KLuIAKhYd6hIaLVgEgACo7gtgAI4fLBId
+LRIcB+4oL1CJri74nygVo+4BAAPuCi7iACoWHuoSGy1YBIAAqO4LYAAuEhAsEh4tEh0H7igvUIqu
+LvifSBWj7gEAA+4KLuIAKhYf6hIcLVgEgAAI7ggLYAAuEhEsEh8tEh4H7igvUIuuLvifaBWj7gEA
+A+4KLuIAKhYg6hIdLVgEgAAI7ggLYAAuEhIsEiAtEh8H7igvUIyuLvifiBWj7gEAA+4KjuAqFiHq
+Eh4tWASAAKjuC2AALBIhLhITLRIgL1CNB+4oKEL9ri76IGYVo+4BAAPuCo7g6hIfLVgEgACbEaju
+C2AAjBEuEhQtEiEvUI4H7igoQv6uLvogRhWj7gEAA+4KjuDqEiAtWASAACsWI6juC2AALhIVLBIj
+jRMH7igvUI+uLvif6BWj7gEAA+4KjuDqEiEtOASAACcWIujuCAvYBIAAC2AAjhEqFiQpEhItEhWP
+FSsSEywSFOgSESf4QQAA7xYFJdhBAADrFhMmYEEAAOwWFCRAQQAA6BYRJuhBAADtFhUkyEEAACkW
+Eo0fiRyIG4weix3vEhAkQEEAAOgWCyZgQQAA7BYOJdhBAADrFg0n+EEAAO8WECTIQQAA6RYMJuhB
+AACdH4kWjRmPGusSByIhAQAA7BIIJuhBAADtFgkn+EEAAO8WCiKoQQAA7xIEJmBBAADsFggl2EEA
+AOsWByTIIQAA6RYGJ/v9AADvFgQv4iYAAIkQjxOLEo6QiJOMko2Rq4inzKrdr+6ekJ2RnJKYk9EP
+AGwQBCkiFfigAATwOHUA6YwMASBBAADzIABFP4sFAOukECVQRQAA+QAF02IAnQArCgBZsk0sIhUr
+IhTtzREJQASAAPxCRhXugD0A/WsADbAJNQD6QmYV4AolAG2qDI6EDg6O7oYEJEARAAAPAgDTD9MP
+bZoh6YIEJEBBAACKgYuCjIMJCY4KCo4LC44MDI6ZgJqBm4Kcg+tEAAlQBIAAW/62iiCIIokhjyMI
+CI4JCY4PD44KCo6aIJ8jKSYB6CYCKUAEgAAZ3YMCAIYDAmH4AAoV4Am1AG2aAggAitEPAAAAAAAA
+AP2BABWgCwUAWbIe+EBoHaAJRQDTD22aIemCBCRAQQAAioGLgoyDCQmOCgqOCwuODAyOmYCagZuC
+nIPqJAAKWASAAFv+lNpA//v8DaA8hQAAbBAGKSIV+EKIFaBGBQDTD/iAAEV1mQEACWYMdKsBsYgq
+JhUGKgzoJhQlUUEAAPaAB7OiAJ0A6zQAC2AEgABZsfL4QGgdoAlFANMP0w9tmiHpggQkQEEAAIqB
+i4KMgwkJjgoKjgsLjgwMjpmAmoGbgpyDJSwQ6iQACtgEgABb/nEGRwz24AWO0gCdAOY0CArQBIAA
+9uBoHaADBQDkFgAqQASAAPjIaB2gCUUACgJnCECGCgJlCCCGCgJjCACG6gwACUAEgABtmiHpggQk
+QEEAAIqBi4KMgwkJjgoKjgsLjgwMjpmAmoGbgpyD6iQACtgEgABb/lTqVAABmAUAAOZswCIhAQAA
+722aakAEgACLEAo8EQvLCOx8DArQBIAAWbG60Q8AAAAAAADrNAAKYASAAFmxtdEPAAAA9mAARjAD
+BQD8IAYVr/8mAGwQBBjdFxndFRrdExPdFpMjmCKZIfpABhWgCwUAKyYVKyYU0Q8AAABsEAbeIOTi
+ECpgBIAA50IHK9AEgAD7uggF4Bg1AONCFSmQBIAA53IOIvvpAAB4+ycY3QQI+AqIgJoTnBLuFgEs
+ACKAAACTECqyoexUAAlYBIAAWbOMZKXH8oKmFeACBQDRDwAAAAAr4hILm1LuFgEl/0GAABrc7eMW
+AClYBIAA6qLDKuAEgABZs39kpXoa3ObbIOqixSrgBIAAWbN6I30F5KbPYZoBAAAa3ODbIOqixyrg
+BIAAWbNz90fgDeOGBQAa3NrbIOqiySrgBIAAWbNtZKbEGtzV2yDqossq4ASAAFmzaPtAQogSAJ0A
+KzDlwVj1YCvgYgCdAGm3ISU05YsQ+oKmFeACBQDRD5MQKrKZ7FQACVgEgABZs1tkpwKLEPqCphXg
+AgUA0Q8AkxAqsqfsVAAJWASAAFmzU2WvGvogaB2gC7UAWOFg+gAiHeADBQDqszgFAOGAAOoSAitY
+BIAAWbG+yKkc3LeNEQysNizWF2UzJY0Q/IKmFeACBQDRDy5AbmTu0pMQKrK97FQACVgEgABZszxl
+rr/6IGgdoBtlAFjhSfoAIh3gAgUA6rI4BQCpgADqEgIrWASAAFmxqCx9AyrFKGUi0Y0Q/IKmFeAC
+BQDRDwAAkxAqsq/sVAAJWASAAFmzKGSitxrckNsg0w/qopsq4ASAAFmzI2WuWvogaB2gC1UAWOEw
++gAiHeACBQDqsjgFJ+mAAOoSAitYBIAAWbGOLEBv8YAnPtIAnQBkpN+KE/oAoh3gDNUAWOEN0qDR
+D5MQKrK17FQACVgEgABZsw1lrsf6IGgdoBslAFjhGmSiNStAbmS3b+oSAitYBIAAWbF6LEIWCsw2
+LEYWixD6gqYV4AIFANEPkxAqsrPsVAAJWASAAFmy+2SiMxrcY9sg6qKtKuAEgABZsvZlrm36IGgd
+oAvlAFjhBGSh2+oSAitYBIAAWbFlK30CKrUUixD6gqYV4AIFANEPkxAqsqXsVAAJWASAAFmy52Si
+KhrcTtsg6qKxKuAEgABZsuJko4ca3ErbINMP6qKfKuAEgABZst1lrgf6IGgdoAt1AFjg6mShdStA
+bmS24xrcP4sS6qLrK2AEgABZstNlpkYrQG/AyAy7AitEb4sQ+oKmFeACBQDRDwAAkxAqsrvsVAAJ
+WASAAFmyyGSh7xrcMNsg0w/qop0q4ASAAFmyw2Wtn/ogaB2gC2UAWODQZKENK0BuZLZqGtwlixLq
+ousrYASAAFmyuWSmeStAbywK/Qy7AStEb4sQ+oKmFeACBQDRDwCTECqyo+xUAAlYBIAAWbKuZKG3
+GtwW2yDTD+qilyrgBIAAWbKpZKLaGtwQ2yDqorcq4ASAAFmypGSsXxrcDNsg6qK/KuAEgABZsp9l
+rEwa3AeLEuqi2StgBIAAWbKaZaRSixErshILmVLImWiSB/kgD2HSAJ0AjBErxhLygqYV4AIFANEP
+kxAqspPsVAAJWASAAFmyjWShehrb9Nsg6qKVKuAEgABZsohlrLT6IGgdoAslAFjglcqiGtvsixLq
+ousrYASAAFmygGWslIoT+gBCHeAM1QBY4HfSoNEPwCDRDwAAAPogaB2gC/UAWOCHZK/q6hICK1gE
+gABZsOnrEgAj4AsAACrFFfqCphXgAgUA0Q8AAPogaB2gGxUAWOB7ZK+6LUBuZNUGKUBv8T/hl5IA
+nQDxP+FX0gCdAOoSAitYBIAAWbDXLkIXCu42LkYXixD6gqYV4AIFANEPAPogaB2gC6UAWOBpZK9y
+L0Bu0w9k9HbqEgIrWASAAFmwyShBNPsADwKiAJ0AihP6AUId4AzVAFjgSNKg0Q8AAAD6IGgdoBtV
+AFjgWWSvMuoSASpYBIAA7BICK2gEgABY37iLEPqCphXgAgUA0Q8AAAD6IGgdoAuVAFjgTWSvAilA
+bmSUGRrbo4sS6qLrK2AEgABZsjZlolwrQG+NEPyCphXgDBUADLsC+o3mHeACBQDRDwAAAAAAAAD6
+IGgdoAsVAFjgO2SuuhrbkosS0w/qousrYASAAFmyJWWrKYoT+gAiHeAM1QBY4BzSoNEPAAAAAOoS
+AitYBIAAWbCS9UAV8pIAnQDHL9EPAPogaB2gC4UAWOAn+gAiHeACBQDqsjgFAUmAACxAbg8CAGTD
+gxrbgesSAitgBIAAWbINZaJuLUBvwOgO3QItRG9lLjWPEP6CphXgAgUA0Q8A6hIBKlgEgABY4B1l
+r5wrMOVj+nMAAAAA+iBoHaAbBQBY4A1krgIoQG7TD2SC9eoSAitYBIAAWbBtKUIYixArRhUKmTb4
+gwYV4AIFANEPAAD6IGgdoAs1AFjf/2StyhrbVosS0w/qotErYASAAFmx6ePbWx0HLgAAixErshIL
+yVHImWiSB/k/+RHSAJ0AjhGMEAO9AS3mEvyCphWgAgUA0Q9lLYSPEP6CphXgAgUA0Q/qEgIrWASA
+AFmwTCpFNIIQ8oKmFaACBQDRDyV9BPSwABXgCwUA+qBoHaCMBQBZr93qEgIq2ASAAFjgGysw5cDE
+DLsC+nwmHae7AQD6fKYd7+X+AC0w5fogSBWgDiUADt0C7TTlK1gEgABZsDQrMOX6fIYdr+VuAACK
+ElmkMS8w4n+pFIoSWaQu3KDqEgIj2BMAAFmxtGSht8Ci/bZKBaA7BQBZtUHHL9EPGtsXixLqotMr
+YASAAFmxq2WuPosRK7ISC8lRaJEKaJIH+T/xadIAnQAe2xgDvQEO3QKOEYwQLeYS/IKmFaACBQDR
+D4oT+gEiHeAM1QBY35bSoNEPAAAA+iBoHaALRQBY36dkrGoa2v6LEtMP6qLRK2AEgABZsZHj2wYd
+BWYAAIsRK7ISC+lRyJlokgf5P+4R0gCdAI4RjBADvQEt5hL8gqYVoAIFANEPGtrtixLqotsrYASA
+AFmxgWWtlosRK7ISC5lSaJEKaJIH+T/sKdIAnQAf2vCCEe+/AgPoFwAA7yYSJuoBAAAs0OXA4Q7M
+AizU5fKCphXgAgUA0Q+KE/oBAh3gDNUAWN9o0qDRDyN9BSM8gCsw5cDBDLsCCwtH+nymHe/gEgAA
+ABrazosS6qLTK2AEgABZsWFlrReLESuyEgvpUWiRCmiSB/k/6DHSAJ0AHdrRA7wBDcwCjREs1hKL
+EPqCphXgAgUA0Q8AAAAAAPbgAEMwCwUA+sBoHaCMBQBZr17BUOoSAitYBIAAWN+cKzDlBbsC+nwm
+Hae7AQD6fKYd794SAAAAKzDlwMgMuwILC0f6fKYd792+AIoT+gDiHeAM1QBY3zjSoNEPihP6AgId
+4AzFAFjfNNKg0Q+KE/oBQh3gDMUAWN8w0qDRD4oT+gEiHeAMxQBY3yvSoNEPAIoT+gECHeAMxQBY
+3yfSoNEPihP6AkId4AzFAFjfI9Kg0Q8AihP6AiId4AzFAFjfHtKg0Q+KE/oAwh3gDMUAWN8a0qDR
+D4oT+gDiHeAMxQBY3xbSoNEPihP6AMId4AzVAFjfEdKg0Q8AbBAIIyAH2iDyIAAB8AuFAO0UAAng
+BIAAWHaA7dqGFQbJgACMIA3MApygG9qDiifoEgApzwKAAAuZCOiWACUAkYAALqIML6ww/8AE5WIA
+nQDxRcAN4AMFACOlFPtEABXvzAUADLsB6KIMJdkBAACbqeumCCVIwQAAeYlfHNpI/bTeBe/+9QCe
+oJMn6tN6dVghAAAtwn0Z2mqb0ZmjKMJ9KKYCL8J/68Z9J/gFAAAvxn8jJAQjJAWTIiMkICMkISMk
+IiMkI5MpkyqTK5MsIyUa8kNkHeACBQDRDwAA2iBY8tP6QOgVr/5eANogWPLQ2iBY8sSKJ2P/WACO
+ImTgUwUPR2jyaMAg0Q8ALsKA6+YBJmgLAACdoynCgJmiKMKC68aAJEAFAAAoxoIjJAQjJAWTIiMk
+ICMkISMkIiMkI5MpkyqTK5MsIyUa8kNkHeACBQDRDysgB9og+iAABfAMBQD7YwAV4A0FAFh1f2P/
+kB/aFp8UjiDaIP20ZgXgDBUA7RYGL3YCgADs7gIA2EEAAO4WBSroBIAAWHSJwCDRD2wQBIgiZYCf
+JiAHF9n3BgZB6jIFK0cCgACniCuCniSsH/mz3AXkRB0AdLN/KIKdCWsKK7K/C4gB7YQABAPBgAAc
+2fkMAIdtSQIIAmGINB7Z+Z7QKSIAHNn66tYDJthBAADs1gIszgKAAOlJAgHggQAA6dYBKVAEgAAL
+gAAMaBH3AABEd/UBAOSGnSeUdQAAiif6AUId4AwFAPtEABWgDaUAWGjW0qDRD8Ag0Q///iANoAgF
+AOokAApoBIAA+sMAFeAMBQBYdUDAINEPAGwQBIcnKnkUH9nU+OKkFe/NBQDocgglUAcAAOxyCyVS
+gQAA6pN3c9iBAAANuwGrmejBdHTJAQAALo0B6nUUJ1KBAADqk3F8MASAAHmhfZp47wAFCzgEgAAH
+AmEHAmEHAmEHAmEHAmEHAmEHAmEHAmEHAmEHAmEX2bmXYIUgk2WUZPOzrgWgB6UA4mYCKq4CgAAH
+VQLlZgErEASAANEPwCDRDwAAAAAAAPeAaB2gCAUA+OFmFa/+cgAImgwKugwqrQEqrOD64QYVr/4i
+ACy8QPzhBhWv/fYAAGwQBMePCFgDCDgCCEgDqGjoIggLgQqAAAIiGKIy0Q8AbBAEBDgDCFgDqGjo
+IggLgQqAAAIiGKIy0Q8AAGwQBAQ4AwhYAQhIA6ho6CIIC4EKgAACIhiiMtEPAAAAbBAEBUgDCDgB
+CFgDqGjoIggLgQqAAAIiGKIy0Q8AAABsEAQT2aMDIgLRDwBsEAwrIhAosAUpCpJ5iRspIhL/IqAD
+EIQFAOPZmxTgNoAAcJcKKrBuaKEXwCDRDwB/lnIb2ZYLmwH6QkYV4AIFANEPIyIYHtmSjTqMIsBB
+/6YADrC9UQDtNgomBcmAANogWPIAGNmMLzIRCP8CLzYRiSJkkKoY2WGYEI4g2iDv2YYY2ASAAO8W
+Ai92AoAA9cYADzAMFQD+ICYVoA0lAFhz1cAg0Q8Aj74d2Xex/+39AgDggQAA/2HGFe/+9QD+ISYV
+qJ0dAOnEAilQBIAA/YBmHeiZHQD5gCYd6JkdAOnEACDYQQAAWPCIKCIS2iDv2WsQ2EEAAPMGAAxw
+DDUA9QYADDANBQD4QkYVoA4FAFm0P8Ag0Q/aIFjb0WWvU2P/CwArIAfaIPogAAXwDAUA+2MAFeAN
+BQBYdJlj/zkAbBAEJTENDFUR6iQACtgEgABYN4frpAAFAjmAABjZKCoxDQgAh+i0AAUAaYAAbakC
+CAJhKjENbakFBACGCwJh2iD8oGgdoAsFAFg3PikiEir6fwqZAfhCRhXgAgUA0Q/HL9EPAGwQCCMi
+GBnZPigyEQmIAug2ESlQBIAAWPHzJCAH2iD0IAACMAuFAO0UAApgBIAAWHUh7KQABQoRgAAZ2SSI
+IOmIAgnQBIAA+YAGFaAbpQBZtJcd2R+MPuoSACpfAoAArbvqtgAmAHmAAOsyEClQBIAAC8AAiifk
+oA5leMEAAI6s/8AHLWIAnQDxRmAN4AQFACSlFPtEABXvzAUADLsB6KIMJdkBAACbqeumCCVIwQAA
++QAFRWIAnQAc2N/9sgwF7/71AJ6g5CYHJVghAAD7oAYjogCdAC3CfRnZAJvRmaMown2Yoi/Cf+vG
+fSf4BQAAL8Z/lC6ULyQmECQmESQmEiQmEyQmFCQmFSQmFiQmFyQmGCQmGSQmGiQmHCQmHSQmHiQm
+HyQkBCQkBZQiJCQgJCQhJCQiJCQjlCmUKpQrlCwkJRokJRv6YGgdoAsFAPwAAh2gDSUAWPX1wCDR
+D9ogWPFZ+kDoFa/9TgDaIFjxVtogWPFJiidj/w8Y2NsvMhGOIgj/Au82EScBmYAABQlHaJJDwCDR
+DyjCgOuGASZ4CwAAn6MuwoCeoi3CguvGgCboBQAA/ZBGFe/88gArIAfaIPogAAXwDAUA+2MAFeAN
+BQBYdAtj/7Uf2KGfFI4g2iD9sZIF4AwVAO0WBi92AoAA7O4CANhBAADuFgUq6ASAAFhzFcAg0Q8A
+AABsEAYZ2JSZEIgg/IBoHeAMFQDjFgIsRgKAAOyIAglQBIAA6BYBKNgEgABYcwjRDwBsEAorIhgr
+sgcrsg4qIhAosCItsCEssCAusBwjsB3vsB4uZgKAAO3MAg92AoAAA+4CLbAA47AfL3YCgAAP7gLv
+sCMuZgKAAOjMAg92AoAA4+4CDmYCgAAPzAL/jwAMNd0BAP0EQCBQM/UAL6ISfvEID+gMZoACLqYS
+LqITfOEIDskMZpACLKYT/azABlAqNQD7oAvEICxFAP2gDSwgLmUA/6AOhCA/JQD/oBBsYgCdAHPR
+EMCi/bEMBaA7BQBZso7HL9EPKLAYKbAZ6rAaLEYCgAAJiALpsBssRgKAAAqIAgiIEQmIArGI+ELG
+FaACBQDRDyMiEGQwcSmwECqwES2wGuywEizOAoAACpkC6rATLM4CgAAMmQLssBkszgKAAAqZAuqw
+GCSFKQAACKoRDKoC7LAbLVYCgAANqgIIqhEMqgKxquomFiSEpQAAKSIS69hhFMAogAALmwErJhIs
+MAUtCpX9gAoUYgCdAMAg0Q8AACywFC2wFe6wFi5mAoAADcwC7bAXLmYCgAAOzAIIzBENzAL9lqAA
+UIQFAC0iEnjfyekcFCDwIQAA/SBmHaiMHQD5IEYdr/r1APoghhWoiB0A+SAmHaiIHQDolAAl+CEA
+AO8GAAjYBIAA7oMeCVAEgABY71MoIhLqJAAI2ASAAP+wagXgDDUA9QYADDANBQD4QkYVoA4FAFmz
+C2P/TymwGCqwGeywGizOAoAACpkC6rAbLM4CgAAMmQIImREKmQKxmekmFilQBIAAWN/5wCDRDwAA
+KrAYLLAZ7bAaLVYCgAAMqgLssBstVgKAAA2qAgiqEQyqArGq6iYWKVAEgABY34TAINEPLLAYLbAZ
+7rAaLmYCgAANzALtsBsuZgKAAA7MAgjMEQ3MArHM7CYWKVAEgABY36rAINEPAPpgaB2gC2UAWPpj
+wCDRDwAALbAYLrAZ77AaLu4CgAAO3QLusBsu7gKAAA/dAgjdEQ7dArHd7SYWKVAEgABY3yLAINEP
+bBAIKCAEJCIY96/gBaAZhQB5gQPAINEPikr/XsAM0IvlAC9AeHvx6ywgBRjX8O7X8BZ/EYAAJSIS
+KSITKzELCFUBJSYSjTmrmX3oNy4iESkmE/KgBd5SAJ0AZODmiux8p7GI6/vAaB2gCwUA/AACHaAN
+JQALgADAkOkmESyQBIAA0Q8A/a+4BaAKJQD+QAgVoDsFAFmx3SkiECmQBSoKlfs/+4QiAJ0Aikrz
+X/s00gCdACMiGI06jCLAQfemAA6wvVEA7TYKJgSJgADaIFjwNB/XwC4yEQ/uAi42EYgiZICCHdeV
+nRSJINog7Ne6ENhBAADsFgYszgKAAPUmAAywDSUA+CCmFeAMFQBYcgnAINEPHNe5jeD/wLAVoApV
+APQgBhXgOwUAWbG5LiISwJD4QiYV77/1AA/uAe4mEiyQBIAA0Q8A2iBb/vNlr0rAkOkmESyQBIAA
+0Q/aIFjaD2Wve2P+sAArIAfaIPogAAXwDAUA+2MAFeANBQBYctdj/2EAbBAKKCAEKiIYKQoY6YEJ
+fTgEgADAINEPAIuq/36gDNCN5QAsoHh9weotIAUe15Tv15QW/wmAACsiEpoYDrsCKyYS82Am21IA
+nQCOLIg2JTAg+mFEFa/0xQD/AAs9JWUBAAoKTiqs2/VABAUwhLUA9YAUjCIAnQAPuwL7wABEsDwV
+APhBhhXgJCUA+kJGFeAqFQD6wkYNoC9VAH9hCnxhB/TAK0UiAJ0ALjAwKDAxKSBo6jAyL3YCgAAI
+7gLoMDMvdgKAAAruAujuEQTIGQAA6O4CDIIKgAD0RkQVoZ6dAPUgI49QDAUA/TAAFDWuAQAIqgIZ
+12QY1yKVF4mT/CEmFeAPFQDrFgYqbkKAAASZLOvXXRSDWYAAlxUogrwlsvsrsvWqiOVSFCxGQoAA
+qLttmUwoUQSJUP8AABQ1eh0A6JkIC7+CgAAHmQwpnf/5J+gV5IoBAACBBAD3GueZAQwCCoAA/YAg
+FaGZnQDqSggEgHGAAIm6cpkEiL5+gX+r2/2uhAWgCiUA/EAIFeA7BQBZsT8pIAUqIhgqFgWZGRzX
+PI8ViBkpIgAu8gDv8HgraASAAPggBhXgCiUA+CAmFaA7BQBZsTIoIhAogAUpCpX5H/IcYgCdAIkY
+iZrzP/G80gCdAPpAaB2gCwUA/AACHaANJQBYA63AINEPAAAAAO8SCCX84YAAL/B4LbAF+kImFeCK
+tQD74BpFIJilAPmgGgQgmbUA+aAZxGIAnQAqCpb7oBlsIgCdACwKmf2gIJUiAJ0AwtH8wAgEYA6F
+AML1/sAHtGIAnQAoMEEsMEAtMDwpMD3vMD4uZgKAAOjMAg7uAoAACd0CKDA/6TBCLu4CgAAP3QLv
+MEMuZgKAAOnMAg7uAoAA6N0CDmYCgAAPzAINyAzqIhAkBIuAAC+iEn3xCA/YDGaAAi2mEi2iE3zR
+CA3JDGaQAiymE4y8DswC/WGGFaAqVQD6wAR0IgCdAMPR/MAJ9GIAnQDC4f7AEBQiAJ0AwvL+wB1E
+YgCdACgQEGSNFWADFQAAAPgAYh3jy+EA/T/rPiIAnQApMCQsMCXoMCYszgKAAAyZAuwwJyzOAoAA
+CJkCCJkR7JkCBUARAAD5DQANf/TiAAAAAC0wI8DxDf05LbRBLLBB/CIGHaAqVQD63/elIgCdACgw
+IfEf+3/SAJ0AKDBBLDBALTA8KTA97zA+LmYCgADozAIO7gKAAAndAigwP+kwQi7uAoAAD90C7zBD
+LmYCgADpzAIO7gKAAOjdAg5mAoAAD8wCDckM6iIQJISLgAAvohJ98QgP2AxmgAItphItohN80QgN
+yQxmkAIsphMtMDgvMDmMvOgwOi7uAoAAD90C7zA7Lu4CgAAI3QLq1qQe7gKAAA/dAu7MAgboBQAA
+LSYWnLz7YWYVr/t6AC4wJC8wJSwwIegwJi92AoAAD+4C7zAnL3YCgAAI7gII7hEP7gLxgBVGEgCd
+AC8wTCgwTekwTi/+AoAACP8C6DBPL/4CgAAJ/wII/xHo/wIPEx4AACoiEOqiGCeS8YAA/0ASs+IA
+nQAvthItMEgoMEnpMEou7gKAAAjdAugwSy7uAoAACd0C7tZ8Hu4CgAAI3QItthQoMDYsMDQqMDX8
+ZvAV4AkFAOm2FS5mAoAACswC6bYTLmYCgAAIzALutgsuZgKAAA3MAv1hphWv+EIALzA4KDA56TA6
+L/4CgAAI/wLoMDsv/gKAAAn/Agj/EQj/Au7WYhf4BQAALyYW/2FmFa/3bgAqIhHTD2ShRYqnK6Ee
+KAqQ+WAH6qIAnQAtCmD/egAVoAolAP2srAWgOwUAWbBPY/xxAAD/7mgNr/r1AAAAHNZQ6RIGLvAE
+gAD9YAgV4ApVAPggBhXgOwUAWbBELSIS+kIIFaBOBQAO3QItJhIuMEErMEAsMDwvMD3tMD4t3gKA
+AO67Ag5mAoAAD8wCLjA/7zBCLmYCgAANzALtMEMt3gKAAO+7Ag5mAoAA7swCDd4CgAANuwIMvQz3
+v9HAEgCdAC2iEnzRCA3PDGbwAiymEiyiE/uf0PRiAJ0ADLgMZooT+0JmFeACBQDRDwAA+iEIFeAJ
+BQApJhEqsgcpPCD7QcgVoAw1AG3KBQkAhgoCYcAg0Q+JrtMP+SYAFeAMZQAqPCBtyQUKIIYJAmPA
+INEPHNYV6BIHL3gEgAD/YAgVoAolAPggBhWgOwUAWbAIY/tUihgsMQuKp7/M+0PEFevMIQAMzREp
+3DD5f/WT4gCdAImu5c+qZMjBAABj+XgALDA4LTA57jA6LmYCgAANzALtMDsuZgKAAA7MAgjMEQ3M
+AurV+hZgBQAALCYW+2FmFa/9KgAqIhAqohjDsPogBhWn3B0A/avkBaAKJQBZr+hj+tQvMEwoME0q
+IhDpME4v/gKAAAj/AugwTy/+AoAACf8C6qIYL/4CgAD55gAPv/72AAAAbBAEiScrmRTqkgklgEmA
+AMihWPcC0Q8AbBAEiCIjIAfxAKAN4TMBAMAg0Q8AAIknKJkU9yHIFaelAQDkkgkkCemAABfVghXV
+hPlACdFSAJ0A9GAGOhIAnQAMORGlmSuSngc8CizCv/dgCYpSAJ0AK5KdDLsBZLDWKSBA9SAIKJCK
+JQD1IARpEgCdAPWgBCqQCgUA3UD+gQQV4AwVAPpAaB2n6gEAWHDDJPqXJvpo7iISKZ8CgAD0YABB
+8A9FAO82nSEZIQAA88dGDeAFBQAqIhKmqyyyJyS0fS6yJp7ALbImnNEltiblticlU4EAAFmwyCki
+EsCB8y8ADPAPBQAJjzhk/8nkJAUpUASAAFmwwMAg0Q8A+sBQFa/97gAc1U6KyGqhfww5EaWZK5Ke
+Bz0K7dK/KAQKgAD3YAQaUgCdACuSnQ27AWSwd7CunshlvyiIQOs8GClQBIAA/6saBeeIwQD4SAYd
+oAwVAP6ABhXgDUUAWHCxwCDRDwAAAAD/+wwNoAQFAGP/CykgQAiZEPiABhXv+wIAAAAAAAAAAP/7
+VA2gCwUAwKBZrO4c1SqKyPlf+5CSAJ0A//5IDaALBQDAsMDaDa00/YEGFe/+DgAAAABsEAaIIiwg
+B/EAgA3hzAEAwCDRD4knLZkUBQ5H5pIJJoShgAD5wAZpUgCdAC8gQRvVE+TVFR4YBIAA8exsDeAF
+RQD2AAId4A0FAOzKEQYluQAApKooop4Lzgou4r/1AAlb4gCdACqinQ6qAdug7BYAJQaBgAAvIEFl
+8PIHDkfvYQgraASAAPpAaB2gDBUAWHBVDDkRpJn1M6YV75h1AOgkBSlQBIAAWbBmwCDRDwAAAAAA
+AAD//bANoAYFAB/U8o7498AGeJIAnQAMOhGkqiiinvUAB0PiAJ0AKqKdCzgKKIK/CKoB5KDWZ0v9
+AAD54QYV7/3qACogQAiqEPrABhWv/LYAAI+eLfAEJ/AFHtUu5fAGLu4CgAAH3QLv8Acu7gKAAAXd
+AgjdEQ/dAg7dASXcZ/SOAArwh5UA9KCAFe/8NgCNYIsQ7NUgGVAEgAD7YwAV593BAO0kQCroBIAA
+/MAGFaAMFQBYcEDAINEPAAAs3Ejr3GcpcASAAP7AaB3kux0AWa9k+0BoHe/7zgD/+2wNoAoFAJ0R
+/CAGFaAKBQBZrHwf1LiMEI74jREb1LT53/jAkgCdAP/6yA2gCgUAwKDAigjoNPnhBhWv+o4AbBAE
+iCIjIAfxAIAN4TMBAMAg0Q+JJyiZFOaSCSQHGYAA9alGBeeVAQD5IAbZUgCdAOTUohGlmQAADDkR
+pJkqkp4FPAoswr/3QAaqUgCdACuSnQy7AWSwfS0gQfGrnA3gCgUA3WD+wQQV5+oBAPpAaB2gDBUA
+WG/oDDgR9QAARDAPRQD/E6YV7551AO4kBSlQBIAAWa/4wCDRDwAX1IeKePdABCCSAJ0ADDkRpJkr
+kp4FPArswr8oBAqAAPdgBApSAJ0AK5KdDLsB5LB1ZWv9AACdeGW/gY9g6zwYKVAEgAD/qZAFp//B
+AP5IBh3gDBUA/sAGFaANRQBYb+jAINEPAP/8dA2gBgUAKCBACIgQ+MAGFa/8fgAAAPoRIh2v/R4A
+//zEDaALBQDAoFmsJop4+V/7qJIAnQD//mANoAsFAADAsMCaCak0+OEGFe/+IgAAbBAEiiooohgo
+gAUpCnN5gSaJJyuZFOySCSWAsYAA2yD+AEIdoI3lAFhujMAg0Q8A//+oDaAMBQCIrxvUnusmCyF4
+gQAA/wAGFeAMBQDoJgklSOEAAPhBBhXgDSUA/0HmFe+ehQDuJAUpWASAAFhss8Ag0Q9sEASIIsiH
+wCDRDwAAAAAAiTckIAcqmRT1qHAF4UQBAO2SCSUFQYAA6tQxGk8CgAClmSuSngpMCuzCvygECoAA
+92AEglIAnQArkp0MuwFksIL6QGgdoAxVAP5hBBXgjuUAWG98+GEIFeAPBQDoMgkqdwKAAPXAAEdw
+DUUA7eadJICBgACfO5mAijiYoZ84nzmLPCQwRf9lYAffnLUALDQFjS4uLDj/v/r1IgCdAPif+rDS
+AJ0A+kIIFaALNQBY9qXAINEP2jBZr3pj/9P//WANoA0FAOtMGClQBIAA/AAiHaANRQBYb3zAINEP
+AGwQCBvUVSoxDCuyfxzUVPhiEBXgFWUA+0n2DeAEBQB8oUfbMPogaB2gLAUAWaiw8IDgDeANJQCM
+QAjMEQ3MApwR2xD/qI4F4AwlAPSNAAkwDRUA5dU5CVAEgAD+oGgdoA0FAFmu/sAg0Q9okU1okg9o
+lCnAUP/+pA2gBAUAAAAA/UDmDaAVZQB7owJgAAHAUNowWPYd//4kDaAEBQB8oYH7X/vy4gCdANow
+WPX51KD//bwNoAUFAAAAAADaMFj2KeSkAAUAYYAA//1YDaAFBQD//TgNoAXFAGwQBCkwE/EhIA3g
+9YUA9SAGeJIAnQDAINEPAACEJ4gwKjARhE7iPBgkLXyAAPoAAh3gTAUA6kQEIigPAADoMBIiqLEA
+AOhEBSrQBIAAWah9JE0D9I2AFaALBQD6gGgdoQwFAFmoeNpQ7DARKVgEgABY9jzaQOwwEiHZYQAA
+WPY5wCDRDwAAAAD8HAIdoAsFAOpEAiIwCwAA6DASIzMxAADoRAMrUASAAFmoZiRNA/SVgBWgCwUA
++oBoHaCMBQBZqGHaYOwwESlYBIAAWPYmpTvsMBIqUASAAFj2IsAg0Q8AAIQnhE7AsOowESJIFwAA
++yxGHaDsBQDoMBIiOBMAAOiUYyvQBIAAWahPJk0F9twAFaALBQD6wGgdoIwFAFmoSdpw7DARIdhh
+AABY9g6lO+wwEitQBIAAWPYL6iQAClgEgABY90DAINEPAAAAbBAEF9N7FtPOJ3K/JmKJpHcJdxGn
+ZoRt8kBgJaiDHQDwgoAN58TBACwkUottCwtfKyRTim0KihQqJFSJbSkkVSgkViMkV9EPAAAAAPJK
+5h3ogx0A+ErGHaBFBQD0SkYd4A8FAP5KZh3gLoUA/kqGHa/9hQAtJFXRDwAAAGwQBogi8QFwDec1
+AQDaIFjsAYkiy5VoMk7AINEPAAAA6iIQKVgEgABY1ktoMmmKJ4ys+0YAFaALBQDqzQwGYyEAAA3L
+OVht9NKg0Q8AKyAH2iD6IAAF8AwFAPtjABXgDQUAWG66aTKwH9NRnxCOINog/acqBeAMFQDtFgIv
+dgKAAOzuAgjYBIAA7hYBKugEgABYbcTAINEPwCDRD2wQBiMiGBrTZ4k6iCLAQfsmAAywuVEA6TYK
+JAEhgADaIFjr1RzTYSsyEQy7Ais2EY0iZNBGBQ5HaOJcwCDRD9ogWNXL/16MDef1AQBo8ngc01OK
+JysyEYis7LsCBVDBAAD6YiYV4AsFAOqJDARDIQAACYs5WG3B0qDRDwArIAfaIPogAAXwDAUA+2MA
+FeANBQBYbodj/50AHtMenhCNINog7NNCGNgEgADsFgIu7gKAAPWmAA6wDBUA7RYBKugEgABYbZHA
+INEPwCDRD2wQCCkwEBrTV/UgBICQAjUAaJIgaZQYizYqon8JuxELqggooAUpCpX5AAXEYgCdAMAg
+0Q8AizYqon8JuxGrqoKqjDDAQfJBCBWgnSUA49L9Fnw8gAAsoAX9gASMYgCdAI4iZODq2iBY65GP
+ImTw8JMUiCDaIOnTOhDYQQAA6RYGLEYCgAD1BgAMMAwVAPggphWgDSUAWG1pwCDRDwDaMFj3V/9Y
+oA3gDXUAi6eLviyyjgyeVn7QJQx9WH0gH/+mTAXgDCUA+2BAJeANBQD9YiYd4A4FAFmt38Ag0Q8A
+WPaNwCDRD8CyWPVewCDRD2QvPyUiGBjS+Y9ajiL55gAPsL9RAO9WCicDqYAAAioCWOtnGtLzKVIR
+CpkCKVYRiyJksGaTEI4g2iDv0u4Y2ASAAO8WAi92AoAA9cYADzAMFQD+ICYVoA0lAFhtPcAg0Q8A
+AOoiEClYBIAAWNWlwCDRDwArIAfaIPogAAXwDAUA+2MAFeANBQBYbhtj/vPaIFjVSWWvmGP+qQAA
+KyAH2iD6IAAF8AwFAPtjABXgDQUAWG4RY/99AGwQBIguIyw4c4EtKSISep8yiy6Is+okAApgBIAA
+67zgKugEgAALgACMIu0gBS4AXgAAyNOOLnPp18Ag0Q8AAAAAAAAA/EAIFeAKVQD9pbwFoDsFAFms
+x8Ag0Q8AbBAYJRYZlB4rIAcjFh6HNegyBCn4BIAA/+HkFeADFQDyIgYV4bsBAPojBhXgyFEALBYa
+/CPIFaDYWQD8I6YV4L95ACsWFSrAAP+DsBWj9vUA/YekFeB3+QD8ImYV7DgdAP4gBh2ge3UA7MIf
+JFRCgAAPCEn4IeYVoAAeAACWHxnSuygSGfwiJhWgDwUA+S/EFeAEBQD7QBG8Z4gBAC8WFAk5DPgi
+5hWvmQEAKRYW9QBIMRIAnQCKIvtAVGCSAJ0A8OcQDeAOBQDuFhIjgFGAAAM6AlkATsBQ8oVADeAG
+BQAtEh4t0IMNXUIvEh0rEhr+AGIdoAwlAO/sOQvQBIAAWQAtpqbwgQAN4Ar1ACkSHimSKihsMAmG
+OXagbPQhphWkth0A4xYMJdgFAAD6I2YV4AGaAAAALBIT0w8PAgD7gEYYEgCdAC0SHg8CAI3V8b/7
+u1IAnQDrEhMp0ASAAPwiKBWgDhUA7hYSKOgEgABZAFn7QE3gUgCdAP4AYh3gBQUACvU6ZFGhw2CU
+HfIhhhXkhh0AKBYbKRIYHtIYHNIZ49IZHKAEgAD1IAniEgCdAOsSGyy3AoAAo2YqYp77QFJL4gCd
+ACZinQ6YCiiCvwhmAQZrAu/CCC2wBIAA+2BOYBIAnQArFgX34E7QkgCdACkyrhrSYPsgTEgSAJ0A
+LjKtLaJf7esBB9P9AAD9wEuuYgCdAJrI/cBL1mIAnQCNHiwgFK3MDAxHLCQU9YBNZlIAnQAuEh3I
+6ykSFsCD+QBOqOIAnQBkUPIqEhoPAgDIoWRQY+tkAAlQBIAA/ABiHaAdhQBZAEruEg8teASAAOYS
+DCK52YAAHNJALRIV+aPsBeAKBQCa8przmvSa9elpAg9EAoAA6fYALuiCgADo3QIK9sKAAP+mAA6w
+G8UA/eAmFeAKVQBZrBkrEhf5YEkpUgCdAMAg7BIbKm8CgACj3SzWndEPLhIeLuCD/kUABzAEFQD+
+IoYVr/b6AI/I9+BKIJIAnQDpEhsqNwKAAKNmKGKe+QBKe+IAnQArYp0OTQot0r8NuwHWsPtgSggS
+AJ0AsP6eyPrAaB3v+r4AAPybTA3gNgUA//bUDaANBQAvEhJk8HbrEgUpUASAAPwAYh2gHYUAWQAP
+GdIJFtIHjhwoEAAmYp8J7gIZ0doIHxTmhgsP+wKAAOn/AgR8nIAALBIR7RITI1v/AAAosj8rsX2e
+oJ+hnaKco5uk+UCmFaAAbgAsEhEtEhMrYQWIY56gn6GbopijnaScpSasGC0SFYwfAt0Q7RYILmQC
+gADsFgkrsD4AAC4SHRjRof4hiBXgCgUA6hYGL3GCgACeFwj/Av4hRhXgDyUAnxvrZAAJUASAAPwA
+Yh2gHYUAWP/iix0vEh6JFuYSHiWRQYAAJmCD7/IFJJF5gACIHQZOQOSCGG9zAoAAKBIeKICCCAZA
+CmYQjBcG7QL9hgAOcN+hAPOoABawj5EA/YYADnDfiQDjiBAO6IKAAPmmAA6wj5kABIgQCMwCKBIe
+ixoNzAKIhPtABhXj/fUAnaKcpRzRv/1AZhWpiAEAmKQY0buYoS4SC+mcASUwYQAA6RYGJ3P9AADu
+FgsvekYAAC8SFPXgLPiSAJ0A9eAtsRIAnQD14C5xkgCdAPXgLzISAJ0A9eAv8pIAnQD14DCzEgCd
+APXgMXOSAJ0Ajh3TD2TgTy8SHi/yKmTwRutkAAlQBIAA/ABiHaAdhQBY/6AoEh4b0Z2MGvkFSBWj
+/fUAnaL9QAYVrAkFAJmj+0AmFemYsQDppgQsRYKAAOimBSUwYQAA62QACVAEgAD8AGIdoB2FAFj/
+jh3RjY8YjBn2IUgVoAkFAJkRmRKZE5kUmaT5QKYV7/v1AJuim6OWoO/MAgr2woAADswC7hIeJTBh
+AADtzAIA2CEAAOymASDoQQAA6hwEIOAxAABY/aj5QGgd4AgVAOqJOQ0oBIAA6RYhJSM5gAAkFiL6
+ACId4AoFAAm6OOUWIyVjmYAAE9FtjRmEHBjROx/RbOUSHSongoAA+IYACjYMBQD4IQgVoAoVAOWl
+OQrwwoAABfw5+cYADzAJNQD9xgAO8AglAAWYOSgWIA7OAi4WHP2GAA5wBQUA/CPmFaAEfgAAAAAA
+AAD/92wNoAYFAMDg//fIDaAGBQCIHfwjyBXkDAUA9mAABzK2KQDxCwAN4AYFAC3SKu3GOQ3bgoAA
+LBAA/2AABHDfyQDr3RAOYgKAAOzuAgxFAoAA+cYADzDPwQD1kAAWMI95AP2GAA5w36kA/0CmFaDv
+sQDg7hEO68KAAP+mAA6w74EA7IgRD3ZCgAD/BgAMMe9pAATuEf8GAAww77kA7YgCD3JCgAAOvgIM
+iAKNGp2gHND5nKEI7gL+xgAPMAglAAjuAp6kGNEmmKIe0SX/QGYVr/YuAAAAAAD6AAId4AYFAP/9
+TA2gDgUAAAAAAAAAmaGUoJ6inqOepJ6lnaadp52onakvEiDlXAElMKEAAP6gEZxiAJ0A62QACVAE
+gAD8AIIdoC2FAFj/C+RQUWrOwoAA9KAKYJIAnQArEh/H7/smAAzwDQUA45kCC/0uAACNEywSHo4S
+jxGLzCzCEJmhm6n1QAYVoAgFAJiimKafo56knaecpYwU/UEGFa/+JgAtEh0sEhwb0PgMmQLrmQIG
+hBmAAPDiQA3v/vUAmaGUoJ6inqOepP9AphWgDQUAnaadp52o/UEmFe/9NgAvEh4iFiUr8hYm8Tgi
+8Tos8hXo8TkrNAKAAAYiAibxOy3yG+7yGixEAoAACGYCKPIXL/IZn6Keo52knKabp5iolqWZoZSg
+kqnyJKgVr/v2AAAAAAAAAADw4kAN7/v1AJmhlKCbopujm6T7QKYV4AgFAJimmKeYqPlBJhWv+zoA
+LBIejRIvwTsmwTkowTguwTrrwhgrNAKAAOb/AgxEAoAACO4CJsIUiMwswhCbpJinlqiZoZ2ilKCc
+o5+lnqmMFP1AxhWv+hoAKxId7BIcJYNRgAAb0LbH7/0mAAywDQUA65kCA4DxgACZoZSgnqKeo56k
+nqWdpp2nnaj9QSYV7/kyAC4SHiIWJS3iEiziEyviGIjthu4v4hSC7y7iEZ6inaOcpJulmKaWp5+p
+maGUoJKo8iSoFa/4VgArEh/H3/smAAzwDAUA45kCA4DxgACZoZSgnaKdo52knaWcppynnKj9QSYV
+r/eaAJmhlKCOE/4gKBXgCAUAmKKYo5ikmKaYp5ion6X/QSYVr/cKACoSHhnQiIqlE9AgJRIj5BIi
+JUwwgADj0BwTg+GAABzQgoscDLsC+z9GFe/ifgAlEhDA0vetAAr/4wIAAMCl/aD2BaAbxQDuPhEJ
+6ASAAFmqU2P25foiyBWgDgUAnhGeEp4TnhRY/JQkFiLlFiMlX2GAAPoiyBWgCwUAWPyHJBYi9CRm
+Fe/vWgAvEhH7/7nQkgCdAGP2tRrQPYgcCogC+T9GFa/gngAAwKBZYjrIpxvQYCuwgGSxLCoSFlj8
+f+kSIS1cHgAA+iLIFaALFQBY/HL4JCgV7+3CANxg6hIMKVgEgAD8I8gV4A4VAFj9JPdAaB2v6fIA
+AADcYOoSDClYBIAA/CPIFeAONQBY/Rz3QGgdr+l2AAAAANxg6hIMKVgEgAD8I8gV4A51AFj9FPdA
+aB2v6PYAAAAA3GDqEgwpWASAAPwjyBXgDrUAWP0M90BoHa/odgAAAADcYOoSDClYBIAA/CPIFeAO
+xQBY/QT3QGgdr+f2AAAAANxg6hIMKVgEgAD8I8gV4A7VAFj8/PdAaB2v53YAAAAA3GDqEgwpWASA
+APwjyBXgDvUAWPz090BoHa/m9gDrEhMp0ASAAOwSESjoBIAAWP3CY/YxAAArEh6MHu0SGSlQBIAA
+WGTa0qDRDwAAAAD7oCgFoUsVAFmVUywaAAysAvugHgWhSxUAWZVTY/6zAMCwwNoN/TSdyPt/tHCS
+AJ0A+kBoHaAbxQD8AAIdoA0VAFhrEGP/oAAAACsSGPpAaB2gDAUA7RIbJdhhAABYawlj/4TAoFmn
+URzPjo/I+f+w4JIAnQBj/7jaIFvp72P2T4onjR7AwOqsIC7YBIAAWF6K0qDrEhsqZwKAAKPMK8ad
+0Q8AAAAAAAD/1wwNoAYFAAAAAN2Q/Z/OBaAKRQD6AwId4A5FAFmpvP/YZA2gBUUAwKBZpzYcz3KP
+yB7Pb/n/tXiSAJ0A/9tYDaAGBQAAAAD/2vQNoAsFAMDaDf00/YEGFe/a+gAAAABsEAQUz9OCICRC
+fxPP0gQiDAMiAtEPAABsEAwkIhMZz7MoQSn5AAgEYgCdABrPa+oABQjIBIAACQJhCQJhCQJhCQJh
+Gc/GGM/GH8/DjiCfEvggxhWgCkUA6RYAL3YCgAAK6gKaESlABy9BKf2ffAWhmQEA4+4CDMwCgAAJ
+/wII/wKfFCsgOf4hZhWgDSUAnRkMuwLrFggoBAqAAPRgBNmSAJ0AiUcqmRTkoIRk8IEAAIuZLOIA
++/gCHaAlhQDq6gEFgjmAAG0ILnvBPC2wACmwB3XRMy/hBer4CAzPAoAA6bsIBEEBAADouxV96ASA
+AOvUAAaAqYAAY//KAAAAAAAA/28ADv//rgD7jwAO8AkFAA2bOM+06kQACNgEgAD8AIIdoA0lAFha
+Z9EPAAAAAAAA//34DaALBQAAACocOvpHQBXgDGUAWaPOY/9XwnaNuA2PV3fxYi/hBar25rp6dekB
+AADr1AAGgZGAAHvBKiiwANMP0w91gSAtsAcPAgAM3RHtuwgDSQEAAOm7JH3oBIAA69QADv62AAD7
+jwAMcA8FAAj7OGS/bmP/owAAAAAAAAD/bwAO//9yACkgOQ0PQ3+ZkyiwL2iDjYkgCJkRCTkCmbvR
+DwAAAAAA/68ADv/+GgBsEAYoIAUsIAfBlA8CAPkAEHVhzAEAKSICZZHDLTABG87k5s7mHjgEgAD/
+oUAG0A+lAC4gTmXiV+7O4B5PAoAA9YAK0hIAnQCmmSiSnpwQC8sK9wARlNIAnQArsr8qkp0LqwHr
+FgEljkmAAIro90AOuJIAnQAoYq7tztIUC/mAACxirS3Sf+3LAQVD/QAA/YALXmIAnQCY6P2AC2Zi
+AJ0AKSAUpJkJCUcpJBT1IA110gCdAB7O1hvOzIwg+CAoFeAKBQAqtjLuzAIObgKAAP1nBhWgDkUA
+Dt0CLbYxG88r3JDrDx4N0ASAAAwCZwtAhgwCZQsghgwCYwsAhuwMAATZAQAACuCGCwJvCsCGCwJt
+CqCGCwJrCoCGCwJpLjEBKCEJLSAHLDABG88ZKiEk/CAABjDdEQDq3RAOZAKAAA3MAgyqAh3PEywh
+IguqAiqWIA3MAosgHc64KJYjLpYkLJYi/WAAFbAMJQAMuwIrliGKM+qWJSTIBwAA7QAVBMphAAAJ
+AIoMeBGmiP8TphXn5QEA+cAGuVIAnQDAINEPAACK6PdAB+CSAJ0ADHkRppktkp4Leworsr/3oAhk
+0gCdAC2SnQvbAWSxALCtnejrFgEt9OYAAPwgBhWgAWYAAAAAAADqJAAJ2ASAAOxEAAroBIAAWGOh
+0qDRDwAAAADAsA+pNOnmCC305gAA+kBoHaAbxQD8ACIdoA0VAFhp4GP/wQAA6iQACtgEgABYZTrS
+oNEPAIsQ+kBoHaAMFQD7YwAV4A2lAFhp1mP/l8CgWaYeHs5aiuj5X/D4kA+lAGP/qtogW+i8//k0
+DaAPpQAAiifrRAAKaASAAPtEABWgDAUAWF1U0qDRDwAAAAD/91wNoAsFAMC4C5sC+kBGFe/9HgAA
+AAD8IAYVoAoFAFmmBh7OQ4rojBAbzj/5X/d4kA+lAP/8KA2gCwUAAMCwD600/cEGFe/78gAAbBAG
+KCAFJiAH5zQACtgEgAD4AoId4AU1APkAD51hZgEACwhHaIIUiiIYziwXzi/kZAAFA8mAAMAg0Q8A
+KyIdZbHhiCeDiPsCpBXvzAUA6YILJHCBAAAM7AHsuwgKfwKAAOwWACXZAQAA8yAN/GIAnQAtiRSj
++q/dLYUU+2AN66IAnQDJdclD2TBtSQUHAIYJAmGK4A8CAA8CAK+q+0AQrGIAnQD7wAYVr/3+AOxq
+EQMk8QAAB6oIK6KeDwIA92AK2dIAnQAqop0Iaworsr8LqgFloE/rbBgpUASAAPwAIh2gDTUAWGl4
+wCDRDwAbzf6JuPcgDKCSAJ0ADEoRB6oILKKe94ANAdIAnQAqop0ITAoswr8MqgHkoY5k6/0AAC22
+CGSvrxnOG5mgiCD/nMoF4AsVAOumAixGAoAABYgCmKGIMy/yf/+cDAWoiB0AqP+fo+4AFQVIQQAA
+/5vyBeAIBQCxiOmDHgwP6AAAn6YZzlX5QQYV4BgFAJinjiAI7hEF7gKeqQxNEafdJdadjiIsIAaJ
+JwvuAuvOTBZgBQAA7CQGJMiBAACIkf0gghXvzAUADJwB7iYCJENBAADolgEm6MEAAO2VBCZhAQAA
+fIsiKpEFHc3VqKiYkZ2AjCDrhgIuZgKAAAXMAv0AJhWgAgUA0Q8dzc2dgIwgG84064YCLmYCgAAF
+zAL9ACYVoAIFANEP2iBYZIvSoNEPAAAA//rEDaAKBQBYACdj/hcAAPMgaB3gDgUA/wFmFa/3vgDj
+ugwDgbmAAApLFOy8CCvABIAA7Ew2CcgEgADTD23JBQgAhgkCYYkQqnjrTQwEyQEAAG3ZBQgghgkC
+Y4sQCvwMrLsrvED7wAYV7/aKAMCgWaVZG82VibgYzZL5P/L4kgCdAP/5/A2gCgUAwKDA2g2dNP1h
+BhXv+cIAjxAv/ED/wAYV7/WmAAAAbBAGEs2IF84A9ZsiBaATlQD4UMgVoKYlACoign+nICsign+3
+GCoihCygCCWgB3bBN4hEwKALgAAFMwxlP9rRDy0ihCkihyoih/lgAAT7qoEAepkwCuowK0JBw8IM
+uyirqvqbhhWv/uoALqELLuz4Dg5D7uz8Iuv9AAD/ogAKv/7OAAAAAAwCAC8ign//xSXQB25bv9xw
++gCiHaALBQD+oAAXMP8FAFmnpCVc8cpbKApxmBHAoVmdYvogKBXgCfUACVk2mRAJuwz6ICYV4AoF
+AFmCeIoQClUMZV/XwKFZnVj6DiId4AoFAFmCcmP/ZQAAbBAGKCAFLyAHwZT5ABTNYf8BAPQgJhWn
+hQEAmBL1AA+5EgCdAIkiG81A7c1BH6AEgADmzUAckZYAAPXgD0IQB7UA7xYAL9cCgACmqiyingv7
+Ciuyv/eAFbviAJ0ALKKdC8sB57QABZKJgACO2PfAEviSAJ0ALGKu6s2pFhApgAAvYq0rovPr/AEH
+Q/0AAPvgD45iAJ0AmNj74A+mYgCdACsgFCkwB6uZCQlHKSQU9SARtdIAnQAfzZqfcIkg/ACCHeAF
+FQDldgIszgKAAA2ZAplxiDYZzZSMrv+aaAWiiB0ACYgBqMz84GYVoCsFAO4AFQPIQQAACQCKm3cZ
+zSTpdgYh4MEAAOwHHgPAgQAACAJj7uMFA+DBAAAMAmEvdhCIIOV2EixGAoAADYgCKHYRjDOKrAyM
+FKyq6nYTI/mBAADuABUD0UEAAAoAiil2Fut2FyHQQQAACmCGDwJnCkCGDwJlLTABjzMYzXDxoAUX
+0ByFAC0gBxXNbfpEhBWg3REA4zEBLuqCgAAI3QItdiCLICl2Iix2I/1gABWwDDUADLsC63YhI8gH
+AADu4wUEykEAAAkCYQkCYS4gByghCfLlJhXgGaUA/uUGFeALBQDrdiUsRQKAAPkGAAxx7gEA6HYm
+L3QCgAAOrgIF7gL+5IYVoAm1AOwSAipvAoAApt0p1p35gAe5UgCdAMAg0Q8AAAAA//98DaAJhQAu
+Ih1k7gb+IAYV4APuAI7Y98AH4JIAnQAMShGmqiiinvcACKPiAJ0ALKKdC0gKKIK/CMwB68QABghB
+gACw6ZnY57QADfB+AAD+IAYV4AFSAOokAAnYBIAA7BIBKugEgABYYd3SoNEPAADAwMC6C+s069YI
+LnCmAAD6QGgdoBvFAPwAIh2gDRUAWGgcY//BAADqJAAK2ASAAFhjdtKg0Q8AixD6QGgdoAwVAPtj
+ABXgDbUAWGgSY/+XwKBZpFodzJaO2Pnf7LiSAJ0AY/+qAAAA68QACVAEgABb5vX7mhQFr/b+AIon
+jRHAwOqsIC7YBIAAWFuP0qDRD//1PA2gCwUAAAAAAABb/vz+IAgV7/QGAP4gBhXgCgUAWaRCHcx/
+jtiPEBvMe/nf93iSAJ0A//w8DaALBQAAAAD/++ANoAwFAMDKDOw0/aEGFa/73gAAAABsEArkIgcq
+UASAAIgi/kDwFa/PBQDlQRUtZwKAAOw8CAIggQAAD0QBpFTkTEAuWASAAPWAJdKh7gEALbAH7Nz+
+LbAEgADkgAhm6A0AAMAg0Q8fzF3tFgAlwIEAAJgTHcxY9QAkmqIAnQDlzFgfIASAAPXAH2ISAJ0A
+DOsRpbspsp7uFgEmQCEAAPkgJZuiAJ0AK7KdDegKKIK/CLsB57QABaAZgACN+JoU0w/3oCLIkgCd
+AClSruvMvxSgQYAALlKtL7LzG8xBD+gB6BYCJsv9AAD/wB+GYgCdAJm4/8AfxmIAnQAuIBQtYAeu
+3foghhWn3QEALSQU9aAhbdIAnQAZzLAfzLCOIIg07cxGGl8CgADluwgPdgKAAPEABPpQBTUAg2Mq
+ISQF7AIoIAcuYQH84EYV4BSFAJRz/OAmFaCIEQDszDEcQoKAAPkGAAxwBAUA+OAGFaAIJQDsAAUD
+4EEAAG2KAgwCYS0hCSwgB5R1/uEmFaA4pQDjdggu7QKAAPmmAA6xzAEA7XYGLmQCgAAMqgIPqgKa
+dCkhCQIqAv7AJBWgDAUA5badLN0CgAD5ZgANsA0FAFhiysAg0Q+IE4iA9YAgFaCJFQD1xgAKN4jB
+AHmJGZRx78x4Fkv9AAD+4AYV4ZkdAPjgRhXgAFIAlHGIExnMdZlwiIEIWBSYco82GcxtKCIHFMxt
+KZIO9QKkFeL/HQAE/wElFgYPmQjvggkkQIEAAPjgZhXvyQUA6YgBBSAJAADoFgUqJwKAAAT/CAhV
+COypCAKpAQAA5fMKdMgJAAAoEgYI/wzqFgQszwKAAASZDOSQRG4nAoAA70gIA8hBAACZF/igDsqi
+AJ0AD1UMBU4U0w9t6QUPAIYJAmGJFQ7PDKdY7IwQJMkBAABt+QUJIIYMAmOOIAjuERjMQ/TgAESw
+DxUA/yDGFeAMRQAM7AKYlBjMPJyVjGOIjBXMQf+XugXozB0ArIiYlxjMPO8AFQTwgQAA/5h2BeAM
+BQCxzO6DHg4P6AAA/SFGFeAsBQCcm4djhDSMNQhEAe/MAQvCQoAACEQCBUQClJwoYAkuYAskYAol
+YAjvzCwfcQKAAOZEEAxDAoAA/QYADDDFMQDuRAIOYcKAAAxEAghEAow2GMvulJ30YUgVpeUdAO/M
+AQ9wQoAADswC/SHGFaRVAQDoRAEKqgKAAAVEAohlmJ+FZiWWEI9nJJYSL5YRLmIELpYTLGAB8YAE
+r9IAnQAsIAcezAjywCQV4MwRAO8hJC5igoAADswCLJYUKCIA/gMCHaAMNQDulhcsRgKAAAyIAhzL
+jv0ixhXgDgUA+SKmFaAIJQDsAAUE4YEAAG2KAgwCYSghCZoULSAH+wAAFDAcpQAMiAIolhr5l94F
+od0BAO6WGS7sAoAADf0CCN0CiBAjlh0nlhztlhgkQA0AAJgQjhSPEC+2nS1gB4on/6AARrAMBQDr

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Thu Mar 29 01:35:12 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C44F9F61598;
 Thu, 29 Mar 2018 01:35:11 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 0CC386F45E;
 Thu, 29 Mar 2018 01:35:09 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2T1Z7fF060081;
 Wed, 28 Mar 2018 18:35:07 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2T1Z7hU060080;
 Wed, 28 Mar 2018 18:35:07 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803290135.w2T1Z7hU060080@pdx.rh.CN85.dnsmgr.net>
Subject: Mismerge at r330897 in stable/11, Audit report
In-Reply-To: 
To: Eitan Adler 
Date: Wed, 28 Mar 2018 18:35:07 -0700 (PDT)
CC: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org,
 re@freebsd.org, eadler@freebsd.org
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 01:35:12 -0000

> >> Hi!
> >>
> >> This part of the MFC is wrong:
> >>
> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897

Can we try to identify exactly what rXXXXXX that is a merge of?

> >> Could you please MFC back the other random related changes too? Some
> >> of them made by cem@.
> >>
> >> On 3/14/18, Eitan Adler  wrote:
> >>> Author: eadler
> >>> Date: Wed Mar 14 03:19:51 2018
> >>> New Revision: 330897
> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
> >>>
> >>> Log:
> >>>   Partial merge of the SPDX changes
> >>>
> >>>   These changes are incomplete but are making it difficult
> >>>   to determine what other changes can/should be merged.
> >>>
> >>>   No objections from:        pfg
> >>>
> > Am I missing something? If this MFC was supposed to be of the SPDX
> > license tagging, why does it have any functional changes?
> >
> > Especially changes to random(4)?
> 
> This was my failure. I only spot checked & compile-checked the diff
> since I expected all changes to be comments/SPDX.
> 
> However, I must have gotten carried away and included a few too many
> revisions. Unfortunately some people have already merged fixes to my
> failure and thus this can't be reverted as is without also reverting
> those fixes.
> 
> That said, I should do that since this commit message is utterly wrong.

We do not have to revert r330897, with what follows I think
we can easily find the revisions to revert from stable/11.
...


I saw someone complain about other bits that got pulled in
eadler merged a huge chunk of SPDX tags.  This commit
is weeks old, and bothersome that this was just now being found.

So I decided to Audit r330897 for anything that is not an SPDX change.

This audit is basically from:
svn diff -r 330896:330897 svn+ssh://repo.freebsd.org/base/stable/11 | \
    grep -v '^=========================================================' | \
    grep -v '^---' | \
    grep -v '^+++' | \
    grep -v '^@@ ' | \
    grep -v '^ ' |
    grep -v 'SPDX-License-Identifier' |
    grep -v '^+ \*$' | \
    grep -v '^-/\*$' | \
    grep -v '^+/\*-$' | \
    more

The outout of that was cleaned up slightly by removing the large blocks of
Index: path/to/file
that showed no other changes to that file, and a few copyright noises
leaving us with these very questionable merges that are NOT SPDX related
that I can see in any way.

There is still some noise, ($FreeBSD) and I left some things in the output
that I would like to take a closer look at that are probably noise
but I want to make certain.

I think r330897 actually merged about 4 or 5 things that are not part of
SPDX at all.

With the file paths now in hand, it should be a short order to sort out
which rXXXXXX should be reverted from stable/11.  

At the very end is the full mergeinfo.  If anyone wants the raw
svn diff I can upload that as well.

Index: lib/libutil/pw_util.c
-/*-
+/*--
Index: sbin/dhclient/dhctoken.h
+ * $FreeBSD$
Index: sbin/dhclient/tree.h
+ * $FreeBSD$
Index: sbin/rcorder/sprite.h
+ * $FreeBSD$
Index: share/examples/tests/tests/plain/printf_test.c
-/* $FreeBSD$
+/* $FreeBSD$ */
+
Index: sys/arm/arm/pl190.c
- * Copyright (c) 2012 Oleksandr Tymoshenko 
+ * Copyright (c) 2012-2017 Oleksandr Tymoshenko 
-
+#include 
-#include 
+#include "pic_if.h"
+
+struct pl190_intc_irqsrc {
+	struct intr_irqsrc		isrc;
+	u_int				irq;
+};
+
-	device_t		sc_dev;
+	device_t		dev;
+	struct mtx		mtx;
+	struct pl190_intc_irqsrc	isrcs[VIC_NIRQS];
-static struct pl190_intc_softc *pl190_intc_sc = NULL;
+#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	intc_vic_read_4(reg)		\
-    bus_read_4(pl190_intc_sc->intc_res, (reg))
-#define	intc_vic_write_4(reg, val)		\
-    bus_write_4(pl190_intc_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);
+}
+
+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
-	struct		pl190_intc_softc *sc = device_get_softc(dev);
+	struct		pl190_intc_softc *sc;
+	struct		pl190_intc_irqsrc *isrcs;
+	struct intr_pic *pic;
+	int		error;
+	uint32_t	irq;
+	const char	*name;
+	phandle_t	xref;
-	sc->sc_dev = dev;
+	sc = device_get_softc(dev);
+	sc->dev = dev;
+	mtx_init(&sc->mtx, device_get_nameunit(dev), "pl190",
+	    MTX_SPIN);
-	if (pl190_intc_sc)
-		return (ENXIO);
-
-	pl190_intc_sc = sc;
-	intc_vic_write_4(VICINTSELECT, 0x00000000);
+	INTC_VIC_WRITE_4(sc, VICINTSELECT, 0x00000000);
-	intc_vic_write_4(VICINTENCLEAR, 0xffffffff);
-	/* Enable INT31, SIC IRQ */
-	intc_vic_write_4(VICINTENABLE, (1U << 31));
+	INTC_VIC_WRITE_4(sc, VICINTENCLEAR, 0xffffffff);
-		     (intc_vic_read_4(VICPERIPHID + i*4) & 0xff);
+		     (INTC_VIC_READ_4(sc, VICPERIPHID + i*4) & 0xff);
-		     (intc_vic_read_4(VICPRIMECELLID + i*4) & 0xff);
+		     (INTC_VIC_READ_4(sc, VICPRIMECELLID + i*4) & 0xff);
-	return (0);
+	/* 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));
-	{ 0, 0 }
+
+	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
-
-int
-arm_get_next_irq(int last_irq)
-{
-	uint32_t pending;
-	int32_t irq = last_irq + 1;
-
-	/* Sanity check */
-	if (irq < 0)
-		irq = 0;
-
-	pending = intc_vic_read_4(VICIRQSTATUS);
-	while (irq < VIC_NIRQS) {
-		if (pending & (1 << irq))
-			return (irq);
-		irq++;
-	}
-
-	return (-1);
-}
-
-void
-arm_mask_irq(uintptr_t nb)
-{
-
-	dprintf("%s: %d\n", __func__, nb);
-	intc_vic_write_4(VICINTENCLEAR, (1 << nb));
-}
-
-void
-arm_unmask_irq(uintptr_t nb)
-{
-
-	dprintf("%s: %d\n", __func__, nb);
-	intc_vic_write_4(VICINTENABLE, (1 << nb));
-}
Index: sys/arm/versatile/versatile_sic.c
- * Copyright (c) 2012 Oleksandr Tymoshenko 
+ * Copyright (c) 2012-2017 Oleksandr Tymoshenko 
-
+#include 
-#include 
+#include "pic_if.h"
+
+#define	SIC_NIRQS	32
+
+struct versatile_sic_irqsrc {
+	struct intr_irqsrc		isrc;
+	u_int				irq;
+};
+
-	device_t		sc_dev;
+	device_t		dev;
+	struct mtx		mtx;
+	struct resource *	irq_res;
+	void			*intrh;
+	struct versatile_sic_irqsrc	isrcs[SIC_NIRQS];
-#define	sic_read_4(sc, reg)			\
+#define	SIC_LOCK(_sc) mtx_lock_spin(&(_sc)->mtx)
+#define	SIC_UNLOCK(_sc) mtx_unlock_spin(&(_sc)->mtx)
+
+#define	SIC_READ_4(sc, reg)			\
-#define	sic_write_4(sc, reg, val)		\
+#define	SIC_WRITE_4(sc, reg, val)		\
+/*
+ * Driver stuff
+ */
+static int versatile_sic_probe(device_t);
+static int versatile_sic_attach(device_t);
+static int versatile_sic_detach(device_t);
+
+static void
+versatile_sic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+	struct versatile_sic_softc *sc;
+	struct versatile_sic_irqsrc *src;
+
+	sc = device_get_softc(dev);
+	src = (struct versatile_sic_irqsrc *)isrc;
+
+	SIC_LOCK(sc);
+	SIC_WRITE_4(sc, SIC_ENCLR, (1 << src->irq));
+	SIC_UNLOCK(sc);
+}
+
+static void
+versatile_sic_enable_intr(device_t dev, struct intr_irqsrc *isrc)
+{
+	struct versatile_sic_softc *sc;
+	struct versatile_sic_irqsrc *src;
+
+	sc = device_get_softc(dev);
+	src = (struct versatile_sic_irqsrc *)isrc;
+
+	SIC_LOCK(sc);
+	SIC_WRITE_4(sc, SIC_ENSET, (1 << src->irq));
+	SIC_UNLOCK(sc);
+}
+
+versatile_sic_map_intr(device_t dev, struct intr_map_data *data,
+    struct intr_irqsrc **isrcp)
+{
+	struct intr_map_data_fdt *daf;
+	struct versatile_sic_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] >= SIC_NIRQS)
+		return (EINVAL);
+
+	sc = device_get_softc(dev);
+	*isrcp = &sc->isrcs[daf->cells[0]].isrc;
+	return (0);
+}
+
+static void
+versatile_sic_pre_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+	versatile_sic_disable_intr(dev, isrc);
+}
+
+static void
+versatile_sic_post_ithread(device_t dev, struct intr_irqsrc *isrc)
+{
+	struct versatile_sic_irqsrc *src;
+
+	src = (struct versatile_sic_irqsrc *)isrc;
+	arm_irq_memory_barrier(src->irq);
+	versatile_sic_enable_intr(dev, isrc);
+}
+
+static void
+versatile_sic_post_filter(device_t dev, struct intr_irqsrc *isrc)
+{
+	struct versatile_sic_irqsrc *src;
+
+	src = (struct versatile_sic_irqsrc *)isrc;
+	arm_irq_memory_barrier(src->irq);
+}
+
+static int
+versatile_sic_setup_intr(device_t dev, struct intr_irqsrc *isrc,
+    struct resource *res, struct intr_map_data *data)
+{
+
+	return (0);
+}
+
+static int
+versatile_sic_filter(void *arg)
+{
+	struct versatile_sic_softc *sc;
+	struct intr_irqsrc *isrc;
+	uint32_t i, interrupts;
+
+	sc = arg;
+	SIC_LOCK(sc);
+	interrupts = SIC_READ_4(sc, SIC_STATUS);
+	SIC_UNLOCK(sc);
+	for (i = 0; interrupts != 0; i++, interrupts >>= 1) {
+		if ((interrupts & 0x1) == 0)
+			continue;
+		isrc = &sc->isrcs[i].isrc;
+		if (intr_isrc_dispatch(isrc, curthread->td_intr_frame) != 0) {
+			versatile_sic_disable_intr(sc->dev, isrc);
+			versatile_sic_post_filter(sc->dev, isrc);
+			device_printf(sc->dev, "Stray irq %u disabled\n", i);
+		}
+	}
+
+	return (FILTER_HANDLED);
+}
+
+static int
-	uint32_t	pass_irqs;
-	int		rid;
+	int		rid, error;
+	uint32_t	irq;
+	const char	*name;
+	struct		versatile_sic_irqsrc *isrcs;
-	sc->sc_dev = dev;
+	sc->dev = dev;
+	mtx_init(&sc->mtx, device_get_nameunit(dev), "sic",
+	    MTX_SPIN);
+	/* Request memory resources */
+	rid = 0;
+	sc->irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid,
+	    RF_ACTIVE);
+	if (sc->irq_res == NULL) {
+		device_printf(dev, "could not allocate IRQ resources\n");
+		versatile_sic_detach(dev);
+		return (ENXIO);
+	}
+
+	if ((bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC,
+	    versatile_sic_filter, NULL, sc, &sc->intrh))) {
+		device_printf(dev,
+		    "unable to register interrupt handler\n");
+		versatile_sic_detach(dev);
+		return (ENXIO);
+	}
+
-	sic_write_4(sc, SIC_ENCLR, 0xffffffff);
+	SIC_WRITE_4(sc, SIC_ENCLR, 0xffffffff);
-	/* 
-	 * XXX: Enable IRQ3 for KMI
-	 * Should be replaced by proper interrupts cascading
-	 */
-	sic_write_4(sc, SIC_ENSET, (1 << 3));
+	/* PIC attachment */
+	isrcs = sc->isrcs;
+	name = device_get_nameunit(sc->dev);
+	for (irq = 0; irq < SIC_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);
+	}
-	/*
-	 * Let PCI and Ethernet interrupts pass through
-	 * IRQ25, IRQ27..IRQ31
-	 */
-	pass_irqs = (0x1f << 27) | (1 << 25);
-	sic_write_4(sc, SIC_PICENSET, pass_irqs);
+	intr_pic_register(dev, OF_xref_from_node(ofw_bus_get_node(dev)));
+static int
+versatile_sic_detach(device_t dev)
+{
+	struct		versatile_sic_softc *sc;
+
+	sc = device_get_softc(dev);
+
+	if (sc->intrh)
+		bus_teardown_intr(dev, sc->irq_res, sc->intrh);
+
+	if (sc->mem_res == NULL)
+		bus_release_resource(dev, SYS_RES_MEMORY,
+			rman_get_rid(sc->mem_res), sc->mem_res);
+
+	if (sc->irq_res == NULL)
+		bus_release_resource(dev, SYS_RES_IRQ,
+			rman_get_rid(sc->irq_res), sc->irq_res);
+
+	mtx_destroy(&sc->mtx);
+
+	return (0);
+
+}
+
-	{ 0, 0 }
+	DEVMETHOD(device_detach,	versatile_sic_detach),
+
+	DEVMETHOD(pic_disable_intr,	versatile_sic_disable_intr),
+	DEVMETHOD(pic_enable_intr,	versatile_sic_enable_intr),
+	DEVMETHOD(pic_map_intr,		versatile_sic_map_intr),
+	DEVMETHOD(pic_post_filter,	versatile_sic_post_filter),
+	DEVMETHOD(pic_post_ithread,	versatile_sic_post_ithread),
+	DEVMETHOD(pic_pre_ithread,	versatile_sic_pre_ithread),
+	DEVMETHOD(pic_setup_intr,	versatile_sic_setup_intr),
+
+	DEVMETHOD_END
Index: sys/dev/altera/atse/if_atse.c
- * Copyright (c) 2012,2013 Bjoern A. Zeeb
+ * Copyright (c) 2012, 2013 Bjoern A. Zeeb
+
+
+
+
+	int leftm;
-		int leftm;
-		uint32_t x;
+
-		x = val4;
-	/* 
+	/*
+	uint32_t mask, val4;
-	uint32_t mask, val4;
+	uint8_t x, y;
-	uint8_t x, y;
+
+	struct ifmultiaddr *ifma;
-	struct ifmultiaddr *ifma;
-		/* 
+		/*
-	
+
+
-	int i;
+	int i;
+
+
-	/*	
+	/*
-	
+
-        /* Only enable interrupts if we are not polling. */
+	/* Only enable interrupts if we are not polling. */
-
-                sc->atse_if_flags = ifp->if_flags;
+		sc->atse_if_flags = ifp->if_flags;
-static int 
+static int
+	uint32_t fill, i, j;
+	uint32_t data, meta;
-	uint32_t fill, i, j;
-	uint32_t data, meta;
-	int rx_npkts = 0;
+	int rx_npkts;
+	rx_npkts = 0;
-				
+
-	}  
+	}
-	}  
+	}
-		return (rx_npkts); 
+		return (rx_npkts);
-        int error, offset, s;
+	int error, offset, s;
-        sc = arg1;
+	sc = arg1;
-        return (0);
+	return (0);
-#define ATSE_RX_ERR_FIFO_THRES_EOP      0 /* FIFO threshold reached, on EOP. */
-#define ATSE_RX_ERR_ELEN                1 /* Frame/payload length not valid. */
-#define ATSE_RX_ERR_CRC32               2 /* CRC-32 error. */
-#define ATSE_RX_ERR_FIFO_THRES_TRUNC    3 /* FIFO thresh., truncated frame. */
-#define ATSE_RX_ERR_4                   4 /* ? */
-#define ATSE_RX_ERR_5                   5 /* / */
+#define	ATSE_RX_ERR_FIFO_THRES_EOP	0 /* FIFO threshold reached, on EOP. */
+#define	ATSE_RX_ERR_ELEN		1 /* Frame/payload length not valid. */
+#define	ATSE_RX_ERR_CRC32		2 /* CRC-32 error. */
+#define	ATSE_RX_ERR_FIFO_THRES_TRUNC	3 /* FIFO thresh., truncated frame. */
+#define	ATSE_RX_ERR_4			4 /* ? */
+#define	ATSE_RX_ERR_5			5 /* / */
-        int error, offset, s;
+	int error, offset, s;
-        sc = arg1;
+	sc = arg1;
-        return (0);
+	return (0);
-        sctx = device_get_sysctl_ctx(dev);
-        soid = device_get_sysctl_tree(dev);
+	sctx = device_get_sysctl_ctx(dev);
+	soid = device_get_sysctl_tree(dev);
-        mii = device_get_softc(sc->atse_miibus);
-        ifp = sc->atse_ifp;
-        if (mii == NULL || ifp == NULL ||
-            (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
-                return;
+	mii = device_get_softc(sc->atse_miibus);
+	ifp = sc->atse_ifp;
+	if (mii == NULL || ifp == NULL ||
+	    (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+		return;
-        if ((sc->atse_flags & ATSE_FLAGS_LINK) == 0) {
+	if ((sc->atse_flags & ATSE_FLAGS_LINK) == 0) {
-                return;
-        }
+		return;
+	}
-        else
+	else
Index: sys/dev/altera/avgen/altera_avgen.c
- * Copyright (c) 2012-2013 Robert N. M. Watson
+ * Copyright (c) 2012-2013, 2016 Robert N. M. Watson
+#include 
+#include 
+
+#define	ALTERA_AVGEN_DEVNAME		"altera_avgen"
+#define	ALTERA_AVGEN_DEVNAME_FMT	(ALTERA_AVGEN_DEVNAME "%d")
+
-	.d_name =	"altera_avgen",
+	.d_name =	ALTERA_AVGEN_DEVNAME,
+#define	ALTERA_AVGEN_SECTORSIZE	512	/* Not configurable at this time. */
+
+/*
+ * NB: We serialise block reads and writes in case the OS is generating
+ * concurrent I/O against the same block, in which case we want one I/O (or
+ * another) to win.  This is not sufficient to provide atomicity for the
+ * sector in the presence of a fail stop -- however, we're just writing this
+ * to non-persistent DRAM .. right?
+ */
+static void
+altera_avgen_disk_strategy(struct bio *bp)
+{
+	struct altera_avgen_softc *sc;
+	void *data;
+	long bcount;
+	daddr_t pblkno;
+	sc = bp->bio_disk->d_drv1;
+	data = bp->bio_data;
+	bcount = bp->bio_bcount;
+	pblkno = bp->bio_pblkno;
+
+	/*
+	 * Serialize block reads / writes.
+	 */
+	mtx_lock(&sc->avg_disk_mtx);
+	switch (bp->bio_cmd) {
+	case BIO_READ:
+		if (!(sc->avg_flags & ALTERA_AVALON_FLAG_GEOM_READ)) {
+			biofinish(bp, NULL, EIO);
+			break;
+		}
+		switch (sc->avg_width) {
+		case 1:
+			bus_read_region_1(sc->avg_res,
+			    bp->bio_pblkno * ALTERA_AVGEN_SECTORSIZE,
+			    (uint8_t *)data, bcount);
+			break;
+
+		case 2:
+			bus_read_region_2(sc->avg_res,
+			    bp->bio_pblkno * ALTERA_AVGEN_SECTORSIZE,
+			    (uint16_t *)data, bcount / 2);
+			break;
+
+		case 4:
+			bus_read_region_4(sc->avg_res,
+			    bp->bio_pblkno * ALTERA_AVGEN_SECTORSIZE,
+			    (uint32_t *)data, bcount / 4);
+			break;
+
+		default:
+			panic("%s: unexpected width %u", __func__,
+			    sc->avg_width);
+		}
+		break;
+
+	case BIO_WRITE:
+		if (!(sc->avg_flags & ALTERA_AVALON_FLAG_GEOM_WRITE)) {
+			biofinish(bp, NULL, EROFS);
+			break;
+		}
+		switch (sc->avg_width) {
+		case 1:
+			bus_write_region_1(sc->avg_res,
+			    bp->bio_pblkno * ALTERA_AVGEN_SECTORSIZE,
+			    (uint8_t *)data, bcount);
+			break;
+
+		case 2:
+			bus_write_region_2(sc->avg_res,
+			    bp->bio_pblkno * ALTERA_AVGEN_SECTORSIZE,
+			    (uint16_t *)data, bcount / 2);
+			break;
+
+		case 4:
+			bus_write_region_4(sc->avg_res,
+			    bp->bio_pblkno * ALTERA_AVGEN_SECTORSIZE,
+			    (uint32_t *)data, bcount / 4);
+			break;
+
+		default:
+			panic("%s: unexpected width %u", __func__,
+			    sc->avg_width);
+		}
+		break;
+
+	default:
+		panic("%s: unsupported I/O operation %d", __func__,
+		    bp->bio_cmd);
+	}
+	mtx_unlock(&sc->avg_disk_mtx);
+	biofinish(bp, NULL, 0);
+}
+
-    const char *str_fileio, const char *str_mmapio, const char *str_devname,
-    int devunit)
+    const char *str_fileio, const char *str_geomio, const char *str_mmapio,
+    const char *str_devname, int devunit)
-	if (str_fileio == NULL && str_mmapio == NULL) {
+	if (str_fileio == NULL && str_geomio == NULL && str_mmapio == NULL) {
-		    "at least one of %s or %s must be specified\n",
-		    ALTERA_AVALON_STR_FILEIO, ALTERA_AVALON_STR_MMAPIO);
+		    "at least one of %s, %s, or %s must be specified\n",
+		    ALTERA_AVALON_STR_FILEIO, ALTERA_AVALON_STR_GEOMIO,
+		    ALTERA_AVALON_STR_MMAPIO);
+
+	/*
+	 * Validity check: a device can either be a GEOM device (in which case
+	 * we use GEOM to register the device node), or a special device --
+	 * but not both as that causes a collision in /dev.
+	 */
+	if (str_geomio != NULL && (str_fileio != NULL || str_mmapio != NULL)) {
+		device_printf(dev,
+		    "at most one of %s and (%s or %s) may be specified\n",
+		    ALTERA_AVALON_STR_GEOMIO, ALTERA_AVALON_STR_FILEIO,
+		    ALTERA_AVALON_STR_MMAPIO);
+		return (ENXIO);
+	}
+
+	/*
+	 * Ensure that a unit is specified if a name is also specified.
+	 */
+	if (str_geomio != NULL) {
+		for (cp = str_geomio; *cp != '\0'; cp++){
+			switch (*cp) {
+			case ALTERA_AVALON_CHAR_READ:
+				sc->avg_flags |= ALTERA_AVALON_FLAG_GEOM_READ;
+				break;
+
+			case ALTERA_AVALON_CHAR_WRITE:
+				sc->avg_flags |= ALTERA_AVALON_FLAG_GEOM_WRITE;
+				break;
+
+			default:
+				device_printf(dev,
+				    "invalid %s character %c\n",
+				    ALTERA_AVALON_STR_GEOMIO, *cp);
+				return (ENXIO);
+			}
+		}
+	}
-    const char *str_mmapio, const char *str_devname, int devunit)
+    const char *str_geomio, const char *str_mmapio, const char *str_devname,
+    int devunit)
-	error = altera_avgen_process_options(sc, str_fileio, str_mmapio,
-	    str_devname, devunit);
+	error = altera_avgen_process_options(sc, str_fileio, str_geomio,
+	    str_mmapio, str_devname, devunit);
-	/* Device node allocation. */
-	if (str_devname == NULL) {
-		str_devname = "altera_avgen%d";
+	/*
+	 * If a GEOM permission is requested, then create the device via GEOM.
+	 * Otherwise, create a special device.  We checked during options
+	 * processing that both weren't requested a once.
+	 */
+	if (str_devname != NULL) {
+		sc->avg_name = strdup(str_devname, M_TEMP);
+	} else
+		sc->avg_name = strdup(ALTERA_AVGEN_DEVNAME, M_TEMP);
+	if (sc->avg_flags & (ALTERA_AVALON_FLAG_GEOM_READ |
+	    ALTERA_AVALON_FLAG_GEOM_WRITE)) {
+		mtx_init(&sc->avg_disk_mtx, "altera_avgen_disk", NULL,
+		    MTX_DEF);
+		sc->avg_disk = disk_alloc();
+		sc->avg_disk->d_drv1 = sc;
+		sc->avg_disk->d_strategy = altera_avgen_disk_strategy;
+		if (devunit == -1)
+			devunit = 0;
+		sc->avg_disk->d_name = sc->avg_name;
+		sc->avg_disk->d_unit = devunit;
+
+		/*
+		 * NB: As avg_res is a multiple of PAGE_SIZE, it is also a
+		 * multiple of ALTERA_AVGEN_SECTORSIZE.
+		 */
+		sc->avg_disk->d_sectorsize = ALTERA_AVGEN_SECTORSIZE;
+		sc->avg_disk->d_mediasize = rman_get_size(sc->avg_res);
+		sc->avg_disk->d_maxsize = ALTERA_AVGEN_SECTORSIZE;
+		disk_create(sc->avg_disk, DISK_VERSION);
+	} else {
+		/* Device node allocation. */
+		if (str_devname == NULL) {
+			str_devname = ALTERA_AVGEN_DEVNAME_FMT;
+			devunit = sc->avg_unit;
+		}
+		if (devunit != -1)
+			sc->avg_cdev = make_dev(&avg_cdevsw, sc->avg_unit,
+			    UID_ROOT, GID_WHEEL, S_IRUSR | S_IWUSR, "%s%d",
+			    str_devname, devunit);
+		else
+			sc->avg_cdev = make_dev(&avg_cdevsw, sc->avg_unit,
+			    UID_ROOT, GID_WHEEL, S_IRUSR | S_IWUSR,
+			    "%s", str_devname);
+		if (sc->avg_cdev == NULL) {
+			device_printf(sc->avg_dev, "%s: make_dev failed\n",
+			    __func__);
+			return (ENXIO);
+		}
+
+		/* XXXRW: Slight race between make_dev(9) and here. */
+		sc->avg_cdev->si_drv1 = sc;
-	if (devunit != -1)
-		sc->avg_cdev = make_dev(&avg_cdevsw, sc->avg_unit, UID_ROOT,
-		    GID_WHEEL, S_IRUSR | S_IWUSR, str_devname, devunit);
-	else
-		sc->avg_cdev = make_dev(&avg_cdevsw, sc->avg_unit, UID_ROOT,
-		    GID_WHEEL, S_IRUSR | S_IWUSR, str_devname);
-	if (sc->avg_cdev == NULL) {
-		device_printf(sc->avg_dev, "%s: make_dev failed\n", __func__);
-		return (ENXIO);
-	}
-	/* XXXRW: Slight race between make_dev(9) and here. */
-	sc->avg_cdev->si_drv1 = sc;
-	destroy_dev(sc->avg_cdev);
+	KASSERT((sc->avg_disk != NULL) || (sc->avg_cdev != NULL),
+	    ("%s: neither GEOM nor special device", __func__));
+
+	if (sc->avg_disk != NULL) {
+		disk_gone(sc->avg_disk);
+		disk_destroy(sc->avg_disk);
+		free(sc->avg_name, M_TEMP);
+		mtx_destroy(&sc->avg_disk_mtx);
+	} else {
+		destroy_dev(sc->avg_cdev);
+	}
Index: sys/dev/altera/avgen/altera_avgen.h
- * Copyright (c) 2012 Robert N. M. Watson
+ * Copyright (c) 2012, 2016 Robert N. M. Watson
+	char		*avg_name;
+	u_int		 avg_sectorsize;
+
+	/*
+	 * disk(9) state, if required for this device.
+	 */
+	struct disk	*avg_disk;
+	struct mtx	 avg_disk_mtx;
+#define	ALTERA_AVALON_FLAG_GEOM_READ		0x20
+#define	ALTERA_AVALON_FLAG_GEOM_WRITE		0x40
+#define	ALTERA_AVALON_STR_GEOMIO		"geomio"
-	    const char *str_fileio, const char *str_mmapio,
-	    const char *str_devname, int devunit);
+	    const char *str_fileio, const char *str_geomio,
+	    const char *str_mmapio, const char *str_devname, int devunit);
Index: sys/dev/altera/avgen/altera_avgen_fdt.c
- * Copyright (c) 2012-2013 Robert N. M. Watson
+ * Copyright (c) 2012-2013, 2016 Robert N. M. Watson
-	char *str_fileio, *str_mmapio;
+	char *str_fileio, *str_geomio, *str_mmapio;
+	str_geomio = NULL;
+	(void)OF_getprop_alloc(node, "sri-cambridge,geomio", sizeof(char),
+	    (void **)&str_geomio);
-	error = altera_avgen_attach(sc, str_fileio, str_mmapio, str_devname,
-	    devunit);
+	error = altera_avgen_attach(sc, str_fileio, str_geomio, str_mmapio,
+	    str_devname, devunit);
+	if (str_geomio != NULL)
+		OF_prop_free(str_geomio);
Index: sys/dev/altera/avgen/altera_avgen_nexus.c
- * Copyright (c) 2012-2013 Robert N. M. Watson
+ * Copyright (c) 2012-2013, 2016 Robert N. M. Watson
-	const char *str_fileio, *str_mmapio;
+	const char *str_fileio, *str_geomio, *str_mmapio;
+	str_geomio = NULL;
+	    device_get_unit(dev), ALTERA_AVALON_STR_GEOMIO, &str_geomio);
+	(void)resource_string_value(device_get_name(dev),
-	error = altera_avgen_attach(sc, str_fileio, str_mmapio, str_devname,
-	    devunit);
+	error = altera_avgen_attach(sc, str_fileio, str_geomio, str_mmapio,
+	    str_devname, devunit);
Index: sys/dev/altera/jtag_uart/altera_jtag_uart_tty.c
- * Copyright (c) 2011-2012 Robert N. M. Watson
+ * Copyright (c) 2011-2012, 2016 Robert N. M. Watson
+#include 
+#include 
- * before assuming JTAG has disappeared on us.  By default, two seconds.
+ * before assuming JTAG has disappeared on us.  By default, four seconds.
-#define	AJU_JTAG_MAXMISS		10
+#define	AJU_JTAG_MAXMISS		20
+ * Statistics on JTAG removal events when sending, for debugging purposes
+ * only.
+ */
+static u_int aju_jtag_vanished;
+SYSCTL_UINT(_debug, OID_AUTO, aju_jtag_vanished, CTLFLAG_RW,
+    &aju_jtag_vanished, 0, "Number of times JTAG has vanished");
+
+static u_int aju_jtag_appeared;
+SYSCTL_UINT(_debug, OID_AUTO, aju_jtag_appeared, CTLFLAG_RW,
+    &aju_jtag_appeared, 0, "Number of times JTAG has appeared");
+
+SYSCTL_INT(_debug, OID_AUTO, aju_cons_jtag_present, CTLFLAG_RW,
+    &aju_cons_jtag_present, 0, "JTAG console present flag");
+
+SYSCTL_UINT(_debug, OID_AUTO, aju_cons_jtag_missed, CTLFLAG_RW,
+    &aju_cons_jtag_missed, 0, "JTAG console missed counter");
+
+/*
+ * Interrupt-related statistics.
+ */
+static u_int aju_intr_readable_enabled;
+SYSCTL_UINT(_debug, OID_AUTO, aju_intr_readable_enabled, CTLFLAG_RW,
+    &aju_intr_readable_enabled, 0, "Number of times read interrupt enabled");
+
+static u_int aju_intr_writable_disabled;
+SYSCTL_UINT(_debug, OID_AUTO, aju_intr_writable_disabled, CTLFLAG_RW,
+    &aju_intr_writable_disabled, 0,
+    "Number of times write interrupt disabled");
+
+static u_int aju_intr_writable_enabled;
+SYSCTL_UINT(_debug, OID_AUTO, aju_intr_writable_enabled, CTLFLAG_RW,
+    &aju_intr_writable_enabled, 0,
+    "Number of times write interrupt enabled");
+
+static u_int aju_intr_disabled;
+SYSCTL_UINT(_debug, OID_AUTO, aju_intr_disabled, CTLFLAG_RW,
+    &aju_intr_disabled, 0, "Number of times write interrupt disabled");
+
+static u_int aju_intr_read_count;
+SYSCTL_UINT(_debug, OID_AUTO, aju_intr_read_count, CTLFLAG_RW,
+    &aju_intr_read_count, 0, "Number of times read interrupt fired");
+
+static u_int aju_intr_write_count;
+SYSCTL_UINT(_debug, OID_AUTO, aju_intr_write_count, CTLFLAG_RW,
+    &aju_intr_write_count, 0, "Number of times write interrupt fired");
+
+/*
+	atomic_add_int(&aju_intr_readable_enabled, 1);
+	atomic_add_int(&aju_intr_writable_enabled, 1);
+	atomic_add_int(&aju_intr_writable_disabled, 1);
+	atomic_add_int(&aju_intr_disabled, 1);
-		v = aju_control_read(sc);
-		if ((v & ALTERA_JTAG_UART_CONTROL_WSPACE) != 0) {
-			AJU_UNLOCK(sc);
-			if (ttydisc_getc(tp, &ch, sizeof(ch)) != sizeof(ch))
-				panic("%s: ttydisc_getc", __func__);
-			AJU_LOCK(sc);
-
+		if (*sc->ajus_jtag_presentp == 0) {
-			 * XXXRW: There is a slight race here in which we test
-			 * for writability, drop the lock, get the character
-			 * from the tty layer, re-acquire the lock, and then
-			 * write.  It's possible for other code --
-			 * specifically, the low-level console -- to have
-			 * written in the mean time, which might mean that
-			 * there is no longer space.  The BERI memory bus will
-			 * cause this write to block, wedging the processor
-			 * until space is available -- which could be a while
-			 * if JTAG is not attached!
-			 *
-			 * The 'easy' fix is to drop the character if WSPACE
-			 * has become unset.  Not sure what the 'hard' fix is.
-			 */
-			aju_data_write(sc, ch);
-		} else {
-			/*
-			if (*sc->ajus_jtag_presentp == 0) {
-				if (ttydisc_getc(tp, &ch, sizeof(ch)) !=
-				    sizeof(ch))
-					panic("%s: ttydisc_getc 2", __func__);
-				AJU_UNLOCK(sc);
-				continue;
-			}
-			if (sc->ajus_irq_res != NULL)
+			AJU_UNLOCK(sc);
+			if (ttydisc_getc(tp, &ch, sizeof(ch)) !=
+			    sizeof(ch))
+				panic("%s: ttydisc_getc", __func__);
+			continue;
+		}
+		v = aju_control_read(sc);
+		if ((v & ALTERA_JTAG_UART_CONTROL_WSPACE) == 0) {
+			if (sc->ajus_irq_res != NULL &&
+			    (v & ALTERA_JTAG_UART_CONTROL_WE) == 0)
+		if (ttydisc_getc(tp, &ch, sizeof(ch)) != sizeof(ch))
+			panic("%s: ttydisc_getc 2", __func__);
+		AJU_LOCK(sc);
+
+		/*
+		 * XXXRW: There is a slight race here in which we test for
+		 * writability, drop the lock, get the character from the tty
+		 * layer, re-acquire the lock, and then write.  It's possible
+		 * for other code -- specifically, the low-level console -- to
+		 * have* written in the mean time, which might mean that there
+		 * is no longer space.  The BERI memory bus will cause this
+		 * write to block, wedging the processor until space is
+		 * available -- which could be a while if JTAG is not
+		 * attached!
+		 *
+		 * The 'easy' fix is to drop the character if WSPACE has
+		 * become unset.  Not sure what the 'hard' fix is.
+		 */
+		aju_data_write(sc, ch);
+		AJU_UNLOCK(sc);
-	aju_intr_writable_disable(sc);
+
+	/*
+	 * If interrupts are configured, and there's no data to write, but we
+	 * had previously enabled write interrupts, disable them now.
+	 */
+	v = aju_control_read(sc);
+	if (sc->ajus_irq_res != NULL && (v & ALTERA_JTAG_UART_CONTROL_WE) != 0)
+		aju_intr_writable_disable(sc);
-			*sc->ajus_jtag_missedp = 0;
+			atomic_add_int(&aju_jtag_appeared, 1);
+
+		/* Any hit eliminates all recent misses. */
+		*sc->ajus_jtag_missedp = 0;
-		(*sc->ajus_jtag_missedp)++;
-		if (*sc->ajus_jtag_missedp >= AJU_JTAG_MAXMISS) {
+		/*
+		 * If we've exceeded our tolerance for misses, mark JTAG as
+		 * disconnected and drain output.  Otherwise, bump the miss
+		 * counter.
+		 */
+		if (*sc->ajus_jtag_missedp > AJU_JTAG_MAXMISS) {
+			atomic_add_int(&aju_jtag_vanished, 1);
-		}
+		} else
+			(*sc->ajus_jtag_missedp)++;
-	if (v & ALTERA_JTAG_UART_CONTROL_RI)
+	if (v & ALTERA_JTAG_UART_CONTROL_RI) {
+		atomic_add_int(&aju_intr_read_count, 1);
-	if (v & ALTERA_JTAG_UART_CONTROL_WI)
+	}
+	if (v & ALTERA_JTAG_UART_CONTROL_WI) {
+		atomic_add_int(&aju_intr_write_count, 1);
+	}
Index: sys/dev/arcmsr/arcmsr.c
+**
Index: sys/dev/arcmsr/arcmsr.h
+**
Index: sys/dev/cfe/cfe_ioctl.h
-/* $NetBSD: cfe_ioctl.h,v 1.2 2003/02/07 17:52:08 cgd Exp $ */
-
- * Copyright 2000, 2001
+ * Copyright 2000, 2001, 2002, 2003
- * This software is furnished under license and may be used and copied only
- * in accordance with the following terms and conditions.  Subject to these
- * conditions, you may download, copy, install, use, modify and distribute
- * modified or unmodified copies of this software in source and/or binary
- * form. No title or ownership is transferred hereby.
+ * This software is furnished under license and may be used and 
+ * copied only in accordance with the following terms and 
+ * conditions.  Subject to these conditions, you may download, 
+ * copy, install, use, modify and distribute modified or unmodified 
+ * copies of this software in source and/or binary form.  No title 
+ * or ownership is transferred hereby.
-    *  Author:  Mitch Lichtenberg (mpl@broadcom.com)
+    *  Author:  Mitch Lichtenberg
-#define IOCTL_FLASH_ERASE_ALL 4		/* Erase the entire flash */
+#define IOCTL_FLASH_ERASE_ALL   4	/* Erase the entire flash */
+#define IOCTL_FLASH_WRITE_ALL	5	/* write entire flash */
+#define IOCTL_FLASH_GETINFO	6	/* get flash device info */
+#define IOCTL_FLASH_GETSECTORS	7	/* get sector information */
+#define IOCTL_FLASH_ERASE_RANGE 8	/* erase range of bytes */
+#define IOCTL_NVRAM_UNLOCK	9	/* allow r/w beyond logical end of device */
+#define IOCTL_FLASH_PROTECT_RANGE 10	/* Protect a group of sectors */
+#define IOCTL_FLASH_UNPROTECT_RANGE 11	/* unprotect a group of sectors */
+#define IOCTL_FLASH_DATA_WIDTH_MODE	12 	/* switch flash and gen bus to support 8 or 16-bit mode I/Os */
+#define IOCTL_FLASH_BURST_MODE	13	/* configure gen bus for burst mode */
+typedef struct flash_range_s {
+    unsigned int range_base;
+    unsigned int range_length;
+} flash_range_t;
+
+typedef struct flash_info_s {
+    unsigned long long flash_base;	/* flash physical base address */
+    unsigned int flash_size;		/* available device size in bytes */
+    unsigned int flash_type;		/* type, from FLASH_TYPE below */
+    unsigned int flash_flags;		/* Various flags (FLASH_FLAG_xxx) */
+} flash_info_t;
+
+typedef struct flash_sector_s {
+    int flash_sector_idx;
+    int flash_sector_status;
+    unsigned int flash_sector_offset;
+    unsigned int flash_sector_size;
+} flash_sector_t;
+
+#define FLASH_SECTOR_OK		0
+#define FLASH_SECTOR_INVALID	-1
+
+#define FLASH_TYPE_UNKNOWN	0	/* not sure what kind of flash */
+#define FLASH_TYPE_SRAM		1	/* not flash: it's SRAM */
+#define FLASH_TYPE_ROM		2	/* not flash: it's ROM */
+#define FLASH_TYPE_FLASH	3	/* it's flash memory of some sort */
+
+#define FLASH_FLAG_NOERASE	1	/* Byte-range writes supported,
+					   Erasing is not necessary */
+
-    int nvram_offset;		/* offset of environment area */
-    int nvram_size;		/* size of environment area */
-    int nvram_eraseflg;		/* true if we need to erase first */
+    int nvram_offset;			/* offset of environment area */
+    int nvram_size;			/* size of environment area */
+    int nvram_eraseflg;			/* true if we need to erase first */
-#define IOCTL_ETHER_GETHWADDR	1
+#define IOCTL_ETHER_GETHWADDR	1	/* Get hardware address (6bytes) */
+#define IOCTL_ETHER_SETHWADDR   2	/* Set hardware address (6bytes) */
+#define IOCTL_ETHER_GETSPEED    3	/* Get Speed and Media (int) */
+#define IOCTL_ETHER_SETSPEED    4	/* Set Speed and Media (int) */
+#define IOCTL_ETHER_GETLINK	5	/* get link status (int) */
+#define IOCTL_ETHER_GETLOOPBACK	7	/* get loopback state */
+#define IOCTL_ETHER_SETLOOPBACK	8	/* set loopback state */
+#define IOCTL_ETHER_SETPACKETFIFO 9	/* set packet fifo mode (int) */
+#define IOCTL_ETHER_SETSTROBESIG 10	/* set strobe signal (int) */
+#define ETHER_LOOPBACK_OFF	0	/* no loopback */
+#define ETHER_LOOPBACK_INT	1	/* Internal loopback */
+#define ETHER_LOOPBACK_EXT	2	/* External loopback (through PHY) */
+
+#define ETHER_SPEED_AUTO	0	/* Auto detect */
+#define ETHER_SPEED_UNKNOWN	0	/* Speed not known (on link status) */
+#define ETHER_SPEED_10HDX	1	/* 10MB hdx and fdx */
+#define ETHER_SPEED_10FDX	2
+#define ETHER_SPEED_100HDX	3	/* 100MB hdx and fdx */
+#define ETHER_SPEED_100FDX	4
+#define ETHER_SPEED_1000HDX	5	/* 1000MB hdx and fdx */
+#define ETHER_SPEED_1000FDX	6
+
+#define ETHER_FIFO_8		0	/* 8-bit packet fifo mode */
+#define ETHER_FIFO_16		1	/* 16-bit packet fifo mode */
+#define ETHER_ETHER		2	/* Standard ethernet mode */
+
+#define ETHER_STROBE_GMII	0	/* GMII style strobe signal */
+#define ETHER_STROBE_ENCODED	1	/* Encoded */
+#define ETHER_STROBE_SOP	2	/* SOP flagged. Only in 8-bit mode*/
+#define ETHER_STROBE_EOP	3	/* EOP flagged. Only in 8-bit mode*/
+
+    *  Serial Ports
+    ********************************************************************* */
+
+#define IOCTL_SERIAL_SETSPEED	1	/* get baud rate (int) */
+#define IOCTL_SERIAL_GETSPEED	2	/* set baud rate (int) */
+#define IOCTL_SERIAL_SETFLOW	3	/* Set Flow Control */
+#define IOCTL_SERIAL_GETFLOW	4	/* Get Flow Control */
+
+#define SERIAL_FLOW_NONE	0	/* no flow control */
+#define SERIAL_FLOW_SOFTWARE	1	/* software flow control (not impl) */
+#define SERIAL_FLOW_HARDWARE	2	/* hardware flow control */
+
+/*  *********************************************************************
-#define IOCTL_BLOCK_GETBLOCKSIZE 1
-#define IOCTL_BLOCK_GETTOTALBLOCKS 2
+#define IOCTL_BLOCK_GETBLOCKSIZE 1	/* get block size (int) */
+#define IOCTL_BLOCK_GETTOTALBLOCKS 2	/* get total bocks (long long) */
+#define IOCTL_BLOCK_GETDEVTYPE 3	/* get device type (struct) */
+
+typedef struct blockdev_info_s {
+    unsigned long long blkdev_totalblocks;
+    unsigned int blkdev_blocksize;
+    unsigned int blkdev_devtype;
+} blockdev_info_t;
+
+#define BLOCK_DEVTYPE_DISK	0
+#define BLOCK_DEVTYPE_CDROM	1
Index: sys/dev/sound/pci/hda/hdaa.h
-/*-7
Index: sys/dev/sound/pci/hdspe-pcm.c
- * Copyright (c) 2012 Ruslan Bukin 
+ * Copyright (c) 2012-2016 Ruslan Bukin 
-	struct sc_pcminfo *scp = ch->parent;
-	struct sc_info *sc = scp->sc;
-	int offs = 0;
+	struct sc_pcminfo *scp;
+	struct sc_info *sc;
+	int offs;
+	scp = ch->parent;
+	sc = scp->sc;
+
+	offs = 0;
-	return 0;
+	return (0);
-	return 0;
+	return (0);
-	struct sc_pcminfo *scp = mix_getdevinfo(m);
-	struct sc_info *sc = scp->sc;
+	struct sc_pcminfo *scp;
+	struct sc_info *sc;
+	scp = mix_getdevinfo(m);
+	sc = scp->sc;
-		return -1;
+		return (-1);
-	return 0;
+	return (0);
-	struct sc_pcminfo *scp = mix_getdevinfo(m);
+	struct sc_pcminfo *scp;
+	scp = mix_getdevinfo(m);
+
-	    left,right);
+	    left, right);
-	return 0;
+	return (0);
-	struct sc_pcminfo *scp = ch->parent;
-	struct sc_info *sc = scp->sc;
+	struct sc_pcminfo *scp;
+	struct sc_info *sc;
+	scp = ch->parent;
+	sc = scp->sc;
+
-	int i, j, devcount, err;
+	int devcount;
+	int i, j;
+	int err;
-	return 0;
+
+	return (0);
-	device_printf(sc->dev,"hdspe is running\n");
+	device_printf(sc->dev, "hdspe is running\n");
-	return 1;
+
+	return (1);
-	struct sc_pcminfo *scp = ch->parent;
-	struct sc_info *sc = scp->sc;
-	int length,src,dst;
+	struct sc_pcminfo *scp;
+	struct sc_info *sc;
+	int src, dst;
+	int length;
+	scp = ch->parent;
+	sc = scp->sc;
+
-clean(struct sc_chinfo *ch){
-	struct sc_pcminfo *scp = ch->parent;
-	struct sc_info *sc = scp->sc;
-	uint32_t *buf = sc->rbuf;
+clean(struct sc_chinfo *ch)
+{
+	struct sc_pcminfo *scp;
+	struct sc_info *sc;
+	uint32_t *buf;
+	scp = ch->parent;
+	sc = scp->sc;
+	buf = sc->rbuf;
+
-	return 0;
+	return (0);
-               struct pcm_channel *c, int dir)
+    struct pcm_channel *c, int dir)
-	struct sc_pcminfo *scp = devinfo;
-	struct sc_info *sc = scp->sc;
+	struct sc_pcminfo *scp;
+	struct sc_info *sc;
+	scp = devinfo;
+	sc = scp->sc;
+
-		return NULL;
+		return (NULL);
-	return ch;
+	return (ch);
-	struct sc_chinfo *ch = data;
-	struct sc_pcminfo *scp = ch->parent;
-	struct sc_info *sc = scp->sc;
+	struct sc_pcminfo *scp;
+	struct sc_chinfo *ch;
+	struct sc_info *sc;
+	ch = data;
+	scp = ch->parent;
+	sc = scp->sc;
+
-	return 0;
+	return (0);
-	struct sc_chinfo *ch = data;
-	struct sc_pcminfo *scp = ch->parent;
-	struct sc_info *sc = scp->sc;
+	struct sc_pcminfo *scp;
+	struct sc_chinfo *ch;
+	struct sc_info *sc;
+	ch = data;
+	scp = ch->parent;
+	sc = scp->sc;
+
-	return pos;
+	return (pos);
-	struct sc_chinfo *ch = data;
-	struct sc_pcminfo *scp = ch->parent;
-	struct sc_info *sc = scp->sc;
+	struct sc_pcminfo *scp;
+	struct sc_chinfo *ch;
+	struct sc_info *sc;
+	ch = data;
+	scp = ch->parent;
+	sc = scp->sc;
+
+
-	return 0;
+	return (0);
-	struct sc_chinfo *ch = data;
+	struct sc_chinfo *ch;
+	ch = data;
+
-	return 0;
+	return (0);
-	struct sc_chinfo *ch = data;
-	struct sc_pcminfo *scp = ch->parent;
-	struct sc_info *sc = scp->sc;
-	struct hdspe_rate *hr = NULL;
+	struct sc_pcminfo *scp;
+	struct hdspe_rate *hr;
+	struct sc_chinfo *ch;
+	struct sc_info *sc;
+	ch = data;
+	scp = ch->parent;
+	sc = scp->sc;
+	hr = NULL;
+
-	return sc->speed;
+
+	return (sc->speed);
-	struct sc_chinfo *ch = data;
-	struct sc_pcminfo *scp = ch->parent;
-	struct sc_info *sc = scp->sc;
-	struct hdspe_latency *hl = NULL;
+	struct hdspe_latency *hl;
+	struct sc_pcminfo *scp;
+	struct sc_chinfo *ch;
+	struct sc_info *sc;
+	ch = data;
+	scp = ch->parent;
+	sc = scp->sc;
+	hl = NULL;
+
-	return sndbuf_getblksz(ch->buffer);
+
+	return (sndbuf_getblksz(ch->buffer));
-	struct sc_chinfo *ch = data;
+	struct sc_chinfo *ch;
+	ch = data;
+
-	return (ch->dir == PCMDIR_PLAY) ?
-	    &hdspe_pcaps : &hdspe_rcaps;
+	return ((ch->dir == PCMDIR_PLAY) ?
+	    &hdspe_pcaps : &hdspe_rcaps);
-	return 0;
+	return (0);
-hdspe_pcm_intr(struct sc_pcminfo *scp) {
+hdspe_pcm_intr(struct sc_pcminfo *scp)
+{
-	struct sc_info *sc = scp->sc;
+	struct sc_info *sc;
+	sc = scp->sc;
+
-	return 0;
+	return (0);
+	char status[SND_STATUSLEN];
-	char status[SND_STATUSLEN];
-		return ENXIO;
+		return (ENXIO);
-	return 0;
+	return (0);
-		return err;
+		return (err);
-	return 0;
+	return (0);
Index: sys/dev/sound/pci/hdspe.c
- * Copyright (c) 2012 Ruslan Bukin 
+ * Copyright (c) 2012-2016 Ruslan Bukin 
-	struct sc_info *sc = (struct sc_info *)p;
+	struct sc_info *sc;
-	int devcount, status;
-	int i, err;
+	int devcount;
+	int status;
+	int err;
+	int i;
+	sc = (struct sc_info *)p;
+
+	struct sc_info *sc;
+
+	sc = (struct sc_info *)arg;
+
-	struct sc_info *sc = (struct sc_info *)arg;
+
-
-	uint32_t paddr,raddr;
+	uint32_t paddr, raddr;
-			return 0;
+			return (0);
-			return 0;
+			return (0);
-	return 0;
+	return (0);
+	struct hdspe_channel *chan_map;
+	struct sc_pcminfo *scp;
-	struct sc_pcminfo *scp;
-	struct hdspe_channel *chan_map;
-		return ENXIO;
+		return (ENXIO);
-		return ENXIO;
+		return (ENXIO);
-		return ENXIO;
+		return (ENXIO);
-		return 0;
+		return (0);
-	return 0;
+	return (0);
Index: sys/mips/alchemy/aureg.h
+ * $FreeBSD$
Index: sys/mips/atheros/ar71xx_bus_space_reversed.h
+ * $FreeBSD$
Index: sys/mips/atheros/ar71xx_pci_bus_space.h
+ * $FreeBSD$
Index: sys/mips/beri/beri_pic.c
+ * Copyright (c) 2017 Ruslan Bukin 
+#include "opt_platform.h"
+
+#include 
-#include 
+#include 
+#ifdef SMP
+#include 
+#endif
+
+#include 
+#include 
-#include 
+#include "pic_if.h"
-#include "fdt_ic_if.h"
+#define	BP_NUM_HARD_IRQS	5
+#define	BP_NUM_IRQS		32
+/* We use hard irqs 15-31 as soft */
+#define	BP_FIRST_SOFT		16
-struct beripic_softc;
+#define	BP_CFG_IRQ_S		0
+#define	BP_CFG_IRQ_M		(0xf << BP_CFG_IRQ_S)
+#define	BP_CFG_TID_S		8
+#define	BP_CFG_TID_M		(0x7FFFFF << BP_CFG_TID_S)
+#define	BP_CFG_ENABLE		(1 << 31)
-static uint64_t	bp_read_cfg(struct beripic_softc *, int);
-static void	bp_write_cfg(struct beripic_softc *, int, uint64_t);
-static void	bp_detach_resources(device_t);
-static char	*bp_strconfig(uint64_t, char *, size_t);
-static void	bp_config_source(device_t, int, int, u_long, u_long);
-#ifdef __mips__
-static void	bp_set_counter_name(device_t, device_t, int);
-#endif
+enum {
+	BP_CFG,
+	BP_IP_READ,
+	BP_IP_SET,
+	BP_IP_CLEAR
+};
-static int	beripic_fdt_probe(device_t);
-static int	beripic_fdt_attach(device_t);
+struct beripic_softc;
-static int	beripic_activate_intr(device_t, struct resource *);
-static struct resource *
-		beripic_alloc_intr(device_t, device_t, int *, u_long, u_int);
-static int	beripic_config_intr(device_t, int,  enum intr_trigger,
-		    enum intr_polarity);
-static int	beripic_release_intr(device_t, struct resource *);
-static int	beripic_setup_intr(device_t, device_t, struct resource *,
-		    int, driver_filter_t *, driver_intr_t *, void *, void **);
-static int	beripic_teardown_intr(device_t, device_t, struct resource *,
-		    void *);
+struct beri_pic_isrc {
+	struct intr_irqsrc	isrc;
+	u_int			irq;
+	uint32_t		mips_hard_irq;
+};
-static int	beripic_filter(void *);
-static void	beripic_intr(void *);
+struct hirq {
+	uint32_t		irq;
+	struct beripic_softc	*sc;
+};
-#define	BP_MAX_HARD_IRQS	6
-#define	BP_FIRST_SOFT		64
-
-	device_t		bp_dev;
-	struct resource		*bp_cfg_res;
-	struct resource		*bp_read_res;
-	struct resource		*bp_set_res;
-	struct resource		*bp_clear_res;
-	int			bp_cfg_rid;
-	int			bp_read_rid;
-	int			bp_set_rid;
-	int			bp_clear_rid;
-	bus_space_tag_t		bp_cfg_bst;
-	bus_space_tag_t		bp_read_bst;
-	bus_space_tag_t		bp_set_bst;
-	bus_space_tag_t		bp_clear_bst;
-	bus_space_handle_t	bp_cfg_bsh;
-	bus_space_handle_t	bp_read_bsh;
-	bus_space_handle_t	bp_set_bsh;
-	bus_space_handle_t	bp_clear_bsh;
-
-	struct resource		*bp_irqs[BP_MAX_HARD_IRQS];
-	int			bp_irq_rids[BP_MAX_HARD_IRQS];
-	int			bp_nirqs;
-	int			bp_next_irq;
-	int			bp_next_tid;
-
-	int			bp_nthreads;
-
-	int			bp_nhard;
-	int			bp_nsoft;
-	int			bp_nsrcs;
-	struct rman		bp_src_rman;
-
-#ifdef __mips__
-	mips_intrcnt_t		*bp_counters;
-#endif
-
-	struct mtx		bp_cfgmtx;
+	device_t		dev;
+	uint32_t		nirqs;
+	struct beri_pic_isrc	irqs[BP_NUM_IRQS];
+	struct resource		*res[4 + BP_NUM_HARD_IRQS];
+	void			*ih[BP_NUM_HARD_IRQS];
+	struct hirq		hirq[BP_NUM_HARD_IRQS];
+	uint8_t			mips_hard_irq_idx;
-struct beripic_intr_arg {
-	driver_filter_t		*filter;
-	driver_intr_t		*intr;
-	void			*arg;
-	struct resource		*irq;
-#ifdef __mips__
-	mips_intrcnt_t		counter;
-#endif
+static struct resource_spec beri_pic_spec[] = {
+	{ SYS_RES_MEMORY,	0,	RF_ACTIVE },
+	{ SYS_RES_MEMORY,	1,	RF_ACTIVE },
+	{ SYS_RES_MEMORY,	2,	RF_ACTIVE },
+	{ SYS_RES_MEMORY,	3,	RF_ACTIVE },
+	{ SYS_RES_IRQ,		0,	RF_ACTIVE },
+	{ SYS_RES_IRQ,		1,	RF_ACTIVE },
+	{ SYS_RES_IRQ,		2,	RF_ACTIVE },
+	{ SYS_RES_IRQ,		3,	RF_ACTIVE },
+	{ SYS_RES_IRQ,		4,	RF_ACTIVE },
+	{ -1, 0 }
-struct beripic_cookie {
-	struct beripic_intr_arg	*bpia;
-	struct resource		*hirq;
-	void			*cookie;
-};
-
-#define	BP_CFG_MASK_E		0x80000000ull
-#define	BP_CFG_SHIFT_E		31
-#define	BP_CFG_MASK_TID		0x7FFFFF00ull	/* Depends on CPU */
-#define	BP_CFG_SHIFT_TID	8
-#define	BP_CFG_MASK_IRQ		0x0000000Full
-#define BP_CFG_SHIFT_IRQ	0
-#define	BP_CFG_VALID		(BP_CFG_MASK_E|BP_CFG_MASK_TID|BP_CFG_MASK_IRQ)
-#define	BP_CFG_RESERVED		~BP_CFG_VALID
-
-#define	BP_CFG_ENABLED(cfg)	(((cfg) & BP_CFG_MASK_E) >> BP_CFG_SHIFT_E)
-#define	BP_CFG_TID(cfg)		(((cfg) & BP_CFG_MASK_TID) >> BP_CFG_SHIFT_TID)
-#define	BP_CFG_IRQ(cfg)		(((cfg) & BP_CFG_MASK_IRQ) >> BP_CFG_SHIFT_IRQ)
-
-MALLOC_DEFINE(M_BERIPIC, "beripic", "beripic memory");
-
-static uint64_t
-bp_read_cfg(struct beripic_softc *sc, int irq)
+static int
+beri_pic_intr(void *arg)
-	
-	KASSERT((irq >= 0 && irq < sc->bp_nsrcs),
-	    ("IRQ of of range %d (0-%d)", irq, sc->bp_nsrcs - 1));
-	return (bus_space_read_8(sc->bp_cfg_bst, sc->bp_cfg_bsh, irq * 8));
-}
-
-static void
-bp_write_cfg(struct beripic_softc *sc, int irq, uint64_t config)
-{
-	
-	KASSERT((irq >= 0 && irq < sc->bp_nsrcs),
-	    ("IRQ of of range %d (0-%d)", irq, sc->bp_nsrcs - 1));
-	bus_space_write_8(sc->bp_cfg_bst, sc->bp_cfg_bsh, irq * 8, config);
-}
-
-static void
-bp_detach_resources(device_t dev)
-{
+	struct intr_irqsrc *isrc;
+	struct hirq *h;
+	uint64_t intr;
+	uint64_t reg;
-	sc = device_get_softc(dev);
+	h = arg;
+	sc = h->sc;
-	if (sc->bp_cfg_res != NULL) {
-		bus_release_resource(dev, SYS_RES_MEMORY, sc->bp_cfg_rid,
-		    sc->bp_cfg_res);
-		sc->bp_cfg_res = NULL;
-	}
-	if (sc->bp_read_res != NULL) {
-		bus_release_resource(dev, SYS_RES_MEMORY, sc->bp_read_rid,
-		    sc->bp_read_res);
-		sc->bp_read_res = NULL;
-	}
-	if (sc->bp_set_res != NULL) {
-		bus_release_resource(dev, SYS_RES_MEMORY, sc->bp_set_rid,
-		    sc->bp_set_res);
-		sc->bp_set_res = NULL;
-	}
-	if (sc->bp_clear_res != NULL) {
-		bus_release_resource(dev, SYS_RES_MEMORY, sc->bp_clear_rid,
-		    sc->bp_clear_res);
-		sc->bp_clear_res = NULL;
-	}
-	for (i = sc->bp_nirqs - 1; i >= 0; i--) {
-		bus_release_resource(dev, SYS_RES_IRQ, sc->bp_irq_rids[i],
-		    sc->bp_irqs[i]);
-	}
-	sc->bp_nirqs = 0;
-}
+	intr = bus_read_8(sc->res[BP_IP_READ], 0);
+	while ((i = fls(intr)) != 0) {
+		i--;
+		intr &= ~(1u << i);
-static char *
-bp_strconfig(uint64_t config, char *configstr, size_t len)
-{
-	
-	if (snprintf(configstr, len, "%s tid: %llu hardintr %llu",
-	    BP_CFG_ENABLED(config) ? "enabled" : "disabled",
-	    BP_CFG_TID(config), BP_CFG_IRQ(config)) > len - 1)
-		return (NULL);
-	return (configstr);
-}
+		isrc = &sc->irqs[i].isrc;
-static void
-bp_config_source(device_t ic, int src, int enable, u_long tid, u_long irq)
-{
-	struct beripic_softc *sc;
-	uint64_t config;
+		reg = bus_read_8(sc->res[BP_CFG], i * 8);
+		if ((reg & BP_CFG_IRQ_M) != h->irq) {
+			continue;
+		}
+		if ((reg & (BP_CFG_ENABLE)) == 0) {
+			continue;
+		}
-	sc = device_get_softc(ic);
+		if (intr_isrc_dispatch(isrc, curthread->td_intr_frame) != 0) {
+			device_printf(sc->dev, "Stray interrupt %u detected\n", i);
+		}
-	config = 0;
-	config |= enable << BP_CFG_SHIFT_E;
-	config |= tid << BP_CFG_SHIFT_TID;
-	config |= irq << BP_CFG_SHIFT_IRQ;
+		bus_write_8(sc->res[BP_IP_CLEAR], 0, (1 << i));
+	}
-	bp_write_cfg(sc, src, config);
+	return (FILTER_HANDLED);
-#ifdef __mips__
-static void
-bp_set_counter_name(device_t ic, device_t child, int src)
-{
-	struct beripic_softc *sc;
-	char name[MAXCOMLEN + 1];
-
-	sc = device_get_softc(ic);
-
-	if (snprintf(name, sizeof(name), "bp%dsrc%d%s%s%s",
-	    device_get_unit(ic), src, src < sc->bp_nhard ? "" : "s",
-	    child == NULL ? "" : " ",
-	    child == NULL ? " " : device_get_nameunit(child)) >= sizeof(name))
-		name[sizeof(name) - 2] = '+';
-	
-	mips_intrcnt_setname(sc->bp_counters[src], name);
-}
-#endif
-
-beripic_fdt_probe(device_t dev)
+beripic_probe(device_t dev)
+
-beripic_fdt_attach(device_t dev)
+beripic_attach(device_t dev)
-	char configstr[64];
-	struct fdt_ic *fic;
-	pcell_t nhard, nsoft;
-	phandle_t ph;
-	int error, i, src;
-	uint64_t config;
+	struct beri_pic_isrc *pic_isrc;
+	const char *name;
+	struct intr_irqsrc *isrc;
+	intptr_t xref;
+	uint32_t unit;
+	int err;
+	int i;
-	sc->bp_dev = dev;
+	sc->dev = dev;
-	mtx_init(&sc->bp_cfgmtx, "beripic config lock", NULL, MTX_DEF);
-
-	/*
-	 * FDT lists CONFIG, IP_READ, IP_SET, and IP_CLEAR registers as
-	 * seperate memory regions in that order.
-	 */
-	sc->bp_cfg_rid = 0;
-	sc->bp_cfg_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
-	    &sc->bp_cfg_rid, RF_ACTIVE);
-	if (sc->bp_cfg_res == NULL) {
-		device_printf(dev, "failed to map config memory");
-		error = ENXIO;
-		goto err;
+	if (bus_alloc_resources(dev, beri_pic_spec, sc->res)) {
+		device_printf(dev, "could not allocate resources\n");
+		return (ENXIO);
-	if (bootverbose)
-		device_printf(sc->bp_dev, "config region at mem %p-%p\n",
-		    (void *)rman_get_start(sc->bp_cfg_res),
-		    (void *)(rman_get_start(sc->bp_cfg_res) +
-		    rman_get_size(sc->bp_cfg_res)));
-	sc->bp_read_rid = 1;
-	sc->bp_read_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
-	    &sc->bp_read_rid, RF_ACTIVE);
-	if (sc->bp_read_res == NULL) {
-		device_printf(dev, "failed to map IP read memory");
-		error = ENXIO;
-		goto err;
-	}
-	if (bootverbose)
-		device_printf(sc->bp_dev, "IP read region at mem %p-%p\n",
-		    (void *)rman_get_start(sc->bp_read_res),
-		    (void *)(rman_get_start(sc->bp_read_res) +
-		    rman_get_size(sc->bp_read_res)));
+	xref = OF_xref_from_node(ofw_bus_get_node(dev));
+	name = device_get_nameunit(dev);
+	unit = device_get_unit(dev);
+	sc->nirqs = BP_NUM_IRQS;
-	sc->bp_set_rid = 2;
-	sc->bp_set_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
-	    &sc->bp_set_rid, RF_ACTIVE);
-	if (sc->bp_set_res == NULL) {
-		device_printf(dev, "failed to map IP read memory");
-		error = ENXIO;
-		goto err;
-	}
-	if (bootverbose)
-		device_printf(sc->bp_dev, "IP set region at mem %p-%p\n",
-		    (void *)rman_get_start(sc->bp_set_res),
-		    (void *)(rman_get_start(sc->bp_set_res) +
-		    rman_get_size(sc->bp_set_res)));
+	for (i = 0; i < sc->nirqs; i++) {
+		sc->irqs[i].irq = i;
+		isrc = &sc->irqs[i].isrc;
-	sc->bp_clear_rid = 3;
-	sc->bp_clear_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
-	    &sc->bp_clear_rid, RF_ACTIVE);
-	if (sc->bp_clear_res == NULL) {
-		device_printf(dev, "failed to map IP read memory");
-		error = ENXIO;
-		goto err;
-	}
-	if (bootverbose)
-		device_printf(sc->bp_dev, "IP clear region at mem %p-%p\n",
-		    (void *)rman_get_start(sc->bp_clear_res),
-		    (void *)(rman_get_start(sc->bp_clear_res) +
-		    rman_get_size(sc->bp_clear_res)));
+		/* Assign mips hard irq number. */
+		pic_isrc = (struct beri_pic_isrc *)isrc;
+		pic_isrc->mips_hard_irq = sc->mips_hard_irq_idx++;
+		/* Last IRQ is used for IPIs. */
+		if (sc->mips_hard_irq_idx >= (BP_NUM_HARD_IRQS - 1)) {
+			sc->mips_hard_irq_idx = 0;
+		}
-	i = 0;
-	for (i = 0; i < BP_MAX_HARD_IRQS; i++) {
-		sc->bp_irq_rids[i] = i;
-		sc->bp_irqs[i] = bus_alloc_resource_any(dev, SYS_RES_IRQ,
-		    &sc->bp_irq_rids[i], RF_ACTIVE | RF_SHAREABLE);
-		if (sc->bp_irqs[i] == NULL)
-			break;
+		err = intr_isrc_register(isrc, sc->dev,
+		    0, "pic%d,%d", unit, i);
+		bus_write_8(sc->res[BP_CFG], i * 8, 0);
-	if (i == 0) {
-		device_printf(dev, "failed to allocate any parent IRQs!");
-		error = ENXIO;
-		goto err;
-	}
-	sc->bp_nirqs = i;
-	ph = ofw_bus_gen_get_node(device_get_parent(dev), dev);
-
-#ifndef SMP
-	sc->bp_nthreads = 1;
-#else
-	sc->bp_nthreads = 1;
-	/* XXX: get nthreads from cpu(s) somehow */
-#endif
-
-	if (OF_getprop(ph, "hard-interrupt-sources", &nhard, sizeof(nhard))
-	    <= 0) {
-		device_printf(dev, "failed to get number of hard sources");
-		error = ENXIO;
-		goto err;
+	/*
+	 * Now, when everything is initialized, it's right time to
+	 * register interrupt controller to interrupt framefork.
+	 */
+	if (intr_pic_register(dev, xref) == NULL) {
+		device_printf(dev, "could not register PIC\n");
+		return (ENXIO);
-	if (OF_getprop(ph, "soft-interrupt-sources", &nsoft, sizeof(nsoft))
-	    <= 0) {
-		device_printf(dev, "failed to get number of soft sources");
-		error = ENXIO;
-		goto err;
-	}
-	sc->bp_nhard = nhard;
-	sc->bp_nsoft = nsoft;
-	sc->bp_nsrcs = sc->bp_nhard + sc->bp_nsoft;
-	/* XXX: should deal with gap between hard and soft */
-	KASSERT(sc->bp_nhard <= BP_FIRST_SOFT,
-	    ("too many hard sources"));
-	KASSERT(rman_get_size(sc->bp_cfg_res) / 8 == sc->bp_nsrcs,
-	    ("config space size does not match sources"));
-	KASSERT(sc->bp_nhard % 64 == 0,
-	    ("Non-multiple of 64 intr counts not supported"));
-	KASSERT(sc->bp_nsoft % 64 == 0,
-	    ("Non-multiple of 64 intr counts not supported"));
-	if (bootverbose)
-		device_printf(dev, "%d hard and %d soft sources\n",
-		    sc->bp_nhard, sc->bp_nsoft);
-
-#ifdef __mips__
-	sc->bp_counters = malloc(sizeof(*sc->bp_counters) * sc->bp_nsrcs,
-	    M_BERIPIC, M_WAITOK|M_ZERO);
-	for (i = 0; i < sc->bp_nsrcs; i++) {
-		sc->bp_counters[i] = mips_intrcnt_create("");
-		bp_set_counter_name(dev, NULL, i);
-	}
-#endif
-	
-	sc->bp_src_rman.rm_start = 0;
-	sc->bp_src_rman.rm_end = sc->bp_nsrcs - 1;
-	sc->bp_src_rman.rm_type = RMAN_ARRAY;
-	sc->bp_src_rman.rm_descr = "Interrupt source";
-	if (rman_init(&(sc->bp_src_rman)) != 0 ||
-	    rman_manage_region(&(sc->bp_src_rman), 0, sc->bp_nsrcs - 1) != 0) {
-		device_printf(dev, "Failed to set up sources rman");
-		error = ENXIO;
-		goto err;
-	}
-
-	sc->bp_cfg_bst = rman_get_bustag(sc->bp_cfg_res);
-	sc->bp_cfg_bsh = rman_get_bushandle(sc->bp_cfg_res);
-	sc->bp_read_bst = rman_get_bustag(sc->bp_read_res);
-	sc->bp_read_bsh = rman_get_bushandle(sc->bp_read_res);
-	sc->bp_set_bst = rman_get_bustag(sc->bp_set_res);
-	sc->bp_set_bsh = rman_get_bushandle(sc->bp_set_res);
-	sc->bp_clear_bst = rman_get_bustag(sc->bp_clear_res);
-	sc->bp_clear_bsh = rman_get_bushandle(sc->bp_clear_res);
-
-	for (src = 0; src < sc->bp_nsrcs; src++) {
-		config = bp_read_cfg(sc, src);
-		if (config == 0)
-			continue;
-
-		if (bootverbose) {
-			device_printf(dev, "initial config: src %d: %s\n", src,
-			    bp_strconfig(config, configstr, sizeof(configstr)));
-			if (config & BP_CFG_RESERVED)
-				device_printf(dev,
-				    "reserved bits not 0: 0x%016jx\n",
-				    (uintmax_t) config);
+	/* Last IRQ is used for IPIs. */
+	for (i = 0; i < (BP_NUM_HARD_IRQS - 1); i++) {
+		sc->hirq[i].sc = sc;
+		sc->hirq[i].irq = i;
+		if (bus_setup_intr(dev, sc->res[4+i], INTR_TYPE_CLK,
+		    beri_pic_intr, NULL, &sc->hirq[i], sc->ih[i])) {
+			device_printf(dev, "could not setup irq handler\n");
+			intr_pic_deregister(dev, xref);
+			return (ENXIO);
-
-		bp_config_source(dev, src, 0, 0, 0);
-	fic = malloc(sizeof(*fic), M_BERIPIC, M_WAITOK|M_ZERO);
-	fic->iph = ph;
-	fic->dev = dev;
-	SLIST_INSERT_HEAD(&fdt_ic_list_head, fic, fdt_ics);
-
-err:
-	bp_detach_resources(dev);
-
-	return (error);
-static struct resource *
-beripic_alloc_intr(device_t ic, device_t child, int *rid, u_long irq,
-    u_int flags)
+static void
+beri_pic_enable_intr(device_t dev, struct intr_irqsrc *isrc)
+	struct beri_pic_isrc *pic_isrc;
-	struct resource *rv;
+	uint64_t reg;
-	sc = device_get_softc(ic);
+	sc = device_get_softc(dev);
+	pic_isrc = (struct beri_pic_isrc *)isrc;
-	rv = rman_reserve_resource(&(sc->bp_src_rman), irq, irq, 1, flags,
-	    child);
-	if (rv == NULL)
-		 printf("%s: could not reserve source interrupt for %s\n",
-		     __func__, device_get_nameunit(child));
-	rman_set_rid(rv, *rid);
-
-	if ((flags & RF_ACTIVE) &&
-	    beripic_activate_intr(ic, rv) != 0) {
-		printf("%s: could not activate interrupt\n", __func__);
-		rman_release_resource(rv);
-		return (NULL);
-	}
-
-	return (rv);
+	reg = BP_CFG_ENABLE;
+	reg |= (pic_isrc->mips_hard_irq << BP_CFG_IRQ_S);
+	bus_write_8(sc->res[BP_CFG], pic_isrc->irq * 8, reg);
-static int
-beripic_release_intr(device_t ic, struct resource *r)
+static void
+beri_pic_disable_intr(device_t dev, struct intr_irqsrc *isrc)
-	
-	return (rman_release_resource(r));
-}
+	struct beri_pic_isrc *pic_isrc;
+	struct beripic_softc *sc;
+	uint64_t reg;
-static int
-beripic_activate_intr(device_t ic, struct resource *r)
-{
-	
-	return (rman_activate_resource(r));
-}
+	sc = device_get_softc(dev);
+	pic_isrc = (struct beri_pic_isrc *)isrc;
-static int
-beripic_deactivate_intr(device_t ic, struct resource *r)
-{
-	
-	return (rman_deactivate_resource(r));
+	reg = bus_read_8(sc->res[BP_CFG], pic_isrc->irq * 8);
+	reg &= ~BP_CFG_ENABLE;
+	bus_write_8(sc->res[BP_CFG], pic_isrc->irq * 8, reg);
-beripic_config_intr(device_t dev, int irq, enum intr_trigger trig,
-   enum intr_polarity pol)
+beri_pic_map_intr(device_t dev, struct intr_map_data *data,
+    struct intr_irqsrc **isrcp)
-
-	if (trig != INTR_TRIGGER_CONFORM || pol != INTR_POLARITY_CONFORM)
-		return (EINVAL);
-
-	return (0);
-}
-
-static int
-beripic_setup_intr(device_t ic, device_t child, struct resource *irq,
-    int flags, driver_filter_t *filter, driver_intr_t *intr, void *arg, 
-    void **cookiep)
-{
-	struct beripic_intr_arg *bpia;
-	struct beripic_cookie *bpc;
-	int error;
-	u_long hirq, src, tid;
+	struct intr_map_data_fdt *daf;
+	uint32_t irq;
-	sc = device_get_softc(ic);
+	sc = device_get_softc(dev);
+	daf = (struct intr_map_data_fdt *)data;
-	src = rman_get_start(irq);
+	if (data == NULL || data->type != INTR_MAP_DATA_FDT ||
+	    daf->ncells != 1 || daf->cells[0] >= sc->nirqs)
+		return (EINVAL);
-	KASSERT(src < sc->bp_nsrcs, ("source (%lu) out of range 0-%d",
-	     src, sc->bp_nsrcs - 1));
+	irq = daf->cells[0];
-	bpia = malloc(sizeof(*bpia), M_BERIPIC, M_WAITOK|M_ZERO);
-	bpia->filter = filter;
-	bpia->intr = intr;
-	bpia->arg = arg;
-	bpia->irq = irq;
-#ifdef __mips__
-	bpia->counter = sc->bp_counters[src];
-	bp_set_counter_name(ic, child, src);
-#endif
+	*isrcp = &sc->irqs[irq].isrc;
-	bpc = malloc(sizeof(*bpc), M_BERIPIC, M_WAITOK|M_ZERO);
-	bpc->bpia = bpia;
-
-	mtx_lock(&(sc->bp_cfgmtx));
-	bpc->hirq = sc->bp_irqs[sc->bp_next_irq];
-	hirq = rman_get_start(bpc->hirq);
-	tid = sc->bp_next_tid;
-
-	error = BUS_SETUP_INTR(device_get_parent(ic), ic, bpc->hirq, flags,
-	    beripic_filter, intr == NULL ? NULL : beripic_intr, bpia,
-	    &(bpc->cookie));
-	if (error != 0)
-		goto err;
-
-#ifdef NOTYET
-#ifdef SMP
-	/* XXX: bind ithread to cpu */
-	sc->bp_next_tid++;
-	if (sc->bp_next_tid >= sc->bp_nthreads)
-		sc->bp_next_tid = 0;
-#endif
-#endif
-	if (sc->bp_next_tid == 0) {
-		sc->bp_next_irq++;
-		if (sc->bp_next_irq >= sc->bp_nirqs)
-			sc->bp_next_irq = 0;
-	}
-	mtx_unlock(&(sc->bp_cfgmtx));
-
-	*cookiep = bpc;
-
-	bp_config_source(ic, rman_get_start(irq), 1, tid, hirq);
-
-err:
-	free(bpc, M_BERIPIC);
-	free(bpia, M_BERIPIC);
-
-	return (error);
-static int
-beripic_teardown_intr(device_t dev, device_t child, struct resource *irq,
-    void *cookie)
+static void
+beri_pic_post_ithread(device_t dev, struct intr_irqsrc *isrc)
-	struct beripic_cookie *bpc;
-	int error;
-	bpc = cookie;
-
-	bp_config_source(dev, rman_get_start(irq), 0, 0, 0);
-
-	free(bpc->bpia, M_BERIPIC);
-
-	error = BUS_TEARDOWN_INTR(device_get_parent(dev), dev, bpc->hirq,
-	    bpc->cookie);
-
-	free(bpc, M_BERIPIC);
-
-	return (error);
+	beri_pic_enable_intr(dev, isrc);
-static int
-beripic_filter(void *arg)
+static void
+beri_pic_pre_ithread(device_t dev, struct intr_irqsrc *isrc)
-	struct beripic_intr_arg *bpic;
-	bpic = arg;
-
-#ifdef __mips__
-	mips_intrcnt_inc(bpic->counter);
-#endif
-
-	/* XXX: Add a check that our source is high */
-
-	if (bpic->filter == NULL)
-		return (FILTER_SCHEDULE_THREAD);
-
-	return (bpic->filter(bpic->arg));
+	beri_pic_disable_intr(dev, isrc);
-static void
-beripic_intr(void *arg)
+#ifdef SMP
+void
+beripic_setup_ipi(device_t dev, u_int tid, u_int ipi_irq)
-	struct beripic_intr_arg *bpic;
+	struct beripic_softc *sc;
+	uint64_t reg;
-	bpic = arg;
+	sc = device_get_softc(dev);
-	KASSERT(bpic->intr != NULL,
-	    ("%s installed, but no child intr", __func__));
-
-	bpic->intr(bpic->arg);
+	reg = (BP_CFG_ENABLE);
+	reg |= (ipi_irq << BP_CFG_IRQ_S);
+	reg |= (tid << BP_CFG_TID_S);
+	bus_write_8(sc->res[BP_CFG], ((BP_FIRST_SOFT + tid) * 8), reg);
-#ifdef SMP
-static void
-beripic_setup_ipi(device_t ic, u_int tid, u_int ipi_irq)
+void
+beripic_send_ipi(device_t dev, u_int tid)
-	
-	bp_config_source(ic, BP_FIRST_SOFT + tid, 1, tid, ipi_irq);
-}
-
-static void
-beripic_send_ipi(device_t ic, u_int tid)
-{
-	sc = device_get_softc(ic);
+	sc = device_get_softc(dev);
-	KASSERT(tid < sc->bp_nsoft, ("tid (%d) too large\n", tid));
+	bit = (BP_FIRST_SOFT + tid);
+	KASSERT(bit < BP_NUM_IRQS, ("tid (%d) to large\n", tid));
-	bit = 1ULL << (tid % 64);
-	bus_space_write_8(sc->bp_set_bst, sc->bp_set_bsh, 
-	    (BP_FIRST_SOFT / 8) + (tid / 64), bit);
+	bus_write_8(sc->res[BP_IP_SET], 0x0, (1 << bit));
-static void
-beripic_clear_ipi(device_t ic, u_int tid)
+void
+beripic_clear_ipi(device_t dev, u_int tid)
-	sc = device_get_softc(ic);
+	sc = device_get_softc(dev);
-	KASSERT(tid < sc->bp_nsoft, ("tid (%d) to large\n", tid));
+	bit = (BP_FIRST_SOFT + tid);
+	KASSERT(bit < BP_NUM_IRQS, ("tid (%d) to large\n", tid));
-	bit = 1ULL << (tid % 64);
-	bus_space_write_8(sc->bp_clear_bst, sc->bp_clear_bsh, 
-	    (BP_FIRST_SOFT / 8) + (tid / 64), bit);
+	bus_write_8(sc->res[BP_IP_CLEAR], 0x0, (1 << bit));
-devclass_t	beripic_devclass;
-
-	DEVMETHOD(device_probe,		beripic_fdt_probe),
-	DEVMETHOD(device_attach,	beripic_fdt_attach),
+	DEVMETHOD(device_probe,		beripic_probe),
+	DEVMETHOD(device_attach,	beripic_attach),
-	DEVMETHOD(fdt_ic_activate_intr,	beripic_activate_intr),
-	DEVMETHOD(fdt_ic_alloc_intr,	beripic_alloc_intr),
-	DEVMETHOD(fdt_ic_config_intr,	beripic_config_intr),
-	DEVMETHOD(fdt_ic_deactivate_intr, beripic_deactivate_intr),
-	DEVMETHOD(fdt_ic_release_intr,	beripic_release_intr),
-	DEVMETHOD(fdt_ic_setup_intr,	beripic_setup_intr),
-	DEVMETHOD(fdt_ic_teardown_intr,	beripic_teardown_intr),
+	/* Interrupt controller interface */
+	DEVMETHOD(pic_enable_intr,	beri_pic_enable_intr),
+	DEVMETHOD(pic_disable_intr,	beri_pic_disable_intr),
+	DEVMETHOD(pic_map_intr,		beri_pic_map_intr),
+	DEVMETHOD(pic_post_ithread,	beri_pic_post_ithread),
+	DEVMETHOD(pic_pre_ithread,	beri_pic_pre_ithread),
-#ifdef SMP
-	DEVMETHOD(fdt_ic_setup_ipi,	beripic_setup_ipi),
-	DEVMETHOD(fdt_ic_clear_ipi,	beripic_clear_ipi),
-	DEVMETHOD(fdt_ic_send_ipi,	beripic_send_ipi),
-#endif
-
-	{ 0, 0 },
+	DEVMETHOD_END
-static driver_t beripic_fdt_driver = {
+devclass_t beripic_devclass;
+
+static driver_t beripic_driver = {
-DRIVER_MODULE(beripic, simplebus, beripic_fdt_driver, beripic_devclass, 0, 0);
+EARLY_DRIVER_MODULE(beripic, ofwbus, beripic_driver, beripic_devclass, 0, 0,
+    BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE);
Index: sys/mips/include/fls64.h
+ * $FreeBSD$
Index: sys/mips/rmi/dev/xlr/atx_cpld.h
+ * $FreeBSD$
Index: sys/mips/rmi/dev/xlr/xgmac_mdio.h
+ * $FreeBSD$
Index: sys/mips/rmi/msgring.c
+ * $FreeBSD$
Index: sys/mips/rmi/msgring.cfg
+ * $FreeBSD$
Index: sys/netinet/igmp_var.h
-/*-a
Index: sys/sys/copyright.h
- * Copyright (C) 1992-2018 The FreeBSD Project. All rights reserved.
+ * Copyright (C) 1992-2017 The FreeBSD Project. All rights reserved.
-	"Copyright (c) 1992-2018 The FreeBSD Project.\n"
+	"Copyright (c) 1992-2017 The FreeBSD Project.\n"
-/* a port of FreeBSD to the NEC PC98, Japan */
-#if defined(PC98)
-#define COPYRIGHT_PC98 \
-	"Copyright (c) 1994-2003 FreeBSD(98) porting team.\nCopyright (c) 1992  A.Kojima F.Ukai M.Ishii (KMC).\n"
-#else
-#define COPYRIGHT_PC98
-#endif
-
-char copyright[] = COPYRIGHT_Vendor COPYRIGHT_FreeBSD COPYRIGHT_PC98 \
-    COPYRIGHT_UCB;
+char copyright[] = COPYRIGHT_Vendor COPYRIGHT_FreeBSD COPYRIGHT_UCB;
Index: sys/sys/random.h
- * Copyright (c) 2000-2015 Mark R. V. Murray
+ * Copyright (c) 2000-2015, 2017 Mark R. V. Murray
- * Note: if you add or remove members of random_entropy_source, remember to also update the
- * KASSERT regarding what valid members are in random_harvest_internal(), and remember the
- * strings in the static array random_source_descr[] in random_harvestq.c.
+ * Note: if you add or remove members of random_entropy_source, remember to
+ * also update the strings in the static array random_source_descr[] in
+ * random_harvestq.c.
-	RANDOM_PURE_OCTEON,
+	RANDOM_PURE_START,
+	RANDOM_PURE_OCTEON = RANDOM_PURE_START,
+	RANDOM_PURE_BROADCOM,
+#define RANDOM_HARVEST_PURE_MASK (((1 << ENTROPYSOURCE) - 1) & (-1UL << RANDOM_PURE_START))
+#define RANDOM_LEGACY_BOOT_ENTROPY_MODULE	"/boot/entropy"
+#define RANDOM_CACHED_BOOT_ENTROPY_MODULE	"boot_entropy_cache"
+#define	RANDOM_CACHED_SKIP_START	256
+
+void random_harvest_register_source(enum random_entropy_source);
+void random_harvest_deregister_source(enum random_entropy_source);
+#define random_harvest_register_source(a) do {} while (0)
+#define random_harvest_deregister_source(a) do {} while (0)
Index: usr.bin/mt/mt.c
- * Copyright (c) 1980, 1993


BELOW HERE I INCLUDED THE ORIGINAL MERGINFO:
Index: .
===================================================================
--- .   (revision 330896)
+++ .   (revision 330897)

Property changes on: .
___________________________________________________________________
Modified: svn:mergeinfo
## -0,0 +0,1 ##
   Merged /head:r325966,326022-326025,326027,326192-326193,326219,326255-326261

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Thu Mar 29 01:53:53 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45B70F637E1
 for ;
 Thu, 29 Mar 2018 01:53:53 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: from mail-yb0-x22b.google.com (mail-yb0-x22b.google.com
 [IPv6:2607:f8b0:4002:c09::22b])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8D64270329
 for ; Thu, 29 Mar 2018 01:53:52 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: by mail-yb0-x22b.google.com with SMTP id x72-v6so1484893ybe.8
 for ; Wed, 28 Mar 2018 18:53:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=eitanadler.com; s=0xdeadbeef;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=b6SJyyfjDrT6hVQ/L1rI9IYLFwd+/eyg1fstZ2h/kKc=;
 b=d1ltj6DzqHJjchMaKbSl2nVwChadwTKkvaWUtbvFWu+DwgA5dZSkKOIhP5yAQmaTcl
 2mglTbntTkfJiZF6HNLO/k77yH7/hvD5F0aCSnWHgLdNXq1LPIhlWb3Wa6Qm6vMSRNXX
 JVnVixrQ0/SomRGOw11SZbFCr4Q4BYp16GZSQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc;
 bh=b6SJyyfjDrT6hVQ/L1rI9IYLFwd+/eyg1fstZ2h/kKc=;
 b=eQJpGhA6ew7aGOnDUMZFcbbAfkzFvZHtZI+BYJDSBPKGAKjCvXzROh2XK7QZOch/4y
 zUyzmsk7kn/6huZ8lEjE1FN0i96nk7paHrqd9wIu1RJ/IGAw5nXYxtJvWF7kz3/+geIu
 l/DS+mKuFDb1r8WYgyKGD6jPLgD5LA0iuQF5gZ5FGZqchN6pDBT8XXnW5Op+DfErjg3X
 6S76kNK5Hegzp2fBWP2IgS3+4+BqJ62YPhmdSKffz2yrqbWZSLgek+HW8CKDJQUeu8lm
 h9Efs6n0BzzXsTBxAp+7yJowYRVKIa6IidI0nqIVvr1SEvrz18b0hYWMrbH+o92AVa23
 YT5w==
X-Gm-Message-State: AElRT7H7495m6peafg0eDeyLPvt1ae13bjBbzY5SsZ+QqnUaUsuYMNBM
 hGsVfWcqDxSL1pP34Uek1DEfYh0fuQ6pM6rj9xTsqQ==
X-Google-Smtp-Source: AIpwx48wCDW3YMDfihpXMfKdmCL2ttuMfhHY0o4ndy15As6NFcoINAroqZJRwUOXNvEYQmvLz5GAlbWFnH6r6dBoEII=
X-Received: by 2002:a25:d213:: with SMTP id
 j19-v6mr3760738ybg.338.1522288431635; 
 Wed, 28 Mar 2018 18:53:51 -0700 (PDT)
MIME-Version: 1.0
Sender: lists@eitanadler.com
Received: by 2002:a5b:990:0:0:0:0:0 with HTTP;
 Wed, 28 Mar 2018 18:53:21 -0700 (PDT)
In-Reply-To: <201803290135.w2T1Z7hU060080@pdx.rh.CN85.dnsmgr.net>
References: 
 <201803290135.w2T1Z7hU060080@pdx.rh.CN85.dnsmgr.net>
From: Eitan Adler 
Date: Wed, 28 Mar 2018 18:53:21 -0700
X-Google-Sender-Auth: FNFLSY7U9_SkMjY_v9J4Jy7Qq6U
Message-ID: 
Subject: Re: Mismerge at r330897 in stable/11, Audit report
To: rgrimes@freebsd.org
Cc: src-committers , svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org, 
 FreeBSD Release Engineering Team 
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 01:53:53 -0000

On 28 March 2018 at 18:35, Rodney W. Grimes
 wrote:
>> >> Hi!
>> >>
>> >> This part of the MFC is wrong:
>> >>
>> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
>
> Can we try to identify exactly what rXXXXXX that is a merge of?
>
>> >> Could you please MFC back the other random related changes too? Some
>> >> of them made by cem@.
>> >>
>> >> On 3/14/18, Eitan Adler  wrote:
>> >>> Author: eadler
>> >>> Date: Wed Mar 14 03:19:51 2018
>> >>> New Revision: 330897
>> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
>> >>>
>> >>> Log:
>> >>>   Partial merge of the SPDX changes
>> >>>
>> >>>   These changes are incomplete but are making it difficult
>> >>>   to determine what other changes can/should be merged.
>> >>>
>> >>>   No objections from:        pfg
>> >>>
>> > Am I missing something? If this MFC was supposed to be of the SPDX
>> > license tagging, why does it have any functional changes?
>> >
>> > Especially changes to random(4)?
>>
>> This was my failure. I only spot checked & compile-checked the diff
>> since I expected all changes to be comments/SPDX.
>>
>> However, I must have gotten carried away and included a few too many
>> revisions. Unfortunately some people have already merged fixes to my
>> failure and thus this can't be reverted as is without also reverting
>> those fixes.
>>
>> That said, I should do that since this commit message is utterly wrong.
>
> We do not have to revert r330897, with what follows I think
> we can easily find the revisions to revert from stable/11.
> ...

While we don't have to revert it I'd rather do so than have bogus history.

>From a look it seems the following was also merged:
r316370, r317095, r324394, and a few others.

Is there a reason you don't want me to revert the changes?

-- 
Eitan Adler
Source, Ports, Doc committer
Bugmeister, Ports Security teams

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:04:45 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6383DF64C53;
 Thu, 29 Mar 2018 02:04:45 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id B468E70CCA;
 Thu, 29 Mar 2018 02:04:44 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2T24fq2060206;
 Wed, 28 Mar 2018 19:04:41 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2T24foA060205;
 Wed, 28 Mar 2018 19:04:41 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803290204.w2T24foA060205@pdx.rh.CN85.dnsmgr.net>
Subject: Re: Mismerge at r330897 in stable/11, Audit report
In-Reply-To: 
To: Eitan Adler 
Date: Wed, 28 Mar 2018 19:04:41 -0700 (PDT)
CC: rgrimes@freebsd.org, src-committers ,
 svn-src-all@freebsd.org, svn-src-stable@freebsd.org,
 svn-src-stable-11@freebsd.org,
 FreeBSD Release Engineering Team 
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:04:45 -0000

> On 28 March 2018 at 18:35, Rodney W. Grimes
>  wrote:
> >> >> Hi!
> >> >>
> >> >> This part of the MFC is wrong:
> >> >>
> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
> >
> > Can we try to identify exactly what rXXXXXX that is a merge of?
> >
> >> >> Could you please MFC back the other random related changes too? Some
> >> >> of them made by cem@.
> >> >>
> >> >> On 3/14/18, Eitan Adler  wrote:
> >> >>> Author: eadler
> >> >>> Date: Wed Mar 14 03:19:51 2018
> >> >>> New Revision: 330897
> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
> >> >>>
> >> >>> Log:
> >> >>>   Partial merge of the SPDX changes
> >> >>>
> >> >>>   These changes are incomplete but are making it difficult
> >> >>>   to determine what other changes can/should be merged.
> >> >>>
> >> >>>   No objections from:        pfg
> >> >>>
> >> > Am I missing something? If this MFC was supposed to be of the SPDX
> >> > license tagging, why does it have any functional changes?
> >> >
> >> > Especially changes to random(4)?
> >>
> >> This was my failure. I only spot checked & compile-checked the diff
> >> since I expected all changes to be comments/SPDX.
> >>
> >> However, I must have gotten carried away and included a few too many
> >> revisions. Unfortunately some people have already merged fixes to my
> >> failure and thus this can't be reverted as is without also reverting
> >> those fixes.
> >>
> >> That said, I should do that since this commit message is utterly wrong.
> >
> > We do not have to revert r330897, with what follows I think
> > we can easily find the revisions to revert from stable/11.
> > ...
> 
> While we don't have to revert it I'd rather do so than have bogus history.

Reverting wont remove that history, thats a one way deal,
and I think if we revert the bogus merges with the wrong
history thats as good as its gona get.

> 
> >From a look it seems the following was also merged:
> r316370, r317095, r324394, and a few others.
> 
> Is there a reason you don't want me to revert the changes?

Repository churn is my main concern.

It touches 6000+ files some of which have probably
been touched since.   A very carefull pre commit
audit would need to be done.

Then another commit to 6000+ files to put it back,
also needing a pre-commit audit. (Pretty easy now
that I have a filter.)

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:22:45 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 509E2F66BBA
 for ;
 Thu, 29 Mar 2018 02:22:45 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: from mail-yb0-x230.google.com (mail-yb0-x230.google.com
 [IPv6:2607:f8b0:4002:c09::230])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id DA73571C11
 for ; Thu, 29 Mar 2018 02:22:44 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: by mail-yb0-x230.google.com with SMTP id k199-v6so1500966ybk.12
 for ; Wed, 28 Mar 2018 19:22:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=eitanadler.com; s=0xdeadbeef;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=oKUDrtD72OR8uegWZzGreVIRtZbPYX2drn/2k3f8dLs=;
 b=NoUvhepobkTQJYXjVOznXI/J2dCQgDrgQeeqvcK2JF2eEDu+1v1evCnZAmYCiz0lDI
 UFsp90sa+Mhe4CKYct9QdYFdokrCC8eIMVxvB5JjoEpp+sopzI6owtlBYrQhvfcH4HuY
 oyJ08S2Rbxt618Rd7PtzqNm/dDXj763uxRigM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc;
 bh=oKUDrtD72OR8uegWZzGreVIRtZbPYX2drn/2k3f8dLs=;
 b=a22foxaqzCNSlV+ZUSqucDx1PQFPugj6uocbwwyKJl99yJ5W8aQ5P2rTvGeNz+fOaF
 SxAFqP/p2xcKAG34Xkr2Em2xuuefKyqjPeCnda1tiW/HqDZG2PDikyDLMZz/clXVdb5b
 Gnh4wPjIyP0nso8OctyX4yjo58+TO9ZWnp61/bo6HSCOhG7U2r8/gCDuaFx3TwSzd7tT
 CFWC4aMfoIKtehzOAxgsE2hM2DqIubL/K/K2iTsAqY5TeExZ/N+48sbMKf+H6NC13XW7
 7OKUQhBUdJnnnQS7Ndad0lpQerL/5uC7BwX5eEL2Rp4cvsjIz8dmVptdHMnI7A2VzPN0
 GMSA==
X-Gm-Message-State: AElRT7F3Ibc50GCh1HbGpXt30tpjFxMssbklVYPH25Gukp2qNXpVWB2x
 IWgsjb1OBAylp7hnGKrHICDe6B6ZQRLJR/va05X0Wg==
X-Google-Smtp-Source: AIpwx4999XsF1dTm7Xl2CiwY6dQxk3uq0Kh0o0L4qqQdfzJ1dW3wHKzE6/Dr3CNwB/TFph66J1ruN8aDB7IW/gkdQFk=
X-Received: by 2002:a25:268f:: with SMTP id
 m137-v6mr3664252ybm.460.1522290164330; 
 Wed, 28 Mar 2018 19:22:44 -0700 (PDT)
MIME-Version: 1.0
Sender: lists@eitanadler.com
Received: by 2002:a5b:990:0:0:0:0:0 with HTTP;
 Wed, 28 Mar 2018 19:22:13 -0700 (PDT)
In-Reply-To: 
References: 
 <201803290204.w2T24foA060205@pdx.rh.CN85.dnsmgr.net>
 
From: Eitan Adler 
Date: Wed, 28 Mar 2018 19:22:13 -0700
X-Google-Sender-Auth: KsrC0ULo2h4bAXkQax9TEYFO098
Message-ID: 
Subject: Re: Mismerge at r330897 in stable/11, Audit report
To: rgrimes@freebsd.org
Cc: src-committers , svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org, 
 FreeBSD Release Engineering Team 
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:22:45 -0000

On 28 March 2018 at 19:17, Eitan Adler  wrote:
> On 28 March 2018 at 19:04, Rodney W. Grimes
>  wrote:
>>> On 28 March 2018 at 18:35, Rodney W. Grimes
>>>  wrote:
>>> >> >> Hi!
>>> >> >>
>>> >> >> This part of the MFC is wrong:
>>> >> >>
>>> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
>>> >
>>> > Can we try to identify exactly what rXXXXXX that is a merge of?
>>> >
>>> >> >> Could you please MFC back the other random related changes too? Some
>>> >> >> of them made by cem@.
>>> >> >>
>>> >> >> On 3/14/18, Eitan Adler  wrote:
>>> >> >>> Author: eadler
>>> >> >>> Date: Wed Mar 14 03:19:51 2018
>>> >> >>> New Revision: 330897
>>> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
>>> >> >>>
>>> >> >>> Log:
>>> >> >>>   Partial merge of the SPDX changes
>>> >> >>>
>>> >> >>>   These changes are incomplete but are making it difficult
>>> >> >>>   to determine what other changes can/should be merged.
>>> >> >>>
>>> >> >>>   No objections from:        pfg
>>> >> >>>
>>> >> > Am I missing something? If this MFC was supposed to be of the SPDX
>>> >> > license tagging, why does it have any functional changes?
>>> >> >
>>> >> > Especially changes to random(4)?
>>> >>
>>> >> This was my failure. I only spot checked & compile-checked the diff
>>> >> since I expected all changes to be comments/SPDX.
>>> >>
>>> >> However, I must have gotten carried away and included a few too many
>>> >> revisions. Unfortunately some people have already merged fixes to my
>>> >> failure and thus this can't be reverted as is without also reverting
>>> >> those fixes.
>>> >>
>>> >> That said, I should do that since this commit message is utterly wrong.
>>> >
>>> > We do not have to revert r330897, with what follows I think
>>> > we can easily find the revisions to revert from stable/11.
>>> > ...
>>>
>>> While we don't have to revert it I'd rather do so than have bogus history.
>>
>> Reverting wont remove that history, thats a one way deal,
>> and I think if we revert the bogus merges with the wrong
>> history thats as good as its gona get.
>>
>>>
>>> >From a look it seems the following was also merged:
>>> r316370, r317095, r324394, and a few others.
>>>
>>> Is there a reason you don't want me to revert the changes?
>>
>> Repository churn is my main concern.
>>
>> It touches 6000+ files some of which have probably
>> been touched since.   A very carefull pre commit
>> audit would need to be done.
>>
>> Then another commit to 6000+ files to put it back,
>> also needing a pre-commit audit. (Pretty easy now
>> that I have a filter.)
>
> I'm actually using the same filter you pasted above to verify that my
> changes are only reverting said files. That said, while I'd prefer to
> revert, I'll defer to others if they have a differing opinion.

Someone else mentioned out of band to not revert as well. Since this
seems to be the consensus I'll go with that. Let me merge the missing
commits that op mentioned.


Once again, sorry all :(

-- 
Eitan Adler
Source, Ports, Doc committer
Bugmeister, Ports Security teams

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:13:59 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15EAAF65BF9;
 Thu, 29 Mar 2018 02:13:59 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BFB43713A5;
 Thu, 29 Mar 2018 02:13:58 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BAA8113786;
 Thu, 29 Mar 2018 02:13:58 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T2DwGS057806;
 Thu, 29 Mar 2018 02:13:58 GMT (envelope-from cem@FreeBSD.org)
Received: (from cem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T2DwPl057805;
 Thu, 29 Mar 2018 02:13:58 GMT (envelope-from cem@FreeBSD.org)
Message-Id: <201803290213.w2T2DwPl057805@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org
 using -f
From: Conrad Meyer 
Date: Thu, 29 Mar 2018 02:13:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331720 - head/usr.bin/timeout
X-SVN-Group: head
X-SVN-Commit-Author: cem
X-SVN-Commit-Paths: head/usr.bin/timeout
X-SVN-Commit-Revision: 331720
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:13:59 -0000

Author: cem
Date: Thu Mar 29 02:13:58 2018
New Revision: 331720
URL: https://svnweb.freebsd.org/changeset/base/331720

Log:
  timeout.1: Try to improve clarity
  
  Minor rewordings, markup fixes or enhancements, and some typo fixes.  Add a few
  sentences clarifying the special zero duration.
  
  PR:		227012
  Submitted by:	Mateusz Piotrowski (0mp@) (earlier version)

Modified:
  head/usr.bin/timeout/timeout.1

Modified: head/usr.bin/timeout/timeout.1
==============================================================================
--- head/usr.bin/timeout/timeout.1	Thu Mar 29 01:20:58 2018	(r331719)
+++ head/usr.bin/timeout/timeout.1	Thu Mar 29 02:13:58 2018	(r331720)
@@ -1,3 +1,5 @@
+.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+.\"
 .\" Copyright (c) 2014 Baptiste Daroussin 
 .\" All rights reserved.
 .\"
@@ -24,7 +26,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd February 20, 2017
+.Dd March 28, 2018
 .Dt TIMEOUT 1
 .Os
 .Sh NAME
@@ -36,40 +38,47 @@
 .Op Fl -preserve-status
 .Op Fl -kill-after Ar time | Fl k Ar time
 .Op Fl -foreground
-.Ao Ar duration Ac
-.Ao Ar command Ac
-.Ao Ar args ... Ac
+.Ar duration
+.Ar command
+.Op Ar args ...
 .Sh DESCRIPTION
 .Nm
 starts the
 .Ar command
 with its
-.Ar args.
-If
+.Ar args .
+If the
 .Ar command
 is still running after
 .Ar duration ,
 it is killed.
 By default,
-.Ar SIGTERM.
+.Dv SIGTERM
 is sent.
-.Bl -tag -width "-k time, --kill-after time"
+The special
+.Ar duration ,
+zero, signifies no limit.
+Therefore a signal is never sent if
+.Ar duration
+is 0.
+.Pp
+The options are as follows:
+.Bl -tag -width indent
 .It Fl -preserve-status
-Always exits with the same status as
-.Ar command
-even if it times out.
+Exit with the same status as
+.Ar command ,
+even if it times out and is killed.
 .It Fl -foreground
-Do not propagate timeout to the
-.Ar command
-children.
+Do not propagate timeout to the children of
+.Ar command .
 .It Fl s Ar sig , Fl -signal Ar sig
 Specify the signal to send on timeout.
 By default,
-.Ar SIGTERM .
+.Dv SIGTERM
 is sent.
 .It Fl k Ar time , Fl -kill-after Ar time
 Send a
-.Ar SIGKILL
+.Dv SIGKILL
 signal if
 .Ar command
 is still running after
@@ -80,18 +89,19 @@ after the first signal was sent.
 .Ar duration
 and
 .Ar time
-can be integer or decimal numbers.
-Values without unit symbols are interpreted as seconds.
+are non-negative integer or real (decimal) numbers, with an optional
+unit-specifying suffix.
+Values without an explicit unit are interpreted as seconds.
 .Pp
 Supported unit symbols are:
 .Bl -tag -width indent -compact
-.It s
+.It Cm s
 seconds
-.It m
+.It Cm m
 minutes
-.It h
+.It Cm h
 hours
-.It d
+.It Cm d
 days
 .El
 .Sh EXIT STATUS
@@ -115,17 +125,17 @@ plus 128.
 .Pp
 If
 .Ar command
-is an invalid command, the exit status returned is 126.
+refers to a non-existing program, the exit status returned is 127.
 .Pp
 If
 .Ar command
-is a non existing command, the exit status returned is 127.
+is an otherwise invalid program, the exit status returned is 126.
 .Pp
 If an invalid parameter is passed to
 .Fl s
 or
 .Fl k ,
-the exit status return is 125.
+the exit status returned is 125.
 .Sh SEE ALSO
 .Xr kill 1 ,
 .Xr signal 3

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:26:29 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 48149F674B6;
 Thu, 29 Mar 2018 02:26:29 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from freefall.freebsd.org (freefall.freebsd.org
 [IPv6:2610:1c1:1:6074::16:84])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "freefall.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EA23672230;
 Thu, 29 Mar 2018 02:26:28 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by freefall.freebsd.org (Postfix) with ESMTPS id 8FF9C1AC7D;
 Thu, 29 Mar 2018 02:26:28 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Date: Thu, 29 Mar 2018 02:26:26 +0000
From: Glen Barber 
To: Eitan Adler 
Cc: rgrimes@freebsd.org, src-committers ,
 svn-src-all@freebsd.org, svn-src-stable@freebsd.org,
 svn-src-stable-11@freebsd.org,
 FreeBSD Release Engineering Team 
Subject: Re: Mismerge at r330897 in stable/11, Audit report
Message-ID: <20180329022626.GP81123@FreeBSD.org>
References: 
 <201803290204.w2T24foA060205@pdx.rh.CN85.dnsmgr.net>
 
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature"; boundary="88pBQ1/6ie/nQzMF"
Content-Disposition: inline
In-Reply-To: 
User-Agent: Mutt/1.9.1 (2017-09-22)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:26:29 -0000


--88pBQ1/6ie/nQzMF
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Mar 28, 2018 at 07:17:20PM -0700, Eitan Adler wrote:
> On 28 March 2018 at 19:04, Rodney W. Grimes
>  wrote:
> >> On 28 March 2018 at 18:35, Rodney W. Grimes
> >>  wrote:
> >> >> >> Hi!
> >> >> >>
> >> >> >> This part of the MFC is wrong:
> >> >> >>
> >> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit=
_changes=3D0&r1=3D330897&r2=3D330896&pathrev=3D330897
> >> >
> >> > Can we try to identify exactly what rXXXXXX that is a merge of?
> >> >
> >> >> >> Could you please MFC back the other random related changes too? =
Some
> >> >> >> of them made by cem@.
> >> >> >>
> >> >> >> On 3/14/18, Eitan Adler  wrote:
> >> >> >>> Author: eadler
> >> >> >>> Date: Wed Mar 14 03:19:51 2018
> >> >> >>> New Revision: 330897
> >> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
> >> >> >>>
> >> >> >>> Log:
> >> >> >>>   Partial merge of the SPDX changes
> >> >> >>>
> >> >> >>>   These changes are incomplete but are making it difficult
> >> >> >>>   to determine what other changes can/should be merged.
> >> >> >>>
> >> >> >>>   No objections from:        pfg
> >> >> >>>
> >> >> > Am I missing something? If this MFC was supposed to be of the SPDX
> >> >> > license tagging, why does it have any functional changes?
> >> >> >
> >> >> > Especially changes to random(4)?
> >> >>
> >> >> This was my failure. I only spot checked & compile-checked the diff
> >> >> since I expected all changes to be comments/SPDX.
> >> >>
> >> >> However, I must have gotten carried away and included a few too many
> >> >> revisions. Unfortunately some people have already merged fixes to my
> >> >> failure and thus this can't be reverted as is without also reverting
> >> >> those fixes.
> >> >>
> >> >> That said, I should do that since this commit message is utterly wr=
ong.
> >> >
> >> > We do not have to revert r330897, with what follows I think
> >> > we can easily find the revisions to revert from stable/11.
> >> > ...
> >>
> >> While we don't have to revert it I'd rather do so than have bogus hist=
ory.
> >
> > Reverting wont remove that history, thats a one way deal,
> > and I think if we revert the bogus merges with the wrong
> > history thats as good as its gona get.
> >
> >>
> >> >From a look it seems the following was also merged:
> >> r316370, r317095, r324394, and a few others.
> >>
> >> Is there a reason you don't want me to revert the changes?
> >
> > Repository churn is my main concern.
> >
> > It touches 6000+ files some of which have probably
> > been touched since.   A very carefull pre commit
> > audit would need to be done.
> >
> > Then another commit to 6000+ files to put it back,
> > also needing a pre-commit audit. (Pretty easy now
> > that I have a filter.)
>=20
> I'm actually using the same filter you pasted above to verify that my
> changes are only reverting said files. That said, while I'd prefer to
> revert, I'll defer to others if they have a differing opinion.
>=20
>=20
> Note that I won't have access my dev box after tomorrow for about a week.
>=20

IMHO, if you are going to be away for over a week while we're headed
directly into the 11.2 release cycle, revert the change.  What you
committed is not what was intended, clearly, and the commit message does
not reflect what had happened (as you noted).

Any disagreements on this decision should be directed to me specifically
in this case.

Glen


--88pBQ1/6ie/nQzMF
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEjRJAPC5sqwhs9k2jAxRYpUeP4pMFAlq8Ts0ACgkQAxRYpUeP
4pPn4Q//QU+NtTbKPcMfx28GPmDSZseSrhFCYR7uA61BVZJuBSjKCDPXF5quk5UD
66aaTqEIjBF1fjeMSawP5cI6K80KOTByF5r5qborMsVw8UXSr35aCW9KFjU+GKcj
nonKhg4jqr+/YQQ3KlGyascTJLOPaOhIoBx8ArbsRgwjZ7pwsu5n9FqyHSePfftH
JT51nbSWjM/1jItIR5B0ohDVLzzXMNOmTb4pcf0y8wZmvXPbDIh/pQKVJJkRFa+o
P6mve9y6BzlQCns+0k9onW2s/HRZIrTUSW3L83WMa25zGb2ehm6w3WnBE2LPS76M
/ae66ieoNLpHsFmUMk5O7W826NYmeyPWKu5fG7Vx3jltSsJZppojD4MDzFs/t0pk
JpsLTITdGCdFRR614D5wPL9OOM9PkCmgH6QE1Z5RL5HtXNbg3axjpDFqzAMKc0wP
S3JecHQlddCXYXUinB29fHlxLMctaus38cKxnHav+4Qn2OYCtEoLRgk1gxm0rJMe
XMc5gJ7RREJddW5K0ujs2gsLhlXS4CiniVCDsqVC00AK0OAUwoEKILpJ1RE+R8IA
u3eN4XaHwEWK32doL7cM33ZyENC3Wu2rga+d2UPWPSXbej9J+TJC8O4/QOsFsR7c
fYPvl8JBJe2+CEgjblZmBfoE6Kdw8eWHrlF8S5+BIvAJOPkRmDQ=
=wH14
-----END PGP SIGNATURE-----

--88pBQ1/6ie/nQzMF--

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:17:53 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D077DF6608B
 for ;
 Thu, 29 Mar 2018 02:17:52 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: from mail-yb0-x234.google.com (mail-yb0-x234.google.com
 [IPv6:2607:f8b0:4002:c09::234])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E835871550
 for ; Thu, 29 Mar 2018 02:17:51 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: by mail-yb0-x234.google.com with SMTP id z5-v6so1501608ybo.10
 for ; Wed, 28 Mar 2018 19:17:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=eitanadler.com; s=0xdeadbeef;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=fGwpcEHZEBlQLJKAEuozAlXmNw5/bv9yNtd0n7OHjOk=;
 b=mcbaPS2atX/yWro5WXbIREPiJ4nlPAd3ZitVL02nTD/4O/184rDXFaFzmSncRKHy5o
 zhX0ju3LBlFhAuSvuK1h5si41Lj1boGVF11jrA5B5oT3wA7FfVqDOBzavCwhGRvERDZ5
 ewrWkGfFUHNdjNEb9g1WffslL7qqthwso+yqc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc;
 bh=fGwpcEHZEBlQLJKAEuozAlXmNw5/bv9yNtd0n7OHjOk=;
 b=jhMDMI/sAQRYAmw1psd/MjPu3inVLqzC0/xNZdSCChWp2ecBJE45LW5tc1zHGKCLzM
 TlhfA8stzJRZXsz70NI71IXQ4qnTfnfjMQfseX0zm7wDveNQkbHwYIaN4KkiVGq/c7PB
 jGXH7T9XHGDe+2wv9D6G6NhYyArIYBrum1ugjin2dfH54NAZ0+W1DB14vIDop+4KFFOr
 QEuWtnyGgL0vvgB7lcmnFfBuOBBn9ezHjCfUbCLvS0HTBfWemWCAT3tVZ/6ASVuDlZVq
 f+XIDSckhNIVNRLcez5jrWRMMVAF8H8psdokY0wgjWlQEsTuzgoDTeFvZtVN8qDVKsLp
 tuTg==
X-Gm-Message-State: ALQs6tCnSzsilAF0pAUBbQIy6MW70/xsmRq4MMXY09MfU4VNkiLUB5NL
 216A7KbVi1bw+VxoP9yCZ/8xv4LjlQsKqLaIcigYyg==
X-Google-Smtp-Source: AIpwx48/GBgVB5Tb0/POhtOCrGIJE9oh4kOf1rQ1pDk7PPJj5dQq8pR3F/cM2CKI7EbzQA5M+RsH8e2w9RGL8jvihBc=
X-Received: by 2002:a25:2ccf:: with SMTP id
 s198-v6mr3772603ybs.194.1522289871222; 
 Wed, 28 Mar 2018 19:17:51 -0700 (PDT)
MIME-Version: 1.0
Sender: lists@eitanadler.com
Received: by 2002:a5b:990:0:0:0:0:0 with HTTP;
 Wed, 28 Mar 2018 19:17:20 -0700 (PDT)
In-Reply-To: <201803290204.w2T24foA060205@pdx.rh.CN85.dnsmgr.net>
References: 
 <201803290204.w2T24foA060205@pdx.rh.CN85.dnsmgr.net>
From: Eitan Adler 
Date: Wed, 28 Mar 2018 19:17:20 -0700
X-Google-Sender-Auth: P5aEavTVdmvO0MmGJ4MDqwwuM0I
Message-ID: 
Subject: Re: Mismerge at r330897 in stable/11, Audit report
To: rgrimes@freebsd.org
Cc: src-committers , svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org, 
 FreeBSD Release Engineering Team 
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:17:53 -0000

On 28 March 2018 at 19:04, Rodney W. Grimes
 wrote:
>> On 28 March 2018 at 18:35, Rodney W. Grimes
>>  wrote:
>> >> >> Hi!
>> >> >>
>> >> >> This part of the MFC is wrong:
>> >> >>
>> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
>> >
>> > Can we try to identify exactly what rXXXXXX that is a merge of?
>> >
>> >> >> Could you please MFC back the other random related changes too? Some
>> >> >> of them made by cem@.
>> >> >>
>> >> >> On 3/14/18, Eitan Adler  wrote:
>> >> >>> Author: eadler
>> >> >>> Date: Wed Mar 14 03:19:51 2018
>> >> >>> New Revision: 330897
>> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
>> >> >>>
>> >> >>> Log:
>> >> >>>   Partial merge of the SPDX changes
>> >> >>>
>> >> >>>   These changes are incomplete but are making it difficult
>> >> >>>   to determine what other changes can/should be merged.
>> >> >>>
>> >> >>>   No objections from:        pfg
>> >> >>>
>> >> > Am I missing something? If this MFC was supposed to be of the SPDX
>> >> > license tagging, why does it have any functional changes?
>> >> >
>> >> > Especially changes to random(4)?
>> >>
>> >> This was my failure. I only spot checked & compile-checked the diff
>> >> since I expected all changes to be comments/SPDX.
>> >>
>> >> However, I must have gotten carried away and included a few too many
>> >> revisions. Unfortunately some people have already merged fixes to my
>> >> failure and thus this can't be reverted as is without also reverting
>> >> those fixes.
>> >>
>> >> That said, I should do that since this commit message is utterly wrong.
>> >
>> > We do not have to revert r330897, with what follows I think
>> > we can easily find the revisions to revert from stable/11.
>> > ...
>>
>> While we don't have to revert it I'd rather do so than have bogus history.
>
> Reverting wont remove that history, thats a one way deal,
> and I think if we revert the bogus merges with the wrong
> history thats as good as its gona get.
>
>>
>> >From a look it seems the following was also merged:
>> r316370, r317095, r324394, and a few others.
>>
>> Is there a reason you don't want me to revert the changes?
>
> Repository churn is my main concern.
>
> It touches 6000+ files some of which have probably
> been touched since.   A very carefull pre commit
> audit would need to be done.
>
> Then another commit to 6000+ files to put it back,
> also needing a pre-commit audit. (Pretty easy now
> that I have a filter.)

I'm actually using the same filter you pasted above to verify that my
changes are only reverting said files. That said, while I'd prefer to
revert, I'll defer to others if they have a differing opinion.


Note that I won't have access my dev box after tomorrow for about a week.


-- 
Eitan Adler
Source, Ports, Doc committer
Bugmeister, Ports Security teams

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:23:54 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4923F66F41;
 Thu, 29 Mar 2018 02:23:54 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 1ECA271E5D;
 Thu, 29 Mar 2018 02:23:53 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2T2NqFx060321;
 Wed, 28 Mar 2018 19:23:52 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2T2Nqhk060320;
 Wed, 28 Mar 2018 19:23:52 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803290223.w2T2Nqhk060320@pdx.rh.CN85.dnsmgr.net>
Subject: Re: Mismerge at r330897 in stable/11, Audit report
In-Reply-To: 
To: Eitan Adler 
Date: Wed, 28 Mar 2018 19:23:52 -0700 (PDT)
CC: rgrimes@freebsd.org, src-committers ,
 svn-src-all@freebsd.org, svn-src-stable@freebsd.org,
 svn-src-stable-11@freebsd.org,
 FreeBSD Release Engineering Team 
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:23:55 -0000

> On 28 March 2018 at 19:04, Rodney W. Grimes
>  wrote:
> >> On 28 March 2018 at 18:35, Rodney W. Grimes
> >>  wrote:
> >> >> >> Hi!
> >> >> >>
> >> >> >> This part of the MFC is wrong:
> >> >> >>
> >> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
> >> >
> >> > Can we try to identify exactly what rXXXXXX that is a merge of?
> >> >
> >> >> >> Could you please MFC back the other random related changes too? Some
> >> >> >> of them made by cem@.
> >> >> >>
> >> >> >> On 3/14/18, Eitan Adler  wrote:
> >> >> >>> Author: eadler
> >> >> >>> Date: Wed Mar 14 03:19:51 2018
> >> >> >>> New Revision: 330897
> >> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
> >> >> >>>
> >> >> >>> Log:
> >> >> >>>   Partial merge of the SPDX changes
> >> >> >>>
> >> >> >>>   These changes are incomplete but are making it difficult
> >> >> >>>   to determine what other changes can/should be merged.
> >> >> >>>
> >> >> >>>   No objections from:        pfg
> >> >> >>>
> >> >> > Am I missing something? If this MFC was supposed to be of the SPDX
> >> >> > license tagging, why does it have any functional changes?
> >> >> >
> >> >> > Especially changes to random(4)?
> >> >>
> >> >> This was my failure. I only spot checked & compile-checked the diff
> >> >> since I expected all changes to be comments/SPDX.
> >> >>
> >> >> However, I must have gotten carried away and included a few too many
> >> >> revisions. Unfortunately some people have already merged fixes to my
> >> >> failure and thus this can't be reverted as is without also reverting
> >> >> those fixes.
> >> >>
> >> >> That said, I should do that since this commit message is utterly wrong.
> >> >
> >> > We do not have to revert r330897, with what follows I think
> >> > we can easily find the revisions to revert from stable/11.
> >> > ...
> >>
> >> While we don't have to revert it I'd rather do so than have bogus history.
> >
> > Reverting wont remove that history, thats a one way deal,
> > and I think if we revert the bogus merges with the wrong
> > history thats as good as its gona get.
> >
> >>
> >> >From a look it seems the following was also merged:
> >> r316370, r317095, r324394, and a few others.
> >>
> >> Is there a reason you don't want me to revert the changes?
> >
> > Repository churn is my main concern.
> >
> > It touches 6000+ files some of which have probably
> > been touched since.   A very carefull pre commit
> > audit would need to be done.
> >
> > Then another commit to 6000+ files to put it back,
> > also needing a pre-commit audit. (Pretty easy now
> > that I have a filter.)
> 
> I'm actually using the same filter you pasted above to verify that my
> changes are only reverting said files. That said, while I'd prefer to
> revert, I'll defer to others if they have a differing opinion.
> 
> 
> Note that I won't have access my dev box after tomorrow for about a week.

I would rather approach this with great care, please do not just revert,
as to me that looks like a huge churn, and it well not remove the incorrect
history.

Lets focus on clearly identifying the list of rXXXXXX by
expanding your list of r316370, r317095, r324394 until we
have them.  Then we need to verify we are not getting anything
that has already been cleaned up by someone else. (Also a concern
with just trying to revert this patch).

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:25:35 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 97B28F6733B;
 Thu, 29 Mar 2018 02:25:35 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 41003720AA;
 Thu, 29 Mar 2018 02:25:35 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3BCDD1396F;
 Thu, 29 Mar 2018 02:25:35 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T2PZp3062650;
 Thu, 29 Mar 2018 02:25:35 GMT (envelope-from mav@FreeBSD.org)
Received: (from mav@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T2PZjp062649;
 Thu, 29 Mar 2018 02:25:35 GMT (envelope-from mav@FreeBSD.org)
Message-Id: <201803290225.w2T2PZjp062649@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org
 using -f
From: Alexander Motin 
Date: Thu, 29 Mar 2018 02:25:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331721 -
 stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Group: stable-11
X-SVN-Commit-Author: mav
X-SVN-Commit-Paths: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Commit-Revision: 331721
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:25:35 -0000

Author: mav
Date: Thu Mar 29 02:25:34 2018
New Revision: 331721
URL: https://svnweb.freebsd.org/changeset/base/331721

Log:
  MFC r329738: MFV r329736: 8969 Cannot boot from RAIDZ with parity > 1
  
  illumos/illumos-gate@0fb055e81fd0cda5221da8ddd98b2f8d1fc6bdbe
  
  At present it is possible to boot from a root pool that is on RAIDZ but not
  one that is on RAIDZ2 or RAIDZ3.  This is because, at the time the pool
  version is checked to ensure support for dual/triple parity, the uberblock
  has not yet been loaded into the SPA and therefore the code determines that
  the pool version is too old and returns ENOTSUP.
  
  Reviewed by: Igor Kozhukhov 
  Reviewed by: Andriy Gapon 
  Reviewed by: Pavel Zakharov 
  Reviewed by: Andy Stormont 
  Reviewed by: Toomas Soome 
  Approved by: Gordon Ross 
  Author: Andy Fiddaman 
  
  FreeBSD already had this fixed, so this is just a diff reduction.

Modified:
  stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Thu Mar 29 02:13:58 2018	(r331720)
+++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Thu Mar 29 02:25:34 2018	(r331721)
@@ -29,6 +29,7 @@
  * Copyright (c) 2014 Integros [integros.com]
  * Copyright 2017 Joyent, Inc.
  * Copyright (c) 2017 Datto Inc.
+ * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
  */
 
 /*
@@ -4076,6 +4077,9 @@ spa_import_rootpool(char *devpath, char *devid)
 	spa = spa_add(pname, config, NULL);
 	spa->spa_is_root = B_TRUE;
 	spa->spa_import_flags = ZFS_IMPORT_VERBATIM;
+	if (nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION,
+	    &spa->spa_ubsync.ub_version) != 0)
+		spa->spa_ubsync.ub_version = SPA_VERSION_INITIAL;
 
 	/*
 	 * Build up a vdev tree based on the boot device's label config.

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:51:17 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 852D9F6A124;
 Thu, 29 Mar 2018 02:51:16 +0000 (UTC)
 (envelope-from eadler@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 2DBBA737E5;
 Thu, 29 Mar 2018 02:51:16 +0000 (UTC)
 (envelope-from eadler@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 27B4913E37;
 Thu, 29 Mar 2018 02:51:16 +0000 (UTC)
 (envelope-from eadler@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T2pGf6074634;
 Thu, 29 Mar 2018 02:51:16 GMT (envelope-from eadler@FreeBSD.org)
Received: (from eadler@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T2p4h2074518;
 Thu, 29 Mar 2018 02:51:04 GMT (envelope-from eadler@FreeBSD.org)
Message-Id: <201803290251.w2T2p4h2074518@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: eadler set sender to
 eadler@FreeBSD.org using -f
From: Eitan Adler 
Date: Thu, 29 Mar 2018 02:51:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331722 - in stable/11: bin/cat bin/chflags bin/chmod
 bin/cp bin/date bin/dd bin/df bin/domainname bin/echo bin/ed bin/hostname
 bin/kill bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bi...
X-SVN-Group: stable-11
X-SVN-Commit-Author: eadler
X-SVN-Commit-Paths: in stable/11: bin/cat bin/chflags bin/chmod bin/cp
 bin/date bin/dd bin/df bin/domainname bin/echo bin/ed bin/hostname bin/kill
 bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bin/pwd bin/realpath bin/rm...
X-SVN-Commit-Revision: 331722
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:51:18 -0000

Author: eadler
Date: Thu Mar 29 02:50:57 2018
New Revision: 331722
URL: https://svnweb.freebsd.org/changeset/base/331722

Log:
  Revert r330897:
  
  This was intended to be a non-functional change. It wasn't. The commit
  message was thus wrong. In addition it broke arm, and merged crypto
  related code.
  
  Revert with prejudice.
  
  This revert skips files touched in r316370 since that commit was since
  MFCed. This revert also skips files that require $FreeBSD$ property
  changes.
  
  Thank you to those who helped me get out of this mess including but not
  limited to gonzo, kevans, rgrimes.
  
  Requested by: gjb (re)

Modified:
  stable/11/bin/cat/cat.c
  stable/11/bin/chflags/chflags.c
  stable/11/bin/chmod/chmod.c
  stable/11/bin/cp/cp.c
  stable/11/bin/cp/extern.h
  stable/11/bin/cp/utils.c
  stable/11/bin/date/date.c
  stable/11/bin/date/extern.h
  stable/11/bin/date/netdate.c
  stable/11/bin/dd/args.c
  stable/11/bin/dd/conv.c
  stable/11/bin/dd/conv_tab.c
  stable/11/bin/dd/dd.c
  stable/11/bin/dd/dd.h
  stable/11/bin/dd/extern.h
  stable/11/bin/dd/misc.c
  stable/11/bin/dd/position.c
  stable/11/bin/df/df.c
  stable/11/bin/domainname/domainname.c
  stable/11/bin/echo/echo.c
  stable/11/bin/ed/cbc.c
  stable/11/bin/hostname/hostname.c
  stable/11/bin/kill/kill.c
  stable/11/bin/ln/ln.c
  stable/11/bin/ls/cmp.c
  stable/11/bin/ls/extern.h
  stable/11/bin/ls/ls.c
  stable/11/bin/ls/ls.h
  stable/11/bin/ls/print.c
  stable/11/bin/ls/util.c
  stable/11/bin/mkdir/mkdir.c
  stable/11/bin/mv/mv.c
  stable/11/bin/pax/ar_io.c
  stable/11/bin/pax/ar_subs.c
  stable/11/bin/pax/buf_subs.c
  stable/11/bin/pax/cache.c
  stable/11/bin/pax/cache.h
  stable/11/bin/pax/cpio.c
  stable/11/bin/pax/cpio.h
  stable/11/bin/pax/extern.h
  stable/11/bin/pax/file_subs.c
  stable/11/bin/pax/ftree.c
  stable/11/bin/pax/ftree.h
  stable/11/bin/pax/gen_subs.c
  stable/11/bin/pax/options.c
  stable/11/bin/pax/options.h
  stable/11/bin/pax/pat_rep.c
  stable/11/bin/pax/pat_rep.h
  stable/11/bin/pax/pax.c
  stable/11/bin/pax/pax.h
  stable/11/bin/pax/sel_subs.c
  stable/11/bin/pax/sel_subs.h
  stable/11/bin/pax/tables.c
  stable/11/bin/pax/tables.h
  stable/11/bin/pax/tar.c
  stable/11/bin/pax/tar.h
  stable/11/bin/pax/tty_subs.c
  stable/11/bin/ps/extern.h
  stable/11/bin/ps/fmt.c
  stable/11/bin/ps/keyword.c
  stable/11/bin/ps/nlist.c
  stable/11/bin/ps/print.c
  stable/11/bin/ps/ps.c
  stable/11/bin/ps/ps.h
  stable/11/bin/pwd/pwd.c
  stable/11/bin/realpath/realpath.c
  stable/11/bin/rm/rm.c
  stable/11/bin/rmdir/rmdir.c
  stable/11/bin/sh/bltin/bltin.h
  stable/11/bin/sh/bltin/echo.c
  stable/11/bin/sh/mail.h
  stable/11/bin/sh/main.c
  stable/11/bin/sh/main.h
  stable/11/bin/sh/memalloc.c
  stable/11/bin/sh/memalloc.h
  stable/11/bin/sh/miscbltin.c
  stable/11/bin/sh/mknodes.c
  stable/11/bin/sh/mksyntax.c
  stable/11/bin/sh/myhistedit.h
  stable/11/bin/sh/mystring.c
  stable/11/bin/sh/mystring.h
  stable/11/bin/sh/options.c
  stable/11/bin/sh/options.h
  stable/11/bin/sh/output.c
  stable/11/bin/sh/output.h
  stable/11/bin/sh/parser.c
  stable/11/bin/sh/parser.h
  stable/11/bin/sh/redir.c
  stable/11/bin/sh/redir.h
  stable/11/bin/sh/shell.h
  stable/11/bin/sh/show.c
  stable/11/bin/sh/show.h
  stable/11/bin/sh/trap.c
  stable/11/bin/sh/trap.h
  stable/11/bin/sh/var.c
  stable/11/bin/sh/var.h
  stable/11/include/_ctype.h
  stable/11/include/a.out.h
  stable/11/include/ar.h
  stable/11/include/arpa/ftp.h
  stable/11/include/arpa/inet.h
  stable/11/include/arpa/nameser.h
  stable/11/include/arpa/nameser_compat.h
  stable/11/include/arpa/telnet.h
  stable/11/include/arpa/tftp.h
  stable/11/include/assert.h
  stable/11/include/bitstring.h
  stable/11/include/complex.h
  stable/11/include/cpio.h
  stable/11/include/ctype.h
  stable/11/include/db.h
  stable/11/include/dirent.h
  stable/11/include/dlfcn.h
  stable/11/include/elf-hints.h
  stable/11/include/elf.h
  stable/11/include/err.h
  stable/11/include/fmtmsg.h
  stable/11/include/fnmatch.h
  stable/11/include/fstab.h
  stable/11/include/fts.h
  stable/11/include/getopt.h
  stable/11/include/glob.h
  stable/11/include/grp.h
  stable/11/include/hesiod.h
  stable/11/include/iconv.h
  stable/11/include/inttypes.h
  stable/11/include/iso646.h
  stable/11/include/kenv.h
  stable/11/include/langinfo.h
  stable/11/include/libgen.h
  stable/11/include/limits.h
  stable/11/include/link.h
  stable/11/include/locale.h
  stable/11/include/malloc_np.h
  stable/11/include/memory.h
  stable/11/include/mk-osreldate.sh
  stable/11/include/monetary.h
  stable/11/include/mpool.h
  stable/11/include/mqueue.h
  stable/11/include/ndbm.h
  stable/11/include/netdb.h
  stable/11/include/nl_types.h
  stable/11/include/nlist.h
  stable/11/include/nss.h
  stable/11/include/nsswitch.h
  stable/11/include/paths.h
  stable/11/include/printf.h
  stable/11/include/proc_service.h
  stable/11/include/protocols/dumprestore.h
  stable/11/include/protocols/routed.h
  stable/11/include/protocols/rwhod.h
  stable/11/include/protocols/talkd.h
  stable/11/include/protocols/timed.h
  stable/11/include/pthread.h
  stable/11/include/pthread_np.h
  stable/11/include/pwd.h
  stable/11/include/ranlib.h
  stable/11/include/regex.h
  stable/11/include/resolv.h
  stable/11/include/rpc/auth.h
  stable/11/include/rpc/auth_des.h
  stable/11/include/rpc/auth_kerb.h
  stable/11/include/rpc/auth_unix.h
  stable/11/include/rpc/clnt.h
  stable/11/include/rpc/clnt_soc.h
  stable/11/include/rpc/des.h
  stable/11/include/rpc/des_crypt.h
  stable/11/include/rpc/nettype.h
  stable/11/include/rpc/pmap_clnt.h
  stable/11/include/rpc/pmap_prot.h
  stable/11/include/rpc/pmap_rmt.h
  stable/11/include/rpc/raw.h
  stable/11/include/rpc/rpc.h
  stable/11/include/rpc/rpc_com.h
  stable/11/include/rpc/rpc_msg.h
  stable/11/include/rpc/rpcb_clnt.h
  stable/11/include/rpc/rpcent.h
  stable/11/include/rpc/rpcsec_gss.h
  stable/11/include/rpc/svc.h
  stable/11/include/rpc/svc_auth.h
  stable/11/include/rpc/svc_dg.h
  stable/11/include/rpc/svc_soc.h
  stable/11/include/rpc/xdr.h
  stable/11/include/rpcsvc/nis_tags.h
  stable/11/include/rpcsvc/yp_prot.h
  stable/11/include/rpcsvc/ypclnt.h
  stable/11/include/runetype.h
  stable/11/include/semaphore.h
  stable/11/include/setjmp.h
  stable/11/include/signal.h
  stable/11/include/spawn.h
  stable/11/include/stab.h
  stable/11/include/stdalign.h
  stable/11/include/stdbool.h
  stable/11/include/stddef.h
  stable/11/include/stdio.h
  stable/11/include/stdlib.h
  stable/11/include/stdnoreturn.h
  stable/11/include/string.h
  stable/11/include/stringlist.h
  stable/11/include/strings.h
  stable/11/include/sysexits.h
  stable/11/include/tar.h
  stable/11/include/termios.h
  stable/11/include/tgmath.h
  stable/11/include/time.h
  stable/11/include/timeconv.h
  stable/11/include/timers.h
  stable/11/include/ttyent.h
  stable/11/include/uchar.h
  stable/11/include/ulimit.h
  stable/11/include/unistd.h
  stable/11/include/utime.h
  stable/11/include/utmpx.h
  stable/11/include/uuid.h
  stable/11/include/varargs.h
  stable/11/include/wchar.h
  stable/11/include/wctype.h
  stable/11/include/wordexp.h
  stable/11/include/xlocale.h
  stable/11/include/xlocale/_ctype.h
  stable/11/include/xlocale/_inttypes.h
  stable/11/include/xlocale/_langinfo.h
  stable/11/include/xlocale/_locale.h
  stable/11/include/xlocale/_monetary.h
  stable/11/include/xlocale/_stdio.h
  stable/11/include/xlocale/_stdlib.h
  stable/11/include/xlocale/_string.h
  stable/11/include/xlocale/_time.h
  stable/11/include/xlocale/_uchar.h
  stable/11/include/xlocale/_wchar.h
  stable/11/lib/csu/amd64/crt1.c
  stable/11/lib/csu/arm/crt1.c
  stable/11/lib/csu/common/crtbrand.c
  stable/11/lib/csu/common/ignore_init.c
  stable/11/lib/csu/common/notes.h
  stable/11/lib/csu/mips/crt1.c
  stable/11/lib/csu/powerpc/crt1.c
  stable/11/lib/csu/powerpc64/crt1.c
  stable/11/lib/csu/sparc64/crt1.c
  stable/11/lib/libarchive/config_freebsd.h
  stable/11/lib/libbluetooth/bluetooth.c
  stable/11/lib/libbluetooth/bluetooth.h
  stable/11/lib/libbluetooth/dev.c
  stable/11/lib/libbluetooth/hci.c
  stable/11/lib/libbsdstat/bsdstat.c
  stable/11/lib/libbsdstat/bsdstat.h
  stable/11/lib/libc/amd64/SYS.h
  stable/11/lib/libc/amd64/_fpmath.h
  stable/11/lib/libc/amd64/gen/_set_tp.c
  stable/11/lib/libc/amd64/gen/getcontextx.c
  stable/11/lib/libc/amd64/gen/makecontext.c
  stable/11/lib/libc/amd64/gen/signalcontext.c
  stable/11/lib/libc/amd64/string/strcpy.c
  stable/11/lib/libc/amd64/sys/amd64_get_fsbase.c
  stable/11/lib/libc/amd64/sys/amd64_get_gsbase.c
  stable/11/lib/libc/amd64/sys/amd64_set_fsbase.c
  stable/11/lib/libc/amd64/sys/amd64_set_gsbase.c
  stable/11/lib/libc/arm/SYS.h
  stable/11/lib/libc/arm/_fpmath.h
  stable/11/lib/libc/arm/aeabi/aeabi_atexit.c
  stable/11/lib/libc/arm/aeabi/aeabi_double.c
  stable/11/lib/libc/arm/aeabi/aeabi_float.c
  stable/11/lib/libc/arm/aeabi/aeabi_unwind_cpp.c
  stable/11/lib/libc/arm/gen/_set_tp.c
  stable/11/lib/libc/arm/gen/arm_initfini.c
  stable/11/lib/libc/arm/gen/fabs.c
  stable/11/lib/libc/arm/gen/flt_rounds.c
  stable/11/lib/libc/arm/gen/getcontextx.c
  stable/11/lib/libc/arm/gen/makecontext.c
  stable/11/lib/libc/arm/gen/signalcontext.c
  stable/11/lib/libc/arm/sys/__vdso_gettc.c
  stable/11/lib/libc/compat-43/creat.c
  stable/11/lib/libc/compat-43/gethostid.c
  stable/11/lib/libc/compat-43/getwd.c
  stable/11/lib/libc/compat-43/killpg.c
  stable/11/lib/libc/compat-43/sethostid.c
  stable/11/lib/libc/compat-43/setpgrp.c
  stable/11/lib/libc/compat-43/setrgid.c
  stable/11/lib/libc/compat-43/setruid.c
  stable/11/lib/libc/compat-43/sigcompat.c
  stable/11/lib/libc/db/btree/bt_close.c
  stable/11/lib/libc/db/btree/bt_conv.c
  stable/11/lib/libc/db/btree/bt_debug.c
  stable/11/lib/libc/db/btree/bt_delete.c
  stable/11/lib/libc/db/btree/bt_get.c
  stable/11/lib/libc/db/btree/bt_open.c
  stable/11/lib/libc/db/btree/bt_overflow.c
  stable/11/lib/libc/db/btree/bt_page.c
  stable/11/lib/libc/db/btree/bt_put.c
  stable/11/lib/libc/db/btree/bt_search.c
  stable/11/lib/libc/db/btree/bt_seq.c
  stable/11/lib/libc/db/btree/bt_split.c
  stable/11/lib/libc/db/btree/bt_utils.c
  stable/11/lib/libc/db/btree/btree.h
  stable/11/lib/libc/db/btree/extern.h
  stable/11/lib/libc/db/db/db.c
  stable/11/lib/libc/db/hash/extern.h
  stable/11/lib/libc/db/hash/hash.c
  stable/11/lib/libc/db/hash/hash.h
  stable/11/lib/libc/db/hash/hash_bigkey.c
  stable/11/lib/libc/db/hash/hash_buf.c
  stable/11/lib/libc/db/hash/hash_func.c
  stable/11/lib/libc/db/hash/hash_log2.c
  stable/11/lib/libc/db/hash/hash_page.c
  stable/11/lib/libc/db/hash/ndbm.c
  stable/11/lib/libc/db/hash/page.h
  stable/11/lib/libc/db/mpool/mpool-compat.c
  stable/11/lib/libc/db/mpool/mpool.c
  stable/11/lib/libc/db/recno/extern.h
  stable/11/lib/libc/db/recno/rec_close.c
  stable/11/lib/libc/db/recno/rec_delete.c
  stable/11/lib/libc/db/recno/rec_get.c
  stable/11/lib/libc/db/recno/rec_open.c
  stable/11/lib/libc/db/recno/rec_put.c
  stable/11/lib/libc/db/recno/rec_search.c
  stable/11/lib/libc/db/recno/rec_seq.c
  stable/11/lib/libc/db/recno/rec_utils.c
  stable/11/lib/libc/db/recno/recno.h
  stable/11/lib/libc/db/test/btree.tests/main.c
  stable/11/lib/libc/db/test/dbtest.c
  stable/11/lib/libc/db/test/hash.tests/driver2.c
  stable/11/lib/libc/db/test/hash.tests/tcreat3.c
  stable/11/lib/libc/db/test/hash.tests/tdel.c
  stable/11/lib/libc/db/test/hash.tests/thash4.c
  stable/11/lib/libc/db/test/hash.tests/tread2.c
  stable/11/lib/libc/db/test/hash.tests/tseq.c
  stable/11/lib/libc/db/test/hash.tests/tverify.c
  stable/11/lib/libc/gdtoa/_hdtoa.c
  stable/11/lib/libc/gdtoa/_hldtoa.c
  stable/11/lib/libc/gdtoa/_ldtoa.c
  stable/11/lib/libc/gdtoa/machdep_ldisQ.c
  stable/11/lib/libc/gdtoa/machdep_ldisd.c
  stable/11/lib/libc/gdtoa/machdep_ldisx.c
  stable/11/lib/libc/gen/__getosreldate.c
  stable/11/lib/libc/gen/__xuname.c
  stable/11/lib/libc/gen/_once_stub.c
  stable/11/lib/libc/gen/_pthread_stubs.c
  stable/11/lib/libc/gen/_spinlock_stub.c
  stable/11/lib/libc/gen/_thread_init.c
  stable/11/lib/libc/gen/alarm.c
  stable/11/lib/libc/gen/assert.c
  stable/11/lib/libc/gen/auxv.c
  stable/11/lib/libc/gen/cap_sandboxed.c
  stable/11/lib/libc/gen/clock.c
  stable/11/lib/libc/gen/clock_getcpuclockid.c
  stable/11/lib/libc/gen/closedir.c
  stable/11/lib/libc/gen/confstr.c
  stable/11/lib/libc/gen/crypt.c
  stable/11/lib/libc/gen/ctermid.c
  stable/11/lib/libc/gen/daemon.c
  stable/11/lib/libc/gen/devname.c
  stable/11/lib/libc/gen/dirfd.c
  stable/11/lib/libc/gen/disklabel.c
  stable/11/lib/libc/gen/dlfcn.c
  stable/11/lib/libc/gen/dup3.c
  stable/11/lib/libc/gen/elf_utils.c
  stable/11/lib/libc/gen/err.c
  stable/11/lib/libc/gen/errlst.c
  stable/11/lib/libc/gen/errno.c
  stable/11/lib/libc/gen/exec.c
  stable/11/lib/libc/gen/fdevname.c
  stable/11/lib/libc/gen/feature_present.c
  stable/11/lib/libc/gen/fmtcheck.c
  stable/11/lib/libc/gen/fmtmsg.c
  stable/11/lib/libc/gen/fnmatch.c
  stable/11/lib/libc/gen/fpclassify.c
  stable/11/lib/libc/gen/frexp.c
  stable/11/lib/libc/gen/fstab.c
  stable/11/lib/libc/gen/ftok.c
  stable/11/lib/libc/gen/fts-compat.c
  stable/11/lib/libc/gen/fts-compat.h
  stable/11/lib/libc/gen/fts.c
  stable/11/lib/libc/gen/gen-private.h
  stable/11/lib/libc/gen/getbootfile.c
  stable/11/lib/libc/gen/getbsize.c
  stable/11/lib/libc/gen/getcap.c
  stable/11/lib/libc/gen/getcwd.c
  stable/11/lib/libc/gen/getdomainname.c
  stable/11/lib/libc/gen/getgrent.c
  stable/11/lib/libc/gen/getgrouplist.c
  stable/11/lib/libc/gen/gethostname.c
  stable/11/lib/libc/gen/getloadavg.c
  stable/11/lib/libc/gen/getlogin.c
  stable/11/lib/libc/gen/getmntinfo.c
  stable/11/lib/libc/gen/getnetgrent.c
  stable/11/lib/libc/gen/getosreldate.c
  stable/11/lib/libc/gen/getpagesize.c
  stable/11/lib/libc/gen/getpagesizes.c
  stable/11/lib/libc/gen/getpeereid.c
  stable/11/lib/libc/gen/getpwent.c
  stable/11/lib/libc/gen/getttyent.c
  stable/11/lib/libc/gen/getusershell.c
  stable/11/lib/libc/gen/getutxent.c
  stable/11/lib/libc/gen/getvfsbyname.c
  stable/11/lib/libc/gen/glob.c
  stable/11/lib/libc/gen/initgroups.c
  stable/11/lib/libc/gen/isatty.c
  stable/11/lib/libc/gen/isinf.c
  stable/11/lib/libc/gen/isnan.c
  stable/11/lib/libc/gen/libc_dlopen.c
  stable/11/lib/libc/gen/lockf.c
  stable/11/lib/libc/gen/nice.c
  stable/11/lib/libc/gen/nlist.c
  stable/11/lib/libc/gen/opendir.c
  stable/11/lib/libc/gen/pause.c
  stable/11/lib/libc/gen/popen.c
  stable/11/lib/libc/gen/posix_spawn.c
  stable/11/lib/libc/gen/psignal.c
  stable/11/lib/libc/gen/pututxline.c
  stable/11/lib/libc/gen/pw_scan.c
  stable/11/lib/libc/gen/pw_scan.h
  stable/11/lib/libc/gen/raise.c
  stable/11/lib/libc/gen/readdir.c
  stable/11/lib/libc/gen/rewinddir.c
  stable/11/lib/libc/gen/scandir.c
  stable/11/lib/libc/gen/seekdir.c
  stable/11/lib/libc/gen/sem.c
  stable/11/lib/libc/gen/sem_new.c
  stable/11/lib/libc/gen/semctl.c
  stable/11/lib/libc/gen/setdomainname.c
  stable/11/lib/libc/gen/sethostname.c
  stable/11/lib/libc/gen/setjmperr.c
  stable/11/lib/libc/gen/setmode.c
  stable/11/lib/libc/gen/siginterrupt.c
  stable/11/lib/libc/gen/siglist.c
  stable/11/lib/libc/gen/signal.c
  stable/11/lib/libc/gen/sigsetops.c
  stable/11/lib/libc/gen/sleep.c
  stable/11/lib/libc/gen/stringlist.c
  stable/11/lib/libc/gen/strtofflags.c
  stable/11/lib/libc/gen/sysconf.c
  stable/11/lib/libc/gen/sysctl.c
  stable/11/lib/libc/gen/sysctlnametomib.c
  stable/11/lib/libc/gen/syslog.c
  stable/11/lib/libc/gen/telldir.c
  stable/11/lib/libc/gen/telldir.h
  stable/11/lib/libc/gen/termios.c
  stable/11/lib/libc/gen/time.c
  stable/11/lib/libc/gen/times.c
  stable/11/lib/libc/gen/timezone.c
  stable/11/lib/libc/gen/tls.c
  stable/11/lib/libc/gen/ttyname.c
  stable/11/lib/libc/gen/ttyslot.c
  stable/11/lib/libc/gen/ualarm.c
  stable/11/lib/libc/gen/ulimit.c
  stable/11/lib/libc/gen/uname.c
  stable/11/lib/libc/gen/unvis-compat.c
  stable/11/lib/libc/gen/usleep.c
  stable/11/lib/libc/gen/utime.c
  stable/11/lib/libc/gen/utxdb.c
  stable/11/lib/libc/gen/utxdb.h
  stable/11/lib/libc/gen/valloc.c
  stable/11/lib/libc/gen/wait.c
  stable/11/lib/libc/gen/wait3.c
  stable/11/lib/libc/gen/waitid.c
  stable/11/lib/libc/gen/waitpid.c
  stable/11/lib/libc/gen/wordexp.c
  stable/11/lib/libc/gmon/gmon.c
  stable/11/lib/libc/gmon/mcount.c
  stable/11/lib/libc/i386/SYS.h
  stable/11/lib/libc/i386/_fpmath.h
  stable/11/lib/libc/i386/gen/_set_tp.c
  stable/11/lib/libc/i386/gen/getcontextx.c
  stable/11/lib/libc/i386/gen/makecontext.c
  stable/11/lib/libc/i386/gen/signalcontext.c
  stable/11/lib/libc/i386/sys/i386_clr_watch.c
  stable/11/lib/libc/i386/sys/i386_get_fsbase.c
  stable/11/lib/libc/i386/sys/i386_get_gsbase.c
  stable/11/lib/libc/i386/sys/i386_get_ioperm.c
  stable/11/lib/libc/i386/sys/i386_get_ldt.c
  stable/11/lib/libc/i386/sys/i386_set_fsbase.c
  stable/11/lib/libc/i386/sys/i386_set_gsbase.c
  stable/11/lib/libc/i386/sys/i386_set_ioperm.c
  stable/11/lib/libc/i386/sys/i386_set_ldt.c
  stable/11/lib/libc/i386/sys/i386_set_watch.c
  stable/11/lib/libc/i386/sys/i386_vm86.c
  stable/11/lib/libc/iconv/__iconv.c
  stable/11/lib/libc/iconv/__iconv_free_list.c
  stable/11/lib/libc/iconv/__iconv_get_list.c
  stable/11/lib/libc/iconv/_strtol.h
  stable/11/lib/libc/iconv/_strtoul.h
  stable/11/lib/libc/iconv/bsd_iconv.c
  stable/11/lib/libc/iconv/citrus_aliasname_local.h
  stable/11/lib/libc/iconv/citrus_bcs.c
  stable/11/lib/libc/iconv/citrus_bcs.h
  stable/11/lib/libc/iconv/citrus_bcs_strtol.c
  stable/11/lib/libc/iconv/citrus_bcs_strtoul.c
  stable/11/lib/libc/iconv/citrus_csmapper.c
  stable/11/lib/libc/iconv/citrus_csmapper.h
  stable/11/lib/libc/iconv/citrus_db.c
  stable/11/lib/libc/iconv/citrus_db.h
  stable/11/lib/libc/iconv/citrus_db_factory.c
  stable/11/lib/libc/iconv/citrus_db_factory.h
  stable/11/lib/libc/iconv/citrus_db_file.h
  stable/11/lib/libc/iconv/citrus_db_hash.c
  stable/11/lib/libc/iconv/citrus_db_hash.h
  stable/11/lib/libc/iconv/citrus_esdb.c
  stable/11/lib/libc/iconv/citrus_esdb.h
  stable/11/lib/libc/iconv/citrus_esdb_file.h
  stable/11/lib/libc/iconv/citrus_fix_grouping.h
  stable/11/lib/libc/iconv/citrus_hash.c
  stable/11/lib/libc/iconv/citrus_hash.h
  stable/11/lib/libc/iconv/citrus_iconv.c
  stable/11/lib/libc/iconv/citrus_iconv.h
  stable/11/lib/libc/iconv/citrus_iconv_local.h
  stable/11/lib/libc/iconv/citrus_lock.h
  stable/11/lib/libc/iconv/citrus_lookup.c
  stable/11/lib/libc/iconv/citrus_lookup.h
  stable/11/lib/libc/iconv/citrus_lookup_factory.c
  stable/11/lib/libc/iconv/citrus_lookup_factory.h
  stable/11/lib/libc/iconv/citrus_lookup_file.h
  stable/11/lib/libc/iconv/citrus_mapper.c
  stable/11/lib/libc/iconv/citrus_mapper.h
  stable/11/lib/libc/iconv/citrus_mapper_local.h
  stable/11/lib/libc/iconv/citrus_memstream.c
  stable/11/lib/libc/iconv/citrus_memstream.h
  stable/11/lib/libc/iconv/citrus_mmap.c
  stable/11/lib/libc/iconv/citrus_mmap.h
  stable/11/lib/libc/iconv/citrus_module.c
  stable/11/lib/libc/iconv/citrus_module.h
  stable/11/lib/libc/iconv/citrus_namespace.h
  stable/11/lib/libc/iconv/citrus_none.c
  stable/11/lib/libc/iconv/citrus_none.h
  stable/11/lib/libc/iconv/citrus_pivot_factory.c
  stable/11/lib/libc/iconv/citrus_pivot_factory.h
  stable/11/lib/libc/iconv/citrus_pivot_file.h
  stable/11/lib/libc/iconv/citrus_prop.c
  stable/11/lib/libc/iconv/citrus_prop.h
  stable/11/lib/libc/iconv/citrus_region.h
  stable/11/lib/libc/iconv/citrus_stdenc.c
  stable/11/lib/libc/iconv/citrus_stdenc.h
  stable/11/lib/libc/iconv/citrus_stdenc_local.h
  stable/11/lib/libc/iconv/citrus_stdenc_template.h
  stable/11/lib/libc/iconv/citrus_types.h
  stable/11/lib/libc/iconv/iconv-internal.h
  stable/11/lib/libc/iconv/iconv.c
  stable/11/lib/libc/iconv/iconv_canonicalize.c
  stable/11/lib/libc/iconv/iconv_close.c
  stable/11/lib/libc/iconv/iconv_compat.c
  stable/11/lib/libc/iconv/iconv_open.c
  stable/11/lib/libc/iconv/iconv_open_into.c
  stable/11/lib/libc/iconv/iconv_set_relocation_prefix.c
  stable/11/lib/libc/iconv/iconvctl.c
  stable/11/lib/libc/iconv/iconvlist.c
  stable/11/lib/libc/include/compat.h
  stable/11/lib/libc/include/errlst.h
  stable/11/lib/libc/include/fpmath.h
  stable/11/lib/libc/include/libc_private.h
  stable/11/lib/libc/include/namespace.h
  stable/11/lib/libc/include/nscache.h
  stable/11/lib/libc/include/nscachedcli.h
  stable/11/lib/libc/include/nss_tls.h
  stable/11/lib/libc/include/reentrant.h
  stable/11/lib/libc/include/spinlock.h
  stable/11/lib/libc/include/un-namespace.h
  stable/11/lib/libc/inet/inet_addr.c
  stable/11/lib/libc/inet/inet_lnaof.c
  stable/11/lib/libc/inet/inet_makeaddr.c
  stable/11/lib/libc/inet/inet_netof.c
  stable/11/lib/libc/inet/inet_network.c
  stable/11/lib/libc/inet/inet_ntoa.c
  stable/11/lib/libc/locale/ascii.c
  stable/11/lib/libc/locale/btowc.c
  stable/11/lib/libc/locale/c16rtomb.c
  stable/11/lib/libc/locale/c32rtomb.c
  stable/11/lib/libc/locale/cXXrtomb_iconv.h
  stable/11/lib/libc/locale/collate.c
  stable/11/lib/libc/locale/collate.h
  stable/11/lib/libc/locale/collcmp.c
  stable/11/lib/libc/locale/ctype.c
  stable/11/lib/libc/locale/euc.c
  stable/11/lib/libc/locale/fix_grouping.c
  stable/11/lib/libc/locale/gb18030.c
  stable/11/lib/libc/locale/gb2312.c
  stable/11/lib/libc/locale/gbk.c
  stable/11/lib/libc/locale/isctype.c
  stable/11/lib/libc/locale/iswctype.c
  stable/11/lib/libc/locale/ldpart.c
  stable/11/lib/libc/locale/ldpart.h
  stable/11/lib/libc/locale/lmessages.c
  stable/11/lib/libc/locale/lmessages.h
  stable/11/lib/libc/locale/lmonetary.c
  stable/11/lib/libc/locale/lmonetary.h
  stable/11/lib/libc/locale/lnumeric.c
  stable/11/lib/libc/locale/lnumeric.h
  stable/11/lib/libc/locale/localeconv.c
  stable/11/lib/libc/locale/mblen.c
  stable/11/lib/libc/locale/mblocal.h
  stable/11/lib/libc/locale/mbrlen.c
  stable/11/lib/libc/locale/mbrtoc16.c
  stable/11/lib/libc/locale/mbrtoc32.c
  stable/11/lib/libc/locale/mbrtocXX_iconv.h
  stable/11/lib/libc/locale/mbrtowc.c
  stable/11/lib/libc/locale/mbsinit.c
  stable/11/lib/libc/locale/mbsnrtowcs.c
  stable/11/lib/libc/locale/mbsrtowcs.c
  stable/11/lib/libc/locale/mbstowcs.c
  stable/11/lib/libc/locale/mbtowc.c
  stable/11/lib/libc/locale/mskanji.c
  stable/11/lib/libc/locale/nextwctype.c
  stable/11/lib/libc/locale/nl_langinfo.c
  stable/11/lib/libc/locale/none.c
  stable/11/lib/libc/locale/rpmatch.c
  stable/11/lib/libc/locale/rune.c
  stable/11/lib/libc/locale/runefile.h
  stable/11/lib/libc/locale/runetype.c
  stable/11/lib/libc/locale/setlocale.c
  stable/11/lib/libc/locale/setlocale.h
  stable/11/lib/libc/locale/setrunelocale.c
  stable/11/lib/libc/locale/table.c
  stable/11/lib/libc/locale/tolower.c
  stable/11/lib/libc/locale/toupper.c
  stable/11/lib/libc/locale/utf8.c
  stable/11/lib/libc/locale/wcrtomb.c
  stable/11/lib/libc/locale/wcsftime.c
  stable/11/lib/libc/locale/wcsnrtombs.c
  stable/11/lib/libc/locale/wcsrtombs.c
  stable/11/lib/libc/locale/wcstod.c
  stable/11/lib/libc/locale/wcstof.c
  stable/11/lib/libc/locale/wcstoimax.c
  stable/11/lib/libc/locale/wcstol.c
  stable/11/lib/libc/locale/wcstold.c
  stable/11/lib/libc/locale/wcstoll.c
  stable/11/lib/libc/locale/wcstombs.c
  stable/11/lib/libc/locale/wcstoul.c
  stable/11/lib/libc/locale/wcstoull.c
  stable/11/lib/libc/locale/wcstoumax.c
  stable/11/lib/libc/locale/wctob.c
  stable/11/lib/libc/locale/wctomb.c
  stable/11/lib/libc/locale/wctrans.c
  stable/11/lib/libc/locale/wctype.c
  stable/11/lib/libc/locale/wcwidth.c
  stable/11/lib/libc/locale/xlocale.c
  stable/11/lib/libc/locale/xlocale_private.h
  stable/11/lib/libc/mips/SYS.h
  stable/11/lib/libc/mips/_fpmath.h
  stable/11/lib/libc/mips/gen/_set_tp.c
  stable/11/lib/libc/mips/gen/fabs.c
  stable/11/lib/libc/mips/gen/longjmp.c
  stable/11/lib/libc/mips/gen/makecontext.c
  stable/11/lib/libc/mips/gen/signalcontext.c
  stable/11/lib/libc/net/ether_addr.c
  stable/11/lib/libc/net/gai_strerror.c
  stable/11/lib/libc/net/getaddrinfo.c
  stable/11/lib/libc/net/gethostbydns.c
  stable/11/lib/libc/net/gethostbyht.c
  stable/11/lib/libc/net/gethostbynis.c
  stable/11/lib/libc/net/gethostnamadr.c
  stable/11/lib/libc/net/getifmaddrs.c
  stable/11/lib/libc/net/getnameinfo.c
  stable/11/lib/libc/net/getnetbydns.c
  stable/11/lib/libc/net/getnetbyht.c
  stable/11/lib/libc/net/getnetbynis.c
  stable/11/lib/libc/net/getnetnamadr.c
  stable/11/lib/libc/net/getproto.c
  stable/11/lib/libc/net/getprotoent.c
  stable/11/lib/libc/net/getprotoname.c
  stable/11/lib/libc/net/getservent.c
  stable/11/lib/libc/net/ip6opt.c
  stable/11/lib/libc/net/linkaddr.c
  stable/11/lib/libc/net/map_v4v6.c
  stable/11/lib/libc/net/name6.c
  stable/11/lib/libc/net/netdb_private.h
  stable/11/lib/libc/net/nscache.c
  stable/11/lib/libc/net/nscachedcli.c
  stable/11/lib/libc/net/nsdispatch.c
  stable/11/lib/libc/net/nslexer.l
  stable/11/lib/libc/net/nsparser.y
  stable/11/lib/libc/net/nss_backends.h
  stable/11/lib/libc/net/nss_compat.c
  stable/11/lib/libc/net/ntoh.c
  stable/11/lib/libc/net/rcmd.c
  stable/11/lib/libc/net/rcmdsh.c
  stable/11/lib/libc/net/recv.c
  stable/11/lib/libc/net/rthdr.c
  stable/11/lib/libc/net/sctp_sys_calls.c
  stable/11/lib/libc/net/send.c
  stable/11/lib/libc/net/sockatmark.c
  stable/11/lib/libc/net/sourcefilter.c
  stable/11/lib/libc/net/vars.c
  stable/11/lib/libc/posix1e/acl_branding.c
  stable/11/lib/libc/posix1e/acl_calc_mask.c
  stable/11/lib/libc/posix1e/acl_compat.c
  stable/11/lib/libc/posix1e/acl_copy.c
  stable/11/lib/libc/posix1e/acl_delete.c
  stable/11/lib/libc/posix1e/acl_delete_entry.c
  stable/11/lib/libc/posix1e/acl_entry.c
  stable/11/lib/libc/posix1e/acl_flag.c
  stable/11/lib/libc/posix1e/acl_free.c
  stable/11/lib/libc/posix1e/acl_from_text.c
  stable/11/lib/libc/posix1e/acl_from_text_nfs4.c
  stable/11/lib/libc/posix1e/acl_get.c
  stable/11/lib/libc/posix1e/acl_id_to_name.c
  stable/11/lib/libc/posix1e/acl_init.c
  stable/11/lib/libc/posix1e/acl_perm.c
  stable/11/lib/libc/posix1e/acl_set.c
  stable/11/lib/libc/posix1e/acl_strip.c
  stable/11/lib/libc/posix1e/acl_support.c
  stable/11/lib/libc/posix1e/acl_support.h
  stable/11/lib/libc/posix1e/acl_support_nfs4.c
  stable/11/lib/libc/posix1e/acl_to_text.c
  stable/11/lib/libc/posix1e/acl_to_text_nfs4.c
  stable/11/lib/libc/posix1e/acl_valid.c
  stable/11/lib/libc/posix1e/extattr.c
  stable/11/lib/libc/posix1e/mac.c
  stable/11/lib/libc/posix1e/mac_exec.c
  stable/11/lib/libc/posix1e/mac_get.c
  stable/11/lib/libc/posix1e/mac_set.c
  stable/11/lib/libc/powerpc/SYS.h
  stable/11/lib/libc/powerpc/_fpmath.h
  stable/11/lib/libc/powerpc/gen/_set_tp.c
  stable/11/lib/libc/powerpc/gen/flt_rounds.c
  stable/11/lib/libc/powerpc/gen/fpgetmask.c
  stable/11/lib/libc/powerpc/gen/fpgetround.c
  stable/11/lib/libc/powerpc/gen/fpgetsticky.c
  stable/11/lib/libc/powerpc/gen/fpsetmask.c
  stable/11/lib/libc/powerpc/gen/fpsetround.c
  stable/11/lib/libc/powerpc/gen/makecontext.c
  stable/11/lib/libc/powerpc/gen/signalcontext.c
  stable/11/lib/libc/powerpc/gen/syncicache.c
  stable/11/lib/libc/powerpc64/SYS.h
  stable/11/lib/libc/powerpc64/_fpmath.h
  stable/11/lib/libc/powerpc64/gen/_set_tp.c
  stable/11/lib/libc/powerpc64/gen/flt_rounds.c
  stable/11/lib/libc/powerpc64/gen/fpgetmask.c
  stable/11/lib/libc/powerpc64/gen/fpgetround.c
  stable/11/lib/libc/powerpc64/gen/fpgetsticky.c
  stable/11/lib/libc/powerpc64/gen/fpsetmask.c
  stable/11/lib/libc/powerpc64/gen/fpsetround.c
  stable/11/lib/libc/powerpc64/gen/makecontext.c
  stable/11/lib/libc/powerpc64/gen/signalcontext.c
  stable/11/lib/libc/powerpc64/gen/syncicache.c
  stable/11/lib/libc/quad/TESTS/divrem.c
  stable/11/lib/libc/quad/TESTS/mul.c
  stable/11/lib/libc/quad/adddi3.c
  stable/11/lib/libc/quad/anddi3.c
  stable/11/lib/libc/quad/ashldi3.c
  stable/11/lib/libc/quad/ashrdi3.c
  stable/11/lib/libc/quad/cmpdi2.c
  stable/11/lib/libc/quad/divdi3.c
  stable/11/lib/libc/quad/fixdfdi.c
  stable/11/lib/libc/quad/fixsfdi.c
  stable/11/lib/libc/quad/fixunsdfdi.c
  stable/11/lib/libc/quad/fixunssfdi.c
  stable/11/lib/libc/quad/floatdidf.c
  stable/11/lib/libc/quad/floatdisf.c
  stable/11/lib/libc/quad/floatunsdidf.c
  stable/11/lib/libc/quad/iordi3.c
  stable/11/lib/libc/quad/lshldi3.c
  stable/11/lib/libc/quad/lshrdi3.c
  stable/11/lib/libc/quad/moddi3.c
  stable/11/lib/libc/quad/muldi3.c
  stable/11/lib/libc/quad/negdi2.c
  stable/11/lib/libc/quad/notdi2.c
  stable/11/lib/libc/quad/qdivrem.c
  stable/11/lib/libc/quad/quad.h
  stable/11/lib/libc/quad/subdi3.c
  stable/11/lib/libc/quad/ucmpdi2.c
  stable/11/lib/libc/quad/udivdi3.c
  stable/11/lib/libc/quad/umoddi3.c
  stable/11/lib/libc/quad/xordi3.c
  stable/11/lib/libc/regex/cname.h
  stable/11/lib/libc/regex/engine.c
  stable/11/lib/libc/regex/regcomp.c
  stable/11/lib/libc/regex/regerror.c
  stable/11/lib/libc/regex/regex2.h
  stable/11/lib/libc/regex/regexec.c
  stable/11/lib/libc/regex/regfree.c
  stable/11/lib/libc/regex/utils.h
  stable/11/lib/libc/resolv/h_errno.c
  stable/11/lib/libc/resolv/herror.c
  stable/11/lib/libc/resolv/res_comp.c
  stable/11/lib/libc/resolv/res_debug.c
  stable/11/lib/libc/resolv/res_init.c
  stable/11/lib/libc/resolv/res_mkquery.c
  stable/11/lib/libc/resolv/res_query.c
  stable/11/lib/libc/resolv/res_send.c
  stable/11/lib/libc/resolv/res_state.c
  stable/11/lib/libc/rpc/auth_des.c
  stable/11/lib/libc/rpc/auth_none.c
  stable/11/lib/libc/rpc/auth_unix.c
  stable/11/lib/libc/rpc/authdes_prot.c
  stable/11/lib/libc/rpc/authunix_prot.c
  stable/11/lib/libc/rpc/bindresvport.c
  stable/11/lib/libc/rpc/clnt_bcast.c
  stable/11/lib/libc/rpc/clnt_dg.c
  stable/11/lib/libc/rpc/clnt_generic.c
  stable/11/lib/libc/rpc/clnt_perror.c
  stable/11/lib/libc/rpc/clnt_raw.c
  stable/11/lib/libc/rpc/clnt_simple.c
  stable/11/lib/libc/rpc/clnt_vc.c
  stable/11/lib/libc/rpc/crypt_client.c
  stable/11/lib/libc/rpc/des_crypt.c
  stable/11/lib/libc/rpc/des_soft.c
  stable/11/lib/libc/rpc/getnetconfig.c
  stable/11/lib/libc/rpc/getnetpath.c
  stable/11/lib/libc/rpc/getpublickey.c
  stable/11/lib/libc/rpc/getrpcent.c
  stable/11/lib/libc/rpc/getrpcport.c
  stable/11/lib/libc/rpc/key_call.c
  stable/11/lib/libc/rpc/key_prot_xdr.c
  stable/11/lib/libc/rpc/mt_misc.h
  stable/11/lib/libc/rpc/netname.c
  stable/11/lib/libc/rpc/netnamer.c
  stable/11/lib/libc/rpc/pmap_clnt.c
  stable/11/lib/libc/rpc/pmap_getmaps.c
  stable/11/lib/libc/rpc/pmap_getport.c
  stable/11/lib/libc/rpc/pmap_prot.c
  stable/11/lib/libc/rpc/pmap_prot2.c
  stable/11/lib/libc/rpc/pmap_rmt.c
  stable/11/lib/libc/rpc/rpc_callmsg.c
  stable/11/lib/libc/rpc/rpc_com.h
  stable/11/lib/libc/rpc/rpc_commondata.c
  stable/11/lib/libc/rpc/rpc_dtablesize.c
  stable/11/lib/libc/rpc/rpc_generic.c
  stable/11/lib/libc/rpc/rpc_prot.c
  stable/11/lib/libc/rpc/rpc_soc.c
  stable/11/lib/libc/rpc/rpcb_clnt.c
  stable/11/lib/libc/rpc/rpcb_prot.c
  stable/11/lib/libc/rpc/rpcb_st_xdr.c
  stable/11/lib/libc/rpc/rpcdname.c
  stable/11/lib/libc/rpc/rpcsec_gss_stub.c
  stable/11/lib/libc/rpc/rtime.c
  stable/11/lib/libc/rpc/svc.c
  stable/11/lib/libc/rpc/svc_auth.c
  stable/11/lib/libc/rpc/svc_auth_des.c
  stable/11/lib/libc/rpc/svc_auth_unix.c
  stable/11/lib/libc/rpc/svc_dg.c
  stable/11/lib/libc/rpc/svc_generic.c
  stable/11/lib/libc/rpc/svc_raw.c
  stable/11/lib/libc/rpc/svc_run.c
  stable/11/lib/libc/rpc/svc_simple.c
  stable/11/lib/libc/rpc/svc_vc.c
  stable/11/lib/libc/softfloat/fpgetmask.c
  stable/11/lib/libc/softfloat/fpgetround.c
  stable/11/lib/libc/softfloat/fpgetsticky.c
  stable/11/lib/libc/softfloat/fpsetmask.c
  stable/11/lib/libc/softfloat/fpsetround.c
  stable/11/lib/libc/softfloat/fpsetsticky.c
  stable/11/lib/libc/sparc64/SYS.h
  stable/11/lib/libc/sparc64/_fpmath.h
  stable/11/lib/libc/sparc64/fpu/fpu.c
  stable/11/lib/libc/sparc64/fpu/fpu_add.c
  stable/11/lib/libc/sparc64/fpu/fpu_arith.h
  stable/11/lib/libc/sparc64/fpu/fpu_compare.c
  stable/11/lib/libc/sparc64/fpu/fpu_emu.h
  stable/11/lib/libc/sparc64/fpu/fpu_extern.h
  stable/11/lib/libc/sparc64/fpu/fpu_qp.c
  stable/11/lib/libc/sparc64/fpu/fpu_reg.h
  stable/11/lib/libc/sparc64/gen/_set_tp.c
  stable/11/lib/libc/sparc64/gen/makecontext.c
  stable/11/lib/libc/sparc64/gen/signalcontext.c
  stable/11/lib/libc/sparc64/sys/__sparc_sigtramp_setup.c
  stable/11/lib/libc/sparc64/sys/__sparc_utrap.c
  stable/11/lib/libc/sparc64/sys/__sparc_utrap_align.c
  stable/11/lib/libc/sparc64/sys/__sparc_utrap_emul.c
  stable/11/lib/libc/sparc64/sys/__sparc_utrap_install.c
  stable/11/lib/libc/sparc64/sys/__sparc_utrap_private.h
  stable/11/lib/libc/sparc64/sys/__sparc_utrap_setup.c
  stable/11/lib/libc/stdio/_flock_stub.c
  stable/11/lib/libc/stdio/asprintf.c
  stable/11/lib/libc/stdio/clrerr.c
  stable/11/lib/libc/stdio/dprintf.c
  stable/11/lib/libc/stdio/fclose.c
  stable/11/lib/libc/stdio/fcloseall.c
  stable/11/lib/libc/stdio/fdopen.c
  stable/11/lib/libc/stdio/feof.c
  stable/11/lib/libc/stdio/ferror.c
  stable/11/lib/libc/stdio/fflush.c
  stable/11/lib/libc/stdio/fgetc.c
  stable/11/lib/libc/stdio/fgetln.c
  stable/11/lib/libc/stdio/fgetpos.c
  stable/11/lib/libc/stdio/fgets.c
  stable/11/lib/libc/stdio/fgetwc.c
  stable/11/lib/libc/stdio/fgetwln.c
  stable/11/lib/libc/stdio/fgetws.c
  stable/11/lib/libc/stdio/fileno.c
  stable/11/lib/libc/stdio/findfp.c
  stable/11/lib/libc/stdio/flags.c
  stable/11/lib/libc/stdio/floatio.h
  stable/11/lib/libc/stdio/fmemopen.c
  stable/11/lib/libc/stdio/fopen.c
  stable/11/lib/libc/stdio/fprintf.c
  stable/11/lib/libc/stdio/fpurge.c
  stable/11/lib/libc/stdio/fputc.c
  stable/11/lib/libc/stdio/fputs.c
  stable/11/lib/libc/stdio/fputwc.c
  stable/11/lib/libc/stdio/fputws.c
  stable/11/lib/libc/stdio/fread.c
  stable/11/lib/libc/stdio/freopen.c
  stable/11/lib/libc/stdio/fscanf.c
  stable/11/lib/libc/stdio/fseek.c
  stable/11/lib/libc/stdio/fsetpos.c
  stable/11/lib/libc/stdio/ftell.c
  stable/11/lib/libc/stdio/funopen.c
  stable/11/lib/libc/stdio/fvwrite.c
  stable/11/lib/libc/stdio/fvwrite.h
  stable/11/lib/libc/stdio/fwalk.c
  stable/11/lib/libc/stdio/fwide.c
  stable/11/lib/libc/stdio/fwprintf.c
  stable/11/lib/libc/stdio/fwrite.c
  stable/11/lib/libc/stdio/fwscanf.c
  stable/11/lib/libc/stdio/getc.c
  stable/11/lib/libc/stdio/getchar.c
  stable/11/lib/libc/stdio/getdelim.c
  stable/11/lib/libc/stdio/getline.c
  stable/11/lib/libc/stdio/gets.c
  stable/11/lib/libc/stdio/getw.c
  stable/11/lib/libc/stdio/getwc.c
  stable/11/lib/libc/stdio/getwchar.c
  stable/11/lib/libc/stdio/glue.h
  stable/11/lib/libc/stdio/local.h
  stable/11/lib/libc/stdio/makebuf.c
  stable/11/lib/libc/stdio/mktemp.c
  stable/11/lib/libc/stdio/open_memstream.c
  stable/11/lib/libc/stdio/open_wmemstream.c
  stable/11/lib/libc/stdio/perror.c
  stable/11/lib/libc/stdio/printf-pos.c
  stable/11/lib/libc/stdio/printf.c
  stable/11/lib/libc/stdio/printfcommon.h
  stable/11/lib/libc/stdio/printflocal.h
  stable/11/lib/libc/stdio/putc.c
  stable/11/lib/libc/stdio/putchar.c
  stable/11/lib/libc/stdio/puts.c
  stable/11/lib/libc/stdio/putw.c
  stable/11/lib/libc/stdio/putwc.c
  stable/11/lib/libc/stdio/putwchar.c
  stable/11/lib/libc/stdio/refill.c
  stable/11/lib/libc/stdio/remove.c
  stable/11/lib/libc/stdio/rewind.c
  stable/11/lib/libc/stdio/rget.c
  stable/11/lib/libc/stdio/scanf.c
  stable/11/lib/libc/stdio/setbuf.c
  stable/11/lib/libc/stdio/setbuffer.c
  stable/11/lib/libc/stdio/setvbuf.c
  stable/11/lib/libc/stdio/snprintf.c
  stable/11/lib/libc/stdio/sprintf.c
  stable/11/lib/libc/stdio/sscanf.c
  stable/11/lib/libc/stdio/stdio.c
  stable/11/lib/libc/stdio/swprintf.c
  stable/11/lib/libc/stdio/swscanf.c
  stable/11/lib/libc/stdio/tempnam.c
  stable/11/lib/libc/stdio/tmpfile.c
  stable/11/lib/libc/stdio/tmpnam.c
  stable/11/lib/libc/stdio/ungetc.c
  stable/11/lib/libc/stdio/ungetwc.c
  stable/11/lib/libc/stdio/vasprintf.c
  stable/11/lib/libc/stdio/vdprintf.c
  stable/11/lib/libc/stdio/vfprintf.c
  stable/11/lib/libc/stdio/vfscanf.c
  stable/11/lib/libc/stdio/vfwprintf.c
  stable/11/lib/libc/stdio/vfwscanf.c
  stable/11/lib/libc/stdio/vprintf.c
  stable/11/lib/libc/stdio/vscanf.c
  stable/11/lib/libc/stdio/vsnprintf.c
  stable/11/lib/libc/stdio/vsprintf.c
  stable/11/lib/libc/stdio/vsscanf.c
  stable/11/lib/libc/stdio/vswprintf.c
  stable/11/lib/libc/stdio/vswscanf.c
  stable/11/lib/libc/stdio/vwprintf.c
  stable/11/lib/libc/stdio/vwscanf.c
  stable/11/lib/libc/stdio/wbuf.c
  stable/11/lib/libc/stdio/wprintf.c
  stable/11/lib/libc/stdio/wscanf.c
  stable/11/lib/libc/stdio/wsetup.c
  stable/11/lib/libc/stdio/xprintf.c
  stable/11/lib/libc/stdio/xprintf_errno.c
  stable/11/lib/libc/stdio/xprintf_float.c
  stable/11/lib/libc/stdio/xprintf_hexdump.c
  stable/11/lib/libc/stdio/xprintf_int.c
  stable/11/lib/libc/stdio/xprintf_quote.c
  stable/11/lib/libc/stdio/xprintf_str.c
  stable/11/lib/libc/stdio/xprintf_time.c
  stable/11/lib/libc/stdio/xprintf_vis.c
  stable/11/lib/libc/stdlib/abort.c
  stable/11/lib/libc/stdlib/abs.c
  stable/11/lib/libc/stdlib/atexit.c
  stable/11/lib/libc/stdlib/atexit.h
  stable/11/lib/libc/stdlib/atof.c
  stable/11/lib/libc/stdlib/atoi.c
  stable/11/lib/libc/stdlib/atol.c
  stable/11/lib/libc/stdlib/atoll.c
  stable/11/lib/libc/stdlib/bsearch.c
  stable/11/lib/libc/stdlib/div.c
  stable/11/lib/libc/stdlib/exit.c
  stable/11/lib/libc/stdlib/getenv.c
  stable/11/lib/libc/stdlib/getopt.c
  stable/11/lib/libc/stdlib/getsubopt.c
  stable/11/lib/libc/stdlib/hcreate.c
  stable/11/lib/libc/stdlib/heapsort.c
  stable/11/lib/libc/stdlib/imaxabs.c
  stable/11/lib/libc/stdlib/imaxdiv.c
  stable/11/lib/libc/stdlib/labs.c
  stable/11/lib/libc/stdlib/ldiv.c
  stable/11/lib/libc/stdlib/llabs.c
  stable/11/lib/libc/stdlib/lldiv.c
  stable/11/lib/libc/stdlib/merge.c
  stable/11/lib/libc/stdlib/ptsname.c
  stable/11/lib/libc/stdlib/qsort.c
  stable/11/lib/libc/stdlib/quick_exit.c
  stable/11/lib/libc/stdlib/radixsort.c
  stable/11/lib/libc/stdlib/rand.c
  stable/11/lib/libc/stdlib/random.c
  stable/11/lib/libc/stdlib/reallocf.c
  stable/11/lib/libc/stdlib/realpath.c
  stable/11/lib/libc/stdlib/strfmon.c
  stable/11/lib/libc/stdlib/strtoimax.c
  stable/11/lib/libc/stdlib/strtol.c
  stable/11/lib/libc/stdlib/strtoll.c
  stable/11/lib/libc/stdlib/strtoq.c
  stable/11/lib/libc/stdlib/strtoul.c
  stable/11/lib/libc/stdlib/strtoull.c
  stable/11/lib/libc/stdlib/strtoumax.c
  stable/11/lib/libc/stdlib/strtouq.c
  stable/11/lib/libc/stdlib/system.c
  stable/11/lib/libc/stdtime/strptime.c
  stable/11/lib/libc/stdtime/timelocal.c
  stable/11/lib/libc/stdtime/timelocal.h
  stable/11/lib/libc/string/bcmp.c
  stable/11/lib/libc/string/bcopy.c
  stable/11/lib/libc/string/ffs.c
  stable/11/lib/libc/string/ffsl.c
  stable/11/lib/libc/string/ffsll.c
  stable/11/lib/libc/string/fls.c
  stable/11/lib/libc/string/flsl.c
  stable/11/lib/libc/string/flsll.c
  stable/11/lib/libc/string/memccpy.c
  stable/11/lib/libc/string/memchr.c
  stable/11/lib/libc/string/memcmp.c
  stable/11/lib/libc/string/memmem.c
  stable/11/lib/libc/string/memset.c
  stable/11/lib/libc/string/stpcpy.c
  stable/11/lib/libc/string/stpncpy.c
  stable/11/lib/libc/string/strcasecmp.c
  stable/11/lib/libc/string/strcasestr.c
  stable/11/lib/libc/string/strcat.c
  stable/11/lib/libc/string/strchr.c
  stable/11/lib/libc/string/strchrnul.c
  stable/11/lib/libc/string/strcmp.c
  stable/11/lib/libc/string/strcoll.c
  stable/11/lib/libc/string/strcpy.c
  stable/11/lib/libc/string/strcspn.c
  stable/11/lib/libc/string/strdup.c
  stable/11/lib/libc/string/strerror.c
  stable/11/lib/libc/string/strlen.c
  stable/11/lib/libc/string/strmode.c
  stable/11/lib/libc/string/strncat.c
  stable/11/lib/libc/string/strncmp.c
  stable/11/lib/libc/string/strncpy.c
  stable/11/lib/libc/string/strnlen.c
  stable/11/lib/libc/string/strnstr.c
  stable/11/lib/libc/string/strpbrk.c
  stable/11/lib/libc/string/strrchr.c
  stable/11/lib/libc/string/strsep.c
  stable/11/lib/libc/string/strsignal.c
  stable/11/lib/libc/string/strspn.c
  stable/11/lib/libc/string/strstr.c
  stable/11/lib/libc/string/strtok.c
  stable/11/lib/libc/string/strxfrm.c
  stable/11/lib/libc/string/swab.c
  stable/11/lib/libc/string/wcpcpy.c
  stable/11/lib/libc/string/wcpncpy.c
  stable/11/lib/libc/string/wcscasecmp.c
  stable/11/lib/libc/string/wcscat.c
  stable/11/lib/libc/string/wcschr.c
  stable/11/lib/libc/string/wcscmp.c
  stable/11/lib/libc/string/wcscoll.c
  stable/11/lib/libc/string/wcscpy.c
  stable/11/lib/libc/string/wcscspn.c
  stable/11/lib/libc/string/wcsdup.c
  stable/11/lib/libc/string/wcslcat.c
  stable/11/lib/libc/string/wcslcpy.c
  stable/11/lib/libc/string/wcslen.c
  stable/11/lib/libc/string/wcsncasecmp.c
  stable/11/lib/libc/string/wcsncat.c
  stable/11/lib/libc/string/wcsncmp.c
  stable/11/lib/libc/string/wcsncpy.c
  stable/11/lib/libc/string/wcsnlen.c
  stable/11/lib/libc/string/wcspbrk.c
  stable/11/lib/libc/string/wcsrchr.c
  stable/11/lib/libc/string/wcsspn.c
  stable/11/lib/libc/string/wcsstr.c
  stable/11/lib/libc/string/wcstok.c
  stable/11/lib/libc/string/wcswidth.c
  stable/11/lib/libc/string/wcsxfrm.c
  stable/11/lib/libc/string/wmemchr.c
  stable/11/lib/libc/string/wmemcmp.c
  stable/11/lib/libc/string/wmemcpy.c
  stable/11/lib/libc/string/wmemmove.c
  stable/11/lib/libc/string/wmemset.c
  stable/11/lib/libc/sys/__error.c
  stable/11/lib/libc/sys/__vdso_gettimeofday.c
  stable/11/lib/libc/sys/clock_gettime.c
  stable/11/lib/libc/sys/fcntl.c
  stable/11/lib/libc/sys/gettimeofday.c
  stable/11/lib/libc/sys/sigwait.c
  stable/11/lib/libc/uuid/uuid_compare.c
  stable/11/lib/libc/uuid/uuid_create.c
  stable/11/lib/libc/uuid/uuid_create_nil.c
  stable/11/lib/libc/uuid/uuid_equal.c
  stable/11/lib/libc/uuid/uuid_from_string.c
  stable/11/lib/libc/uuid/uuid_hash.c
  stable/11/lib/libc/uuid/uuid_is_nil.c
  stable/11/lib/libc/uuid/uuid_stream.c
  stable/11/lib/libc/uuid/uuid_to_string.c
  stable/11/lib/libc/xdr/xdr.c
  stable/11/lib/libc/xdr/xdr_array.c
  stable/11/lib/libc/xdr/xdr_float.c
  stable/11/lib/libc/xdr/xdr_mem.c
  stable/11/lib/libc/xdr/xdr_rec.c
  stable/11/lib/libc/xdr/xdr_reference.c
  stable/11/lib/libc/xdr/xdr_sizeof.c
  stable/11/lib/libc/xdr/xdr_stdio.c
  stable/11/lib/libc/yp/xdryp.c
  stable/11/lib/libc/yp/yplib.c
  stable/11/lib/libc_nonshared/__stub.c
  stable/11/lib/libcalendar/calendar.c
  stable/11/lib/libcalendar/calendar.h
  stable/11/lib/libcalendar/easter.c
  stable/11/lib/libcam/camlib.c
  stable/11/lib/libcam/camlib.h
  stable/11/lib/libcam/scsi_cmdparse.c
  stable/11/lib/libcompat/4.1/ftime.c
  stable/11/lib/libcompat/4.3/re_comp.c
  stable/11/lib/libcompat/4.3/rexec.c
  stable/11/lib/libcompat/4.4/cuserid.c
  stable/11/lib/libcrypt/crypt-md5.c
  stable/11/lib/libcrypt/crypt-nthash.c
  stable/11/lib/libcrypt/crypt-sha256.c
  stable/11/lib/libcrypt/crypt-sha512.c
  stable/11/lib/libcrypt/crypt.c
  stable/11/lib/libcrypt/crypt.h
  stable/11/lib/libcrypt/misc.c
  stable/11/lib/libdevinfo/devinfo.c
  stable/11/lib/libdevinfo/devinfo.h
  stable/11/lib/libdevinfo/devinfo_var.h
  stable/11/lib/libdevstat/devstat.c
  stable/11/lib/libdevstat/devstat.h
  stable/11/lib/libfetch/common.c
  stable/11/lib/libfetch/common.h
  stable/11/lib/libfetch/fetch.c
  stable/11/lib/libfetch/fetch.h
  stable/11/lib/libfetch/file.c
  stable/11/lib/libfetch/ftp.c
  stable/11/lib/libfetch/http.c
  stable/11/lib/libgeom/geom_ctl.c
  stable/11/lib/libgeom/geom_getxml.c
  stable/11/lib/libgeom/geom_stats.c
  stable/11/lib/libgeom/geom_util.c
  stable/11/lib/libgeom/geom_xml2tree.c
  stable/11/lib/libgeom/libgeom.h
  stable/11/lib/libgssapi/context.h
  stable/11/lib/libgssapi/cred.h
  stable/11/lib/libgssapi/gss_accept_sec_context.c
  stable/11/lib/libgssapi/gss_acquire_cred.c
  stable/11/lib/libgssapi/gss_add_cred.c
  stable/11/lib/libgssapi/gss_add_oid_set_member.c
  stable/11/lib/libgssapi/gss_buffer_set.c
  stable/11/lib/libgssapi/gss_canonicalize_name.c
  stable/11/lib/libgssapi/gss_compare_name.c
  stable/11/lib/libgssapi/gss_context_time.c
  stable/11/lib/libgssapi/gss_create_empty_oid_set.c
  stable/11/lib/libgssapi/gss_decapsulate_token.c
  stable/11/lib/libgssapi/gss_delete_sec_context.c
  stable/11/lib/libgssapi/gss_display_name.c
  stable/11/lib/libgssapi/gss_display_status.c
  stable/11/lib/libgssapi/gss_duplicate_name.c
  stable/11/lib/libgssapi/gss_duplicate_oid.c
  stable/11/lib/libgssapi/gss_encapsulate_token.c
  stable/11/lib/libgssapi/gss_export_name.c
  stable/11/lib/libgssapi/gss_export_sec_context.c
  stable/11/lib/libgssapi/gss_get_mic.c
  stable/11/lib/libgssapi/gss_import_name.c
  stable/11/lib/libgssapi/gss_import_sec_context.c
  stable/11/lib/libgssapi/gss_indicate_mechs.c
  stable/11/lib/libgssapi/gss_init_sec_context.c
  stable/11/lib/libgssapi/gss_inquire_context.c
  stable/11/lib/libgssapi/gss_inquire_cred.c
  stable/11/lib/libgssapi/gss_inquire_cred_by_mech.c
  stable/11/lib/libgssapi/gss_inquire_cred_by_oid.c
  stable/11/lib/libgssapi/gss_inquire_mechs_for_name.c
  stable/11/lib/libgssapi/gss_inquire_names_for_mech.c
  stable/11/lib/libgssapi/gss_inquire_sec_context_by_oid.c
  stable/11/lib/libgssapi/gss_krb5.c
  stable/11/lib/libgssapi/gss_mech_switch.c
  stable/11/lib/libgssapi/gss_names.c
  stable/11/lib/libgssapi/gss_oid_to_str.c
  stable/11/lib/libgssapi/gss_pname_to_uid.c
  stable/11/lib/libgssapi/gss_process_context_token.c
  stable/11/lib/libgssapi/gss_pseudo_random.c
  stable/11/lib/libgssapi/gss_release_buffer.c
  stable/11/lib/libgssapi/gss_release_cred.c
  stable/11/lib/libgssapi/gss_release_name.c
  stable/11/lib/libgssapi/gss_release_oid.c
  stable/11/lib/libgssapi/gss_release_oid_set.c
  stable/11/lib/libgssapi/gss_seal.c
  stable/11/lib/libgssapi/gss_set_cred_option.c
  stable/11/lib/libgssapi/gss_set_sec_context_option.c
  stable/11/lib/libgssapi/gss_sign.c
  stable/11/lib/libgssapi/gss_test_oid_set_member.c
  stable/11/lib/libgssapi/gss_unseal.c
  stable/11/lib/libgssapi/gss_unwrap.c
  stable/11/lib/libgssapi/gss_utils.c
  stable/11/lib/libgssapi/gss_verify.c
  stable/11/lib/libgssapi/gss_verify_mic.c
  stable/11/lib/libgssapi/gss_wrap.c
  stable/11/lib/libgssapi/gss_wrap_size_limit.c
  stable/11/lib/libgssapi/mech_switch.h
  stable/11/lib/libgssapi/name.h
  stable/11/lib/libgssapi/spnego.h
  stable/11/lib/libgssapi/utils.h
  stable/11/lib/libiconv_modules/BIG5/citrus_big5.c
  stable/11/lib/libiconv_modules/BIG5/citrus_big5.h
  stable/11/lib/libiconv_modules/DECHanyu/citrus_dechanyu.c
  stable/11/lib/libiconv_modules/DECHanyu/citrus_dechanyu.h
  stable/11/lib/libiconv_modules/EUC/citrus_euc.c
  stable/11/lib/libiconv_modules/EUC/citrus_euc.h
  stable/11/lib/libiconv_modules/EUCTW/citrus_euctw.c
  stable/11/lib/libiconv_modules/EUCTW/citrus_euctw.h
  stable/11/lib/libiconv_modules/GBK2K/citrus_gbk2k.c
  stable/11/lib/libiconv_modules/GBK2K/citrus_gbk2k.h
  stable/11/lib/libiconv_modules/HZ/citrus_hz.c
  stable/11/lib/libiconv_modules/HZ/citrus_hz.h
  stable/11/lib/libiconv_modules/ISO2022/citrus_iso2022.c
  stable/11/lib/libiconv_modules/ISO2022/citrus_iso2022.h
  stable/11/lib/libiconv_modules/JOHAB/citrus_johab.c
  stable/11/lib/libiconv_modules/JOHAB/citrus_johab.h
  stable/11/lib/libiconv_modules/MSKanji/citrus_mskanji.c
  stable/11/lib/libiconv_modules/MSKanji/citrus_mskanji.h
  stable/11/lib/libiconv_modules/UES/citrus_ues.c
  stable/11/lib/libiconv_modules/UES/citrus_ues.h
  stable/11/lib/libiconv_modules/UTF1632/citrus_utf1632.c
  stable/11/lib/libiconv_modules/UTF1632/citrus_utf1632.h
  stable/11/lib/libiconv_modules/UTF7/citrus_utf7.c
  stable/11/lib/libiconv_modules/UTF7/citrus_utf7.h
  stable/11/lib/libiconv_modules/UTF8/citrus_utf8.c
  stable/11/lib/libiconv_modules/UTF8/citrus_utf8.h
  stable/11/lib/libiconv_modules/VIQR/citrus_viqr.c
  stable/11/lib/libiconv_modules/VIQR/citrus_viqr.h
  stable/11/lib/libiconv_modules/ZW/citrus_zw.c
  stable/11/lib/libiconv_modules/ZW/citrus_zw.h
  stable/11/lib/libiconv_modules/iconv_none/citrus_iconv_none.c
  stable/11/lib/libiconv_modules/iconv_none/citrus_iconv_none.h
  stable/11/lib/libiconv_modules/iconv_std/citrus_iconv_std.c
  stable/11/lib/libiconv_modules/iconv_std/citrus_iconv_std.h
  stable/11/lib/libiconv_modules/iconv_std/citrus_iconv_std_local.h
  stable/11/lib/libiconv_modules/mapper_646/citrus_mapper_646.c
  stable/11/lib/libiconv_modules/mapper_646/citrus_mapper_646.h
  stable/11/lib/libiconv_modules/mapper_none/citrus_mapper_none.c
  stable/11/lib/libiconv_modules/mapper_none/citrus_mapper_none.h
  stable/11/lib/libiconv_modules/mapper_serial/citrus_mapper_serial.c
  stable/11/lib/libiconv_modules/mapper_serial/citrus_mapper_serial.h
  stable/11/lib/libiconv_modules/mapper_std/citrus_mapper_std.c
  stable/11/lib/libiconv_modules/mapper_std/citrus_mapper_std.h
  stable/11/lib/libiconv_modules/mapper_std/citrus_mapper_std_file.h
  stable/11/lib/libiconv_modules/mapper_std/citrus_mapper_std_local.h
  stable/11/lib/libiconv_modules/mapper_zone/citrus_mapper_zone.c
  stable/11/lib/libiconv_modules/mapper_zone/citrus_mapper_zone.h
  stable/11/lib/libipsec/ipsec_dump_policy.c
  stable/11/lib/libipsec/ipsec_get_policylen.c
  stable/11/lib/libipsec/ipsec_strerror.c
  stable/11/lib/libipsec/ipsec_strerror.h
  stable/11/lib/libipsec/libpfkey.h
  stable/11/lib/libipsec/pfkey.c
  stable/11/lib/libipsec/pfkey_dump.c
  stable/11/lib/libipsec/policy_parse.y
  stable/11/lib/libipsec/policy_token.l
  stable/11/lib/libipsec/test-policy.c
  stable/11/lib/libjail/jail.c
  stable/11/lib/libjail/jail.h
  stable/11/lib/libjail/jail_getid.c
  stable/11/lib/libkiconv/kiconv_sysctl.c
  stable/11/lib/libkiconv/quirks.c
  stable/11/lib/libkiconv/quirks.h
  stable/11/lib/libkiconv/xlat16_iconv.c
  stable/11/lib/libkiconv/xlat16_sysctl.c
  stable/11/lib/libkvm/kvm.c
  stable/11/lib/libkvm/kvm.h
  stable/11/lib/libkvm/kvm_amd64.c
  stable/11/lib/libkvm/kvm_arm.c
  stable/11/lib/libkvm/kvm_cptime.c
  stable/11/lib/libkvm/kvm_getloadavg.c
  stable/11/lib/libkvm/kvm_getswapinfo.c
  stable/11/lib/libkvm/kvm_i386.c
  stable/11/lib/libkvm/kvm_minidump_amd64.c
  stable/11/lib/libkvm/kvm_minidump_arm.c
  stable/11/lib/libkvm/kvm_minidump_i386.c
  stable/11/lib/libkvm/kvm_minidump_mips.c
  stable/11/lib/libkvm/kvm_pcpu.c
  stable/11/lib/libkvm/kvm_powerpc.c
  stable/11/lib/libkvm/kvm_powerpc64.c
  stable/11/lib/libkvm/kvm_private.h
  stable/11/lib/libkvm/kvm_proc.c
  stable/11/lib/libkvm/kvm_sparc64.c
  stable/11/lib/libkvm/kvm_vnet.c
  stable/11/lib/libmemstat/memstat.c
  stable/11/lib/libmemstat/memstat.h
  stable/11/lib/libmemstat/memstat_all.c
  stable/11/lib/libmemstat/memstat_internal.h
  stable/11/lib/libmemstat/memstat_malloc.c
  stable/11/lib/libmemstat/memstat_uma.c
  stable/11/lib/libmp/mpasbn.c
  stable/11/lib/libnandfs/libnandfs.h
  stable/11/lib/libnandfs/nandfs.c
  stable/11/lib/libnetbsd/rmd160.h
  stable/11/lib/libnetbsd/sha1.h
  stable/11/lib/libnetbsd/sha2.h
  stable/11/lib/libnetbsd/stdlib.h
  stable/11/lib/libnetbsd/strsuftoll.c
  stable/11/lib/libnetbsd/sys/cdefs.h
  stable/11/lib/libnetbsd/util.c
  stable/11/lib/libnetbsd/util.h
  stable/11/lib/libnv/common_impl.h
  stable/11/lib/libnv/msgio.c
  stable/11/lib/libnv/msgio.h
  stable/11/lib/libpam/libpam/security/pam_mod_misc.h
  stable/11/lib/libpam/modules/pam_chroot/pam_chroot.c
  stable/11/lib/libpam/modules/pam_deny/pam_deny.c
  stable/11/lib/libpam/modules/pam_echo/pam_echo.c
  stable/11/lib/libpam/modules/pam_exec/pam_exec.c
  stable/11/lib/libpam/modules/pam_ftpusers/pam_ftpusers.c
  stable/11/lib/libpam/modules/pam_group/pam_group.c
  stable/11/lib/libpam/modules/pam_guest/pam_guest.c
  stable/11/lib/libpam/modules/pam_ksu/pam_ksu.c
  stable/11/lib/libpam/modules/pam_lastlog/pam_lastlog.c
  stable/11/lib/libpam/modules/pam_login_access/pam_login_access.c
  stable/11/lib/libpam/modules/pam_login_access/pam_login_access.h
  stable/11/lib/libpam/modules/pam_nologin/pam_nologin.c
  stable/11/lib/libpam/modules/pam_opie/pam_opie.c
  stable/11/lib/libpam/modules/pam_opieaccess/pam_opieaccess.c
  stable/11/lib/libpam/modules/pam_permit/pam_permit.c
  stable/11/lib/libpam/modules/pam_radius/pam_radius.c
  stable/11/lib/libpam/modules/pam_rhosts/pam_rhosts.c
  stable/11/lib/libpam/modules/pam_rootok/pam_rootok.c
  stable/11/lib/libpam/modules/pam_securetty/pam_securetty.c
  stable/11/lib/libpam/modules/pam_self/pam_self.c
  stable/11/lib/libpam/modules/pam_ssh/pam_ssh.c
  stable/11/lib/libpam/modules/pam_tacplus/pam_tacplus.c
  stable/11/lib/libpam/modules/pam_unix/pam_unix.c
  stable/11/lib/libpjdlog/pjdlog.c
  stable/11/lib/libpjdlog/pjdlog.h
  stable/11/lib/libpmc/libpmc.c
  stable/11/lib/libpmc/libpmcinternal.h
  stable/11/lib/libpmc/pmc.h
  stable/11/lib/libpmc/pmclog.c
  stable/11/lib/libpmc/pmclog.h
  stable/11/lib/libprocstat/cd9660.c
  stable/11/lib/libprocstat/common_kvm.c
  stable/11/lib/libprocstat/common_kvm.h
  stable/11/lib/libprocstat/core.c
  stable/11/lib/libprocstat/core.h
  stable/11/lib/libprocstat/libprocstat.c
  stable/11/lib/libprocstat/libprocstat.h
  stable/11/lib/libprocstat/libprocstat_internal.h
  stable/11/lib/libprocstat/msdosfs.c
  stable/11/lib/libprocstat/smbfs.c
  stable/11/lib/libprocstat/udf.c
  stable/11/lib/libprocstat/zfs.c
  stable/11/lib/libradius/radlib.c
  stable/11/lib/libradius/radlib.h
  stable/11/lib/libradius/radlib_private.h
  stable/11/lib/libradius/radlib_vs.h
  stable/11/lib/librpcsec_gss/rpcsec_gss.c
  stable/11/lib/librpcsec_gss/rpcsec_gss_conf.c
  stable/11/lib/librpcsec_gss/rpcsec_gss_int.h
  stable/11/lib/librpcsec_gss/rpcsec_gss_misc.c
  stable/11/lib/librpcsec_gss/rpcsec_gss_prot.c
  stable/11/lib/librpcsec_gss/svc_rpcsec_gss.c
  stable/11/lib/librpcsvc/yp_passwd.c
  stable/11/lib/librpcsvc/yp_update.c
  stable/11/lib/librt/aio.c
  stable/11/lib/librt/mq.c
  stable/11/lib/librt/sigev_thread.c
  stable/11/lib/librt/sigev_thread.h
  stable/11/lib/librt/timer.c
  stable/11/lib/librtld_db/rtld_db.c
  stable/11/lib/librtld_db/rtld_db.h
  stable/11/lib/libsdp/sdp-int.h
  stable/11/lib/libsdp/sdp.h
  stable/11/lib/libsdp/search.c
  stable/11/lib/libsdp/service.c
  stable/11/lib/libsdp/session.c
  stable/11/lib/libsdp/util.c
  stable/11/lib/libstdbuf/stdbuf.c
  stable/11/lib/libstdthreads/call_once.c
  stable/11/lib/libstdthreads/cnd.c
  stable/11/lib/libstdthreads/mtx.c
  stable/11/lib/libstdthreads/thrd.c
  stable/11/lib/libstdthreads/threads.h
  stable/11/lib/libstdthreads/tss.c
  stable/11/lib/libtacplus/taclib.c
  stable/11/lib/libtacplus/taclib.h
  stable/11/lib/libtacplus/taclib_private.h
  stable/11/lib/libthr/arch/amd64/include/pthread_md.h
  stable/11/lib/libthr/arch/arm/include/pthread_md.h
  stable/11/lib/libthr/arch/i386/include/pthread_md.h
  stable/11/lib/libthr/arch/mips/include/pthread_md.h
  stable/11/lib/libthr/arch/powerpc/include/pthread_md.h
  stable/11/lib/libthr/arch/sparc64/include/pthread_md.h
  stable/11/lib/libthr/sys/thr_error.c
  stable/11/lib/libthr/thread/thr_affinity.c
  stable/11/lib/libthr/thread/thr_attr.c
  stable/11/lib/libthr/thread/thr_autoinit.c
  stable/11/lib/libthr/thread/thr_barrier.c
  stable/11/lib/libthr/thread/thr_barrierattr.c
  stable/11/lib/libthr/thread/thr_cancel.c
  stable/11/lib/libthr/thread/thr_clean.c
  stable/11/lib/libthr/thread/thr_concurrency.c
  stable/11/lib/libthr/thread/thr_cond.c
  stable/11/lib/libthr/thread/thr_condattr.c
  stable/11/lib/libthr/thread/thr_create.c
  stable/11/lib/libthr/thread/thr_detach.c
  stable/11/lib/libthr/thread/thr_equal.c
  stable/11/lib/libthr/thread/thr_event.c
  stable/11/lib/libthr/thread/thr_exit.c
  stable/11/lib/libthr/thread/thr_fork.c
  stable/11/lib/libthr/thread/thr_getcpuclockid.c
  stable/11/lib/libthr/thread/thr_getprio.c
  stable/11/lib/libthr/thread/thr_getschedparam.c
  stable/11/lib/libthr/thread/thr_getthreadid_np.c
  stable/11/lib/libthr/thread/thr_info.c
  stable/11/lib/libthr/thread/thr_init.c
  stable/11/lib/libthr/thread/thr_join.c
  stable/11/lib/libthr/thread/thr_kern.c
  stable/11/lib/libthr/thread/thr_kill.c
  stable/11/lib/libthr/thread/thr_list.c
  stable/11/lib/libthr/thread/thr_main_np.c
  stable/11/lib/libthr/thread/thr_multi_np.c
  stable/11/lib/libthr/thread/thr_mutex.c
  stable/11/lib/libthr/thread/thr_mutexattr.c
  stable/11/lib/libthr/thread/thr_once.c
  stable/11/lib/libthr/thread/thr_printf.c
  stable/11/lib/libthr/thread/thr_private.h
  stable/11/lib/libthr/thread/thr_pspinlock.c
  stable/11/lib/libthr/thread/thr_resume_np.c
  stable/11/lib/libthr/thread/thr_rtld.c
  stable/11/lib/libthr/thread/thr_rwlock.c
  stable/11/lib/libthr/thread/thr_rwlockattr.c
  stable/11/lib/libthr/thread/thr_self.c
  stable/11/lib/libthr/thread/thr_sem.c
  stable/11/lib/libthr/thread/thr_setprio.c
  stable/11/lib/libthr/thread/thr_setschedparam.c
  stable/11/lib/libthr/thread/thr_sig.c
  stable/11/lib/libthr/thread/thr_single_np.c
  stable/11/lib/libthr/thread/thr_sleepq.c
  stable/11/lib/libthr/thread/thr_spec.c
  stable/11/lib/libthr/thread/thr_spinlock.c
  stable/11/lib/libthr/thread/thr_stack.c
  stable/11/lib/libthr/thread/thr_suspend_np.c
  stable/11/lib/libthr/thread/thr_switch_np.c
  stable/11/lib/libthr/thread/thr_symbols.c
  stable/11/lib/libthr/thread/thr_syscalls.c
  stable/11/lib/libthr/thread/thr_umtx.c
  stable/11/lib/libthr/thread/thr_umtx.h
  stable/11/lib/libthr/thread/thr_yield.c
  stable/11/lib/libthread_db/arch/amd64/libpthread_md.c
  stable/11/lib/libthread_db/arch/arm/libpthread_md.c
  stable/11/lib/libthread_db/arch/i386/libpthread_md.c
  stable/11/lib/libthread_db/arch/mips/libpthread_md.c
  stable/11/lib/libthread_db/arch/powerpc/libpthread_md.c
  stable/11/lib/libthread_db/arch/sparc64/libpthread_md.c
  stable/11/lib/libthread_db/kse.h
  stable/11/lib/libthread_db/libpthread_db.c
  stable/11/lib/libthread_db/libpthread_db.h
  stable/11/lib/libthread_db/libthr_db.c
  stable/11/lib/libthread_db/thread_db.c
  stable/11/lib/libthread_db/thread_db.h
  stable/11/lib/libthread_db/thread_db_int.h
  stable/11/lib/libufs/block.c
  stable/11/lib/libufs/cgroup.c
  stable/11/lib/libufs/inode.c
  stable/11/lib/libufs/libufs.h
  stable/11/lib/libufs/sblock.c
  stable/11/lib/libufs/type.c
  stable/11/lib/libugidfw/ugidfw.c
  stable/11/lib/libugidfw/ugidfw.h
  stable/11/lib/libulog/ulog.h
  stable/11/lib/libulog/ulog_login.c
  stable/11/lib/libulog/ulog_login_pseudo.c
  stable/11/lib/libulog/utempter.c
  stable/11/lib/libulog/utempter.h
  stable/11/lib/libusb/libusb.h
  stable/11/lib/libusb/libusb01.c
  stable/11/lib/libusb/libusb10.c
  stable/11/lib/libusb/libusb10.h
  stable/11/lib/libusb/libusb10_desc.c
  stable/11/lib/libusb/libusb10_io.c
  stable/11/lib/libusb/libusb20.c
  stable/11/lib/libusb/libusb20.h
  stable/11/lib/libusb/libusb20_desc.c
  stable/11/lib/libusb/libusb20_desc.h
  stable/11/lib/libusb/libusb20_int.h
  stable/11/lib/libusb/libusb20_ugen20.c
  stable/11/lib/libusb/libusb_global_linux.h
  stable/11/lib/libusb/usb.h
  stable/11/lib/libusbhid/data.c
  stable/11/lib/libusbhid/descr.c
  stable/11/lib/libusbhid/descr_compat.c
  stable/11/lib/libusbhid/parse.c
  stable/11/lib/libusbhid/usage.c
  stable/11/lib/libusbhid/usbhid.h
  stable/11/lib/libusbhid/usbvar.h
  stable/11/lib/libutil/auth.c
  stable/11/lib/libutil/expand_number.c
  stable/11/lib/libutil/fparseln.c
  stable/11/lib/libutil/gr_util.c
  stable/11/lib/libutil/hexdump.c
  stable/11/lib/libutil/humanize_number.c
  stable/11/lib/libutil/kinfo_getallproc.c
  stable/11/lib/libutil/kinfo_getproc.c
  stable/11/lib/libutil/kld.c
  stable/11/lib/libutil/libutil.h
  stable/11/lib/libutil/login_crypt.c
  stable/11/lib/libutil/login_tty.c
  stable/11/lib/libutil/pidfile.c
  stable/11/lib/libutil/property.c
  stable/11/lib/libutil/pty.c
  stable/11/lib/libutil/pw_util.c
  stable/11/lib/libutil/quotafile.c
  stable/11/lib/libutil/realhostname.c
  stable/11/lib/libutil/stub.c
  stable/11/lib/libutil/trimdomain.c
  stable/11/lib/libutil/uucplock.c
  stable/11/lib/libvgl/bitmap.c
  stable/11/lib/libvgl/keyboard.c
  stable/11/lib/libvgl/main.c
  stable/11/lib/libvgl/mouse.c
  stable/11/lib/libvgl/simple.c
  stable/11/lib/libvgl/text.c
  stable/11/lib/libvgl/vgl.h
  stable/11/lib/libvmmapi/vmmapi.c
  stable/11/lib/libvmmapi/vmmapi.h
  stable/11/lib/libvmmapi/vmmapi_freebsd.c
  stable/11/lib/liby/main.c
  stable/11/lib/liby/yyerror.c
  stable/11/lib/libypclnt/ypclnt.h
  stable/11/lib/libypclnt/ypclnt_connect.c
  stable/11/lib/libypclnt/ypclnt_error.c
  stable/11/lib/libypclnt/ypclnt_free.c
  stable/11/lib/libypclnt/ypclnt_get.c
  stable/11/lib/libypclnt/ypclnt_new.c
  stable/11/lib/libypclnt/ypclnt_passwd.c
  stable/11/lib/msun/amd64/fenv.c
  stable/11/lib/msun/arm/fenv.c
  stable/11/lib/msun/arm/fenv.h
  stable/11/lib/msun/bsdsrc/b_exp.c
  stable/11/lib/msun/bsdsrc/b_log.c
  stable/11/lib/msun/bsdsrc/b_tgamma.c
  stable/11/lib/msun/bsdsrc/mathimpl.h
  stable/11/lib/msun/i387/fenv.c
  stable/11/lib/msun/i387/invtrig.c
  stable/11/lib/msun/ld128/invtrig.c
  stable/11/lib/msun/ld128/invtrig.h
  stable/11/lib/msun/ld128/k_expl.h
  stable/11/lib/msun/ld128/s_exp2l.c
  stable/11/lib/msun/ld128/s_expl.c
  stable/11/lib/msun/ld128/s_logl.c
  stable/11/lib/msun/ld128/s_nanl.c
  stable/11/lib/msun/ld80/invtrig.c
  stable/11/lib/msun/ld80/invtrig.h
  stable/11/lib/msun/ld80/k_expl.h
  stable/11/lib/msun/ld80/s_exp2l.c
  stable/11/lib/msun/ld80/s_expl.c
  stable/11/lib/msun/ld80/s_logl.c
  stable/11/lib/msun/ld80/s_nanl.c
  stable/11/lib/msun/mips/fenv.c
  stable/11/lib/msun/mips/fenv.h
  stable/11/lib/msun/powerpc/fenv.c
  stable/11/lib/msun/powerpc/fenv.h
  stable/11/lib/msun/sparc64/fenv.c
  stable/11/lib/msun/sparc64/fenv.h
  stable/11/lib/msun/src/catrig.c
  stable/11/lib/msun/src/catrigf.c
  stable/11/lib/msun/src/e_remainderl.c
  stable/11/lib/msun/src/e_sqrtl.c
  stable/11/lib/msun/src/fenv-softfloat.h
  stable/11/lib/msun/src/imprecise.c
  stable/11/lib/msun/src/k_exp.c
  stable/11/lib/msun/src/k_expf.c
  stable/11/lib/msun/src/s_carg.c
  stable/11/lib/msun/src/s_cargf.c
  stable/11/lib/msun/src/s_cargl.c
  stable/11/lib/msun/src/s_ccosh.c
  stable/11/lib/msun/src/s_ccoshf.c
  stable/11/lib/msun/src/s_cexp.c
  stable/11/lib/msun/src/s_cexpf.c
  stable/11/lib/msun/src/s_cimag.c
  stable/11/lib/msun/src/s_cimagf.c
  stable/11/lib/msun/src/s_cimagl.c
  stable/11/lib/msun/src/s_conj.c
  stable/11/lib/msun/src/s_conjf.c
  stable/11/lib/msun/src/s_conjl.c
  stable/11/lib/msun/src/s_copysignl.c
  stable/11/lib/msun/src/s_cosl.c
  stable/11/lib/msun/src/s_cproj.c
  stable/11/lib/msun/src/s_cprojf.c
  stable/11/lib/msun/src/s_cprojl.c
  stable/11/lib/msun/src/s_creal.c
  stable/11/lib/msun/src/s_crealf.c
  stable/11/lib/msun/src/s_creall.c
  stable/11/lib/msun/src/s_csinh.c
  stable/11/lib/msun/src/s_csinhf.c
  stable/11/lib/msun/src/s_csqrt.c
  stable/11/lib/msun/src/s_csqrtf.c
  stable/11/lib/msun/src/s_csqrtl.c
  stable/11/lib/msun/src/s_ctanh.c
  stable/11/lib/msun/src/s_ctanhf.c
  stable/11/lib/msun/src/s_exp2.c
  stable/11/lib/msun/src/s_exp2f.c
  stable/11/lib/msun/src/s_fabsl.c
  stable/11/lib/msun/src/s_fdim.c
  stable/11/lib/msun/src/s_fma.c
  stable/11/lib/msun/src/s_fmaf.c
  stable/11/lib/msun/src/s_fmal.c
  stable/11/lib/msun/src/s_fmax.c
  stable/11/lib/msun/src/s_fmaxf.c
  stable/11/lib/msun/src/s_fmaxl.c
  stable/11/lib/msun/src/s_fmin.c
  stable/11/lib/msun/src/s_fminf.c
  stable/11/lib/msun/src/s_fminl.c
  stable/11/lib/msun/src/s_frexpl.c
  stable/11/lib/msun/src/s_isfinite.c
  stable/11/lib/msun/src/s_isnan.c
  stable/11/lib/msun/src/s_isnormal.c
  stable/11/lib/msun/src/s_lrint.c
  stable/11/lib/msun/src/s_lround.c
  stable/11/lib/msun/src/s_modfl.c
  stable/11/lib/msun/src/s_nan.c
  stable/11/lib/msun/src/s_nearbyint.c
  stable/11/lib/msun/src/s_rintl.c
  stable/11/lib/msun/src/s_round.c
  stable/11/lib/msun/src/s_roundf.c
  stable/11/lib/msun/src/s_roundl.c
  stable/11/lib/msun/src/s_scalbln.c
  stable/11/lib/msun/src/s_signbit.c
  stable/11/lib/msun/src/s_sinl.c
  stable/11/lib/msun/src/s_tanl.c
  stable/11/lib/msun/src/s_tgammaf.c
  stable/11/lib/msun/x86/fenv.h
  stable/11/lib/ncurses/ncurses/pathnames.h
  stable/11/lib/ncurses/ncurses/termcap.c
  stable/11/libexec/bootpd/rtmsg.c
  stable/11/libexec/comsat/comsat.c
  stable/11/libexec/fingerd/fingerd.c
  stable/11/libexec/fingerd/pathnames.h
  stable/11/libexec/ftpd/extern.h
  stable/11/libexec/ftpd/ftpcmd.y
  stable/11/libexec/ftpd/ftpd.c
  stable/11/libexec/ftpd/logwtmp.c
  stable/11/libexec/ftpd/pathnames.h
  stable/11/libexec/ftpd/popen.c
  stable/11/libexec/getty/extern.h
  stable/11/libexec/getty/gettytab.h
  stable/11/libexec/getty/init.c
  stable/11/libexec/getty/main.c
  stable/11/libexec/getty/pathnames.h
  stable/11/libexec/getty/subr.c
  stable/11/libexec/mknetid/hash.c
  stable/11/libexec/mknetid/hash.h
  stable/11/libexec/mknetid/mknetid.c
  stable/11/libexec/mknetid/parse_group.c
  stable/11/libexec/rbootd/bpf.c
  stable/11/libexec/rbootd/conf.c
  stable/11/libexec/rbootd/defs.h
  stable/11/libexec/rbootd/parseconf.c
  stable/11/libexec/rbootd/pathnames.h
  stable/11/libexec/rbootd/rbootd.c
  stable/11/libexec/rbootd/rmp.h
  stable/11/libexec/rbootd/rmp_var.h
  stable/11/libexec/rbootd/rmpproto.c
  stable/11/libexec/rbootd/utils.c
  stable/11/libexec/revnetgroup/hash.c
  stable/11/libexec/revnetgroup/hash.h
  stable/11/libexec/revnetgroup/parse_netgroup.c
  stable/11/libexec/revnetgroup/revnetgroup.c
  stable/11/libexec/rpc.rstatd/rstatd.c
  stable/11/libexec/rpc.rusersd/extern.h
  stable/11/libexec/rpc.rusersd/rusers_proc.c
  stable/11/libexec/rpc.rusersd/rusersd.c
  stable/11/libexec/rtld-elf/malloc.c
  stable/11/libexec/rtld-elf/rtld_printf.c
  stable/11/libexec/talkd/announce.c
  stable/11/libexec/talkd/print.c
  stable/11/libexec/talkd/process.c
  stable/11/libexec/talkd/table.c
  stable/11/libexec/talkd/talkd.c
  stable/11/libexec/tftpd/tftpd.c
  stable/11/libexec/ypxfr/yp_dbwrite.c
  stable/11/libexec/ypxfr/ypxfr_extern.h
  stable/11/libexec/ypxfr/ypxfr_getmap.c
  stable/11/libexec/ypxfr/ypxfr_main.c
  stable/11/libexec/ypxfr/ypxfr_misc.c
  stable/11/libexec/ypxfr/ypxfrd_getmap.c
  stable/11/release/picobsd/tinyware/login/pathnames.h
  stable/11/release/picobsd/tinyware/login/pico-login.c
  stable/11/release/picobsd/tinyware/passwd/extern.h
  stable/11/release/picobsd/tinyware/passwd/local_passwd.c
  stable/11/release/picobsd/tinyware/passwd/passwd.c
  stable/11/release/picobsd/tinyware/passwd/pw_copy.c
  stable/11/release/picobsd/tinyware/passwd/pw_util.c
  stable/11/release/picobsd/tinyware/passwd/pw_util.h
  stable/11/sbin/bsdlabel/bsdlabel.c
  stable/11/sbin/bsdlabel/pathnames.h
  stable/11/sbin/clri/clri.c
  stable/11/sbin/devd/devd.cc
  stable/11/sbin/dhclient/alloc.c
  stable/11/sbin/dhclient/bpf.c
  stable/11/sbin/dhclient/clparse.c
  stable/11/sbin/dhclient/conflex.c
  stable/11/sbin/dhclient/convert.c
  stable/11/sbin/dhclient/dhclient.c
  stable/11/sbin/dhclient/dhcp.h
  stable/11/sbin/dhclient/dhcpd.h
  stable/11/sbin/dhclient/dispatch.c
  stable/11/sbin/dhclient/errwarn.c
  stable/11/sbin/dhclient/hash.c
  stable/11/sbin/dhclient/inet.c
  stable/11/sbin/dhclient/options.c
  stable/11/sbin/dhclient/packet.c
  stable/11/sbin/dhclient/parse.c
  stable/11/sbin/dhclient/tables.c
  stable/11/sbin/dhclient/tree.c
  stable/11/sbin/dmesg/dmesg.c
  stable/11/sbin/dump/dump.h
  stable/11/sbin/dump/dumprmt.c
  stable/11/sbin/dump/itime.c
  stable/11/sbin/dump/main.c
  stable/11/sbin/dump/optr.c
  stable/11/sbin/dump/pathnames.h
  stable/11/sbin/dump/tape.c
  stable/11/sbin/dump/traverse.c
  stable/11/sbin/dump/unctime.c
  stable/11/sbin/dumpfs/dumpfs.c
  stable/11/sbin/dumpon/dumpon.c
  stable/11/sbin/etherswitchcfg/ifmedia.c
  stable/11/sbin/ffsinfo/ffsinfo.c
  stable/11/sbin/fsck/fsck.c
  stable/11/sbin/fsck/fsutil.c
  stable/11/sbin/fsck/preen.c
  stable/11/sbin/fsck_ffs/dir.c
  stable/11/sbin/fsck_ffs/fsck.h
  stable/11/sbin/fsck_ffs/fsutil.c
  stable/11/sbin/fsck_ffs/gjournal.c
  stable/11/sbin/fsck_ffs/globs.c
  stable/11/sbin/fsck_ffs/inode.c
  stable/11/sbin/fsck_ffs/main.c
  stable/11/sbin/fsck_ffs/pass1.c
  stable/11/sbin/fsck_ffs/pass1b.c
  stable/11/sbin/fsck_ffs/pass2.c
  stable/11/sbin/fsck_ffs/pass3.c
  stable/11/sbin/fsck_ffs/pass4.c
  stable/11/sbin/fsck_ffs/pass5.c
  stable/11/sbin/fsck_ffs/setup.c
  stable/11/sbin/fsck_ffs/utilities.c
  stable/11/sbin/growfs/debug.c
  stable/11/sbin/growfs/debug.h
  stable/11/sbin/growfs/growfs.c
  stable/11/sbin/gvinum/gvinum.h
  stable/11/sbin/ifconfig/af_inet.c
  stable/11/sbin/ifconfig/af_inet6.c
  stable/11/sbin/ifconfig/af_link.c
  stable/11/sbin/ifconfig/ifclone.c
  stable/11/sbin/ifconfig/ifconfig.c
  stable/11/sbin/ifconfig/ifmedia.c
  stable/11/sbin/ifconfig/ifvlan.c
  stable/11/sbin/init/init.c
  stable/11/sbin/init/pathnames.h
  stable/11/sbin/mknod/mknod.c
  stable/11/sbin/mount/getmntopts.c
  stable/11/sbin/mount/mntopts.h
  stable/11/sbin/mount/mount.c
  stable/11/sbin/mount/mount_fs.c
  stable/11/sbin/mount/pathnames.h
  stable/11/sbin/mount/vfslist.c
  stable/11/sbin/mount_cd9660/mount_cd9660.c
  stable/11/sbin/mount_nfs/mount_nfs.c
  stable/11/sbin/mount_nullfs/mount_nullfs.c
  stable/11/sbin/mount_udf/mount_udf.c
  stable/11/sbin/mount_unionfs/mount_unionfs.c
  stable/11/sbin/newfs/mkfs.c
  stable/11/sbin/newfs/newfs.c
  stable/11/sbin/newfs/newfs.h
  stable/11/sbin/nfsiod/nfsiod.c
  stable/11/sbin/ping/ping.c
  stable/11/sbin/ping6/ping6.c
  stable/11/sbin/quotacheck/preen.c
  stable/11/sbin/quotacheck/quotacheck.c
  stable/11/sbin/quotacheck/quotacheck.h
  stable/11/sbin/rcorder/ealloc.c
  stable/11/sbin/rcorder/hash.c
  stable/11/sbin/rcorder/hash.h
  stable/11/sbin/reboot/reboot.c
  stable/11/sbin/restore/dirs.c
  stable/11/sbin/restore/extern.h
  stable/11/sbin/restore/interactive.c
  stable/11/sbin/restore/main.c
  stable/11/sbin/restore/restore.c
  stable/11/sbin/restore/restore.h
  stable/11/sbin/restore/symtab.c
  stable/11/sbin/restore/tape.c
  stable/11/sbin/restore/utilities.c
  stable/11/sbin/route/route.c
  stable/11/sbin/routed/defs.h
  stable/11/sbin/routed/if.c
  stable/11/sbin/routed/input.c
  stable/11/sbin/routed/main.c
  stable/11/sbin/routed/output.c
  stable/11/sbin/routed/parms.c
  stable/11/sbin/routed/pathnames.h
  stable/11/sbin/routed/radix.c
  stable/11/sbin/routed/radix.h
  stable/11/sbin/routed/rdisc.c
  stable/11/sbin/routed/rtquery/rtquery.c
  stable/11/sbin/routed/table.c
  stable/11/sbin/routed/trace.c
  stable/11/sbin/savecore/savecore.c
  stable/11/sbin/setkey/parse.y
  stable/11/sbin/setkey/setkey.c
  stable/11/sbin/setkey/test-pfkey.c
  stable/11/sbin/setkey/test-policy.c
  stable/11/sbin/setkey/token.l
  stable/11/sbin/setkey/vchar.h
  stable/11/sbin/shutdown/shutdown.c
  stable/11/sbin/sunlabel/sunlabel.c
  stable/11/sbin/swapon/swapon.c
  stable/11/sbin/sysctl/sysctl.c
  stable/11/sbin/tunefs/tunefs.c
  stable/11/sbin/umount/umount.c
  stable/11/share/examples/tests/tests/atf/cp_test.sh
  stable/11/share/examples/tests/tests/atf/printf_test.c
  stable/11/share/examples/tests/tests/plain/printf_test.c
  stable/11/sys/amd64/acpica/acpi_machdep.c
  stable/11/sys/amd64/amd64/atomic.c
  stable/11/sys/amd64/amd64/bios.c
  stable/11/sys/amd64/amd64/bpf_jit_machdep.c
  stable/11/sys/amd64/amd64/bpf_jit_machdep.h
  stable/11/sys/amd64/amd64/elf_machdep.c
  stable/11/sys/amd64/amd64/fpu.c
  stable/11/sys/amd64/amd64/gdb_machdep.c
  stable/11/sys/amd64/amd64/genassym.c
  stable/11/sys/amd64/amd64/in_cksum.c
  stable/11/sys/amd64/amd64/initcpu.c
  stable/11/sys/amd64/amd64/io.c
  stable/11/sys/amd64/amd64/machdep.c
  stable/11/sys/amd64/amd64/mem.c
  stable/11/sys/amd64/amd64/minidump_machdep.c
  stable/11/sys/amd64/amd64/mp_machdep.c
  stable/11/sys/amd64/amd64/pmap.c
  stable/11/sys/amd64/amd64/prof_machdep.c
  stable/11/sys/amd64/amd64/ptrace_machdep.c
  stable/11/sys/amd64/amd64/sys_machdep.c
  stable/11/sys/amd64/amd64/trap.c
  stable/11/sys/amd64/amd64/uio_machdep.c
  stable/11/sys/amd64/amd64/uma_machdep.c
  stable/11/sys/amd64/amd64/vm_machdep.c
  stable/11/sys/amd64/ia32/ia32_misc.c
  stable/11/sys/amd64/ia32/ia32_reg.c
  stable/11/sys/amd64/ia32/ia32_signal.c
  stable/11/sys/amd64/ia32/ia32_syscall.c
  stable/11/sys/amd64/include/_bus.h
  stable/11/sys/amd64/include/asm.h
  stable/11/sys/amd64/include/asmacros.h
  stable/11/sys/amd64/include/atomic.h
  stable/11/sys/amd64/include/bus_dma.h
  stable/11/sys/amd64/include/counter.h
  stable/11/sys/amd64/include/cpu.h
  stable/11/sys/amd64/include/cpufunc.h
  stable/11/sys/amd64/include/exec.h
  stable/11/sys/amd64/include/floatingpoint.h
  stable/11/sys/amd64/include/fpu.h
  stable/11/sys/amd64/include/gdb_machdep.h
  stable/11/sys/amd64/include/ieeefp.h
  stable/11/sys/amd64/include/in_cksum.h
  stable/11/sys/amd64/include/intr_machdep.h
  stable/11/sys/amd64/include/iodev.h
  stable/11/sys/amd64/include/kdb.h
  stable/11/sys/amd64/include/limits.h
  stable/11/sys/amd64/include/md_var.h
  stable/11/sys/amd64/include/memdev.h
  stable/11/sys/amd64/include/minidump.h
  stable/11/sys/amd64/include/mp_watchdog.h
  stable/11/sys/amd64/include/param.h
  stable/11/sys/amd64/include/pc/bios.h
  stable/11/sys/amd64/include/pcb.h
  stable/11/sys/amd64/include/pcpu.h
  stable/11/sys/amd64/include/pmap.h
  stable/11/sys/amd64/include/pmc_mdep.h
  stable/11/sys/amd64/include/ppireg.h
  stable/11/sys/amd64/include/proc.h
  stable/11/sys/amd64/include/profile.h
  stable/11/sys/amd64/include/reloc.h
  stable/11/sys/amd64/include/runq.h
  stable/11/sys/amd64/include/segments.h
  stable/11/sys/amd64/include/sf_buf.h
  stable/11/sys/amd64/include/timerreg.h
  stable/11/sys/amd64/include/tss.h
  stable/11/sys/amd64/include/varargs.h
  stable/11/sys/amd64/include/vm.h
  stable/11/sys/amd64/include/vmm.h
  stable/11/sys/amd64/include/vmm_dev.h
  stable/11/sys/amd64/include/vmm_instruction_emul.h
  stable/11/sys/amd64/include/vmparam.h
  stable/11/sys/amd64/linux32/linux.h
  stable/11/sys/amd64/linux32/linux32_dummy.c
  stable/11/sys/amd64/linux32/linux32_machdep.c
  stable/11/sys/amd64/linux32/linux32_sysvec.c
  stable/11/sys/amd64/pci/pci_cfgreg.c
  stable/11/sys/amd64/vmm/amd/amdv.c
  stable/11/sys/amd64/vmm/intel/ept.c
  stable/11/sys/amd64/vmm/intel/ept.h
  stable/11/sys/amd64/vmm/intel/vmcs.c
  stable/11/sys/amd64/vmm/intel/vmcs.h
  stable/11/sys/amd64/vmm/intel/vmx.c
  stable/11/sys/amd64/vmm/intel/vmx.h
  stable/11/sys/amd64/vmm/intel/vmx_controls.h
  stable/11/sys/amd64/vmm/intel/vmx_cpufunc.h
  stable/11/sys/amd64/vmm/intel/vmx_genassym.c
  stable/11/sys/amd64/vmm/intel/vmx_msr.c
  stable/11/sys/amd64/vmm/intel/vmx_msr.h
  stable/11/sys/amd64/vmm/intel/vtd.c
  stable/11/sys/amd64/vmm/io/iommu.c
  stable/11/sys/amd64/vmm/io/iommu.h
  stable/11/sys/amd64/vmm/io/ppt.c
  stable/11/sys/amd64/vmm/io/ppt.h
  stable/11/sys/amd64/vmm/io/vhpet.c
  stable/11/sys/amd64/vmm/io/vhpet.h
  stable/11/sys/amd64/vmm/io/vioapic.c
  stable/11/sys/amd64/vmm/io/vioapic.h
  stable/11/sys/amd64/vmm/io/vlapic.c
  stable/11/sys/amd64/vmm/io/vlapic.h
  stable/11/sys/amd64/vmm/io/vlapic_priv.h
  stable/11/sys/amd64/vmm/vmm.c
  stable/11/sys/amd64/vmm/vmm_dev.c
  stable/11/sys/amd64/vmm/vmm_host.c
  stable/11/sys/amd64/vmm/vmm_host.h
  stable/11/sys/amd64/vmm/vmm_instruction_emul.c
  stable/11/sys/amd64/vmm/vmm_ktr.h
  stable/11/sys/amd64/vmm/vmm_lapic.c
  stable/11/sys/amd64/vmm/vmm_lapic.h
  stable/11/sys/amd64/vmm/vmm_mem.c
  stable/11/sys/amd64/vmm/vmm_mem.h
  stable/11/sys/amd64/vmm/vmm_stat.c
  stable/11/sys/amd64/vmm/vmm_stat.h
  stable/11/sys/amd64/vmm/vmm_util.c
  stable/11/sys/amd64/vmm/vmm_util.h
  stable/11/sys/amd64/vmm/x86.c
  stable/11/sys/amd64/vmm/x86.h
  stable/11/sys/arm/allwinner/a10_ehci.c
  stable/11/sys/arm/allwinner/a10_gpio.c
  stable/11/sys/arm/allwinner/a10_sramc.c
  stable/11/sys/arm/allwinner/a10_sramc.h
  stable/11/sys/arm/allwinner/a20/a20_cpu_cfg.c
  stable/11/sys/arm/allwinner/a20/a20_cpu_cfg.h
  stable/11/sys/arm/allwinner/if_emac.c
  stable/11/sys/arm/allwinner/if_emacreg.h
  stable/11/sys/arm/arm/autoconf.c
  stable/11/sys/arm/arm/bus_space_generic.c
  stable/11/sys/arm/arm/busdma_machdep-v6.c
  stable/11/sys/arm/arm/cpufunc.c
  stable/11/sys/arm/arm/db_disasm.c
  stable/11/sys/arm/arm/disassem.c
  stable/11/sys/arm/arm/dump_machdep.c
  stable/11/sys/arm/arm/elf_machdep.c
  stable/11/sys/arm/arm/elf_trampoline.c
  stable/11/sys/arm/arm/fiq.c
  stable/11/sys/arm/arm/gdb_machdep.c
  stable/11/sys/arm/arm/genassym.c
  stable/11/sys/arm/arm/generic_timer.c
  stable/11/sys/arm/arm/gic.c
  stable/11/sys/arm/arm/in_cksum.c
  stable/11/sys/arm/arm/intr.c
  stable/11/sys/arm/arm/machdep.c
  stable/11/sys/arm/arm/mem.c
  stable/11/sys/arm/arm/minidump_machdep.c
  stable/11/sys/arm/arm/mp_machdep.c
  stable/11/sys/arm/arm/mpcore_timer.c
  stable/11/sys/arm/arm/physmem.c
  stable/11/sys/arm/arm/pl310.c
  stable/11/sys/arm/arm/pmap-v6.c
  stable/11/sys/arm/arm/sc_machdep.c
  stable/11/sys/arm/arm/stack_machdep.c
  stable/11/sys/arm/arm/stdatomic.c
  stable/11/sys/arm/arm/sys_machdep.c
  stable/11/sys/arm/arm/uio_machdep.c
  stable/11/sys/arm/arm/undefined.c
  stable/11/sys/arm/arm/vfp.c
  stable/11/sys/arm/arm/vm_machdep.c
  stable/11/sys/arm/at91/at91.c
  stable/11/sys/arm/at91/at91_aic.c
  stable/11/sys/arm/at91/at91_aicreg.h
  stable/11/sys/arm/at91/at91_cfata.c
  stable/11/sys/arm/at91/at91_gpio.h
  stable/11/sys/arm/at91/at91_machdep.c
  stable/11/sys/arm/at91/at91_mci.c
  stable/11/sys/arm/at91/at91_mcireg.h
  stable/11/sys/arm/at91/at91_pdcreg.h
  stable/11/sys/arm/at91/at91_pio.c
  stable/11/sys/arm/at91/at91_pio_sam9g45.h
  stable/11/sys/arm/at91/at91_pioreg.h
  stable/11/sys/arm/at91/at91_piovar.h
  stable/11/sys/arm/at91/at91_pit.c
  stable/11/sys/arm/at91/at91_pitreg.h
  stable/11/sys/arm/at91/at91_pmc.c
  stable/11/sys/arm/at91/at91_pmcreg.h
  stable/11/sys/arm/at91/at91_pmcvar.h
  stable/11/sys/arm/at91/at91_rst.c
  stable/11/sys/arm/at91/at91_rstreg.h
  stable/11/sys/arm/at91/at91_rtc.c
  stable/11/sys/arm/at91/at91_rtcreg.h
  stable/11/sys/arm/at91/at91_sdramc.c
  stable/11/sys/arm/at91/at91_shdwc.c
  stable/11/sys/arm/at91/at91_smc.c
  stable/11/sys/arm/at91/at91_smc.h
  stable/11/sys/arm/at91/at91_spi.c
  stable/11/sys/arm/at91/at91_spireg.h
  stable/11/sys/arm/at91/at91_ssc.c
  stable/11/sys/arm/at91/at91_sscreg.h
  stable/11/sys/arm/at91/at91_st.c
  stable/11/sys/arm/at91/at91_streg.h
  stable/11/sys/arm/at91/at91_tcb.c
  stable/11/sys/arm/at91/at91_twi.c
  stable/11/sys/arm/at91/at91_twiio.h
  stable/11/sys/arm/at91/at91_twireg.h
  stable/11/sys/arm/at91/at91_usartreg.h
  stable/11/sys/arm/at91/at91_wdt.c
  stable/11/sys/arm/at91/at91_wdtreg.h
  stable/11/sys/arm/at91/at91board.h
  stable/11/sys/arm/at91/at91reg.h
  stable/11/sys/arm/at91/at91rm9200.c
  stable/11/sys/arm/at91/at91rm9200_devices.c
  stable/11/sys/arm/at91/at91rm9200var.h
  stable/11/sys/arm/at91/at91rm92reg.h
  stable/11/sys/arm/at91/at91sam9260.c
  stable/11/sys/arm/at91/at91sam9260reg.h
  stable/11/sys/arm/at91/at91sam9g20.c
  stable/11/sys/arm/at91/at91sam9g20reg.h
  stable/11/sys/arm/at91/at91sam9g45.c
  stable/11/sys/arm/at91/at91sam9g45reg.h
  stable/11/sys/arm/at91/at91sam9x5.c
  stable/11/sys/arm/at91/at91sam9x5reg.h
  stable/11/sys/arm/at91/at91soc.c
  stable/11/sys/arm/at91/at91soc.h
  stable/11/sys/arm/at91/at91var.h
  stable/11/sys/arm/at91/board_bwct.c
  stable/11/sys/arm/at91/board_eb9200.c
  stable/11/sys/arm/at91/board_ethernut5.c
  stable/11/sys/arm/at91/board_hl200.c
  stable/11/sys/arm/at91/board_hl201.c
  stable/11/sys/arm/at91/board_kb920x.c
  stable/11/sys/arm/at91/board_qila9g20.c
  stable/11/sys/arm/at91/board_sam9260ek.c
  stable/11/sys/arm/at91/board_sam9g20ek.c
  stable/11/sys/arm/at91/board_sam9x25ek.c
  stable/11/sys/arm/at91/board_sn9g45.c
  stable/11/sys/arm/at91/board_tsc4370.c
  stable/11/sys/arm/at91/if_ate.c
  stable/11/sys/arm/at91/if_atereg.h
  stable/11/sys/arm/at91/if_macb.c
  stable/11/sys/arm/at91/uart_bus_at91usart.c
  stable/11/sys/arm/at91/uart_cpu_at91usart.c
  stable/11/sys/arm/at91/uart_dev_at91usart.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_bsc.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_bscreg.h
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_bscvar.h
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_dma.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_dma.h
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_fb.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_fbd.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_gpio.h
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_intr.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_machdep.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_mbox.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_mbox.h
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_spi.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_spireg.h
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_spivar.h
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_systimer.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_vcbus.h
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_wdog.c
  stable/11/sys/arm/broadcom/bcm2835/bcm2835_wdog.h
  stable/11/sys/arm/conf/genboardid.awk
  stable/11/sys/arm/freescale/fsl_ocotp.c
  stable/11/sys/arm/freescale/fsl_ocotpreg.h
  stable/11/sys/arm/freescale/fsl_ocotpvar.h
  stable/11/sys/arm/freescale/imx/imx51_ccm.c
  stable/11/sys/arm/freescale/imx/imx51_ccmreg.h
  stable/11/sys/arm/freescale/imx/imx51_ccmvar.h
  stable/11/sys/arm/freescale/imx/imx51_dpllreg.h
  stable/11/sys/arm/freescale/imx/imx51_ipuv3.c
  stable/11/sys/arm/freescale/imx/imx51_ipuv3_fbd.c
  stable/11/sys/arm/freescale/imx/imx51_ipuv3reg.h
  stable/11/sys/arm/freescale/imx/imx51_machdep.c
  stable/11/sys/arm/freescale/imx/imx51_sdmareg.h
  stable/11/sys/arm/freescale/imx/imx51_ssireg.h
  stable/11/sys/arm/freescale/imx/imx51_tzicreg.h
  stable/11/sys/arm/freescale/imx/imx53_machdep.c
  stable/11/sys/arm/freescale/imx/imx6_anatop.c
  stable/11/sys/arm/freescale/imx/imx6_anatopreg.h
  stable/11/sys/arm/freescale/imx/imx6_anatopvar.h
  stable/11/sys/arm/freescale/imx/imx6_ccm.c
  stable/11/sys/arm/freescale/imx/imx6_ccmreg.h
  stable/11/sys/arm/freescale/imx/imx6_machdep.c
  stable/11/sys/arm/freescale/imx/imx6_mp.c
  stable/11/sys/arm/freescale/imx/imx6_pl310.c
  stable/11/sys/arm/freescale/imx/imx6_usbphy.c
  stable/11/sys/arm/freescale/imx/imx_common.c
  stable/11/sys/arm/freescale/imx/imx_gpt.c
  stable/11/sys/arm/freescale/imx/imx_gptreg.h
  stable/11/sys/arm/freescale/imx/imx_machdep.c
  stable/11/sys/arm/freescale/imx/imx_machdep.h
  stable/11/sys/arm/freescale/imx/imx_nop_usbphy.c
  stable/11/sys/arm/freescale/imx/imx_wdog.c
  stable/11/sys/arm/freescale/imx/imx_wdogreg.h
  stable/11/sys/arm/freescale/imx/tzic.c
  stable/11/sys/arm/freescale/vybrid/vf_anadig.c
  stable/11/sys/arm/freescale/vybrid/vf_ccm.c
  stable/11/sys/arm/freescale/vybrid/vf_common.h
  stable/11/sys/arm/freescale/vybrid/vf_dcu4.c
  stable/11/sys/arm/freescale/vybrid/vf_dmamux.c
  stable/11/sys/arm/freescale/vybrid/vf_dmamux.h
  stable/11/sys/arm/freescale/vybrid/vf_edma.c
  stable/11/sys/arm/freescale/vybrid/vf_edma.h
  stable/11/sys/arm/freescale/vybrid/vf_ehci.c
  stable/11/sys/arm/freescale/vybrid/vf_gpio.c
  stable/11/sys/arm/freescale/vybrid/vf_i2c.c
  stable/11/sys/arm/freescale/vybrid/vf_iomuxc.c
  stable/11/sys/arm/freescale/vybrid/vf_iomuxc.h
  stable/11/sys/arm/freescale/vybrid/vf_machdep.c
  stable/11/sys/arm/freescale/vybrid/vf_mscm.c
  stable/11/sys/arm/freescale/vybrid/vf_nfc.c
  stable/11/sys/arm/freescale/vybrid/vf_port.c
  stable/11/sys/arm/freescale/vybrid/vf_port.h
  stable/11/sys/arm/freescale/vybrid/vf_sai.c
  stable/11/sys/arm/freescale/vybrid/vf_src.c
  stable/11/sys/arm/freescale/vybrid/vf_src.h
  stable/11/sys/arm/freescale/vybrid/vf_tcon.c
  stable/11/sys/arm/freescale/vybrid/vf_uart.c
  stable/11/sys/arm/include/_align.h
  stable/11/sys/arm/include/_bus.h
  stable/11/sys/arm/include/_inttypes.h
  stable/11/sys/arm/include/_limits.h
  stable/11/sys/arm/include/_stdint.h
  stable/11/sys/arm/include/_types.h
  stable/11/sys/arm/include/armreg.h
  stable/11/sys/arm/include/asm.h
  stable/11/sys/arm/include/asmacros.h
  stable/11/sys/arm/include/at91_gpio.h
  stable/11/sys/arm/include/atags.h
  stable/11/sys/arm/include/atomic.h
  stable/11/sys/arm/include/blockio.h
  stable/11/sys/arm/include/board.h
  stable/11/sys/arm/include/bus.h
  stable/11/sys/arm/include/bus_dma.h
  stable/11/sys/arm/include/clock.h
  stable/11/sys/arm/include/counter.h
  stable/11/sys/arm/include/cpufunc.h
  stable/11/sys/arm/include/disassem.h
  stable/11/sys/arm/include/elf.h
  stable/11/sys/arm/include/endian.h
  stable/11/sys/arm/include/exec.h
  stable/11/sys/arm/include/fdt.h
  stable/11/sys/arm/include/fiq.h
  stable/11/sys/arm/include/float.h
  stable/11/sys/arm/include/floatingpoint.h
  stable/11/sys/arm/include/frame.h
  stable/11/sys/arm/include/gdb_machdep.h
  stable/11/sys/arm/include/ieee.h
  stable/11/sys/arm/include/in_cksum.h
  stable/11/sys/arm/include/intr.h
  stable/11/sys/arm/include/kdb.h
  stable/11/sys/arm/include/limits.h
  stable/11/sys/arm/include/md_var.h
  stable/11/sys/arm/include/memdev.h
  stable/11/sys/arm/include/metadata.h
  stable/11/sys/arm/include/minidump.h
  stable/11/sys/arm/include/ofw_machdep.h
  stable/11/sys/arm/include/param.h
  stable/11/sys/arm/include/pcb.h
  stable/11/sys/arm/include/pcpu.h
  stable/11/sys/arm/include/physmem.h
  stable/11/sys/arm/include/pl310.h
  stable/11/sys/arm/include/pmap.h
  stable/11/sys/arm/include/pmc_mdep.h
  stable/11/sys/arm/include/proc.h
  stable/11/sys/arm/include/profile.h
  stable/11/sys/arm/include/psl.h
  stable/11/sys/arm/include/reloc.h
  stable/11/sys/arm/include/runq.h
  stable/11/sys/arm/include/sc_machdep.h
  stable/11/sys/arm/include/sf_buf.h
  stable/11/sys/arm/include/signal.h
  stable/11/sys/arm/include/stdarg.h
  stable/11/sys/arm/include/sysarch.h
  stable/11/sys/arm/include/ucontext.h
  stable/11/sys/arm/include/undefined.h
  stable/11/sys/arm/include/utrap.h
  stable/11/sys/arm/include/vdso.h
  stable/11/sys/arm/include/vfp.h
  stable/11/sys/arm/include/vm.h
  stable/11/sys/arm/include/vmparam.h
  stable/11/sys/arm/lpc/if_lpe.c
  stable/11/sys/arm/lpc/if_lpereg.h
  stable/11/sys/arm/lpc/lpc_dmac.c
  stable/11/sys/arm/lpc/lpc_fb.c
  stable/11/sys/arm/lpc/lpc_gpio.c
  stable/11/sys/arm/lpc/lpc_intc.c
  stable/11/sys/arm/lpc/lpc_machdep.c
  stable/11/sys/arm/lpc/lpc_mmc.c
  stable/11/sys/arm/lpc/lpc_ohci.c
  stable/11/sys/arm/lpc/lpc_pll.c
  stable/11/sys/arm/lpc/lpc_pwr.c
  stable/11/sys/arm/lpc/lpc_rtc.c
  stable/11/sys/arm/lpc/lpc_spi.c
  stable/11/sys/arm/lpc/lpc_timer.c
  stable/11/sys/arm/lpc/lpcreg.h
  stable/11/sys/arm/lpc/lpcvar.h
  stable/11/sys/arm/lpc/ssd1289.c
  stable/11/sys/arm/mv/armadaxp/armadaxp.c
  stable/11/sys/arm/mv/armadaxp/armadaxp_mp.c
  stable/11/sys/arm/mv/discovery/discovery.c
  stable/11/sys/arm/mv/gpio.c
  stable/11/sys/arm/mv/ic.c
  stable/11/sys/arm/mv/kirkwood/kirkwood.c
  stable/11/sys/arm/mv/mpic.c
  stable/11/sys/arm/mv/mv_common.c
  stable/11/sys/arm/mv/mv_localbus.c
  stable/11/sys/arm/mv/mv_machdep.c
  stable/11/sys/arm/mv/mv_pci.c
  stable/11/sys/arm/mv/mv_ts.c
  stable/11/sys/arm/mv/mvreg.h
  stable/11/sys/arm/mv/mvvar.h
  stable/11/sys/arm/mv/mvwin.h
  stable/11/sys/arm/mv/orion/db88f5xxx.c
  stable/11/sys/arm/mv/orion/orion.c
  stable/11/sys/arm/mv/rtc.c
  stable/11/sys/arm/mv/timer.c
  stable/11/sys/arm/rockchip/rk30xx_gpio.c
  stable/11/sys/arm/rockchip/rk30xx_grf.c
  stable/11/sys/arm/rockchip/rk30xx_grf.h
  stable/11/sys/arm/rockchip/rk30xx_machdep.c
  stable/11/sys/arm/rockchip/rk30xx_pmu.c
  stable/11/sys/arm/rockchip/rk30xx_pmu.h
  stable/11/sys/arm/rockchip/rk30xx_wdog.c
  stable/11/sys/arm/rockchip/rk30xx_wdog.h
  stable/11/sys/arm/samsung/exynos/exynos5_machdep.c
  stable/11/sys/arm/samsung/exynos/exynos5_mp.c
  stable/11/sys/arm/ti/aintc.c
  stable/11/sys/arm/ti/am335x/am335x_dmtimer.c
  stable/11/sys/arm/ti/am335x/am335x_lcd.c
  stable/11/sys/arm/ti/am335x/am335x_lcd.h
  stable/11/sys/arm/ti/am335x/am335x_lcd_syscons.c
  stable/11/sys/arm/ti/am335x/am335x_pmic.c
  stable/11/sys/arm/ti/am335x/am335x_prcm.c
  stable/11/sys/arm/ti/am335x/am335x_pwm.h
  stable/11/sys/arm/ti/am335x/am335x_reg.h
  stable/11/sys/arm/ti/am335x/am335x_scm.h
  stable/11/sys/arm/ti/am335x/am335x_scm_padconf.c
  stable/11/sys/arm/ti/am335x/am335x_usbss.c
  stable/11/sys/arm/ti/cpsw/if_cpsw.c
  stable/11/sys/arm/ti/cpsw/if_cpswreg.h
  stable/11/sys/arm/ti/cpsw/if_cpswvar.h
  stable/11/sys/arm/ti/omap4/omap4_l2cache.c
  stable/11/sys/arm/ti/omap4/omap4_mp.c
  stable/11/sys/arm/ti/omap4/omap4_prcm_clks.c
  stable/11/sys/arm/ti/omap4/omap4_reg.h
  stable/11/sys/arm/ti/omap4/omap4_scm_padconf.c
  stable/11/sys/arm/ti/omap4/omap4_smc.h
  stable/11/sys/arm/ti/omap4/pandaboard/pandaboard.c
  stable/11/sys/arm/ti/ti_cpuid.c
  stable/11/sys/arm/ti/ti_cpuid.h
  stable/11/sys/arm/ti/ti_edma3.c
  stable/11/sys/arm/ti/ti_edma3.h
  stable/11/sys/arm/ti/ti_gpio.c
  stable/11/sys/arm/ti/ti_i2c.c
  stable/11/sys/arm/ti/ti_i2c.h
  stable/11/sys/arm/ti/ti_machdep.c
  stable/11/sys/arm/ti/ti_mbox.c
  stable/11/sys/arm/ti/ti_mbox.h
  stable/11/sys/arm/ti/ti_prcm.c
  stable/11/sys/arm/ti/ti_prcm.h
  stable/11/sys/arm/ti/ti_pruss.c
  stable/11/sys/arm/ti/ti_pruss.h
  stable/11/sys/arm/ti/ti_scm.c
  stable/11/sys/arm/ti/ti_scm.h
  stable/11/sys/arm/ti/ti_sdhci.c
  stable/11/sys/arm/ti/ti_sdma.c
  stable/11/sys/arm/ti/ti_sdma.h
  stable/11/sys/arm/ti/ti_sdmareg.h
  stable/11/sys/arm/ti/ti_smc.h
  stable/11/sys/arm/ti/tivar.h
  stable/11/sys/arm/ti/twl/twl.c
  stable/11/sys/arm/ti/twl/twl.h
  stable/11/sys/arm/ti/twl/twl_clks.c
  stable/11/sys/arm/ti/twl/twl_clks.h
  stable/11/sys/arm/ti/twl/twl_vreg.c
  stable/11/sys/arm/ti/twl/twl_vreg.h
  stable/11/sys/arm/ti/usb/omap_ehci.c
  stable/11/sys/arm/ti/usb/omap_usb.h
  stable/11/sys/arm/xilinx/uart_dev_cdnc.c
  stable/11/sys/arm/xilinx/zy7_devcfg.c
  stable/11/sys/arm/xilinx/zy7_ehci.c
  stable/11/sys/arm/xilinx/zy7_gpio.c
  stable/11/sys/arm/xilinx/zy7_l2cache.c
  stable/11/sys/arm/xilinx/zy7_machdep.c
  stable/11/sys/arm/xilinx/zy7_reg.h
  stable/11/sys/arm/xilinx/zy7_slcr.c
  stable/11/sys/arm/xilinx/zy7_slcr.h
  stable/11/sys/arm/xscale/i8134x/crb_machdep.c
  stable/11/sys/arm/xscale/i8134x/i81342.c
  stable/11/sys/arm/xscale/i8134x/i81342_mcu.c
  stable/11/sys/arm/xscale/i8134x/i81342_pci.c
  stable/11/sys/arm/xscale/i8134x/i81342_space.c
  stable/11/sys/arm/xscale/i8134x/i81342reg.h
  stable/11/sys/arm/xscale/i8134x/i81342var.h
  stable/11/sys/arm/xscale/i8134x/iq81342_7seg.c
  stable/11/sys/arm/xscale/i8134x/iq81342reg.h
  stable/11/sys/arm/xscale/i8134x/iq81342var.h
  stable/11/sys/arm/xscale/i8134x/obio.c
  stable/11/sys/arm/xscale/i8134x/obiovar.h
  stable/11/sys/arm/xscale/i8134x/uart_bus_i81342.c
  stable/11/sys/arm/xscale/i8134x/uart_cpu_i81342.c
  stable/11/sys/arm/xscale/ixp425/avila_ata.c
  stable/11/sys/arm/xscale/ixp425/avila_gpio.c
  stable/11/sys/arm/xscale/ixp425/avila_led.c
  stable/11/sys/arm/xscale/ixp425/avila_machdep.c
  stable/11/sys/arm/xscale/ixp425/cambria_exp_space.c
  stable/11/sys/arm/xscale/ixp425/cambria_fled.c
  stable/11/sys/arm/xscale/ixp425/cambria_gpio.c
  stable/11/sys/arm/xscale/ixp425/cambria_led.c
  stable/11/sys/arm/xscale/ixp425/if_npe.c
  stable/11/sys/arm/xscale/ixp425/if_npereg.h
  stable/11/sys/arm/xscale/ixp425/ixdp425_pci.c
  stable/11/sys/arm/xscale/ixp425/ixdp425reg.h
  stable/11/sys/arm/xscale/ixp425/ixp425.c
  stable/11/sys/arm/xscale/ixp425/ixp425_a4x_space.c
  stable/11/sys/arm/xscale/ixp425/ixp425_iic.c
  stable/11/sys/arm/xscale/ixp425/ixp425_intr.h
  stable/11/sys/arm/xscale/ixp425/ixp425_mem.c
  stable/11/sys/arm/xscale/ixp425/ixp425_npe.c
  stable/11/sys/arm/xscale/ixp425/ixp425_npereg.h
  stable/11/sys/arm/xscale/ixp425/ixp425_npevar.h
  stable/11/sys/arm/xscale/ixp425/ixp425_pci.c
  stable/11/sys/arm/xscale/ixp425/ixp425_pci_space.c
  stable/11/sys/arm/xscale/ixp425/ixp425_qmgr.c
  stable/11/sys/arm/xscale/ixp425/ixp425_qmgr.h
  stable/11/sys/arm/xscale/ixp425/ixp425_space.c
  stable/11/sys/arm/xscale/ixp425/ixp425_timer.c
  stable/11/sys/arm/xscale/ixp425/ixp425_wdog.c
  stable/11/sys/arm/xscale/ixp425/ixp425reg.h
  stable/11/sys/arm/xscale/ixp425/ixp425var.h
  stable/11/sys/arm/xscale/ixp425/uart_bus_ixp425.c
  stable/11/sys/arm/xscale/ixp425/uart_cpu_ixp425.c
  stable/11/sys/arm/xscale/pxa/if_smc_smi.c
  stable/11/sys/arm/xscale/pxa/pxa_gpio.c
  stable/11/sys/arm/xscale/pxa/pxa_icu.c
  stable/11/sys/arm/xscale/pxa/pxa_machdep.c
  stable/11/sys/arm/xscale/pxa/pxa_obio.c
  stable/11/sys/arm/xscale/pxa/pxa_smi.c
  stable/11/sys/arm/xscale/pxa/pxa_space.c
  stable/11/sys/arm/xscale/pxa/pxa_timer.c
  stable/11/sys/arm/xscale/pxa/pxareg.h
  stable/11/sys/arm/xscale/pxa/pxavar.h
  stable/11/sys/arm/xscale/pxa/uart_bus_pxa.c
  stable/11/sys/arm/xscale/pxa/uart_cpu_pxa.c
  stable/11/sys/bsm/audit.h
  stable/11/sys/bsm/audit_domain.h
  stable/11/sys/bsm/audit_errno.h
  stable/11/sys/bsm/audit_fcntl.h
  stable/11/sys/bsm/audit_internal.h
  stable/11/sys/bsm/audit_kevents.h
  stable/11/sys/bsm/audit_record.h
  stable/11/sys/bsm/audit_socket_type.h
  stable/11/sys/compat/freebsd32/freebsd32_ioctl.c
  stable/11/sys/compat/freebsd32/freebsd32_ioctl.h
  stable/11/sys/compat/linprocfs/linprocfs.c
  stable/11/sys/compat/ndis/cfg_var.h
  stable/11/sys/compat/ndis/hal_var.h
  stable/11/sys/compat/ndis/kern_ndis.c
  stable/11/sys/compat/ndis/kern_windrv.c
  stable/11/sys/compat/ndis/ndis_var.h
  stable/11/sys/compat/ndis/ntoskrnl_var.h
  stable/11/sys/compat/ndis/pe_var.h
  stable/11/sys/compat/ndis/resource_var.h
  stable/11/sys/compat/ndis/subr_hal.c
  stable/11/sys/compat/ndis/subr_ndis.c
  stable/11/sys/compat/ndis/subr_ntoskrnl.c
  stable/11/sys/compat/ndis/subr_pe.c
  stable/11/sys/compat/ndis/subr_usbd.c
  stable/11/sys/compat/ndis/usbd_var.h
  stable/11/sys/conf/newvers.sh
  stable/11/sys/conf/systags.sh
  stable/11/sys/crypto/sha1.c
  stable/11/sys/crypto/sha1.h
  stable/11/sys/ddb/db_ps.c
  stable/11/sys/ddb/ddb.h
  stable/11/sys/dev/aac/aac.c
  stable/11/sys/dev/aac/aac_cam.c
  stable/11/sys/dev/aac/aac_debug.c
  stable/11/sys/dev/aac/aac_disk.c
  stable/11/sys/dev/aac/aac_linux.c
  stable/11/sys/dev/aac/aac_pci.c
  stable/11/sys/dev/aac/aac_tables.h
  stable/11/sys/dev/aac/aacreg.h
  stable/11/sys/dev/aac/aacvar.h
  stable/11/sys/dev/aacraid/aacraid.c
  stable/11/sys/dev/aacraid/aacraid_cam.c
  stable/11/sys/dev/aacraid/aacraid_debug.c
  stable/11/sys/dev/aacraid/aacraid_debug.h
  stable/11/sys/dev/aacraid/aacraid_linux.c
  stable/11/sys/dev/aacraid/aacraid_pci.c
  stable/11/sys/dev/aacraid/aacraid_reg.h
  stable/11/sys/dev/aacraid/aacraid_var.h
  stable/11/sys/dev/adb/adb.h
  stable/11/sys/dev/adb/adb_bus.c
  stable/11/sys/dev/adb/adb_buttons.c
  stable/11/sys/dev/adb/adb_kbd.c
  stable/11/sys/dev/adb/adb_mouse.c
  stable/11/sys/dev/adb/adbvar.h
  stable/11/sys/dev/adlink/adlink.c
  stable/11/sys/dev/advansys/adv_isa.c
  stable/11/sys/dev/advansys/adv_pci.c
  stable/11/sys/dev/advansys/advansys.c
  stable/11/sys/dev/advansys/advansys.h
  stable/11/sys/dev/advansys/advlib.c
  stable/11/sys/dev/advansys/advlib.h
  stable/11/sys/dev/advansys/adw_pci.c
  stable/11/sys/dev/advansys/adwcam.c
  stable/11/sys/dev/advansys/adwlib.c
  stable/11/sys/dev/advansys/adwlib.h
  stable/11/sys/dev/advansys/adwvar.h
  stable/11/sys/dev/ae/if_ae.c
  stable/11/sys/dev/ae/if_aereg.h
  stable/11/sys/dev/ae/if_aevar.h
  stable/11/sys/dev/age/if_age.c
  stable/11/sys/dev/age/if_agereg.h
  stable/11/sys/dev/age/if_agevar.h
  stable/11/sys/dev/agp/agp.c
  stable/11/sys/dev/agp/agp_ali.c
  stable/11/sys/dev/agp/agp_amd.c
  stable/11/sys/dev/agp/agp_amd64.c
  stable/11/sys/dev/agp/agp_apple.c
  stable/11/sys/dev/agp/agp_ati.c
  stable/11/sys/dev/agp/agp_i810.c
  stable/11/sys/dev/agp/agp_i810.h
  stable/11/sys/dev/agp/agp_intel.c
  stable/11/sys/dev/agp/agp_nvidia.c
  stable/11/sys/dev/agp/agp_sis.c
  stable/11/sys/dev/agp/agp_via.c
  stable/11/sys/dev/agp/agppriv.h
  stable/11/sys/dev/agp/agpreg.h
  stable/11/sys/dev/agp/agpvar.h
  stable/11/sys/dev/aha/aha.c
  stable/11/sys/dev/aha/aha_isa.c
  stable/11/sys/dev/aha/ahareg.h
  stable/11/sys/dev/ahci/ahci.c
  stable/11/sys/dev/ahci/ahci.h
  stable/11/sys/dev/ahci/ahciem.c
  stable/11/sys/dev/aic/aic.c
  stable/11/sys/dev/aic/aic6360reg.h
  stable/11/sys/dev/aic/aic_isa.c
  stable/11/sys/dev/aic/aic_pccard.c
  stable/11/sys/dev/aic/aicvar.h
  stable/11/sys/dev/aic7xxx/ahc_isa.c
  stable/11/sys/dev/aic7xxx/aic7770.c
  stable/11/sys/dev/aic7xxx/aic79xx.c
  stable/11/sys/dev/aic7xxx/aic79xx.h
  stable/11/sys/dev/aic7xxx/aic79xx_inline.h
  stable/11/sys/dev/aic7xxx/aic79xx_pci.c
  stable/11/sys/dev/aic7xxx/aic7xxx.c
  stable/11/sys/dev/aic7xxx/aic7xxx.h
  stable/11/sys/dev/aic7xxx/aic7xxx_93cx6.h
  stable/11/sys/dev/aic7xxx/aic7xxx_inline.h
  stable/11/sys/dev/aic7xxx/aic7xxx_pci.c
  stable/11/sys/dev/aic7xxx/aicasm/aicasm.c
  stable/11/sys/dev/aic7xxx/aicasm/aicasm.h
  stable/11/sys/dev/aic7xxx/aicasm/aicasm_gram.y
  stable/11/sys/dev/aic7xxx/aicasm/aicasm_insformat.h
  stable/11/sys/dev/aic7xxx/aicasm/aicasm_macro_gram.y
  stable/11/sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l
  stable/11/sys/dev/aic7xxx/aicasm/aicasm_scan.l
  stable/11/sys/dev/aic7xxx/aicasm/aicasm_symbol.c
  stable/11/sys/dev/aic7xxx/aicasm/aicasm_symbol.h
  stable/11/sys/dev/alc/if_alc.c
  stable/11/sys/dev/alc/if_alcreg.h
  stable/11/sys/dev/alc/if_alcvar.h
  stable/11/sys/dev/ale/if_ale.c
  stable/11/sys/dev/ale/if_alereg.h
  stable/11/sys/dev/ale/if_alevar.h
  stable/11/sys/dev/altera/atse/a_api.h
  stable/11/sys/dev/altera/atse/if_atse.c
  stable/11/sys/dev/altera/atse/if_atse_fdt.c
  stable/11/sys/dev/altera/atse/if_atse_nexus.c
  stable/11/sys/dev/altera/atse/if_atsereg.h
  stable/11/sys/dev/altera/avgen/altera_avgen.c
  stable/11/sys/dev/altera/avgen/altera_avgen.h
  stable/11/sys/dev/altera/avgen/altera_avgen_fdt.c
  stable/11/sys/dev/altera/avgen/altera_avgen_nexus.c
  stable/11/sys/dev/altera/jtag_uart/altera_jtag_uart.h
  stable/11/sys/dev/altera/jtag_uart/altera_jtag_uart_cons.c
  stable/11/sys/dev/altera/jtag_uart/altera_jtag_uart_fdt.c
  stable/11/sys/dev/altera/jtag_uart/altera_jtag_uart_nexus.c
  stable/11/sys/dev/altera/jtag_uart/altera_jtag_uart_tty.c
  stable/11/sys/dev/altera/sdcard/altera_sdcard.c
  stable/11/sys/dev/altera/sdcard/altera_sdcard.h
  stable/11/sys/dev/altera/sdcard/altera_sdcard_disk.c
  stable/11/sys/dev/altera/sdcard/altera_sdcard_fdt.c
  stable/11/sys/dev/altera/sdcard/altera_sdcard_io.c
  stable/11/sys/dev/altera/sdcard/altera_sdcard_nexus.c
  stable/11/sys/dev/amdsbwd/amdsbwd.c
  stable/11/sys/dev/amdtemp/amdtemp.c
  stable/11/sys/dev/amr/amr.c
  stable/11/sys/dev/amr/amr_cam.c
  stable/11/sys/dev/amr/amr_disk.c
  stable/11/sys/dev/amr/amr_linux.c
  stable/11/sys/dev/amr/amr_pci.c
  stable/11/sys/dev/amr/amr_tables.h
  stable/11/sys/dev/amr/amrio.h
  stable/11/sys/dev/amr/amrreg.h
  stable/11/sys/dev/amr/amrvar.h
  stable/11/sys/dev/an/if_aironet_ieee.h
  stable/11/sys/dev/an/if_an.c
  stable/11/sys/dev/an/if_an_isa.c
  stable/11/sys/dev/an/if_an_pccard.c
  stable/11/sys/dev/an/if_an_pci.c
  stable/11/sys/dev/an/if_anreg.h
  stable/11/sys/dev/arcmsr/arcmsr.c
  stable/11/sys/dev/arcmsr/arcmsr.h
  stable/11/sys/dev/asmc/asmc.c
  stable/11/sys/dev/asmc/asmcvar.h
  stable/11/sys/dev/ata/ata-all.c
  stable/11/sys/dev/ata/ata-all.h
  stable/11/sys/dev/ata/ata-card.c
  stable/11/sys/dev/ata/ata-dma.c
  stable/11/sys/dev/ata/ata-isa.c
  stable/11/sys/dev/ata/ata-lowlevel.c
  stable/11/sys/dev/ata/ata-pci.c
  stable/11/sys/dev/ata/ata-pci.h
  stable/11/sys/dev/ata/ata-sata.c
  stable/11/sys/dev/ata/chipsets/ata-acard.c
  stable/11/sys/dev/ata/chipsets/ata-acerlabs.c
  stable/11/sys/dev/ata/chipsets/ata-amd.c
  stable/11/sys/dev/ata/chipsets/ata-ati.c
  stable/11/sys/dev/ata/chipsets/ata-cenatek.c
  stable/11/sys/dev/ata/chipsets/ata-cypress.c
  stable/11/sys/dev/ata/chipsets/ata-cyrix.c
  stable/11/sys/dev/ata/chipsets/ata-fsl.c
  stable/11/sys/dev/ata/chipsets/ata-highpoint.c
  stable/11/sys/dev/ata/chipsets/ata-intel.c
  stable/11/sys/dev/ata/chipsets/ata-ite.c
  stable/11/sys/dev/ata/chipsets/ata-jmicron.c
  stable/11/sys/dev/ata/chipsets/ata-marvell.c
  stable/11/sys/dev/ata/chipsets/ata-micron.c
  stable/11/sys/dev/ata/chipsets/ata-national.c
  stable/11/sys/dev/ata/chipsets/ata-netcell.c
  stable/11/sys/dev/ata/chipsets/ata-nvidia.c
  stable/11/sys/dev/ata/chipsets/ata-promise.c
  stable/11/sys/dev/ata/chipsets/ata-serverworks.c
  stable/11/sys/dev/ata/chipsets/ata-siliconimage.c
  stable/11/sys/dev/ata/chipsets/ata-sis.c
  stable/11/sys/dev/ata/chipsets/ata-via.c
  stable/11/sys/dev/ath/ah_osdep.c
  stable/11/sys/dev/ath/ah_osdep.h
  stable/11/sys/dev/ath/ath_dfs/null/dfs_null.c
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9002phy.h
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9280_olc.c
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9280_olc.h
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_cal.c
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_cal.h
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.c
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.h
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_phy.c
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9285_phy.h
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9285phy.h
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9287_cal.c
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9287_cal.h
  stable/11/sys/dev/ath/ath_hal/ar9002/ar9287_olc.c
  stable/11/sys/dev/ath/ath_hal/ar9003/ar9300_devid.h
  stable/11/sys/dev/ath/ath_rate/amrr/amrr.c
  stable/11/sys/dev/ath/ath_rate/amrr/amrr.h
  stable/11/sys/dev/ath/ath_rate/onoe/onoe.c
  stable/11/sys/dev/ath/ath_rate/onoe/onoe.h
  stable/11/sys/dev/ath/ath_rate/sample/sample.c
  stable/11/sys/dev/ath/ath_rate/sample/sample.h
  stable/11/sys/dev/ath/ath_rate/sample/tx_schedules.h
  stable/11/sys/dev/ath/if_ath.c
  stable/11/sys/dev/ath/if_ath_ahb.c
  stable/11/sys/dev/ath/if_ath_alq.c
  stable/11/sys/dev/ath/if_ath_alq.h
  stable/11/sys/dev/ath/if_ath_beacon.c
  stable/11/sys/dev/ath/if_ath_beacon.h
  stable/11/sys/dev/ath/if_ath_btcoex.c
  stable/11/sys/dev/ath/if_ath_btcoex.h
  stable/11/sys/dev/ath/if_ath_debug.c
  stable/11/sys/dev/ath/if_ath_debug.h
  stable/11/sys/dev/ath/if_ath_keycache.c
  stable/11/sys/dev/ath/if_ath_keycache.h
  stable/11/sys/dev/ath/if_ath_led.c
  stable/11/sys/dev/ath/if_ath_led.h
  stable/11/sys/dev/ath/if_ath_lna_div.c
  stable/11/sys/dev/ath/if_ath_lna_div.h
  stable/11/sys/dev/ath/if_ath_misc.h
  stable/11/sys/dev/ath/if_ath_pci.c
  stable/11/sys/dev/ath/if_ath_rx.c
  stable/11/sys/dev/ath/if_ath_rx.h
  stable/11/sys/dev/ath/if_ath_rx_edma.c
  stable/11/sys/dev/ath/if_ath_rx_edma.h
  stable/11/sys/dev/ath/if_ath_spectral.c
  stable/11/sys/dev/ath/if_ath_spectral.h
  stable/11/sys/dev/ath/if_ath_sysctl.c
  stable/11/sys/dev/ath/if_ath_sysctl.h
  stable/11/sys/dev/ath/if_ath_tdma.c
  stable/11/sys/dev/ath/if_ath_tdma.h
  stable/11/sys/dev/ath/if_ath_tsf.h
  stable/11/sys/dev/ath/if_ath_tx.c
  stable/11/sys/dev/ath/if_ath_tx.h
  stable/11/sys/dev/ath/if_ath_tx_edma.c
  stable/11/sys/dev/ath/if_ath_tx_edma.h
  stable/11/sys/dev/ath/if_ath_tx_ht.c
  stable/11/sys/dev/ath/if_ath_tx_ht.h
  stable/11/sys/dev/ath/if_athdfs.h
  stable/11/sys/dev/ath/if_athioctl.h
  stable/11/sys/dev/ath/if_athrate.h
  stable/11/sys/dev/ath/if_athvar.h
  stable/11/sys/dev/atkbdc/atkbd.c
  stable/11/sys/dev/atkbdc/atkbd_atkbdc.c
  stable/11/sys/dev/atkbdc/atkbdc.c
  stable/11/sys/dev/atkbdc/atkbdc_ebus.c
  stable/11/sys/dev/atkbdc/atkbdc_isa.c
  stable/11/sys/dev/atkbdc/atkbdc_subr.c
  stable/11/sys/dev/atkbdc/atkbdc_subr.h
  stable/11/sys/dev/atkbdc/atkbdcreg.h
  stable/11/sys/dev/atkbdc/atkbdreg.h
  stable/11/sys/dev/auxio/auxio.c
  stable/11/sys/dev/auxio/auxioreg.h
  stable/11/sys/dev/bce/if_bce.c
  stable/11/sys/dev/bce/if_bcefw.h
  stable/11/sys/dev/bce/if_bcereg.h
  stable/11/sys/dev/bfe/if_bfe.c
  stable/11/sys/dev/bfe/if_bfereg.h
  stable/11/sys/dev/bge/if_bge.c
  stable/11/sys/dev/bge/if_bgereg.h
  stable/11/sys/dev/bktr/bktr_audio.c
  stable/11/sys/dev/bktr/bktr_audio.h
  stable/11/sys/dev/bktr/bktr_card.c
  stable/11/sys/dev/bktr/bktr_card.h
  stable/11/sys/dev/bktr/bktr_core.c
  stable/11/sys/dev/bktr/bktr_core.h
  stable/11/sys/dev/bktr/bktr_i2c.c
  stable/11/sys/dev/bktr/bktr_i2c.h
  stable/11/sys/dev/bktr/bktr_mem.c
  stable/11/sys/dev/bktr/bktr_mem.h
  stable/11/sys/dev/bktr/bktr_os.c
  stable/11/sys/dev/bktr/bktr_os.h
  stable/11/sys/dev/bktr/bktr_reg.h
  stable/11/sys/dev/bktr/bktr_tuner.c
  stable/11/sys/dev/bktr/bktr_tuner.h
  stable/11/sys/dev/bktr/ioctl_meteor.h
  stable/11/sys/dev/bktr/msp34xx.c
  stable/11/sys/dev/bm/if_bm.c
  stable/11/sys/dev/bm/if_bmreg.h
  stable/11/sys/dev/bm/if_bmvar.h
  stable/11/sys/dev/buslogic/bt.c
  stable/11/sys/dev/buslogic/bt_isa.c
  stable/11/sys/dev/buslogic/bt_pci.c
  stable/11/sys/dev/buslogic/btreg.h
  stable/11/sys/dev/bvm/bvm_console.c
  stable/11/sys/dev/bvm/bvm_dbg.c
  stable/11/sys/dev/bwi/bitops.h
  stable/11/sys/dev/bwi/bwimac.c
  stable/11/sys/dev/bwi/bwimac.h
  stable/11/sys/dev/bwi/bwiphy.c
  stable/11/sys/dev/bwi/bwiphy.h
  stable/11/sys/dev/bwi/bwirf.c
  stable/11/sys/dev/bwi/bwirf.h
  stable/11/sys/dev/bwi/if_bwi.c
  stable/11/sys/dev/bwi/if_bwi_pci.c
  stable/11/sys/dev/bwi/if_bwireg.h
  stable/11/sys/dev/bwi/if_bwivar.h
  stable/11/sys/dev/bwn/if_bwn.c
  stable/11/sys/dev/bwn/if_bwnreg.h
  stable/11/sys/dev/bwn/if_bwnvar.h
  stable/11/sys/dev/bxe/57710_init_values.c
  stable/11/sys/dev/bxe/57710_int_offsets.h
  stable/11/sys/dev/bxe/57711_init_values.c
  stable/11/sys/dev/bxe/57711_int_offsets.h
  stable/11/sys/dev/bxe/57712_init_values.c
  stable/11/sys/dev/bxe/57712_int_offsets.h
  stable/11/sys/dev/bxe/bxe.c
  stable/11/sys/dev/bxe/bxe.h
  stable/11/sys/dev/bxe/bxe_dcb.h
  stable/11/sys/dev/bxe/bxe_debug.c
  stable/11/sys/dev/bxe/bxe_elink.c
  stable/11/sys/dev/bxe/bxe_elink.h
  stable/11/sys/dev/bxe/bxe_stats.c
  stable/11/sys/dev/bxe/bxe_stats.h
  stable/11/sys/dev/bxe/ecore_fw_defs.h
  stable/11/sys/dev/bxe/ecore_hsi.h
  stable/11/sys/dev/bxe/ecore_init.h
  stable/11/sys/dev/bxe/ecore_init_ops.h
  stable/11/sys/dev/bxe/ecore_mfw_req.h
  stable/11/sys/dev/bxe/ecore_reg.h
  stable/11/sys/dev/bxe/ecore_sp.c
  stable/11/sys/dev/bxe/ecore_sp.h
  stable/11/sys/dev/cadence/if_cgem.c
  stable/11/sys/dev/cadence/if_cgem_hw.h
  stable/11/sys/dev/cardbus/cardbus.c
  stable/11/sys/dev/cardbus/cardbus_cis.c
  stable/11/sys/dev/cardbus/cardbus_cis.h
  stable/11/sys/dev/cardbus/cardbus_device.c
  stable/11/sys/dev/cardbus/cardbusreg.h
  stable/11/sys/dev/cardbus/cardbusvar.h
  stable/11/sys/dev/cas/if_cas.c
  stable/11/sys/dev/cas/if_casreg.h
  stable/11/sys/dev/cas/if_casvar.h
  stable/11/sys/dev/cesa/cesa.c
  stable/11/sys/dev/cesa/cesa.h
  stable/11/sys/dev/cfe/cfe_api.c
  stable/11/sys/dev/cfe/cfe_api.h
  stable/11/sys/dev/cfe/cfe_api_int.h
  stable/11/sys/dev/cfe/cfe_console.c
  stable/11/sys/dev/cfe/cfe_env.c
  stable/11/sys/dev/cfe/cfe_error.h
  stable/11/sys/dev/cfe/cfe_ioctl.h
  stable/11/sys/dev/cfe/cfe_resource.c
  stable/11/sys/dev/cfi/cfi_bus_fdt.c
  stable/11/sys/dev/cfi/cfi_bus_ixp4xx.c
  stable/11/sys/dev/cfi/cfi_bus_nexus.c
  stable/11/sys/dev/cfi/cfi_core.c
  stable/11/sys/dev/cfi/cfi_dev.c
  stable/11/sys/dev/cfi/cfi_disk.c
  stable/11/sys/dev/cfi/cfi_reg.h
  stable/11/sys/dev/cfi/cfi_var.h
  stable/11/sys/dev/ciss/ciss.c
  stable/11/sys/dev/ciss/cissio.h
  stable/11/sys/dev/ciss/cissreg.h
  stable/11/sys/dev/ciss/cissvar.h
  stable/11/sys/dev/cm/if_cm_isa.c
  stable/11/sys/dev/cm/smc90cx6.c
  stable/11/sys/dev/cm/smc90cx6reg.h
  stable/11/sys/dev/cm/smc90cx6var.h
  stable/11/sys/dev/cmx/cmx_pccard.c
  stable/11/sys/dev/cmx/cmxreg.h
  stable/11/sys/dev/cmx/cmxvar.h
  stable/11/sys/dev/coretemp/coretemp.c
  stable/11/sys/dev/cpuctl/cpuctl.c
  stable/11/sys/dev/cpufreq/ichss.c
  stable/11/sys/dev/cs/if_cs.c
  stable/11/sys/dev/cs/if_cs_isa.c
  stable/11/sys/dev/cs/if_cs_pccard.c
  stable/11/sys/dev/cs/if_csreg.h
  stable/11/sys/dev/cs/if_csvar.h
  stable/11/sys/dev/cxgb/bin2h.pl
  stable/11/sys/dev/cxgb/common/cxgb_ael1002.c
  stable/11/sys/dev/cxgb/common/cxgb_aq100x.c
  stable/11/sys/dev/cxgb/common/cxgb_common.h
  stable/11/sys/dev/cxgb/common/cxgb_firmware_exports.h
  stable/11/sys/dev/cxgb/common/cxgb_mc5.c
  stable/11/sys/dev/cxgb/common/cxgb_mv88e1xxx.c
  stable/11/sys/dev/cxgb/common/cxgb_regs.h
  stable/11/sys/dev/cxgb/common/cxgb_sge_defs.h
  stable/11/sys/dev/cxgb/common/cxgb_t3_cpl.h
  stable/11/sys/dev/cxgb/common/cxgb_t3_hw.c
  stable/11/sys/dev/cxgb/common/cxgb_tcb.h
  stable/11/sys/dev/cxgb/common/cxgb_tn1010.c
  stable/11/sys/dev/cxgb/common/cxgb_vsc7323.c
  stable/11/sys/dev/cxgb/common/cxgb_vsc8211.c
  stable/11/sys/dev/cxgb/common/cxgb_xgmac.c
  stable/11/sys/dev/cxgb/cxgb_adapter.h
  stable/11/sys/dev/cxgb/cxgb_ioctl.h
  stable/11/sys/dev/cxgb/cxgb_main.c
  stable/11/sys/dev/cxgb/cxgb_offload.h
  stable/11/sys/dev/cxgb/cxgb_osdep.h
  stable/11/sys/dev/cxgb/cxgb_sge.c
  stable/11/sys/dev/cxgb/cxgb_t3fw.h
  stable/11/sys/dev/cxgb/sys/mvec.h
  stable/11/sys/dev/cxgb/sys/uipc_mvec.c
  stable/11/sys/dev/cxgb/t3b_protocol_sram.h
  stable/11/sys/dev/cxgb/t3b_tp_eeprom.h
  stable/11/sys/dev/cxgb/t3c_protocol_sram.h
  stable/11/sys/dev/cxgb/t3c_tp_eeprom.h
  stable/11/sys/dev/cxgbe/adapter.h
  stable/11/sys/dev/cxgbe/common/common.h
  stable/11/sys/dev/cxgbe/common/t4_hw.c
  stable/11/sys/dev/cxgbe/common/t4_hw.h
  stable/11/sys/dev/cxgbe/common/t4_msg.h
  stable/11/sys/dev/cxgbe/common/t4_regs.h
  stable/11/sys/dev/cxgbe/common/t4_regs_values.h
  stable/11/sys/dev/cxgbe/common/t4_tcb.h
  stable/11/sys/dev/cxgbe/iw_cxgbe/cm.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/cq.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/device.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/ev.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/id_table.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h
  stable/11/sys/dev/cxgbe/iw_cxgbe/mem.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/provider.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/qp.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/resource.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/t4.h
  stable/11/sys/dev/cxgbe/iw_cxgbe/user.h
  stable/11/sys/dev/cxgbe/offload.h
  stable/11/sys/dev/cxgbe/osdep.h
  stable/11/sys/dev/cxgbe/t4_ioctl.h
  stable/11/sys/dev/cxgbe/t4_l2t.c
  stable/11/sys/dev/cxgbe/t4_l2t.h
  stable/11/sys/dev/cxgbe/t4_main.c
  stable/11/sys/dev/cxgbe/t4_sge.c
  stable/11/sys/dev/cxgbe/t4_tracer.c
  stable/11/sys/dev/cxgbe/tom/t4_connect.c
  stable/11/sys/dev/cxgbe/tom/t4_cpl_io.c
  stable/11/sys/dev/cxgbe/tom/t4_ddp.c
  stable/11/sys/dev/cxgbe/tom/t4_listen.c
  stable/11/sys/dev/cxgbe/tom/t4_tom.c
  stable/11/sys/dev/cxgbe/tom/t4_tom.h
  stable/11/sys/dev/cxgbe/tom/t4_tom_l2t.c
  stable/11/sys/dev/cxgbe/tom/t4_tom_l2t.h
  stable/11/sys/dev/cy/cy.c
  stable/11/sys/dev/cy/cy_isa.c
  stable/11/sys/dev/cy/cy_pci.c
  stable/11/sys/dev/cy/cyreg.h
  stable/11/sys/dev/cy/cyvar.h
  stable/11/sys/dev/dc/dcphy.c
  stable/11/sys/dev/dc/if_dc.c
  stable/11/sys/dev/dc/if_dcreg.h
  stable/11/sys/dev/dc/pnphy.c
  stable/11/sys/dev/dcons/dcons.c
  stable/11/sys/dev/dcons/dcons.h
  stable/11/sys/dev/dcons/dcons_crom.c
  stable/11/sys/dev/dcons/dcons_os.c
  stable/11/sys/dev/dcons/dcons_os.h
  stable/11/sys/dev/de/dc21040reg.h
  stable/11/sys/dev/de/if_de.c
  stable/11/sys/dev/de/if_devar.h
  stable/11/sys/dev/dpms/dpms.c
  stable/11/sys/dev/dpt/dpt.h
  stable/11/sys/dev/dpt/dpt_pci.c
  stable/11/sys/dev/dpt/dpt_scsi.c
  stable/11/sys/dev/drm2/drm_gem.c
  stable/11/sys/dev/drm2/drm_gem_names.c
  stable/11/sys/dev/drm2/drm_gem_names.h
  stable/11/sys/dev/drm2/drm_linux_list_sort.c
  stable/11/sys/dev/drm2/i915/i915_gem.c
  stable/11/sys/dev/e1000/e1000_80003es2lan.c
  stable/11/sys/dev/e1000/e1000_80003es2lan.h
  stable/11/sys/dev/e1000/e1000_82540.c
  stable/11/sys/dev/e1000/e1000_82541.c
  stable/11/sys/dev/e1000/e1000_82541.h
  stable/11/sys/dev/e1000/e1000_82542.c
  stable/11/sys/dev/e1000/e1000_82543.c
  stable/11/sys/dev/e1000/e1000_82543.h
  stable/11/sys/dev/e1000/e1000_82571.c
  stable/11/sys/dev/e1000/e1000_82571.h
  stable/11/sys/dev/e1000/e1000_82575.c
  stable/11/sys/dev/e1000/e1000_82575.h
  stable/11/sys/dev/e1000/e1000_api.c
  stable/11/sys/dev/e1000/e1000_api.h
  stable/11/sys/dev/e1000/e1000_defines.h
  stable/11/sys/dev/e1000/e1000_hw.h
  stable/11/sys/dev/e1000/e1000_i210.c
  stable/11/sys/dev/e1000/e1000_i210.h
  stable/11/sys/dev/e1000/e1000_ich8lan.c
  stable/11/sys/dev/e1000/e1000_ich8lan.h
  stable/11/sys/dev/e1000/e1000_mac.c
  stable/11/sys/dev/e1000/e1000_mac.h
  stable/11/sys/dev/e1000/e1000_manage.c
  stable/11/sys/dev/e1000/e1000_manage.h
  stable/11/sys/dev/e1000/e1000_mbx.c
  stable/11/sys/dev/e1000/e1000_mbx.h
  stable/11/sys/dev/e1000/e1000_nvm.c
  stable/11/sys/dev/e1000/e1000_nvm.h
  stable/11/sys/dev/e1000/e1000_osdep.c
  stable/11/sys/dev/e1000/e1000_osdep.h
  stable/11/sys/dev/e1000/e1000_phy.c
  stable/11/sys/dev/e1000/e1000_phy.h
  stable/11/sys/dev/e1000/e1000_regs.h
  stable/11/sys/dev/e1000/e1000_vf.c
  stable/11/sys/dev/e1000/e1000_vf.h
  stable/11/sys/dev/e1000/if_em.c
  stable/11/sys/dev/e1000/if_em.h
  stable/11/sys/dev/ed/ax88x90reg.h
  stable/11/sys/dev/ed/dl100xxreg.h
  stable/11/sys/dev/ed/if_ed.c
  stable/11/sys/dev/ed/if_ed_3c503.c
  stable/11/sys/dev/ed/if_ed_hpp.c
  stable/11/sys/dev/ed/if_ed_isa.c
  stable/11/sys/dev/ed/if_ed_novell.c
  stable/11/sys/dev/ed/if_ed_pccard.c
  stable/11/sys/dev/ed/if_ed_pci.c
  stable/11/sys/dev/ed/if_ed_rtl80x9.c
  stable/11/sys/dev/ed/if_ed_sic.c
  stable/11/sys/dev/ed/if_ed_wd80x3.c
  stable/11/sys/dev/ed/if_edvar.h
  stable/11/sys/dev/ed/rtl80x9reg.h
  stable/11/sys/dev/ed/tc5299jreg.h
  stable/11/sys/dev/ep/if_ep.c
  stable/11/sys/dev/ep/if_ep_isa.c
  stable/11/sys/dev/ep/if_ep_pccard.c
  stable/11/sys/dev/ep/if_epreg.h
  stable/11/sys/dev/ep/if_epvar.h
  stable/11/sys/dev/esp/am53c974reg.h
  stable/11/sys/dev/esp/esp_pci.c
  stable/11/sys/dev/esp/esp_sbus.c
  stable/11/sys/dev/esp/ncr53c9x.c
  stable/11/sys/dev/esp/ncr53c9xreg.h
  stable/11/sys/dev/esp/ncr53c9xvar.h
  stable/11/sys/dev/et/if_et.c
  stable/11/sys/dev/et/if_etreg.h
  stable/11/sys/dev/et/if_etvar.h
  stable/11/sys/dev/etherswitch/arswitch/arswitch.c
  stable/11/sys/dev/etherswitch/arswitch/arswitch_7240.c
  stable/11/sys/dev/etherswitch/arswitch/arswitch_7240.h
  stable/11/sys/dev/etherswitch/arswitch/arswitch_8216.c
  stable/11/sys/dev/etherswitch/arswitch/arswitch_8216.h
  stable/11/sys/dev/etherswitch/arswitch/arswitch_8226.c
  stable/11/sys/dev/etherswitch/arswitch/arswitch_8226.h
  stable/11/sys/dev/etherswitch/arswitch/arswitch_8316.c
  stable/11/sys/dev/etherswitch/arswitch/arswitch_8316.h
  stable/11/sys/dev/etherswitch/arswitch/arswitch_8327.c
  stable/11/sys/dev/etherswitch/arswitch/arswitch_8327.h
  stable/11/sys/dev/etherswitch/arswitch/arswitch_9340.c
  stable/11/sys/dev/etherswitch/arswitch/arswitch_9340.h
  stable/11/sys/dev/etherswitch/arswitch/arswitch_phy.c
  stable/11/sys/dev/etherswitch/arswitch/arswitch_phy.h
  stable/11/sys/dev/etherswitch/arswitch/arswitch_reg.c
  stable/11/sys/dev/etherswitch/arswitch/arswitch_reg.h
  stable/11/sys/dev/etherswitch/arswitch/arswitch_vlans.c
  stable/11/sys/dev/etherswitch/arswitch/arswitch_vlans.h
  stable/11/sys/dev/etherswitch/arswitch/arswitchreg.h
  stable/11/sys/dev/etherswitch/arswitch/arswitchvar.h
  stable/11/sys/dev/etherswitch/etherswitch.c
  stable/11/sys/dev/etherswitch/ip17x/ip175c.c
  stable/11/sys/dev/etherswitch/ip17x/ip175c.h
  stable/11/sys/dev/etherswitch/ip17x/ip175d.c
  stable/11/sys/dev/etherswitch/ip17x/ip175d.h
  stable/11/sys/dev/etherswitch/ip17x/ip17x.c
  stable/11/sys/dev/etherswitch/ip17x/ip17x_phy.c
  stable/11/sys/dev/etherswitch/ip17x/ip17x_phy.h
  stable/11/sys/dev/etherswitch/ip17x/ip17x_reg.h
  stable/11/sys/dev/etherswitch/ip17x/ip17x_var.h
  stable/11/sys/dev/etherswitch/ip17x/ip17x_vlans.c
  stable/11/sys/dev/etherswitch/ip17x/ip17x_vlans.h
  stable/11/sys/dev/etherswitch/miiproxy.c
  stable/11/sys/dev/etherswitch/miiproxy.h
  stable/11/sys/dev/etherswitch/rtl8366/rtl8366rb.c
  stable/11/sys/dev/etherswitch/rtl8366/rtl8366rbvar.h
  stable/11/sys/dev/etherswitch/ukswitch/ukswitch.c
  stable/11/sys/dev/ex/if_ex.c
  stable/11/sys/dev/ex/if_ex_isa.c
  stable/11/sys/dev/ex/if_ex_pccard.c
  stable/11/sys/dev/ex/if_exreg.h
  stable/11/sys/dev/ex/if_exvar.h
  stable/11/sys/dev/exca/exca.c
  stable/11/sys/dev/exca/excareg.h
  stable/11/sys/dev/exca/excavar.h
  stable/11/sys/dev/fb/creator.c
  stable/11/sys/dev/fb/creatorreg.h
  stable/11/sys/dev/fb/fb.c
  stable/11/sys/dev/fb/fbd.c
  stable/11/sys/dev/fb/fbreg.h
  stable/11/sys/dev/fb/gallant12x22.c
  stable/11/sys/dev/fb/machfb.c
  stable/11/sys/dev/fb/s3_pci.c
  stable/11/sys/dev/fb/splash.c
  stable/11/sys/dev/fb/splash_bmp.c
  stable/11/sys/dev/fb/splash_pcx.c
  stable/11/sys/dev/fb/splash_txt.c
  stable/11/sys/dev/fb/splashreg.h
  stable/11/sys/dev/fb/vesa.c
  stable/11/sys/dev/fb/vesa.h
  stable/11/sys/dev/fb/vga.c
  stable/11/sys/dev/fb/vgareg.h
  stable/11/sys/dev/fdc/fdc.c
  stable/11/sys/dev/fdc/fdc_acpi.c
  stable/11/sys/dev/fdc/fdc_isa.c
  stable/11/sys/dev/fdc/fdc_pccard.c
  stable/11/sys/dev/fdc/fdcvar.h
  stable/11/sys/dev/fdt/fdt_common.c
  stable/11/sys/dev/fdt/fdt_common.h
  stable/11/sys/dev/fdt/fdt_powerpc.c
  stable/11/sys/dev/fdt/fdt_slicer.c
  stable/11/sys/dev/fdt/simplebus.c
  stable/11/sys/dev/ffec/if_ffec.c
  stable/11/sys/dev/ffec/if_ffecreg.h
  stable/11/sys/dev/filemon/filemon.c
  stable/11/sys/dev/filemon/filemon.h
  stable/11/sys/dev/filemon/filemon_wrapper.c
  stable/11/sys/dev/firewire/firewire.c
  stable/11/sys/dev/firewire/firewire.h
  stable/11/sys/dev/firewire/firewire_phy.h
  stable/11/sys/dev/firewire/firewirereg.h
  stable/11/sys/dev/firewire/fwcrom.c
  stable/11/sys/dev/firewire/fwdev.c
  stable/11/sys/dev/firewire/fwdma.c
  stable/11/sys/dev/firewire/fwdma.h
  stable/11/sys/dev/firewire/fwmem.c
  stable/11/sys/dev/firewire/fwmem.h
  stable/11/sys/dev/firewire/fwohci.c
  stable/11/sys/dev/firewire/fwohci_pci.c
  stable/11/sys/dev/firewire/fwohcireg.h
  stable/11/sys/dev/firewire/fwohcivar.h
  stable/11/sys/dev/firewire/fwphyreg.h
  stable/11/sys/dev/firewire/iec13213.h
  stable/11/sys/dev/firewire/iec68113.h
  stable/11/sys/dev/firewire/if_fwe.c
  stable/11/sys/dev/firewire/if_fwevar.h
  stable/11/sys/dev/firewire/if_fwip.c
  stable/11/sys/dev/firewire/if_fwipvar.h
  stable/11/sys/dev/firewire/sbp.c
  stable/11/sys/dev/firewire/sbp.h
  stable/11/sys/dev/firewire/sbp_targ.c
  stable/11/sys/dev/flash/at45d.c
  stable/11/sys/dev/flash/mx25l.c
  stable/11/sys/dev/flash/mx25lreg.h
  stable/11/sys/dev/fxp/if_fxp.c
  stable/11/sys/dev/fxp/if_fxpreg.h
  stable/11/sys/dev/fxp/if_fxpvar.h
  stable/11/sys/dev/fxp/inphy.c
  stable/11/sys/dev/fxp/inphyreg.h
  stable/11/sys/dev/fxp/rcvbundl.h
  stable/11/sys/dev/gem/if_gem.c
  stable/11/sys/dev/gem/if_gem_pci.c
  stable/11/sys/dev/gem/if_gem_sbus.c
  stable/11/sys/dev/gem/if_gemreg.h
  stable/11/sys/dev/gem/if_gemvar.h
  stable/11/sys/dev/glxiic/glxiic.c
  stable/11/sys/dev/glxsb/glxsb.h
  stable/11/sys/dev/glxsb/glxsb_hash.c
  stable/11/sys/dev/gpio/gpiobus.c
  stable/11/sys/dev/gpio/gpiobusvar.h
  stable/11/sys/dev/gpio/gpioc.c
  stable/11/sys/dev/gpio/gpioiic.c
  stable/11/sys/dev/gpio/gpioled.c
  stable/11/sys/dev/gpio/ofw_gpiobus.c
  stable/11/sys/dev/gxemul/cons/gxemul_cons.c
  stable/11/sys/dev/gxemul/disk/gxemul_disk.c
  stable/11/sys/dev/gxemul/disk/gxemul_diskreg.h
  stable/11/sys/dev/gxemul/ether/gxreg.h
  stable/11/sys/dev/gxemul/ether/if_gx.c
  stable/11/sys/dev/hifn/hifn7751.c
  stable/11/sys/dev/hifn/hifn7751reg.h
  stable/11/sys/dev/hifn/hifn7751var.h
  stable/11/sys/dev/hme/if_hme.c
  stable/11/sys/dev/hme/if_hme_pci.c
  stable/11/sys/dev/hme/if_hme_sbus.c
  stable/11/sys/dev/hme/if_hmereg.h
  stable/11/sys/dev/hme/if_hmevar.h
  stable/11/sys/dev/hpt27xx/array.h
  stable/11/sys/dev/hpt27xx/him.h
  stable/11/sys/dev/hpt27xx/himfuncs.h
  stable/11/sys/dev/hpt27xx/hpt27xx_config.c
  stable/11/sys/dev/hpt27xx/hpt27xx_config.h
  stable/11/sys/dev/hpt27xx/hpt27xx_os_bsd.c
  stable/11/sys/dev/hpt27xx/hpt27xx_osm_bsd.c
  stable/11/sys/dev/hpt27xx/hptintf.h
  stable/11/sys/dev/hpt27xx/ldm.h
  stable/11/sys/dev/hpt27xx/list.h
  stable/11/sys/dev/hpt27xx/os_bsd.h
  stable/11/sys/dev/hpt27xx/osm.h
  stable/11/sys/dev/hpt27xx/wj.h
  stable/11/sys/dev/hptiop/hptiop.c
  stable/11/sys/dev/hptiop/hptiop.h
  stable/11/sys/dev/hptmv/access601.h
  stable/11/sys/dev/hptmv/array.h
  stable/11/sys/dev/hptmv/atapi.h
  stable/11/sys/dev/hptmv/command.h
  stable/11/sys/dev/hptmv/entry.c
  stable/11/sys/dev/hptmv/global.h
  stable/11/sys/dev/hptmv/gui_lib.c
  stable/11/sys/dev/hptmv/hptintf.h
  stable/11/sys/dev/hptmv/hptproc.c
  stable/11/sys/dev/hptmv/ioctl.c
  stable/11/sys/dev/hptmv/mv.c
  stable/11/sys/dev/hptmv/mvOs.h
  stable/11/sys/dev/hptmv/mvSata.h
  stable/11/sys/dev/hptmv/mvStorageDev.h
  stable/11/sys/dev/hptmv/osbsd.h
  stable/11/sys/dev/hptmv/raid5n.h
  stable/11/sys/dev/hptmv/vdevice.h
  stable/11/sys/dev/hptnr/array.h
  stable/11/sys/dev/hptnr/him.h
  stable/11/sys/dev/hptnr/himfuncs.h
  stable/11/sys/dev/hptnr/hptintf.h
  stable/11/sys/dev/hptnr/hptnr_config.c
  stable/11/sys/dev/hptnr/hptnr_config.h
  stable/11/sys/dev/hptnr/hptnr_os_bsd.c
  stable/11/sys/dev/hptnr/hptnr_osm_bsd.c
  stable/11/sys/dev/hptnr/ldm.h
  stable/11/sys/dev/hptnr/list.h
  stable/11/sys/dev/hptnr/os_bsd.h
  stable/11/sys/dev/hptnr/osm.h
  stable/11/sys/dev/hptnr/wj.h
  stable/11/sys/dev/hptrr/array.h
  stable/11/sys/dev/hptrr/him.h
  stable/11/sys/dev/hptrr/himfuncs.h
  stable/11/sys/dev/hptrr/hptintf.h
  stable/11/sys/dev/hptrr/hptrr_config.c
  stable/11/sys/dev/hptrr/hptrr_config.h
  stable/11/sys/dev/hptrr/hptrr_os_bsd.c
  stable/11/sys/dev/hptrr/hptrr_osm_bsd.c
  stable/11/sys/dev/hptrr/ldm.h
  stable/11/sys/dev/hptrr/list.h
  stable/11/sys/dev/hptrr/os_bsd.h
  stable/11/sys/dev/hptrr/osm.h
  stable/11/sys/dev/hwpmc/hwpmc_amd.c
  stable/11/sys/dev/hwpmc/hwpmc_amd.h
  stable/11/sys/dev/hwpmc/hwpmc_arm.c
  stable/11/sys/dev/hwpmc/hwpmc_core.c
  stable/11/sys/dev/hwpmc/hwpmc_core.h
  stable/11/sys/dev/hwpmc/hwpmc_intel.c
  stable/11/sys/dev/hwpmc/hwpmc_logging.c
  stable/11/sys/dev/hwpmc/hwpmc_mips.c
  stable/11/sys/dev/hwpmc/hwpmc_mips24k.c
  stable/11/sys/dev/hwpmc/hwpmc_mod.c
  stable/11/sys/dev/hwpmc/hwpmc_mpc7xxx.c
  stable/11/sys/dev/hwpmc/hwpmc_octeon.c
  stable/11/sys/dev/hwpmc/hwpmc_pentium.c
  stable/11/sys/dev/hwpmc/hwpmc_pentium.h
  stable/11/sys/dev/hwpmc/hwpmc_piv.c
  stable/11/sys/dev/hwpmc/hwpmc_piv.h
  stable/11/sys/dev/hwpmc/hwpmc_powerpc.c
  stable/11/sys/dev/hwpmc/hwpmc_powerpc.h
  stable/11/sys/dev/hwpmc/hwpmc_ppc970.c
  stable/11/sys/dev/hwpmc/hwpmc_ppro.c
  stable/11/sys/dev/hwpmc/hwpmc_ppro.h
  stable/11/sys/dev/hwpmc/hwpmc_soft.c
  stable/11/sys/dev/hwpmc/hwpmc_soft.h
  stable/11/sys/dev/hwpmc/hwpmc_sparc64.c
  stable/11/sys/dev/hwpmc/hwpmc_tsc.c
  stable/11/sys/dev/hwpmc/hwpmc_tsc.h
  stable/11/sys/dev/hwpmc/hwpmc_uncore.c
  stable/11/sys/dev/hwpmc/hwpmc_uncore.h
  stable/11/sys/dev/hwpmc/hwpmc_x86.c
  stable/11/sys/dev/hwpmc/hwpmc_xscale.c
  stable/11/sys/dev/hwpmc/hwpmc_xscale.h
  stable/11/sys/dev/hwpmc/pmc_events.h
  stable/11/sys/dev/hyperv/include/hyperv.h
  stable/11/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
  stable/11/sys/dev/hyperv/storvsc/hv_vstorage.h
  stable/11/sys/dev/hyperv/utilities/hv_kvp.h
  stable/11/sys/dev/ic/cd1400.h
  stable/11/sys/dev/ic/cd180.h
  stable/11/sys/dev/ic/esp.h
  stable/11/sys/dev/ic/i8253reg.h
  stable/11/sys/dev/ic/i82586.h
  stable/11/sys/dev/ic/i8259.h
  stable/11/sys/dev/ic/nec765.h
  stable/11/sys/dev/ic/ns16550.h
  stable/11/sys/dev/ic/quicc.h
  stable/11/sys/dev/ic/sab82532.h
  stable/11/sys/dev/ic/via6522reg.h
  stable/11/sys/dev/ic/z8530.h
  stable/11/sys/dev/ichwd/ichwd.c
  stable/11/sys/dev/ichwd/ichwd.h
  stable/11/sys/dev/ida/ida.c
  stable/11/sys/dev/ida/ida_disk.c
  stable/11/sys/dev/ida/ida_pci.c
  stable/11/sys/dev/ida/idareg.h
  stable/11/sys/dev/ida/idavar.h
  stable/11/sys/dev/if_ndis/if_ndis.c
  stable/11/sys/dev/if_ndis/if_ndis_pccard.c
  stable/11/sys/dev/if_ndis/if_ndis_pci.c
  stable/11/sys/dev/if_ndis/if_ndis_usb.c
  stable/11/sys/dev/if_ndis/if_ndisvar.h
  stable/11/sys/dev/iicbus/ad7417.c
  stable/11/sys/dev/iicbus/ad7418.c
  stable/11/sys/dev/iicbus/adt746x.c
  stable/11/sys/dev/iicbus/ds1631.c
  stable/11/sys/dev/iicbus/ds1672.c
  stable/11/sys/dev/iicbus/ds1775.c
  stable/11/sys/dev/iicbus/icee.c
  stable/11/sys/dev/iicbus/if_ic.c
  stable/11/sys/dev/iicbus/iic.c
  stable/11/sys/dev/iicbus/iic.h
  stable/11/sys/dev/iicbus/iicbb.c
  stable/11/sys/dev/iicbus/iicbus.c
  stable/11/sys/dev/iicbus/iicbus.h
  stable/11/sys/dev/iicbus/iicoc.c
  stable/11/sys/dev/iicbus/iicoc.h
  stable/11/sys/dev/iicbus/iiconf.c
  stable/11/sys/dev/iicbus/iiconf.h
  stable/11/sys/dev/iicbus/iicsmb.c
  stable/11/sys/dev/iicbus/max6690.c
  stable/11/sys/dev/iicbus/s35390a.c
  stable/11/sys/dev/iir/iir.c
  stable/11/sys/dev/iir/iir.h
  stable/11/sys/dev/iir/iir_ctrl.c
  stable/11/sys/dev/iir/iir_pci.c
  stable/11/sys/dev/io/iodev.c
  stable/11/sys/dev/io/iodev.h
  stable/11/sys/dev/ipmi/ipmi.c
  stable/11/sys/dev/ipmi/ipmi_acpi.c
  stable/11/sys/dev/ipmi/ipmi_isa.c
  stable/11/sys/dev/ipmi/ipmi_kcs.c
  stable/11/sys/dev/ipmi/ipmi_linux.c
  stable/11/sys/dev/ipmi/ipmi_pci.c
  stable/11/sys/dev/ipmi/ipmi_smbios.c
  stable/11/sys/dev/ipmi/ipmi_smbus.c
  stable/11/sys/dev/ipmi/ipmi_smic.c
  stable/11/sys/dev/ipmi/ipmi_ssif.c
  stable/11/sys/dev/ipmi/ipmivars.h
  stable/11/sys/dev/ips/ips.c
  stable/11/sys/dev/ips/ips.h
  stable/11/sys/dev/ips/ips_commands.c
  stable/11/sys/dev/ips/ips_disk.c
  stable/11/sys/dev/ips/ips_disk.h
  stable/11/sys/dev/ips/ips_ioctl.c
  stable/11/sys/dev/ips/ips_ioctl.h
  stable/11/sys/dev/ips/ips_pci.c
  stable/11/sys/dev/ips/ipsreg.h
  stable/11/sys/dev/ipw/if_ipw.c
  stable/11/sys/dev/ipw/if_ipwreg.h
  stable/11/sys/dev/ipw/if_ipwvar.h
  stable/11/sys/dev/isci/environment.h
  stable/11/sys/dev/isci/isci.c
  stable/11/sys/dev/isci/isci.h
  stable/11/sys/dev/isci/isci_controller.c
  stable/11/sys/dev/isci/isci_domain.c
  stable/11/sys/dev/isci/isci_interrupt.c
  stable/11/sys/dev/isci/isci_io_request.c
  stable/11/sys/dev/isci/isci_logger.c
  stable/11/sys/dev/isci/isci_oem_parameters.c
  stable/11/sys/dev/isci/isci_remote_device.c
  stable/11/sys/dev/isci/isci_sysctl.c
  stable/11/sys/dev/isci/isci_task_request.c
  stable/11/sys/dev/isci/isci_timer.c
  stable/11/sys/dev/isci/scil/intel_ata.h
  stable/11/sys/dev/isci/scil/intel_pci.h
  stable/11/sys/dev/isci/scil/intel_sas.h
  stable/11/sys/dev/isci/scil/intel_sat.h
  stable/11/sys/dev/isci/scil/intel_sata.h
  stable/11/sys/dev/isci/scil/intel_scsi.h
  stable/11/sys/dev/isci/scil/sati.c
  stable/11/sys/dev/isci/scil/sati.h
  stable/11/sys/dev/isci/scil/sati_abort_task_set.c
  stable/11/sys/dev/isci/scil/sati_abort_task_set.h
  stable/11/sys/dev/isci/scil/sati_atapi.c
  stable/11/sys/dev/isci/scil/sati_atapi.h
  stable/11/sys/dev/isci/scil/sati_callbacks.h
  stable/11/sys/dev/isci/scil/sati_design.h
  stable/11/sys/dev/isci/scil/sati_device.c
  stable/11/sys/dev/isci/scil/sati_device.h
  stable/11/sys/dev/isci/scil/sati_inquiry.c
  stable/11/sys/dev/isci/scil/sati_inquiry.h
  stable/11/sys/dev/isci/scil/sati_log_sense.c
  stable/11/sys/dev/isci/scil/sati_log_sense.h
  stable/11/sys/dev/isci/scil/sati_lun_reset.c
  stable/11/sys/dev/isci/scil/sati_lun_reset.h
  stable/11/sys/dev/isci/scil/sati_mode_pages.c
  stable/11/sys/dev/isci/scil/sati_mode_pages.h
  stable/11/sys/dev/isci/scil/sati_mode_select.c
  stable/11/sys/dev/isci/scil/sati_mode_select.h
  stable/11/sys/dev/isci/scil/sati_mode_sense.c
  stable/11/sys/dev/isci/scil/sati_mode_sense.h
  stable/11/sys/dev/isci/scil/sati_mode_sense_10.c
  stable/11/sys/dev/isci/scil/sati_mode_sense_10.h
  stable/11/sys/dev/isci/scil/sati_mode_sense_6.c
  stable/11/sys/dev/isci/scil/sati_mode_sense_6.h
  stable/11/sys/dev/isci/scil/sati_move.c
  stable/11/sys/dev/isci/scil/sati_move.h
  stable/11/sys/dev/isci/scil/sati_passthrough.c
  stable/11/sys/dev/isci/scil/sati_passthrough.h
  stable/11/sys/dev/isci/scil/sati_read.c
  stable/11/sys/dev/isci/scil/sati_read.h
  stable/11/sys/dev/isci/scil/sati_read_buffer.c
  stable/11/sys/dev/isci/scil/sati_read_buffer.h
  stable/11/sys/dev/isci/scil/sati_read_capacity.c
  stable/11/sys/dev/isci/scil/sati_read_capacity.h
  stable/11/sys/dev/isci/scil/sati_reassign_blocks.c
  stable/11/sys/dev/isci/scil/sati_reassign_blocks.h
  stable/11/sys/dev/isci/scil/sati_report_luns.c
  stable/11/sys/dev/isci/scil/sati_report_luns.h
  stable/11/sys/dev/isci/scil/sati_request_sense.c
  stable/11/sys/dev/isci/scil/sati_request_sense.h
  stable/11/sys/dev/isci/scil/sati_start_stop_unit.c
  stable/11/sys/dev/isci/scil/sati_start_stop_unit.h
  stable/11/sys/dev/isci/scil/sati_synchronize_cache.c
  stable/11/sys/dev/isci/scil/sati_synchronize_cache.h
  stable/11/sys/dev/isci/scil/sati_test_unit_ready.c
  stable/11/sys/dev/isci/scil/sati_test_unit_ready.h
  stable/11/sys/dev/isci/scil/sati_translator_sequence.h
  stable/11/sys/dev/isci/scil/sati_types.h
  stable/11/sys/dev/isci/scil/sati_unmap.c
  stable/11/sys/dev/isci/scil/sati_unmap.h
  stable/11/sys/dev/isci/scil/sati_util.c
  stable/11/sys/dev/isci/scil/sati_util.h
  stable/11/sys/dev/isci/scil/sati_verify.c
  stable/11/sys/dev/isci/scil/sati_verify.h
  stable/11/sys/dev/isci/scil/sati_write.c
  stable/11/sys/dev/isci/scil/sati_write.h
  stable/11/sys/dev/isci/scil/sati_write_and_verify.c
  stable/11/sys/dev/isci/scil/sati_write_and_verify.h
  stable/11/sys/dev/isci/scil/sati_write_buffer.c
  stable/11/sys/dev/isci/scil/sati_write_buffer.h
  stable/11/sys/dev/isci/scil/sati_write_long.c
  stable/11/sys/dev/isci/scil/sati_write_long.h
  stable/11/sys/dev/isci/scil/sci_abstract_list.c
  stable/11/sys/dev/isci/scil/sci_abstract_list.h
  stable/11/sys/dev/isci/scil/sci_base_controller.c
  stable/11/sys/dev/isci/scil/sci_base_controller.h
  stable/11/sys/dev/isci/scil/sci_base_domain.c
  stable/11/sys/dev/isci/scil/sci_base_domain.h
  stable/11/sys/dev/isci/scil/sci_base_iterator.c
  stable/11/sys/dev/isci/scil/sci_base_iterator.h
  stable/11/sys/dev/isci/scil/sci_base_library.c
  stable/11/sys/dev/isci/scil/sci_base_library.h
  stable/11/sys/dev/isci/scil/sci_base_logger.c
  stable/11/sys/dev/isci/scil/sci_base_logger.h
  stable/11/sys/dev/isci/scil/sci_base_memory_descriptor_list.c
  stable/11/sys/dev/isci/scil/sci_base_memory_descriptor_list.h
  stable/11/sys/dev/isci/scil/sci_base_memory_descriptor_list_decorator.c
  stable/11/sys/dev/isci/scil/sci_base_object.c
  stable/11/sys/dev/isci/scil/sci_base_object.h
  stable/11/sys/dev/isci/scil/sci_base_observer.c
  stable/11/sys/dev/isci/scil/sci_base_observer.h
  stable/11/sys/dev/isci/scil/sci_base_phy.c
  stable/11/sys/dev/isci/scil/sci_base_phy.h
  stable/11/sys/dev/isci/scil/sci_base_port.c
  stable/11/sys/dev/isci/scil/sci_base_port.h
  stable/11/sys/dev/isci/scil/sci_base_remote_device.c
  stable/11/sys/dev/isci/scil/sci_base_remote_device.h
  stable/11/sys/dev/isci/scil/sci_base_request.c
  stable/11/sys/dev/isci/scil/sci_base_request.h
  stable/11/sys/dev/isci/scil/sci_base_state.h
  stable/11/sys/dev/isci/scil/sci_base_state_machine.c
  stable/11/sys/dev/isci/scil/sci_base_state_machine.h
  stable/11/sys/dev/isci/scil/sci_base_state_machine_logger.c
  stable/11/sys/dev/isci/scil/sci_base_state_machine_logger.h
  stable/11/sys/dev/isci/scil/sci_base_state_machine_observer.c
  stable/11/sys/dev/isci/scil/sci_base_state_machine_observer.h
  stable/11/sys/dev/isci/scil/sci_base_subject.c
  stable/11/sys/dev/isci/scil/sci_base_subject.h
  stable/11/sys/dev/isci/scil/sci_controller.h
  stable/11/sys/dev/isci/scil/sci_controller_constants.h
  stable/11/sys/dev/isci/scil/sci_fast_list.h
  stable/11/sys/dev/isci/scil/sci_iterator.h
  stable/11/sys/dev/isci/scil/sci_library.h
  stable/11/sys/dev/isci/scil/sci_logger.h
  stable/11/sys/dev/isci/scil/sci_memory_descriptor_list.h
  stable/11/sys/dev/isci/scil/sci_memory_descriptor_list_decorator.h
  stable/11/sys/dev/isci/scil/sci_object.h
  stable/11/sys/dev/isci/scil/sci_overview.h
  stable/11/sys/dev/isci/scil/sci_pool.h
  stable/11/sys/dev/isci/scil/sci_simple_list.h
  stable/11/sys/dev/isci/scil/sci_status.h
  stable/11/sys/dev/isci/scil/sci_types.h
  stable/11/sys/dev/isci/scil/sci_util.c
  stable/11/sys/dev/isci/scil/sci_util.h
  stable/11/sys/dev/isci/scil/scic_config_parameters.h
  stable/11/sys/dev/isci/scil/scic_controller.h
  stable/11/sys/dev/isci/scil/scic_io_request.h
  stable/11/sys/dev/isci/scil/scic_library.h
  stable/11/sys/dev/isci/scil/scic_logger.h
  stable/11/sys/dev/isci/scil/scic_overview.h
  stable/11/sys/dev/isci/scil/scic_phy.h
  stable/11/sys/dev/isci/scil/scic_port.h
  stable/11/sys/dev/isci/scil/scic_remote_device.h
  stable/11/sys/dev/isci/scil/scic_sds_controller.c
  stable/11/sys/dev/isci/scil/scic_sds_controller.h
  stable/11/sys/dev/isci/scil/scic_sds_controller_registers.h
  stable/11/sys/dev/isci/scil/scic_sds_library.c
  stable/11/sys/dev/isci/scil/scic_sds_library.h
  stable/11/sys/dev/isci/scil/scic_sds_logger.h
  stable/11/sys/dev/isci/scil/scic_sds_pci.c
  stable/11/sys/dev/isci/scil/scic_sds_pci.h
  stable/11/sys/dev/isci/scil/scic_sds_phy.c
  stable/11/sys/dev/isci/scil/scic_sds_phy.h
  stable/11/sys/dev/isci/scil/scic_sds_phy_registers.h
  stable/11/sys/dev/isci/scil/scic_sds_port.c
  stable/11/sys/dev/isci/scil/scic_sds_port.h
  stable/11/sys/dev/isci/scil/scic_sds_port_configuration_agent.c
  stable/11/sys/dev/isci/scil/scic_sds_port_configuration_agent.h
  stable/11/sys/dev/isci/scil/scic_sds_port_registers.h
  stable/11/sys/dev/isci/scil/scic_sds_remote_device.c
  stable/11/sys/dev/isci/scil/scic_sds_remote_device.h
  stable/11/sys/dev/isci/scil/scic_sds_remote_node_context.c
  stable/11/sys/dev/isci/scil/scic_sds_remote_node_context.h
  stable/11/sys/dev/isci/scil/scic_sds_remote_node_table.c
  stable/11/sys/dev/isci/scil/scic_sds_remote_node_table.h
  stable/11/sys/dev/isci/scil/scic_sds_request.c
  stable/11/sys/dev/isci/scil/scic_sds_request.h
  stable/11/sys/dev/isci/scil/scic_sds_sgpio.c
  stable/11/sys/dev/isci/scil/scic_sds_smp_remote_device.c
  stable/11/sys/dev/isci/scil/scic_sds_smp_request.c
  stable/11/sys/dev/isci/scil/scic_sds_smp_request.h
  stable/11/sys/dev/isci/scil/scic_sds_ssp_request.c
  stable/11/sys/dev/isci/scil/scic_sds_stp_packet_request.c
  stable/11/sys/dev/isci/scil/scic_sds_stp_packet_request.h
  stable/11/sys/dev/isci/scil/scic_sds_stp_pio_request.h
  stable/11/sys/dev/isci/scil/scic_sds_stp_remote_device.c
  stable/11/sys/dev/isci/scil/scic_sds_stp_request.c
  stable/11/sys/dev/isci/scil/scic_sds_stp_request.h
  stable/11/sys/dev/isci/scil/scic_sds_unsolicited_frame_control.c
  stable/11/sys/dev/isci/scil/scic_sds_unsolicited_frame_control.h
  stable/11/sys/dev/isci/scil/scic_sgpio.h
  stable/11/sys/dev/isci/scil/scic_task_request.h
  stable/11/sys/dev/isci/scil/scic_user_callback.h
  stable/11/sys/dev/isci/scil/scif_config_parameters.h
  stable/11/sys/dev/isci/scil/scif_controller.h
  stable/11/sys/dev/isci/scil/scif_domain.h
  stable/11/sys/dev/isci/scil/scif_io_request.h
  stable/11/sys/dev/isci/scil/scif_library.h
  stable/11/sys/dev/isci/scil/scif_logger.h
  stable/11/sys/dev/isci/scil/scif_overview.h
  stable/11/sys/dev/isci/scil/scif_remote_device.h
  stable/11/sys/dev/isci/scil/scif_sas_constants.h
  stable/11/sys/dev/isci/scil/scif_sas_controller.c
  stable/11/sys/dev/isci/scil/scif_sas_controller.h
  stable/11/sys/dev/isci/scil/scif_sas_controller_state_handlers.c
  stable/11/sys/dev/isci/scil/scif_sas_controller_states.c
  stable/11/sys/dev/isci/scil/scif_sas_design.h
  stable/11/sys/dev/isci/scil/scif_sas_domain.c
  stable/11/sys/dev/isci/scil/scif_sas_domain.h
  stable/11/sys/dev/isci/scil/scif_sas_domain_state_handlers.c
  stable/11/sys/dev/isci/scil/scif_sas_domain_states.c
  stable/11/sys/dev/isci/scil/scif_sas_high_priority_request_queue.c
  stable/11/sys/dev/isci/scil/scif_sas_high_priority_request_queue.h
  stable/11/sys/dev/isci/scil/scif_sas_internal_io_request.c
  stable/11/sys/dev/isci/scil/scif_sas_internal_io_request.h
  stable/11/sys/dev/isci/scil/scif_sas_io_request.c
  stable/11/sys/dev/isci/scil/scif_sas_io_request.h
  stable/11/sys/dev/isci/scil/scif_sas_io_request_state_handlers.c
  stable/11/sys/dev/isci/scil/scif_sas_io_request_states.c
  stable/11/sys/dev/isci/scil/scif_sas_library.c
  stable/11/sys/dev/isci/scil/scif_sas_library.h
  stable/11/sys/dev/isci/scil/scif_sas_logger.h
  stable/11/sys/dev/isci/scil/scif_sas_remote_device.c
  stable/11/sys/dev/isci/scil/scif_sas_remote_device.h
  stable/11/sys/dev/isci/scil/scif_sas_remote_device_ready_substate_handlers.c
  stable/11/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c
  stable/11/sys/dev/isci/scil/scif_sas_remote_device_starting_substate_handlers.c
  stable/11/sys/dev/isci/scil/scif_sas_remote_device_starting_substates.c
  stable/11/sys/dev/isci/scil/scif_sas_remote_device_state_handlers.c
  stable/11/sys/dev/isci/scil/scif_sas_remote_device_states.c
  stable/11/sys/dev/isci/scil/scif_sas_request.c
  stable/11/sys/dev/isci/scil/scif_sas_request.h
  stable/11/sys/dev/isci/scil/scif_sas_sati_binding.h
  stable/11/sys/dev/isci/scil/scif_sas_smp_activity_clear_affiliation.c
  stable/11/sys/dev/isci/scil/scif_sas_smp_io_request.c
  stable/11/sys/dev/isci/scil/scif_sas_smp_io_request.h
  stable/11/sys/dev/isci/scil/scif_sas_smp_phy.c
  stable/11/sys/dev/isci/scil/scif_sas_smp_phy.h
  stable/11/sys/dev/isci/scil/scif_sas_smp_remote_device.c
  stable/11/sys/dev/isci/scil/scif_sas_smp_remote_device.h
  stable/11/sys/dev/isci/scil/scif_sas_stp_io_request.c
  stable/11/sys/dev/isci/scil/scif_sas_stp_io_request.h
  stable/11/sys/dev/isci/scil/scif_sas_stp_remote_device.c
  stable/11/sys/dev/isci/scil/scif_sas_stp_remote_device.h
  stable/11/sys/dev/isci/scil/scif_sas_stp_task_request.c
  stable/11/sys/dev/isci/scil/scif_sas_stp_task_request.h
  stable/11/sys/dev/isci/scil/scif_sas_task_request.c
  stable/11/sys/dev/isci/scil/scif_sas_task_request.h
  stable/11/sys/dev/isci/scil/scif_sas_task_request_state_handlers.c
  stable/11/sys/dev/isci/scil/scif_sas_task_request_states.c
  stable/11/sys/dev/isci/scil/scif_sas_timer.c
  stable/11/sys/dev/isci/scil/scif_task_request.h
  stable/11/sys/dev/isci/scil/scif_user_callback.h
  stable/11/sys/dev/isci/scil/scu_bios_definitions.h
  stable/11/sys/dev/isci/scil/scu_completion_codes.h
  stable/11/sys/dev/isci/scil/scu_constants.h
  stable/11/sys/dev/isci/scil/scu_event_codes.h
  stable/11/sys/dev/isci/scil/scu_registers.h
  stable/11/sys/dev/isci/scil/scu_remote_node_context.h
  stable/11/sys/dev/isci/scil/scu_task_context.h
  stable/11/sys/dev/isci/scil/scu_unsolicited_frame.h
  stable/11/sys/dev/isci/scil/scu_viit_data.h
  stable/11/sys/dev/isci/types.h
  stable/11/sys/dev/iscsi/icl.c
  stable/11/sys/dev/iscsi/icl.h
  stable/11/sys/dev/iscsi/iscsi.c
  stable/11/sys/dev/iscsi/iscsi.h
  stable/11/sys/dev/iscsi/iscsi_ioctl.h
  stable/11/sys/dev/iscsi/iscsi_proto.h
  stable/11/sys/dev/iscsi_initiator/isc_cam.c
  stable/11/sys/dev/iscsi_initiator/isc_sm.c
  stable/11/sys/dev/iscsi_initiator/isc_soc.c
  stable/11/sys/dev/iscsi_initiator/isc_subr.c
  stable/11/sys/dev/iscsi_initiator/iscsi.c
  stable/11/sys/dev/iscsi_initiator/iscsi.h
  stable/11/sys/dev/iscsi_initiator/iscsi_subr.c
  stable/11/sys/dev/iscsi_initiator/iscsivar.h
  stable/11/sys/dev/isp/isp_freebsd.c
  stable/11/sys/dev/isp/isp_freebsd.h
  stable/11/sys/dev/isp/isp_ioctl.h
  stable/11/sys/dev/isp/isp_library.c
  stable/11/sys/dev/isp/isp_library.h
  stable/11/sys/dev/isp/isp_sbus.c
  stable/11/sys/dev/isp/isp_stds.h
  stable/11/sys/dev/isp/isp_target.c
  stable/11/sys/dev/isp/isp_target.h
  stable/11/sys/dev/isp/ispreg.h
  stable/11/sys/dev/ispfw/asm_1000.h
  stable/11/sys/dev/ispfw/asm_1040.h
  stable/11/sys/dev/ispfw/asm_1080.h
  stable/11/sys/dev/ispfw/asm_12160.h
  stable/11/sys/dev/ispfw/asm_2100.h
  stable/11/sys/dev/ispfw/asm_2200.h
  stable/11/sys/dev/ispfw/asm_2300.h
  stable/11/sys/dev/ispfw/asm_2322.h
  stable/11/sys/dev/ispfw/asm_2400.h
  stable/11/sys/dev/ispfw/asm_2500.h
  stable/11/sys/dev/ispfw/ispfw.c
  stable/11/sys/dev/iwi/if_iwi.c
  stable/11/sys/dev/iwi/if_iwireg.h
  stable/11/sys/dev/iwi/if_iwivar.h
  stable/11/sys/dev/ixgb/if_ixgb.c
  stable/11/sys/dev/ixgb/if_ixgb.h
  stable/11/sys/dev/ixgb/if_ixgb_osdep.h
  stable/11/sys/dev/ixgb/ixgb_ee.c
  stable/11/sys/dev/ixgb/ixgb_ee.h
  stable/11/sys/dev/ixgb/ixgb_hw.c
  stable/11/sys/dev/ixgb/ixgb_hw.h
  stable/11/sys/dev/ixgb/ixgb_ids.h
  stable/11/sys/dev/ixgbe/ixgbe.h
  stable/11/sys/dev/ixgbe/ixgbe_82598.c
  stable/11/sys/dev/ixgbe/ixgbe_82598.h
  stable/11/sys/dev/ixgbe/ixgbe_82599.c
  stable/11/sys/dev/ixgbe/ixgbe_82599.h
  stable/11/sys/dev/ixgbe/ixgbe_api.c
  stable/11/sys/dev/ixgbe/ixgbe_api.h
  stable/11/sys/dev/ixgbe/ixgbe_common.c
  stable/11/sys/dev/ixgbe/ixgbe_common.h
  stable/11/sys/dev/ixgbe/ixgbe_dcb.c
  stable/11/sys/dev/ixgbe/ixgbe_dcb.h
  stable/11/sys/dev/ixgbe/ixgbe_dcb_82598.c
  stable/11/sys/dev/ixgbe/ixgbe_dcb_82598.h
  stable/11/sys/dev/ixgbe/ixgbe_dcb_82599.c
  stable/11/sys/dev/ixgbe/ixgbe_dcb_82599.h
  stable/11/sys/dev/ixgbe/ixgbe_mbx.c
  stable/11/sys/dev/ixgbe/ixgbe_mbx.h
  stable/11/sys/dev/ixgbe/ixgbe_osdep.h
  stable/11/sys/dev/ixgbe/ixgbe_phy.c
  stable/11/sys/dev/ixgbe/ixgbe_phy.h
  stable/11/sys/dev/ixgbe/ixgbe_type.h
  stable/11/sys/dev/ixgbe/ixgbe_vf.c
  stable/11/sys/dev/ixgbe/ixgbe_vf.h
  stable/11/sys/dev/ixgbe/ixgbe_x540.c
  stable/11/sys/dev/ixgbe/ixgbe_x540.h
  stable/11/sys/dev/jme/if_jme.c
  stable/11/sys/dev/jme/if_jmereg.h
  stable/11/sys/dev/jme/if_jmevar.h
  stable/11/sys/dev/joy/joy.c
  stable/11/sys/dev/joy/joy_isa.c
  stable/11/sys/dev/joy/joyvar.h
  stable/11/sys/dev/kbd/kbd.c
  stable/11/sys/dev/kbd/kbdreg.h
  stable/11/sys/dev/kbd/kbdtables.h
  stable/11/sys/dev/kbdmux/kbdmux.c
  stable/11/sys/dev/ksyms/ksyms.c
  stable/11/sys/dev/le/am7990.c
  stable/11/sys/dev/le/am79900.c
  stable/11/sys/dev/le/am79900reg.h
  stable/11/sys/dev/le/am79900var.h
  stable/11/sys/dev/le/am7990reg.h
  stable/11/sys/dev/le/am7990var.h
  stable/11/sys/dev/le/if_le_isa.c
  stable/11/sys/dev/le/if_le_lebuffer.c
  stable/11/sys/dev/le/if_le_ledma.c
  stable/11/sys/dev/le/if_le_pci.c
  stable/11/sys/dev/le/lance.c
  stable/11/sys/dev/le/lancereg.h
  stable/11/sys/dev/le/lancevar.h
  stable/11/sys/dev/le/lebuffer_sbus.c
  stable/11/sys/dev/lge/if_lge.c
  stable/11/sys/dev/lge/if_lgereg.h
  stable/11/sys/dev/lmc/if_lmc.c
  stable/11/sys/dev/lmc/if_lmc.h
  stable/11/sys/dev/malo/if_malo.c
  stable/11/sys/dev/malo/if_malo.h
  stable/11/sys/dev/malo/if_malo_pci.c
  stable/11/sys/dev/malo/if_malohal.c
  stable/11/sys/dev/malo/if_malohal.h
  stable/11/sys/dev/malo/if_maloioctl.h
  stable/11/sys/dev/mc146818/mc146818.c
  stable/11/sys/dev/mc146818/mc146818var.h
  stable/11/sys/dev/md/md.c
  stable/11/sys/dev/mem/memdev.c
  stable/11/sys/dev/mem/memutil.c
  stable/11/sys/dev/mfi/mfi.c
  stable/11/sys/dev/mfi/mfi_cam.c
  stable/11/sys/dev/mfi/mfi_debug.c
  stable/11/sys/dev/mfi/mfi_disk.c
  stable/11/sys/dev/mfi/mfi_ioctl.h
  stable/11/sys/dev/mfi/mfi_linux.c
  stable/11/sys/dev/mfi/mfi_pci.c
  stable/11/sys/dev/mfi/mfi_syspd.c
  stable/11/sys/dev/mfi/mfi_tbolt.c
  stable/11/sys/dev/mfi/mfireg.h
  stable/11/sys/dev/mfi/mfivar.h
  stable/11/sys/dev/mge/if_mge.c
  stable/11/sys/dev/mge/if_mgevar.h
  stable/11/sys/dev/mii/acphy.c
  stable/11/sys/dev/mii/acphyreg.h
  stable/11/sys/dev/mii/amphy.c
  stable/11/sys/dev/mii/amphyreg.h
  stable/11/sys/dev/mii/atphy.c
  stable/11/sys/dev/mii/atphyreg.h
  stable/11/sys/dev/mii/axphy.c
  stable/11/sys/dev/mii/bmtphy.c
  stable/11/sys/dev/mii/bmtphyreg.h
  stable/11/sys/dev/mii/brgphy.c
  stable/11/sys/dev/mii/brgphyreg.h
  stable/11/sys/dev/mii/ciphy.c
  stable/11/sys/dev/mii/ciphyreg.h
  stable/11/sys/dev/mii/e1000phy.c
  stable/11/sys/dev/mii/e1000phyreg.h
  stable/11/sys/dev/mii/gentbi.c
  stable/11/sys/dev/mii/icsphy.c
  stable/11/sys/dev/mii/icsphyreg.h
  stable/11/sys/dev/mii/ip1000phy.c
  stable/11/sys/dev/mii/ip1000phyreg.h
  stable/11/sys/dev/mii/jmphy.c
  stable/11/sys/dev/mii/jmphyreg.h
  stable/11/sys/dev/mii/lxtphy.c
  stable/11/sys/dev/mii/lxtphyreg.h
  stable/11/sys/dev/mii/mii.c
  stable/11/sys/dev/mii/mii.h
  stable/11/sys/dev/mii/mii_bitbang.c
  stable/11/sys/dev/mii/mii_bitbang.h
  stable/11/sys/dev/mii/mii_physubr.c
  stable/11/sys/dev/mii/miivar.h
  stable/11/sys/dev/mii/mlphy.c
  stable/11/sys/dev/mii/nsgphy.c
  stable/11/sys/dev/mii/nsgphyreg.h
  stable/11/sys/dev/mii/nsphy.c
  stable/11/sys/dev/mii/nsphyreg.h
  stable/11/sys/dev/mii/nsphyter.c
  stable/11/sys/dev/mii/nsphyterreg.h
  stable/11/sys/dev/mii/pnaphy.c
  stable/11/sys/dev/mii/qsphy.c
  stable/11/sys/dev/mii/qsphyreg.h
  stable/11/sys/dev/mii/rdcphy.c
  stable/11/sys/dev/mii/rdcphyreg.h
  stable/11/sys/dev/mii/rgephy.c
  stable/11/sys/dev/mii/rgephyreg.h
  stable/11/sys/dev/mii/rlphy.c
  stable/11/sys/dev/mii/rlswitch.c
  stable/11/sys/dev/mii/smcphy.c
  stable/11/sys/dev/mii/smscphy.c
  stable/11/sys/dev/mii/tdkphy.c
  stable/11/sys/dev/mii/tdkphyreg.h
  stable/11/sys/dev/mii/tlphy.c
  stable/11/sys/dev/mii/tlphyreg.h
  stable/11/sys/dev/mii/truephy.c
  stable/11/sys/dev/mii/truephyreg.h
  stable/11/sys/dev/mii/ukphy.c
  stable/11/sys/dev/mii/ukphy_subr.c
  stable/11/sys/dev/mii/xmphy.c
  stable/11/sys/dev/mii/xmphyreg.h
  stable/11/sys/dev/mk48txx/mk48txx.c
  stable/11/sys/dev/mk48txx/mk48txxreg.h
  stable/11/sys/dev/mk48txx/mk48txxvar.h
  stable/11/sys/dev/mlx/mlx.c
  stable/11/sys/dev/mlx/mlx_disk.c
  stable/11/sys/dev/mlx/mlx_pci.c
  stable/11/sys/dev/mlx/mlxio.h
  stable/11/sys/dev/mlx/mlxreg.h
  stable/11/sys/dev/mlx/mlxvar.h
  stable/11/sys/dev/mly/mly.c
  stable/11/sys/dev/mly/mly_tables.h
  stable/11/sys/dev/mly/mlyio.h
  stable/11/sys/dev/mly/mlyreg.h
  stable/11/sys/dev/mly/mlyvar.h
  stable/11/sys/dev/mmc/bridge.h
  stable/11/sys/dev/mmc/mmc.c
  stable/11/sys/dev/mmc/mmcbrvar.h
  stable/11/sys/dev/mmc/mmcreg.h
  stable/11/sys/dev/mmc/mmcsd.c
  stable/11/sys/dev/mmc/mmcvar.h
  stable/11/sys/dev/mps/mpi/mpi2.h
  stable/11/sys/dev/mps/mpi/mpi2_cnfg.h
  stable/11/sys/dev/mps/mpi/mpi2_hbd.h
  stable/11/sys/dev/mps/mpi/mpi2_init.h
  stable/11/sys/dev/mps/mpi/mpi2_ioc.h
  stable/11/sys/dev/mps/mpi/mpi2_ra.h
  stable/11/sys/dev/mps/mpi/mpi2_raid.h
  stable/11/sys/dev/mps/mpi/mpi2_sas.h
  stable/11/sys/dev/mps/mpi/mpi2_targ.h
  stable/11/sys/dev/mps/mpi/mpi2_tool.h
  stable/11/sys/dev/mps/mpi/mpi2_type.h
  stable/11/sys/dev/mps/mps.c
  stable/11/sys/dev/mps/mps_config.c
  stable/11/sys/dev/mps/mps_ioctl.h
  stable/11/sys/dev/mps/mps_mapping.c
  stable/11/sys/dev/mps/mps_mapping.h
  stable/11/sys/dev/mps/mps_pci.c
  stable/11/sys/dev/mps/mps_sas.c
  stable/11/sys/dev/mps/mps_sas.h
  stable/11/sys/dev/mps/mps_sas_lsi.c
  stable/11/sys/dev/mps/mps_table.c
  stable/11/sys/dev/mps/mps_table.h
  stable/11/sys/dev/mps/mps_user.c
  stable/11/sys/dev/mps/mpsvar.h
  stable/11/sys/dev/mpt/mpilib/mpi.h
  stable/11/sys/dev/mpt/mpilib/mpi_cnfg.h
  stable/11/sys/dev/mpt/mpilib/mpi_fc.h
  stable/11/sys/dev/mpt/mpilib/mpi_init.h
  stable/11/sys/dev/mpt/mpilib/mpi_ioc.h
  stable/11/sys/dev/mpt/mpilib/mpi_lan.h
  stable/11/sys/dev/mpt/mpilib/mpi_log_fc.h
  stable/11/sys/dev/mpt/mpilib/mpi_log_sas.h
  stable/11/sys/dev/mpt/mpilib/mpi_raid.h
  stable/11/sys/dev/mpt/mpilib/mpi_sas.h
  stable/11/sys/dev/mpt/mpilib/mpi_targ.h
  stable/11/sys/dev/mpt/mpilib/mpi_tool.h
  stable/11/sys/dev/mpt/mpilib/mpi_type.h
  stable/11/sys/dev/mpt/mpt.c
  stable/11/sys/dev/mpt/mpt.h
  stable/11/sys/dev/mpt/mpt_cam.c
  stable/11/sys/dev/mpt/mpt_cam.h
  stable/11/sys/dev/mpt/mpt_debug.c
  stable/11/sys/dev/mpt/mpt_pci.c
  stable/11/sys/dev/mpt/mpt_raid.c
  stable/11/sys/dev/mpt/mpt_raid.h
  stable/11/sys/dev/mpt/mpt_reg.h
  stable/11/sys/dev/mpt/mpt_user.c
  stable/11/sys/dev/mse/mse.c
  stable/11/sys/dev/mse/mse_isa.c
  stable/11/sys/dev/mse/msevar.h
  stable/11/sys/dev/msk/if_msk.c
  stable/11/sys/dev/msk/if_mskreg.h
  stable/11/sys/dev/mvs/mvs.c
  stable/11/sys/dev/mvs/mvs.h
  stable/11/sys/dev/mvs/mvs_pci.c
  stable/11/sys/dev/mvs/mvs_soc.c
  stable/11/sys/dev/mwl/if_mwl.c
  stable/11/sys/dev/mwl/if_mwl_pci.c
  stable/11/sys/dev/mwl/if_mwlioctl.h
  stable/11/sys/dev/mwl/if_mwlvar.h
  stable/11/sys/dev/mwl/mwldiag.h
  stable/11/sys/dev/mwl/mwlhal.c
  stable/11/sys/dev/mwl/mwlhal.h
  stable/11/sys/dev/mwl/mwlreg.h
  stable/11/sys/dev/mxge/eth_z8e.h
  stable/11/sys/dev/mxge/ethp_z8e.h
  stable/11/sys/dev/mxge/if_mxge.c
  stable/11/sys/dev/mxge/if_mxge_var.h
  stable/11/sys/dev/mxge/mcp_gen_header.h
  stable/11/sys/dev/mxge/mxge_mcp.h
  stable/11/sys/dev/mxge/rss_eth_z8e.h
  stable/11/sys/dev/mxge/rss_ethp_z8e.h
  stable/11/sys/dev/my/if_my.c
  stable/11/sys/dev/my/if_myreg.h
  stable/11/sys/dev/nand/nand.c
  stable/11/sys/dev/nand/nand.h
  stable/11/sys/dev/nand/nand_bbt.c
  stable/11/sys/dev/nand/nand_cdev.c
  stable/11/sys/dev/nand/nand_dev.h
  stable/11/sys/dev/nand/nand_ecc_pos.h
  stable/11/sys/dev/nand/nand_generic.c
  stable/11/sys/dev/nand/nand_geom.c
  stable/11/sys/dev/nand/nand_id.c
  stable/11/sys/dev/nand/nandbus.c
  stable/11/sys/dev/nand/nandbus.h
  stable/11/sys/dev/nand/nandsim.c
  stable/11/sys/dev/nand/nandsim.h
  stable/11/sys/dev/nand/nandsim_chip.c
  stable/11/sys/dev/nand/nandsim_chip.h
  stable/11/sys/dev/nand/nandsim_ctrl.c
  stable/11/sys/dev/nand/nandsim_log.c
  stable/11/sys/dev/nand/nandsim_log.h
  stable/11/sys/dev/nand/nandsim_swap.c
  stable/11/sys/dev/nand/nandsim_swap.h
  stable/11/sys/dev/nand/nfc_at91.c
  stable/11/sys/dev/nand/nfc_at91.h
  stable/11/sys/dev/nand/nfc_fsl.c
  stable/11/sys/dev/nand/nfc_fsl.h
  stable/11/sys/dev/nand/nfc_mv.c
  stable/11/sys/dev/ncv/ncr53c500.c
  stable/11/sys/dev/ncv/ncr53c500_pccard.c
  stable/11/sys/dev/ncv/ncr53c500hw.h
  stable/11/sys/dev/ncv/ncr53c500hwtab.h
  stable/11/sys/dev/ncv/ncr53c500reg.h
  stable/11/sys/dev/ncv/ncr53c500var.h
  stable/11/sys/dev/netmap/if_em_netmap.h
  stable/11/sys/dev/netmap/if_igb_netmap.h
  stable/11/sys/dev/netmap/if_lem_netmap.h
  stable/11/sys/dev/netmap/if_re_netmap.h
  stable/11/sys/dev/netmap/ixgbe_netmap.h
  stable/11/sys/dev/netmap/netmap.c
  stable/11/sys/dev/netmap/netmap_freebsd.c
  stable/11/sys/dev/netmap/netmap_generic.c
  stable/11/sys/dev/netmap/netmap_kern.h
  stable/11/sys/dev/netmap/netmap_mbq.c
  stable/11/sys/dev/netmap/netmap_mbq.h
  stable/11/sys/dev/netmap/netmap_mem2.c
  stable/11/sys/dev/netmap/netmap_mem2.h
  stable/11/sys/dev/netmap/netmap_offloadings.c
  stable/11/sys/dev/netmap/netmap_pipe.c
  stable/11/sys/dev/netmap/netmap_vale.c
  stable/11/sys/dev/nge/if_nge.c
  stable/11/sys/dev/nge/if_ngereg.h
  stable/11/sys/dev/nmdm/nmdm.c
  stable/11/sys/dev/nsp/nsp.c
  stable/11/sys/dev/nsp/nsp_pccard.c
  stable/11/sys/dev/nsp/nspreg.h
  stable/11/sys/dev/nsp/nspvar.h
  stable/11/sys/dev/null/null.c
  stable/11/sys/dev/nvd/nvd.c
  stable/11/sys/dev/nvme/nvme.c
  stable/11/sys/dev/nvme/nvme.h
  stable/11/sys/dev/nvme/nvme_ctrlr.c
  stable/11/sys/dev/nvme/nvme_ctrlr_cmd.c
  stable/11/sys/dev/nvme/nvme_ns.c
  stable/11/sys/dev/nvme/nvme_ns_cmd.c
  stable/11/sys/dev/nvme/nvme_private.h
  stable/11/sys/dev/nvme/nvme_qpair.c
  stable/11/sys/dev/nvme/nvme_sysctl.c
  stable/11/sys/dev/nvme/nvme_test.c
  stable/11/sys/dev/nvme/nvme_util.c
  stable/11/sys/dev/nvram/nvram.c
  stable/11/sys/dev/nvram2env/nvram2env.c
  stable/11/sys/dev/nxge/if_nxge.c
  stable/11/sys/dev/nxge/if_nxge.h
  stable/11/sys/dev/nxge/include/version.h
  stable/11/sys/dev/nxge/include/xge-debug.h
  stable/11/sys/dev/nxge/include/xge-defs.h
  stable/11/sys/dev/nxge/include/xge-list.h
  stable/11/sys/dev/nxge/include/xge-os-pal.h
  stable/11/sys/dev/nxge/include/xge-queue.h
  stable/11/sys/dev/nxge/include/xgehal-channel.h
  stable/11/sys/dev/nxge/include/xgehal-config.h
  stable/11/sys/dev/nxge/include/xgehal-device.h
  stable/11/sys/dev/nxge/include/xgehal-driver.h
  stable/11/sys/dev/nxge/include/xgehal-event.h
  stable/11/sys/dev/nxge/include/xgehal-fifo.h
  stable/11/sys/dev/nxge/include/xgehal-mgmt.h
  stable/11/sys/dev/nxge/include/xgehal-mgmtaux.h
  stable/11/sys/dev/nxge/include/xgehal-mm.h
  stable/11/sys/dev/nxge/include/xgehal-regs.h
  stable/11/sys/dev/nxge/include/xgehal-ring.h
  stable/11/sys/dev/nxge/include/xgehal-stats.h
  stable/11/sys/dev/nxge/include/xgehal-types.h
  stable/11/sys/dev/nxge/include/xgehal.h
  stable/11/sys/dev/nxge/xge-osdep.h
  stable/11/sys/dev/nxge/xgehal/xge-queue.c
  stable/11/sys/dev/nxge/xgehal/xgehal-channel-fp.c
  stable/11/sys/dev/nxge/xgehal/xgehal-channel.c
  stable/11/sys/dev/nxge/xgehal/xgehal-config.c
  stable/11/sys/dev/nxge/xgehal/xgehal-device-fp.c
  stable/11/sys/dev/nxge/xgehal/xgehal-device.c
  stable/11/sys/dev/nxge/xgehal/xgehal-driver.c
  stable/11/sys/dev/nxge/xgehal/xgehal-fifo-fp.c
  stable/11/sys/dev/nxge/xgehal/xgehal-fifo.c
  stable/11/sys/dev/nxge/xgehal/xgehal-mgmt.c
  stable/11/sys/dev/nxge/xgehal/xgehal-mgmtaux.c
  stable/11/sys/dev/nxge/xgehal/xgehal-mm.c
  stable/11/sys/dev/nxge/xgehal/xgehal-ring-fp.c
  stable/11/sys/dev/nxge/xgehal/xgehal-ring.c
  stable/11/sys/dev/nxge/xgehal/xgehal-stats.c
  stable/11/sys/dev/nxge/xgell-version.h
  stable/11/sys/dev/oce/oce_hw.c
  stable/11/sys/dev/oce/oce_hw.h
  stable/11/sys/dev/oce/oce_if.c
  stable/11/sys/dev/oce/oce_if.h
  stable/11/sys/dev/oce/oce_mbox.c
  stable/11/sys/dev/oce/oce_queue.c
  stable/11/sys/dev/oce/oce_sysctl.c
  stable/11/sys/dev/oce/oce_util.c
  stable/11/sys/dev/ofw/ofw_bus.h
  stable/11/sys/dev/ofw/ofw_bus_subr.c
  stable/11/sys/dev/ofw/ofw_bus_subr.h
  stable/11/sys/dev/ofw/ofw_console.c
  stable/11/sys/dev/ofw/ofw_disk.c
  stable/11/sys/dev/ofw/ofw_fdt.c
  stable/11/sys/dev/ofw/ofw_pci.h
  stable/11/sys/dev/ofw/ofw_standard.c
  stable/11/sys/dev/ofw/ofwvar.h
  stable/11/sys/dev/ofw/openfirm.c
  stable/11/sys/dev/ofw/openfirm.h
  stable/11/sys/dev/ofw/openfirmio.c
  stable/11/sys/dev/ofw/openfirmio.h
  stable/11/sys/dev/ofw/openpromio.c
  stable/11/sys/dev/ofw/openpromio.h
  stable/11/sys/dev/pbio/pbio.c
  stable/11/sys/dev/pbio/pbioio.h
  stable/11/sys/dev/pccard/pccard.c
  stable/11/sys/dev/pccard/pccard_cis.c
  stable/11/sys/dev/pccard/pccard_cis.h
  stable/11/sys/dev/pccard/pccard_cis_quirks.c
  stable/11/sys/dev/pccard/pccard_device.c
  stable/11/sys/dev/pccard/pccardreg.h
  stable/11/sys/dev/pccard/pccardvar.h
  stable/11/sys/dev/pccard/pccardvarp.h
  stable/11/sys/dev/pccbb/pccbb.c
  stable/11/sys/dev/pccbb/pccbb_isa.c
  stable/11/sys/dev/pccbb/pccbb_pci.c
  stable/11/sys/dev/pccbb/pccbbdevid.h
  stable/11/sys/dev/pccbb/pccbbreg.h
  stable/11/sys/dev/pccbb/pccbbvar.h
  stable/11/sys/dev/pcf/envctrl.c
  stable/11/sys/dev/pcf/pcf.c
  stable/11/sys/dev/pcf/pcf_ebus.c
  stable/11/sys/dev/pcf/pcf_isa.c
  stable/11/sys/dev/pcf/pcfvar.h
  stable/11/sys/dev/pci/fixup_pci.c
  stable/11/sys/dev/pci/hostb_pci.c
  stable/11/sys/dev/pci/ignore_pci.c
  stable/11/sys/dev/pci/isa_pci.c
  stable/11/sys/dev/pci/pci.c
  stable/11/sys/dev/pci/pci_pci.c
  stable/11/sys/dev/pci/pci_private.h
  stable/11/sys/dev/pci/pci_subr.c
  stable/11/sys/dev/pci/pci_user.c
  stable/11/sys/dev/pci/pcib_private.h
  stable/11/sys/dev/pci/pcireg.h
  stable/11/sys/dev/pci/pcivar.h
  stable/11/sys/dev/pci/vga_pci.c
  stable/11/sys/dev/pcn/if_pcn.c
  stable/11/sys/dev/pcn/if_pcnreg.h
  stable/11/sys/dev/pdq/if_fpa.c
  stable/11/sys/dev/pdq/pdq.c
  stable/11/sys/dev/pdq/pdq_freebsd.h
  stable/11/sys/dev/pdq/pdq_ifsubr.c
  stable/11/sys/dev/pdq/pdqreg.h
  stable/11/sys/dev/pdq/pdqvar.h
  stable/11/sys/dev/powermac_nvram/powermac_nvram.c
  stable/11/sys/dev/powermac_nvram/powermac_nvramvar.h
  stable/11/sys/dev/ppbus/if_plip.c
  stable/11/sys/dev/ppbus/immio.c
  stable/11/sys/dev/ppbus/lpbb.c
  stable/11/sys/dev/ppbus/lpt.c
  stable/11/sys/dev/ppbus/lpt.h
  stable/11/sys/dev/ppbus/pcfclock.c
  stable/11/sys/dev/ppbus/ppb_1284.c
  stable/11/sys/dev/ppbus/ppb_1284.h
  stable/11/sys/dev/ppbus/ppb_base.c
  stable/11/sys/dev/ppbus/ppb_msq.c
  stable/11/sys/dev/ppbus/ppb_msq.h
  stable/11/sys/dev/ppbus/ppbconf.c
  stable/11/sys/dev/ppbus/ppbconf.h
  stable/11/sys/dev/ppbus/ppbio.h
  stable/11/sys/dev/ppbus/ppi.c
  stable/11/sys/dev/ppbus/ppi.h
  stable/11/sys/dev/ppbus/vpo.c
  stable/11/sys/dev/ppbus/vpoio.c
  stable/11/sys/dev/ppbus/vpoio.h
  stable/11/sys/dev/ppc/ppc.c
  stable/11/sys/dev/ppc/ppc_acpi.c
  stable/11/sys/dev/ppc/ppc_isa.c
  stable/11/sys/dev/ppc/ppc_pci.c
  stable/11/sys/dev/ppc/ppc_puc.c
  stable/11/sys/dev/ppc/ppcreg.h
  stable/11/sys/dev/ppc/ppcvar.h
  stable/11/sys/dev/pst/pst-iop.c
  stable/11/sys/dev/pst/pst-iop.h
  stable/11/sys/dev/pst/pst-pci.c
  stable/11/sys/dev/pst/pst-raid.c
  stable/11/sys/dev/pty/pty.c
  stable/11/sys/dev/puc/puc.c
  stable/11/sys/dev/puc/puc_bfe.h
  stable/11/sys/dev/puc/puc_bus.h
  stable/11/sys/dev/puc/puc_cfg.c
  stable/11/sys/dev/puc/puc_cfg.h
  stable/11/sys/dev/puc/puc_pccard.c
  stable/11/sys/dev/puc/puc_pci.c
  stable/11/sys/dev/puc/pucdata.c
  stable/11/sys/dev/qlxgb/qla_dbg.c
  stable/11/sys/dev/qlxgb/qla_dbg.h
  stable/11/sys/dev/qlxgb/qla_def.h
  stable/11/sys/dev/qlxgb/qla_glbl.h
  stable/11/sys/dev/qlxgb/qla_hw.c
  stable/11/sys/dev/qlxgb/qla_hw.h
  stable/11/sys/dev/qlxgb/qla_inline.h
  stable/11/sys/dev/qlxgb/qla_ioctl.c
  stable/11/sys/dev/qlxgb/qla_ioctl.h
  stable/11/sys/dev/qlxgb/qla_isr.c
  stable/11/sys/dev/qlxgb/qla_misc.c
  stable/11/sys/dev/qlxgb/qla_os.c
  stable/11/sys/dev/qlxgb/qla_os.h
  stable/11/sys/dev/qlxgb/qla_reg.h
  stable/11/sys/dev/qlxgb/qla_ver.h
  stable/11/sys/dev/qlxgbe/ql_dbg.c
  stable/11/sys/dev/qlxgbe/ql_dbg.h
  stable/11/sys/dev/qlxgbe/ql_def.h
  stable/11/sys/dev/qlxgbe/ql_glbl.h
  stable/11/sys/dev/qlxgbe/ql_hw.c
  stable/11/sys/dev/qlxgbe/ql_hw.h
  stable/11/sys/dev/qlxgbe/ql_inline.h
  stable/11/sys/dev/qlxgbe/ql_ioctl.c
  stable/11/sys/dev/qlxgbe/ql_ioctl.h
  stable/11/sys/dev/qlxgbe/ql_isr.c
  stable/11/sys/dev/qlxgbe/ql_misc.c
  stable/11/sys/dev/qlxgbe/ql_os.c
  stable/11/sys/dev/qlxgbe/ql_os.h
  stable/11/sys/dev/qlxgbe/ql_reset.c
  stable/11/sys/dev/qlxgbe/ql_tmplt.h
  stable/11/sys/dev/qlxgbe/ql_ver.h
  stable/11/sys/dev/qlxge/qls_dbg.c
  stable/11/sys/dev/qlxge/qls_dbg.h
  stable/11/sys/dev/qlxge/qls_def.h
  stable/11/sys/dev/qlxge/qls_dump.c
  stable/11/sys/dev/qlxge/qls_dump.h
  stable/11/sys/dev/qlxge/qls_glbl.h
  stable/11/sys/dev/qlxge/qls_hw.c
  stable/11/sys/dev/qlxge/qls_hw.h
  stable/11/sys/dev/qlxge/qls_inline.h
  stable/11/sys/dev/qlxge/qls_ioctl.c
  stable/11/sys/dev/qlxge/qls_ioctl.h
  stable/11/sys/dev/qlxge/qls_isr.c
  stable/11/sys/dev/qlxge/qls_os.c
  stable/11/sys/dev/qlxge/qls_os.h
  stable/11/sys/dev/qlxge/qls_ver.h
  stable/11/sys/dev/quicc/quicc_bfe.h
  stable/11/sys/dev/quicc/quicc_bfe_fdt.c
  stable/11/sys/dev/quicc/quicc_bus.h
  stable/11/sys/dev/quicc/quicc_core.c
  stable/11/sys/dev/rc/rc.c
  stable/11/sys/dev/rc/rcreg.h
  stable/11/sys/dev/re/if_re.c
  stable/11/sys/dev/rndtest/rndtest.c
  stable/11/sys/dev/rndtest/rndtest.h
  stable/11/sys/dev/rp/rp.c
  stable/11/sys/dev/rp/rp_isa.c
  stable/11/sys/dev/rp/rp_pci.c
  stable/11/sys/dev/rp/rpreg.h
  stable/11/sys/dev/rp/rpvar.h
  stable/11/sys/dev/rt/if_rt.c
  stable/11/sys/dev/rt/if_rtreg.h
  stable/11/sys/dev/rt/if_rtvar.h
  stable/11/sys/dev/safe/safe.c
  stable/11/sys/dev/safe/safereg.h
  stable/11/sys/dev/safe/safevar.h
  stable/11/sys/dev/scc/scc_bfe.h
  stable/11/sys/dev/scc/scc_bfe_ebus.c
  stable/11/sys/dev/scc/scc_bfe_macio.c
  stable/11/sys/dev/scc/scc_bfe_quicc.c
  stable/11/sys/dev/scc/scc_bfe_sbus.c
  stable/11/sys/dev/scc/scc_bus.h
  stable/11/sys/dev/scc/scc_core.c
  stable/11/sys/dev/scc/scc_dev_quicc.c
  stable/11/sys/dev/scc/scc_dev_sab82532.c
  stable/11/sys/dev/scc/scc_dev_z8530.c
  stable/11/sys/dev/sdhci/sdhci.c
  stable/11/sys/dev/sdhci/sdhci.h
  stable/11/sys/dev/sdhci/sdhci_fdt.c
  stable/11/sys/dev/sdhci/sdhci_pci.c
  stable/11/sys/dev/sec/sec.c
  stable/11/sys/dev/sec/sec.h
  stable/11/sys/dev/sf/if_sf.c
  stable/11/sys/dev/sf/if_sfreg.h
  stable/11/sys/dev/sfxge/common/efsys.h
  stable/11/sys/dev/sfxge/common/efx.h
  stable/11/sys/dev/sfxge/common/efx_bootcfg.c
  stable/11/sys/dev/sfxge/common/efx_ev.c
  stable/11/sys/dev/sfxge/common/efx_filter.c
  stable/11/sys/dev/sfxge/common/efx_impl.h
  stable/11/sys/dev/sfxge/common/efx_intr.c
  stable/11/sys/dev/sfxge/common/efx_mac.c
  stable/11/sys/dev/sfxge/common/efx_mcdi.c
  stable/11/sys/dev/sfxge/common/efx_mcdi.h
  stable/11/sys/dev/sfxge/common/efx_mon.c
  stable/11/sys/dev/sfxge/common/efx_nic.c
  stable/11/sys/dev/sfxge/common/efx_nvram.c
  stable/11/sys/dev/sfxge/common/efx_phy.c
  stable/11/sys/dev/sfxge/common/efx_port.c
  stable/11/sys/dev/sfxge/common/efx_regs.h
  stable/11/sys/dev/sfxge/common/efx_regs_ef10.h
  stable/11/sys/dev/sfxge/common/efx_regs_mcdi.h
  stable/11/sys/dev/sfxge/common/efx_regs_pci.h
  stable/11/sys/dev/sfxge/common/efx_rx.c
  stable/11/sys/dev/sfxge/common/efx_sram.c
  stable/11/sys/dev/sfxge/common/efx_tx.c
  stable/11/sys/dev/sfxge/common/efx_types.h
  stable/11/sys/dev/sfxge/common/efx_vpd.c
  stable/11/sys/dev/sfxge/common/siena_flash.h
  stable/11/sys/dev/sfxge/common/siena_impl.h
  stable/11/sys/dev/sfxge/common/siena_mac.c
  stable/11/sys/dev/sfxge/common/siena_nic.c
  stable/11/sys/dev/sfxge/common/siena_nvram.c
  stable/11/sys/dev/sfxge/common/siena_phy.c
  stable/11/sys/dev/sfxge/common/siena_sram.c
  stable/11/sys/dev/sfxge/common/siena_vpd.c
  stable/11/sys/dev/sfxge/sfxge.c
  stable/11/sys/dev/sfxge/sfxge.h
  stable/11/sys/dev/sfxge/sfxge_dma.c
  stable/11/sys/dev/sfxge/sfxge_ev.c
  stable/11/sys/dev/sfxge/sfxge_intr.c
  stable/11/sys/dev/sfxge/sfxge_mcdi.c
  stable/11/sys/dev/sfxge/sfxge_port.c
  stable/11/sys/dev/sfxge/sfxge_rx.c
  stable/11/sys/dev/sfxge/sfxge_rx.h
  stable/11/sys/dev/sfxge/sfxge_tx.c
  stable/11/sys/dev/sfxge/sfxge_tx.h
  stable/11/sys/dev/sge/if_sge.c
  stable/11/sys/dev/sge/if_sgereg.h
  stable/11/sys/dev/siba/siba_bwn.c
  stable/11/sys/dev/siba/siba_core.c
  stable/11/sys/dev/siba/siba_ids.h
  stable/11/sys/dev/siba/sibareg.h
  stable/11/sys/dev/siba/sibavar.h
  stable/11/sys/dev/siis/siis.c
  stable/11/sys/dev/siis/siis.h
  stable/11/sys/dev/sio/sio.c
  stable/11/sys/dev/sio/sio_isa.c
  stable/11/sys/dev/sio/sio_pccard.c
  stable/11/sys/dev/sio/sio_pci.c
  stable/11/sys/dev/sio/sio_puc.c
  stable/11/sys/dev/sio/sioreg.h
  stable/11/sys/dev/sio/siovar.h
  stable/11/sys/dev/sis/if_sis.c
  stable/11/sys/dev/sis/if_sisreg.h
  stable/11/sys/dev/sk/if_sk.c
  stable/11/sys/dev/sk/if_skreg.h
  stable/11/sys/dev/sk/xmaciireg.h
  stable/11/sys/dev/smbus/smb.c
  stable/11/sys/dev/smbus/smb.h
  stable/11/sys/dev/smbus/smbconf.c
  stable/11/sys/dev/smbus/smbconf.h
  stable/11/sys/dev/smbus/smbus.c
  stable/11/sys/dev/smbus/smbus.h
  stable/11/sys/dev/smc/if_smc.c
  stable/11/sys/dev/smc/if_smcreg.h
  stable/11/sys/dev/smc/if_smcvar.h
  stable/11/sys/dev/sn/if_sn.c
  stable/11/sys/dev/sn/if_sn_isa.c
  stable/11/sys/dev/sn/if_sn_pccard.c
  stable/11/sys/dev/sn/if_snreg.h
  stable/11/sys/dev/sn/if_snvar.h
  stable/11/sys/dev/sn/ositech.h
  stable/11/sys/dev/snp/snp.c
  stable/11/sys/dev/sound/chip.h
  stable/11/sys/dev/sound/clone.c
  stable/11/sys/dev/sound/clone.h
  stable/11/sys/dev/sound/driver.c
  stable/11/sys/dev/sound/isa/ad1816.c
  stable/11/sys/dev/sound/isa/ad1816.h
  stable/11/sys/dev/sound/isa/ess.c
  stable/11/sys/dev/sound/isa/gusc.c
  stable/11/sys/dev/sound/isa/mss.c
  stable/11/sys/dev/sound/isa/mss.h
  stable/11/sys/dev/sound/isa/sb.h
  stable/11/sys/dev/sound/isa/sb16.c
  stable/11/sys/dev/sound/isa/sb8.c
  stable/11/sys/dev/sound/isa/sbc.c
  stable/11/sys/dev/sound/isa/sndbuf_dma.c
  stable/11/sys/dev/sound/macio/aoa.c
  stable/11/sys/dev/sound/macio/aoa.h
  stable/11/sys/dev/sound/macio/davbus.c
  stable/11/sys/dev/sound/macio/davbusreg.h
  stable/11/sys/dev/sound/macio/i2s.c
  stable/11/sys/dev/sound/macio/onyx.c
  stable/11/sys/dev/sound/macio/snapper.c
  stable/11/sys/dev/sound/macio/tumbler.c
  stable/11/sys/dev/sound/midi/midi.c
  stable/11/sys/dev/sound/midi/midi.h
  stable/11/sys/dev/sound/midi/midiq.h
  stable/11/sys/dev/sound/midi/mpu401.c
  stable/11/sys/dev/sound/midi/mpu401.h
  stable/11/sys/dev/sound/midi/sequencer.c
  stable/11/sys/dev/sound/midi/sequencer.h
  stable/11/sys/dev/sound/pci/allegro_code.h
  stable/11/sys/dev/sound/pci/allegro_reg.h
  stable/11/sys/dev/sound/pci/als4000.c
  stable/11/sys/dev/sound/pci/als4000.h
  stable/11/sys/dev/sound/pci/atiixp.c
  stable/11/sys/dev/sound/pci/atiixp.h
  stable/11/sys/dev/sound/pci/aureal.c
  stable/11/sys/dev/sound/pci/aureal.h
  stable/11/sys/dev/sound/pci/cmi.c
  stable/11/sys/dev/sound/pci/cmireg.h
  stable/11/sys/dev/sound/pci/cs4281.c
  stable/11/sys/dev/sound/pci/cs4281.h
  stable/11/sys/dev/sound/pci/cs461x_dsp.h
  stable/11/sys/dev/sound/pci/csa.c
  stable/11/sys/dev/sound/pci/csapcm.c
  stable/11/sys/dev/sound/pci/csareg.h
  stable/11/sys/dev/sound/pci/csavar.h
  stable/11/sys/dev/sound/pci/ds1-fw.h
  stable/11/sys/dev/sound/pci/ds1.c
  stable/11/sys/dev/sound/pci/emu10k1.c
  stable/11/sys/dev/sound/pci/emu10kx-midi.c
  stable/11/sys/dev/sound/pci/emu10kx-pcm.c
  stable/11/sys/dev/sound/pci/emu10kx.c
  stable/11/sys/dev/sound/pci/emu10kx.h
  stable/11/sys/dev/sound/pci/envy24.c
  stable/11/sys/dev/sound/pci/envy24.h
  stable/11/sys/dev/sound/pci/envy24ht.c
  stable/11/sys/dev/sound/pci/envy24ht.h
  stable/11/sys/dev/sound/pci/es137x.c
  stable/11/sys/dev/sound/pci/es137x.h
  stable/11/sys/dev/sound/pci/fm801.c
  stable/11/sys/dev/sound/pci/hda/hda_reg.h
  stable/11/sys/dev/sound/pci/hda/hdaa.c
  stable/11/sys/dev/sound/pci/hda/hdaa.h
  stable/11/sys/dev/sound/pci/hda/hdaa_patches.c
  stable/11/sys/dev/sound/pci/hda/hdac.c
  stable/11/sys/dev/sound/pci/hda/hdac.h
  stable/11/sys/dev/sound/pci/hda/hdac_private.h
  stable/11/sys/dev/sound/pci/hda/hdac_reg.h
  stable/11/sys/dev/sound/pci/hda/hdacc.c
  stable/11/sys/dev/sound/pci/hdspe-pcm.c
  stable/11/sys/dev/sound/pci/hdspe.c
  stable/11/sys/dev/sound/pci/hdspe.h
  stable/11/sys/dev/sound/pci/ich.c
  stable/11/sys/dev/sound/pci/ich.h
  stable/11/sys/dev/sound/pci/maestro.c
  stable/11/sys/dev/sound/pci/maestro3.c
  stable/11/sys/dev/sound/pci/maestro_reg.h
  stable/11/sys/dev/sound/pci/neomagic-coeff.h
  stable/11/sys/dev/sound/pci/neomagic.c
  stable/11/sys/dev/sound/pci/neomagic.h
  stable/11/sys/dev/sound/pci/solo.c
  stable/11/sys/dev/sound/pci/spicds.c
  stable/11/sys/dev/sound/pci/spicds.h
  stable/11/sys/dev/sound/pci/t4dwave.c
  stable/11/sys/dev/sound/pci/t4dwave.h
  stable/11/sys/dev/sound/pci/via8233.c
  stable/11/sys/dev/sound/pci/via8233.h
  stable/11/sys/dev/sound/pci/via82c686.c
  stable/11/sys/dev/sound/pci/via82c686.h
  stable/11/sys/dev/sound/pci/vibes.c
  stable/11/sys/dev/sound/pci/vibes.h
  stable/11/sys/dev/sound/pcm/ac97.c
  stable/11/sys/dev/sound/pcm/ac97.h
  stable/11/sys/dev/sound/pcm/ac97_patch.c
  stable/11/sys/dev/sound/pcm/ac97_patch.h
  stable/11/sys/dev/sound/pcm/buffer.c
  stable/11/sys/dev/sound/pcm/buffer.h
  stable/11/sys/dev/sound/pcm/channel.c
  stable/11/sys/dev/sound/pcm/channel.h
  stable/11/sys/dev/sound/pcm/dsp.c
  stable/11/sys/dev/sound/pcm/dsp.h
  stable/11/sys/dev/sound/pcm/feeder.c
  stable/11/sys/dev/sound/pcm/feeder.h
  stable/11/sys/dev/sound/pcm/feeder_chain.c
  stable/11/sys/dev/sound/pcm/feeder_eq.c
  stable/11/sys/dev/sound/pcm/feeder_format.c
  stable/11/sys/dev/sound/pcm/feeder_matrix.c
  stable/11/sys/dev/sound/pcm/feeder_mixer.c
  stable/11/sys/dev/sound/pcm/feeder_rate.c
  stable/11/sys/dev/sound/pcm/feeder_volume.c
  stable/11/sys/dev/sound/pcm/g711.h
  stable/11/sys/dev/sound/pcm/intpcm.h
  stable/11/sys/dev/sound/pcm/matrix.h
  stable/11/sys/dev/sound/pcm/matrix_map.h
  stable/11/sys/dev/sound/pcm/mixer.c
  stable/11/sys/dev/sound/pcm/mixer.h
  stable/11/sys/dev/sound/pcm/pcm.h
  stable/11/sys/dev/sound/pcm/sndstat.c
  stable/11/sys/dev/sound/pcm/sndstat.h
  stable/11/sys/dev/sound/pcm/sound.c
  stable/11/sys/dev/sound/pcm/sound.h
  stable/11/sys/dev/sound/pcm/vchan.c
  stable/11/sys/dev/sound/pcm/vchan.h
  stable/11/sys/dev/sound/sbus/apcdmareg.h
  stable/11/sys/dev/sound/sbus/cs4231.c
  stable/11/sys/dev/sound/sbus/cs4231.h
  stable/11/sys/dev/sound/unit.c
  stable/11/sys/dev/sound/unit.h
  stable/11/sys/dev/sound/usb/uaudio.c
  stable/11/sys/dev/sound/usb/uaudio.h
  stable/11/sys/dev/sound/usb/uaudio_pcm.c
  stable/11/sys/dev/sound/usb/uaudioreg.h
  stable/11/sys/dev/sound/version.h
  stable/11/sys/dev/spibus/ofw_spibus.c
  stable/11/sys/dev/ste/if_ste.c
  stable/11/sys/dev/ste/if_stereg.h
  stable/11/sys/dev/stg/tmc18c30.c
  stable/11/sys/dev/stg/tmc18c30_isa.c
  stable/11/sys/dev/stg/tmc18c30_pccard.c
  stable/11/sys/dev/stg/tmc18c30_pci.c
  stable/11/sys/dev/stg/tmc18c30_subr.c
  stable/11/sys/dev/stg/tmc18c30reg.h
  stable/11/sys/dev/stg/tmc18c30var.h
  stable/11/sys/dev/stge/if_stge.c
  stable/11/sys/dev/stge/if_stgereg.h
  stable/11/sys/dev/sym/sym_conf.h
  stable/11/sys/dev/sym/sym_defs.h
  stable/11/sys/dev/sym/sym_fw.h
  stable/11/sys/dev/sym/sym_fw1.h
  stable/11/sys/dev/sym/sym_fw2.h
  stable/11/sys/dev/sym/sym_hipd.c
  stable/11/sys/dev/syscons/apm/apm_saver.c
  stable/11/sys/dev/syscons/blank/blank_saver.c
  stable/11/sys/dev/syscons/daemon/daemon_saver.c
  stable/11/sys/dev/syscons/dragon/dragon_saver.c
  stable/11/sys/dev/syscons/fade/fade_saver.c
  stable/11/sys/dev/syscons/fire/fire_saver.c
  stable/11/sys/dev/syscons/green/green_saver.c
  stable/11/sys/dev/syscons/logo/logo_saver.c
  stable/11/sys/dev/syscons/rain/rain_saver.c
  stable/11/sys/dev/syscons/scgfbrndr.c
  stable/11/sys/dev/syscons/schistory.c
  stable/11/sys/dev/syscons/scmouse.c
  stable/11/sys/dev/syscons/scterm-teken.c
  stable/11/sys/dev/syscons/scterm.c
  stable/11/sys/dev/syscons/scvesactl.c
  stable/11/sys/dev/syscons/scvgarndr.c
  stable/11/sys/dev/syscons/scvidctl.c
  stable/11/sys/dev/syscons/scvtb.c
  stable/11/sys/dev/syscons/snake/snake_saver.c
  stable/11/sys/dev/syscons/star/star_saver.c
  stable/11/sys/dev/syscons/syscons.c
  stable/11/sys/dev/syscons/syscons.h
  stable/11/sys/dev/syscons/sysmouse.c
  stable/11/sys/dev/syscons/warp/warp_saver.c
  stable/11/sys/dev/tdfx/tdfx_io.h
  stable/11/sys/dev/tdfx/tdfx_linux.c
  stable/11/sys/dev/tdfx/tdfx_linux.h
  stable/11/sys/dev/tdfx/tdfx_pci.c
  stable/11/sys/dev/tdfx/tdfx_pci.h
  stable/11/sys/dev/tdfx/tdfx_vars.h
  stable/11/sys/dev/terasic/de4led/terasic_de4led.c
  stable/11/sys/dev/terasic/de4led/terasic_de4led.h
  stable/11/sys/dev/terasic/de4led/terasic_de4led_fdt.c
  stable/11/sys/dev/terasic/de4led/terasic_de4led_nexus.c
  stable/11/sys/dev/terasic/mtl/terasic_mtl.c
  stable/11/sys/dev/terasic/mtl/terasic_mtl.h
  stable/11/sys/dev/terasic/mtl/terasic_mtl_fdt.c
  stable/11/sys/dev/terasic/mtl/terasic_mtl_nexus.c
  stable/11/sys/dev/terasic/mtl/terasic_mtl_pixel.c
  stable/11/sys/dev/terasic/mtl/terasic_mtl_reg.c
  stable/11/sys/dev/terasic/mtl/terasic_mtl_syscons.c
  stable/11/sys/dev/terasic/mtl/terasic_mtl_text.c
  stable/11/sys/dev/ti/if_ti.c
  stable/11/sys/dev/ti/if_tireg.h
  stable/11/sys/dev/tl/if_tl.c
  stable/11/sys/dev/tl/if_tlreg.h
  stable/11/sys/dev/trm/trm.c
  stable/11/sys/dev/trm/trm.h
  stable/11/sys/dev/tsec/if_tsec.c
  stable/11/sys/dev/tsec/if_tsec.h
  stable/11/sys/dev/tsec/if_tsec_fdt.c
  stable/11/sys/dev/tsec/if_tsecreg.h
  stable/11/sys/dev/twa/tw_cl.h
  stable/11/sys/dev/twa/tw_cl_externs.h
  stable/11/sys/dev/twa/tw_cl_fwif.h
  stable/11/sys/dev/twa/tw_cl_init.c
  stable/11/sys/dev/twa/tw_cl_intr.c
  stable/11/sys/dev/twa/tw_cl_io.c
  stable/11/sys/dev/twa/tw_cl_ioctl.h
  stable/11/sys/dev/twa/tw_cl_misc.c
  stable/11/sys/dev/twa/tw_cl_share.h
  stable/11/sys/dev/twa/tw_osl.h
  stable/11/sys/dev/twa/tw_osl_cam.c
  stable/11/sys/dev/twa/tw_osl_externs.h
  stable/11/sys/dev/twa/tw_osl_freebsd.c
  stable/11/sys/dev/twa/tw_osl_includes.h
  stable/11/sys/dev/twa/tw_osl_inline.h
  stable/11/sys/dev/twa/tw_osl_ioctl.h
  stable/11/sys/dev/twa/tw_osl_share.h
  stable/11/sys/dev/twa/tw_osl_types.h
  stable/11/sys/dev/twe/twe.c
  stable/11/sys/dev/twe/twe_compat.h
  stable/11/sys/dev/twe/twe_freebsd.c
  stable/11/sys/dev/twe/twe_tables.h
  stable/11/sys/dev/twe/tweio.h
  stable/11/sys/dev/twe/twereg.h
  stable/11/sys/dev/twe/twevar.h
  stable/11/sys/dev/tws/tws.c
  stable/11/sys/dev/tws/tws.h
  stable/11/sys/dev/tws/tws_cam.c
  stable/11/sys/dev/tws/tws_hdm.c
  stable/11/sys/dev/tws/tws_hdm.h
  stable/11/sys/dev/tws/tws_services.c
  stable/11/sys/dev/tws/tws_services.h
  stable/11/sys/dev/tws/tws_user.c
  stable/11/sys/dev/tws/tws_user.h
  stable/11/sys/dev/tx/if_tx.c
  stable/11/sys/dev/tx/if_txreg.h
  stable/11/sys/dev/tx/if_txvar.h
  stable/11/sys/dev/txp/3c990img.h
  stable/11/sys/dev/txp/if_txp.c
  stable/11/sys/dev/txp/if_txpreg.h
  stable/11/sys/dev/uart/uart.h
  stable/11/sys/dev/uart/uart_bus.h
  stable/11/sys/dev/uart/uart_bus_acpi.c
  stable/11/sys/dev/uart/uart_bus_ebus.c
  stable/11/sys/dev/uart/uart_bus_fdt.c
  stable/11/sys/dev/uart/uart_bus_isa.c
  stable/11/sys/dev/uart/uart_bus_pccard.c
  stable/11/sys/dev/uart/uart_bus_pci.c
  stable/11/sys/dev/uart/uart_bus_puc.c
  stable/11/sys/dev/uart/uart_bus_scc.c
  stable/11/sys/dev/uart/uart_core.c
  stable/11/sys/dev/uart/uart_cpu.h
  stable/11/sys/dev/uart/uart_cpu_fdt.c
  stable/11/sys/dev/uart/uart_cpu_powerpc.c
  stable/11/sys/dev/uart/uart_cpu_sparc64.c
  stable/11/sys/dev/uart/uart_cpu_x86.c
  stable/11/sys/dev/uart/uart_dbg.c
  stable/11/sys/dev/uart/uart_dev_imx.c
  stable/11/sys/dev/uart/uart_dev_lpc.c
  stable/11/sys/dev/uart/uart_dev_ns8250.c
  stable/11/sys/dev/uart/uart_dev_ns8250.h
  stable/11/sys/dev/uart/uart_dev_pl011.c
  stable/11/sys/dev/uart/uart_dev_quicc.c
  stable/11/sys/dev/uart/uart_dev_sab82532.c
  stable/11/sys/dev/uart/uart_dev_ti8250.c
  stable/11/sys/dev/uart/uart_dev_z8530.c
  stable/11/sys/dev/uart/uart_kbd_sun.c
  stable/11/sys/dev/uart/uart_kbd_sun.h
  stable/11/sys/dev/uart/uart_subr.c
  stable/11/sys/dev/uart/uart_tty.c
  stable/11/sys/dev/ubsec/ubsec.c
  stable/11/sys/dev/ubsec/ubsecreg.h
  stable/11/sys/dev/ubsec/ubsecvar.h
  stable/11/sys/dev/usb/controller/at91dci.c
  stable/11/sys/dev/usb/controller/at91dci.h
  stable/11/sys/dev/usb/controller/at91dci_atmelarm.c
  stable/11/sys/dev/usb/controller/at91dci_fdt.c
  stable/11/sys/dev/usb/controller/atmegadci.c
  stable/11/sys/dev/usb/controller/atmegadci.h
  stable/11/sys/dev/usb/controller/atmegadci_atmelarm.c
  stable/11/sys/dev/usb/controller/avr32dci.c
  stable/11/sys/dev/usb/controller/avr32dci.h
  stable/11/sys/dev/usb/controller/dwc_otg.c
  stable/11/sys/dev/usb/controller/dwc_otg.h
  stable/11/sys/dev/usb/controller/dwc_otg_fdt.c
  stable/11/sys/dev/usb/controller/dwc_otgreg.h
  stable/11/sys/dev/usb/controller/ehci.c
  stable/11/sys/dev/usb/controller/ehci.h
  stable/11/sys/dev/usb/controller/ehci_fsl.c
  stable/11/sys/dev/usb/controller/ehci_imx.c
  stable/11/sys/dev/usb/controller/ehci_ixp4xx.c
  stable/11/sys/dev/usb/controller/ehci_mv.c
  stable/11/sys/dev/usb/controller/ehci_pci.c
  stable/11/sys/dev/usb/controller/ehcireg.h
  stable/11/sys/dev/usb/controller/musb_otg.c
  stable/11/sys/dev/usb/controller/musb_otg.h
  stable/11/sys/dev/usb/controller/musb_otg_atmelarm.c
  stable/11/sys/dev/usb/controller/ohci.c
  stable/11/sys/dev/usb/controller/ohci.h
  stable/11/sys/dev/usb/controller/ohci_pci.c
  stable/11/sys/dev/usb/controller/ohci_s3c24x0.c
  stable/11/sys/dev/usb/controller/ohcireg.h
  stable/11/sys/dev/usb/controller/uhci.c
  stable/11/sys/dev/usb/controller/uhci.h
  stable/11/sys/dev/usb/controller/uhci_pci.c
  stable/11/sys/dev/usb/controller/uhcireg.h
  stable/11/sys/dev/usb/controller/usb_controller.c
  stable/11/sys/dev/usb/controller/uss820dci.c
  stable/11/sys/dev/usb/controller/uss820dci.h
  stable/11/sys/dev/usb/controller/uss820dci_atmelarm.c
  stable/11/sys/dev/usb/controller/xhci.c
  stable/11/sys/dev/usb/controller/xhci.h
  stable/11/sys/dev/usb/controller/xhci_pci.c
  stable/11/sys/dev/usb/controller/xhcireg.h
  stable/11/sys/dev/usb/gadget/g_audio.c
  stable/11/sys/dev/usb/gadget/g_audio.h
  stable/11/sys/dev/usb/gadget/g_keyboard.c
  stable/11/sys/dev/usb/gadget/g_keyboard.h
  stable/11/sys/dev/usb/gadget/g_modem.c
  stable/11/sys/dev/usb/gadget/g_modem.h
  stable/11/sys/dev/usb/gadget/g_mouse.c
  stable/11/sys/dev/usb/gadget/g_mouse.h
  stable/11/sys/dev/usb/input/atp.c
  stable/11/sys/dev/usb/input/uep.c
  stable/11/sys/dev/usb/input/uhid.c
  stable/11/sys/dev/usb/input/ukbd.c
  stable/11/sys/dev/usb/input/ums.c
  stable/11/sys/dev/usb/input/usb_rdesc.h
  stable/11/sys/dev/usb/input/wsp.c
  stable/11/sys/dev/usb/misc/udbp.c
  stable/11/sys/dev/usb/misc/ufm.c
  stable/11/sys/dev/usb/net/if_aue.c
  stable/11/sys/dev/usb/net/if_auereg.h
  stable/11/sys/dev/usb/net/if_axe.c
  stable/11/sys/dev/usb/net/if_axereg.h
  stable/11/sys/dev/usb/net/if_axge.c
  stable/11/sys/dev/usb/net/if_axgereg.h
  stable/11/sys/dev/usb/net/if_cdce.c
  stable/11/sys/dev/usb/net/if_cdcereg.h
  stable/11/sys/dev/usb/net/if_cue.c
  stable/11/sys/dev/usb/net/if_cuereg.h
  stable/11/sys/dev/usb/net/if_ipheth.c
  stable/11/sys/dev/usb/net/if_iphethvar.h
  stable/11/sys/dev/usb/net/if_kue.c
  stable/11/sys/dev/usb/net/if_kuefw.h
  stable/11/sys/dev/usb/net/if_kuereg.h
  stable/11/sys/dev/usb/net/if_mos.c
  stable/11/sys/dev/usb/net/if_mosreg.h
  stable/11/sys/dev/usb/net/if_rue.c
  stable/11/sys/dev/usb/net/if_ruereg.h
  stable/11/sys/dev/usb/net/if_smsc.c
  stable/11/sys/dev/usb/net/if_smscreg.h
  stable/11/sys/dev/usb/net/if_udav.c
  stable/11/sys/dev/usb/net/if_udavreg.h
  stable/11/sys/dev/usb/net/if_usie.c
  stable/11/sys/dev/usb/net/if_usievar.h
  stable/11/sys/dev/usb/net/ruephy.c
  stable/11/sys/dev/usb/net/ruephyreg.h
  stable/11/sys/dev/usb/net/uhso.c
  stable/11/sys/dev/usb/net/usb_ethernet.c
  stable/11/sys/dev/usb/net/usb_ethernet.h
  stable/11/sys/dev/usb/quirk/usb_quirk.c
  stable/11/sys/dev/usb/quirk/usb_quirk.h
  stable/11/sys/dev/usb/serial/ubsa.c
  stable/11/sys/dev/usb/serial/ubser.c
  stable/11/sys/dev/usb/serial/uchcom.c
  stable/11/sys/dev/usb/serial/ucycom.c
  stable/11/sys/dev/usb/serial/ufoma.c
  stable/11/sys/dev/usb/serial/uftdi.c
  stable/11/sys/dev/usb/serial/ugensa.c
  stable/11/sys/dev/usb/serial/uipaq.c
  stable/11/sys/dev/usb/serial/ulpt.c
  stable/11/sys/dev/usb/serial/umcs.c
  stable/11/sys/dev/usb/serial/umcs.h
  stable/11/sys/dev/usb/serial/umct.c
  stable/11/sys/dev/usb/serial/umodem.c
  stable/11/sys/dev/usb/serial/uplcom.c
  stable/11/sys/dev/usb/serial/usb_serial.c
  stable/11/sys/dev/usb/serial/usb_serial.h
  stable/11/sys/dev/usb/serial/uvisor.c
  stable/11/sys/dev/usb/serial/uvscom.c
  stable/11/sys/dev/usb/storage/umass.c
  stable/11/sys/dev/usb/storage/urio.c
  stable/11/sys/dev/usb/storage/ustorage_fs.c
  stable/11/sys/dev/usb/template/usb_template.c
  stable/11/sys/dev/usb/template/usb_template.h
  stable/11/sys/dev/usb/template/usb_template_audio.c
  stable/11/sys/dev/usb/template/usb_template_cdce.c
  stable/11/sys/dev/usb/template/usb_template_kbd.c
  stable/11/sys/dev/usb/template/usb_template_modem.c
  stable/11/sys/dev/usb/template/usb_template_mouse.c
  stable/11/sys/dev/usb/template/usb_template_msc.c
  stable/11/sys/dev/usb/template/usb_template_mtp.c
  stable/11/sys/dev/usb/ufm_ioctl.h
  stable/11/sys/dev/usb/usb.h
  stable/11/sys/dev/usb/usb_bus.h
  stable/11/sys/dev/usb/usb_busdma.c
  stable/11/sys/dev/usb/usb_busdma.h
  stable/11/sys/dev/usb/usb_cdc.h
  stable/11/sys/dev/usb/usb_controller.h
  stable/11/sys/dev/usb/usb_core.c
  stable/11/sys/dev/usb/usb_core.h
  stable/11/sys/dev/usb/usb_debug.c
  stable/11/sys/dev/usb/usb_debug.h
  stable/11/sys/dev/usb/usb_dev.c
  stable/11/sys/dev/usb/usb_dev.h
  stable/11/sys/dev/usb/usb_device.c
  stable/11/sys/dev/usb/usb_device.h
  stable/11/sys/dev/usb/usb_dynamic.c
  stable/11/sys/dev/usb/usb_dynamic.h
  stable/11/sys/dev/usb/usb_endian.h
  stable/11/sys/dev/usb/usb_error.c
  stable/11/sys/dev/usb/usb_freebsd.h
  stable/11/sys/dev/usb/usb_freebsd_loader.h
  stable/11/sys/dev/usb/usb_generic.c
  stable/11/sys/dev/usb/usb_generic.h
  stable/11/sys/dev/usb/usb_handle_request.c
  stable/11/sys/dev/usb/usb_hid.c
  stable/11/sys/dev/usb/usb_hub.c
  stable/11/sys/dev/usb/usb_hub.h
  stable/11/sys/dev/usb/usb_ioctl.h
  stable/11/sys/dev/usb/usb_lookup.c
  stable/11/sys/dev/usb/usb_mbuf.c
  stable/11/sys/dev/usb/usb_mbuf.h
  stable/11/sys/dev/usb/usb_msctest.c
  stable/11/sys/dev/usb/usb_msctest.h
  stable/11/sys/dev/usb/usb_parse.c
  stable/11/sys/dev/usb/usb_pci.h
  stable/11/sys/dev/usb/usb_pf.c
  stable/11/sys/dev/usb/usb_pf.h
  stable/11/sys/dev/usb/usb_process.c
  stable/11/sys/dev/usb/usb_process.h
  stable/11/sys/dev/usb/usb_request.c
  stable/11/sys/dev/usb/usb_request.h
  stable/11/sys/dev/usb/usb_transfer.c
  stable/11/sys/dev/usb/usb_transfer.h
  stable/11/sys/dev/usb/usb_util.c
  stable/11/sys/dev/usb/usb_util.h
  stable/11/sys/dev/usb/usbdi.h
  stable/11/sys/dev/usb/usbdi_util.h
  stable/11/sys/dev/usb/usbhid.h
  stable/11/sys/dev/usb/wlan/if_uath.c
  stable/11/sys/dev/usb/wlan/if_zydfw.h
  stable/11/sys/dev/vge/if_vge.c
  stable/11/sys/dev/vge/if_vgereg.h
  stable/11/sys/dev/vge/if_vgevar.h
  stable/11/sys/dev/viawd/viawd.c
  stable/11/sys/dev/viawd/viawd.h
  stable/11/sys/dev/virtio/balloon/virtio_balloon.c
  stable/11/sys/dev/virtio/balloon/virtio_balloon.h
  stable/11/sys/dev/virtio/block/virtio_blk.c
  stable/11/sys/dev/virtio/block/virtio_blk.h
  stable/11/sys/dev/virtio/network/if_vtnet.c
  stable/11/sys/dev/virtio/network/if_vtnetvar.h
  stable/11/sys/dev/virtio/network/virtio_net.h
  stable/11/sys/dev/virtio/pci/virtio_pci.c
  stable/11/sys/dev/virtio/pci/virtio_pci.h
  stable/11/sys/dev/virtio/random/virtio_random.c
  stable/11/sys/dev/virtio/scsi/virtio_scsi.c
  stable/11/sys/dev/virtio/scsi/virtio_scsi.h
  stable/11/sys/dev/virtio/scsi/virtio_scsivar.h
  stable/11/sys/dev/virtio/virtio.c
  stable/11/sys/dev/virtio/virtio.h
  stable/11/sys/dev/virtio/virtio_ring.h
  stable/11/sys/dev/virtio/virtqueue.c
  stable/11/sys/dev/virtio/virtqueue.h
  stable/11/sys/dev/vkbd/vkbd.c
  stable/11/sys/dev/vkbd/vkbd_var.h
  stable/11/sys/dev/vr/if_vr.c
  stable/11/sys/dev/vr/if_vrreg.h
  stable/11/sys/dev/vt/colors/vt_termcolors.c
  stable/11/sys/dev/vt/colors/vt_termcolors.h
  stable/11/sys/dev/vt/font/vt_font_default.c
  stable/11/sys/dev/vt/font/vt_mouse_cursor.c
  stable/11/sys/dev/vt/hw/efifb/efifb.c
  stable/11/sys/dev/vt/hw/fb/vt_early_fb.c
  stable/11/sys/dev/vt/hw/fb/vt_fb.c
  stable/11/sys/dev/vt/hw/fb/vt_fb.h
  stable/11/sys/dev/vt/hw/ofwfb/ofwfb.c
  stable/11/sys/dev/vt/logo/logo_freebsd.c
  stable/11/sys/dev/vt/vt.h
  stable/11/sys/dev/vt/vt_buf.c
  stable/11/sys/dev/vt/vt_consolectl.c
  stable/11/sys/dev/vt/vt_core.c
  stable/11/sys/dev/vt/vt_font.c
  stable/11/sys/dev/vt/vt_sysmouse.c
  stable/11/sys/dev/vte/if_vte.c
  stable/11/sys/dev/vte/if_vtereg.h
  stable/11/sys/dev/vte/if_vtevar.h
  stable/11/sys/dev/vx/if_vx.c
  stable/11/sys/dev/vx/if_vx_pci.c
  stable/11/sys/dev/vx/if_vxreg.h
  stable/11/sys/dev/vx/if_vxvar.h
  stable/11/sys/dev/vxge/include/vxge-debug.h
  stable/11/sys/dev/vxge/include/vxge-defs.h
  stable/11/sys/dev/vxge/include/vxge-list.h
  stable/11/sys/dev/vxge/include/vxge-os-debug.h
  stable/11/sys/dev/vxge/include/vxge-os-pal.h
  stable/11/sys/dev/vxge/include/vxge-queue.h
  stable/11/sys/dev/vxge/include/vxgehal-config.h
  stable/11/sys/dev/vxge/include/vxgehal-ll.h
  stable/11/sys/dev/vxge/include/vxgehal-mgmt.h
  stable/11/sys/dev/vxge/include/vxgehal-mgmtaux.h
  stable/11/sys/dev/vxge/include/vxgehal-stats.h
  stable/11/sys/dev/vxge/include/vxgehal-status.h
  stable/11/sys/dev/vxge/include/vxgehal-types.h
  stable/11/sys/dev/vxge/include/vxgehal-version.h
  stable/11/sys/dev/vxge/vxge-firmware.h
  stable/11/sys/dev/vxge/vxge-osdep.h
  stable/11/sys/dev/vxge/vxge.c
  stable/11/sys/dev/vxge/vxge.h
  stable/11/sys/dev/vxge/vxgehal/vxge-queue.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-blockpool.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-blockpool.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-channel.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-channel.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-common-reg.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-config-priv.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-config.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-debug.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-device.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-device.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-doorbells.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-doorbells.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-driver.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-driver.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-fifo.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-fifo.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-ifmsg.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-ifmsg.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-legacy-reg.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-memrepair-reg.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-mgmt.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-mgmtaux.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-mm.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-mm.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-mrpcim-reg.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-mrpcim.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-mrpcim.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-pcicfgmgmt-reg.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-regdefs.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-regs.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-ring.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-ring.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-srpcim-reg.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-srpcim.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-srpcim.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-swapper.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-swapper.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-toc-reg.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-virtualpath.c
  stable/11/sys/dev/vxge/vxgehal/vxgehal-virtualpath.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-vpath-reg.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal-vpmgmt-reg.h
  stable/11/sys/dev/vxge/vxgehal/vxgehal.h
  stable/11/sys/dev/vxge/vxgell-version.h
  stable/11/sys/dev/watchdog/watchdog.c
  stable/11/sys/dev/wb/if_wb.c
  stable/11/sys/dev/wb/if_wbreg.h
  stable/11/sys/dev/wbwd/wbwd.c
  stable/11/sys/dev/wi/if_wavelan_ieee.h
  stable/11/sys/dev/wi/if_wi_macio.c
  stable/11/sys/dev/wi/if_wi_pccard.c
  stable/11/sys/dev/wi/if_wi_pci.c
  stable/11/sys/dev/wi/if_wireg.h
  stable/11/sys/dev/wi/if_wivar.h
  stable/11/sys/dev/wtap/if_medium.c
  stable/11/sys/dev/wtap/if_medium.h
  stable/11/sys/dev/wtap/if_wtap.c
  stable/11/sys/dev/wtap/if_wtap_module.c
  stable/11/sys/dev/wtap/if_wtapioctl.h
  stable/11/sys/dev/wtap/if_wtapvar.h
  stable/11/sys/dev/wtap/plugins/visibility.c
  stable/11/sys/dev/wtap/plugins/visibility.h
  stable/11/sys/dev/wtap/plugins/visibility_ioctl.h
  stable/11/sys/dev/wtap/plugins/wtap_plugin.h
  stable/11/sys/dev/wtap/wtap_hal/hal.c
  stable/11/sys/dev/wtap/wtap_hal/hal.h
  stable/11/sys/dev/wtap/wtap_hal/handler.h
  stable/11/sys/dev/xe/if_xe.c
  stable/11/sys/dev/xe/if_xe_pccard.c
  stable/11/sys/dev/xe/if_xereg.h
  stable/11/sys/dev/xe/if_xevar.h
  stable/11/sys/dev/xen/blkback/blkback.c
  stable/11/sys/dev/xen/control/control.c
  stable/11/sys/dev/xen/netback/netback.c
  stable/11/sys/dev/xen/netback/netback_unit_tests.c
  stable/11/sys/dev/xen/netfront/netfront.c
  stable/11/sys/dev/xen/pcifront/pcifront.c
  stable/11/sys/dev/xen/timer/timer.c
  stable/11/sys/dev/xen/timer/timer.h
  stable/11/sys/dev/xen/xenpci/xenpci.c
  stable/11/sys/dev/xen/xenpci/xenpcivar.h
  stable/11/sys/dev/xl/if_xl.c
  stable/11/sys/dev/xl/if_xlreg.h
  stable/11/sys/dev/xl/xlphy.c
  stable/11/sys/fs/cd9660/cd9660_bmap.c
  stable/11/sys/fs/cd9660/cd9660_lookup.c
  stable/11/sys/fs/cd9660/cd9660_mount.h
  stable/11/sys/fs/cd9660/cd9660_node.c
  stable/11/sys/fs/cd9660/cd9660_node.h
  stable/11/sys/fs/cd9660/cd9660_rrip.c
  stable/11/sys/fs/cd9660/cd9660_rrip.h
  stable/11/sys/fs/cd9660/cd9660_util.c
  stable/11/sys/fs/cd9660/cd9660_vfsops.c
  stable/11/sys/fs/cd9660/cd9660_vnops.c
  stable/11/sys/fs/cd9660/iso.h
  stable/11/sys/fs/cd9660/iso_rrip.h
  stable/11/sys/fs/deadfs/dead_vnops.c
  stable/11/sys/fs/ext2fs/ext2_alloc.c
  stable/11/sys/fs/ext2fs/ext2_balloc.c
  stable/11/sys/fs/ext2fs/ext2_bmap.c
  stable/11/sys/fs/ext2fs/ext2_extern.h
  stable/11/sys/fs/ext2fs/ext2_inode.c
  stable/11/sys/fs/ext2fs/ext2_lookup.c
  stable/11/sys/fs/ext2fs/ext2_mount.h
  stable/11/sys/fs/ext2fs/ext2_subr.c
  stable/11/sys/fs/ext2fs/ext2_vfsops.c
  stable/11/sys/fs/ext2fs/ext2_vnops.c
  stable/11/sys/fs/ext2fs/fs.h
  stable/11/sys/fs/ext2fs/inode.h
  stable/11/sys/fs/fdescfs/fdesc.h
  stable/11/sys/fs/fdescfs/fdesc_vfsops.c
  stable/11/sys/fs/fdescfs/fdesc_vnops.c
  stable/11/sys/fs/fifofs/fifo_vnops.c
  stable/11/sys/fs/fuse/fuse.h
  stable/11/sys/fs/fuse/fuse_debug.h
  stable/11/sys/fs/fuse/fuse_device.c
  stable/11/sys/fs/fuse/fuse_file.c
  stable/11/sys/fs/fuse/fuse_file.h
  stable/11/sys/fs/fuse/fuse_internal.c
  stable/11/sys/fs/fuse/fuse_internal.h
  stable/11/sys/fs/fuse/fuse_io.c
  stable/11/sys/fs/fuse/fuse_io.h
  stable/11/sys/fs/fuse/fuse_ipc.c
  stable/11/sys/fs/fuse/fuse_ipc.h
  stable/11/sys/fs/fuse/fuse_kernel.h
  stable/11/sys/fs/fuse/fuse_main.c
  stable/11/sys/fs/fuse/fuse_node.c
  stable/11/sys/fs/fuse/fuse_node.h
  stable/11/sys/fs/fuse/fuse_param.h
  stable/11/sys/fs/fuse/fuse_vfsops.c
  stable/11/sys/fs/fuse/fuse_vnops.c
  stable/11/sys/fs/nfs/nfs.h
  stable/11/sys/fs/nfs/nfs_commonkrpc.c
  stable/11/sys/fs/nfs/nfs_commonport.c
  stable/11/sys/fs/nfs/nfs_commonsubs.c
  stable/11/sys/fs/nfs/nfs_var.h
  stable/11/sys/fs/nfs/nfsm_subs.h
  stable/11/sys/fs/nfs/nfsport.h
  stable/11/sys/fs/nfs/nfsproto.h
  stable/11/sys/fs/nfs/nfsrvcache.h
  stable/11/sys/fs/nfs/rpcv2.h
  stable/11/sys/fs/nfs/xdr_subs.h
  stable/11/sys/fs/nfsclient/nfs.h
  stable/11/sys/fs/nfsclient/nfs_clbio.c
  stable/11/sys/fs/nfsclient/nfs_clcomsubs.c
  stable/11/sys/fs/nfsclient/nfs_clkrpc.c
  stable/11/sys/fs/nfsclient/nfs_clnfsiod.c
  stable/11/sys/fs/nfsclient/nfs_clnode.c
  stable/11/sys/fs/nfsclient/nfs_clport.c
  stable/11/sys/fs/nfsclient/nfs_clrpcops.c
  stable/11/sys/fs/nfsclient/nfs_clsubs.c
  stable/11/sys/fs/nfsclient/nfs_clvfsops.c
  stable/11/sys/fs/nfsclient/nfs_clvnops.c
  stable/11/sys/fs/nfsclient/nfsmount.h
  stable/11/sys/fs/nfsclient/nfsnode.h
  stable/11/sys/fs/nfsserver/nfs_nfsdcache.c
  stable/11/sys/fs/nfsserver/nfs_nfsdkrpc.c
  stable/11/sys/fs/nfsserver/nfs_nfsdport.c
  stable/11/sys/fs/nfsserver/nfs_nfsdserv.c
  stable/11/sys/fs/nfsserver/nfs_nfsdsocket.c
  stable/11/sys/fs/nfsserver/nfs_nfsdsubs.c
  stable/11/sys/fs/nullfs/null.h
  stable/11/sys/fs/nullfs/null_subr.c
  stable/11/sys/fs/nullfs/null_vfsops.c
  stable/11/sys/fs/nullfs/null_vnops.c
  stable/11/sys/fs/procfs/procfs.c
  stable/11/sys/fs/procfs/procfs.h
  stable/11/sys/fs/procfs/procfs_dbregs.c
  stable/11/sys/fs/procfs/procfs_fpregs.c
  stable/11/sys/fs/procfs/procfs_map.c
  stable/11/sys/fs/procfs/procfs_mem.c
  stable/11/sys/fs/procfs/procfs_note.c
  stable/11/sys/fs/procfs/procfs_osrel.c
  stable/11/sys/fs/procfs/procfs_regs.c
  stable/11/sys/fs/procfs/procfs_rlimit.c
  stable/11/sys/fs/procfs/procfs_status.c
  stable/11/sys/fs/procfs/procfs_type.c
  stable/11/sys/fs/unionfs/union.h
  stable/11/sys/fs/unionfs/union_subr.c
  stable/11/sys/fs/unionfs/union_vfsops.c
  stable/11/sys/fs/unionfs/union_vnops.c
  stable/11/sys/geom/vinum/geom_vinum_share.c
  stable/11/sys/geom/vinum/geom_vinum_subr.c
  stable/11/sys/geom/vinum/geom_vinum_var.h
  stable/11/sys/i386/acpica/acpi_machdep.c
  stable/11/sys/i386/bios/smapi.c
  stable/11/sys/i386/i386/atomic.c
  stable/11/sys/i386/i386/bios.c
  stable/11/sys/i386/i386/bpf_jit_machdep.c
  stable/11/sys/i386/i386/bpf_jit_machdep.h
  stable/11/sys/i386/i386/elf_machdep.c
  stable/11/sys/i386/i386/gdb_machdep.c
  stable/11/sys/i386/i386/genassym.c
  stable/11/sys/i386/i386/geode.c
  stable/11/sys/i386/i386/in_cksum.c
  stable/11/sys/i386/i386/initcpu.c
  stable/11/sys/i386/i386/io.c
  stable/11/sys/i386/i386/k6_mem.c
  stable/11/sys/i386/i386/longrun.c
  stable/11/sys/i386/i386/machdep.c
  stable/11/sys/i386/i386/mem.c
  stable/11/sys/i386/i386/minidump_machdep.c
  stable/11/sys/i386/i386/mp_machdep.c
  stable/11/sys/i386/i386/pmap.c
  stable/11/sys/i386/i386/ptrace_machdep.c
  stable/11/sys/i386/i386/sys_machdep.c
  stable/11/sys/i386/i386/trap.c
  stable/11/sys/i386/i386/uio_machdep.c
  stable/11/sys/i386/i386/vm86.c
  stable/11/sys/i386/i386/vm_machdep.c
  stable/11/sys/i386/ibcs2/coff.h
  stable/11/sys/i386/ibcs2/ibcs2_dirent.h
  stable/11/sys/i386/ibcs2/ibcs2_errno.c
  stable/11/sys/i386/ibcs2/ibcs2_errno.h
  stable/11/sys/i386/ibcs2/ibcs2_fcntl.c
  stable/11/sys/i386/ibcs2/ibcs2_fcntl.h
  stable/11/sys/i386/ibcs2/ibcs2_ioctl.c
  stable/11/sys/i386/ibcs2/ibcs2_ipc.c
  stable/11/sys/i386/ibcs2/ibcs2_ipc.h
  stable/11/sys/i386/ibcs2/ibcs2_isc.c
  stable/11/sys/i386/ibcs2/ibcs2_misc.c
  stable/11/sys/i386/ibcs2/ibcs2_mount.h
  stable/11/sys/i386/ibcs2/ibcs2_msg.c
  stable/11/sys/i386/ibcs2/ibcs2_other.c
  stable/11/sys/i386/ibcs2/ibcs2_signal.c
  stable/11/sys/i386/ibcs2/ibcs2_signal.h
  stable/11/sys/i386/ibcs2/ibcs2_socksys.c
  stable/11/sys/i386/ibcs2/ibcs2_socksys.h
  stable/11/sys/i386/ibcs2/ibcs2_stat.c
  stable/11/sys/i386/ibcs2/ibcs2_stat.h
  stable/11/sys/i386/ibcs2/ibcs2_statfs.h
  stable/11/sys/i386/ibcs2/ibcs2_stropts.h
  stable/11/sys/i386/ibcs2/ibcs2_sysi86.c
  stable/11/sys/i386/ibcs2/ibcs2_sysvec.c
  stable/11/sys/i386/ibcs2/ibcs2_termios.h
  stable/11/sys/i386/ibcs2/ibcs2_time.h
  stable/11/sys/i386/ibcs2/ibcs2_types.h
  stable/11/sys/i386/ibcs2/ibcs2_unistd.h
  stable/11/sys/i386/ibcs2/ibcs2_ustat.h
  stable/11/sys/i386/ibcs2/ibcs2_util.c
  stable/11/sys/i386/ibcs2/ibcs2_util.h
  stable/11/sys/i386/ibcs2/ibcs2_utime.h
  stable/11/sys/i386/ibcs2/ibcs2_utsname.h
  stable/11/sys/i386/ibcs2/ibcs2_xenix.c
  stable/11/sys/i386/ibcs2/imgact_coff.c
  stable/11/sys/i386/include/_bus.h
  stable/11/sys/i386/include/asm.h
  stable/11/sys/i386/include/asmacros.h
  stable/11/sys/i386/include/atomic.h
  stable/11/sys/i386/include/bootinfo.h
  stable/11/sys/i386/include/bus_dma.h
  stable/11/sys/i386/include/counter.h
  stable/11/sys/i386/include/cpu.h
  stable/11/sys/i386/include/cpufunc.h
  stable/11/sys/i386/include/cputypes.h
  stable/11/sys/i386/include/elan_mmcr.h
  stable/11/sys/i386/include/exec.h
  stable/11/sys/i386/include/floatingpoint.h
  stable/11/sys/i386/include/gdb_machdep.h
  stable/11/sys/i386/include/ieeefp.h
  stable/11/sys/i386/include/if_wl_wavelan.h
  stable/11/sys/i386/include/in_cksum.h
  stable/11/sys/i386/include/intr_machdep.h
  stable/11/sys/i386/include/ioctl_bt848.h
  stable/11/sys/i386/include/ioctl_meteor.h
  stable/11/sys/i386/include/iodev.h
  stable/11/sys/i386/include/kdb.h
  stable/11/sys/i386/include/limits.h
  stable/11/sys/i386/include/md_var.h
  stable/11/sys/i386/include/memdev.h
  stable/11/sys/i386/include/minidump.h
  stable/11/sys/i386/include/mp_watchdog.h
  stable/11/sys/i386/include/npx.h
  stable/11/sys/i386/include/param.h
  stable/11/sys/i386/include/pc/bios.h
  stable/11/sys/i386/include/pcaudioio.h
  stable/11/sys/i386/include/pcb.h
  stable/11/sys/i386/include/pcb_ext.h
  stable/11/sys/i386/include/pcpu.h
  stable/11/sys/i386/include/pmap.h
  stable/11/sys/i386/include/pmc_mdep.h
  stable/11/sys/i386/include/ppireg.h
  stable/11/sys/i386/include/proc.h
  stable/11/sys/i386/include/profile.h
  stable/11/sys/i386/include/reloc.h
  stable/11/sys/i386/include/runq.h
  stable/11/sys/i386/include/segments.h
  stable/11/sys/i386/include/sf_buf.h
  stable/11/sys/i386/include/sigframe.h
  stable/11/sys/i386/include/signal.h
  stable/11/sys/i386/include/smapi.h
  stable/11/sys/i386/include/timerreg.h
  stable/11/sys/i386/include/tss.h
  stable/11/sys/i386/include/ucontext.h
  stable/11/sys/i386/include/varargs.h
  stable/11/sys/i386/include/vm.h
  stable/11/sys/i386/include/vm86.h
  stable/11/sys/i386/include/vmparam.h
  stable/11/sys/i386/isa/ccbque.h
  stable/11/sys/i386/isa/elink.c
  stable/11/sys/i386/isa/elink.h
  stable/11/sys/i386/isa/pmtimer.c
  stable/11/sys/i386/isa/prof_machdep.c
  stable/11/sys/i386/linux/imgact_linux.c
  stable/11/sys/i386/linux/linux.h
  stable/11/sys/i386/linux/linux_dummy.c
  stable/11/sys/i386/linux/linux_machdep.c
  stable/11/sys/i386/linux/linux_ptrace.c
  stable/11/sys/i386/linux/linux_sysvec.c
  stable/11/sys/i386/pci/pci_cfgreg.c
  stable/11/sys/i386/pci/pci_pir.c
  stable/11/sys/isa/isareg.h
  stable/11/sys/isa/pnpreg.h
  stable/11/sys/isa/rtc.h
  stable/11/sys/kern/init_main.c
  stable/11/sys/kern/kern_acct.c
  stable/11/sys/kern/kern_clock.c
  stable/11/sys/kern/kern_cons.c
  stable/11/sys/kern/kern_descrip.c
  stable/11/sys/kern/kern_exit.c
  stable/11/sys/kern/kern_fork.c
  stable/11/sys/kern/kern_ktrace.c
  stable/11/sys/kern/kern_lockf.c
  stable/11/sys/kern/kern_malloc.c
  stable/11/sys/kern/kern_mib.c
  stable/11/sys/kern/kern_proc.c
  stable/11/sys/kern/kern_prot.c
  stable/11/sys/kern/kern_resource.c
  stable/11/sys/kern/kern_rmlock.c
  stable/11/sys/kern/kern_shutdown.c
  stable/11/sys/kern/kern_sig.c
  stable/11/sys/kern/kern_synch.c
  stable/11/sys/kern/kern_sysctl.c
  stable/11/sys/kern/kern_time.c
  stable/11/sys/kern/kern_timeout.c
  stable/11/sys/kern/kern_xxx.c
  stable/11/sys/kern/ksched.c
  stable/11/sys/kern/p1003_1b.c
  stable/11/sys/kern/posix4_mib.c
  stable/11/sys/kern/sched_4bsd.c
  stable/11/sys/kern/subr_autoconf.c
  stable/11/sys/kern/subr_blist.c
  stable/11/sys/kern/subr_clock.c
  stable/11/sys/kern/subr_hash.c
  stable/11/sys/kern/subr_log.c
  stable/11/sys/kern/subr_mchain.c
  stable/11/sys/kern/subr_param.c
  stable/11/sys/kern/subr_pcpu.c
  stable/11/sys/kern/subr_prf.c
  stable/11/sys/kern/subr_prof.c
  stable/11/sys/kern/subr_rtc.c
  stable/11/sys/kern/subr_scanf.c
  stable/11/sys/kern/subr_sglist.c
  stable/11/sys/kern/subr_syscall.c
  stable/11/sys/kern/subr_trap.c
  stable/11/sys/kern/subr_uio.c
  stable/11/sys/kern/sys_generic.c
  stable/11/sys/kern/sys_socket.c
  stable/11/sys/kern/tty_compat.c
  stable/11/sys/kern/tty_info.c
  stable/11/sys/kern/uipc_domain.c
  stable/11/sys/kern/uipc_mbuf.c
  stable/11/sys/kern/uipc_mbuf2.c
  stable/11/sys/kern/uipc_sockbuf.c
  stable/11/sys/kern/uipc_socket.c
  stable/11/sys/kern/uipc_syscalls.c
  stable/11/sys/kern/uipc_usrreq.c
  stable/11/sys/kern/vfs_cache.c
  stable/11/sys/kern/vfs_cluster.c
  stable/11/sys/kern/vfs_default.c
  stable/11/sys/kern/vfs_export.c
  stable/11/sys/kern/vfs_init.c
  stable/11/sys/kern/vfs_lookup.c
  stable/11/sys/kern/vfs_mount.c
  stable/11/sys/kern/vfs_mountroot.c
  stable/11/sys/kern/vfs_subr.c
  stable/11/sys/kern/vfs_syscalls.c
  stable/11/sys/kern/vfs_vnops.c
  stable/11/sys/libkern/arm/muldi3.c
  stable/11/sys/libkern/ashldi3.c
  stable/11/sys/libkern/ashrdi3.c
  stable/11/sys/libkern/bcmp.c
  stable/11/sys/libkern/bsearch.c
  stable/11/sys/libkern/cmpdi2.c
  stable/11/sys/libkern/divdi3.c
  stable/11/sys/libkern/ffs.c
  stable/11/sys/libkern/ffsl.c
  stable/11/sys/libkern/fls.c
  stable/11/sys/libkern/flsl.c
  stable/11/sys/libkern/flsll.c
  stable/11/sys/libkern/fnmatch.c
  stable/11/sys/libkern/lshrdi3.c
  stable/11/sys/libkern/mcount.c
  stable/11/sys/libkern/memchr.c
  stable/11/sys/libkern/memcmp.c
  stable/11/sys/libkern/moddi3.c
  stable/11/sys/libkern/qdivrem.c
  stable/11/sys/libkern/qsort.c
  stable/11/sys/libkern/quad.h
  stable/11/sys/libkern/random.c
  stable/11/sys/libkern/scanc.c
  stable/11/sys/libkern/strcasecmp.c
  stable/11/sys/libkern/strcat.c
  stable/11/sys/libkern/strchr.c
  stable/11/sys/libkern/strcmp.c
  stable/11/sys/libkern/strcpy.c
  stable/11/sys/libkern/strncmp.c
  stable/11/sys/libkern/strncpy.c
  stable/11/sys/libkern/strrchr.c
  stable/11/sys/libkern/strsep.c
  stable/11/sys/libkern/strstr.c
  stable/11/sys/libkern/strtol.c
  stable/11/sys/libkern/strtoq.c
  stable/11/sys/libkern/strtoul.c
  stable/11/sys/libkern/strtouq.c
  stable/11/sys/libkern/ucmpdi2.c
  stable/11/sys/libkern/udivdi3.c
  stable/11/sys/libkern/umoddi3.c
  stable/11/sys/mips/adm5120/adm5120_machdep.c
  stable/11/sys/mips/adm5120/adm5120reg.h
  stable/11/sys/mips/adm5120/admpci.c
  stable/11/sys/mips/adm5120/console.c
  stable/11/sys/mips/adm5120/if_admsw.c
  stable/11/sys/mips/adm5120/if_admswreg.h
  stable/11/sys/mips/adm5120/if_admswvar.h
  stable/11/sys/mips/adm5120/obio.c
  stable/11/sys/mips/adm5120/obiovar.h
  stable/11/sys/mips/adm5120/uart_bus_adm5120.c
  stable/11/sys/mips/adm5120/uart_cpu_adm5120.c
  stable/11/sys/mips/adm5120/uart_dev_adm5120.c
  stable/11/sys/mips/adm5120/uart_dev_adm5120.h
  stable/11/sys/mips/alchemy/alchemy_machdep.c
  stable/11/sys/mips/alchemy/obio.c
  stable/11/sys/mips/alchemy/uart_bus_alchemy.c
  stable/11/sys/mips/alchemy/uart_cpu_alchemy.c
  stable/11/sys/mips/atheros/apb.c
  stable/11/sys/mips/atheros/apbvar.h
  stable/11/sys/mips/atheros/ar71xx_bus_space_reversed.c
  stable/11/sys/mips/atheros/ar71xx_chip.c
  stable/11/sys/mips/atheros/ar71xx_chip.h
  stable/11/sys/mips/atheros/ar71xx_cpudef.h
  stable/11/sys/mips/atheros/ar71xx_ehci.c
  stable/11/sys/mips/atheros/ar71xx_fixup.c
  stable/11/sys/mips/atheros/ar71xx_fixup.h
  stable/11/sys/mips/atheros/ar71xx_gpio.c
  stable/11/sys/mips/atheros/ar71xx_gpiovar.h
  stable/11/sys/mips/atheros/ar71xx_machdep.c
  stable/11/sys/mips/atheros/ar71xx_ohci.c
  stable/11/sys/mips/atheros/ar71xx_pci.c
  stable/11/sys/mips/atheros/ar71xx_pci_bus_space.c
  stable/11/sys/mips/atheros/ar71xx_setup.c
  stable/11/sys/mips/atheros/ar71xx_setup.h
  stable/11/sys/mips/atheros/ar71xx_spi.c
  stable/11/sys/mips/atheros/ar71xx_wdog.c
  stable/11/sys/mips/atheros/ar71xxreg.h
  stable/11/sys/mips/atheros/ar724x_chip.c
  stable/11/sys/mips/atheros/ar724x_chip.h
  stable/11/sys/mips/atheros/ar724x_pci.c
  stable/11/sys/mips/atheros/ar724xreg.h
  stable/11/sys/mips/atheros/ar91xx_chip.c
  stable/11/sys/mips/atheros/ar91xx_chip.h
  stable/11/sys/mips/atheros/ar91xxreg.h
  stable/11/sys/mips/atheros/ar933x_chip.c
  stable/11/sys/mips/atheros/ar933x_chip.h
  stable/11/sys/mips/atheros/ar933x_uart.h
  stable/11/sys/mips/atheros/ar933xreg.h
  stable/11/sys/mips/atheros/ar934x_chip.c
  stable/11/sys/mips/atheros/ar934x_chip.h
  stable/11/sys/mips/atheros/ar934xreg.h
  stable/11/sys/mips/atheros/if_arge.c
  stable/11/sys/mips/atheros/if_argevar.h
  stable/11/sys/mips/atheros/pcf2123_rtc.c
  stable/11/sys/mips/atheros/pcf2123reg.h
  stable/11/sys/mips/atheros/uart_bus_ar71xx.c
  stable/11/sys/mips/atheros/uart_bus_ar933x.c
  stable/11/sys/mips/atheros/uart_cpu_ar71xx.c
  stable/11/sys/mips/atheros/uart_cpu_ar933x.c
  stable/11/sys/mips/atheros/uart_dev_ar933x.c
  stable/11/sys/mips/atheros/uart_dev_ar933x.h
  stable/11/sys/mips/beri/beri_machdep.c
  stable/11/sys/mips/beri/beri_pic.c
  stable/11/sys/mips/cavium/ciu.c
  stable/11/sys/mips/cavium/cryptocteon/cavium_crypto.c
  stable/11/sys/mips/cavium/cvmx_config.h
  stable/11/sys/mips/cavium/if_octm.c
  stable/11/sys/mips/cavium/obio.c
  stable/11/sys/mips/cavium/obiovar.h
  stable/11/sys/mips/cavium/octe/cavium-ethernet.h
  stable/11/sys/mips/cavium/octe/ethernet-common.c
  stable/11/sys/mips/cavium/octe/ethernet-common.h
  stable/11/sys/mips/cavium/octe/ethernet-defines.h
  stable/11/sys/mips/cavium/octe/ethernet-headers.h
  stable/11/sys/mips/cavium/octe/ethernet-mdio.c
  stable/11/sys/mips/cavium/octe/ethernet-mdio.h
  stable/11/sys/mips/cavium/octe/ethernet-mem.c
  stable/11/sys/mips/cavium/octe/ethernet-mem.h
  stable/11/sys/mips/cavium/octe/ethernet-mv88e61xx.c
  stable/11/sys/mips/cavium/octe/ethernet-mv88e61xx.h
  stable/11/sys/mips/cavium/octe/ethernet-rgmii.c
  stable/11/sys/mips/cavium/octe/ethernet-rx.c
  stable/11/sys/mips/cavium/octe/ethernet-rx.h
  stable/11/sys/mips/cavium/octe/ethernet-sgmii.c
  stable/11/sys/mips/cavium/octe/ethernet-spi.c
  stable/11/sys/mips/cavium/octe/ethernet-tx.c
  stable/11/sys/mips/cavium/octe/ethernet-tx.h
  stable/11/sys/mips/cavium/octe/ethernet-util.h
  stable/11/sys/mips/cavium/octe/ethernet-xaui.c
  stable/11/sys/mips/cavium/octe/ethernet.c
  stable/11/sys/mips/cavium/octe/mv88e61xxphy.c
  stable/11/sys/mips/cavium/octe/mv88e61xxphyreg.h
  stable/11/sys/mips/cavium/octe/octe.c
  stable/11/sys/mips/cavium/octe/octebus.c
  stable/11/sys/mips/cavium/octe/octebusvar.h
  stable/11/sys/mips/cavium/octe/wrapper-cvmx-includes.h
  stable/11/sys/mips/cavium/octeon_cop2.h
  stable/11/sys/mips/cavium/octeon_ds1337.c
  stable/11/sys/mips/cavium/octeon_ebt3000_cf.c
  stable/11/sys/mips/cavium/octeon_gpio.c
  stable/11/sys/mips/cavium/octeon_gpiovar.h
  stable/11/sys/mips/cavium/octeon_irq.h
  stable/11/sys/mips/cavium/octeon_machdep.c
  stable/11/sys/mips/cavium/octeon_mp.c
  stable/11/sys/mips/cavium/octeon_pci_console.c
  stable/11/sys/mips/cavium/octeon_pcmap_regs.h
  stable/11/sys/mips/cavium/octeon_pmc.c
  stable/11/sys/mips/cavium/octeon_rnd.c
  stable/11/sys/mips/cavium/octeon_rtc.c
  stable/11/sys/mips/cavium/octeon_wdog.c
  stable/11/sys/mips/cavium/octopci.c
  stable/11/sys/mips/cavium/octopci_bus_space.c
  stable/11/sys/mips/cavium/octopcireg.h
  stable/11/sys/mips/cavium/octopcivar.h
  stable/11/sys/mips/cavium/uart_bus_octeonusart.c
  stable/11/sys/mips/cavium/uart_cpu_octeonusart.c
  stable/11/sys/mips/cavium/uart_dev_oct16550.c
  stable/11/sys/mips/cavium/usb/octusb.c
  stable/11/sys/mips/cavium/usb/octusb.h
  stable/11/sys/mips/cavium/usb/octusb_octeon.c
  stable/11/sys/mips/gxemul/gxemul_machdep.c
  stable/11/sys/mips/gxemul/mpreg.h
  stable/11/sys/mips/idt/idt_machdep.c
  stable/11/sys/mips/idt/idtpci.c
  stable/11/sys/mips/idt/idtreg.h
  stable/11/sys/mips/idt/if_kr.c
  stable/11/sys/mips/idt/if_krreg.h
  stable/11/sys/mips/idt/obio.c
  stable/11/sys/mips/idt/obiovar.h
  stable/11/sys/mips/idt/uart_bus_rc32434.c
  stable/11/sys/mips/idt/uart_cpu_rc32434.c
  stable/11/sys/mips/include/_align.h
  stable/11/sys/mips/include/_bus.h
  stable/11/sys/mips/include/_inttypes.h
  stable/11/sys/mips/include/_limits.h
  stable/11/sys/mips/include/_stdint.h
  stable/11/sys/mips/include/_types.h
  stable/11/sys/mips/include/asm.h
  stable/11/sys/mips/include/atomic.h
  stable/11/sys/mips/include/bootinfo.h
  stable/11/sys/mips/include/bus.h
  stable/11/sys/mips/include/bus_dma.h
  stable/11/sys/mips/include/cache.h
  stable/11/sys/mips/include/cache_mipsNN.h
  stable/11/sys/mips/include/cache_r4k.h
  stable/11/sys/mips/include/counter.h
  stable/11/sys/mips/include/cpu.h
  stable/11/sys/mips/include/cpufunc.h
  stable/11/sys/mips/include/cpuinfo.h
  stable/11/sys/mips/include/cpuregs.h
  stable/11/sys/mips/include/db_machdep.h
  stable/11/sys/mips/include/elf.h
  stable/11/sys/mips/include/endian.h
  stable/11/sys/mips/include/exec.h
  stable/11/sys/mips/include/fdt.h
  stable/11/sys/mips/include/float.h
  stable/11/sys/mips/include/floatingpoint.h
  stable/11/sys/mips/include/frame.h
  stable/11/sys/mips/include/gdb_machdep.h
  stable/11/sys/mips/include/hwfunc.h
  stable/11/sys/mips/include/ieee.h
  stable/11/sys/mips/include/in_cksum.h
  stable/11/sys/mips/include/intr_machdep.h
  stable/11/sys/mips/include/kdb.h
  stable/11/sys/mips/include/limits.h
  stable/11/sys/mips/include/md_var.h
  stable/11/sys/mips/include/memdev.h
  stable/11/sys/mips/include/metadata.h
  stable/11/sys/mips/include/minidump.h
  stable/11/sys/mips/include/mips_opcode.h
  stable/11/sys/mips/include/octeon_cop2.h
  stable/11/sys/mips/include/ofw_machdep.h
  stable/11/sys/mips/include/param.h
  stable/11/sys/mips/include/pcb.h
  stable/11/sys/mips/include/pcpu.h
  stable/11/sys/mips/include/pmap.h
  stable/11/sys/mips/include/proc.h
  stable/11/sys/mips/include/profile.h
  stable/11/sys/mips/include/pte.h
  stable/11/sys/mips/include/ptrace.h
  stable/11/sys/mips/include/reg.h
  stable/11/sys/mips/include/regdef.h
  stable/11/sys/mips/include/regnum.h
  stable/11/sys/mips/include/reloc.h
  stable/11/sys/mips/include/runq.h
  stable/11/sys/mips/include/sc_machdep.h
  stable/11/sys/mips/include/sf_buf.h
  stable/11/sys/mips/include/sigframe.h
  stable/11/sys/mips/include/signal.h
  stable/11/sys/mips/include/sysarch.h
  stable/11/sys/mips/include/tlb.h
  stable/11/sys/mips/include/tls.h
  stable/11/sys/mips/include/trap.h
  stable/11/sys/mips/include/ucontext.h
  stable/11/sys/mips/include/varargs.h
  stable/11/sys/mips/include/vdso.h
  stable/11/sys/mips/include/vm.h
  stable/11/sys/mips/include/vmparam.h
  stable/11/sys/mips/malta/gt.c
  stable/11/sys/mips/malta/gt_pci.c
  stable/11/sys/mips/malta/gt_pci_bus_space.c
  stable/11/sys/mips/malta/gt_pci_bus_space.h
  stable/11/sys/mips/malta/gtreg.h
  stable/11/sys/mips/malta/gtvar.h
  stable/11/sys/mips/malta/malta_machdep.c
  stable/11/sys/mips/malta/maltareg.h
  stable/11/sys/mips/malta/obio.c
  stable/11/sys/mips/malta/obiovar.h
  stable/11/sys/mips/malta/uart_bus_maltausart.c
  stable/11/sys/mips/malta/uart_cpu_maltausart.c
  stable/11/sys/mips/malta/yamon.c
  stable/11/sys/mips/malta/yamon.h
  stable/11/sys/mips/mips/autoconf.c
  stable/11/sys/mips/mips/bus_space_generic.c
  stable/11/sys/mips/mips/busdma_machdep.c
  stable/11/sys/mips/mips/cache.c
  stable/11/sys/mips/mips/cache_mipsNN.c
  stable/11/sys/mips/mips/cpu.c
  stable/11/sys/mips/mips/db_disasm.c
  stable/11/sys/mips/mips/db_interface.c
  stable/11/sys/mips/mips/db_trace.c
  stable/11/sys/mips/mips/dump_machdep.c
  stable/11/sys/mips/mips/elf_machdep.c
  stable/11/sys/mips/mips/elf_trampoline.c
  stable/11/sys/mips/mips/freebsd32_machdep.c
  stable/11/sys/mips/mips/gdb_machdep.c
  stable/11/sys/mips/mips/genassym.c
  stable/11/sys/mips/mips/in_cksum.c
  stable/11/sys/mips/mips/intr_machdep.c
  stable/11/sys/mips/mips/libkern_machdep.c
  stable/11/sys/mips/mips/machdep.c
  stable/11/sys/mips/mips/mem.c
  stable/11/sys/mips/mips/minidump_machdep.c
  stable/11/sys/mips/mips/mp_machdep.c
  stable/11/sys/mips/mips/octeon_cop2.c
  stable/11/sys/mips/mips/pm_machdep.c
  stable/11/sys/mips/mips/pmap.c
  stable/11/sys/mips/mips/ptrace_machdep.c
  stable/11/sys/mips/mips/sc_machdep.c
  stable/11/sys/mips/mips/stack_machdep.c
  stable/11/sys/mips/mips/stdatomic.c
  stable/11/sys/mips/mips/sys_machdep.c
  stable/11/sys/mips/mips/tick.c
  stable/11/sys/mips/mips/tlb.c
  stable/11/sys/mips/mips/trap.c
  stable/11/sys/mips/mips/uio_machdep.c
  stable/11/sys/mips/mips/uma_machdep.c
  stable/11/sys/mips/mips/vm_machdep.c
  stable/11/sys/mips/nlm/board.c
  stable/11/sys/mips/nlm/board.h
  stable/11/sys/mips/nlm/board_cpld.c
  stable/11/sys/mips/nlm/board_eeprom.c
  stable/11/sys/mips/nlm/bus_space_rmi.c
  stable/11/sys/mips/nlm/bus_space_rmi_pci.c
  stable/11/sys/mips/nlm/clock.h
  stable/11/sys/mips/nlm/cms.c
  stable/11/sys/mips/nlm/dev/net/mdio.c
  stable/11/sys/mips/nlm/dev/net/nae.c
  stable/11/sys/mips/nlm/dev/net/sgmii.c
  stable/11/sys/mips/nlm/dev/net/ucore/ucore.h
  stable/11/sys/mips/nlm/dev/net/ucore/ucore_app.c
  stable/11/sys/mips/nlm/dev/net/xaui.c
  stable/11/sys/mips/nlm/dev/net/xlpge.c
  stable/11/sys/mips/nlm/dev/net/xlpge.h
  stable/11/sys/mips/nlm/dev/sec/nlmrsa.c
  stable/11/sys/mips/nlm/dev/sec/nlmrsalib.h
  stable/11/sys/mips/nlm/dev/sec/nlmsec.c
  stable/11/sys/mips/nlm/dev/sec/nlmseclib.c
  stable/11/sys/mips/nlm/dev/sec/nlmseclib.h
  stable/11/sys/mips/nlm/dev/sec/rsa_ucode.h
  stable/11/sys/mips/nlm/hal/bridge.h
  stable/11/sys/mips/nlm/hal/cop2.h
  stable/11/sys/mips/nlm/hal/cpucontrol.h
  stable/11/sys/mips/nlm/hal/fmn.c
  stable/11/sys/mips/nlm/hal/fmn.h
  stable/11/sys/mips/nlm/hal/gbu.h
  stable/11/sys/mips/nlm/hal/haldefs.h
  stable/11/sys/mips/nlm/hal/interlaken.h
  stable/11/sys/mips/nlm/hal/iomap.h
  stable/11/sys/mips/nlm/hal/mdio.h
  stable/11/sys/mips/nlm/hal/mips-extns.h
  stable/11/sys/mips/nlm/hal/mmu.h
  stable/11/sys/mips/nlm/hal/nae.h
  stable/11/sys/mips/nlm/hal/nlm_hal.c
  stable/11/sys/mips/nlm/hal/nlmsaelib.h
  stable/11/sys/mips/nlm/hal/pcibus.h
  stable/11/sys/mips/nlm/hal/pic.h
  stable/11/sys/mips/nlm/hal/poe.h
  stable/11/sys/mips/nlm/hal/sgmii.h
  stable/11/sys/mips/nlm/hal/sys.h
  stable/11/sys/mips/nlm/hal/uart.h
  stable/11/sys/mips/nlm/hal/ucore_loader.h
  stable/11/sys/mips/nlm/hal/usb.h
  stable/11/sys/mips/nlm/hal/xaui.h
  stable/11/sys/mips/nlm/interrupt.h
  stable/11/sys/mips/nlm/intr_machdep.c
  stable/11/sys/mips/nlm/msgring.h
  stable/11/sys/mips/nlm/tick.c
  stable/11/sys/mips/nlm/uart_cpu_xlp.c
  stable/11/sys/mips/nlm/usb_init.c
  stable/11/sys/mips/nlm/xlp.h
  stable/11/sys/mips/nlm/xlp_machdep.c
  stable/11/sys/mips/nlm/xlp_pci.c
  stable/11/sys/mips/rmi/board.c
  stable/11/sys/mips/rmi/board.h
  stable/11/sys/mips/rmi/bus_space_rmi.c
  stable/11/sys/mips/rmi/bus_space_rmi_pci.c
  stable/11/sys/mips/rmi/dev/iic/at24co2n.c
  stable/11/sys/mips/rmi/dev/iic/max6657.c
  stable/11/sys/mips/rmi/dev/nlge/if_nlge.c
  stable/11/sys/mips/rmi/dev/nlge/if_nlge.h
  stable/11/sys/mips/rmi/dev/sec/desc.h
  stable/11/sys/mips/rmi/dev/sec/rmilib.c
  stable/11/sys/mips/rmi/dev/sec/rmilib.h
  stable/11/sys/mips/rmi/dev/sec/rmisec.c
  stable/11/sys/mips/rmi/dev/xlr/debug.h
  stable/11/sys/mips/rmi/fmn.c
  stable/11/sys/mips/rmi/interrupt.h
  stable/11/sys/mips/rmi/intr_machdep.c
  stable/11/sys/mips/rmi/iodi.c
  stable/11/sys/mips/rmi/iomap.h
  stable/11/sys/mips/rmi/msgring.h
  stable/11/sys/mips/rmi/pcibus.h
  stable/11/sys/mips/rmi/pic.h
  stable/11/sys/mips/rmi/rmi_boot_info.h
  stable/11/sys/mips/rmi/rmi_mips_exts.h
  stable/11/sys/mips/rmi/tick.c
  stable/11/sys/mips/rmi/uart_bus_xlr_iodi.c
  stable/11/sys/mips/rmi/uart_cpu_mips_xlr.c
  stable/11/sys/mips/rmi/xlr_i2c.c
  stable/11/sys/mips/rmi/xlr_machdep.c
  stable/11/sys/mips/rmi/xlr_pci.c
  stable/11/sys/mips/rmi/xlr_pcmcia.c
  stable/11/sys/mips/rmi/xls_ehci.c
  stable/11/sys/mips/rt305x/obio.c
  stable/11/sys/mips/rt305x/obiovar.h
  stable/11/sys/mips/rt305x/rt305x_dotg.c
  stable/11/sys/mips/rt305x/rt305x_gpio.c
  stable/11/sys/mips/rt305x/rt305x_gpio.h
  stable/11/sys/mips/rt305x/rt305x_gpiovar.h
  stable/11/sys/mips/rt305x/rt305x_ic.c
  stable/11/sys/mips/rt305x/rt305x_icvar.h
  stable/11/sys/mips/rt305x/rt305x_machdep.c
  stable/11/sys/mips/rt305x/rt305x_sysctl.c
  stable/11/sys/mips/rt305x/rt305x_sysctlvar.h
  stable/11/sys/mips/rt305x/rt305xreg.h
  stable/11/sys/mips/rt305x/rt_swreg.h
  stable/11/sys/mips/rt305x/uart_bus_rt305x.c
  stable/11/sys/mips/rt305x/uart_cpu_rt305x.c
  stable/11/sys/mips/rt305x/uart_dev_rt305x.c
  stable/11/sys/mips/rt305x/uart_dev_rt305x.h
  stable/11/sys/mips/sibyte/ata_zbbus.c
  stable/11/sys/mips/sibyte/sb_bus_space.h
  stable/11/sys/mips/sibyte/sb_machdep.c
  stable/11/sys/mips/sibyte/sb_scd.c
  stable/11/sys/mips/sibyte/sb_scd.h
  stable/11/sys/mips/sibyte/sb_zbbus.c
  stable/11/sys/mips/sibyte/sb_zbpci.c
  stable/11/sys/net/bpf.c
  stable/11/sys/net/bpf.h
  stable/11/sys/net/bpf_buffer.c
  stable/11/sys/net/bpf_filter.c
  stable/11/sys/net/bpf_jitter.c
  stable/11/sys/net/bpf_jitter.h
  stable/11/sys/net/bpfdesc.h
  stable/11/sys/net/fddi.h
  stable/11/sys/net/if.c
  stable/11/sys/net/if.h
  stable/11/sys/net/if_arc.h
  stable/11/sys/net/if_arcsubr.c
  stable/11/sys/net/if_arp.h
  stable/11/sys/net/if_clone.c
  stable/11/sys/net/if_clone.h
  stable/11/sys/net/if_disc.c
  stable/11/sys/net/if_dl.h
  stable/11/sys/net/if_edsc.c
  stable/11/sys/net/if_ethersubr.c
  stable/11/sys/net/if_fddisubr.c
  stable/11/sys/net/if_fwsubr.c
  stable/11/sys/net/if_gif.c
  stable/11/sys/net/if_gif.h
  stable/11/sys/net/if_llc.h
  stable/11/sys/net/if_loop.c
  stable/11/sys/net/if_stf.c
  stable/11/sys/net/if_types.h
  stable/11/sys/net/if_var.h
  stable/11/sys/net/ifq.h
  stable/11/sys/net/pfkeyv2.h
  stable/11/sys/net/radix.c
  stable/11/sys/net/radix.h
  stable/11/sys/net/radix_mpath.c
  stable/11/sys/net/radix_mpath.h
  stable/11/sys/net/raw_cb.c
  stable/11/sys/net/raw_cb.h
  stable/11/sys/net/raw_usrreq.c
  stable/11/sys/net/route.c
  stable/11/sys/net/route.h
  stable/11/sys/net/rtsock.c
  stable/11/sys/net/slcompress.c
  stable/11/sys/net/slcompress.h
  stable/11/sys/netinet/icmp6.h
  stable/11/sys/netinet/icmp_var.h
  stable/11/sys/netinet/if_ether.c
  stable/11/sys/netinet/if_ether.h
  stable/11/sys/netinet/igmp.c
  stable/11/sys/netinet/igmp.h
  stable/11/sys/netinet/igmp_var.h
  stable/11/sys/netinet/in.c
  stable/11/sys/netinet/in.h
  stable/11/sys/netinet/in_cksum.c
  stable/11/sys/netinet/in_gif.c
  stable/11/sys/netinet/in_pcb.c
  stable/11/sys/netinet/in_pcb.h
  stable/11/sys/netinet/in_proto.c
  stable/11/sys/netinet/in_systm.h
  stable/11/sys/netinet/in_var.h
  stable/11/sys/netinet/ip.h
  stable/11/sys/netinet/ip6.h
  stable/11/sys/netinet/ip_divert.c
  stable/11/sys/netinet/ip_ecn.c
  stable/11/sys/netinet/ip_ecn.h
  stable/11/sys/netinet/ip_encap.c
  stable/11/sys/netinet/ip_encap.h
  stable/11/sys/netinet/ip_icmp.c
  stable/11/sys/netinet/ip_icmp.h
  stable/11/sys/netinet/ip_input.c
  stable/11/sys/netinet/ip_mroute.c
  stable/11/sys/netinet/ip_mroute.h
  stable/11/sys/netinet/ip_options.c
  stable/11/sys/netinet/ip_options.h
  stable/11/sys/netinet/ip_output.c
  stable/11/sys/netinet/ip_var.h
  stable/11/sys/netinet/pim.h
  stable/11/sys/netinet/pim_var.h
  stable/11/sys/netinet/raw_ip.c
  stable/11/sys/netinet/sctp.h
  stable/11/sys/netinet/sctp_asconf.c
  stable/11/sys/netinet/sctp_asconf.h
  stable/11/sys/netinet/sctp_auth.c
  stable/11/sys/netinet/sctp_auth.h
  stable/11/sys/netinet/sctp_bsd_addr.c
  stable/11/sys/netinet/sctp_bsd_addr.h
  stable/11/sys/netinet/sctp_cc_functions.c
  stable/11/sys/netinet/sctp_constants.h
  stable/11/sys/netinet/sctp_crc32.c
  stable/11/sys/netinet/sctp_crc32.h
  stable/11/sys/netinet/sctp_dtrace_declare.h
  stable/11/sys/netinet/sctp_dtrace_define.h
  stable/11/sys/netinet/sctp_header.h
  stable/11/sys/netinet/sctp_indata.c
  stable/11/sys/netinet/sctp_indata.h
  stable/11/sys/netinet/sctp_input.c
  stable/11/sys/netinet/sctp_input.h
  stable/11/sys/netinet/sctp_lock_bsd.h
  stable/11/sys/netinet/sctp_os.h
  stable/11/sys/netinet/sctp_os_bsd.h
  stable/11/sys/netinet/sctp_output.c
  stable/11/sys/netinet/sctp_output.h
  stable/11/sys/netinet/sctp_pcb.c
  stable/11/sys/netinet/sctp_pcb.h
  stable/11/sys/netinet/sctp_peeloff.c
  stable/11/sys/netinet/sctp_peeloff.h
  stable/11/sys/netinet/sctp_structs.h
  stable/11/sys/netinet/sctp_sysctl.c
  stable/11/sys/netinet/sctp_sysctl.h
  stable/11/sys/netinet/sctp_timer.c
  stable/11/sys/netinet/sctp_timer.h
  stable/11/sys/netinet/sctp_uio.h
  stable/11/sys/netinet/sctp_usrreq.c
  stable/11/sys/netinet/sctp_var.h
  stable/11/sys/netinet/sctputil.c
  stable/11/sys/netinet/sctputil.h
  stable/11/sys/netinet/tcp.h
  stable/11/sys/netinet/tcp_debug.c
  stable/11/sys/netinet/tcp_debug.h
  stable/11/sys/netinet/tcp_fsm.h
  stable/11/sys/netinet/tcp_input.c
  stable/11/sys/netinet/tcp_output.c
  stable/11/sys/netinet/tcp_reass.c
  stable/11/sys/netinet/tcp_sack.c
  stable/11/sys/netinet/tcp_seq.h
  stable/11/sys/netinet/tcp_subr.c
  stable/11/sys/netinet/tcp_syncache.h
  stable/11/sys/netinet/tcp_timer.c
  stable/11/sys/netinet/tcp_timer.h
  stable/11/sys/netinet/tcp_timewait.c
  stable/11/sys/netinet/tcp_usrreq.c
  stable/11/sys/netinet/tcp_var.h
  stable/11/sys/netinet/tcpip.h
  stable/11/sys/netinet/udp.h
  stable/11/sys/netinet/udp_usrreq.c
  stable/11/sys/netinet/udp_var.h
  stable/11/sys/netinet6/dest6.c
  stable/11/sys/netinet6/frag6.c
  stable/11/sys/netinet6/icmp6.c
  stable/11/sys/netinet6/in6.c
  stable/11/sys/netinet6/in6.h
  stable/11/sys/netinet6/in6_cksum.c
  stable/11/sys/netinet6/in6_gif.c
  stable/11/sys/netinet6/in6_ifattach.c
  stable/11/sys/netinet6/in6_ifattach.h
  stable/11/sys/netinet6/in6_pcb.c
  stable/11/sys/netinet6/in6_pcb.h
  stable/11/sys/netinet6/in6_proto.c
  stable/11/sys/netinet6/in6_rmx.c
  stable/11/sys/netinet6/in6_src.c
  stable/11/sys/netinet6/in6_var.h
  stable/11/sys/netinet6/ip6_ecn.h
  stable/11/sys/netinet6/ip6_forward.c
  stable/11/sys/netinet6/ip6_id.c
  stable/11/sys/netinet6/ip6_input.c
  stable/11/sys/netinet6/ip6_mroute.c
  stable/11/sys/netinet6/ip6_mroute.h
  stable/11/sys/netinet6/ip6_output.c
  stable/11/sys/netinet6/ip6_var.h
  stable/11/sys/netinet6/ip6protosw.h
  stable/11/sys/netinet6/mld6.c
  stable/11/sys/netinet6/nd6.c
  stable/11/sys/netinet6/nd6.h
  stable/11/sys/netinet6/nd6_nbr.c
  stable/11/sys/netinet6/nd6_rtr.c
  stable/11/sys/netinet6/pim6.h
  stable/11/sys/netinet6/pim6_var.h
  stable/11/sys/netinet6/raw_ip6.c
  stable/11/sys/netinet6/raw_ip6.h
  stable/11/sys/netinet6/route6.c
  stable/11/sys/netinet6/scope6.c
  stable/11/sys/netinet6/scope6_var.h
  stable/11/sys/netinet6/sctp6_usrreq.c
  stable/11/sys/netinet6/sctp6_var.h
  stable/11/sys/netinet6/tcp6_var.h
  stable/11/sys/netinet6/udp6_usrreq.c
  stable/11/sys/netinet6/udp6_var.h
  stable/11/sys/netipsec/ah.h
  stable/11/sys/netipsec/esp.h
  stable/11/sys/netipsec/ipcomp.h
  stable/11/sys/netipsec/ipcomp_var.h
  stable/11/sys/netipsec/ipsec.c
  stable/11/sys/netipsec/ipsec.h
  stable/11/sys/netipsec/ipsec6.h
  stable/11/sys/netipsec/key.c
  stable/11/sys/netipsec/key.h
  stable/11/sys/netipsec/key_debug.c
  stable/11/sys/netipsec/key_debug.h
  stable/11/sys/netipsec/key_var.h
  stable/11/sys/netipsec/keydb.h
  stable/11/sys/netipsec/keysock.c
  stable/11/sys/netipsec/keysock.h
  stable/11/sys/netpfil/pf/in4_cksum.c
  stable/11/sys/netsmb/smb_crypt.c
  stable/11/sys/nfs/bootp_subr.c
  stable/11/sys/nfs/krpc_subr.c
  stable/11/sys/nfs/nfs_common.h
  stable/11/sys/nfs/nfs_diskless.c
  stable/11/sys/nfs/nfs_nfssvc.c
  stable/11/sys/nfs/nfsdiskless.h
  stable/11/sys/nfs/nfsproto.h
  stable/11/sys/nfs/nfssvc.h
  stable/11/sys/nfs/xdr_subs.h
  stable/11/sys/nfsclient/nfs.h
  stable/11/sys/nfsclient/nfsargs.h
  stable/11/sys/nfsclient/nfsm_subs.h
  stable/11/sys/nfsclient/nfsmount.h
  stable/11/sys/nfsclient/nfsnode.h
  stable/11/sys/nfsclient/nfsstats.h
  stable/11/sys/nfsserver/nfs.h
  stable/11/sys/nfsserver/nfsm_subs.h
  stable/11/sys/nfsserver/nfsrvcache.h
  stable/11/sys/nfsserver/nfsrvstats.h
  stable/11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
  stable/11/sys/powerpc/aim/mmu_oea.c
  stable/11/sys/powerpc/aim/mmu_oea64.c
  stable/11/sys/powerpc/aim/mmu_oea64.h
  stable/11/sys/powerpc/aim/moea64_native.c
  stable/11/sys/powerpc/aim/mp_cpudep.c
  stable/11/sys/powerpc/aim/slb.c
  stable/11/sys/powerpc/booke/machdep_e500.c
  stable/11/sys/powerpc/booke/machdep_ppc4xx.c
  stable/11/sys/powerpc/booke/mp_cpudep.c
  stable/11/sys/powerpc/booke/platform_bare.c
  stable/11/sys/powerpc/booke/pmap.c
  stable/11/sys/powerpc/cpufreq/dfs.c
  stable/11/sys/powerpc/cpufreq/pcr.c
  stable/11/sys/powerpc/cpufreq/pmufreq.c
  stable/11/sys/powerpc/fpu/fpu_add.c
  stable/11/sys/powerpc/fpu/fpu_arith.h
  stable/11/sys/powerpc/fpu/fpu_compare.c
  stable/11/sys/powerpc/fpu/fpu_div.c
  stable/11/sys/powerpc/fpu/fpu_emu.c
  stable/11/sys/powerpc/fpu/fpu_emu.h
  stable/11/sys/powerpc/fpu/fpu_explode.c
  stable/11/sys/powerpc/fpu/fpu_extern.h
  stable/11/sys/powerpc/fpu/fpu_implode.c
  stable/11/sys/powerpc/fpu/fpu_instr.h
  stable/11/sys/powerpc/fpu/fpu_mul.c
  stable/11/sys/powerpc/fpu/fpu_sqrt.c
  stable/11/sys/powerpc/fpu/fpu_subr.c
  stable/11/sys/powerpc/include/_align.h
  stable/11/sys/powerpc/include/_bus.h
  stable/11/sys/powerpc/include/_inttypes.h
  stable/11/sys/powerpc/include/_limits.h
  stable/11/sys/powerpc/include/_stdint.h
  stable/11/sys/powerpc/include/_types.h
  stable/11/sys/powerpc/include/altivec.h
  stable/11/sys/powerpc/include/asm.h
  stable/11/sys/powerpc/include/atomic.h
  stable/11/sys/powerpc/include/bat.h
  stable/11/sys/powerpc/include/bus.h
  stable/11/sys/powerpc/include/bus_dma.h
  stable/11/sys/powerpc/include/counter.h
  stable/11/sys/powerpc/include/cpu.h
  stable/11/sys/powerpc/include/cpufunc.h
  stable/11/sys/powerpc/include/dbdma.h
  stable/11/sys/powerpc/include/elf.h
  stable/11/sys/powerpc/include/endian.h
  stable/11/sys/powerpc/include/exec.h
  stable/11/sys/powerpc/include/float.h
  stable/11/sys/powerpc/include/floatingpoint.h
  stable/11/sys/powerpc/include/fpu.h
  stable/11/sys/powerpc/include/frame.h
  stable/11/sys/powerpc/include/gdb_machdep.h
  stable/11/sys/powerpc/include/hid.h
  stable/11/sys/powerpc/include/ieee.h
  stable/11/sys/powerpc/include/in_cksum.h
  stable/11/sys/powerpc/include/intr_machdep.h
  stable/11/sys/powerpc/include/kdb.h
  stable/11/sys/powerpc/include/limits.h
  stable/11/sys/powerpc/include/machdep.h
  stable/11/sys/powerpc/include/md_var.h
  stable/11/sys/powerpc/include/memdev.h
  stable/11/sys/powerpc/include/metadata.h
  stable/11/sys/powerpc/include/mmuvar.h
  stable/11/sys/powerpc/include/ofw_machdep.h
  stable/11/sys/powerpc/include/openpicreg.h
  stable/11/sys/powerpc/include/openpicvar.h
  stable/11/sys/powerpc/include/param.h
  stable/11/sys/powerpc/include/pcb.h
  stable/11/sys/powerpc/include/pcpu.h
  stable/11/sys/powerpc/include/pio.h
  stable/11/sys/powerpc/include/platform.h
  stable/11/sys/powerpc/include/platformvar.h
  stable/11/sys/powerpc/include/pmap.h
  stable/11/sys/powerpc/include/proc.h
  stable/11/sys/powerpc/include/psl.h
  stable/11/sys/powerpc/include/pte.h
  stable/11/sys/powerpc/include/ptrace.h
  stable/11/sys/powerpc/include/reloc.h
  stable/11/sys/powerpc/include/rtas.h
  stable/11/sys/powerpc/include/runq.h
  stable/11/sys/powerpc/include/sc_machdep.h
  stable/11/sys/powerpc/include/sigframe.h
  stable/11/sys/powerpc/include/signal.h
  stable/11/sys/powerpc/include/slb.h
  stable/11/sys/powerpc/include/smp.h
  stable/11/sys/powerpc/include/spr.h
  stable/11/sys/powerpc/include/sr.h
  stable/11/sys/powerpc/include/stdarg.h
  stable/11/sys/powerpc/include/sysarch.h
  stable/11/sys/powerpc/include/tlb.h
  stable/11/sys/powerpc/include/trap.h
  stable/11/sys/powerpc/include/ucontext.h
  stable/11/sys/powerpc/include/varargs.h
  stable/11/sys/powerpc/include/vdso.h
  stable/11/sys/powerpc/include/vm.h
  stable/11/sys/powerpc/include/vmparam.h
  stable/11/sys/powerpc/mambo/mambo.c
  stable/11/sys/powerpc/mambo/mambo_console.c
  stable/11/sys/powerpc/mambo/mambo_disk.c
  stable/11/sys/powerpc/mambo/mambocall.h
  stable/11/sys/powerpc/mpc85xx/atpic.c
  stable/11/sys/powerpc/mpc85xx/ds1553_bus_fdt.c
  stable/11/sys/powerpc/mpc85xx/ds1553_core.c
  stable/11/sys/powerpc/mpc85xx/ds1553_reg.h
  stable/11/sys/powerpc/mpc85xx/i2c.c
  stable/11/sys/powerpc/mpc85xx/isa.c
  stable/11/sys/powerpc/mpc85xx/lbc.c
  stable/11/sys/powerpc/mpc85xx/lbc.h
  stable/11/sys/powerpc/mpc85xx/mpc85xx.c
  stable/11/sys/powerpc/mpc85xx/mpc85xx.h
  stable/11/sys/powerpc/mpc85xx/pci_mpc85xx.c
  stable/11/sys/powerpc/mpc85xx/platform_mpc85xx.c
  stable/11/sys/powerpc/ofw/ofw_machdep.c
  stable/11/sys/powerpc/ofw/ofw_pcib_pci.c
  stable/11/sys/powerpc/ofw/ofw_pcibus.c
  stable/11/sys/powerpc/ofw/ofw_pcibus.h
  stable/11/sys/powerpc/ofw/ofw_real.c
  stable/11/sys/powerpc/ofw/ofw_syscons.c
  stable/11/sys/powerpc/ofw/ofw_syscons.h
  stable/11/sys/powerpc/ofw/openpic_ofw.c
  stable/11/sys/powerpc/ofw/rtas.c
  stable/11/sys/powerpc/powermac/ata_dbdma.c
  stable/11/sys/powerpc/powermac/ata_dbdma.h
  stable/11/sys/powerpc/powermac/ata_kauai.c
  stable/11/sys/powerpc/powermac/ata_macio.c
  stable/11/sys/powerpc/powermac/atibl.c
  stable/11/sys/powerpc/powermac/cpcht.c
  stable/11/sys/powerpc/powermac/cuda.c
  stable/11/sys/powerpc/powermac/cudavar.h
  stable/11/sys/powerpc/powermac/dbdma.c
  stable/11/sys/powerpc/powermac/dbdmavar.h
  stable/11/sys/powerpc/powermac/fcu.c
  stable/11/sys/powerpc/powermac/grackle.c
  stable/11/sys/powerpc/powermac/gracklevar.h
  stable/11/sys/powerpc/powermac/hrowpic.c
  stable/11/sys/powerpc/powermac/hrowpicvar.h
  stable/11/sys/powerpc/powermac/kiic.c
  stable/11/sys/powerpc/powermac/macgpio.c
  stable/11/sys/powerpc/powermac/macgpiovar.h
  stable/11/sys/powerpc/powermac/macio.c
  stable/11/sys/powerpc/powermac/maciovar.h
  stable/11/sys/powerpc/powermac/nvbl.c
  stable/11/sys/powerpc/powermac/platform_powermac.c
  stable/11/sys/powerpc/powermac/pmu.c
  stable/11/sys/powerpc/powermac/pmuvar.h
  stable/11/sys/powerpc/powermac/powermac_thermal.c
  stable/11/sys/powerpc/powermac/powermac_thermal.h
  stable/11/sys/powerpc/powermac/pswitch.c
  stable/11/sys/powerpc/powermac/smu.c
  stable/11/sys/powerpc/powermac/smusat.c
  stable/11/sys/powerpc/powermac/uninorth.c
  stable/11/sys/powerpc/powermac/uninorthpci.c
  stable/11/sys/powerpc/powermac/uninorthvar.h
  stable/11/sys/powerpc/powermac/vcoregpio.c
  stable/11/sys/powerpc/powermac/viareg.h
  stable/11/sys/powerpc/powerpc/altivec.c
  stable/11/sys/powerpc/powerpc/autoconf.c
  stable/11/sys/powerpc/powerpc/bcopy.c
  stable/11/sys/powerpc/powerpc/bus_machdep.c
  stable/11/sys/powerpc/powerpc/busdma_machdep.c
  stable/11/sys/powerpc/powerpc/clock.c
  stable/11/sys/powerpc/powerpc/copyinout.c
  stable/11/sys/powerpc/powerpc/copystr.c
  stable/11/sys/powerpc/powerpc/cpu.c
  stable/11/sys/powerpc/powerpc/db_hwwatch.c
  stable/11/sys/powerpc/powerpc/dump_machdep.c
  stable/11/sys/powerpc/powerpc/elf32_machdep.c
  stable/11/sys/powerpc/powerpc/elf64_machdep.c
  stable/11/sys/powerpc/powerpc/exec_machdep.c
  stable/11/sys/powerpc/powerpc/fpu.c
  stable/11/sys/powerpc/powerpc/fuswintr.c
  stable/11/sys/powerpc/powerpc/gdb_machdep.c
  stable/11/sys/powerpc/powerpc/genassym.c
  stable/11/sys/powerpc/powerpc/in_cksum.c
  stable/11/sys/powerpc/powerpc/intr_machdep.c
  stable/11/sys/powerpc/powerpc/mem.c
  stable/11/sys/powerpc/powerpc/mp_machdep.c
  stable/11/sys/powerpc/powerpc/openpic.c
  stable/11/sys/powerpc/powerpc/platform.c
  stable/11/sys/powerpc/powerpc/pmap_dispatch.c
  stable/11/sys/powerpc/powerpc/sc_machdep.c
  stable/11/sys/powerpc/powerpc/stack_machdep.c
  stable/11/sys/powerpc/powerpc/suswintr.c
  stable/11/sys/powerpc/powerpc/syncicache.c
  stable/11/sys/powerpc/powerpc/sys_machdep.c
  stable/11/sys/powerpc/powerpc/uio_machdep.c
  stable/11/sys/powerpc/powerpc/vm_machdep.c
  stable/11/sys/powerpc/ps3/ehci_ps3.c
  stable/11/sys/powerpc/ps3/if_glc.c
  stable/11/sys/powerpc/ps3/if_glcreg.h
  stable/11/sys/powerpc/ps3/mmu_ps3.c
  stable/11/sys/powerpc/ps3/ohci_ps3.c
  stable/11/sys/powerpc/ps3/platform_ps3.c
  stable/11/sys/powerpc/ps3/ps3_syscons.c
  stable/11/sys/powerpc/ps3/ps3bus.c
  stable/11/sys/powerpc/ps3/ps3bus.h
  stable/11/sys/powerpc/ps3/ps3cdrom.c
  stable/11/sys/powerpc/ps3/ps3disk.c
  stable/11/sys/powerpc/ps3/ps3pic.c
  stable/11/sys/powerpc/pseries/mmu_phyp.c
  stable/11/sys/powerpc/pseries/phyp-hvcall.h
  stable/11/sys/powerpc/pseries/phyp_console.c
  stable/11/sys/powerpc/pseries/phyp_llan.c
  stable/11/sys/powerpc/pseries/phyp_vscsi.c
  stable/11/sys/powerpc/pseries/platform_chrp.c
  stable/11/sys/powerpc/pseries/plpar_iommu.c
  stable/11/sys/powerpc/pseries/plpar_iommu.h
  stable/11/sys/powerpc/pseries/plpar_pcibus.c
  stable/11/sys/powerpc/pseries/rtas_dev.c
  stable/11/sys/powerpc/pseries/rtas_pci.c
  stable/11/sys/powerpc/pseries/vdevice.c
  stable/11/sys/powerpc/pseries/xics.c
  stable/11/sys/powerpc/psim/ata_iobus.c
  stable/11/sys/powerpc/psim/iobus.c
  stable/11/sys/powerpc/psim/iobusvar.h
  stable/11/sys/powerpc/psim/openpic_iobus.c
  stable/11/sys/powerpc/psim/uart_iobus.c
  stable/11/sys/riscv/riscv/in_cksum.c
  stable/11/sys/riscv/riscv/pmap.c
  stable/11/sys/rpc/auth.h
  stable/11/sys/rpc/auth_none.c
  stable/11/sys/rpc/auth_unix.c
  stable/11/sys/rpc/authunix_prot.c
  stable/11/sys/rpc/clnt.h
  stable/11/sys/rpc/clnt_dg.c
  stable/11/sys/rpc/clnt_vc.c
  stable/11/sys/rpc/krpc.h
  stable/11/sys/rpc/nettype.h
  stable/11/sys/rpc/pmap_prot.h
  stable/11/sys/rpc/rpc.h
  stable/11/sys/rpc/rpc_callmsg.c
  stable/11/sys/rpc/rpc_com.h
  stable/11/sys/rpc/rpc_generic.c
  stable/11/sys/rpc/rpc_msg.h
  stable/11/sys/rpc/rpc_prot.c
  stable/11/sys/rpc/rpcb_clnt.c
  stable/11/sys/rpc/rpcb_clnt.h
  stable/11/sys/rpc/rpcb_prot.c
  stable/11/sys/rpc/rpcb_prot.h
  stable/11/sys/rpc/rpcm_subs.h
  stable/11/sys/rpc/rpcsec_gss/rpcsec_gss.c
  stable/11/sys/rpc/rpcsec_gss/rpcsec_gss_int.h
  stable/11/sys/rpc/rpcsec_gss/rpcsec_gss_prot.c
  stable/11/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c
  stable/11/sys/rpc/svc.c
  stable/11/sys/rpc/svc.h
  stable/11/sys/rpc/svc_auth.c
  stable/11/sys/rpc/svc_auth.h
  stable/11/sys/rpc/svc_auth_unix.c
  stable/11/sys/rpc/svc_dg.c
  stable/11/sys/rpc/svc_generic.c
  stable/11/sys/rpc/svc_vc.c
  stable/11/sys/rpc/types.h
  stable/11/sys/rpc/xdr.h
  stable/11/sys/security/audit/audit.c
  stable/11/sys/security/audit/audit.h
  stable/11/sys/security/audit/audit_arg.c
  stable/11/sys/security/audit/audit_bsm.c
  stable/11/sys/security/audit/audit_bsm_klib.c
  stable/11/sys/security/audit/audit_private.h
  stable/11/sys/security/audit/audit_syscalls.c
  stable/11/sys/security/audit/audit_worker.c
  stable/11/sys/security/audit/bsm_domain.c
  stable/11/sys/security/audit/bsm_errno.c
  stable/11/sys/security/audit/bsm_fcntl.c
  stable/11/sys/security/audit/bsm_socket_type.c
  stable/11/sys/security/audit/bsm_token.c
  stable/11/sys/sparc64/include/_types.h
  stable/11/sys/sparc64/include/asm.h
  stable/11/sys/sparc64/include/bus_common.h
  stable/11/sys/sparc64/include/cache.h
  stable/11/sys/sparc64/include/cpu.h
  stable/11/sys/sparc64/include/endian.h
  stable/11/sys/sparc64/include/float.h
  stable/11/sys/sparc64/include/floatingpoint.h
  stable/11/sys/sparc64/include/ieee.h
  stable/11/sys/sparc64/include/in_cksum.h
  stable/11/sys/sparc64/include/iommureg.h
  stable/11/sys/sparc64/include/md_var.h
  stable/11/sys/sparc64/include/pmap.h
  stable/11/sys/sparc64/include/proc.h
  stable/11/sys/sparc64/include/ptrace.h
  stable/11/sys/sparc64/include/reg.h
  stable/11/sys/sparc64/include/reloc.h
  stable/11/sys/sparc64/include/setjmp.h
  stable/11/sys/sparc64/include/signal.h
  stable/11/sys/sparc64/include/sysarch.h
  stable/11/sys/sparc64/include/varargs.h
  stable/11/sys/sparc64/include/vmparam.h
  stable/11/sys/sparc64/sparc64/cache.c
  stable/11/sys/sparc64/sparc64/eeprom.c
  stable/11/sys/sparc64/sparc64/in_cksum.c
  stable/11/sys/sparc64/sparc64/intr_machdep.c
  stable/11/sys/sparc64/sparc64/machdep.c
  stable/11/sys/sparc64/sparc64/mem.c
  stable/11/sys/sparc64/sparc64/pmap.c
  stable/11/sys/sparc64/sparc64/trap.c
  stable/11/sys/sparc64/sparc64/uio_machdep.c
  stable/11/sys/sparc64/sparc64/vm_machdep.c
  stable/11/sys/sys/_bitset.h
  stable/11/sys/sys/_bus_dma.h
  stable/11/sys/sys/_callout.h
  stable/11/sys/sys/_cpuset.h
  stable/11/sys/sys/_ffcounter.h
  stable/11/sys/sys/_iovec.h
  stable/11/sys/sys/_kstack_cache.h
  stable/11/sys/sys/_lock.h
  stable/11/sys/sys/_lockmgr.h
  stable/11/sys/sys/_mutex.h
  stable/11/sys/sys/_null.h
  stable/11/sys/sys/_pctrie.h
  stable/11/sys/sys/_pthreadtypes.h
  stable/11/sys/sys/_rmlock.h
  stable/11/sys/sys/_rwlock.h
  stable/11/sys/sys/_semaphore.h
  stable/11/sys/sys/_sigset.h
  stable/11/sys/sys/_sockaddr_storage.h
  stable/11/sys/sys/_stack.h
  stable/11/sys/sys/_stdint.h
  stable/11/sys/sys/_sx.h
  stable/11/sys/sys/_task.h
  stable/11/sys/sys/_termios.h
  stable/11/sys/sys/_timespec.h
  stable/11/sys/sys/_timeval.h
  stable/11/sys/sys/_types.h
  stable/11/sys/sys/_umtx.h
  stable/11/sys/sys/_unrhdr.h
  stable/11/sys/sys/aac_ioctl.h
  stable/11/sys/sys/acct.h
  stable/11/sys/sys/acl.h
  stable/11/sys/sys/agpio.h
  stable/11/sys/sys/aio.h
  stable/11/sys/sys/alq.h
  stable/11/sys/sys/assym.h
  stable/11/sys/sys/ata.h
  stable/11/sys/sys/bio.h
  stable/11/sys/sys/bitset.h
  stable/11/sys/sys/bitstring.h
  stable/11/sys/sys/blist.h
  stable/11/sys/sys/boot.h
  stable/11/sys/sys/buf.h
  stable/11/sys/sys/buf_ring.h
  stable/11/sys/sys/bufobj.h
  stable/11/sys/sys/bus.h
  stable/11/sys/sys/bus_dma.h
  stable/11/sys/sys/busdma_bufalloc.h
  stable/11/sys/sys/callout.h
  stable/11/sys/sys/capability.h
  stable/11/sys/sys/caprights.h
  stable/11/sys/sys/cdefs.h
  stable/11/sys/sys/cdrio.h
  stable/11/sys/sys/cfictl.h
  stable/11/sys/sys/chio.h
  stable/11/sys/sys/clock.h
  stable/11/sys/sys/condvar.h
  stable/11/sys/sys/conf.h
  stable/11/sys/sys/cons.h
  stable/11/sys/sys/consio.h
  stable/11/sys/sys/copyright.h
  stable/11/sys/sys/counter.h
  stable/11/sys/sys/cpu.h
  stable/11/sys/sys/cpuctl.h
  stable/11/sys/sys/cpuset.h
  stable/11/sys/sys/ctype.h
  stable/11/sys/sys/devicestat.h
  stable/11/sys/sys/digiio.h
  stable/11/sys/sys/dir.h
  stable/11/sys/sys/dirent.h
  stable/11/sys/sys/disklabel.h
  stable/11/sys/sys/diskmbr.h
  stable/11/sys/sys/dkstat.h
  stable/11/sys/sys/domain.h
  stable/11/sys/sys/dtrace_bsd.h
  stable/11/sys/sys/dvdio.h
  stable/11/sys/sys/elf.h
  stable/11/sys/sys/elf32.h
  stable/11/sys/sys/elf64.h
  stable/11/sys/sys/elf_common.h
  stable/11/sys/sys/elf_generic.h
  stable/11/sys/sys/endian.h
  stable/11/sys/sys/errno.h
  stable/11/sys/sys/eui64.h
  stable/11/sys/sys/event.h
  stable/11/sys/sys/eventhandler.h
  stable/11/sys/sys/eventvar.h
  stable/11/sys/sys/exec.h
  stable/11/sys/sys/extattr.h
  stable/11/sys/sys/fail.h
  stable/11/sys/sys/fbio.h
  stable/11/sys/sys/fcntl.h
  stable/11/sys/sys/fdcio.h
  stable/11/sys/sys/file.h
  stable/11/sys/sys/filedesc.h
  stable/11/sys/sys/filio.h
  stable/11/sys/sys/firmware.h
  stable/11/sys/sys/gmon.h
  stable/11/sys/sys/gpio.h
  stable/11/sys/sys/gpt.h
  stable/11/sys/sys/hash.h
  stable/11/sys/sys/hhook.h
  stable/11/sys/sys/iconv.h
  stable/11/sys/sys/imgact.h
  stable/11/sys/sys/imgact_aout.h
  stable/11/sys/sys/imgact_elf.h
  stable/11/sys/sys/interrupt.h
  stable/11/sys/sys/ioccom.h
  stable/11/sys/sys/ioctl.h
  stable/11/sys/sys/ioctl_compat.h
  stable/11/sys/sys/ipc.h
  stable/11/sys/sys/ipmi.h
  stable/11/sys/sys/jail.h
  stable/11/sys/sys/joystick.h
  stable/11/sys/sys/kdb.h
  stable/11/sys/sys/kenv.h
  stable/11/sys/sys/kernel.h
  stable/11/sys/sys/kerneldump.h
  stable/11/sys/sys/khelp.h
  stable/11/sys/sys/kobj.h
  stable/11/sys/sys/ksem.h
  stable/11/sys/sys/kthread.h
  stable/11/sys/sys/ktr.h
  stable/11/sys/sys/ktr_class.h
  stable/11/sys/sys/ktrace.h
  stable/11/sys/sys/libkern.h
  stable/11/sys/sys/limits.h
  stable/11/sys/sys/link_aout.h
  stable/11/sys/sys/link_elf.h
  stable/11/sys/sys/linker.h
  stable/11/sys/sys/linker_set.h
  stable/11/sys/sys/lock.h
  stable/11/sys/sys/lock_profile.h
  stable/11/sys/sys/lockf.h
  stable/11/sys/sys/lockmgr.h
  stable/11/sys/sys/lockstat.h
  stable/11/sys/sys/loginclass.h
  stable/11/sys/sys/mac.h
  stable/11/sys/sys/malloc.h
  stable/11/sys/sys/mbuf.h
  stable/11/sys/sys/mchain.h
  stable/11/sys/sys/mdioctl.h
  stable/11/sys/sys/memdesc.h
  stable/11/sys/sys/mman.h
  stable/11/sys/sys/module.h
  stable/11/sys/sys/module_khelp.h
  stable/11/sys/sys/mount.h
  stable/11/sys/sys/mpt_ioctl.h
  stable/11/sys/sys/mqueue.h
  stable/11/sys/sys/msg.h
  stable/11/sys/sys/msgbuf.h
  stable/11/sys/sys/mtio.h
  stable/11/sys/sys/mutex.h
  stable/11/sys/sys/namei.h
  stable/11/sys/sys/nlist_aout.h
  stable/11/sys/sys/osd.h
  stable/11/sys/sys/param.h
  stable/11/sys/sys/pciio.h
  stable/11/sys/sys/pcpu.h
  stable/11/sys/sys/pctrie.h
  stable/11/sys/sys/pioctl.h
  stable/11/sys/sys/pmc.h
  stable/11/sys/sys/pmckern.h
  stable/11/sys/sys/pmclog.h
  stable/11/sys/sys/poll.h
  stable/11/sys/sys/posix4.h
  stable/11/sys/sys/power.h
  stable/11/sys/sys/priority.h
  stable/11/sys/sys/priv.h
  stable/11/sys/sys/proc.h
  stable/11/sys/sys/procctl.h
  stable/11/sys/sys/procdesc.h
  stable/11/sys/sys/procfs.h
  stable/11/sys/sys/protosw.h
  stable/11/sys/sys/ptio.h
  stable/11/sys/sys/ptrace.h
  stable/11/sys/sys/queue.h
  stable/11/sys/sys/racct.h
  stable/11/sys/sys/random.h
  stable/11/sys/sys/rangelock.h
  stable/11/sys/sys/rctl.h
  stable/11/sys/sys/reboot.h
  stable/11/sys/sys/refcount.h
  stable/11/sys/sys/regression.h
  stable/11/sys/sys/resource.h
  stable/11/sys/sys/resourcevar.h
  stable/11/sys/sys/rmlock.h
  stable/11/sys/sys/rtprio.h
  stable/11/sys/sys/runq.h
  stable/11/sys/sys/rwlock.h
  stable/11/sys/sys/sbuf.h
  stable/11/sys/sys/sched.h
  stable/11/sys/sys/sdt.h
  stable/11/sys/sys/select.h
  stable/11/sys/sys/selinfo.h
  stable/11/sys/sys/sema.h
  stable/11/sys/sys/serial.h
  stable/11/sys/sys/sf_buf.h
  stable/11/sys/sys/sglist.h
  stable/11/sys/sys/shm.h
  stable/11/sys/sys/sigio.h
  stable/11/sys/sys/signal.h
  stable/11/sys/sys/signalvar.h
  stable/11/sys/sys/sleepqueue.h
  stable/11/sys/sys/slicer.h
  stable/11/sys/sys/snoop.h
  stable/11/sys/sys/sockbuf.h
  stable/11/sys/sys/socket.h
  stable/11/sys/sys/socketvar.h
  stable/11/sys/sys/sockio.h
  stable/11/sys/sys/sockopt.h
  stable/11/sys/sys/stack.h
  stable/11/sys/sys/stat.h
  stable/11/sys/sys/stdatomic.h
  stable/11/sys/sys/stddef.h
  stable/11/sys/sys/stdint.h
  stable/11/sys/sys/sun_disklabel.h
  stable/11/sys/sys/sx.h
  stable/11/sys/sys/syscallsubr.h
  stable/11/sys/sys/sysctl.h
  stable/11/sys/sys/sysent.h
  stable/11/sys/sys/syslimits.h
  stable/11/sys/sys/syslog.h
  stable/11/sys/sys/systm.h
  stable/11/sys/sys/taskqueue.h
  stable/11/sys/sys/terminal.h
  stable/11/sys/sys/thr.h
  stable/11/sys/sys/tiio.h
  stable/11/sys/sys/time.h
  stable/11/sys/sys/timeb.h
  stable/11/sys/sys/timeet.h
  stable/11/sys/sys/timeffc.h
  stable/11/sys/sys/timers.h
  stable/11/sys/sys/times.h
  stable/11/sys/sys/timespec.h
  stable/11/sys/sys/tree.h
  stable/11/sys/sys/tty.h
  stable/11/sys/sys/ttycom.h
  stable/11/sys/sys/ttydefaults.h
  stable/11/sys/sys/ttydevsw.h
  stable/11/sys/sys/ttydisc.h
  stable/11/sys/sys/ttyhook.h
  stable/11/sys/sys/ttyqueue.h
  stable/11/sys/sys/turnstile.h
  stable/11/sys/sys/types.h
  stable/11/sys/sys/ucontext.h
  stable/11/sys/sys/ucred.h
  stable/11/sys/sys/uio.h
  stable/11/sys/sys/umtx.h
  stable/11/sys/sys/un.h
  stable/11/sys/sys/unistd.h
  stable/11/sys/sys/unpcb.h
  stable/11/sys/sys/user.h
  stable/11/sys/sys/utsname.h
  stable/11/sys/sys/uuid.h
  stable/11/sys/sys/vdso.h
  stable/11/sys/sys/vmem.h
  stable/11/sys/sys/vmmeter.h
  stable/11/sys/sys/vnode.h
  stable/11/sys/sys/wait.h
  stable/11/sys/sys/watchdog.h
  stable/11/sys/tools/makeobjops.awk
  stable/11/sys/tools/vnode_if.awk
  stable/11/sys/ufs/ffs/ffs_alloc.c
  stable/11/sys/ufs/ffs/ffs_balloc.c
  stable/11/sys/ufs/ffs/ffs_extern.h
  stable/11/sys/ufs/ffs/ffs_inode.c
  stable/11/sys/ufs/ffs/ffs_subr.c
  stable/11/sys/ufs/ffs/ffs_tables.c
  stable/11/sys/ufs/ffs/ffs_vfsops.c
  stable/11/sys/ufs/ffs/ffs_vnops.c
  stable/11/sys/ufs/ffs/fs.h
  stable/11/sys/ufs/ufs/dir.h
  stable/11/sys/ufs/ufs/inode.h
  stable/11/sys/ufs/ufs/quota.h
  stable/11/sys/ufs/ufs/ufs_bmap.c
  stable/11/sys/ufs/ufs/ufs_extern.h
  stable/11/sys/ufs/ufs/ufs_inode.c
  stable/11/sys/ufs/ufs/ufs_lookup.c
  stable/11/sys/ufs/ufs/ufs_quota.c
  stable/11/sys/ufs/ufs/ufs_vfsops.c
  stable/11/sys/ufs/ufs/ufs_vnops.c
  stable/11/sys/ufs/ufs/ufsmount.h
  stable/11/sys/vm/device_pager.c
  stable/11/sys/vm/pmap.h
  stable/11/sys/vm/swap_pager.c
  stable/11/sys/vm/swap_pager.h
  stable/11/sys/vm/vm.h
  stable/11/sys/vm/vm_extern.h
  stable/11/sys/vm/vm_fault.c
  stable/11/sys/vm/vm_glue.c
  stable/11/sys/vm/vm_init.c
  stable/11/sys/vm/vm_kern.c
  stable/11/sys/vm/vm_kern.h
  stable/11/sys/vm/vm_map.c
  stable/11/sys/vm/vm_map.h
  stable/11/sys/vm/vm_meter.c
  stable/11/sys/vm/vm_mmap.c
  stable/11/sys/vm/vm_object.c
  stable/11/sys/vm/vm_object.h
  stable/11/sys/vm/vm_page.c
  stable/11/sys/vm/vm_page.h
  stable/11/sys/vm/vm_pageout.c
  stable/11/sys/vm/vm_pageout.h
  stable/11/sys/vm/vm_pager.c
  stable/11/sys/vm/vm_pager.h
  stable/11/sys/vm/vm_param.h
  stable/11/sys/vm/vm_unix.c
  stable/11/sys/vm/vnode_pager.c
  stable/11/sys/vm/vnode_pager.h
  stable/11/sys/x86/include/_align.h
  stable/11/sys/x86/include/_limits.h
  stable/11/sys/x86/include/_types.h
  stable/11/sys/x86/include/endian.h
  stable/11/sys/x86/include/float.h
  stable/11/sys/x86/include/frame.h
  stable/11/sys/x86/include/psl.h
  stable/11/sys/x86/include/ptrace.h
  stable/11/sys/x86/include/reg.h
  stable/11/sys/x86/include/segments.h
  stable/11/sys/x86/include/setjmp.h
  stable/11/sys/x86/include/signal.h
  stable/11/sys/x86/include/specialreg.h
  stable/11/sys/x86/include/stdarg.h
  stable/11/sys/x86/include/sysarch.h
  stable/11/sys/x86/include/trap.h
  stable/11/sys/x86/isa/clock.c
  stable/11/sys/x86/isa/icu.h
  stable/11/sys/x86/isa/isa_dma.c
  stable/11/sys/x86/isa/nmi.c
  stable/11/sys/x86/x86/delay.c
  stable/11/sys/x86/x86/msi.c
  stable/11/tools/regression/aio/aiop/aiop.c
  stable/11/tools/regression/p1003_1b/fifo.c
  stable/11/tools/regression/p1003_1b/memlock.c
  stable/11/tools/regression/p1003_1b/p26.c
  stable/11/tools/regression/p1003_1b/sched.c
  stable/11/tools/regression/p1003_1b/yield.c
  stable/11/tools/regression/posixsem/posixsem.c
  stable/11/tools/regression/posixsem/test.c
  stable/11/tools/regression/posixsem/test.h
  stable/11/tools/test/hwpmc/pmctest.py
  stable/11/tools/tools/cxgbtool/cxgbtool.c
  stable/11/tools/tools/pirtool/pirtable.h
  stable/11/tools/tools/pirtool/pirtool.c
  stable/11/tools/tools/vxge/vxge_cmn.h
  stable/11/tools/tools/vxge/vxge_info.c
  stable/11/tools/tools/vxge/vxge_info.h
  stable/11/tools/tools/vxge/vxge_log.c
  stable/11/tools/tools/vxge/vxge_log.h
  stable/11/usr.bin/apply/apply.c
  stable/11/usr.bin/ar/ar.c
  stable/11/usr.bin/banner/banner.c
  stable/11/usr.bin/basename/basename.c
  stable/11/usr.bin/biff/biff.c
  stable/11/usr.bin/calendar/calendar.c
  stable/11/usr.bin/calendar/calendar.h
  stable/11/usr.bin/calendar/day.c
  stable/11/usr.bin/calendar/io.c
  stable/11/usr.bin/calendar/locale.c
  stable/11/usr.bin/calendar/pathnames.h
  stable/11/usr.bin/calendar/pom.c
  stable/11/usr.bin/cap_mkdb/cap_mkdb.c
  stable/11/usr.bin/chpass/chpass.c
  stable/11/usr.bin/chpass/chpass.h
  stable/11/usr.bin/chpass/edit.c
  stable/11/usr.bin/chpass/field.c
  stable/11/usr.bin/chpass/table.c
  stable/11/usr.bin/chpass/util.c
  stable/11/usr.bin/cksum/cksum.c
  stable/11/usr.bin/cksum/crc.c
  stable/11/usr.bin/cksum/extern.h
  stable/11/usr.bin/cksum/print.c
  stable/11/usr.bin/cksum/sum1.c
  stable/11/usr.bin/cksum/sum2.c
  stable/11/usr.bin/cmp/cmp.c
  stable/11/usr.bin/cmp/extern.h
  stable/11/usr.bin/cmp/misc.c
  stable/11/usr.bin/cmp/regular.c
  stable/11/usr.bin/cmp/special.c
  stable/11/usr.bin/col/col.c
  stable/11/usr.bin/colrm/colrm.c
  stable/11/usr.bin/column/column.c
  stable/11/usr.bin/comm/comm.c
  stable/11/usr.bin/compress/compress.c
  stable/11/usr.bin/compress/zopen.c
  stable/11/usr.bin/ctags/C.c
  stable/11/usr.bin/ctags/ctags.c
  stable/11/usr.bin/ctags/ctags.h
  stable/11/usr.bin/ctags/fortran.c
  stable/11/usr.bin/ctags/lisp.c
  stable/11/usr.bin/ctags/print.c
  stable/11/usr.bin/ctags/tree.c
  stable/11/usr.bin/ctags/yacc.c
  stable/11/usr.bin/cut/cut.c
  stable/11/usr.bin/dirname/dirname.c
  stable/11/usr.bin/du/du.c
  stable/11/usr.bin/env/env.c
  stable/11/usr.bin/expand/expand.c
  stable/11/usr.bin/false/false.c
  stable/11/usr.bin/find/extern.h
  stable/11/usr.bin/find/find.c
  stable/11/usr.bin/find/find.h
  stable/11/usr.bin/find/function.c
  stable/11/usr.bin/find/ls.c
  stable/11/usr.bin/find/main.c
  stable/11/usr.bin/find/misc.c
  stable/11/usr.bin/find/operator.c
  stable/11/usr.bin/find/option.c
  stable/11/usr.bin/finger/extern.h
  stable/11/usr.bin/finger/finger.c
  stable/11/usr.bin/finger/finger.h
  stable/11/usr.bin/finger/lprint.c
  stable/11/usr.bin/finger/net.c
  stable/11/usr.bin/finger/sprint.c
  stable/11/usr.bin/finger/util.c
  stable/11/usr.bin/fold/fold.c
  stable/11/usr.bin/from/from.c
  stable/11/usr.bin/fstat/fstat.c
  stable/11/usr.bin/gcore/extern.h
  stable/11/usr.bin/gcore/gcore.c
  stable/11/usr.bin/gprof/amd64.h
  stable/11/usr.bin/gprof/aout.c
  stable/11/usr.bin/gprof/arcs.c
  stable/11/usr.bin/gprof/arm.h
  stable/11/usr.bin/gprof/dfn.c
  stable/11/usr.bin/gprof/elf.c
  stable/11/usr.bin/gprof/gprof.c
  stable/11/usr.bin/gprof/gprof.h
  stable/11/usr.bin/gprof/hertz.c
  stable/11/usr.bin/gprof/i386.h
  stable/11/usr.bin/gprof/lookup.c
  stable/11/usr.bin/gprof/mips.h
  stable/11/usr.bin/gprof/pathnames.h
  stable/11/usr.bin/gprof/powerpc.h
  stable/11/usr.bin/gprof/printgprof.c
  stable/11/usr.bin/gprof/printlist.c
  stable/11/usr.bin/gprof/sparc64.h
  stable/11/usr.bin/gzip/zuncompress.c
  stable/11/usr.bin/head/head.c
  stable/11/usr.bin/hexdump/conv.c
  stable/11/usr.bin/hexdump/display.c
  stable/11/usr.bin/hexdump/hexdump.c
  stable/11/usr.bin/hexdump/hexdump.h
  stable/11/usr.bin/hexdump/hexsyntax.c
  stable/11/usr.bin/hexdump/odsyntax.c
  stable/11/usr.bin/hexdump/parse.c
  stable/11/usr.bin/id/id.c
  stable/11/usr.bin/indent/args.c
  stable/11/usr.bin/indent/indent.c
  stable/11/usr.bin/indent/indent_codes.h
  stable/11/usr.bin/indent/indent_globs.h
  stable/11/usr.bin/indent/io.c
  stable/11/usr.bin/indent/lexi.c
  stable/11/usr.bin/indent/parse.c
  stable/11/usr.bin/indent/pr_comment.c
  stable/11/usr.bin/join/join.c
  stable/11/usr.bin/jot/jot.c
  stable/11/usr.bin/kdump/kdump.c
  stable/11/usr.bin/ktrace/ktrace.c
  stable/11/usr.bin/ktrace/ktrace.h
  stable/11/usr.bin/ktrace/subr.c
  stable/11/usr.bin/lam/lam.c
  stable/11/usr.bin/last/last.c
  stable/11/usr.bin/lastcomm/lastcomm.c
  stable/11/usr.bin/lastcomm/pathnames.h
  stable/11/usr.bin/leave/leave.c
  stable/11/usr.bin/lex/initparse.c
  stable/11/usr.bin/locate/bigram/locate.bigram.c
  stable/11/usr.bin/locate/code/locate.code.c
  stable/11/usr.bin/locate/locate/fastfind.c
  stable/11/usr.bin/locate/locate/locate.c
  stable/11/usr.bin/locate/locate/locate.h
  stable/11/usr.bin/locate/locate/util.c
  stable/11/usr.bin/lock/lock.c
  stable/11/usr.bin/logger/logger.c
  stable/11/usr.bin/login/login.c
  stable/11/usr.bin/login/login_audit.c
  stable/11/usr.bin/login/pathnames.h
  stable/11/usr.bin/logname/logname.c
  stable/11/usr.bin/look/look.c
  stable/11/usr.bin/look/pathnames.h
  stable/11/usr.bin/lorder/lorder.sh
  stable/11/usr.bin/m4/eval.c
  stable/11/usr.bin/m4/extern.h
  stable/11/usr.bin/m4/look.c
  stable/11/usr.bin/m4/main.c
  stable/11/usr.bin/m4/mdef.h
  stable/11/usr.bin/m4/misc.c
  stable/11/usr.bin/m4/pathnames.h
  stable/11/usr.bin/m4/stdd.h
  stable/11/usr.bin/mail/cmd1.c
  stable/11/usr.bin/mail/cmd2.c
  stable/11/usr.bin/mail/cmd3.c
  stable/11/usr.bin/mail/cmdtab.c
  stable/11/usr.bin/mail/collect.c
  stable/11/usr.bin/mail/def.h
  stable/11/usr.bin/mail/edit.c
  stable/11/usr.bin/mail/extern.h
  stable/11/usr.bin/mail/fio.c
  stable/11/usr.bin/mail/getname.c
  stable/11/usr.bin/mail/glob.h
  stable/11/usr.bin/mail/head.c
  stable/11/usr.bin/mail/lex.c
  stable/11/usr.bin/mail/list.c
  stable/11/usr.bin/mail/main.c
  stable/11/usr.bin/mail/names.c
  stable/11/usr.bin/mail/pathnames.h
  stable/11/usr.bin/mail/popen.c
  stable/11/usr.bin/mail/quit.c
  stable/11/usr.bin/mail/rcv.h
  stable/11/usr.bin/mail/send.c
  stable/11/usr.bin/mail/strings.c
  stable/11/usr.bin/mail/temp.c
  stable/11/usr.bin/mail/tty.c
  stable/11/usr.bin/mail/util.c
  stable/11/usr.bin/mail/v7.local.c
  stable/11/usr.bin/mail/vars.c
  stable/11/usr.bin/mail/version.c
  stable/11/usr.bin/mesg/mesg.c
  stable/11/usr.bin/mkdep/mkdep.gcc.sh
  stable/11/usr.bin/mkdep/mkdep.sh
  stable/11/usr.bin/mkfifo/mkfifo.c
  stable/11/usr.bin/mklocale/extern.h
  stable/11/usr.bin/mklocale/ldef.h
  stable/11/usr.bin/mklocale/lex.l
  stable/11/usr.bin/mklocale/yacc.y
  stable/11/usr.bin/mkstr/mkstr.c
  stable/11/usr.bin/msgs/msgs.c
  stable/11/usr.bin/msgs/pathnames.h
  stable/11/usr.bin/mt/mt.c
  stable/11/usr.bin/netstat/if.c
  stable/11/usr.bin/netstat/inet6.c
  stable/11/usr.bin/netstat/ipsec.c
  stable/11/usr.bin/netstat/main.c
  stable/11/usr.bin/netstat/mbuf.c
  stable/11/usr.bin/netstat/mroute.c
  stable/11/usr.bin/netstat/mroute6.c
  stable/11/usr.bin/netstat/netstat.h
  stable/11/usr.bin/netstat/pfkey.c
  stable/11/usr.bin/netstat/route.c
  stable/11/usr.bin/netstat/sctp.c
  stable/11/usr.bin/netstat/unix.c
  stable/11/usr.bin/nice/nice.c
  stable/11/usr.bin/nohup/nohup.c
  stable/11/usr.bin/pagesize/pagesize.sh
  stable/11/usr.bin/paste/paste.c
  stable/11/usr.bin/patch/mkpath.c
  stable/11/usr.bin/pr/egetopt.c
  stable/11/usr.bin/pr/extern.h
  stable/11/usr.bin/pr/pr.c
  stable/11/usr.bin/pr/pr.h
  stable/11/usr.bin/printenv/printenv.c
  stable/11/usr.bin/printf/printf.c
  stable/11/usr.bin/quota/quota.c
  stable/11/usr.bin/renice/renice.c
  stable/11/usr.bin/rev/rev.c
  stable/11/usr.bin/rs/rs.c
  stable/11/usr.bin/rup/rup.c
  stable/11/usr.bin/ruptime/ruptime.c
  stable/11/usr.bin/rusers/rusers.c
  stable/11/usr.bin/rwall/rwall.c
  stable/11/usr.bin/rwho/rwho.c
  stable/11/usr.bin/script/script.c
  stable/11/usr.bin/sed/compile.c
  stable/11/usr.bin/sed/defs.h
  stable/11/usr.bin/sed/extern.h
  stable/11/usr.bin/sed/main.c
  stable/11/usr.bin/sed/misc.c
  stable/11/usr.bin/sed/process.c
  stable/11/usr.bin/shar/shar.sh
  stable/11/usr.bin/showmount/showmount.c
  stable/11/usr.bin/split/split.c
  stable/11/usr.bin/su/su.c
  stable/11/usr.bin/systat/cmds.c
  stable/11/usr.bin/systat/cmdtab.c
  stable/11/usr.bin/systat/devs.c
  stable/11/usr.bin/systat/extern.h
  stable/11/usr.bin/systat/fetch.c
  stable/11/usr.bin/systat/icmp.c
  stable/11/usr.bin/systat/icmp6.c
  stable/11/usr.bin/systat/iostat.c
  stable/11/usr.bin/systat/ip.c
  stable/11/usr.bin/systat/ip6.c
  stable/11/usr.bin/systat/keyboard.c
  stable/11/usr.bin/systat/main.c
  stable/11/usr.bin/systat/netcmds.c
  stable/11/usr.bin/systat/netstat.c
  stable/11/usr.bin/systat/pigs.c
  stable/11/usr.bin/systat/swap.c
  stable/11/usr.bin/systat/systat.h
  stable/11/usr.bin/systat/tcp.c
  stable/11/usr.bin/systat/vmstat.c
  stable/11/usr.bin/tail/extern.h
  stable/11/usr.bin/tail/forward.c
  stable/11/usr.bin/tail/misc.c
  stable/11/usr.bin/tail/read.c
  stable/11/usr.bin/tail/reverse.c
  stable/11/usr.bin/tail/tail.c
  stable/11/usr.bin/talk/ctl.c
  stable/11/usr.bin/talk/ctl_transact.c
  stable/11/usr.bin/talk/display.c
  stable/11/usr.bin/talk/get_addrs.c
  stable/11/usr.bin/talk/get_names.c
  stable/11/usr.bin/talk/init_disp.c
  stable/11/usr.bin/talk/invite.c
  stable/11/usr.bin/talk/io.c
  stable/11/usr.bin/talk/look_up.c
  stable/11/usr.bin/talk/msgs.c
  stable/11/usr.bin/talk/talk.c
  stable/11/usr.bin/talk/talk.h
  stable/11/usr.bin/talk/talk_ctl.h
  stable/11/usr.bin/tcopy/tcopy.c
  stable/11/usr.bin/tee/tee.c
  stable/11/usr.bin/tftp/main.c
  stable/11/usr.bin/tftp/tftp.c
  stable/11/usr.bin/tftp/tftp.h
  stable/11/usr.bin/time/time.c
  stable/11/usr.bin/tip/libacu/biz22.c
  stable/11/usr.bin/tip/libacu/biz31.c
  stable/11/usr.bin/tip/libacu/courier.c
  stable/11/usr.bin/tip/libacu/df.c
  stable/11/usr.bin/tip/libacu/dn11.c
  stable/11/usr.bin/tip/libacu/hayes.c
  stable/11/usr.bin/tip/libacu/t3000.c
  stable/11/usr.bin/tip/libacu/v3451.c
  stable/11/usr.bin/tip/libacu/v831.c
  stable/11/usr.bin/tip/libacu/ventel.c
  stable/11/usr.bin/tip/tip/acu.c
  stable/11/usr.bin/tip/tip/acutab.c
  stable/11/usr.bin/tip/tip/cmds.c
  stable/11/usr.bin/tip/tip/cmdtab.c
  stable/11/usr.bin/tip/tip/cu.c
  stable/11/usr.bin/tip/tip/hunt.c
  stable/11/usr.bin/tip/tip/log.c
  stable/11/usr.bin/tip/tip/partab.c
  stable/11/usr.bin/tip/tip/pathnames.h
  stable/11/usr.bin/tip/tip/remote.c
  stable/11/usr.bin/tip/tip/tip.c
  stable/11/usr.bin/tip/tip/tip.h
  stable/11/usr.bin/tip/tip/tipout.c
  stable/11/usr.bin/tip/tip/uucplock.c
  stable/11/usr.bin/tip/tip/value.c
  stable/11/usr.bin/tip/tip/vars.c
  stable/11/usr.bin/touch/touch.c
  stable/11/usr.bin/tput/clear.sh
  stable/11/usr.bin/tput/tput.c
  stable/11/usr.bin/tr/extern.h
  stable/11/usr.bin/tr/str.c
  stable/11/usr.bin/tr/tr.c
  stable/11/usr.bin/true/true.c
  stable/11/usr.bin/truss/amd64-freebsd.c
  stable/11/usr.bin/truss/amd64-freebsd32.c
  stable/11/usr.bin/truss/amd64-linux.c
  stable/11/usr.bin/truss/amd64-linux32.c
  stable/11/usr.bin/truss/arm-freebsd.c
  stable/11/usr.bin/truss/extern.h
  stable/11/usr.bin/truss/i386-freebsd.c
  stable/11/usr.bin/truss/i386-linux.c
  stable/11/usr.bin/truss/main.c
  stable/11/usr.bin/truss/mips-freebsd.c
  stable/11/usr.bin/truss/setup.c
  stable/11/usr.bin/truss/sparc64-freebsd.c
  stable/11/usr.bin/truss/syscalls.c
  stable/11/usr.bin/tset/extern.h
  stable/11/usr.bin/tset/map.c
  stable/11/usr.bin/tset/misc.c
  stable/11/usr.bin/tset/set.c
  stable/11/usr.bin/tset/term.c
  stable/11/usr.bin/tset/tset.c
  stable/11/usr.bin/tset/wrterm.c
  stable/11/usr.bin/tsort/tsort.c
  stable/11/usr.bin/tty/tty.c
  stable/11/usr.bin/ul/ul.c
  stable/11/usr.bin/uname/uname.c
  stable/11/usr.bin/unexpand/unexpand.c
  stable/11/usr.bin/uniq/uniq.c
  stable/11/usr.bin/uudecode/uudecode.c
  stable/11/usr.bin/uuencode/uuencode.c
  stable/11/usr.bin/vgrind/extern.h
  stable/11/usr.bin/vgrind/pathnames.h
  stable/11/usr.bin/vgrind/regexp.c
  stable/11/usr.bin/vgrind/vfontedpr.c
  stable/11/usr.bin/vgrind/vgrind.sh
  stable/11/usr.bin/vmstat/vmstat.c
  stable/11/usr.bin/w/extern.h
  stable/11/usr.bin/w/pr_time.c
  stable/11/usr.bin/w/proc_compare.c
  stable/11/usr.bin/w/w.c
  stable/11/usr.bin/wall/ttymsg.c
  stable/11/usr.bin/wall/wall.c
  stable/11/usr.bin/wc/wc.c
  stable/11/usr.bin/what/what.c
  stable/11/usr.bin/whois/whois.c
  stable/11/usr.bin/write/write.c
  stable/11/usr.bin/xargs/pathnames.h
  stable/11/usr.bin/xargs/xargs.c
  stable/11/usr.bin/xinstall/xinstall.c
  stable/11/usr.bin/xstr/pathnames.h
  stable/11/usr.bin/xstr/xstr.c
  stable/11/usr.bin/yes/yes.c
  stable/11/usr.sbin/accton/accton.c
  stable/11/usr.sbin/ancontrol/ancontrol.c
  stable/11/usr.sbin/arp/arp.c
  stable/11/usr.sbin/chown/chown.c
  stable/11/usr.sbin/chroot/chroot.c
  stable/11/usr.sbin/config/config.h
  stable/11/usr.sbin/config/config.y
  stable/11/usr.sbin/config/lang.l
  stable/11/usr.sbin/config/main.c
  stable/11/usr.sbin/config/mkheaders.c
  stable/11/usr.sbin/config/mkmakefile.c
  stable/11/usr.sbin/config/mkoptions.c
  stable/11/usr.sbin/crashinfo/crashinfo.sh
  stable/11/usr.sbin/dconschat/dconschat.c
  stable/11/usr.sbin/edquota/edquota.c
  stable/11/usr.sbin/edquota/pathnames.h
  stable/11/usr.sbin/fwcontrol/fwcontrol.c
  stable/11/usr.sbin/fwcontrol/fwdv.c
  stable/11/usr.sbin/fwcontrol/fwmpegts.c
  stable/11/usr.sbin/ifmcstat/ifmcstat.c
  stable/11/usr.sbin/ifmcstat/printb.c
  stable/11/usr.sbin/inetd/inetd.c
  stable/11/usr.sbin/inetd/inetd.h
  stable/11/usr.sbin/inetd/pathnames.h
  stable/11/usr.sbin/iostat/iostat.c
  stable/11/usr.sbin/ip6addrctl/ip6addrctl.c
  stable/11/usr.sbin/kgmon/kgmon.c
  stable/11/usr.sbin/kldxref/ef.c
  stable/11/usr.sbin/kldxref/ef_obj.c
  stable/11/usr.sbin/kldxref/kldxref.c
  stable/11/usr.sbin/lpr/common_source/common.c
  stable/11/usr.sbin/lpr/common_source/displayq.c
  stable/11/usr.sbin/lpr/common_source/lp.h
  stable/11/usr.sbin/lpr/common_source/lp.local.h
  stable/11/usr.sbin/lpr/common_source/net.c
  stable/11/usr.sbin/lpr/common_source/pathnames.h
  stable/11/usr.sbin/lpr/common_source/printcap.c
  stable/11/usr.sbin/lpr/common_source/rmjob.c
  stable/11/usr.sbin/lpr/common_source/startdaemon.c
  stable/11/usr.sbin/lpr/filters/lpf.c
  stable/11/usr.sbin/lpr/lpc/cmds.c
  stable/11/usr.sbin/lpr/lpc/cmdtab.c
  stable/11/usr.sbin/lpr/lpc/extern.h
  stable/11/usr.sbin/lpr/lpc/lpc.c
  stable/11/usr.sbin/lpr/lpc/lpc.h
  stable/11/usr.sbin/lpr/lpd/extern.h
  stable/11/usr.sbin/lpr/lpd/lpd.c
  stable/11/usr.sbin/lpr/lpd/lpdchar.c
  stable/11/usr.sbin/lpr/lpd/modes.c
  stable/11/usr.sbin/lpr/lpd/printjob.c
  stable/11/usr.sbin/lpr/lpd/recvjob.c
  stable/11/usr.sbin/lpr/lpq/lpq.c
  stable/11/usr.sbin/lpr/lpr/lpr.c
  stable/11/usr.sbin/lpr/lprm/lprm.c
  stable/11/usr.sbin/lpr/lptest/lptest.c
  stable/11/usr.sbin/lpr/pac/pac.c
  stable/11/usr.sbin/makefs/ffs.c
  stable/11/usr.sbin/makefs/ffs/ffs_alloc.c
  stable/11/usr.sbin/makefs/ffs/ffs_balloc.c
  stable/11/usr.sbin/makefs/ffs/ffs_extern.h
  stable/11/usr.sbin/makefs/ffs/ffs_subr.c
  stable/11/usr.sbin/makefs/ffs/mkfs.c
  stable/11/usr.sbin/makefs/ffs/ufs_bmap.c
  stable/11/usr.sbin/makefs/ffs/ufs_inode.h
  stable/11/usr.sbin/manctl/manctl.sh
  stable/11/usr.sbin/mld6query/mld6.c
  stable/11/usr.sbin/mountd/mountd.c
  stable/11/usr.sbin/mountd/pathnames.h
  stable/11/usr.sbin/mptutil/mpt_cam.c
  stable/11/usr.sbin/mptutil/mpt_cmd.c
  stable/11/usr.sbin/mptutil/mpt_config.c
  stable/11/usr.sbin/mptutil/mpt_drive.c
  stable/11/usr.sbin/mptutil/mpt_evt.c
  stable/11/usr.sbin/mptutil/mpt_show.c
  stable/11/usr.sbin/mptutil/mpt_volume.c
  stable/11/usr.sbin/mptutil/mptutil.c
  stable/11/usr.sbin/mptutil/mptutil.h
  stable/11/usr.sbin/nandsim/nandsim_rcfile.c
  stable/11/usr.sbin/nandsim/nandsim_rcfile.h
  stable/11/usr.sbin/ndiscvt/inf-parse.y
  stable/11/usr.sbin/ndiscvt/inf-token.l
  stable/11/usr.sbin/ndiscvt/inf.c
  stable/11/usr.sbin/ndiscvt/ndiscvt.c
  stable/11/usr.sbin/ndiscvt/ndisgen.sh
  stable/11/usr.sbin/ndiscvt/windrv_stub.c
  stable/11/usr.sbin/ndp/ndp.c
  stable/11/usr.sbin/nfsd/nfsd.c
  stable/11/usr.sbin/pciconf/cap.c
  stable/11/usr.sbin/pciconf/pciconf.h
  stable/11/usr.sbin/ppp/slcompress.c
  stable/11/usr.sbin/ppp/slcompress.h
  stable/11/usr.sbin/pstat/pstat.c
  stable/11/usr.sbin/pwd_mkdb/pwd_mkdb.c
  stable/11/usr.sbin/quotaon/quotaon.c
  stable/11/usr.sbin/repquota/repquota.c
  stable/11/usr.sbin/rip6query/rip6query.c
  stable/11/usr.sbin/rmt/rmt.c
  stable/11/usr.sbin/route6d/misc/cksum.c
  stable/11/usr.sbin/route6d/route6d.c
  stable/11/usr.sbin/route6d/route6d.h
  stable/11/usr.sbin/rpc.lockd/lock_proc.c
  stable/11/usr.sbin/rpc.lockd/lockd.c
  stable/11/usr.sbin/rpc.lockd/lockd.h
  stable/11/usr.sbin/rpc.lockd/lockd_lock.c
  stable/11/usr.sbin/rpc.statd/file.c
  stable/11/usr.sbin/rpc.statd/procs.c
  stable/11/usr.sbin/rpc.statd/statd.c
  stable/11/usr.sbin/rpc.statd/statd.h
  stable/11/usr.sbin/rpc.yppasswdd/yppasswdd_extern.h
  stable/11/usr.sbin/rpc.yppasswdd/yppasswdd_main.c
  stable/11/usr.sbin/rpc.yppasswdd/yppasswdd_server.c
  stable/11/usr.sbin/rpc.ypupdated/yp_dbdelete.c
  stable/11/usr.sbin/rpc.ypupdated/yp_dbupdate.c
  stable/11/usr.sbin/rpc.ypupdated/ypupdated_main.c
  stable/11/usr.sbin/rpc.ypupdated/ypupdated_server.c
  stable/11/usr.sbin/rpc.ypxfrd/ypxfrd_extern.h
  stable/11/usr.sbin/rpc.ypxfrd/ypxfrd_main.c
  stable/11/usr.sbin/rpc.ypxfrd/ypxfrd_server.c
  stable/11/usr.sbin/rpcbind/check_bound.c
  stable/11/usr.sbin/rpcbind/pmap_svc.c
  stable/11/usr.sbin/rpcbind/rpcb_stat.c
  stable/11/usr.sbin/rpcbind/rpcb_svc.c
  stable/11/usr.sbin/rpcbind/rpcb_svc_4.c
  stable/11/usr.sbin/rpcbind/rpcb_svc_com.c
  stable/11/usr.sbin/rpcbind/rpcbind.c
  stable/11/usr.sbin/rpcbind/rpcbind.h
  stable/11/usr.sbin/rpcbind/warmstart.c
  stable/11/usr.sbin/rrenumd/lexer.l
  stable/11/usr.sbin/rrenumd/parser.y
  stable/11/usr.sbin/rrenumd/rrenumd.c
  stable/11/usr.sbin/rrenumd/rrenumd.h
  stable/11/usr.sbin/rtadvd/advcap.c
  stable/11/usr.sbin/rtadvd/config.c
  stable/11/usr.sbin/rtadvd/config.h
  stable/11/usr.sbin/rtadvd/if.c
  stable/11/usr.sbin/rtadvd/if.h
  stable/11/usr.sbin/rtadvd/rrenum.c
  stable/11/usr.sbin/rtadvd/rrenum.h
  stable/11/usr.sbin/rtadvd/rtadvd.c
  stable/11/usr.sbin/rtadvd/rtadvd.h
  stable/11/usr.sbin/rtadvd/timer.c
  stable/11/usr.sbin/rtadvd/timer.h
  stable/11/usr.sbin/rtadvd/timer_subr.c
  stable/11/usr.sbin/rtadvd/timer_subr.h
  stable/11/usr.sbin/rtsold/dump.c
  stable/11/usr.sbin/rtsold/if.c
  stable/11/usr.sbin/rtsold/probe.c
  stable/11/usr.sbin/rtsold/rtsock.c
  stable/11/usr.sbin/rtsold/rtsol.c
  stable/11/usr.sbin/rtsold/rtsold.c
  stable/11/usr.sbin/rtsold/rtsold.h
  stable/11/usr.sbin/rwhod/rwhod.c
  stable/11/usr.sbin/setfib/setfib.c
  stable/11/usr.sbin/syslogd/pathnames.h
  stable/11/usr.sbin/syslogd/syslogd.c
  stable/11/usr.sbin/timed/timed/acksend.c
  stable/11/usr.sbin/timed/timed/byteorder.c
  stable/11/usr.sbin/timed/timed/candidate.c
  stable/11/usr.sbin/timed/timed/cksum.c
  stable/11/usr.sbin/timed/timed/correct.c
  stable/11/usr.sbin/timed/timed/extern.h
  stable/11/usr.sbin/timed/timed/globals.h
  stable/11/usr.sbin/timed/timed/master.c
  stable/11/usr.sbin/timed/timed/measure.c
  stable/11/usr.sbin/timed/timed/networkdelta.c
  stable/11/usr.sbin/timed/timed/pathnames.h
  stable/11/usr.sbin/timed/timed/readmsg.c
  stable/11/usr.sbin/timed/timed/slave.c
  stable/11/usr.sbin/timed/timed/timed.c
  stable/11/usr.sbin/timed/timedc/cmds.c
  stable/11/usr.sbin/timed/timedc/cmdtab.c
  stable/11/usr.sbin/timed/timedc/extern.h
  stable/11/usr.sbin/timed/timedc/timedc.c
  stable/11/usr.sbin/timed/timedc/timedc.h
  stable/11/usr.sbin/traceroute6/traceroute6.c
  stable/11/usr.sbin/trpt/trpt.c
  stable/11/usr.sbin/vipw/vipw.c
  stable/11/usr.sbin/wpa/ndis_events/ndis_events.c
  stable/11/usr.sbin/wpa/wpa_supplicant/Packet32.c
  stable/11/usr.sbin/wpa/wpa_supplicant/Packet32.h
  stable/11/usr.sbin/yp_mkdb/yp_mkdb.c
  stable/11/usr.sbin/ypbind/yp_ping.c
  stable/11/usr.sbin/yppush/yppush_main.c
  stable/11/usr.sbin/ypserv/yp_access.c
  stable/11/usr.sbin/ypserv/yp_dblookup.c
  stable/11/usr.sbin/ypserv/yp_dnslookup.c
  stable/11/usr.sbin/ypserv/yp_error.c
  stable/11/usr.sbin/ypserv/yp_extern.h
  stable/11/usr.sbin/ypserv/yp_main.c
  stable/11/usr.sbin/ypserv/yp_server.c
  stable/11/usr.sbin/ypserv/yp_svc_udp.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/bin/cat/cat.c
==============================================================================
--- stable/11/bin/cat/cat.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/cat/cat.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/chflags/chflags.c
==============================================================================
--- stable/11/bin/chflags/chflags.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/chflags/chflags.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/chmod/chmod.c
==============================================================================
--- stable/11/bin/chmod/chmod.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/chmod/chmod.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1989, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/cp/cp.c
==============================================================================
--- stable/11/bin/cp/cp.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/cp/cp.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1988, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/cp/extern.h
==============================================================================
--- stable/11/bin/cp/extern.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/cp/extern.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/cp/utils.c
==============================================================================
--- stable/11/bin/cp/utils.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/cp/utils.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/date/date.c
==============================================================================
--- stable/11/bin/date/date.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/date/date.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1985, 1987, 1988, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/date/extern.h
==============================================================================
--- stable/11/bin/date/extern.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/date/extern.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/date/netdate.c
==============================================================================
--- stable/11/bin/date/netdate.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/date/netdate.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1990, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/dd/args.c
==============================================================================
--- stable/11/bin/dd/args.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/dd/args.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/dd/conv.c
==============================================================================
--- stable/11/bin/dd/conv.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/dd/conv.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/dd/conv_tab.c
==============================================================================
--- stable/11/bin/dd/conv_tab.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/dd/conv_tab.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/dd/dd.c
==============================================================================
--- stable/11/bin/dd/dd.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/dd/dd.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/dd/dd.h
==============================================================================
--- stable/11/bin/dd/dd.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/dd/dd.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/dd/extern.h
==============================================================================
--- stable/11/bin/dd/extern.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/dd/extern.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/dd/misc.c
==============================================================================
--- stable/11/bin/dd/misc.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/dd/misc.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/dd/position.c
==============================================================================
--- stable/11/bin/dd/position.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/dd/position.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/df/df.c
==============================================================================
--- stable/11/bin/df/df.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/df/df.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1980, 1990, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  * (c) UNIX System Laboratories, Inc.

Modified: stable/11/bin/domainname/domainname.c
==============================================================================
--- stable/11/bin/domainname/domainname.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/domainname/domainname.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1988, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/echo/echo.c
==============================================================================
--- stable/11/bin/echo/echo.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/echo/echo.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ed/cbc.c
==============================================================================
--- stable/11/bin/ed/cbc.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ed/cbc.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,7 +1,5 @@
 /* cbc.c: This file contains the encryption routines for the ed line editor */
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1993 The Regents of the University of California.
  * All rights reserved.
  *

Modified: stable/11/bin/hostname/hostname.c
==============================================================================
--- stable/11/bin/hostname/hostname.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/hostname/hostname.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1988, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/kill/kill.c
==============================================================================
--- stable/11/bin/kill/kill.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/kill/kill.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1988, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ln/ln.c
==============================================================================
--- stable/11/bin/ln/ln.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ln/ln.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1987, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ls/cmp.c
==============================================================================
--- stable/11/bin/ls/cmp.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ls/cmp.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ls/extern.h
==============================================================================
--- stable/11/bin/ls/extern.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ls/extern.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ls/ls.c
==============================================================================
--- stable/11/bin/ls/ls.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ls/ls.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1989, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ls/ls.h
==============================================================================
--- stable/11/bin/ls/ls.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ls/ls.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ls/print.c
==============================================================================
--- stable/11/bin/ls/print.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ls/print.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1989, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ls/util.c
==============================================================================
--- stable/11/bin/ls/util.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ls/util.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1989, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/mkdir/mkdir.c
==============================================================================
--- stable/11/bin/mkdir/mkdir.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/mkdir/mkdir.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1983, 1992, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/mv/mv.c
==============================================================================
--- stable/11/bin/mv/mv.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/mv/mv.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1989, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/pax/ar_io.c
==============================================================================
--- stable/11/bin/pax/ar_io.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/ar_io.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/ar_subs.c
==============================================================================
--- stable/11/bin/pax/ar_subs.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/ar_subs.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/buf_subs.c
==============================================================================
--- stable/11/bin/pax/buf_subs.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/buf_subs.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/cache.c
==============================================================================
--- stable/11/bin/pax/cache.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/cache.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/cache.h
==============================================================================
--- stable/11/bin/pax/cache.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/cache.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/cpio.c
==============================================================================
--- stable/11/bin/pax/cpio.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/cpio.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/cpio.h
==============================================================================
--- stable/11/bin/pax/cpio.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/cpio.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/extern.h
==============================================================================
--- stable/11/bin/pax/extern.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/extern.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/file_subs.c
==============================================================================
--- stable/11/bin/pax/file_subs.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/file_subs.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/ftree.c
==============================================================================
--- stable/11/bin/pax/ftree.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/ftree.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/ftree.h
==============================================================================
--- stable/11/bin/pax/ftree.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/ftree.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/gen_subs.c
==============================================================================
--- stable/11/bin/pax/gen_subs.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/gen_subs.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/options.c
==============================================================================
--- stable/11/bin/pax/options.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/options.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/options.h
==============================================================================
--- stable/11/bin/pax/options.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/options.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/pat_rep.c
==============================================================================
--- stable/11/bin/pax/pat_rep.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/pat_rep.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/pat_rep.h
==============================================================================
--- stable/11/bin/pax/pat_rep.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/pat_rep.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/pax.c
==============================================================================
--- stable/11/bin/pax/pax.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/pax.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/pax.h
==============================================================================
--- stable/11/bin/pax/pax.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/pax.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/sel_subs.c
==============================================================================
--- stable/11/bin/pax/sel_subs.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/sel_subs.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/sel_subs.h
==============================================================================
--- stable/11/bin/pax/sel_subs.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/sel_subs.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/tables.c
==============================================================================
--- stable/11/bin/pax/tables.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/tables.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/tables.h
==============================================================================
--- stable/11/bin/pax/tables.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/tables.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/tar.c
==============================================================================
--- stable/11/bin/pax/tar.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/tar.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/tar.h
==============================================================================
--- stable/11/bin/pax/tar.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/tar.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/pax/tty_subs.c
==============================================================================
--- stable/11/bin/pax/tty_subs.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pax/tty_subs.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992 Keith Muller.
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.

Modified: stable/11/bin/ps/extern.h
==============================================================================
--- stable/11/bin/ps/extern.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ps/extern.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ps/fmt.c
==============================================================================
--- stable/11/bin/ps/fmt.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ps/fmt.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ps/keyword.c
==============================================================================
--- stable/11/bin/ps/keyword.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ps/keyword.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1990, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ps/nlist.c
==============================================================================
--- stable/11/bin/ps/nlist.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ps/nlist.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1990, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ps/print.c
==============================================================================
--- stable/11/bin/ps/print.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ps/print.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1990, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ps/ps.c
==============================================================================
--- stable/11/bin/ps/ps.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ps/ps.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1990, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/ps/ps.h
==============================================================================
--- stable/11/bin/ps/ps.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/ps/ps.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1990, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/pwd/pwd.c
==============================================================================
--- stable/11/bin/pwd/pwd.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/pwd/pwd.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/realpath/realpath.c
==============================================================================
--- stable/11/bin/realpath/realpath.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/realpath/realpath.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/rm/rm.c
==============================================================================
--- stable/11/bin/rm/rm.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/rm/rm.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1990, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/rmdir/rmdir.c
==============================================================================
--- stable/11/bin/rmdir/rmdir.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/rmdir/rmdir.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/bltin/bltin.h
==============================================================================
--- stable/11/bin/sh/bltin/bltin.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/bltin/bltin.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/bltin/echo.c
==============================================================================
--- stable/11/bin/sh/bltin/echo.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/bltin/echo.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/mail.h
==============================================================================
--- stable/11/bin/sh/mail.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/mail.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/main.c
==============================================================================
--- stable/11/bin/sh/main.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/main.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/main.h
==============================================================================
--- stable/11/bin/sh/main.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/main.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/memalloc.c
==============================================================================
--- stable/11/bin/sh/memalloc.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/memalloc.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/memalloc.h
==============================================================================
--- stable/11/bin/sh/memalloc.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/memalloc.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/miscbltin.c
==============================================================================
--- stable/11/bin/sh/miscbltin.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/miscbltin.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/mknodes.c
==============================================================================
--- stable/11/bin/sh/mknodes.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/mknodes.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/mksyntax.c
==============================================================================
--- stable/11/bin/sh/mksyntax.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/mksyntax.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/myhistedit.h
==============================================================================
--- stable/11/bin/sh/myhistedit.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/myhistedit.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/mystring.c
==============================================================================
--- stable/11/bin/sh/mystring.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/mystring.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/mystring.h
==============================================================================
--- stable/11/bin/sh/mystring.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/mystring.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/options.c
==============================================================================
--- stable/11/bin/sh/options.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/options.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/options.h
==============================================================================
--- stable/11/bin/sh/options.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/options.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/output.c
==============================================================================
--- stable/11/bin/sh/output.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/output.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/output.h
==============================================================================
--- stable/11/bin/sh/output.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/output.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/parser.c
==============================================================================
--- stable/11/bin/sh/parser.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/parser.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/parser.h
==============================================================================
--- stable/11/bin/sh/parser.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/parser.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/redir.c
==============================================================================
--- stable/11/bin/sh/redir.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/redir.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/redir.h
==============================================================================
--- stable/11/bin/sh/redir.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/redir.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/shell.h
==============================================================================
--- stable/11/bin/sh/shell.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/shell.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/show.c
==============================================================================
--- stable/11/bin/sh/show.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/show.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/show.h
==============================================================================
--- stable/11/bin/sh/show.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/show.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1995
  *      The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/trap.c
==============================================================================
--- stable/11/bin/sh/trap.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/trap.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/trap.h
==============================================================================
--- stable/11/bin/sh/trap.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/trap.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/var.c
==============================================================================
--- stable/11/bin/sh/var.c	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/var.c	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/bin/sh/var.h
==============================================================================
--- stable/11/bin/sh/var.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/bin/sh/var.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/include/_ctype.h
==============================================================================
--- stable/11/include/_ctype.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/_ctype.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
+/*
  * Copyright (c) 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
  * (c) UNIX System Laboratories, Inc.

Modified: stable/11/include/a.out.h
==============================================================================
--- stable/11/include/a.out.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/a.out.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/include/ar.h
==============================================================================
--- stable/11/include/ar.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/ar.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  * (c) UNIX System Laboratories, Inc.

Modified: stable/11/include/arpa/ftp.h
==============================================================================
--- stable/11/include/arpa/ftp.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/arpa/ftp.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
+/*
  * Copyright (c) 1983, 1989, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/include/arpa/inet.h
==============================================================================
--- stable/11/include/arpa/inet.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/arpa/inet.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
+/*
  * ++Copyright++ 1983, 1993
  * -
  * Copyright (c) 1983, 1993

Modified: stable/11/include/arpa/nameser.h
==============================================================================
--- stable/11/include/arpa/nameser.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/arpa/nameser.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -15,9 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
+/*
  * Copyright (c) 1983, 1989, 1993
  *    The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/include/arpa/nameser_compat.h
==============================================================================
--- stable/11/include/arpa/nameser_compat.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/arpa/nameser_compat.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,7 +1,4 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1983, 1989
+/* Copyright (c) 1983, 1989
  *    The Regents of the University of California.  All rights reserved.
  * 
  * Redistribution and use in source and binary forms, with or without

Modified: stable/11/include/arpa/telnet.h
==============================================================================
--- stable/11/include/arpa/telnet.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/arpa/telnet.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
+/*
  * Copyright (c) 1983, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/include/arpa/tftp.h
==============================================================================
--- stable/11/include/arpa/tftp.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/arpa/tftp.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
+/*
  * Copyright (c) 1983, 1993
  *	The Regents of the University of California.  All rights reserved.
  *

Modified: stable/11/include/assert.h
==============================================================================
--- stable/11/include/assert.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/assert.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
  * Copyright (c) 1992, 1993
  *	The Regents of the University of California.  All rights reserved.
  * (c) UNIX System Laboratories, Inc.

Modified: stable/11/include/bitstring.h
==============================================================================
--- stable/11/include/bitstring.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/bitstring.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
  * Copyright (c) 2003 Poul-Henning Kamp
  * All rights reserved.
  *

Modified: stable/11/include/complex.h
==============================================================================
--- stable/11/include/complex.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/complex.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
  * Copyright (c) 2001-2011 The FreeBSD Project.
  * All rights reserved.
  *

Modified: stable/11/include/cpio.h
==============================================================================
--- stable/11/include/cpio.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/cpio.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
 /*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
  * Copyright (c) 2002 Mike Barcroft 
  * All rights reserved.
  *

Modified: stable/11/include/ctype.h
==============================================================================
--- stable/11/include/ctype.h	Thu Mar 29 02:25:34 2018	(r331721)
+++ stable/11/include/ctype.h	Thu Mar 29 02:50:57 2018	(r331722)
@@ -1,6 +1,4 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
+/*

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:52:10 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8A3EBF6A348;
 Thu, 29 Mar 2018 02:52:10 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id F0852739A1;
 Thu, 29 Mar 2018 02:52:09 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2T2q71h060453;
 Wed, 28 Mar 2018 19:52:07 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2T2q7D2060452;
 Wed, 28 Mar 2018 19:52:07 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803290252.w2T2q7D2060452@pdx.rh.CN85.dnsmgr.net>
Subject: Re: Mismerge at r330897 in stable/11, Audit report
In-Reply-To: <201803290248.w2T2moNj007390@slippy.cwsent.com>
To: Cy Schubert 
Date: Wed, 28 Mar 2018 19:52:07 -0700 (PDT)
CC: Glen Barber , Eitan Adler ,
 rgrimes@freebsd.org, src-committers ,
 svn-src-all@freebsd.org, svn-src-stable@freebsd.org,
 svn-src-stable-11@freebsd.org,
 FreeBSD Release Engineering Team 
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:52:10 -0000

> In message <20180329022626.GP81123@FreeBSD.org>, Glen Barber writes:
> > 
> > --88pBQ1/6ie/nQzMF
> > Content-Type: text/plain; charset=us-ascii
> > Content-Disposition: inline
> > Content-Transfer-Encoding: quoted-printable
> >
> > On Wed, Mar 28, 2018 at 07:17:20PM -0700, Eitan Adler wrote:
> > > On 28 March 2018 at 19:04, Rodney W. Grimes
> > >  wrote:
> > > >> On 28 March 2018 at 18:35, Rodney W. Grimes
> > > >>  wrote:
> > > >> >> >> Hi!
> > > >> >> >>
> > > >> >> >> This part of the MFC is wrong:
> > > >> >> >>
> > > >> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit=
> > _changes=3D0&r1=3D330897&r2=3D330896&pathrev=3D330897
> > > >> >
> > > >> > Can we try to identify exactly what rXXXXXX that is a merge of?
> > > >> >
> > > >> >> >> Could you please MFC back the other random related changes too? =
> > Some
> > > >> >> >> of them made by cem@.
> > > >> >> >>
> > > >> >> >> On 3/14/18, Eitan Adler  wrote:
> > > >> >> >>> Author: eadler
> > > >> >> >>> Date: Wed Mar 14 03:19:51 2018
> > > >> >> >>> New Revision: 330897
> > > >> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
> > > >> >> >>>
> > > >> >> >>> Log:
> > > >> >> >>>   Partial merge of the SPDX changes
> > > >> >> >>>
> > > >> >> >>>   These changes are incomplete but are making it difficult
> > > >> >> >>>   to determine what other changes can/should be merged.
> > > >> >> >>>
> > > >> >> >>>   No objections from:        pfg
> > > >> >> >>>
> > > >> >> > Am I missing something? If this MFC was supposed to be of the SPDX
> > > >> >> > license tagging, why does it have any functional changes?
> > > >> >> >
> > > >> >> > Especially changes to random(4)?
> > > >> >>
> > > >> >> This was my failure. I only spot checked & compile-checked the diff
> > > >> >> since I expected all changes to be comments/SPDX.
> > > >> >>
> > > >> >> However, I must have gotten carried away and included a few too many
> > > >> >> revisions. Unfortunately some people have already merged fixes to my
> > > >> >> failure and thus this can't be reverted as is without also reverting
> > > >> >> those fixes.
> > > >> >>
> > > >> >> That said, I should do that since this commit message is utterly wr=
> > ong.
> > > >> >
> > > >> > We do not have to revert r330897, with what follows I think
> > > >> > we can easily find the revisions to revert from stable/11.
> > > >> > ...
> > > >>
> > > >> While we don't have to revert it I'd rather do so than have bogus hist=
> > ory.
> > > >
> > > > Reverting wont remove that history, thats a one way deal,
> > > > and I think if we revert the bogus merges with the wrong
> > > > history thats as good as its gona get.
> > > >
> > > >>
> > > >> >From a look it seems the following was also merged:
> > > >> r316370, r317095, r324394, and a few others.
> > > >>
> > > >> Is there a reason you don't want me to revert the changes?
> > > >
> > > > Repository churn is my main concern.
> > > >
> > > > It touches 6000+ files some of which have probably
> > > > been touched since.   A very carefull pre commit
> > > > audit would need to be done.
> > > >
> > > > Then another commit to 6000+ files to put it back,
> > > > also needing a pre-commit audit. (Pretty easy now
> > > > that I have a filter.)
> > >=20
> > > I'm actually using the same filter you pasted above to verify that my
> > > changes are only reverting said files. That said, while I'd prefer to
> > > revert, I'll defer to others if they have a differing opinion.
> > >=20
> > >=20
> > > Note that I won't have access my dev box after tomorrow for about a week.
> > >=20
> >
> > IMHO, if you are going to be away for over a week while we're headed
> > directly into the 11.2 release cycle, revert the change.  What you
> > committed is not what was intended, clearly, and the commit message does
> > not reflect what had happened (as you noted).
> >
> > Any disagreements on this decision should be directed to me specifically
> > in this case.
> 
> Agreed however we must tread carefully.

Agreed to that tread carefully, and I am almost positive that an
attempt to revert would lead to breakage that may be more difficult
to untangle than what we have now.

Let me clone my stable/11 and see what a revert does to the tree.

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:49:19 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 36BB5F69E80;
 Thu, 29 Mar 2018 02:49:19 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id CC484733A1;
 Thu, 29 Mar 2018 02:49:08 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2T2n6AK060413;
 Wed, 28 Mar 2018 19:49:06 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2T2n6Hq060412;
 Wed, 28 Mar 2018 19:49:06 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803290249.w2T2n6Hq060412@pdx.rh.CN85.dnsmgr.net>
Subject: Re: Mismerge at r330897 in stable/11, Audit report
In-Reply-To: <20180329022626.GP81123@FreeBSD.org>
To: Glen Barber 
Date: Wed, 28 Mar 2018 19:49:06 -0700 (PDT)
CC: Eitan Adler , rgrimes@FreeBSD.org,
 src-committers , svn-src-all@FreeBSD.org,
 svn-src-stable@FreeBSD.org, svn-src-stable-11@FreeBSD.org,
 FreeBSD Release Engineering Team 
Reply-To: rgrimes@FreeBSD.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:49:19 -0000

> On Wed, Mar 28, 2018 at 07:17:20PM -0700, Eitan Adler wrote:
> > On 28 March 2018 at 19:04, Rodney W. Grimes
> >  wrote:
> > >> On 28 March 2018 at 18:35, Rodney W. Grimes
> > >>  wrote:
> > >> >> >> Hi!
> > >> >> >>
> > >> >> >> This part of the MFC is wrong:
> > >> >> >>
> > >> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
> > >> >
> > >> > Can we try to identify exactly what rXXXXXX that is a merge of?
> > >> >
> > >> >> >> Could you please MFC back the other random related changes too? Some
> > >> >> >> of them made by cem@.
> > >> >> >>
> > >> >> >> On 3/14/18, Eitan Adler  wrote:
> > >> >> >>> Author: eadler
> > >> >> >>> Date: Wed Mar 14 03:19:51 2018
> > >> >> >>> New Revision: 330897
> > >> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
> > >> >> >>>
> > >> >> >>> Log:
> > >> >> >>>   Partial merge of the SPDX changes
> > >> >> >>>
> > >> >> >>>   These changes are incomplete but are making it difficult
> > >> >> >>>   to determine what other changes can/should be merged.
> > >> >> >>>
> > >> >> >>>   No objections from:        pfg
> > >> >> >>>
> > >> >> > Am I missing something? If this MFC was supposed to be of the SPDX
> > >> >> > license tagging, why does it have any functional changes?
> > >> >> >
> > >> >> > Especially changes to random(4)?
> > >> >>
> > >> >> This was my failure. I only spot checked & compile-checked the diff
> > >> >> since I expected all changes to be comments/SPDX.
> > >> >>
> > >> >> However, I must have gotten carried away and included a few too many
> > >> >> revisions. Unfortunately some people have already merged fixes to my
> > >> >> failure and thus this can't be reverted as is without also reverting
> > >> >> those fixes.
> > >> >>
> > >> >> That said, I should do that since this commit message is utterly wrong.
> > >> >
> > >> > We do not have to revert r330897, with what follows I think
> > >> > we can easily find the revisions to revert from stable/11.
> > >> > ...
> > >>
> > >> While we don't have to revert it I'd rather do so than have bogus history.
> > >
> > > Reverting wont remove that history, thats a one way deal,
> > > and I think if we revert the bogus merges with the wrong
> > > history thats as good as its gona get.
> > >
> > >>
> > >> >From a look it seems the following was also merged:
> > >> r316370, r317095, r324394, and a few others.
> > >>
> > >> Is there a reason you don't want me to revert the changes?
> > >
> > > Repository churn is my main concern.
> > >
> > > It touches 6000+ files some of which have probably
> > > been touched since.   A very carefull pre commit
> > > audit would need to be done.
> > >
> > > Then another commit to 6000+ files to put it back,
> > > also needing a pre-commit audit. (Pretty easy now
> > > that I have a filter.)
> > 
> > I'm actually using the same filter you pasted above to verify that my
> > changes are only reverting said files. That said, while I'd prefer to
> > revert, I'll defer to others if they have a differing opinion.
> > 
> > 
> > Note that I won't have access my dev box after tomorrow for about a week.
> > 
> 
> IMHO, if you are going to be away for over a week while we're headed
> directly into the 11.2 release cycle, revert the change.  What you
> committed is not what was intended, clearly, and the commit message does
> not reflect what had happened (as you noted).
> 
> Any disagreements on this decision should be directed to me specifically
> in this case.

Glen,
	I would rather not revert, as I believe that would cause more
damages as people have already cleaned up some of the mis merge from
this commit.  I am pretty sure a revert would lead to a broken tree.

In Eitans absence I am willing to take responsiblity to untangle
the wrong bits and clean up stable/11.

Ok?

Eitan,
	Are you ok with that as well?

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:49:13 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5FFB3F69E4A;
 Thu, 29 Mar 2018 02:49:13 +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 F2B4D733AE;
 Thu, 29 Mar 2018 02:49:11 +0000 (UTC)
 (envelope-from cy.schubert@cschubert.com)
Received: from spqr.komquats.com ([96.50.22.10]) by shaw.ca with ESMTPA
 id 1NchfvGieYxCT1NcifOML3; Wed, 28 Mar 2018 20:49:10 -0600
X-Authority-Analysis: v=2.3 cv=cav8UELM c=1 sm=1 tr=0
 a=jvE2nwUzI0ECrNeyr98KWA==:117 a=jvE2nwUzI0ECrNeyr98KWA==:17
 a=kj9zAlcOel0A:10 a=v2DPQv5-lfwA:10 a=6I5d2MoRAAAA:8 a=iKhvJSA4AAAA:8
 a=YxBL1-UpAAAA:8 a=vlCS4KWOddv9HgzGylgA:9 a=CjuIK1q_8ugA:10
 a=IjZwj45LgO3ly-622nXo:22 a=odh9cflL3HIXMm4fY7Wr:22 a=Ia-lj3WSrqcvXOmTRaiG:22
Received: from slippy.cwsent.com (slippy8 [10.2.2.6])
 by spqr.komquats.com (Postfix) with ESMTPS id C936FC73;
 Wed, 28 Mar 2018 19:49:06 -0700 (PDT)
Received: from slippy.cwsent.com (localhost [127.0.0.1])
 by slippy.cwsent.com (8.15.2/8.15.2) with ESMTP id w2T2moDl007393;
 Wed, 28 Mar 2018 19:48:50 -0700 (PDT)
 (envelope-from Cy.Schubert@cschubert.com)
Received: from slippy (cy@localhost)
 by slippy.cwsent.com (8.15.2/8.15.2/Submit) with ESMTP id w2T2moNj007390;
 Wed, 28 Mar 2018 19:48:50 -0700 (PDT)
 (envelope-from Cy.Schubert@cschubert.com)
Message-Id: <201803290248.w2T2moNj007390@slippy.cwsent.com>
X-Authentication-Warning: slippy.cwsent.com: cy owned process doing -bs
X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.7.1
Reply-to: Cy Schubert 
From: Cy Schubert 
X-os: FreeBSD
X-Sender: cy@cwsent.com
X-URL: http://www.cschubert.com/
To: Glen Barber 
cc: Eitan Adler , rgrimes@freebsd.org,
 src-committers , svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org,
 FreeBSD Release Engineering Team 
Subject: Re: Mismerge at r330897 in stable/11, Audit report
In-Reply-To: Message from Glen Barber 
 of "Thu, 29 Mar 2018 02:26:26 -0000." <20180329022626.GP81123@FreeBSD.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Date: Wed, 28 Mar 2018 19:48:50 -0700
X-CMAE-Envelope: MS4wfGInpJcjaTpqINLTXFsKW9ybLj4FabckKX+7KCeoXKOFMl7EAXaNyxjEvVDmJJ+x7+NUdMR/kTOlj2/FnbwYffQegmU0ul6AQJFTKLqUSr028fjra/v0
 pskKYQivpPvTNo00vLbSktNuWdsOPw1mtDOvpSuW17XV8/kVWaHWyB7JhX64b8gpSDxwGgiRvzClzswGHshKFc7D3NiA0ChEo4KLHGmjKiVe2a7M6mpi3e16
 YDxxgNc+lroVoc+v7mR1yINuUIfQ7WNymteF25NtBErJ7Cg6ZHc6W16/CKWVs3aUxci0jvznlHW6akX//PDNkGoeWppaxb+nJho7fHvIdgRc/OtgXfXC/x/K
 kP0E3O4xj0TTPSwW7XRsQaT3ErXHh9AXVdBd1TKu0uz/wmM37sJxAIFpmMgRgyS5FEZFmnQ720TxrCqkWyp2l/ytWqSgPIlf3541FwPaTTjkbpMTH2E=
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:49:13 -0000

In message <20180329022626.GP81123@FreeBSD.org>, Glen Barber writes:
> 
> --88pBQ1/6ie/nQzMF
> Content-Type: text/plain; charset=us-ascii
> Content-Disposition: inline
> Content-Transfer-Encoding: quoted-printable
>
> On Wed, Mar 28, 2018 at 07:17:20PM -0700, Eitan Adler wrote:
> > On 28 March 2018 at 19:04, Rodney W. Grimes
> >  wrote:
> > >> On 28 March 2018 at 18:35, Rodney W. Grimes
> > >>  wrote:
> > >> >> >> Hi!
> > >> >> >>
> > >> >> >> This part of the MFC is wrong:
> > >> >> >>
> > >> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit=
> _changes=3D0&r1=3D330897&r2=3D330896&pathrev=3D330897
> > >> >
> > >> > Can we try to identify exactly what rXXXXXX that is a merge of?
> > >> >
> > >> >> >> Could you please MFC back the other random related changes too? =
> Some
> > >> >> >> of them made by cem@.
> > >> >> >>
> > >> >> >> On 3/14/18, Eitan Adler  wrote:
> > >> >> >>> Author: eadler
> > >> >> >>> Date: Wed Mar 14 03:19:51 2018
> > >> >> >>> New Revision: 330897
> > >> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
> > >> >> >>>
> > >> >> >>> Log:
> > >> >> >>>   Partial merge of the SPDX changes
> > >> >> >>>
> > >> >> >>>   These changes are incomplete but are making it difficult
> > >> >> >>>   to determine what other changes can/should be merged.
> > >> >> >>>
> > >> >> >>>   No objections from:        pfg
> > >> >> >>>
> > >> >> > Am I missing something? If this MFC was supposed to be of the SPDX
> > >> >> > license tagging, why does it have any functional changes?
> > >> >> >
> > >> >> > Especially changes to random(4)?
> > >> >>
> > >> >> This was my failure. I only spot checked & compile-checked the diff
> > >> >> since I expected all changes to be comments/SPDX.
> > >> >>
> > >> >> However, I must have gotten carried away and included a few too many
> > >> >> revisions. Unfortunately some people have already merged fixes to my
> > >> >> failure and thus this can't be reverted as is without also reverting
> > >> >> those fixes.
> > >> >>
> > >> >> That said, I should do that since this commit message is utterly wr=
> ong.
> > >> >
> > >> > We do not have to revert r330897, with what follows I think
> > >> > we can easily find the revisions to revert from stable/11.
> > >> > ...
> > >>
> > >> While we don't have to revert it I'd rather do so than have bogus hist=
> ory.
> > >
> > > Reverting wont remove that history, thats a one way deal,
> > > and I think if we revert the bogus merges with the wrong
> > > history thats as good as its gona get.
> > >
> > >>
> > >> >From a look it seems the following was also merged:
> > >> r316370, r317095, r324394, and a few others.
> > >>
> > >> Is there a reason you don't want me to revert the changes?
> > >
> > > Repository churn is my main concern.
> > >
> > > It touches 6000+ files some of which have probably
> > > been touched since.   A very carefull pre commit
> > > audit would need to be done.
> > >
> > > Then another commit to 6000+ files to put it back,
> > > also needing a pre-commit audit. (Pretty easy now
> > > that I have a filter.)
> >=20
> > I'm actually using the same filter you pasted above to verify that my
> > changes are only reverting said files. That said, while I'd prefer to
> > revert, I'll defer to others if they have a differing opinion.
> >=20
> >=20
> > Note that I won't have access my dev box after tomorrow for about a week.
> >=20
>
> IMHO, if you are going to be away for over a week while we're headed
> directly into the 11.2 release cycle, revert the change.  What you
> committed is not what was intended, clearly, and the commit message does
> not reflect what had happened (as you noted).
>
> Any disagreements on this decision should be directed to me specifically
> in this case.

Agreed however we must tread carefully.


-- 
Cheers,
Cy Schubert 
FreeBSD UNIX:     Web:  http://www.FreeBSD.org

	The need of the many outweighs the greed of the few.



From owner-svn-src-all@freebsd.org  Thu Mar 29 02:52:55 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E0411F6A62A
 for ;
 Thu, 29 Mar 2018 02:52:54 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: from mail-yw0-x22b.google.com (mail-yw0-x22b.google.com
 [IPv6:2607:f8b0:4002:c05::22b])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 5557973B88
 for ; Thu, 29 Mar 2018 02:52:54 +0000 (UTC)
 (envelope-from lists@eitanadler.com)
Received: by mail-yw0-x22b.google.com with SMTP id y23so1503889ywy.4
 for ; Wed, 28 Mar 2018 19:52:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=eitanadler.com; s=0xdeadbeef;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=oak0rHEzfiHuX5bS5my1f9PITMPbTS2KEQfIfCK6+xg=;
 b=c3Kg6cLI/p0GRpTlCaoB6yfbildVLXvkFd88OCw2k81uEaKXK3oj6lMx+VUacn4rlo
 IusSgR2x1PqnYdWf8GyLqTe23JOIUambdG1dKmEVNGFmAW4saWZoxC8gRPEBOHGviZgY
 iJrdRydvADi8jgA0Pu/h7Uy3enrbPb9FQuODU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc;
 bh=oak0rHEzfiHuX5bS5my1f9PITMPbTS2KEQfIfCK6+xg=;
 b=GAx42AyY1UiMDE1CqS8sJfVZmfTbZR22DPvfMiU0RPmDzlR704amCr5rORB97XjyPS
 b0CO2Vhi6ZVJ+VDhYmlqKgtKj0O1k/pGjQzrr5EvKfehNoONtH0XndtA7eJxdhLcYuxt
 BakTBrH542wehOX9ReFIHCLdIp/mQtvTQRZGJCPq4hkSVk/g0BUDsk7HXz20xHtNvScs
 ucctHV3Y/+U1y1YGUuhCQI/eIkRzeu56pJXuHo8X/46lTTf41q3UQGhk1aCqFOwS82aZ
 EPg12AEYS/x3e7nucJVdv9oDMIElDiM46ZaI5r8i4O+JXVYkq2Ay/NN9hIhq+8fjdPMe
 eyUw==
X-Gm-Message-State: AElRT7FiokQLbCWbns2AYmwT7d68H/RfCMwsptWBnck4FjWtFO1Y/4zx
 JSscozAek/+KOUf7zHoLIUdN40GbAlFaBBgNwN3DNQ==
X-Google-Smtp-Source: AIpwx49tc0U4eCLNguoy784dl/xkGLdTD0p0qqbEquGRlPZJzlhBzJm9SPB7BE8qfS5ejSgDuOp1zfzcfBtFzVuG10Y=
X-Received: by 10.13.196.70 with SMTP id g67mr3780131ywd.387.1522291973604;
 Wed, 28 Mar 2018 19:52:53 -0700 (PDT)
MIME-Version: 1.0
Sender: lists@eitanadler.com
Received: by 2002:a5b:990:0:0:0:0:0 with HTTP;
 Wed, 28 Mar 2018 19:52:23 -0700 (PDT)
In-Reply-To: <201803290249.w2T2n6Hq060412@pdx.rh.CN85.dnsmgr.net>
References: <20180329022626.GP81123@FreeBSD.org>
 <201803290249.w2T2n6Hq060412@pdx.rh.CN85.dnsmgr.net>
From: Eitan Adler 
Date: Wed, 28 Mar 2018 19:52:23 -0700
X-Google-Sender-Auth: 2Q7aeJa9aWbN6A9xY0dfUyU21eA
Message-ID: 
Subject: Re: Mismerge at r330897 in stable/11, Audit report
To: rgrimes@freebsd.org
Cc: Glen Barber , src-committers ,
 svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org, 
 FreeBSD Release Engineering Team 
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:52:55 -0000

On 28 March 2018 at 19:49, Rodney W. Grimes
 wrote:
>> On Wed, Mar 28, 2018 at 07:17:20PM -0700, Eitan Adler wrote:
>> > On 28 March 2018 at 19:04, Rodney W. Grimes
>> >  wrote:
>> > >> On 28 March 2018 at 18:35, Rodney W. Grimes
>> > >>  wrote:
>> > >> >> >> Hi!
>> > >> >> >>
>> > >> >> >> This part of the MFC is wrong:
>> > >> >> >>
>> > >> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
>> > >> >
>> > >> > Can we try to identify exactly what rXXXXXX that is a merge of?
>> > >> >
>> > >> >> >> Could you please MFC back the other random related changes too? Some
>> > >> >> >> of them made by cem@.
>> > >> >> >>
>> > >> >> >> On 3/14/18, Eitan Adler  wrote:
>> > >> >> >>> Author: eadler
>> > >> >> >>> Date: Wed Mar 14 03:19:51 2018
>> > >> >> >>> New Revision: 330897
>> > >> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
>> > >> >> >>>
>> > >> >> >>> Log:
>> > >> >> >>>   Partial merge of the SPDX changes
>> > >> >> >>>
>> > >> >> >>>   These changes are incomplete but are making it difficult
>> > >> >> >>>   to determine what other changes can/should be merged.
>> > >> >> >>>
>> > >> >> >>>   No objections from:        pfg
>> > >> >> >>>
>> > >> >> > Am I missing something? If this MFC was supposed to be of the SPDX
>> > >> >> > license tagging, why does it have any functional changes?
>> > >> >> >
>> > >> >> > Especially changes to random(4)?
>> > >> >>
>> > >> >> This was my failure. I only spot checked & compile-checked the diff
>> > >> >> since I expected all changes to be comments/SPDX.
>> > >> >>
>> > >> >> However, I must have gotten carried away and included a few too many
>> > >> >> revisions. Unfortunately some people have already merged fixes to my
>> > >> >> failure and thus this can't be reverted as is without also reverting
>> > >> >> those fixes.
>> > >> >>
>> > >> >> That said, I should do that since this commit message is utterly wrong.
>> > >> >
>> > >> > We do not have to revert r330897, with what follows I think
>> > >> > we can easily find the revisions to revert from stable/11.
>> > >> > ...
>> > >>
>> > >> While we don't have to revert it I'd rather do so than have bogus history.
>> > >
>> > > Reverting wont remove that history, thats a one way deal,
>> > > and I think if we revert the bogus merges with the wrong
>> > > history thats as good as its gona get.
>> > >
>> > >>
>> > >> >From a look it seems the following was also merged:
>> > >> r316370, r317095, r324394, and a few others.
>> > >>
>> > >> Is there a reason you don't want me to revert the changes?
>> > >
>> > > Repository churn is my main concern.
>> > >
>> > > It touches 6000+ files some of which have probably
>> > > been touched since.   A very carefull pre commit
>> > > audit would need to be done.
>> > >
>> > > Then another commit to 6000+ files to put it back,
>> > > also needing a pre-commit audit. (Pretty easy now
>> > > that I have a filter.)
>> >
>> > I'm actually using the same filter you pasted above to verify that my
>> > changes are only reverting said files. That said, while I'd prefer to
>> > revert, I'll defer to others if they have a differing opinion.
>> >
>> >
>> > Note that I won't have access my dev box after tomorrow for about a week.
>> >
>>
>> IMHO, if you are going to be away for over a week while we're headed
>> directly into the 11.2 release cycle, revert the change.  What you
>> committed is not what was intended, clearly, and the commit message does
>> not reflect what had happened (as you noted).
>>
>> Any disagreements on this decision should be directed to me specifically
>> in this case.
>
> Glen,
>         I would rather not revert, as I believe that would cause more
> damages as people have already cleaned up some of the mis merge from
> this commit.  I am pretty sure a revert would lead to a broken tree.
>
> In Eitans absence I am willing to take responsiblity to untangle
> the wrong bits and clean up stable/11.
>
> Ok?
>
> Eitan,
>         Are you ok with that as well?

Yes. I also thank everyone who has helped me get out of this mess.

My current action plan: do nothing


-- 
Eitan Adler
Source, Ports, Doc committer
Bugmeister, Ports Security teams

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:54:53 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B980AF6A9C6;
 Thu, 29 Mar 2018 02:54:52 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6772873DE8;
 Thu, 29 Mar 2018 02:54:52 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 48F8813EA7;
 Thu, 29 Mar 2018 02:54:52 +0000 (UTC)
 (envelope-from jeff@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T2sqsR077734;
 Thu, 29 Mar 2018 02:54:52 GMT (envelope-from jeff@FreeBSD.org)
Received: (from jeff@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T2spJB077720;
 Thu, 29 Mar 2018 02:54:51 GMT (envelope-from jeff@FreeBSD.org)
Message-Id: <201803290254.w2T2spJB077720@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jeff set sender to
 jeff@FreeBSD.org using -f
From: Jeff Roberson 
Date: Thu, 29 Mar 2018 02:54:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331723 - in head: share/man/man9 sys/kern sys/sys sys/vm
 usr.bin/cpuset
X-SVN-Group: head
X-SVN-Commit-Author: jeff
X-SVN-Commit-Paths: in head: share/man/man9 sys/kern sys/sys sys/vm
 usr.bin/cpuset
X-SVN-Commit-Revision: 331723
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:54:53 -0000

Author: jeff
Date: Thu Mar 29 02:54:50 2018
New Revision: 331723
URL: https://svnweb.freebsd.org/changeset/base/331723

Log:
  Implement several enhancements to NUMA policies.
  
  Add a new "interleave" allocation policy which stripes pages across
  domains with a stride or width keeping contiguity within a multi-page
  region.
  
  Move the kernel to the dedicated numbered cpuset #2 making it possible
  to assign kernel threads and memory policy separately from user.  This
  also eliminates the need for the complicated interrupt binding code.
  
  Add a sysctl API for viewing and manipulating domainsets.  Refactor some
  of the cpuset_t manipulation code using the generic bitset type so that
  it can be used for both.  This probably belongs in a dedicated subr file.
  
  Attempt to improve the include situation.
  
  Reviewed by:	kib
  Discussed with:	jhb (cpuset parts)
  Tested by:	pho (before review feedback)
  Sponsored by:	Netflix, Dell/EMC Isilon
  Differential Revision:	https://reviews.freebsd.org/D14839

Added:
  head/share/man/man9/domainset.9   (contents, props changed)
Modified:
  head/share/man/man9/Makefile
  head/sys/kern/kern_cpuset.c
  head/sys/kern/kern_kthread.c
  head/sys/sys/_bitset.h
  head/sys/sys/cpuset.h
  head/sys/sys/domainset.h
  head/sys/sys/proc.h
  head/sys/vm/vm_domainset.c
  head/sys/vm/vm_domainset.h
  head/sys/vm/vm_page.c
  head/sys/vm/vnode_pager.c
  head/usr.bin/cpuset/cpuset.1
  head/usr.bin/cpuset/cpuset.c

Modified: head/share/man/man9/Makefile
==============================================================================
--- head/share/man/man9/Makefile	Thu Mar 29 02:50:57 2018	(r331722)
+++ head/share/man/man9/Makefile	Thu Mar 29 02:54:50 2018	(r331723)
@@ -118,6 +118,7 @@ MAN=	accept_filter.9 \
 	disk.9 \
 	dnv.9 \
 	domain.9 \
+	domainset.9 \
 	dpcpu.9 \
 	drbr.9 \
 	driver.9 \

Added: head/share/man/man9/domainset.9
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/man/man9/domainset.9	Thu Mar 29 02:54:50 2018	(r331723)
@@ -0,0 +1,128 @@
+.\" Copyright (c) 2018 Jeffrey Roberson 
+.\" 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$
+.\"
+.Dd March 24, 2018
+.Dt DOMAINSET 9
+.Os
+.Sh NAME
+.Nm domainset(9)
+\(em
+.Nm domainset_create ,
+.Nm sysctl_handle_domainset .
+.Nd domainset functions and operation
+.Sh SYNOPSIS
+.In sys/_domainset.h
+.In sys/domainset.h
+.\"
+.Bd -literal -offset indent
+struct domainset {
+        domainset_t     ds_mask;
+        uint16_t        ds_policy;
+        domainid_t      ds_prefer;
+	...
+};
+.Ed
+.Pp
+.Ft struct domainset *
+.Fn domainset_create "const struct domainset *key"
+.Ft int
+.Fn sysctl_handle_domainset "SYSCTL_HANDLER_ARGS"
+.Sh DESCRIPTION
+The
+.Nm
+API provides memory domain allocation policy for NUMA machines.
+Each
+.Vt domainset
+contains a bitmask of allowed domains, an integer policy, and an optional
+preferred domain.
+Together, these specify a search order for memory allocations as well as
+the ability to restrict threads and objects to a subset of available
+memory domains for system partitioning and resource management.
+.Pp
+Every thread in the system and optionally every
+.Vt vm_object_t ,
+which is used to represent files and other memory sources, has
+a reference to a
+.Vt struct domainset .
+The domainset associated with the object is consulted first and the system
+falls back to the thread policy if none exists.
+.Pp
+The allocation policy has the following possible values:
+.Bl -tag -width "foo"
+.It Dv DOMAINSET_POLICY_ROUNDROBIN
+Memory is allocated from each domain in the mask in a round-robin fashion.
+This distributes bandwidth evenly among available domains.
+This policy can specify a single domain for a fixed allocation.
+.It Dv DOMAINSET_POLICY_FIRSTTOUCH
+Memory is allocated from the node that it is first accessed on.
+Allocation falls back to round-robin if the current domain is not in the
+allowed set or is out of memory.
+This policy optimizes for locality but may give pessimal results if the
+memory is accessed from many CPUs that are not in the local domain.
+.It Dv DOMAINSET_POLICY_PREFER
+Memory is allocated from the node in the
+.Vt prefer
+member.  The preferred node must be set in the allowed mask.
+If the preferred node is out of memory the allocation falls back to 
+round-robin among allowed sets.
+.It Dv DOMAINSET_POLICY_INTERLEAVE
+Memory is allocated in a striped fashion with multiple pages
+allocated to each domain in the set according to the offset within
+the object.
+The strip width is object dependent and may be as large as a
+super-page (2MB on amd64).
+This gives good distribution among memory domains while keeping system
+efficiency higher and is preferential to round-robin for general use.
+.El
+.Pp
+The
+.Fn domainset_create
+function takes a partially filled in domainset as a key and returns a
+valid domainset or NULL.
+It is critical that consumers not use domainsets that have not been
+returned by this function.
+.Vt
+domainset
+is an immutable type that is shared among all matching keys and must
+not be modified after return.
+.Pp
+The
+.Fn sysctl_handle_domainset
+function is provided as a convenience for modifying or viewing domainsets
+that are not accessible via
+.Xr cpuset 2 .
+It is intended for use with 
+.Xr sysctl 9 .
+.Pp
+.Sh SEE ALSO
+.Xr cpuset 1 ,
+.Xr cpuset 2 ,
+.Xr cpuset_setdomain 2 ,
+.Xr bitset 9
+.Sh HISTORY
+.In sys/domainset.h
+first appeared in
+.Fx 12.0 .

Modified: head/sys/kern/kern_cpuset.c
==============================================================================
--- head/sys/kern/kern_cpuset.c	Thu Mar 29 02:50:57 2018	(r331722)
+++ head/sys/kern/kern_cpuset.c	Thu Mar 29 02:54:50 2018	(r331723)
@@ -37,6 +37,8 @@ __FBSDID("$FreeBSD$");
 
 #include 
 #include 
+#include 
+#include 
 #include 
 #include 
 #include 
@@ -63,9 +65,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
-#include 
-#include 
+#include 
 
 #ifdef DDB
 #include 
@@ -112,13 +112,17 @@ __FBSDID("$FreeBSD$");
  * meaning 'curthread'.  It may query available cpus for that tid with a
  * getaffinity call using (CPU_LEVEL_CPUSET, CPU_WHICH_PID, -1, ...).
  */
+
+LIST_HEAD(domainlist, domainset);
+
 static uma_zone_t cpuset_zone;
 static uma_zone_t domainset_zone;
 static struct mtx cpuset_lock;
 static struct setlist cpuset_ids;
 static struct domainlist cpuset_domains;
 static struct unrhdr *cpuset_unr;
-static struct cpuset *cpuset_zero, *cpuset_default;
+static struct cpuset *cpuset_zero, *cpuset_default, *cpuset_kernel;
+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,
@@ -445,6 +449,7 @@ static struct domainset *
 _domainset_create(struct domainset *domain, struct domainlist *freelist)
 {
 	struct domainset *ndomain;
+	int i, j, max;
 
 	mtx_lock_spin(&cpuset_lock);
 	LIST_FOREACH(ndomain, &cpuset_domains, ds_link)
@@ -457,7 +462,10 @@ _domainset_create(struct domainset *domain, struct dom
 	if (ndomain == NULL) {
 		LIST_INSERT_HEAD(&cpuset_domains, domain, ds_link);
 		domain->ds_cnt = DOMAINSET_COUNT(&domain->ds_mask);
-		domain->ds_max = DOMAINSET_FLS(&domain->ds_mask) + 1;
+		max = DOMAINSET_FLS(&domain->ds_mask) + 1;
+		for (i = 0, j = 0; i < max; i++)
+			if (DOMAINSET_ISSET(i, &domain->ds_mask))
+				domain->ds_order[j++] = i;
 	}
 	mtx_unlock_spin(&cpuset_lock);
 	if (ndomain == NULL)
@@ -473,11 +481,24 @@ _domainset_create(struct domainset *domain, struct dom
 /*
  * Create or lookup a domainset based on the key held in 'domain'.
  */
-static struct domainset *
+struct domainset *
 domainset_create(const struct domainset *domain)
 {
 	struct domainset *ndomain;
 
+	/*
+	 * Validate the policy.  It must specify a useable policy number with
+	 * only valid domains.  Preferred must include the preferred domain
+	 * in the mask.
+	 */
+	if (domain->ds_policy <= DOMAINSET_POLICY_INVALID ||
+	    domain->ds_policy > DOMAINSET_POLICY_MAX)
+		return (NULL);
+	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))
+		return (NULL);
 	ndomain = uma_zalloc(domainset_zone, M_WAITOK | M_ZERO);
 	domainset_copy(domain, ndomain);
 	return _domainset_create(ndomain, NULL);
@@ -507,7 +528,7 @@ domainset_notify(void)
 		PROC_UNLOCK(p);
 	}
 	sx_sunlock(&allproc_lock);
-	kernel_object->domain.dr_policy = cpuset_default->cs_domain;
+	kernel_object->domain.dr_policy = cpuset_kernel->cs_domain;
 }
 
 /*
@@ -1128,6 +1149,55 @@ out:
 	return (error);
 }
 
+static int
+bitset_strprint(char *buf, size_t bufsiz, const struct bitset *set, int setlen)
+{
+	size_t bytes;
+	int i, once;
+	char *p;
+
+	once = 0;
+	p = buf;
+	for (i = 0; i < __bitset_words(setlen); i++) {
+		if (once != 0) {
+			if (bufsiz < 1)
+				return (0);
+			*p = ',';
+			p++;
+			bufsiz--;
+		} else
+			once = 1;
+		if (bufsiz < sizeof(__STRING(ULONG_MAX)))
+			return (0);
+		bytes = snprintf(p, bufsiz, "%lx", set->__bits[i]);
+		p += bytes;
+		bufsiz -= bytes;
+	}
+	return (p - buf);
+}
+
+static int
+bitset_strscan(struct bitset *set, int setlen, const char *buf)
+{
+	int i, ret;
+	const char *p;
+
+	BIT_ZERO(setlen, set);
+	p = buf;
+	for (i = 0; i < __bitset_words(setlen); i++) {
+		if (*p == ',') {
+			p++;
+			continue;
+		}
+		ret = sscanf(p, "%lx", &set->__bits[i]);
+		if (ret == 0 || ret == -1)
+			break;
+		while (isxdigit(*p))
+			p++;
+	}
+	return (p - buf);
+}
+
 /*
  * Return a string representing a valid layout for a cpuset_t object.
  * It expects an incoming buffer at least sized as CPUSETBUFSIZ.
@@ -1135,19 +1205,9 @@ out:
 char *
 cpusetobj_strprint(char *buf, const cpuset_t *set)
 {
-	char *tbuf;
-	size_t i, bytesp, bufsiz;
 
-	tbuf = buf;
-	bytesp = 0;
-	bufsiz = CPUSETBUFSIZ;
-
-	for (i = 0; i < (_NCPUWORDS - 1); i++) {
-		bytesp = snprintf(tbuf, bufsiz, "%lx,", set->__bits[i]);
-		bufsiz -= bytesp;
-		tbuf += bytesp;
-	}
-	snprintf(tbuf, bufsiz, "%lx", set->__bits[_NCPUWORDS - 1]);
+	bitset_strprint(buf, CPUSETBUFSIZ, (const struct bitset *)set,
+	    CPU_SETSIZE);
 	return (buf);
 }
 
@@ -1158,37 +1218,71 @@ cpusetobj_strprint(char *buf, const cpuset_t *set)
 int
 cpusetobj_strscan(cpuset_t *set, const char *buf)
 {
-	u_int nwords;
-	int i, ret;
+	char p;
 
 	if (strlen(buf) > CPUSETBUFSIZ - 1)
 		return (-1);
 
-	/* Allow to pass a shorter version of the mask when necessary. */
-	nwords = 1;
-	for (i = 0; buf[i] != '\0'; i++)
-		if (buf[i] == ',')
-			nwords++;
-	if (nwords > _NCPUWORDS)
+	p = buf[bitset_strscan((struct bitset *)set, CPU_SETSIZE, buf)];
+	if (p != '\0')
 		return (-1);
 
-	CPU_ZERO(set);
-	for (i = 0; i < (nwords - 1); i++) {
-		ret = sscanf(buf, "%lx,", &set->__bits[i]);
-		if (ret == 0 || ret == -1)
-			return (-1);
-		buf = strstr(buf, ",");
-		if (buf == NULL)
-			return (-1);
-		buf++;
-	}
-	ret = sscanf(buf, "%lx", &set->__bits[nwords - 1]);
-	if (ret == 0 || ret == -1)
-		return (-1);
 	return (0);
 }
 
 /*
+ * Handle a domainset specifier in the sysctl tree.  A poiner to a pointer to
+ * a domainset is in arg1.  If the user specifies a valid domainset the
+ * pointer is updated.
+ *
+ * Format is:
+ * hex mask word 0,hex mask word 1,...:decimal policy:decimal preferred
+ */
+int
+sysctl_handle_domainset(SYSCTL_HANDLER_ARGS)
+{
+	char buf[DOMAINSETBUFSIZ];
+	struct domainset *dset;
+	struct domainset key;
+	int policy, prefer, error;
+	char *p;
+
+	dset = *(struct domainset **)arg1;
+	error = 0;
+
+	if (dset != NULL) {
+		p = buf + bitset_strprint(buf, DOMAINSETBUFSIZ,
+		    (const struct bitset *)&dset->ds_mask, DOMAINSET_SETSIZE);
+		sprintf(p, ":%d:%d", dset->ds_policy, dset->ds_prefer);
+	} else
+		sprintf(buf, "");
+	error = sysctl_handle_string(oidp, buf, sizeof(buf), req);
+	if (error != 0 || req->newptr == NULL)
+		return (error);
+
+	/*
+	 * Read in and validate the string.
+	 */
+	memset(&key, 0, sizeof(key));
+	p = &buf[bitset_strscan((struct bitset *)&key.ds_mask,
+	    DOMAINSET_SETSIZE, buf)];
+	if (p == buf)
+		return (EINVAL);
+	if (sscanf(p, ":%d:%d", &policy, &prefer) != 2)
+		return (EINVAL);
+	key.ds_policy = policy;
+	key.ds_prefer = prefer;
+
+	/* Domainset_create() validates the policy.*/
+	dset = domainset_create(&key);
+	if (dset == NULL)
+		return (EINVAL);
+	*(struct domainset **)arg1 = dset;
+
+	return (error);
+}
+
+/*
  * Apply an anonymous mask or a domain to a single thread.
  */
 static int
@@ -1239,95 +1333,19 @@ cpuset_setthread(lwpid_t id, cpuset_t *mask)
 int
 cpuset_setithread(lwpid_t id, int cpu)
 {
-	struct setlist cpusets;
-	struct cpuset *nset, *rset;
-	struct cpuset *parent, *old_set;
-	struct thread *td;
-	struct proc *p;
-	cpusetid_t cs_id;
 	cpuset_t mask;
-	int error;
 
-	cpuset_freelist_init(&cpusets, 1);
-	rset = uma_zalloc(cpuset_zone, M_WAITOK | M_ZERO);
-	cs_id = CPUSET_INVALID;
-
 	CPU_ZERO(&mask);
 	if (cpu == NOCPU)
 		CPU_COPY(cpuset_root, &mask);
 	else
 		CPU_SET(cpu, &mask);
-
-	error = cpuset_which(CPU_WHICH_TID, id, &p, &td, &old_set);
-	if (error != 0 || ((cs_id = alloc_unr(cpuset_unr)) == CPUSET_INVALID))
-		goto out;
-
-	/* cpuset_which() returns with PROC_LOCK held. */
-	old_set = td->td_cpuset;
-
-	if (cpu == NOCPU) {
-		nset = LIST_FIRST(&cpusets);
-		LIST_REMOVE(nset, cs_link);
-
-		/*
-		 * roll back to default set. We're not using cpuset_shadow()
-		 * here because we can fail CPU_SUBSET() check. This can happen
-		 * if default set does not contain all CPUs.
-		 */
-		error = _cpuset_create(nset, cpuset_default, &mask, NULL,
-		    CPUSET_INVALID);
-
-		goto applyset;
-	}
-
-	if (old_set->cs_id == 1 || (old_set->cs_id == CPUSET_INVALID &&
-	    old_set->cs_parent->cs_id == 1)) {
-
-		/*
-		 * Current set is either default (1) or
-		 * shadowed version of default set.
-		 *
-		 * Allocate new root set to be able to shadow it
-		 * with any mask.
-		 */
-		error = _cpuset_create(rset, cpuset_zero,
-		    &cpuset_zero->cs_mask, NULL, cs_id);
-		if (error != 0) {
-			PROC_UNLOCK(p);
-			goto out;
-		}
-		rset->cs_flags |= CPU_SET_ROOT;
-		parent = rset;
-		rset = NULL;
-		cs_id = CPUSET_INVALID;
-	} else {
-		/* Assume existing set was already allocated by previous call */
-		parent = old_set;
-		old_set = NULL;
-	}
-
-	error = cpuset_shadow(parent, &nset, &mask, NULL, &cpusets, NULL);
-applyset:
-	if (error == 0) {
-		thread_lock(td);
-		old_set = cpuset_update_thread(td, nset);
-		thread_unlock(td);
-	} else
-		old_set = NULL;
-	PROC_UNLOCK(p);
-	if (old_set != NULL)
-		cpuset_rel(old_set);
-out:
-	cpuset_freelist_free(&cpusets);
-	if (rset != NULL)
-		uma_zfree(cpuset_zone, rset);
-	if (cs_id != CPUSET_INVALID)
-		free_unr(cpuset_unr, cs_id);
-	return (error);
+	return _cpuset_setthread(id, &mask, NULL);
 }
 
-static struct domainset domainset0;
-
+/*
+ * Create the domainset for cpuset 0, 1 and cpuset 2.
+ */
 void
 domainset_zero(void)
 {
@@ -1340,14 +1358,17 @@ domainset_zero(void)
 	DOMAINSET_ZERO(&dset->ds_mask);
 	for (i = 0; i < vm_ndomains; i++)
 		DOMAINSET_SET(i, &dset->ds_mask);
-	dset->ds_policy = DOMAINSET_POLICY_ROUNDROBIN;
+	dset->ds_policy = DOMAINSET_POLICY_FIRSTTOUCH;
 	dset->ds_prefer = -1;
 	curthread->td_domain.dr_policy = _domainset_create(dset, NULL);
-	kernel_object->domain.dr_policy = curthread->td_domain.dr_policy;
+
+	domainset_copy(dset, &domainset2);
+	domainset2.ds_policy = DOMAINSET_POLICY_INTERLEAVE;
+	kernel_object->domain.dr_policy = _domainset_create(&domainset2, NULL);
 }
 
 /*
- * Creates system-wide cpusets and the cpuset for thread0 including two
+ * Creates system-wide cpusets and the cpuset for thread0 including three
  * sets:
  * 
  * 0 - The root set which should represent all valid processors in the
@@ -1357,6 +1378,8 @@ domainset_zero(void)
  * 1 - The default set which all processes are a member of until changed.
  *     This allows an administrator to move all threads off of given cpus to
  *     dedicate them to high priority tasks or save power etc.
+ * 2 - The kernel set which allows restriction and policy to be applied only
+ *     to kernel threads and the kernel_object.
  */
 struct cpuset *
 cpuset_thread0(void)
@@ -1366,12 +1389,12 @@ cpuset_thread0(void)
 	int i;
 
 	cpuset_zone = uma_zcreate("cpuset", sizeof(struct cpuset), NULL, NULL,
-	    NULL, NULL, UMA_ALIGN_PTR, 0);
+	    NULL, NULL, UMA_ALIGN_CACHE, 0);
 	domainset_zone = uma_zcreate("domainset", sizeof(struct domainset),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
+	    NULL, NULL, NULL, NULL, UMA_ALIGN_CACHE, 0);
 
 	/*
-	 * Create the root system set for the whole machine.  Doesn't use
+	 * Create the root system set (0) for the whole machine.  Doesn't use
 	 * cpuset_create() due to NULL parent.
 	 */
 	set = uma_zalloc(cpuset_zone, M_WAITOK | M_ZERO);
@@ -1385,12 +1408,20 @@ cpuset_thread0(void)
 	cpuset_root = &set->cs_mask;
 
 	/*
-	 * Now derive a default, modifiable set from that to give out.
+	 * Now derive a default (1), modifiable set from that to give out.
 	 */
 	set = uma_zalloc(cpuset_zone, M_WAITOK | M_ZERO);
 	error = _cpuset_create(set, cpuset_zero, NULL, NULL, 1);
 	KASSERT(error == 0, ("Error creating default set: %d\n", error));
 	cpuset_default = set;
+	/*
+	 * Create the kernel set (2).
+	 */
+	set = uma_zalloc(cpuset_zone, M_WAITOK | M_ZERO);
+	error = _cpuset_create(set, cpuset_zero, NULL, NULL, 2);
+	KASSERT(error == 0, ("Error creating kernel set: %d\n", error));
+	set->cs_domain = &domainset2;
+	cpuset_kernel = set;
 
 	/*
 	 * Initialize the unit allocator. 0 and 1 are allocated above.
@@ -1407,9 +1438,21 @@ cpuset_thread0(void)
 	CPU_COPY(&all_cpus, &cpuset_domain[0]);
 domains_set:
 
-	return (set);
+	return (cpuset_default);
 }
 
+void
+cpuset_kernthread(struct thread *td)
+{
+	struct cpuset *set;
+
+	thread_lock(td);
+	set = td->td_cpuset;
+	td->td_cpuset = cpuset_ref(cpuset_kernel);
+	thread_unlock(td);
+	cpuset_rel(set);
+}
+
 /*
  * Create a cpuset, which would be cpuset_create() but
  * mark the new 'set' as root.
@@ -2108,7 +2151,7 @@ out:
 }
 
 #ifdef DDB
-BITSET_DEFINE(bitset, 1);
+
 static void
 ddb_display_bitset(const struct bitset *set, int size)
 {
@@ -2164,9 +2207,8 @@ DB_SHOW_COMMAND(domainsets, db_show_domainsets)
 	struct domainset *set;
 
 	LIST_FOREACH(set, &cpuset_domains, ds_link) {
-		db_printf("set=%p policy %d prefer %d cnt %d max %d\n",
-		    set, set->ds_policy, set->ds_prefer, set->ds_cnt,
-		    set->ds_max);
+		db_printf("set=%p policy %d prefer %d cnt %d\n",
+		    set, set->ds_policy, set->ds_prefer, set->ds_cnt);
 		db_printf("  mask =");
 		ddb_display_domainset(&set->ds_mask);
 		db_printf("\n");

Modified: head/sys/kern/kern_kthread.c
==============================================================================
--- head/sys/kern/kern_kthread.c	Thu Mar 29 02:50:57 2018	(r331722)
+++ head/sys/kern/kern_kthread.c	Thu Mar 29 02:54:50 2018	(r331723)
@@ -131,7 +131,7 @@ kproc_create(void (*func)(void *), void *arg,
 	cpu_fork_kthread_handler(td, func, arg);
 
 	/* Avoid inheriting affinity from a random parent. */
-	cpuset_setthread(td->td_tid, cpuset_root);
+	cpuset_kernthread(td);
 	thread_lock(td);
 	TD_SET_CAN_RUN(td);
 	sched_prio(td, PVM);
@@ -309,7 +309,7 @@ kthread_add(void (*func)(void *), void *arg, struct pr
 	tidhash_add(newtd);
 
 	/* Avoid inheriting affinity from a random parent. */
-	cpuset_setthread(newtd->td_tid, cpuset_root);
+	cpuset_kernthread(newtd);
 
 	/* Delay putting it on the run queue until now. */
 	if (!(flags & RFSTOPPED)) {

Modified: head/sys/sys/_bitset.h
==============================================================================
--- head/sys/sys/_bitset.h	Thu Mar 29 02:50:57 2018	(r331722)
+++ head/sys/sys/_bitset.h	Thu Mar 29 02:54:50 2018	(r331723)
@@ -57,4 +57,10 @@ struct t {								\
  */
 #define BITSET_DEFINE_VAR(t)	BITSET_DEFINE(t, 1)
 
+/*
+ * Define a default type that can be used while manually specifying size
+ * to every call.
+ */
+BITSET_DEFINE(bitset, 1);
+
 #endif /* !_SYS__BITSET_H_ */

Modified: head/sys/sys/cpuset.h
==============================================================================
--- head/sys/sys/cpuset.h	Thu Mar 29 02:50:57 2018	(r331722)
+++ head/sys/sys/cpuset.h	Thu Mar 29 02:54:50 2018	(r331723)
@@ -139,6 +139,7 @@ int	cpuset_create_root(struct prison *, struct cpuset 
 int	cpuset_setproc_update_set(struct proc *, struct cpuset *);
 int	cpuset_which(cpuwhich_t, id_t, struct proc **,
 	    struct thread **, struct cpuset **);
+void	cpuset_kernthread(struct thread *);
 
 char	*cpusetobj_strprint(char *, const cpuset_t *);
 int	cpusetobj_strscan(cpuset_t *, const char *);

Modified: head/sys/sys/domainset.h
==============================================================================
--- head/sys/sys/domainset.h	Thu Mar 29 02:50:57 2018	(r331722)
+++ head/sys/sys/domainset.h	Thu Mar 29 02:54:50 2018	(r331723)
@@ -28,8 +28,8 @@
  * $FreeBSD$
  */
 
-#ifndef _SYS_DOMAINSETSET_H_
-#define	_SYS_DOMAINSETSET_H_
+#ifndef _SYS_DOMAINSET_H_
+#define	_SYS_DOMAINSET_H_
 
 #include 
 
@@ -38,8 +38,12 @@
 #define	_NDOMAINSETBITS			_BITSET_BITS
 #define	_NDOMAINSETWORDS		__bitset_words(DOMAINSET_SETSIZE)
 
-#define	DOMAINSETSETBUFSIZ	((2 + sizeof(long) * 2) * _NDOMAINSETWORDS)
+#define	DOMAINSETBUFSIZ							\
+	    (((2 + sizeof(long) * 2) * _NDOMAINSETWORDS) +		\
+	    sizeof("::") + sizeof(__XSTRING(DOMAINSET_POLICY_MAX)) +	\
+	    sizeof(__XSTRING(MAXMEMDOM)))
 
+
 #define	DOMAINSET_CLR(n, p)		BIT_CLR(DOMAINSET_SETSIZE, n, p)
 #define	DOMAINSET_COPY(f, t)		BIT_COPY(DOMAINSET_SETSIZE, f, t)
 #define	DOMAINSET_ISSET(n, p)		BIT_ISSET(DOMAINSET_SETSIZE, n, p)
@@ -73,23 +77,37 @@
 #define	DOMAINSET_POLICY_ROUNDROBIN	1
 #define	DOMAINSET_POLICY_FIRSTTOUCH	2
 #define	DOMAINSET_POLICY_PREFER		3
-#define	DOMAINSET_POLICY_MAX		DOMAINSET_POLICY_PREFER
+#define	DOMAINSET_POLICY_INTERLEAVE	4
+#define	DOMAINSET_POLICY_MAX		DOMAINSET_POLICY_INTERLEAVE
 
 #ifdef _KERNEL
-#include 
-LIST_HEAD(domainlist, domainset);
+#if MAXMEMDOM < 256
+typedef	uint8_t		domainid_t;
+#else
+typedef uint16_t	domainid_t;
+#endif
 
 struct domainset {
 	LIST_ENTRY(domainset)	ds_link;
 	domainset_t	ds_mask;	/* allowed domains. */
 	uint16_t	ds_policy;	/* Policy type. */
-	int16_t		ds_prefer;	/* Preferred domain or -1. */
-	uint16_t	ds_cnt;		/* popcnt from above. */
-	uint16_t	ds_max;		/* Maximum domain in set. */
+	domainid_t	ds_prefer;	/* Preferred domain or -1. */
+	domainid_t	ds_cnt;		/* popcnt from above. */
+	domainid_t	ds_order[MAXMEMDOM];  /* nth domain table. */
 };
 
 void domainset_zero(void);
 
+/*
+ * Add a domainset to the system based on a key initializing policy, prefer,
+ * and mask.  Do not create and directly use domainset structures.  The
+ * returned value will not match the key pointer.
+ */
+struct domainset *domainset_create(const struct domainset *);
+#ifdef _SYS_SYSCTL_H_
+int sysctl_handle_domainset(SYSCTL_HANDLER_ARGS);
+#endif
+
 #else
 __BEGIN_DECLS
 int	cpuset_getdomain(cpulevel_t, cpuwhich_t, id_t, size_t, domainset_t *,
@@ -99,4 +117,4 @@ int	cpuset_setdomain(cpulevel_t, cpuwhich_t, id_t, siz
 
 __END_DECLS
 #endif
-#endif /* !_SYS_DOMAINSETSET_H_ */
+#endif /* !_SYS_DOMAINSET_H_ */

Modified: head/sys/sys/proc.h
==============================================================================
--- head/sys/sys/proc.h	Thu Mar 29 02:50:57 2018	(r331722)
+++ head/sys/sys/proc.h	Thu Mar 29 02:54:50 2018	(r331723)
@@ -67,7 +67,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 
 #include 		/* Machine-dependent proc substruct. */
 #ifdef _KERNEL

Modified: head/sys/vm/vm_domainset.c
==============================================================================
--- head/sys/vm/vm_domainset.c	Thu Mar 29 02:50:57 2018	(r331722)
+++ head/sys/vm/vm_domainset.c	Thu Mar 29 02:54:50 2018	(r331723)
@@ -56,11 +56,14 @@ __FBSDID("$FreeBSD$");
  * assumed that most allocations are successful.
  */
 
+static int vm_domainset_default_stride = 64;
+
 /*
  * Determine which policy is to be used for this allocation.
  */
 static void
-vm_domainset_iter_domain(struct vm_domainset_iter *di, struct vm_object *obj)
+vm_domainset_iter_init(struct vm_domainset_iter *di, struct vm_object *obj,
+    vm_pindex_t pindex)
 {
 	struct domainset *domain;
 
@@ -76,18 +79,33 @@ vm_domainset_iter_domain(struct vm_domainset_iter *di,
 		di->di_domain = curthread->td_domain.dr_policy;
 		di->di_iter = &curthread->td_domain.dr_iterator;
 	}
+	di->di_policy = di->di_domain->ds_policy;
+	if (di->di_policy == DOMAINSET_POLICY_INTERLEAVE) {
+		if (vm_object_reserv(obj)) {
+			/*
+			 * Color the pindex so we end up on the correct
+			 * reservation boundary.
+			 */
+			pindex += obj->pg_color;
+			pindex >>= VM_LEVEL_0_ORDER;
+		} else
+			pindex /= vm_domainset_default_stride;
+		/*
+		 * Offset pindex so the first page of each object does
+		 * not end up in domain 0.
+		 */
+		if (obj != NULL)
+			pindex += (((uintptr_t)obj) / sizeof(*obj));
+		di->di_offset = pindex;
+	}
 }
 
 static void
 vm_domainset_iter_rr(struct vm_domainset_iter *di, int *domain)
 {
-	int d;
 
-	d = *di->di_iter;
-	do {
-		d = (d + 1) % di->di_domain->ds_max;
-	} while (!DOMAINSET_ISSET(d, &di->di_domain->ds_mask));
-	*di->di_iter = *domain = d;
+	*domain = di->di_domain->ds_order[
+	    ++(*di->di_iter) % di->di_domain->ds_cnt];
 }
 
 static void
@@ -95,27 +113,38 @@ vm_domainset_iter_prefer(struct vm_domainset_iter *di,
 {
 	int d;
 
-	d = *di->di_iter;
 	do {
-		d = (d + 1) % di->di_domain->ds_max;
-	} while (!DOMAINSET_ISSET(d, &di->di_domain->ds_mask) || 
-	    d == di->di_domain->ds_prefer);
-	*di->di_iter = *domain = d;
+		d = di->di_domain->ds_order[
+		    ++(*di->di_iter) % di->di_domain->ds_cnt];
+	} while (d == di->di_domain->ds_prefer);
+	*domain = d;
 }
 
 static void
+vm_domainset_iter_interleave(struct vm_domainset_iter *di, int *domain)
+{
+	int d;
+
+	d = di->di_offset % di->di_domain->ds_cnt;
+	*di->di_iter = d;
+	*domain = di->di_domain->ds_order[d];
+}
+
+static void
 vm_domainset_iter_next(struct vm_domainset_iter *di, int *domain)
 {
 
 	KASSERT(di->di_n > 0,
 	    ("vm_domainset_iter_first: Invalid n %d", di->di_n));
-	switch (di->di_domain->ds_policy) {
+	switch (di->di_policy) {
 	case DOMAINSET_POLICY_FIRSTTOUCH:
 		/*
 		 * To prevent impossible allocations we convert an invalid
 		 * first-touch to round-robin.
 		 */
 		/* FALLTHROUGH */
+	case DOMAINSET_POLICY_INTERLEAVE:
+		/* FALLTHROUGH */
 	case DOMAINSET_POLICY_ROUNDROBIN:
 		vm_domainset_iter_rr(di, domain);
 		break;
@@ -124,7 +153,7 @@ vm_domainset_iter_next(struct vm_domainset_iter *di, i
 		break;
 	default:
 		panic("vm_domainset_iter_first: Unknown policy %d",
-		    di->di_domain->ds_policy);
+		    di->di_policy);
 	}
 	KASSERT(*domain < vm_ndomains,
 	    ("vm_domainset_iter_next: Invalid domain %d", *domain));
@@ -134,11 +163,15 @@ static void
 vm_domainset_iter_first(struct vm_domainset_iter *di, int *domain)
 {
 
-	switch (di->di_domain->ds_policy) {
+	switch (di->di_policy) {
 	case DOMAINSET_POLICY_FIRSTTOUCH:
 		*domain = PCPU_GET(domain);
 		if (DOMAINSET_ISSET(*domain, &di->di_domain->ds_mask)) {
-			di->di_n = 1;
+			/*
+			 * Add an extra iteration because we will visit the
+			 * current domain a second time in the rr iterator.
+			 */
+			di->di_n = di->di_domain->ds_cnt + 1;
 			break;
 		}
 		/*
@@ -154,9 +187,13 @@ vm_domainset_iter_first(struct vm_domainset_iter *di, 
 		*domain = di->di_domain->ds_prefer;
 		di->di_n = di->di_domain->ds_cnt;
 		break;
+	case DOMAINSET_POLICY_INTERLEAVE:
+		vm_domainset_iter_interleave(di, domain);
+		di->di_n = di->di_domain->ds_cnt;
+		break;
 	default:
 		panic("vm_domainset_iter_first: Unknown policy %d",
-		    di->di_domain->ds_policy);
+		    di->di_policy);
 	}
 	KASSERT(di->di_n > 0,
 	    ("vm_domainset_iter_first: Invalid n %d", di->di_n));
@@ -166,10 +203,10 @@ vm_domainset_iter_first(struct vm_domainset_iter *di, 
 
 void
 vm_domainset_iter_page_init(struct vm_domainset_iter *di, struct vm_object *obj,
-    int *domain, int *req)
+    vm_pindex_t pindex, int *domain, int *req)
 {
 
-	vm_domainset_iter_domain(di, obj);
+	vm_domainset_iter_init(di, obj, pindex);
 	di->di_flags = *req;
 	*req = (di->di_flags & ~(VM_ALLOC_WAITOK | VM_ALLOC_WAITFAIL)) |
 	    VM_ALLOC_NOWAIT;
@@ -213,7 +250,9 @@ vm_domainset_iter_malloc_init(struct vm_domainset_iter
     struct vm_object *obj, int *domain, int *flags)
 {
 
-	vm_domainset_iter_domain(di, obj);
+	vm_domainset_iter_init(di, obj, 0);
+	if (di->di_policy == DOMAINSET_POLICY_INTERLEAVE)
+		di->di_policy = DOMAINSET_POLICY_ROUNDROBIN;
 	di->di_flags = *flags;
 	*flags = (di->di_flags & ~M_WAITOK) | M_NOWAIT;
 	vm_domainset_iter_first(di, domain);
@@ -253,7 +292,7 @@ vm_domainset_iter_page(struct vm_domainset_iter *di, i
 
 void
 vm_domainset_iter_page_init(struct vm_domainset_iter *di,
-            struct vm_object *obj, int *domain, int *flags)
+            struct vm_object *obj, vm_pindex_t pindex, int *domain, int *flags)
 {
 
 	*domain = 0;

Modified: head/sys/vm/vm_domainset.h
==============================================================================
--- head/sys/vm/vm_domainset.h	Thu Mar 29 02:50:57 2018	(r331722)
+++ head/sys/vm/vm_domainset.h	Thu Mar 29 02:54:50 2018	(r331723)
@@ -33,13 +33,15 @@
 struct vm_domainset_iter {
 	struct domainset	*di_domain;
 	int			*di_iter;
+	vm_pindex_t		di_offset;
+	int			di_policy;
 	int			di_flags;
 	int			di_n;
 };
 
 int	vm_domainset_iter_page(struct vm_domainset_iter *, int *, int *);
 void	vm_domainset_iter_page_init(struct vm_domainset_iter *,
-	    struct vm_object *, int *, int *);
+	    struct vm_object *, vm_pindex_t, int *, int *);
 int	vm_domainset_iter_malloc(struct vm_domainset_iter *, int *, int *);
 void	vm_domainset_iter_malloc_init(struct vm_domainset_iter *,
 	    struct vm_object *, int *, int *);

Modified: head/sys/vm/vm_page.c
==============================================================================
--- head/sys/vm/vm_page.c	Thu Mar 29 02:50:57 2018	(r331722)
+++ head/sys/vm/vm_page.c	Thu Mar 29 02:54:50 2018	(r331723)
@@ -1660,7 +1660,7 @@ vm_page_alloc_after(vm_object_t object, vm_pindex_t pi
 	vm_page_t m;
 	int domain;
 
-	vm_domainset_iter_page_init(&di, object, &domain, &req);
+	vm_domainset_iter_page_init(&di, object, pindex, &domain, &req);
 	do {
 		m = vm_page_alloc_domain_after(object, pindex, domain, req,
 		    mpred);
@@ -1893,7 +1893,7 @@ vm_page_alloc_contig(vm_object_t object, vm_pindex_t p
 	vm_page_t m;
 	int domain;
 
-	vm_domainset_iter_page_init(&di, object, &domain, &req);
+	vm_domainset_iter_page_init(&di, object, pindex, &domain, &req);
 	do {
 		m = vm_page_alloc_contig_domain(object, pindex, domain, req,
 		    npages, low, high, alignment, boundary, memattr);
@@ -2092,7 +2092,7 @@ vm_page_alloc_freelist(int freelist, int req)
 	vm_page_t m;
 	int domain;
 
-	vm_domainset_iter_page_init(&di, kernel_object, &domain, &req);
+	vm_domainset_iter_page_init(&di, NULL, 0, &domain, &req);
 	do {
 		m = vm_page_alloc_freelist_domain(domain, freelist, req);
 		if (m != NULL)
@@ -2691,7 +2691,7 @@ vm_page_reclaim_contig(int req, u_long npages, vm_padd
 	int domain;
 	bool ret;
 
-	vm_domainset_iter_page_init(&di, kernel_object, &domain, &req);
+	vm_domainset_iter_page_init(&di, NULL, 0, &domain, &req);
 	do {
 		ret = vm_page_reclaim_contig_domain(domain, req, npages, low,
 		    high, alignment, boundary);

Modified: head/sys/vm/vnode_pager.c
==============================================================================
--- head/sys/vm/vnode_pager.c	Thu Mar 29 02:50:57 2018	(r331722)
+++ head/sys/vm/vnode_pager.c	Thu Mar 29 02:54:50 2018	(r331723)
@@ -59,6 +59,7 @@ __FBSDID("$FreeBSD$");
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -69,6 +70,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:57:45 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id ACEA7F6ADE1;
 Thu, 29 Mar 2018 02:57:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "freefall.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 5BEF874123;
 Thu, 29 Mar 2018 02:57:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by freefall.freebsd.org (Postfix) with ESMTPS id EDBEC1BCBC;
 Thu, 29 Mar 2018 02:57:44 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Date: Thu, 29 Mar 2018 02:57:42 +0000
From: Glen Barber 
To: rgrimes@FreeBSD.org
Cc: Eitan Adler ,
 src-committers ,
 svn-src-all@FreeBSD.org, svn-src-stable@FreeBSD.org,
 svn-src-stable-11@FreeBSD.org,
 FreeBSD Release Engineering Team 
Subject: Re: Mismerge at r330897 in stable/11, Audit report
Message-ID: <20180329025742.GQ81123@FreeBSD.org>
References: <20180329022626.GP81123@FreeBSD.org>
 <201803290249.w2T2n6Hq060412@pdx.rh.CN85.dnsmgr.net>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature"; boundary="3mUD2hqWbnBptYHy"
Content-Disposition: inline
In-Reply-To: <201803290249.w2T2n6Hq060412@pdx.rh.CN85.dnsmgr.net>
User-Agent: Mutt/1.9.1 (2017-09-22)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:57:45 -0000


--3mUD2hqWbnBptYHy
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Mar 28, 2018 at 07:49:06PM -0700, Rodney W. Grimes wrote:
> > On Wed, Mar 28, 2018 at 07:17:20PM -0700, Eitan Adler wrote:
> > > On 28 March 2018 at 19:04, Rodney W. Grimes
> > >  wrote:
> > > >> On 28 March 2018 at 18:35, Rodney W. Grimes
> > > >>  wrote:
> > > >> >> >> Hi!
> > > >> >> >>
> > > >> >> >> This part of the MFC is wrong:
> > > >> >> >>
> > > >> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?l=
imit_changes=3D0&r1=3D330897&r2=3D330896&pathrev=3D330897
> > > >> >
> > > >> > Can we try to identify exactly what rXXXXXX that is a merge of?
> > > >> >
> > > >> >> >> Could you please MFC back the other random related changes t=
oo? Some
> > > >> >> >> of them made by cem@.
> > > >> >> >>
> > > >> >> >> On 3/14/18, Eitan Adler  wrote:
> > > >> >> >>> Author: eadler
> > > >> >> >>> Date: Wed Mar 14 03:19:51 2018
> > > >> >> >>> New Revision: 330897
> > > >> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
> > > >> >> >>>
> > > >> >> >>> Log:
> > > >> >> >>>   Partial merge of the SPDX changes
> > > >> >> >>>
> > > >> >> >>>   These changes are incomplete but are making it difficult
> > > >> >> >>>   to determine what other changes can/should be merged.
> > > >> >> >>>
> > > >> >> >>>   No objections from:        pfg
> > > >> >> >>>
> > > >> >> > Am I missing something? If this MFC was supposed to be of the=
 SPDX
> > > >> >> > license tagging, why does it have any functional changes?
> > > >> >> >
> > > >> >> > Especially changes to random(4)?
> > > >> >>
> > > >> >> This was my failure. I only spot checked & compile-checked the =
diff
> > > >> >> since I expected all changes to be comments/SPDX.
> > > >> >>
> > > >> >> However, I must have gotten carried away and included a few too=
 many
> > > >> >> revisions. Unfortunately some people have already merged fixes =
to my
> > > >> >> failure and thus this can't be reverted as is without also reve=
rting
> > > >> >> those fixes.
> > > >> >>
> > > >> >> That said, I should do that since this commit message is utterl=
y wrong.
> > > >> >
> > > >> > We do not have to revert r330897, with what follows I think
> > > >> > we can easily find the revisions to revert from stable/11.
> > > >> > ...
> > > >>
> > > >> While we don't have to revert it I'd rather do so than have bogus =
history.
> > > >
> > > > Reverting wont remove that history, thats a one way deal,
> > > > and I think if we revert the bogus merges with the wrong
> > > > history thats as good as its gona get.
> > > >
> > > >>
> > > >> >From a look it seems the following was also merged:
> > > >> r316370, r317095, r324394, and a few others.
> > > >>
> > > >> Is there a reason you don't want me to revert the changes?
> > > >
> > > > Repository churn is my main concern.
> > > >
> > > > It touches 6000+ files some of which have probably
> > > > been touched since.   A very carefull pre commit
> > > > audit would need to be done.
> > > >
> > > > Then another commit to 6000+ files to put it back,
> > > > also needing a pre-commit audit. (Pretty easy now
> > > > that I have a filter.)
> > >=20
> > > I'm actually using the same filter you pasted above to verify that my
> > > changes are only reverting said files. That said, while I'd prefer to
> > > revert, I'll defer to others if they have a differing opinion.
> > >=20
> > >=20
> > > Note that I won't have access my dev box after tomorrow for about a w=
eek.
> > >=20
> >=20
> > IMHO, if you are going to be away for over a week while we're headed
> > directly into the 11.2 release cycle, revert the change.  What you
> > committed is not what was intended, clearly, and the commit message does
> > not reflect what had happened (as you noted).
> >=20
> > Any disagreements on this decision should be directed to me specifically
> > in this case.
>=20
> Glen,
> 	I would rather not revert, as I believe that would cause more
> damages as people have already cleaned up some of the mis merge from
> this commit.  I am pretty sure a revert would lead to a broken tree.
>=20
> In Eitans absence I am willing to take responsiblity to untangle
> the wrong bits and clean up stable/11.
>=20
> Ok?
>=20

I disagree with this approach.  A mishandled merge which as in this case
contains extraneous changes limit our ability to properly audit the
branch.

My strong feeling is that if "too many" revisions were merged, we should
not piecemeal break out what should not have been included.  We should,
instead, revert the offending commit as an "oops", redo the intended
merge, and then in a separate commit re-apply the bits from the
offending merge in a completely separate commit.

While this may be perceived as churn against the tree, it keeps tracking
what happened much easier to manage, especially if we were to have to
rely on mergeinfo.

> Eitan,
> 	Are you ok with that as well?
>=20

Glen


--3mUD2hqWbnBptYHy
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEjRJAPC5sqwhs9k2jAxRYpUeP4pMFAlq8ViYACgkQAxRYpUeP
4pMKvA/+MJv2LFCULUtMLBWkffHxkn0Y/3CiNkObu/6WaAf2gdO4W5QyDn+RlTL8
Sz1mQOZdlym2wdlPjQo1+OpdSO5SwgIx8M2SIMRj1vBb8JrnXUkzNM5zfG4CXiQm
8IqLzpnQ94yzv9NFrM5NIWIq96mlE5A2j/hfHus+BjV7bczEFAEGKAcZ8YN2q0wQ
oPINIra32YsHtorJ1UvLe9RSqlAVLJ8SFjhU+em20MTF3cFLk1/vpgFgjLz1rV3X
k2bKalkCgiOycnyVStV2yghrxj0WP3/7P+RlMzaFWhUmu6/Apxsm+FOZT7TPxHBE
2/1uXQs8HGuQijbF1/qCiP+LTCfzAeLjfPN4vDaomh7YtXfAFBDSZnA9Nc1Lfv1N
b0avZc+j4WDc/gZ8gdkRQcI6uhOYY+cMg4eYEj/tq8qqcriiWjmIrheCuwhbEEX8
cEkSwPQ2tTYA38o0HYAw3ccdssrMRMlo6CXDiOVltMVz2Mjns99Nq1vB6v6i7rGr
V6XJTz+lsh8e9GJLqCCtsetBpi1cnCzUV0DJ4dqCAluk2ySrJlRy18lpqTHyDLFd
p/MbpUwn/0lfmA5VgnKmUfpop6OXoymyRM0u7OMJA5bI2z0NYMJnWDyK1MEqL7Uq
vXJ94ISb11x+ai2702E89EdVwnmKLhx1koK86vbwPU8aJ80z5rI=
=bTQ0
-----END PGP SIGNATURE-----

--3mUD2hqWbnBptYHy--

From owner-svn-src-all@freebsd.org  Thu Mar 29 02:57:30 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B32BF6ADB4;
 Thu, 29 Mar 2018 02:57:30 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id ABCA574032;
 Thu, 29 Mar 2018 02:57:29 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2T2vRBt060503;
 Wed, 28 Mar 2018 19:57:27 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2T2vR3v060502;
 Wed, 28 Mar 2018 19:57:27 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803290257.w2T2vR3v060502@pdx.rh.CN85.dnsmgr.net>
Subject: Re: Mismerge at r330897 in stable/11, Audit report
In-Reply-To: 
To: Eitan Adler 
Date: Wed, 28 Mar 2018 19:57:26 -0700 (PDT)
CC: rgrimes@freebsd.org, Glen Barber ,
 src-committers , svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org,
 FreeBSD Release Engineering Team 
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 02:57:30 -0000

[ Charset UTF-8 unsupported, converting... ]
> On 28 March 2018 at 19:49, Rodney W. Grimes
>  wrote:
> >> On Wed, Mar 28, 2018 at 07:17:20PM -0700, Eitan Adler wrote:
> >> > On 28 March 2018 at 19:04, Rodney W. Grimes
> >> >  wrote:
> >> > >> On 28 March 2018 at 18:35, Rodney W. Grimes
> >> > >>  wrote:
> >> > >> >> >> Hi!
> >> > >> >> >>
> >> > >> >> >> This part of the MFC is wrong:
> >> > >> >> >>
> >> > >> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
> >> > >> >
> >> > >> > Can we try to identify exactly what rXXXXXX that is a merge of?
> >> > >> >
> >> > >> >> >> Could you please MFC back the other random related changes too? Some
> >> > >> >> >> of them made by cem@.
> >> > >> >> >>
> >> > >> >> >> On 3/14/18, Eitan Adler  wrote:
> >> > >> >> >>> Author: eadler
> >> > >> >> >>> Date: Wed Mar 14 03:19:51 2018
> >> > >> >> >>> New Revision: 330897
> >> > >> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
> >> > >> >> >>>
> >> > >> >> >>> Log:
> >> > >> >> >>>   Partial merge of the SPDX changes
> >> > >> >> >>>
> >> > >> >> >>>   These changes are incomplete but are making it difficult
> >> > >> >> >>>   to determine what other changes can/should be merged.
> >> > >> >> >>>
> >> > >> >> >>>   No objections from:        pfg
> >> > >> >> >>>
> >> > >> >> > Am I missing something? If this MFC was supposed to be of the SPDX
> >> > >> >> > license tagging, why does it have any functional changes?
> >> > >> >> >
> >> > >> >> > Especially changes to random(4)?
> >> > >> >>
> >> > >> >> This was my failure. I only spot checked & compile-checked the diff
> >> > >> >> since I expected all changes to be comments/SPDX.
> >> > >> >>
> >> > >> >> However, I must have gotten carried away and included a few too many
> >> > >> >> revisions. Unfortunately some people have already merged fixes to my
> >> > >> >> failure and thus this can't be reverted as is without also reverting
> >> > >> >> those fixes.
> >> > >> >>
> >> > >> >> That said, I should do that since this commit message is utterly wrong.
> >> > >> >
> >> > >> > We do not have to revert r330897, with what follows I think
> >> > >> > we can easily find the revisions to revert from stable/11.
> >> > >> > ...
> >> > >>
> >> > >> While we don't have to revert it I'd rather do so than have bogus history.
> >> > >
> >> > > Reverting wont remove that history, thats a one way deal,
> >> > > and I think if we revert the bogus merges with the wrong
> >> > > history thats as good as its gona get.
> >> > >
> >> > >>
> >> > >> >From a look it seems the following was also merged:
> >> > >> r316370, r317095, r324394, and a few others.
> >> > >>
> >> > >> Is there a reason you don't want me to revert the changes?
> >> > >
> >> > > Repository churn is my main concern.
> >> > >
> >> > > It touches 6000+ files some of which have probably
> >> > > been touched since.   A very carefull pre commit
> >> > > audit would need to be done.
> >> > >
> >> > > Then another commit to 6000+ files to put it back,
> >> > > also needing a pre-commit audit. (Pretty easy now
> >> > > that I have a filter.)
> >> >
> >> > I'm actually using the same filter you pasted above to verify that my
> >> > changes are only reverting said files. That said, while I'd prefer to
> >> > revert, I'll defer to others if they have a differing opinion.
> >> >
> >> >
> >> > Note that I won't have access my dev box after tomorrow for about a week.
> >> >
> >>
> >> IMHO, if you are going to be away for over a week while we're headed
> >> directly into the 11.2 release cycle, revert the change.  What you
> >> committed is not what was intended, clearly, and the commit message does
> >> not reflect what had happened (as you noted).
> >>
> >> Any disagreements on this decision should be directed to me specifically
> >> in this case.
> >
> > Glen,
> >         I would rather not revert, as I believe that would cause more
> > damages as people have already cleaned up some of the mis merge from
> > this commit.  I am pretty sure a revert would lead to a broken tree.
> >
> > In Eitans absence I am willing to take responsiblity to untangle
> > the wrong bits and clean up stable/11.
> >
> > Ok?
> >
> > Eitan,
> >         Are you ok with that as well?
> 
> Yes. I also thank everyone who has helped me get out of this mess.
> 
> My current action plan: do nothing

Well, you just reverted it before this discussion came to a
concensus on that.   Not sure what to do now.

I guess we wait to see whats broken.

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Thu Mar 29 03:09:26 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9B965F6C273;
 Thu, 29 Mar 2018 03:09:26 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "freefall.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 47FB374EBA;
 Thu, 29 Mar 2018 03:09:26 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by freefall.freebsd.org (Postfix) with ESMTPS id F13A51C624;
 Thu, 29 Mar 2018 03:09:25 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Date: Thu, 29 Mar 2018 03:09:24 +0000
From: Glen Barber 
To: Eitan Adler 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: Re: svn commit: r331722 - in stable/11: bin/cat bin/chflags
 bin/chmod bin/cp bin/date bin/dd bin/df bin/domainname bin/echo bin/ed
 bin/hostname bin/kill bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bi...
Message-ID: <20180329030924.GR81123@FreeBSD.org>
References: <201803290251.w2T2p4h2074518@repo.freebsd.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature"; boundary="WTbgq2twYBxfsYA6"
Content-Disposition: inline
In-Reply-To: <201803290251.w2T2p4h2074518@repo.freebsd.org>
User-Agent: Mutt/1.9.1 (2017-09-22)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 03:09:26 -0000


--WTbgq2twYBxfsYA6
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Mar 29, 2018 at 02:51:04AM +0000, Eitan Adler wrote:
> Author: eadler
> Date: Thu Mar 29 02:50:57 2018
> New Revision: 331722
> URL: https://svnweb.freebsd.org/changeset/base/331722
>=20
> Log:
>   Revert r330897:
>  =20
>   This was intended to be a non-functional change. It wasn't. The commit
>   message was thus wrong. In addition it broke arm, and merged crypto
>   related code.
>  =20
>   Revert with prejudice.
>  =20
>   This revert skips files touched in r316370 since that commit was since
>   MFCed. This revert also skips files that require $FreeBSD$ property
>   changes.
>  =20
>   Thank you to those who helped me get out of this mess including but not
>   limited to gonzo, kevans, rgrimes.
>  =20
>   Requested by: gjb (re)
>=20

I did *not* request this, especially not on re@'s behalf.  I provided
input on what I felt was the correct way to proceed in this situation,
where a number of commits that were not related to the intent were
included.  There is a difference.

Glen


--WTbgq2twYBxfsYA6
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEjRJAPC5sqwhs9k2jAxRYpUeP4pMFAlq8WOQACgkQAxRYpUeP
4pN0sw/9GtOMozl/91FWCWSsNgevti3U3qdDZzbvsFJcG4W7vZTDXRHyTGgwW9o+
nKmnzsBVy1hFz3BVu/7Zl8FR/Xx6dbBNjvqHiQq2HkiMJ9u/LEbG0C0Ickk3D3HY
qOreaoKyNipLLxoKHlYmlvVOitqARerDWFiYM5YOYJRUx2pVhPDCoxVk53JO0hvd
Xg6TiVKCS/Q4xYEQ77J9os3kgNU6arGdNn0R3+WJuBUwfu7eJ3N4bD21ZWPSyzX/
97AkGntYoe6lheKa1gy2E45Ai60zGkk7/m4qD94bFmoYv97QLBsmrFJn82051JsR
lyfDWjHFVWZOrvHc+OZMospGgDhIRkxAxmvfVGIAiWzMFR0SRCm/i9JrKQShU1Yr
UfCMwvsMTZ7Y9oFtHzGYFcFAljDpXgKsaOvA4c0Ub7hL4PVN1CNABSabMaIXR/Uk
4g5dccVNpFjF8DKV7yr4MbO1GXOz8d2divflkh2KAaOzThtbFmHvEp23PUuiGL11
V5FiJY3WF2nc/8y6BjntoNGqFhh2B0JnKAyaDPLheV6pnqgF5SQD2RLuzi7N7DpZ
LTZJm4eTqgHiZs940zBdLe8JZNkf8OMgnwWEeox3k3TxxZ80mnmvGhmYt4naCqtL
haOnQQilKz0Kxsx0VZtzfeI8O3jQp2AcUjcMDb+yiQmwvhlqvZ8=
=iDkp
-----END PGP SIGNATURE-----

--WTbgq2twYBxfsYA6--

From owner-svn-src-all@freebsd.org  Thu Mar 29 03:01:47 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BCB57F6B3C8;
 Thu, 29 Mar 2018 03:01:46 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 41935747C8;
 Thu, 29 Mar 2018 03:01:45 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2T31h8R060566;
 Wed, 28 Mar 2018 20:01:43 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2T31fpe060565;
 Wed, 28 Mar 2018 20:01:41 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803290301.w2T31fpe060565@pdx.rh.CN85.dnsmgr.net>
Subject: Re: Mismerge at r330897 in stable/11, Audit report
In-Reply-To: <20180329025742.GQ81123@FreeBSD.org>
To: Glen Barber 
Date: Wed, 28 Mar 2018 20:01:41 -0700 (PDT)
CC: rgrimes@FreeBSD.org, Eitan Adler ,
 src-committers , svn-src-all@FreeBSD.org,
 svn-src-stable@FreeBSD.org, svn-src-stable-11@FreeBSD.org,
 FreeBSD Release Engineering Team 
Reply-To: rgrimes@FreeBSD.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 03:01:47 -0000

> On Wed, Mar 28, 2018 at 07:49:06PM -0700, Rodney W. Grimes wrote:
> > > On Wed, Mar 28, 2018 at 07:17:20PM -0700, Eitan Adler wrote:
> > > > On 28 March 2018 at 19:04, Rodney W. Grimes
> > > >  wrote:
> > > > >> On 28 March 2018 at 18:35, Rodney W. Grimes
> > > > >>  wrote:
> > > > >> >> >> Hi!
> > > > >> >> >>
> > > > >> >> >> This part of the MFC is wrong:
> > > > >> >> >>
> > > > >> >> >> https://svnweb.freebsd.org/base/stable/11/sys/sys/random.h?limit_changes=0&r1=330897&r2=330896&pathrev=330897
> > > > >> >
> > > > >> > Can we try to identify exactly what rXXXXXX that is a merge of?
> > > > >> >
> > > > >> >> >> Could you please MFC back the other random related changes too? Some
> > > > >> >> >> of them made by cem@.
> > > > >> >> >>
> > > > >> >> >> On 3/14/18, Eitan Adler  wrote:
> > > > >> >> >>> Author: eadler
> > > > >> >> >>> Date: Wed Mar 14 03:19:51 2018
> > > > >> >> >>> New Revision: 330897
> > > > >> >> >>> URL: https://svnweb.freebsd.org/changeset/base/330897
> > > > >> >> >>>
> > > > >> >> >>> Log:
> > > > >> >> >>>   Partial merge of the SPDX changes
> > > > >> >> >>>
> > > > >> >> >>>   These changes are incomplete but are making it difficult
> > > > >> >> >>>   to determine what other changes can/should be merged.
> > > > >> >> >>>
> > > > >> >> >>>   No objections from:        pfg
> > > > >> >> >>>
> > > > >> >> > Am I missing something? If this MFC was supposed to be of the SPDX
> > > > >> >> > license tagging, why does it have any functional changes?
> > > > >> >> >
> > > > >> >> > Especially changes to random(4)?
> > > > >> >>
> > > > >> >> This was my failure. I only spot checked & compile-checked the diff
> > > > >> >> since I expected all changes to be comments/SPDX.
> > > > >> >>
> > > > >> >> However, I must have gotten carried away and included a few too many
> > > > >> >> revisions. Unfortunately some people have already merged fixes to my
> > > > >> >> failure and thus this can't be reverted as is without also reverting
> > > > >> >> those fixes.
> > > > >> >>
> > > > >> >> That said, I should do that since this commit message is utterly wrong.
> > > > >> >
> > > > >> > We do not have to revert r330897, with what follows I think
> > > > >> > we can easily find the revisions to revert from stable/11.
> > > > >> > ...
> > > > >>
> > > > >> While we don't have to revert it I'd rather do so than have bogus history.
> > > > >
> > > > > Reverting wont remove that history, thats a one way deal,
> > > > > and I think if we revert the bogus merges with the wrong
> > > > > history thats as good as its gona get.
> > > > >
> > > > >>
> > > > >> >From a look it seems the following was also merged:
> > > > >> r316370, r317095, r324394, and a few others.
> > > > >>
> > > > >> Is there a reason you don't want me to revert the changes?
> > > > >
> > > > > Repository churn is my main concern.
> > > > >
> > > > > It touches 6000+ files some of which have probably
> > > > > been touched since.   A very carefull pre commit
> > > > > audit would need to be done.
> > > > >
> > > > > Then another commit to 6000+ files to put it back,
> > > > > also needing a pre-commit audit. (Pretty easy now
> > > > > that I have a filter.)
> > > > 
> > > > I'm actually using the same filter you pasted above to verify that my
> > > > changes are only reverting said files. That said, while I'd prefer to
> > > > revert, I'll defer to others if they have a differing opinion.
> > > > 
> > > > 
> > > > Note that I won't have access my dev box after tomorrow for about a week.
> > > > 
> > > 
> > > IMHO, if you are going to be away for over a week while we're headed
> > > directly into the 11.2 release cycle, revert the change.  What you
> > > committed is not what was intended, clearly, and the commit message does
> > > not reflect what had happened (as you noted).
> > > 
> > > Any disagreements on this decision should be directed to me specifically
> > > in this case.
> > 
> > Glen,
> > 	I would rather not revert, as I believe that would cause more
> > damages as people have already cleaned up some of the mis merge from
> > this commit.  I am pretty sure a revert would lead to a broken tree.
> > 
> > In Eitans absence I am willing to take responsiblity to untangle
> > the wrong bits and clean up stable/11.
> > 
> > Ok?
> > 
> 
> I disagree with this approach.  A mishandled merge which as in this case
> contains extraneous changes limit our ability to properly audit the
> branch.
> 
> My strong feeling is that if "too many" revisions were merged, we should
> not piecemeal break out what should not have been included.  We should,
> instead, revert the offending commit as an "oops", redo the intended
> merge, and then in a separate commit re-apply the bits from the
> offending merge in a completely separate commit.
> 
> While this may be perceived as churn against the tree, it keeps tracking
> what happened much easier to manage, especially if we were to have to
> rely on mergeinfo.

And now already reverted, so moot.

> > Eitan,
> > 	Are you ok with that as well?

Eitan,
	I think the re merge of SPDX can wait tell you get back,
	you have the list of revisions already, and I am more
	than willing to audit your diff pre commit.

Thanks,

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Thu Mar 29 03:17:48 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E155F6D23B;
 Thu, 29 Mar 2018 03:17:48 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 1F86E75755;
 Thu, 29 Mar 2018 03:17:47 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2T3Hj8u060705;
 Wed, 28 Mar 2018 20:17:45 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2T3Hic6060704;
 Wed, 28 Mar 2018 20:17:44 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803290317.w2T3Hic6060704@pdx.rh.CN85.dnsmgr.net>
Subject: Re: svn commit: r331722 - in stable/11: bin/cat bin/chflags bin/chmod
 bin/cp bin/date bin/dd bin/df bin/domainname bin/echo bin/ed
 bin/hostname bin/kill
 bin/ln bin/ls bin/mkdir bin/mv bin/pax bin/ps bi...
In-Reply-To: <20180329030924.GR81123@FreeBSD.org>
To: Glen Barber 
Date: Wed, 28 Mar 2018 20:17:44 -0700 (PDT)
CC: Eitan Adler , src-committers@freebsd.org,
 svn-src-all@freebsd.org, svn-src-stable@freebsd.org,
 svn-src-stable-11@freebsd.org
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 03:17:48 -0000

-- Start of PGP signed section.
> On Thu, Mar 29, 2018 at 02:51:04AM +0000, Eitan Adler wrote:
> > Author: eadler
> > Date: Thu Mar 29 02:50:57 2018
> > New Revision: 331722
> > URL: https://svnweb.freebsd.org/changeset/base/331722
> > 
> > Log:
> >   Revert r330897:
> >   
> >   This was intended to be a non-functional change. It wasn't. The commit
> >   message was thus wrong. In addition it broke arm, and merged crypto
> >   related code.
> >   
> >   Revert with prejudice.
> >   
> >   This revert skips files touched in r316370 since that commit was since
> >   MFCed.

Um, not sure that was the right way to revert :-(.

> >   This revert also skips files that require $FreeBSD$ property
> >   changes.

And more doubts that this is right to skip anything.

> >   Thank you to those who helped me get out of this mess including but not
> >   limited to gonzo, kevans, rgrimes.
> >   
> >   Requested by: gjb (re)
> > 
> 
> I did *not* request this, especially not on re@'s behalf.  I provided
> input on what I felt was the correct way to proceed in this situation,
> where a number of commits that were not related to the intent were
> included.  There is a difference.

I tried to get this slowed down until we could get to a concenses,
I think our mess is as big now as it was before.

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Thu Mar 29 04:02:51 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98DBDF71EED;
 Thu, 29 Mar 2018 04:02:51 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 46CBE77EB7;
 Thu, 29 Mar 2018 04:02:51 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4171D14B98;
 Thu, 29 Mar 2018 04:02:51 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T42ptf013686;
 Thu, 29 Mar 2018 04:02:51 GMT (envelope-from cem@FreeBSD.org)
Received: (from cem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T42ofL013679;
 Thu, 29 Mar 2018 04:02:50 GMT (envelope-from cem@FreeBSD.org)
Message-Id: <201803290402.w2T42ofL013679@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org
 using -f
From: Conrad Meyer 
Date: Thu, 29 Mar 2018 04:02:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331724 - in head/sys: conf crypto/chacha20
 modules/crypto opencrypto
X-SVN-Group: head
X-SVN-Commit-Author: cem
X-SVN-Commit-Paths: in head/sys: conf crypto/chacha20 modules/crypto opencrypto
X-SVN-Commit-Revision: 331724
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 04:02:52 -0000

Author: cem
Date: Thu Mar 29 04:02:50 2018
New Revision: 331724
URL: https://svnweb.freebsd.org/changeset/base/331724

Log:
  opencrypto: Integrate Chacha20 algorithm into OCF
  
  Mostly this is a thin shim around existing code to integrate with enc_xform
  and cryptosoft (+ cryptodev).
  
  Expand the cryptodev buffer used to match that of Chacha20's native block
  size as a performance enhancement for chacha20_xform_crypt_multi.

Added:
  head/sys/crypto/chacha20/chacha-sw.c   (contents, props changed)
Modified:
  head/sys/conf/files
  head/sys/modules/crypto/Makefile
  head/sys/opencrypto/cryptodev.c
  head/sys/opencrypto/cryptodev.h
  head/sys/opencrypto/cryptosoft.c
  head/sys/opencrypto/xform_enc.h

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files	Thu Mar 29 02:54:50 2018	(r331723)
+++ head/sys/conf/files	Thu Mar 29 04:02:50 2018	(r331724)
@@ -662,6 +662,8 @@ crypto/blowfish/bf_ecb.c	optional ipsec | ipsec_suppor
 crypto/blowfish/bf_skey.c	optional crypto | ipsec | ipsec_support
 crypto/camellia/camellia.c	optional crypto | ipsec | ipsec_support
 crypto/camellia/camellia-api.c	optional crypto | ipsec | ipsec_support
+crypto/chacha20/chacha.c	optional crypto | ipsec | ipsec_support
+crypto/chacha20/chacha-sw.c	optional crypto | ipsec | ipsec_support
 crypto/des/des_ecb.c		optional crypto | ipsec | ipsec_support | netsmb
 crypto/des/des_setkey.c		optional crypto | ipsec | ipsec_support | netsmb
 crypto/rc4/rc4.c		optional netgraph_mppc_encryption | kgssapi

Added: head/sys/crypto/chacha20/chacha-sw.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/crypto/chacha20/chacha-sw.c	Thu Mar 29 04:02:50 2018	(r331724)
@@ -0,0 +1,78 @@
+/* This file is in the public domain. */
+
+#include 
+__FBSDID("$FreeBSD$");
+
+#include 
+#include 
+
+static int
+chacha20_xform_setkey(u_int8_t **sched, u_int8_t *key, int len)
+{
+	struct chacha_ctx *ctx;
+
+	if (len != CHACHA_MINKEYLEN && len != 32)
+		return (EINVAL);
+
+	ctx = malloc(sizeof(*ctx), M_CRYPTO_DATA, M_NOWAIT | M_ZERO);
+	*sched = (void *)ctx;
+	if (ctx == NULL)
+		return (ENOMEM);
+
+	chacha_keysetup(ctx, key, len * 8);
+	return (0);
+}
+
+static void
+chacha20_xform_reinit(caddr_t key, u_int8_t *iv)
+{
+	struct chacha_ctx *ctx;
+
+	ctx = (void *)key;
+	chacha_ivsetup(ctx, iv + 8, iv);
+}
+
+static void
+chacha20_xform_zerokey(u_int8_t **sched)
+{
+	struct chacha_ctx *ctx;
+
+	ctx = (void *)*sched;
+	explicit_bzero(ctx, sizeof(*ctx));
+	free(ctx, M_CRYPTO_DATA);
+	*sched = NULL;
+}
+
+static void
+chacha20_xform_crypt(caddr_t cctx, u_int8_t *bytes)
+{
+	struct chacha_ctx *ctx;
+
+	ctx = (void *)cctx;
+	chacha_encrypt_bytes(ctx, bytes, bytes, 1);
+}
+
+static void
+chacha20_xform_crypt_multi(void *vctx, uint8_t *bytes, size_t len)
+{
+	struct chacha_ctx *ctx;
+
+	ctx = vctx;
+	chacha_encrypt_bytes(ctx, bytes, bytes, len);
+}
+
+struct enc_xform enc_xform_chacha20 = {
+	.type = CRYPTO_CHACHA20,
+	.name = "chacha20",
+	.blocksize = 1,
+	.ivsize = CHACHA_NONCELEN + CHACHA_CTRLEN,
+	.minkey = CHACHA_MINKEYLEN,
+	.maxkey = 32,
+	.encrypt = chacha20_xform_crypt,
+	.decrypt = chacha20_xform_crypt,
+	.setkey = chacha20_xform_setkey,
+	.zerokey = chacha20_xform_zerokey,
+	.reinit = chacha20_xform_reinit,
+	.encrypt_multi = chacha20_xform_crypt_multi,
+	.decrypt_multi = chacha20_xform_crypt_multi,
+};

Modified: head/sys/modules/crypto/Makefile
==============================================================================
--- head/sys/modules/crypto/Makefile	Thu Mar 29 02:54:50 2018	(r331723)
+++ head/sys/modules/crypto/Makefile	Thu Mar 29 04:02:50 2018	(r331724)
@@ -10,6 +10,7 @@
 .PATH:	${SRCTOP}/sys/crypto/siphash
 .PATH:	${SRCTOP}/sys/crypto/skein
 .PATH:	${SRCTOP}/sys/crypto/blake2
+.PATH:	${SRCTOP}/sys/crypto/chacha20
 .PATH:	${SRCTOP}/sys/contrib/libb2
 
 KMOD	= crypto
@@ -41,6 +42,8 @@ CFLAGS.blake2s-ref.c	+= -I${SRCTOP}/sys/crypto/blake2 
 CFLAGS.blake2-sw.c	+= -I${SRCTOP}/sys/crypto/blake2
 CWARNFLAGS.blake2b-ref.c	+= ${NO_WCAST_QUAL}
 CWARNFLAGS.blake2s-ref.c	+= ${NO_WCAST_QUAL}
+SRCS	+= chacha.c
+SRCS	+= chacha-sw.c
 SRCS	+= opt_param.h cryptodev_if.h bus_if.h device_if.h
 SRCS	+= opt_ddb.h
 

Modified: head/sys/opencrypto/cryptodev.c
==============================================================================
--- head/sys/opencrypto/cryptodev.c	Thu Mar 29 02:54:50 2018	(r331723)
+++ head/sys/opencrypto/cryptodev.c	Thu Mar 29 04:02:50 2018	(r331724)
@@ -443,6 +443,9 @@ cryptof_ioctl(
 		case CRYPTO_AES_NIST_GCM_16:
 			txform = &enc_xform_aes_nist_gcm;
  			break;
+		case CRYPTO_CHACHA20:
+			txform = &enc_xform_chacha20;
+			break;
 
 		default:
 			CRYPTDEB("invalid cipher");

Modified: head/sys/opencrypto/cryptodev.h
==============================================================================
--- head/sys/opencrypto/cryptodev.h	Thu Mar 29 02:54:50 2018	(r331723)
+++ head/sys/opencrypto/cryptodev.h	Thu Mar 29 04:02:50 2018	(r331724)
@@ -112,7 +112,8 @@
 #define	AES_ICM_BLOCK_LEN	1
 #define	ARC4_BLOCK_LEN		1
 #define	CAMELLIA_BLOCK_LEN	16
-#define	EALG_MAX_BLOCK_LEN	AES_BLOCK_LEN /* Keep this updated */
+#define	CHACHA20_NATIVE_BLOCK_LEN	64
+#define	EALG_MAX_BLOCK_LEN	CHACHA20_NATIVE_BLOCK_LEN /* Keep this updated */
 
 /* IV Lengths */
 
@@ -180,7 +181,8 @@
 #define	CRYPTO_AES_256_NIST_GMAC 28 /* auth side */
 #define	CRYPTO_BLAKE2B		29 /* Blake2b hash */
 #define	CRYPTO_BLAKE2S		30 /* Blake2s hash */
-#define	CRYPTO_ALGORITHM_MAX	30 /* Keep updated - see below */
+#define	CRYPTO_CHACHA20		31 /* Chacha20 stream cipher */
+#define	CRYPTO_ALGORITHM_MAX	31 /* Keep updated - see below */
 
 #define	CRYPTO_ALGO_VALID(x)	((x) >= CRYPTO_ALGORITHM_MIN && \
 				 (x) <= CRYPTO_ALGORITHM_MAX)

Modified: head/sys/opencrypto/cryptosoft.c
==============================================================================
--- head/sys/opencrypto/cryptosoft.c	Thu Mar 29 02:54:50 2018	(r331723)
+++ head/sys/opencrypto/cryptosoft.c	Thu Mar 29 04:02:50 2018	(r331724)
@@ -830,6 +830,9 @@ swcr_newsession(device_t dev, u_int32_t *sid, struct c
 		case CRYPTO_NULL_CBC:
 			txf = &enc_xform_null;
 			goto enccommon;
+		case CRYPTO_CHACHA20:
+			txf = &enc_xform_chacha20;
+			goto enccommon;
 		enccommon:
 			if (cri->cri_key != NULL) {
 				error = txf->setkey(&((*swd)->sw_kschedule),
@@ -1056,6 +1059,7 @@ swcr_freesession_locked(device_t dev, u_int64_t tid)
 		case CRYPTO_AES_NIST_GMAC:
 		case CRYPTO_CAMELLIA_CBC:
 		case CRYPTO_NULL_CBC:
+		case CRYPTO_CHACHA20:
 			txf = swd->sw_exf;
 
 			if (swd->sw_kschedule)
@@ -1185,6 +1189,7 @@ swcr_process(device_t dev, struct cryptop *crp, int hi
 		case CRYPTO_AES_XTS:
 		case CRYPTO_AES_ICM:
 		case CRYPTO_CAMELLIA_CBC:
+		case CRYPTO_CHACHA20:
 			if ((crp->crp_etype = swcr_encdec(crd, sw,
 			    crp->crp_buf, crp->crp_flags)) != 0)
 				goto done;
@@ -1298,6 +1303,7 @@ swcr_attach(device_t dev)
 	REGISTER(CRYPTO_DEFLATE_COMP);
 	REGISTER(CRYPTO_BLAKE2B);
 	REGISTER(CRYPTO_BLAKE2S);
+	REGISTER(CRYPTO_CHACHA20);
 #undef REGISTER
 
 	return 0;

Modified: head/sys/opencrypto/xform_enc.h
==============================================================================
--- head/sys/opencrypto/xform_enc.h	Thu Mar 29 02:54:50 2018	(r331723)
+++ head/sys/opencrypto/xform_enc.h	Thu Mar 29 04:02:50 2018	(r331724)
@@ -51,7 +51,7 @@
 struct enc_xform {
 	int type;
 	char *name;
-	u_int16_t blocksize;
+	u_int16_t blocksize;	/* Required input block size -- 1 for stream ciphers. */
 	u_int16_t ivsize;
 	u_int16_t minkey, maxkey;
 	void (*encrypt) (caddr_t, u_int8_t *);
@@ -83,6 +83,7 @@ extern struct enc_xform enc_xform_aes_nist_gmac;
 extern struct enc_xform enc_xform_aes_xts;
 extern struct enc_xform enc_xform_arc4;
 extern struct enc_xform enc_xform_camellia;
+extern struct enc_xform enc_xform_chacha20;
 
 struct aes_icm_ctx {
 	u_int32_t	ac_ek[4*(RIJNDAEL_MAXNR + 1)];

From owner-svn-src-all@freebsd.org  Thu Mar 29 04:07:54 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2706BF72589;
 Thu, 29 Mar 2018 04:07:54 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id C90DF78330;
 Thu, 29 Mar 2018 04:07:53 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C2D2814BAD;
 Thu, 29 Mar 2018 04:07:53 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T47rF2014037;
 Thu, 29 Mar 2018 04:07:53 GMT (envelope-from cem@FreeBSD.org)
Received: (from cem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T47rOr014036;
 Thu, 29 Mar 2018 04:07:53 GMT (envelope-from cem@FreeBSD.org)
Message-Id: <201803290407.w2T47rOr014036@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org
 using -f
From: Conrad Meyer 
Date: Thu, 29 Mar 2018 04:07:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331725 - head/tools/tools/crypto
X-SVN-Group: head
X-SVN-Commit-Author: cem
X-SVN-Commit-Paths: head/tools/tools/crypto
X-SVN-Commit-Revision: 331725
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 04:07:54 -0000

Author: cem
Date: Thu Mar 29 04:07:53 2018
New Revision: 331725
URL: https://svnweb.freebsd.org/changeset/base/331725

Log:
  cryptotest: Add chacha20 cipher

Modified:
  head/tools/tools/crypto/cryptotest.c

Modified: head/tools/tools/crypto/cryptotest.c
==============================================================================
--- head/tools/tools/crypto/cryptotest.c	Thu Mar 29 04:02:50 2018	(r331724)
+++ head/tools/tools/crypto/cryptotest.c	Thu Mar 29 04:07:53 2018	(r331725)
@@ -56,6 +56,7 @@
  *	aes	rijndael/aes 128-bit cbc
  *	aes192	rijndael/aes 192-bit cbc
  *	aes256	rijndael/aes 256-bit cbc
+ *	chacha20 Chacha20 stream cipher
  *	blake2b	Blake2b
  *	blake2s	Blake2s
  *	md5	md5 hmac
@@ -134,6 +135,7 @@ struct alg {
 	{ "aes",	0,	16,	16,	16,	CRYPTO_AES_CBC},
 	{ "aes192",	0,	16,	24,	24,	CRYPTO_AES_CBC},
 	{ "aes256",	0,	16,	32,	32,	CRYPTO_AES_CBC},
+	{ "chacha20",	0,	1,	32,	32,	CRYPTO_CHACHA20},
 	{ "blake2b",	1,	128,	64,	64,	CRYPTO_BLAKE2B },
 	{ "blake2s",	1,	64,	32,	32,	CRYPTO_BLAKE2S },
 	{ "md5",	1,	8,	16,	16,	CRYPTO_MD5_HMAC },
@@ -150,7 +152,7 @@ usage(const char* cmd)
 		cmd);
 	printf("where algorithm is one of:\n");
 	printf("    null des 3des (default) blowfish cast skipjack rij\n");
-	printf("    aes aes192 aes256 md5 sha1 sha256 sha384 sha512\n");
+	printf("    aes aes192 aes256 chacha20 md5 sha1 sha256 sha384 sha512\n");
 	printf("    blake2b blake2s\n");
 	printf(" or an encryption algorithm concatented with authentication\n");
 	printf(" algorithm with '+' in the middle, e.g., aes+sha1.\n");

From owner-svn-src-all@freebsd.org  Thu Mar 29 04:14:38 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 40B25F72E1F;
 Thu, 29 Mar 2018 04:14:38 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id DFFF17894B;
 Thu, 29 Mar 2018 04:14:37 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D7BB614D5D;
 Thu, 29 Mar 2018 04:14:37 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T4Ebcs018943;
 Thu, 29 Mar 2018 04:14:37 GMT (envelope-from cem@FreeBSD.org)
Received: (from cem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T4EbSe018942;
 Thu, 29 Mar 2018 04:14:37 GMT (envelope-from cem@FreeBSD.org)
Message-Id: <201803290414.w2T4EbSe018942@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org
 using -f
From: Conrad Meyer 
Date: Thu, 29 Mar 2018 04:14:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331726 - head/tools/tools/crypto
X-SVN-Group: head
X-SVN-Commit-Author: cem
X-SVN-Commit-Paths: head/tools/tools/crypto
X-SVN-Commit-Revision: 331726
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 04:14:38 -0000

Author: cem
Date: Thu Mar 29 04:14:37 2018
New Revision: 331726
URL: https://svnweb.freebsd.org/changeset/base/331726

Log:
  cryptocheck: Add Chacha20 cipher to tool

Modified:
  head/tools/tools/crypto/cryptocheck.c

Modified: head/tools/tools/crypto/cryptocheck.c
==============================================================================
--- head/tools/tools/crypto/cryptocheck.c	Thu Mar 29 04:07:53 2018	(r331725)
+++ head/tools/tools/crypto/cryptocheck.c	Thu Mar 29 04:14:37 2018	(r331726)
@@ -96,6 +96,7 @@
  *	aes-ctr256	256-bit aes ctr
  *	aes-xts		128-bit aes xts
  *	aes-xts256	256-bit aes xts
+ *	chacha20
  *
  * Authenticated Encryption:
  *	+
@@ -162,6 +163,8 @@ struct alg {
 	  .evp_cipher = EVP_aes_128_xts },
 	{ .name = "aes-xts256", .cipher = CRYPTO_AES_XTS, .type = T_BLKCIPHER,
 	  .evp_cipher = EVP_aes_256_xts },
+	{ .name = "chacha20", .cipher = CRYPTO_CHACHA20, .type = T_BLKCIPHER,
+	  .evp_cipher = EVP_chacha20 },
 	{ .name = "aes-gcm", .cipher = CRYPTO_AES_NIST_GCM_16,
 	  .mac = CRYPTO_AES_128_NIST_GMAC, .type = T_GCM,
 	  .evp_cipher = EVP_aes_128_gcm },

From owner-svn-src-all@freebsd.org  Thu Mar 29 04:41:47 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 432FDF74A80;
 Thu, 29 Mar 2018 04:41:47 +0000 (UTC)
 (envelope-from mjoras@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id ECDFC79899;
 Thu, 29 Mar 2018 04:41:46 +0000 (UTC)
 (envelope-from mjoras@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E7932150FC;
 Thu, 29 Mar 2018 04:41:46 +0000 (UTC)
 (envelope-from mjoras@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T4fkq3033065;
 Thu, 29 Mar 2018 04:41:46 GMT (envelope-from mjoras@FreeBSD.org)
Received: (from mjoras@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T4fkTs033056;
 Thu, 29 Mar 2018 04:41:46 GMT (envelope-from mjoras@FreeBSD.org)
Message-Id: <201803290441.w2T4fkTs033056@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mjoras set sender to
 mjoras@FreeBSD.org using -f
From: Matt Joras 
Date: Thu, 29 Mar 2018 04:41:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331727 - in stable/11: share/man/man9 sys/kern sys/sys
X-SVN-Group: stable-11
X-SVN-Commit-Author: mjoras
X-SVN-Commit-Paths: in stable/11: share/man/man9 sys/kern sys/sys
X-SVN-Commit-Revision: 331727
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 04:41:47 -0000

Author: mjoras
Date: Thu Mar 29 04:41:45 2018
New Revision: 331727
URL: https://svnweb.freebsd.org/changeset/base/331727

Log:
  MFC r325621, r325622, r331227
  
  Add EVENTHANDLER_LIST and some users.
  
  Also fix a longstanding bug in mtx initialization.

Modified:
  stable/11/share/man/man9/EVENTHANDLER.9
  stable/11/sys/kern/init_main.c
  stable/11/sys/kern/kern_exec.c
  stable/11/sys/kern/kern_exit.c
  stable/11/sys/kern/kern_fork.c
  stable/11/sys/kern/kern_proc.c
  stable/11/sys/kern/kern_thread.c
  stable/11/sys/kern/subr_eventhandler.c
  stable/11/sys/sys/eventhandler.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/share/man/man9/EVENTHANDLER.9
==============================================================================
--- stable/11/share/man/man9/EVENTHANDLER.9	Thu Mar 29 04:14:37 2018	(r331726)
+++ stable/11/share/man/man9/EVENTHANDLER.9	Thu Mar 29 04:41:45 2018	(r331727)
@@ -23,7 +23,7 @@
 .\" SUCH DAMAGE.
 .\" $FreeBSD$
 .\"
-.Dd October 1, 2017
+.Dd October 31, 2017
 .Dt EVENTHANDLER 9
 .Os
 .Sh NAME
@@ -38,6 +38,9 @@
 .Fn EVENTHANDLER_REGISTER name func arg priority
 .Fn EVENTHANDLER_DEREGISTER name tag
 .Fn EVENTHANDLER_DEREGISTER_NOWAIT name tag
+.Fn EVENTHANDLER_LIST_DECLARE name
+.Fn EVENTHANDLER_LIST_DEFINE name
+.Fn EVENTHANDLER_DIRECT_INVOKE name
 .Ft eventhandler_tag
 .Fo eventhandler_register
 .Fa "struct eventhandler_list *list"
@@ -82,8 +85,13 @@ may be used if the handler does not have a specific pr
 associated with it.
 .Pp
 The normal way to use this subsystem is via the macro interface.
-The macros that can be used for working with event handlers and callback
-function lists are:
+For events that are high frequency it is suggested that you additionally use
+.Fn EVENTHANDLER_LIST_DEFINE
+so that the event handlers can be invoked directly using
+.Fn EVENTHANDLER_DIRECT_INVOKE
+(see below).
+This saves the invoker from having to do a locked traversal of a global
+list of event handler lists.
 .Bl -tag -width indent
 .It Fn EVENTHANDLER_DECLARE
 This macro declares an event handler named by argument
@@ -148,6 +156,27 @@ Additional arguments to the macro after the
 .Fa name
 parameter are passed as the second and subsequent arguments to each
 registered callback function.
+.It Fn EVENTHANDLER_LIST_DEFINE
+This macro defines a reference to an event handler list named by
+argument
+.Fa name .
+It uses
+.Xr SYSINIT 9
+to initialize the reference and the eventhandler list.
+.It Fn EVENTHANDLER_LIST_DECLARE
+This macro declares an event handler list named by argument
+.Fa name .
+This is only needed for users of
+.Fn EVENTHANDLER_DIRECT_INVOKE
+which are not in the same compilation unit of that list's definition.
+.It Fn EVENTHANDLER_DIRECT_INVOKE
+This macro invokes the event handlers registered for the list named by
+argument
+.Fa name .
+This macro can only be used if the list was defined with
+.Fn EVENTHANDLER_LIST_DEFINE .
+The macro is variadic with the same semantics as
+.Fn EVENTHANDLER_INVOKE .
 .El
 .Pp
 The macros are implemented using the following functions:
@@ -315,7 +344,7 @@ This is never called.
 .It Vt process_fork
 Callbacks invoked when a process forks a child.
 .It Vt process_init
-Callback invoked when a process is initalized.
+Callback invoked when a process is initialized.
 .It Vt random_adaptor_attach
 Callback invoked when a new random module has been loaded.
 .It Vt register_framebuffer
@@ -337,7 +366,7 @@ Callback invoked when a thread object is created.
 .It Vt thread_dtor
 Callback invoked when a thread object is destroyed.
 .It Vt thread_init
-Callback invoked when a thread object is initalized.
+Callback invoked when a thread object is initialized.
 .It Vt thread_fini
 Callback invoked when a thread object is deinitalized.
 .It Vt usb_dev_configured
@@ -384,4 +413,6 @@ facility first appeared in
 .Fx 4.0 .
 .Sh AUTHORS
 This manual page was written by
-.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org .
+.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org
+and
+.An Matt Joras Aq Mt mjoras@FreeBSD.org .

Modified: stable/11/sys/kern/init_main.c
==============================================================================
--- stable/11/sys/kern/init_main.c	Thu Mar 29 04:14:37 2018	(r331726)
+++ stable/11/sys/kern/init_main.c	Thu Mar 29 04:41:45 2018	(r331727)
@@ -136,6 +136,11 @@ SET_DECLARE(sysinit_set, struct sysinit);
 struct sysinit **sysinit, **sysinit_end;
 struct sysinit **newsysinit, **newsysinit_end;
 
+EVENTHANDLER_LIST_DECLARE(process_init);
+EVENTHANDLER_LIST_DECLARE(thread_init);
+EVENTHANDLER_LIST_DECLARE(process_ctor);
+EVENTHANDLER_LIST_DECLARE(thread_ctor);
+
 /*
  * Merge a new sysinit set into the current set, reallocating it if
  * necessary.  This can only be called after malloc is running.
@@ -585,10 +590,10 @@ proc0_init(void *dummy __unused)
 	 * Call the init and ctor for the new thread and proc.  We wait
 	 * to do this until all other structures are fairly sane.
 	 */
-	EVENTHANDLER_INVOKE(process_init, p);
-	EVENTHANDLER_INVOKE(thread_init, td);
-	EVENTHANDLER_INVOKE(process_ctor, p);
-	EVENTHANDLER_INVOKE(thread_ctor, td);
+	EVENTHANDLER_DIRECT_INVOKE(process_init, p);
+	EVENTHANDLER_DIRECT_INVOKE(thread_init, td);
+	EVENTHANDLER_DIRECT_INVOKE(process_ctor, p);
+	EVENTHANDLER_DIRECT_INVOKE(thread_ctor, td);
 
 	/*
 	 * Charge root for one process.

Modified: stable/11/sys/kern/kern_exec.c
==============================================================================
--- stable/11/sys/kern/kern_exec.c	Thu Mar 29 04:14:37 2018	(r331726)
+++ stable/11/sys/kern/kern_exec.c	Thu Mar 29 04:41:45 2018	(r331727)
@@ -143,6 +143,8 @@ static int map_at_zero = 0;
 SYSCTL_INT(_security_bsd, OID_AUTO, map_at_zero, CTLFLAG_RWTUN, &map_at_zero, 0,
     "Permit processes to map an object at virtual address 0.");
 
+EVENTHANDLER_LIST_DECLARE(process_exec);
+
 static int
 sysctl_kern_ps_strings(SYSCTL_HANDLER_ARGS)
 {
@@ -1073,7 +1075,7 @@ exec_new_vmspace(struct image_params *imgp, struct sys
 	imgp->sysent = sv;
 
 	/* May be called with Giant held */
-	EVENTHANDLER_INVOKE(process_exec, p, imgp);
+	EVENTHANDLER_DIRECT_INVOKE(process_exec, p, imgp);
 
 	/*
 	 * Blow away entire process VM, if address space not shared,

Modified: stable/11/sys/kern/kern_exit.c
==============================================================================
--- stable/11/sys/kern/kern_exit.c	Thu Mar 29 04:14:37 2018	(r331726)
+++ stable/11/sys/kern/kern_exit.c	Thu Mar 29 04:41:45 2018	(r331727)
@@ -99,6 +99,8 @@ SDT_PROBE_DEFINE1(proc, , , exit, "int");
 /* Hook for NFS teardown procedure. */
 void (*nlminfo_release_p)(struct proc *p);
 
+EVENTHANDLER_LIST_DECLARE(process_exit);
+
 struct proc *
 proc_realparent(struct proc *child)
 {
@@ -329,7 +331,7 @@ exit1(struct thread *td, int rval, int signo)
 	 * Event handler could change exit status.
 	 * XXX what if one of these generates an error?
 	 */
-	EVENTHANDLER_INVOKE(process_exit, p);
+	EVENTHANDLER_DIRECT_INVOKE(process_exit, p);
 
 	/*
 	 * If parent is waiting for us to exit or exec,

Modified: stable/11/sys/kern/kern_fork.c
==============================================================================
--- stable/11/sys/kern/kern_fork.c	Thu Mar 29 04:14:37 2018	(r331726)
+++ stable/11/sys/kern/kern_fork.c	Thu Mar 29 04:41:45 2018	(r331727)
@@ -97,6 +97,8 @@ struct fork_args {
 };
 #endif
 
+EVENTHANDLER_LIST_DECLARE(process_fork);
+
 /* ARGSUSED */
 int
 sys_fork(struct thread *td, struct fork_args *uap)
@@ -705,7 +707,7 @@ do_fork(struct thread *td, struct fork_req *fr, struct
 	 * Both processes are set up, now check if any loadable modules want
 	 * to adjust anything.
 	 */
-	EVENTHANDLER_INVOKE(process_fork, p1, p2, fr->fr_flags);
+	EVENTHANDLER_DIRECT_INVOKE(process_fork, p1, p2, fr->fr_flags);
 
 	/*
 	 * Set the child start time and mark the process as being complete.

Modified: stable/11/sys/kern/kern_proc.c
==============================================================================
--- stable/11/sys/kern/kern_proc.c	Thu Mar 29 04:14:37 2018	(r331726)
+++ stable/11/sys/kern/kern_proc.c	Thu Mar 29 04:41:45 2018	(r331727)
@@ -151,6 +151,17 @@ const int thread_off_td_oncpu = offsetof(struct thread
 const int thread_off_td_pcb = offsetof(struct thread, td_pcb);
 const int thread_off_td_plist = offsetof(struct thread, td_plist);
 
+EVENTHANDLER_LIST_DEFINE(process_ctor);
+EVENTHANDLER_LIST_DEFINE(process_dtor);
+EVENTHANDLER_LIST_DEFINE(process_init);
+EVENTHANDLER_LIST_DEFINE(process_fini);
+EVENTHANDLER_LIST_DEFINE(process_exit);
+EVENTHANDLER_LIST_DEFINE(process_fork);
+EVENTHANDLER_LIST_DEFINE(process_exec);
+
+EVENTHANDLER_LIST_DECLARE(thread_ctor);
+EVENTHANDLER_LIST_DECLARE(thread_dtor);
+
 int kstack_pages = KSTACK_PAGES;
 SYSCTL_INT(_kern, OID_AUTO, kstack_pages, CTLFLAG_RD, &kstack_pages, 0,
     "Kernel stack size in pages");
@@ -195,12 +206,12 @@ proc_ctor(void *mem, int size, void *arg, int flags)
 
 	p = (struct proc *)mem;
 	SDT_PROBE4(proc, , ctor , entry, p, size, arg, flags);
-	EVENTHANDLER_INVOKE(process_ctor, p);
+	EVENTHANDLER_DIRECT_INVOKE(process_ctor, p);
 	SDT_PROBE4(proc, , ctor , return, p, size, arg, flags);
 	td = FIRST_THREAD_IN_PROC(p);
 	if (td != NULL) {
 		/* Make sure all thread constructors are executed */
-		EVENTHANDLER_INVOKE(thread_ctor, td);
+		EVENTHANDLER_DIRECT_INVOKE(thread_ctor, td);
 	}
 	return (0);
 }
@@ -230,9 +241,9 @@ proc_dtor(void *mem, int size, void *arg)
 		MPASS(td->td_su == NULL);
 
 		/* Make sure all thread destructors are executed */
-		EVENTHANDLER_INVOKE(thread_dtor, td);
+		EVENTHANDLER_DIRECT_INVOKE(thread_dtor, td);
 	}
-	EVENTHANDLER_INVOKE(process_dtor, p);
+	EVENTHANDLER_DIRECT_INVOKE(process_dtor, p);
 	if (p->p_ksi != NULL)
 		KASSERT(! KSI_ONQ(p->p_ksi), ("SIGCHLD queue"));
 	SDT_PROBE3(proc, , dtor, return, p, size, arg);
@@ -256,7 +267,7 @@ proc_init(void *mem, int size, int flags)
 	cv_init(&p->p_pwait, "ppwait");
 	cv_init(&p->p_dbgwait, "dbgwait");
 	TAILQ_INIT(&p->p_threads);	     /* all threads in proc */
-	EVENTHANDLER_INVOKE(process_init, p);
+	EVENTHANDLER_DIRECT_INVOKE(process_init, p);
 	p->p_stats = pstats_alloc();
 	p->p_pgrp = NULL;
 	SDT_PROBE3(proc, , init, return, p, size, flags);
@@ -274,7 +285,7 @@ proc_fini(void *mem, int size)
 	struct proc *p;
 
 	p = (struct proc *)mem;
-	EVENTHANDLER_INVOKE(process_fini, p);
+	EVENTHANDLER_DIRECT_INVOKE(process_fini, p);
 	pstats_free(p->p_stats);
 	thread_free(FIRST_THREAD_IN_PROC(p));
 	mtx_destroy(&p->p_mtx);

Modified: stable/11/sys/kern/kern_thread.c
==============================================================================
--- stable/11/sys/kern/kern_thread.c	Thu Mar 29 04:14:37 2018	(r331726)
+++ stable/11/sys/kern/kern_thread.c	Thu Mar 29 04:41:45 2018	(r331727)
@@ -144,6 +144,11 @@ struct	tidhashhead *tidhashtbl;
 u_long	tidhash;
 struct	rwlock tidhash_lock;
 
+EVENTHANDLER_LIST_DEFINE(thread_ctor);
+EVENTHANDLER_LIST_DEFINE(thread_dtor);
+EVENTHANDLER_LIST_DEFINE(thread_init);
+EVENTHANDLER_LIST_DEFINE(thread_fini);
+
 static lwpid_t
 tid_alloc(void)
 {
@@ -201,7 +206,7 @@ thread_ctor(void *mem, int size, void *arg, int flags)
 	 */
 	td->td_critnest = 1;
 	td->td_lend_user_pri = PRI_MAX;
-	EVENTHANDLER_INVOKE(thread_ctor, td);
+	EVENTHANDLER_DIRECT_INVOKE(thread_ctor, td);
 #ifdef AUDIT
 	audit_thread_alloc(td);
 #endif
@@ -247,7 +252,7 @@ thread_dtor(void *mem, int size, void *arg)
 	td_softdep_cleanup(td);
 	MPASS(td->td_su == NULL);
 
-	EVENTHANDLER_INVOKE(thread_dtor, td);
+	EVENTHANDLER_DIRECT_INVOKE(thread_dtor, td);
 	tid_free(td->td_tid);
 }
 
@@ -264,7 +269,7 @@ thread_init(void *mem, int size, int flags)
 	td->td_sleepqueue = sleepq_alloc();
 	td->td_turnstile = turnstile_alloc();
 	td->td_rlqe = NULL;
-	EVENTHANDLER_INVOKE(thread_init, td);
+	EVENTHANDLER_DIRECT_INVOKE(thread_init, td);
 	umtx_thread_init(td);
 	td->td_kstack = 0;
 	td->td_sel = NULL;
@@ -280,7 +285,7 @@ thread_fini(void *mem, int size)
 	struct thread *td;
 
 	td = (struct thread *)mem;
-	EVENTHANDLER_INVOKE(thread_fini, td);
+	EVENTHANDLER_DIRECT_INVOKE(thread_fini, td);
 	rlqentry_free(td->td_rlqe);
 	turnstile_free(td->td_turnstile);
 	sleepq_free(td->td_sleepqueue);

Modified: stable/11/sys/kern/subr_eventhandler.c
==============================================================================
--- stable/11/sys/kern/subr_eventhandler.c	Thu Mar 29 04:14:37 2018	(r331726)
+++ stable/11/sys/kern/subr_eventhandler.c	Thu Mar 29 04:41:45 2018	(r331727)
@@ -38,7 +38,7 @@ __FBSDID("$FreeBSD$");
 
 static MALLOC_DEFINE(M_EVENTHANDLER, "eventhandler", "Event handler records");
 
-/* List of 'slow' lists */
+/* List of all eventhandler lists */
 static TAILQ_HEAD(, eventhandler_list)	eventhandler_lists;
 static int				eventhandler_lists_initted = 0;
 static struct mtx			eventhandler_mutex;
@@ -64,25 +64,11 @@ eventhandler_init(void *dummy __unused)
 SYSINIT(eventhandlers, SI_SUB_EVENTHANDLER, SI_ORDER_FIRST, eventhandler_init,
     NULL);
 
-/* 
- * Insertion is O(n) due to the priority scan, but optimises to O(1)
- * if all priorities are identical.
- */
-static eventhandler_tag
-eventhandler_register_internal(struct eventhandler_list *list,
-    const char *name, eventhandler_tag epn)
+static struct eventhandler_list *
+eventhandler_find_or_create_list(const char *name)
 {
-    struct eventhandler_list		*new_list;
-    struct eventhandler_entry		*ep;
-    
-    KASSERT(eventhandler_lists_initted, ("eventhandler registered too early"));
-    KASSERT(epn != NULL, ("%s: cannot register NULL event", __func__));
+	struct eventhandler_list *list, *new_list;
 
-    /* lock the eventhandler lists */
-    mtx_lock(&eventhandler_mutex);
-
-    /* Do we need to find/create the (slow) list? */
-    if (list == NULL) {
 	/* look for a matching, existing list */
 	list = _eventhandler_find_list(name);
 
@@ -90,8 +76,8 @@ eventhandler_register_internal(struct eventhandler_lis
 	if (list == NULL) {
 	    mtx_unlock(&eventhandler_mutex);
 
-	    new_list = malloc(sizeof(struct eventhandler_list) +
-		strlen(name) + 1, M_EVENTHANDLER, M_WAITOK);
+	    new_list = malloc(sizeof(*new_list) + strlen(name) + 1,
+		M_EVENTHANDLER, M_WAITOK | M_ZERO);
 
 	    /* If someone else created it already, then use that one. */
 	    mtx_lock(&eventhandler_mutex);
@@ -101,21 +87,36 @@ eventhandler_register_internal(struct eventhandler_lis
 	    } else {
 		CTR2(KTR_EVH, "%s: creating list \"%s\"", __func__, name);
 		list = new_list;
-		list->el_flags = 0;
-		list->el_runcount = 0;
-		bzero(&list->el_lock, sizeof(list->el_lock));
-		list->el_name = (char *)list + sizeof(struct eventhandler_list);
+		TAILQ_INIT(&list->el_entries);
+		list->el_name = (char *)(list + 1);
 		strcpy(list->el_name, name);
+		mtx_init(&list->el_lock, list->el_name, "eventhandler list",
+		    MTX_DEF);
 		TAILQ_INSERT_HEAD(&eventhandler_lists, list, el_link);
 	    }
 	}
+	return (list);
+}
+
+/* 
+ * Insertion is O(n) due to the priority scan, but optimises to O(1)
+ * if all priorities are identical.
+ */
+static eventhandler_tag
+eventhandler_register_internal(struct eventhandler_list *list,
+    const char *name, eventhandler_tag epn)
+{
+    struct eventhandler_entry		*ep;
+    
+    KASSERT(eventhandler_lists_initted, ("eventhandler registered too early"));
+    KASSERT(epn != NULL, ("%s: cannot register NULL event", __func__));
+
+    /* Do we need to find/create the list? */
+    if (list == NULL) {
+	    mtx_lock(&eventhandler_mutex);
+	    list = eventhandler_find_or_create_list(name);
+	    mtx_unlock(&eventhandler_mutex);
     }
-    if (!(list->el_flags & EHL_INITTED)) {
-	TAILQ_INIT(&list->el_entries);
-	mtx_init(&list->el_lock, name, "eventhandler list", MTX_DEF);
-	atomic_store_rel_int(&list->el_flags, EHL_INITTED);
-    }
-    mtx_unlock(&eventhandler_mutex);
 
     KASSERT(epn->ee_priority != EHE_DEAD_PRIORITY,
 	("%s: handler for %s registered with dead priority", __func__, name));
@@ -293,4 +294,23 @@ eventhandler_prune_list(struct eventhandler_list *list
     }
     if (pruned > 0)
 	    wakeup(list);
+}
+
+/*
+ * Create (or get the existing) list so the pointer can be stored by
+ * EVENTHANDLER_LIST_DEFINE.
+ */
+struct eventhandler_list *
+eventhandler_create_list(const char *name)
+{
+	struct eventhandler_list *list;
+
+	KASSERT(eventhandler_lists_initted,
+	    ("eventhandler list created too early"));
+
+	mtx_lock(&eventhandler_mutex);
+	list = eventhandler_find_or_create_list(name);
+	mtx_unlock(&eventhandler_mutex);
+
+	return (list);
 }

Modified: stable/11/sys/sys/eventhandler.h
==============================================================================
--- stable/11/sys/sys/eventhandler.h	Thu Mar 29 04:14:37 2018	(r331726)
+++ stable/11/sys/sys/eventhandler.h	Thu Mar 29 04:41:45 2018	(r331727)
@@ -51,8 +51,7 @@ struct eventhandler_entry_vimage {
 
 struct eventhandler_list {
 	char				*el_name;
-	int				el_flags;
-#define EHL_INITTED	(1<<0)
+	int				el_flags;	/* Unused. */
 	u_int				el_runcount;
 	struct mtx			el_lock;
 	TAILQ_ENTRY(eventhandler_list)	el_link;
@@ -72,8 +71,6 @@ typedef struct eventhandler_entry	*eventhandler_tag;
 	struct eventhandler_entry *_ep;					\
 	struct eventhandler_entry_ ## name *_t;				\
 									\
-	KASSERT((list)->el_flags & EHL_INITTED,				\
- 	   ("eventhandler_invoke: running non-inited list"));		\
 	EHL_LOCK_ASSERT((list), MA_OWNED);				\
 	(list)->el_runcount++;						\
 	KASSERT((list)->el_runcount > 0,				\
@@ -98,10 +95,41 @@ typedef struct eventhandler_entry	*eventhandler_tag;
 } while (0)
 
 /*
- * Slow handlers are entirely dynamic; lists are created
- * when entries are added to them, and thus have no concept of "owner",
- *
- * Slow handlers need to be declared, but do not need to be defined. The
+ * You can optionally use the EVENTHANDLER_LIST and EVENTHANDLER_DIRECT macros
+ * to pre-define a symbol for the eventhandler list. This symbol can be used by
+ * EVENTHANDLER_DIRECT_INVOKE, which has the advantage of not needing to do a
+ * locked search of the global list of eventhandler lists. At least
+ * EVENTHANDLER_LIST_DEFINE must be be used for EVENTHANDLER_DIRECT_INVOKE to
+ * work. EVENTHANDLER_LIST_DECLARE is only needed if the call to
+ * EVENTHANDLER_DIRECT_INVOKE is in a different compilation unit from
+ * EVENTHANDLER_LIST_DEFINE. If the events are even relatively high frequency
+ * it is suggested that you directly define a list for them.
+ */
+#define	EVENTHANDLER_LIST_DECLARE(name)					\
+extern struct eventhandler_list *_eventhandler_list_ ## name		\
+
+#define	EVENTHANDLER_LIST_DEFINE(name)					\
+struct eventhandler_list *_eventhandler_list_ ## name ;			\
+static void _ehl_init_ ## name (void * ctx __unused)			\
+{									\
+	_eventhandler_list_ ## name = eventhandler_create_list(#name);	\
+}									\
+SYSINIT(name ## _ehl_init, SI_SUB_EVENTHANDLER, SI_ORDER_ANY,		\
+	    _ehl_init_ ## name, NULL);					\
+	struct __hack
+
+#define	EVENTHANDLER_DIRECT_INVOKE(name, ...) do {			\
+	struct eventhandler_list *_el;					\
+									\
+	_el = _eventhandler_list_ ## name ;				\
+	if (!TAILQ_EMPTY(&_el->el_entries)) {				\
+		EHL_LOCK(_el);						\
+		_EVENTHANDLER_INVOKE(name, _el , ## __VA_ARGS__);	\
+	}								\
+} while (0)
+
+/*
+ * Event handlers need to be declared, but do not need to be defined. The
  * declaration must be in scope wherever the handler is to be invoked.
  */
 #define EVENTHANDLER_DECLARE(name, type)				\
@@ -158,6 +186,7 @@ void	eventhandler_deregister_nowait(struct eventhandle
 	    eventhandler_tag tag);
 struct eventhandler_list *eventhandler_find_list(const char *name);
 void	eventhandler_prune_list(struct eventhandler_list *list);
+struct eventhandler_list *eventhandler_create_list(const char *name);
 
 #ifdef VIMAGE
 typedef	void (*vimage_iterator_func_t)(void *, ...);

From owner-svn-src-all@freebsd.org  Thu Mar 29 04:43:58 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BEBEAF74CEE;
 Thu, 29 Mar 2018 04:43:58 +0000 (UTC)
 (envelope-from Andre.Albsmeier@siemens.com)
Received: from thoth.sbs.de (thoth.sbs.de [192.35.17.2])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "thoth.sbs.de",
 Issuer "Siemens Issuing CA Internet Server 2017" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3881679CEC;
 Thu, 29 Mar 2018 04:43:57 +0000 (UTC)
 (envelope-from Andre.Albsmeier@siemens.com)
Received: from mail3.siemens.de (mail3.siemens.de [139.25.208.14])
 by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id w2T4gN86000390
 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 29 Mar 2018 06:42:23 +0200
Received: from curry.mchp.siemens.de (curry.mchp.siemens.de [139.25.40.130])
 by mail3.siemens.de (8.15.2/8.15.2) with ESMTP id w2T4gNTQ005785;
 Thu, 29 Mar 2018 06:42:23 +0200
Received: (from user@localhost)
 by curry.mchp.siemens.de (8.15.2/8.15.2) id w2T4gN3a007995;
Date: Thu, 29 Mar 2018 06:42:22 +0200
From: Andre Albsmeier 
To: Ian Lepore 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: Re: svn commit: r331502 - stable/11/sys/modules/i2c/iicbus
Message-ID: <20180329044222.GA47986@bali>
References: <201803242250.w2OMoxNl016779@repo.freebsd.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <201803242250.w2OMoxNl016779@repo.freebsd.org>
User-Agent: Mutt/1.7.2 (2016-11-26)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 04:43:58 -0000

On Sat, 24-Mar-2018 at 22:50:59 +0000, Ian Lepore wrote:
> Author: ian
> Date: Sat Mar 24 22:50:59 2018
> New Revision: 331502
> URL: https://svnweb.freebsd.org/changeset/base/331502
> 
> Log:
>   MFC r329534-r329535
>   
>   r329534:
>   Arrange SRCS= as 1 file per line, alphabetical, so it's easier to maintain.
>   Whitespace only, no functional changes.
>   
>   r329535:
>   Add iic_recover_bus.c, now part of iicbus.  This should have been added
>   as part of r320463.

And this one probably too ;-).
 
--- Makefile.ORI        2018-03-29 06:40:08.695742000 +0200
+++ Makefile    2018-03-29 06:40:20.743473000 +0200
@@ -13,6 +13,7 @@
        iicbus_if.h \
        iiconf.c \
        iiconf.h \
+       opt_platform.h
 
 .if !empty(OPT_FDT)
 SRCS+= ofw_iicbus.c ofw_bus_if.h

From owner-svn-src-all@freebsd.org  Thu Mar 29 04:51:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 979D0F754C9;
 Thu, 29 Mar 2018 04:51:08 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 459067A0D3;
 Thu, 29 Mar 2018 04:51:08 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 407C81536D;
 Thu, 29 Mar 2018 04:51:08 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T4p8Te035074;
 Thu, 29 Mar 2018 04:51:08 GMT (envelope-from araujo@FreeBSD.org)
Received: (from araujo@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T4p8NK035072;
 Thu, 29 Mar 2018 04:51:08 GMT (envelope-from araujo@FreeBSD.org)
Message-Id: <201803290451.w2T4p8NK035072@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: araujo set sender to
 araujo@FreeBSD.org using -f
From: Marcelo Araujo 
Date: Thu, 29 Mar 2018 04:51:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331728 - in stable/11/etc: . rc.d
X-SVN-Group: stable-11
X-SVN-Commit-Author: araujo
X-SVN-Commit-Paths: in stable/11/etc: . rc.d
X-SVN-Commit-Revision: 331728
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 04:51:08 -0000

Author: araujo
Date: Thu Mar 29 04:51:07 2018
New Revision: 331728
URL: https://svnweb.freebsd.org/changeset/base/331728

Log:
  MFC r329817:
  
  The firewall_type is ignored if not set in rc.conf or rc.conf.local,
  after r190575 there is an option to call rc.firewall with the firewall_type
  passed in as an argument.
  
  Submitted by:	David P. Discher 
  Sponsored by:	iXsystems Inc.
  Differential Revision:	https://reviews.freebsd.org/D14286

Modified:
  stable/11/etc/rc.d/ipfw
  stable/11/etc/rc.firewall
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/etc/rc.d/ipfw
==============================================================================
--- stable/11/etc/rc.d/ipfw	Thu Mar 29 04:41:45 2018	(r331727)
+++ stable/11/etc/rc.d/ipfw	Thu Mar 29 04:51:07 2018	(r331728)
@@ -40,7 +40,11 @@ ipfw_start()
 {
 	local   _firewall_type
 
-	_firewall_type=$1
+	if [ -n "${1}" ]; then
+		_firewall_type=$1
+	else
+		_firewall_type=${firewall_type}
+	fi
 
 	# set the firewall rules script if none was specified
 	[ -z "${firewall_script}" ] && firewall_script=/etc/rc.firewall

Modified: stable/11/etc/rc.firewall
==============================================================================
--- stable/11/etc/rc.firewall	Thu Mar 29 04:41:45 2018	(r331727)
+++ stable/11/etc/rc.firewall	Thu Mar 29 04:51:07 2018	(r331728)
@@ -112,12 +112,20 @@ setup_ipv6_mandatory() {
 	${fwcmd} add pass ipv6-icmp from any to any icmp6types 2,135,136
 }
 
+. /etc/rc.subr
+. /etc/network.subr
+
 if [ -n "${1}" ]; then
 	firewall_type="${1}"
 fi
+if [ -z "${firewall_rc_config_load}" ]; then
+        load_rc_config ipfw
+else
+        for i in ${firewall_rc_config_load}; do
+                load_rc_config $i
+        done
+fi
 
-. /etc/rc.subr
-. /etc/network.subr
 afexists inet6
 ipv6_available=$?
 

From owner-svn-src-all@freebsd.org  Thu Mar 29 05:01:50 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A452EF7624D;
 Thu, 29 Mar 2018 05:01:50 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 57A207A933;
 Thu, 29 Mar 2018 05:01:50 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 52A3915550;
 Thu, 29 Mar 2018 05:01:50 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2T51o6Z043111;
 Thu, 29 Mar 2018 05:01:50 GMT (envelope-from araujo@FreeBSD.org)
Received: (from araujo@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2T51oLh043109;
 Thu, 29 Mar 2018 05:01:50 GMT (envelope-from araujo@FreeBSD.org)
Message-Id: <201803290501.w2T51oLh043109@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: araujo set sender to
 araujo@FreeBSD.org using -f
From: Marcelo Araujo 
Date: Thu, 29 Mar 2018 05:01:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331729 - stable/11/sbin/ifconfig
X-SVN-Group: stable-11
X-SVN-Commit-Author: araujo
X-SVN-Commit-Paths: stable/11/sbin/ifconfig
X-SVN-Commit-Revision: 331729
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 05:01:51 -0000

Author: araujo
Date: Thu Mar 29 05:01:49 2018
New Revision: 331729
URL: https://svnweb.freebsd.org/changeset/base/331729

Log:
  MFC r305860, r306371
  
  r305860:
  Add an option called "random" that combined with "ether" can generate a
  random MAC address for an Ethernet interface.
  
  PR:		211984
  Submitted by:	pi@
  Reviewed by:	gnn, cem, jhb, lidl, rpokala, wblock
  Approved by:	wblock (manpages)
  
  r306371:
  Indicate that this is a locally administered MAC address.
  
  Submitted by:	lidl
  Differential Revision:	https://reviews.freebsd.org/D7903
  
  PR:		226459
  Requested by:	tobik

Modified:
  stable/11/sbin/ifconfig/af_link.c
  stable/11/sbin/ifconfig/ifconfig.8
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sbin/ifconfig/af_link.c
==============================================================================
--- stable/11/sbin/ifconfig/af_link.c	Thu Mar 29 04:51:07 2018	(r331728)
+++ stable/11/sbin/ifconfig/af_link.c	Thu Mar 29 05:01:49 2018	(r331729)
@@ -133,13 +133,24 @@ link_getaddr(const char *addr, int which)
 
 	if (which != ADDR)
 		errx(1, "can't set link-level netmask or broadcast");
-	if ((temp = malloc(strlen(addr) + 2)) == NULL)
-		errx(1, "malloc failed");
-	temp[0] = ':';
-	strcpy(temp + 1, addr);
-	sdl.sdl_len = sizeof(sdl);
-	link_addr(temp, &sdl);
-	free(temp);
+	if (!strcmp(addr, "random")) {
+		sdl.sdl_len = sizeof(sdl);
+		sdl.sdl_alen = ETHER_ADDR_LEN;
+		sdl.sdl_nlen = 0;
+		sdl.sdl_family = AF_LINK;
+		arc4random_buf(&sdl.sdl_data, ETHER_ADDR_LEN);
+		/* Non-multicast and claim it is locally administered. */
+		sdl.sdl_data[0] &= 0xfc;
+		sdl.sdl_data[0] |= 0x02;
+	} else {
+		if ((temp = malloc(strlen(addr) + 2)) == NULL)
+			errx(1, "malloc failed");
+		temp[0] = ':';
+		strcpy(temp + 1, addr);
+		sdl.sdl_len = sizeof(sdl);
+		link_addr(temp, &sdl);
+		free(temp);
+	}
 	if (sdl.sdl_alen > sizeof(sa->sa_data))
 		errx(1, "malformed link-level address");
 	sa->sa_family = AF_LINK;

Modified: stable/11/sbin/ifconfig/ifconfig.8
==============================================================================
--- stable/11/sbin/ifconfig/ifconfig.8	Thu Mar 29 04:51:07 2018	(r331728)
+++ stable/11/sbin/ifconfig/ifconfig.8	Thu Mar 29 05:01:49 2018	(r331729)
@@ -28,7 +28,7 @@
 .\"     From: @(#)ifconfig.8	8.3 (Berkeley) 1/5/94
 .\" $FreeBSD$
 .\"
-.Dd June 8, 2016
+.Dd September 17, 2016
 .Dt IFCONFIG 8
 .Os
 .Sh NAME
@@ -145,6 +145,12 @@ is specified as a series of colon-separated hex digits
 This can be used to, for example,
 set a new MAC address on an Ethernet interface, though the
 mechanism used is not Ethernet specific.
+Use the
+.Pq Dq random
+keyword to set a randomly generated MAC address.
+A randomly-generated MAC address might be the same as one already in use
+in the network.
+Such duplications are extremely unlikely.
 If the interface is already
 up when this option is used, it will be briefly brought down and
 then brought back up again in order to ensure that the receive
@@ -254,7 +260,7 @@ Display subnet masks in dotted quad notation, for exam
 .br
 255.255.0.0 or 255.255.255.192
 .It Sy hex
-Display subnet masks in hexidecimal, for example:
+Display subnet masks in hexadecimal, for example:
 .br
 0xffff0000 or 0xffffffc0
 .El
@@ -2615,13 +2621,13 @@ and
 .Cm vlandev
 must both be set at the same time.
 .It Cm vlanpcp Ar priority_code_point
-Priority code point 
+Priority code point
 .Pq Dv PCP
 is an 3-bit field which refers to the IEEE 802.1p
 class of service and maps to the frame priority level.
 .Pp
 Values in order of priority are:
-.Cm 1 
+.Cm 1
 .Pq Dv Background (lowest) ,
 .Cm 0
 .Pq Dv Best effort (default) ,
@@ -2759,7 +2765,7 @@ interface to send the frame directly to the remote hos
 broadcasting the frame to the multicast group.
 This is the default.
 .It Fl vxlanlearn
-The forwarding table is not populated by recevied packets.
+The forwarding table is not populated by received packets.
 .It Cm vxlanflush
 Delete all dynamically-learned addresses from the forwarding table.
 .It Cm vxlanflushall

From owner-svn-src-all@freebsd.org  Thu Mar 29 05:47:06 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F7DEF4F610;
 Thu, 29 Mar 2018 05:47:06 +0000 (UTC)
 (envelope-from Andre.Albsmeier@siemens.com)
Received: from goliath.siemens.de (goliath.siemens.de [192.35.17.28])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "goliath.siemens.de",
 Issuer "Siemens Issuing CA Internet Server 2017" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 9D5A77BDAD;
 Thu, 29 Mar 2018 05:47:05 +0000 (UTC)
 (envelope-from Andre.Albsmeier@siemens.com)
Received: from mail2.siemens.de (mail2.siemens.de [139.25.208.11])
 by goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id w2T5RJi5006711
 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Thu, 29 Mar 2018 07:27:19 +0200
Received: from curry.mchp.siemens.de (curry.mchp.siemens.de [139.25.40.130])
 by mail2.siemens.de (8.15.2/8.15.2) with ESMTP id w2T5RI5g024184;
 Thu, 29 Mar 2018 07:27:19 +0200
Received: (from user@localhost)
 by curry.mchp.siemens.de (8.15.2/8.15.2) id w2T5RI3V008239;
Date: Thu, 29 Mar 2018 07:27:18 +0200
From: Andre Albsmeier 
To: Ian Lepore 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: Re: svn commit: r331506 - in stable/11/sys: arm/at91
 arm/broadcom/bcm2835 arm/freescale/imx arm/freescale/vybrid arm/lpc
 arm/samsung/exynos arm/ti dev/flash dev/spibus dev/xilinx mips/atheros
 mips/medi...
Message-ID: <20180329052718.GA54429@bali>
References: <201803242323.w2ONNVMg036256@repo.freebsd.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <201803242323.w2ONNVMg036256@repo.freebsd.org>
User-Agent: Mutt/1.7.2 (2016-11-26)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 05:47:06 -0000

On Sat, 24-Mar-2018 at 23:23:31 +0000, Ian Lepore wrote:
> Author: ian
> Date: Sat Mar 24 23:23:31 2018
> New Revision: 331506
> URL: https://svnweb.freebsd.org/changeset/base/331506
> 
> Log:
>   MFC r310017, r310229, r312289, r327260, r329539, r329544-r329546, r329620,
>       r329729, r329911, r329999
>   ...
>   r329546:
>   Build at45d and mx25l SPI flash drivers as modules.
>   ...

Probably missing:

--- sys/modules/spi/mx25l/Makefile.ORI  2018-03-25 19:36:19.825192000 +0200
+++ sys/modules/spi/mx25l/Makefile      2018-03-29 07:23:45.630508000 +0200
@@ -10,6 +10,7 @@
        bus_if.h \
        device_if.h \
        spibus_if.h \
+       opt_platform.h
 
 .if !empty(OPT_FDT)
 SRCS+= ofw_bus_if.h

From owner-svn-src-all@freebsd.org  Thu Mar 29 12:52:59 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6C2ACF73B62;
 Thu, 29 Mar 2018 12:52:59 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 1A9FC6C345;
 Thu, 29 Mar 2018 12:52:59 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1332B1A1E7;
 Thu, 29 Mar 2018 12:52:59 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TCqwsu078416;
 Thu, 29 Mar 2018 12:52:58 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TCqwSu078410;
 Thu, 29 Mar 2018 12:52:58 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803291252.w2TCqwSu078410@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Thu, 29 Mar 2018 12:52:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331730 - in stable/11: . share/mk sys/conf
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: in stable/11: . share/mk sys/conf
X-SVN-Commit-Revision: 331730
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 12:52:59 -0000

Author: emaste
Date: Thu Mar 29 12:52:58 2018
New Revision: 331730
URL: https://svnweb.freebsd.org/changeset/base/331730

Log:
  MFC kernel build-id support
  
  MFC r320244, r320245, r320246, r320247, r320248, r320249,
      r320250 (bdrewery):
  
  Add basic bsd.linker.mk auto included from bsd.compiler.mk.
  This will provide LINKER_TYPE and LINKER_VERSION.
  
  Support XLD for setting X_LINKER_TYPE and X_LINKER_VERSION.
  This is similar to r300350 for bsd.compiler.mk.
  
  Support cached linker values in environment.
  This is similar to r289659 for bsd.compiler.mk.
  
  LINKER_VERSION: Support external binutils.
  The ports binutils stores the version in the 5th word so just look for
  a version using a pattern instead.
  
  Don't overwrite already-set LINKER_VERSION/LINKER_TYPE.
  
  Provide proper values for X_LINKER_TYPE/VERSION when XLD == LD.
  
  Pass along LINKER_* vars during installworld and show in test-system-compiler.
  
  MFC r320258, r320272, r320275, r320502 (emaste):
  
  change GNU ld LINKER_TYPE from binutils to bfd
  
  GNU binutils includes two linkers: ld.bfd and ld.gold.  For clarity use
  LINKER_TYPE=bfd to refer to ld.bfd, the original binutils linker that
  identifies itself as "GNU ld".
  
  bsd.linker.mk: add band-aid for linker invocation failure
  
  In some cases bsd.linker.mk reports an error like:
  
    make[4]: ".../share/mk/bsd.linker.mk" line 56:
    Unknown linker from LD=ld -m elf32ppc_fbsd:"
  
  For now change this to a .warning, and then assume GNU ld 2.17.50.
  At present the linker type detection is used only for enabling build-id,
  and we can carry on without it when type detection fails.
  
  Also, show errors from ${LD} --version to aid in failure diagnosis.
  Successful invocations of ${LD} --version produce no output on stderr
  so this will not create any spam in non-failing builds.
  
  enable --build-id for the kernel link
  
  A Build-ID is an identifier generated at link time to uniquely identify
  ELF binaries.  It allows efficient confirmation that an executable or
  shared library and a corresponding standalone debuginfo file match.
  (Otherwise, a checksum of the debuginfo file must be calculated when
  opening it in a debugger.)
  
  The FreeBSD base system includes GNU bfd ld 2.17.50 as the linker for
  architectures other than arm64.  Build-ID support was added to bfd ld
  shortly after that version, so was not previously available to us.
  
  We can now start making use of Build-ID as we migrate to using lld or
  bfd ld from ports, conditionally enabled based on the LINKER_TYPE and
  LINKER_VERSION make variables added in r320244 and subsequent commits.
  
  Introduce LINKER_FEATURES to avoid duplicating version logic
  
  MFC r327857 (bdrewery, submitted by Dan McGregor):
  Cache LINKER_FEATURES to fix the wrong ones being used.
  
  Sponsored by:   Dell EMC Isilon
  Sponsored by:   The FreeBSD Foundation

Added:
  stable/11/share/mk/bsd.linker.mk
     - copied, changed from r320244, head/share/mk/bsd.linker.mk
Modified:
  stable/11/Makefile.inc1
  stable/11/share/mk/Makefile
  stable/11/share/mk/bsd.compiler.mk
  stable/11/sys/conf/kern.pre.mk
  stable/11/sys/conf/kmod.mk
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/Makefile.inc1
==============================================================================
--- stable/11/Makefile.inc1	Thu Mar 29 05:01:49 2018	(r331729)
+++ stable/11/Makefile.inc1	Thu Mar 29 12:52:58 2018	(r331730)
@@ -147,7 +147,8 @@ TEST_SYSTEM_COMPILER_VARS= \
 	WANT_COMPILER_TYPE WANT_COMPILER_VERSION WANT_COMPILER_VERSION_FILE \
 	WANT_COMPILER_FREEBSD_VERSION WANT_COMPILER_FREEBSD_VERSION_FILE \
 	CC COMPILER_TYPE COMPILER_FEATURES COMPILER_VERSION \
-	COMPILER_FREEBSD_VERSION
+	COMPILER_FREEBSD_VERSION \
+	LINKER_TYPE LINKER_FEATURES LINKER_VERSION
 test-system-compiler: .PHONY
 .for v in ${TEST_SYSTEM_COMPILER_VARS}
 	${_+_}@printf "%-35s= %s\n" "${v}" "${${v}}"
@@ -179,7 +180,10 @@ CROSSENV+=	COMPILER_VERSION=${X_COMPILER_VERSION} \
 _COMPILER_METADATA_VARS=	COMPILER_VERSION \
 				COMPILER_TYPE \
 				COMPILER_FEATURES \
-				COMPILER_FREEBSD_VERSION
+				COMPILER_FREEBSD_VERSION \
+				LINKER_VERSION \
+				LINKER_FEATURES \
+				LINKER_TYPE
 compiler-metadata.mk: .PHONY .META
 	@: > ${.TARGET}
 	@echo ".info Using cached compiler metadata from build at $$(hostname) on $$(date)" \

Modified: stable/11/share/mk/Makefile
==============================================================================
--- stable/11/share/mk/Makefile	Thu Mar 29 05:01:49 2018	(r331729)
+++ stable/11/share/mk/Makefile	Thu Mar 29 12:52:58 2018	(r331730)
@@ -33,6 +33,7 @@ FILES=	\
 	bsd.kmod.mk \
 	bsd.lib.mk \
 	bsd.libnames.mk \
+	bsd.linker.mk \
 	bsd.links.mk \
 	bsd.man.mk \
 	bsd.mkopt.mk \

Modified: stable/11/share/mk/bsd.compiler.mk
==============================================================================
--- stable/11/share/mk/bsd.compiler.mk	Thu Mar 29 05:01:49 2018	(r331729)
+++ stable/11/share/mk/bsd.compiler.mk	Thu Mar 29 12:52:58 2018	(r331730)
@@ -194,4 +194,5 @@ ${var}.${${X_}_cc_hash}:=	${${var}}
 .endif	# ${cc} == "CC" || !empty(XCC)
 .endfor	# .for cc in CC XCC
 
+.include 
 .endif	# !target(____)

Copied and modified: stable/11/share/mk/bsd.linker.mk (from r320244, head/share/mk/bsd.linker.mk)
==============================================================================
--- head/share/mk/bsd.linker.mk	Thu Jun 22 21:03:20 2017	(r320244, copy source)
+++ stable/11/share/mk/bsd.linker.mk	Thu Mar 29 12:52:58 2018	(r331730)
@@ -9,25 +9,85 @@
 #     major * 10000 + minor * 100 + tiny
 # It too can be overridden on the command line.
 #
+# LINKER_FEATURES may contain one or more of the following, based on
+# linker support for that feature:
+#
+# - build-id : support for generating a Build-ID note
+#
+# These variables with an X_ prefix will also be provided if XLD is set.
+#
 # This file may be included multiple times, but only has effect the first time.
 #
 
 .if !target(____)
 ____:
 
-_ld_version!=	${LD} --version 2>/dev/null | head -n 1 || echo none
+.for ld X_ in LD $${_empty_var_} XLD X_
+.if ${ld} == "LD" || !empty(XLD)
+# Try to import LINKER_TYPE and LINKER_VERSION from parent make.
+# The value is only used/exported for the same environment that impacts
+# LD and LINKER_* settings here.
+_exported_vars=	${X_}LINKER_TYPE ${X_}LINKER_VERSION ${X_}LINKER_FEATURES
+${X_}_ld_hash=	${${ld}}${MACHINE}${PATH}
+${X_}_ld_hash:=	${${X_}_ld_hash:hash}
+# Only import if none of the vars are set somehow else.
+_can_export=	yes
+.for var in ${_exported_vars}
+.if defined(${var})
+_can_export=	no
+.endif
+.endfor
+.if ${_can_export} == yes
+.for var in ${_exported_vars}
+.if defined(${var}.${${X_}_ld_hash})
+${var}=	${${var}.${${X_}_ld_hash}}
+.endif
+.endfor
+.endif
+
+.if ${ld} == "LD" || (${ld} == "XLD" && ${XLD} != ${LD})
+.if !defined(${X_}LINKER_TYPE) || !defined(${X_}LINKER_VERSION)
+_ld_version!=	(${${ld}} --version || echo none) | head -n 1
 .if ${_ld_version} == "none"
-.error Unable to determine linker type from LD=${LD}
+.warning Unable to determine linker type from ${ld}=${${ld}}
 .endif
 .if ${_ld_version:[1..2]} == "GNU ld"
-LINKER_TYPE=	binutils
-_v=	${_ld_version:[3]}
+${X_}LINKER_TYPE=	bfd
+_v=	${_ld_version:M[1-9].[0-9]*:[1]}
 .elif ${_ld_version:[1]} == "LLD"
-LINKER_TYPE=	lld
+${X_}LINKER_TYPE=	lld
 _v=	${_ld_version:[2]}
 .else
-.error Unknown linker from LD=${LD}: ${_ld_version}
+.warning Unknown linker from ${ld}=${${ld}}: ${_ld_version}, defaulting to bfd
+${X_}LINKER_TYPE=	bfd
+_v=	2.17.50
 .endif
-LINKER_VERSION!=echo "${_v:M[1-9].[0-9]*}" | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}'
+${X_}LINKER_VERSION!=	echo "${_v:M[1-9].[0-9]*}" | \
+			  awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}'
+.undef _ld_version
+.undef _v
+${X_}LINKER_FEATURES=
+.if ${${X_}LINKER_TYPE} != "bfd" || ${${X_}LINKER_VERSION} > 21750
+${X_}LINKER_FEATURES+=	build-id
+.endif
+.endif
+.else
+# Use LD's values
+X_LINKER_TYPE=		${LINKER_TYPE}
+X_LINKER_VERSION=	${LINKER_VERSION}
+X_LINKER_FEATURES=	${LINKER_FEATURES}
+.endif	# ${ld} == "LD" || (${ld} == "XLD" && ${XLD} != ${LD})
+
+# Export the values so sub-makes don't have to look them up again, using the
+# hash key computed above.
+.for var in ${_exported_vars}
+${var}.${${X_}_ld_hash}:=	${${var}}
+.export-env ${var}.${${X_}_ld_hash}
+.undef ${var}.${${X_}_ld_hash}
+.endfor
+
+.endif	# ${ld} == "LD" || !empty(XLD)
+.endfor	# .for ld in LD XLD
+
 
 .endif	# !target(____)

Modified: stable/11/sys/conf/kern.pre.mk
==============================================================================
--- stable/11/sys/conf/kern.pre.mk	Thu Mar 29 05:01:49 2018	(r331729)
+++ stable/11/sys/conf/kern.pre.mk	Thu Mar 29 12:52:58 2018	(r331730)
@@ -109,6 +109,10 @@ DEFINED_PROF=	${PROF}
 # can override the others.
 CFLAGS+=	${CONF_CFLAGS}
 
+.if ${LINKER_FEATURES:Mbuild-id}
+LDFLAGS+=	-Wl,--build-id=sha1
+.endif
+
 # Optional linting. This can be overridden in /etc/make.conf.
 LINTFLAGS=	${LINTOBJKERNFLAGS}
 

Modified: stable/11/sys/conf/kmod.mk
==============================================================================
--- stable/11/sys/conf/kmod.mk	Thu Mar 29 05:01:49 2018	(r331729)
+++ stable/11/sys/conf/kmod.mk	Thu Mar 29 12:52:58 2018	(r331730)
@@ -125,6 +125,10 @@ CFLAGS.gcc+= --param large-function-growth=1000
 CFLAGS+=	-fno-common
 LDFLAGS+=	-d -warn-common
 
+.if ${LINKER_FEATURES:Mbuild-id}
+LDFLAGS+=	-Wl,--build-id=sha1
+.endif
+
 CFLAGS+=	${DEBUG_FLAGS}
 .if ${MACHINE_CPUARCH} == amd64
 CFLAGS+=	-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer

From owner-svn-src-all@freebsd.org  Thu Mar 29 13:20:42 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D03D2F75AF3;
 Thu, 29 Mar 2018 13:20:42 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 38B816D86E;
 Thu, 29 Mar 2018 13:20:41 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2TDKelu063089;
 Thu, 29 Mar 2018 06:20:40 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2TDKej2063088;
 Thu, 29 Mar 2018 06:20:40 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803291320.w2TDKej2063088@pdx.rh.CN85.dnsmgr.net>
Subject: Re: svn commit: r331728 - in stable/11/etc: . rc.d
In-Reply-To: <201803290451.w2T4p8NK035072@repo.freebsd.org>
To: Marcelo Araujo 
Date: Thu, 29 Mar 2018 06:20:40 -0700 (PDT)
CC: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 13:20:43 -0000

> Author: araujo
> Date: Thu Mar 29 04:51:07 2018
> New Revision: 331728
> URL: https://svnweb.freebsd.org/changeset/base/331728
> 
> Log:
>   MFC r329817:

I must of missed this when it landed in ^/head

>   The firewall_type is ignored if not set in rc.conf or rc.conf.local,
>   after r190575 there is an option to call rc.firewall with the firewall_type
>   passed in as an argument.
>   
>   Submitted by:	David P. Discher 
>   Sponsored by:	iXsystems Inc.
>   Differential Revision:	https://reviews.freebsd.org/D14286

No one accepted it :-(.

> Modified:
>   stable/11/etc/rc.d/ipfw
>   stable/11/etc/rc.firewall
> Directory Properties:
>   stable/11/   (props changed)
> 
> Modified: stable/11/etc/rc.d/ipfw
> ==============================================================================
> --- stable/11/etc/rc.d/ipfw	Thu Mar 29 04:41:45 2018	(r331727)
> +++ stable/11/etc/rc.d/ipfw	Thu Mar 29 04:51:07 2018	(r331728)
> @@ -40,7 +40,11 @@ ipfw_start()
>  {
>  	local   _firewall_type
>  
> -	_firewall_type=$1
> +	if [ -n "${1}" ]; then
> +		_firewall_type=$1
> +	else
> +		_firewall_type=${firewall_type}
> +	fi
>  
>  	# set the firewall rules script if none was specified
>  	[ -z "${firewall_script}" ] && firewall_script=/etc/rc.firewall
> 
> Modified: stable/11/etc/rc.firewall
> ==============================================================================
> --- stable/11/etc/rc.firewall	Thu Mar 29 04:41:45 2018	(r331727)
> +++ stable/11/etc/rc.firewall	Thu Mar 29 04:51:07 2018	(r331728)
> @@ -112,12 +112,20 @@ setup_ipv6_mandatory() {
>  	${fwcmd} add pass ipv6-icmp from any to any icmp6types 2,135,136
>  }
>  
> +. /etc/rc.subr
> +. /etc/network.subr
> +
>  if [ -n "${1}" ]; then
>  	firewall_type="${1}"
>  fi
> +if [ -z "${firewall_rc_config_load}" ]; then
> +        load_rc_config ipfw
> +else
> +        for i in ${firewall_rc_config_load}; do
> +                load_rc_config $i
> +        done
> +fi

firewall_rc_config_load is undocumented and missing from /etc/defaults/rc.conf.

>  
> -. /etc/rc.subr
> -. /etc/network.subr
>  afexists inet6
>  ipv6_available=$?

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Thu Mar 29 13:55:24 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8CA5EF78472;
 Thu, 29 Mar 2018 13:55:24 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3F9616F48B;
 Thu, 29 Mar 2018 13:55:24 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 202781ABD4;
 Thu, 29 Mar 2018 13:55:24 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TDtNh2009593;
 Thu, 29 Mar 2018 13:55:23 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TDtNLh009590;
 Thu, 29 Mar 2018 13:55:23 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201803291355.w2TDtNLh009590@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric 
Date: Thu, 29 Mar 2018 13:55:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331731 - head/contrib/llvm/tools/lld/ELF
X-SVN-Group: head
X-SVN-Commit-Author: dim
X-SVN-Commit-Paths: head/contrib/llvm/tools/lld/ELF
X-SVN-Commit-Revision: 331731
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 13:55:24 -0000

Author: dim
Date: Thu Mar 29 13:55:23 2018
New Revision: 331731
URL: https://svnweb.freebsd.org/changeset/base/331731

Log:
  Pull in r328738 from upstream lld trunk (by Rafael Espindola):
  
    Strip @VER suffices from the LTO output.
  
    This fixes pr36623.
  
    The problem is that we have to parse versions out of names before LTO
    so that LTO can use that information.
  
    When we get the LTO produced .o files, we replace the previous symbols
    with the LTO produced ones, but they still have @ in their names.
  
    We could just trim the name directly, but calling parseSymbolVersion
    to do it is simpler.
  
  This is a follow-up to r331366, since we discovered that lld could
  append version strings to symbols twice, when using Link Time
  Optimization.
  
  MFC after:	3 months
  X-MFC-With:	r327952

Modified:
  head/contrib/llvm/tools/lld/ELF/InputFiles.cpp
  head/contrib/llvm/tools/lld/ELF/InputFiles.h
  head/contrib/llvm/tools/lld/ELF/SymbolTable.cpp

Modified: head/contrib/llvm/tools/lld/ELF/InputFiles.cpp
==============================================================================
--- head/contrib/llvm/tools/lld/ELF/InputFiles.cpp	Thu Mar 29 12:52:58 2018	(r331730)
+++ head/contrib/llvm/tools/lld/ELF/InputFiles.cpp	Thu Mar 29 13:55:23 2018	(r331731)
@@ -281,6 +281,10 @@ template  ArrayRef ObjFile
   return makeArrayRef(this->Symbols).slice(1, this->FirstNonLocal - 1);
 }
 
+template  ArrayRef ObjFile::getGlobalSymbols() {
+  return makeArrayRef(this->Symbols).slice(this->FirstNonLocal);
+}
+
 template 
 void ObjFile::parse(DenseSet &ComdatGroups) {
   // Read section and symbol tables.

Modified: head/contrib/llvm/tools/lld/ELF/InputFiles.h
==============================================================================
--- head/contrib/llvm/tools/lld/ELF/InputFiles.h	Thu Mar 29 12:52:58 2018	(r331730)
+++ head/contrib/llvm/tools/lld/ELF/InputFiles.h	Thu Mar 29 13:55:23 2018	(r331731)
@@ -167,6 +167,7 @@ template  class ObjFile : public ELFFileBa
   static bool classof(const InputFile *F) { return F->kind() == Base::ObjKind; }
 
   ArrayRef getLocalSymbols();
+  ArrayRef getGlobalSymbols();
 
   ObjFile(MemoryBufferRef M, StringRef ArchiveName);
   void parse(llvm::DenseSet &ComdatGroups);

Modified: head/contrib/llvm/tools/lld/ELF/SymbolTable.cpp
==============================================================================
--- head/contrib/llvm/tools/lld/ELF/SymbolTable.cpp	Thu Mar 29 12:52:58 2018	(r331730)
+++ head/contrib/llvm/tools/lld/ELF/SymbolTable.cpp	Thu Mar 29 13:55:23 2018	(r331731)
@@ -130,7 +130,10 @@ template  void SymbolTable::addCombinedLTO
 
   for (InputFile *File : LTO->compile()) {
     DenseSet DummyGroups;
-    cast>(File)->parse(DummyGroups);
+    auto *Obj = cast>(File);
+    Obj->parse(DummyGroups);
+    for (Symbol *Sym : Obj->getGlobalSymbols())
+      Sym->parseSymbolVersion();
     ObjectFiles.push_back(File);
   }
 }

From owner-svn-src-all@freebsd.org  Thu Mar 29 14:17:17 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E22DAF79DCC;
 Thu, 29 Mar 2018 14:17:16 +0000 (UTC)
 (envelope-from araujobsdport@gmail.com)
Received: from mail-lf0-x232.google.com (mail-lf0-x232.google.com
 [IPv6:2a00:1450:4010:c07::232])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4EEC0704CE;
 Thu, 29 Mar 2018 14:17:16 +0000 (UTC)
 (envelope-from araujobsdport@gmail.com)
Received: by mail-lf0-x232.google.com with SMTP id z143-v6so8650905lff.3;
 Thu, 29 Mar 2018 07:17:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:reply-to:from:date:message-id
 :subject:to:cc;
 bh=YzZ+gcY4tc/Mcg4oDnxEr1RZRYt8nHqsxu6pFXmKpdQ=;
 b=am7D+DuFXF+XhFVjMYt48/Xz0mIwwNMiY5sPVAuXJhz4l4Dd45Siy7eVYWek2FpKsS
 aPfg+lyzUqGESh00eTcB98sDIicSQUtz0ZDGRlJ0Cy4jjevBp55zkoUu8KRr3BzXT53K
 qFq+GLeovv3kqT6u/ixuI6NIYQTlhw4IuClNwjyOrf7V3qMyzW6GK6P5mzNBlPbOGZFY
 GKbeWM07/TUAufpWc78RET9w/x+fFBLsz3iupDrN7KVDHOI7sYyUBpQx2s1y+Wm0Q+OS
 7QRkyXFTi1xArkirl4yiUt5M4k1Sjb/wdFxhQtBrahIW7PF0YD2otbiUSsLhH3Wc08tr
 zxwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:reply-to
 :from:date:message-id:subject:to:cc;
 bh=YzZ+gcY4tc/Mcg4oDnxEr1RZRYt8nHqsxu6pFXmKpdQ=;
 b=Zm2ZynQXiDZtIQYb+72UkHnyOexiNCFW5IHhqxevzEvBpVN/qIyBHwO2Rz09TPyTAj
 nXjH9FCTf/b6LPe0rUFEHAXtMC41B4jJp8spmZTw8PVbwwZvlzOtxnl0p5KZSZg5EOW1
 Rzqp4jcgorKC/m6IEhkSsEeXo6ojscrW7RlD44VUtrj7FmQVR2QWaZYduwH51697NFYe
 tNzKIAZjO1IONYdbg+hy2fbkepjXJwUXLRzX4ndA8UQZazKt+6bZWhMy2gEKWMEKVXnu
 i935Ff1YAJFl7Er7+2i9I8cYN44swiOK0X0wDZviTi5/DKgMLJZ3VoWfDTjFlnFoYW8L
 UidA==
X-Gm-Message-State: AElRT7EyWDN5zFqDvlHzSzr2HZpnRCxzs1z+sT18Bj/2T0vXq6cR86vl
 SPFu2/zkEQUz0bQVZLaQ6c3wNFxXUtHfDN4eYfI=
X-Google-Smtp-Source: AIpwx4/prFLT5RwXe8sc150paMFYWYOjdBwkzJ5LSoCRP8ST7HIlE3RY5BloPRAdPBESUoAEGcmJ1U5yrlBICYgBHgg=
X-Received: by 2002:a19:1d12:: with SMTP id
 d18-v6mr5304367lfd.128.1522333034721; 
 Thu, 29 Mar 2018 07:17:14 -0700 (PDT)
MIME-Version: 1.0
References: <201803290451.w2T4p8NK035072@repo.freebsd.org>
 <201803291320.w2TDKej2063088@pdx.rh.CN85.dnsmgr.net>
In-Reply-To: <201803291320.w2TDKej2063088@pdx.rh.CN85.dnsmgr.net>
Reply-To: araujo@freebsd.org
From: Marcelo Araujo 
Date: Thu, 29 Mar 2018 14:17:03 +0000
Message-ID: 
Subject: Re: svn commit: r331728 - in stable/11/etc: . rc.d
To: "Rodney W. Grimes" 
Cc: Marcelo Araujo , src-committers@freebsd.org,
 svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-Content-Filtered-By: Mailman/MimeDel 2.1.25
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 14:17:17 -0000

On Thu, Mar 29, 2018, 9:20 PM Rodney W. Grimes <
freebsd@pdx.rh.cn85.dnsmgr.net> wrote:

> > Author: araujo
> > Date: Thu Mar 29 04:51:07 2018
> > New Revision: 331728
> > URL: https://svnweb.freebsd.org/changeset/base/331728
> >
> > Log:
> >   MFC r329817:
>
> I must of missed this when it landed in ^/head
>

No you didn't! But for every each commit you send a reply, so I did missed
it checking all the emails traffic.


> >   The firewall_type is ignored if not set in rc.conf or rc.conf.local,
> >   after r190575 there is an option to call rc.firewall with the
> firewall_type
> >   passed in as an argument.
> >
> >   Submitted by:       David P. Discher 
> >   Sponsored by:       iXsystems Inc.
> >   Differential Revision:      https://reviews.freebsd.org/D14286
>
> No one accepted it :-(.
>


I was the reviewer if you didn't notice!


> > Modified:
> >   stable/11/etc/rc.d/ipfw
> >   stable/11/etc/rc.firewall
> > Directory Properties:
> >   stable/11/   (props changed)
> >
> > Modified: stable/11/etc/rc.d/ipfw
> >
> ==============================================================================
> > --- stable/11/etc/rc.d/ipfw   Thu Mar 29 04:41:45 2018        (r331727)
> > +++ stable/11/etc/rc.d/ipfw   Thu Mar 29 04:51:07 2018        (r331728)
> > @@ -40,7 +40,11 @@ ipfw_start()
> >  {
> >       local   _firewall_type
> >
> > -     _firewall_type=$1
> > +     if [ -n "${1}" ]; then
> > +             _firewall_type=$1
> > +     else
> > +             _firewall_type=${firewall_type}
> > +     fi
> >
> >       # set the firewall rules script if none was specified
> >       [ -z "${firewall_script}" ] && firewall_script=/etc/rc.firewall
> >
> > Modified: stable/11/etc/rc.firewall
> >
> ==============================================================================
> > --- stable/11/etc/rc.firewall Thu Mar 29 04:41:45 2018        (r331727)
> > +++ stable/11/etc/rc.firewall Thu Mar 29 04:51:07 2018        (r331728)
> > @@ -112,12 +112,20 @@ setup_ipv6_mandatory() {
> >       ${fwcmd} add pass ipv6-icmp from any to any icmp6types 2,135,136
> >  }
> >
> > +. /etc/rc.subr
> > +. /etc/network.subr
> > +
> >  if [ -n "${1}" ]; then
> >       firewall_type="${1}"
> >  fi
> > +if [ -z "${firewall_rc_config_load}" ]; then
> > +        load_rc_config ipfw
> > +else
> > +        for i in ${firewall_rc_config_load}; do
> > +                load_rc_config $i
> > +        done
> > +fi
>
> firewall_rc_config_load is undocumented and missing from
> /etc/defaults/rc.conf.


If you have time, it is a good opportunity to send a patch, I can review
it, otherwise I will fix it this week or next.

Thanks.


> >
> > -. /etc/rc.subr
> > -. /etc/network.subr
> >  afexists inet6
> >  ipv6_available=$?
>
> --
> Rod Grimes
> rgrimes@freebsd.org
>

From owner-svn-src-all@freebsd.org  Thu Mar 29 14:27:41 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8471EF4EDF9;
 Thu, 29 Mar 2018 14:27:41 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3A36270D5A;
 Thu, 29 Mar 2018 14:27:41 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 30A3F1B0CD;
 Thu, 29 Mar 2018 14:27:41 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TEReln024931;
 Thu, 29 Mar 2018 14:27:40 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TEReA3024929;
 Thu, 29 Mar 2018 14:27:40 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201803291427.w2TEReA3024929@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston 
Date: Thu, 29 Mar 2018 14:27:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331732 - head/sys/vm
X-SVN-Group: head
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: head/sys/vm
X-SVN-Commit-Revision: 331732
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 14:27:41 -0000

Author: markj
Date: Thu Mar 29 14:27:40 2018
New Revision: 331732
URL: https://svnweb.freebsd.org/changeset/base/331732

Log:
  Fix the background laundering mechanism after r329882.
  
  Rather than using the number of inactive queue scans as a metric for
  how many clean pages are being freed by the page daemon, have the
  page daemon keep a running counter of the number of pages it has freed,
  and have the laundry thread use that when computing the background
  laundering threshold.
  
  Reviewed by:	kib
  Differential Revision:	https://reviews.freebsd.org/D14884

Modified:
  head/sys/vm/vm_pageout.c
  head/sys/vm/vm_pagequeue.h

Modified: head/sys/vm/vm_pageout.c
==============================================================================
--- head/sys/vm/vm_pageout.c	Thu Mar 29 13:55:23 2018	(r331731)
+++ head/sys/vm/vm_pageout.c	Thu Mar 29 14:27:40 2018	(r331732)
@@ -943,8 +943,7 @@ vm_pageout_laundry_worker(void *arg)
 {
 	struct vm_domain *vmd;
 	struct vm_pagequeue *pq;
-	uint64_t nclean, ndirty;
-	u_int inactq_scans, last_launder;
+	uint64_t nclean, ndirty, nfreed;
 	int domain, last_target, launder, shortfall, shortfall_cycle, target;
 	bool in_shortfall;
 
@@ -958,8 +957,7 @@ vm_pageout_laundry_worker(void *arg)
 	in_shortfall = false;
 	shortfall_cycle = 0;
 	target = 0;
-	inactq_scans = 0;
-	last_launder = 0;
+	nfreed = 0;
 
 	/*
 	 * Calls to these handlers are serialized by the swap syscall lock.
@@ -1000,7 +998,6 @@ vm_pageout_laundry_worker(void *arg)
 			target = 0;
 			goto trybackground;
 		}
-		last_launder = inactq_scans;
 		launder = target / shortfall_cycle--;
 		goto dolaundry;
 
@@ -1009,24 +1006,23 @@ vm_pageout_laundry_worker(void *arg)
 		 * meet the conditions to perform background laundering:
 		 *
 		 * 1. The ratio of dirty to clean inactive pages exceeds the
-		 *    background laundering threshold and the pagedaemon has
-		 *    been woken up to reclaim pages since our last
-		 *    laundering, or
+		 *    background laundering threshold, or
 		 * 2. we haven't yet reached the target of the current
 		 *    background laundering run.
 		 *
 		 * The background laundering threshold is not a constant.
 		 * Instead, it is a slowly growing function of the number of
-		 * page daemon scans since the last laundering.  Thus, as the
-		 * ratio of dirty to clean inactive pages grows, the amount of
-		 * memory pressure required to trigger laundering decreases.
+		 * clean pages freed by the page daemon since the last
+		 * background laundering.  Thus, as the ratio of dirty to
+		 * clean inactive pages grows, the amount of memory pressure
+		 * required to trigger laundering decreases.
 		 */
 trybackground:
 		nclean = vmd->vmd_free_count +
 		    vmd->vmd_pagequeues[PQ_INACTIVE].pq_cnt;
 		ndirty = vmd->vmd_pagequeues[PQ_LAUNDRY].pq_cnt;
-		if (target == 0 && inactq_scans != last_launder &&
-		    ndirty * isqrt(inactq_scans - last_launder) >= nclean) {
+		if (target == 0 && ndirty * isqrt(nfreed /
+		    (vmd->vmd_free_target - vmd->vmd_free_min)) >= nclean) {
 			target = vmd->vmd_background_launder_target;
 		}
 
@@ -1039,8 +1035,8 @@ trybackground:
 		 * proceed at the background laundering rate.
 		 */
 		if (target > 0) {
-			if (inactq_scans != last_launder) {
-				last_launder = inactq_scans;
+			if (nfreed > 0) {
+				nfreed = 0;
 				last_target = target;
 			} else if (last_target - target >=
 			    vm_background_launder_max * PAGE_SIZE / 1024) {
@@ -1089,7 +1085,8 @@ dolaundry:
 
 		if (target == 0)
 			vmd->vmd_laundry_request = VM_LAUNDRY_IDLE;
-		inactq_scans = vmd->vmd_inactq_scans;
+		nfreed += vmd->vmd_clean_pages_freed;
+		vmd->vmd_clean_pages_freed = 0;
 		vm_pagequeue_unlock(pq);
 	}
 }
@@ -1367,7 +1364,8 @@ drop_page:
 				    VM_LAUNDRY_BACKGROUND;
 			wakeup(&vmd->vmd_laundry_request);
 		}
-		vmd->vmd_inactq_scans++;
+		vmd->vmd_clean_pages_freed +=
+		    starting_page_shortage - page_shortage;
 		vm_pagequeue_unlock(pq);
 	}
 

Modified: head/sys/vm/vm_pagequeue.h
==============================================================================
--- head/sys/vm/vm_pagequeue.h	Thu Mar 29 13:55:23 2018	(r331731)
+++ head/sys/vm/vm_pagequeue.h	Thu Mar 29 14:27:40 2018	(r331732)
@@ -86,6 +86,7 @@ struct sysctl_oid;
  * d   vm_domainset_lock
  * a   atomic
  * c   const after boot
+ * q   page queue lock
 */
 struct vm_domain {
 	struct vm_pagequeue vmd_pagequeues[PQ_COUNT];
@@ -112,15 +113,15 @@ struct vm_domain {
 	int vmd_pageout_pages_needed;	/* (d) page daemon waiting for pages? */
 	bool vmd_minset;		/* (d) Are we in vm_min_domains? */
 	bool vmd_severeset;		/* (d) Are we in vm_severe_domains? */
-	int vmd_inactq_scans;
 	enum {
 		VM_LAUNDRY_IDLE = 0,
 		VM_LAUNDRY_BACKGROUND,
 		VM_LAUNDRY_SHORTFALL
 	} vmd_laundry_request;
 
-	/* Paging thresholds. */
-	u_int vmd_background_launder_target;
+	/* Paging thresholds and targets. */
+	u_int vmd_clean_pages_freed;	/* (q) accumulator for laundry thread */
+	u_int vmd_background_launder_target; /* (c) */
 	u_int vmd_free_reserved;	/* (c) pages reserved for deadlock */
 	u_int vmd_free_target;		/* (c) pages desired free */
 	u_int vmd_free_min;		/* (c) pages desired free */

From owner-svn-src-all@freebsd.org  Thu Mar 29 15:00:49 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15F08F51DEE;
 Thu, 29 Mar 2018 15:00:49 +0000 (UTC)
 (envelope-from rpokala@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BD77772445;
 Thu, 29 Mar 2018 15:00:48 +0000 (UTC)
 (envelope-from rpokala@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B83BF1B5EC;
 Thu, 29 Mar 2018 15:00:48 +0000 (UTC)
 (envelope-from rpokala@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TF0mdo041653;
 Thu, 29 Mar 2018 15:00:48 GMT (envelope-from rpokala@FreeBSD.org)
Received: (from rpokala@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TF0m5W041640;
 Thu, 29 Mar 2018 15:00:48 GMT (envelope-from rpokala@FreeBSD.org)
Message-Id: <201803291500.w2TF0m5W041640@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: rpokala set sender to
 rpokala@FreeBSD.org using -f
From: Ravi Pokala 
Date: Thu, 29 Mar 2018 15:00:48 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331733 - stable/11/sys/dev/jedec_dimm
X-SVN-Group: stable-11
X-SVN-Commit-Author: rpokala
X-SVN-Commit-Paths: stable/11/sys/dev/jedec_dimm
X-SVN-Commit-Revision: 331733
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 15:00:49 -0000

Author: rpokala
Date: Thu Mar 29 15:00:48 2018
New Revision: 331733
URL: https://svnweb.freebsd.org/changeset/base/331733

Log:
  MFC 331345:
  
  jedec_dimm: Use correct string length when populating sc->slotid_str
  
  Don't limit the copy to the size of the target string *pointer* (always
  4 on 32-bit / 8 on 64-bit). Instead, just use strdup().

Modified:
  stable/11/sys/dev/jedec_dimm/jedec_dimm.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/jedec_dimm/jedec_dimm.c
==============================================================================
--- stable/11/sys/dev/jedec_dimm/jedec_dimm.c	Thu Mar 29 14:27:40 2018	(r331732)
+++ stable/11/sys/dev/jedec_dimm/jedec_dimm.c	Thu Mar 29 15:00:48 2018	(r331733)
@@ -341,10 +341,7 @@ jedec_dimm_attach(device_t dev)
 	if (resource_string_value(device_get_name(dev), device_get_unit(dev),
 	    "slotid", &slotid_str) == 0) {
 		if (slotid_str != NULL) {
-			sc->slotid_str = malloc(strlen(slotid_str) + 1,
-			    M_DEVBUF, (M_WAITOK | M_ZERO));
-			strlcpy(sc->slotid_str, slotid_str,
-			    sizeof(sc->slotid_str));
+			sc->slotid_str = strdup(slotid_str, M_DEVBUF);
 			SYSCTL_ADD_STRING(ctx, children, OID_AUTO, "slotid",
 			    CTLFLAG_RD | CTLFLAG_MPSAFE, sc->slotid_str, 0,
 			    "DIMM Slot Identifier");

From owner-svn-src-all@freebsd.org  Thu Mar 29 15:01:02 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4FED5F51EBE;
 Thu, 29 Mar 2018 15:01:02 +0000 (UTC)
 (envelope-from rpokala@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 0585F7256C;
 Thu, 29 Mar 2018 15:01:02 +0000 (UTC)
 (envelope-from rpokala@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 005981B5FF;
 Thu, 29 Mar 2018 15:01:02 +0000 (UTC)
 (envelope-from rpokala@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TF112O041961;
 Thu, 29 Mar 2018 15:01:01 GMT (envelope-from rpokala@FreeBSD.org)
Received: (from rpokala@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TF11x0041960;
 Thu, 29 Mar 2018 15:01:01 GMT (envelope-from rpokala@FreeBSD.org)
Message-Id: <201803291501.w2TF11x0041960@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: rpokala set sender to
 rpokala@FreeBSD.org using -f
From: Ravi Pokala 
Date: Thu, 29 Mar 2018 15:01:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331734 - stable/10/sys/dev/jedec_dimm
X-SVN-Group: stable-10
X-SVN-Commit-Author: rpokala
X-SVN-Commit-Paths: stable/10/sys/dev/jedec_dimm
X-SVN-Commit-Revision: 331734
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 15:01:02 -0000

Author: rpokala
Date: Thu Mar 29 15:01:01 2018
New Revision: 331734
URL: https://svnweb.freebsd.org/changeset/base/331734

Log:
  MFC 331345:
  
  jedec_dimm: Use correct string length when populating sc->slotid_str
  
  Don't limit the copy to the size of the target string *pointer* (always
  4 on 32-bit / 8 on 64-bit). Instead, just use strdup().

Modified:
  stable/10/sys/dev/jedec_dimm/jedec_dimm.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/jedec_dimm/jedec_dimm.c
==============================================================================
--- stable/10/sys/dev/jedec_dimm/jedec_dimm.c	Thu Mar 29 15:00:48 2018	(r331733)
+++ stable/10/sys/dev/jedec_dimm/jedec_dimm.c	Thu Mar 29 15:01:01 2018	(r331734)
@@ -341,10 +341,7 @@ jedec_dimm_attach(device_t dev)
 	if (resource_string_value(device_get_name(dev), device_get_unit(dev),
 	    "slotid", &slotid_str) == 0) {
 		if (slotid_str != NULL) {
-			sc->slotid_str = malloc(strlen(slotid_str) + 1,
-			    M_DEVBUF, (M_WAITOK | M_ZERO));
-			strlcpy(sc->slotid_str, slotid_str,
-			    sizeof(sc->slotid_str));
+			sc->slotid_str = strdup(slotid_str, M_DEVBUF);
 			SYSCTL_ADD_STRING(ctx, children, OID_AUTO, "slotid",
 			    CTLFLAG_RD | CTLFLAG_MPSAFE, sc->slotid_str, 0,
 			    "DIMM Slot Identifier");

From owner-svn-src-all@freebsd.org  Thu Mar 29 15:08:41 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15A50F52870;
 Thu, 29 Mar 2018 15:08:41 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BBF0C72CA6;
 Thu, 29 Mar 2018 15:08:40 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B6A951B78E;
 Thu, 29 Mar 2018 15:08:40 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TF8evL045474;
 Thu, 29 Mar 2018 15:08:40 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TF8ebP045473;
 Thu, 29 Mar 2018 15:08:40 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803291508.w2TF8ebP045473@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Thu, 29 Mar 2018 15:08:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331735 - stable/11/sys/amd64/amd64
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: stable/11/sys/amd64/amd64
X-SVN-Commit-Revision: 331735
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 15:08:41 -0000

Author: kib
Date: Thu Mar 29 15:08:40 2018
New Revision: 331735
URL: https://svnweb.freebsd.org/changeset/base/331735

Log:
  MFC r331374:
  Fixes for ptrace(PT_GETXSTATE_INFO) related to the padding in struct
  ptrace_xstate_info).

Modified:
  stable/11/sys/amd64/amd64/ptrace_machdep.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/amd64/amd64/ptrace_machdep.c
==============================================================================
--- stable/11/sys/amd64/amd64/ptrace_machdep.c	Thu Mar 29 15:01:01 2018	(r331734)
+++ stable/11/sys/amd64/amd64/ptrace_machdep.c	Thu Mar 29 15:08:40 2018	(r331735)
@@ -43,10 +43,20 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
+#ifdef COMPAT_FREEBSD32
+struct ptrace_xstate_info32 {
+	uint32_t	xsave_mask1, xsave_mask2;
+	uint32_t	xsave_len;
+};
+#endif
+
 static int
 cpu_ptrace_xstate(struct thread *td, int req, void *addr, int data)
 {
 	struct ptrace_xstate_info info;
+#ifdef COMPAT_FREEBSD32
+	struct ptrace_xstate_info32 info32;
+#endif
 	char *savefpu;
 	int error;
 
@@ -76,13 +86,28 @@ cpu_ptrace_xstate(struct thread *td, int req, void *ad
 		break;
 
 	case PT_GETXSTATE_INFO:
-		if (data != sizeof(info)) {
-			error  = EINVAL;
-			break;
+#ifdef COMPAT_FREEBSD32
+		if (SV_CURPROC_FLAG(SV_ILP32)) {
+			if (data != sizeof(info32)) {
+				error = EINVAL;
+			} else {
+				info32.xsave_len = cpu_max_ext_state_size;
+				info32.xsave_mask1 = xsave_mask;
+				info32.xsave_mask2 = xsave_mask >> 32;
+				error = copyout(&info32, addr, data);
+			}
+		} else
+#endif
+		{
+			if (data != sizeof(info)) {
+				error  = EINVAL;
+			} else {
+				bzero(&info, sizeof(info));
+				info.xsave_len = cpu_max_ext_state_size;
+				info.xsave_mask = xsave_mask;
+				error = copyout(&info, addr, data);
+			}
 		}
-		info.xsave_len = cpu_max_ext_state_size;
-		info.xsave_mask = xsave_mask;
-		error = copyout(&info, addr, data);
 		break;
 
 	case PT_GETXSTATE:

From owner-svn-src-all@freebsd.org  Thu Mar 29 15:12:04 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3FE21F52EB1;
 Thu, 29 Mar 2018 15:12:04 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id DD751730CC;
 Thu, 29 Mar 2018 15:12:03 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D84AD1B903;
 Thu, 29 Mar 2018 15:12:03 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TFC37U050053;
 Thu, 29 Mar 2018 15:12:03 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TFC3Id050052;
 Thu, 29 Mar 2018 15:12:03 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803291512.w2TFC3Id050052@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Thu, 29 Mar 2018 15:12:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331736 - stable/11/sys/kern
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: stable/11/sys/kern
X-SVN-Commit-Revision: 331736
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 15:12:04 -0000

Author: kib
Date: Thu Mar 29 15:12:03 2018
New Revision: 331736
URL: https://svnweb.freebsd.org/changeset/base/331736

Log:
  MFC r331375:
  Do not send signals to init directly from shutdown_nice(9), do it from
  the task context.

Modified:
  stable/11/sys/kern/kern_shutdown.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/kern_shutdown.c
==============================================================================
--- stable/11/sys/kern/kern_shutdown.c	Thu Mar 29 15:08:40 2018	(r331735)
+++ stable/11/sys/kern/kern_shutdown.c	Thu Mar 29 15:12:03 2018	(r331736)
@@ -68,6 +68,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 
@@ -232,6 +233,26 @@ sys_reboot(struct thread *td, struct reboot_args *uap)
 	return (error);
 }
 
+static void
+shutdown_nice_task_fn(void *arg, int pending __unused)
+{
+	int howto;
+
+	howto = (uintptr_t)arg;
+	/* Send a signal to init(8) and have it shutdown the world. */
+	PROC_LOCK(initproc);
+	if (howto & RB_POWEROFF)
+		kern_psignal(initproc, SIGUSR2);
+	else if (howto & RB_HALT)
+		kern_psignal(initproc, SIGUSR1);
+	else
+		kern_psignal(initproc, SIGINT);
+	PROC_UNLOCK(initproc);
+}
+
+static struct task shutdown_nice_task = TASK_INITIALIZER(0,
+    &shutdown_nice_task_fn, NULL);
+
 /*
  * Called by events that want to shut down.. e.g   on a PC
  */
@@ -239,18 +260,14 @@ void
 shutdown_nice(int howto)
 {
 
-	if (initproc != NULL) {
-		/* Send a signal to init(8) and have it shutdown the world. */
-		PROC_LOCK(initproc);
-		if (howto & RB_POWEROFF)
-			kern_psignal(initproc, SIGUSR2);
-		else if (howto & RB_HALT)
-			kern_psignal(initproc, SIGUSR1);
-		else
-			kern_psignal(initproc, SIGINT);
-		PROC_UNLOCK(initproc);
+	if (initproc != NULL && !SCHEDULER_STOPPED()) {
+		shutdown_nice_task.ta_context = (void *)(uintptr_t)howto;
+		taskqueue_enqueue(taskqueue_fast, &shutdown_nice_task);
 	} else {
-		/* No init(8) running, so simply reboot. */
+		/*
+		 * No init(8) running, or scheduler would not allow it
+		 * to run, so simply reboot.
+		 */
 		kern_reboot(howto | RB_NOSYNC);
 	}
 }

From owner-svn-src-all@freebsd.org  Thu Mar 29 15:58:50 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id EF8F9F571F6;
 Thu, 29 Mar 2018 15:58:49 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id A1DD175627;
 Thu, 29 Mar 2018 15:58:49 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9C9E11C000;
 Thu, 29 Mar 2018 15:58:49 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TFwnoX071024;
 Thu, 29 Mar 2018 15:58:49 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TFwnRk071022;
 Thu, 29 Mar 2018 15:58:49 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803291558.w2TFwnRk071022@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Thu, 29 Mar 2018 15:58:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331737 - head/sys/dev/de
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: head/sys/dev/de
X-SVN-Commit-Revision: 331737
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 15:58:50 -0000

Author: brooks
Date: Thu Mar 29 15:58:49 2018
New Revision: 331737
URL: https://svnweb.freebsd.org/changeset/base/331737

Log:
  GC never enabled support for SIOCGADDRROM and SIOCGCHIPID.
  
  When de(4) was imported in 1997 the world was not ready for these ioctls.
  In over 20 years that hasn't changed so it seems safe to assume their
  time will never come.
  
  Reviewed by:	imp, jhb
  Approved by:	CheriBSD
  MFC after:	1 week
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14889

Modified:
  head/sys/dev/de/if_de.c
  head/sys/dev/de/if_devar.h

Modified: head/sys/dev/de/if_de.c
==============================================================================
--- head/sys/dev/de/if_de.c	Thu Mar 29 15:12:03 2018	(r331736)
+++ head/sys/dev/de/if_de.c	Thu Mar 29 15:58:49 2018	(r331737)
@@ -4266,18 +4266,6 @@ tulip_ifioctl(struct ifnet * ifp, u_long cmd, caddr_t 
 	    break;
 	}
 
-#ifdef SIOCGADDRROM
-	case SIOCGADDRROM: {
-	    error = copyout(sc->tulip_rombuf, ifr->ifr_data, sizeof(sc->tulip_rombuf));
-	    break;
-	}
-#endif
-#ifdef SIOCGCHIPID
-	case SIOCGCHIPID: {
-	    ifr->ifr_metric = (int) sc->tulip_chipid;
-	    break;
-	}
-#endif
 	default: {
 	    error = ether_ioctl(ifp, cmd, data);
 	    break;

Modified: head/sys/dev/de/if_devar.h
==============================================================================
--- head/sys/dev/de/if_devar.h	Thu Mar 29 15:12:03 2018	(r331736)
+++ head/sys/dev/de/if_devar.h	Thu Mar 29 15:58:49 2018	(r331737)
@@ -876,11 +876,6 @@ static const struct {
 #define	TULIP_TXMAP_POSTSYNC(ri, di)					\
 	_TULIP_MAP_SYNC(ri, di, BUS_DMASYNC_POSTWRITE)
 
-#ifdef notyet
-#define	SIOCGADDRROM		_IOW('i', 240, struct ifreq)	/* get 128 bytes of ROM */
-#define	SIOCGCHIPID		_IOWR('i', 241, struct ifreq)	/* get chipid */
-#endif
-
 #if defined(TULIP_HDR_DATA)
 static tulip_softc_t	*tulips[TULIP_MAX_DEVICES];
 #endif

From owner-svn-src-all@freebsd.org  Thu Mar 29 16:19:47 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B7BC1F59E2E
 for ;
 Thu, 29 Mar 2018 16:19:47 +0000 (UTC) (envelope-from ian@freebsd.org)
Received: from outbound1a.eu.mailhop.org (outbound1a.eu.mailhop.org
 [52.58.109.202])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 41C5A7659D
 for ; Thu, 29 Mar 2018 16:19:46 +0000 (UTC)
 (envelope-from ian@freebsd.org)
X-MHO-User: fa8d8c7a-336c-11e8-91c6-33ffc249f3e8
X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information
X-Originating-IP: 67.177.211.60
X-Mail-Handler: DuoCircle Outbound SMTP
Received: from ilsoft.org (unknown [67.177.211.60])
 by outbound1.eu.mailhop.org (Halon) with ESMTPSA
 id fa8d8c7a-336c-11e8-91c6-33ffc249f3e8;
 Thu, 29 Mar 2018 16:19:40 +0000 (UTC)
Received: from rev (rev [172.22.42.240])
 by ilsoft.org (8.15.2/8.15.2) with ESMTP id w2TGJXXL067388;
 Thu, 29 Mar 2018 10:19:33 -0600 (MDT) (envelope-from ian@freebsd.org)
Message-ID: <1522340373.49673.112.camel@freebsd.org>
Subject: Re: svn commit: r331728 - in stable/11/etc: . rc.d
From: Ian Lepore 
To: rgrimes@freebsd.org, Marcelo Araujo 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Date: Thu, 29 Mar 2018 10:19:33 -0600
In-Reply-To: <201803291320.w2TDKej2063088@pdx.rh.CN85.dnsmgr.net>
References: <201803291320.w2TDKej2063088@pdx.rh.CN85.dnsmgr.net>
Content-Type: text/plain; charset="ISO-8859-1"
X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port 
Mime-Version: 1.0
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 16:19:47 -0000

On Thu, 2018-03-29 at 06:20 -0700, Rodney W. Grimes wrote:
> > 
> > Author: araujo
> > Date: Thu Mar 29 04:51:07 2018
> > New Revision: 331728
> > URL: https://svnweb.freebsd.org/changeset/base/331728
> > 
> > Log:
> >  MFC r329817:
> I must of missed this when it landed in ^/head
> 
> > 
> >  The firewall_type is ignored if not set in rc.conf or rc.conf.local,
> >  after r190575 there is an option to call rc.firewall with the firewall_type
> >  passed in as an argument.
> > 
> >  Submitted by:	David P. Discher 
> >  Sponsored by:	iXsystems Inc.
> >  Differential Revision:	https://reviews.freebsd.org/D14286
> No one accepted it :-(.
> 

That's not a blocker for committing; plenty of time elapsed to allow
anyone to reject the change. IMO, even a flat-out rejection isn't a
blocker to committing except for things like random or crypto code that
require formal approval (but I'd certainly think hard about committing
if people rejected the change, and put some effort into finding a
compromise first).

There were comments added to the review, which makes citing the review
in the commit useful. I usually also add a note such as '(timed out)'
after the url, but I've noticed that doing so ruins the automatic
closing of the review and requires you to manually abandon it instead.

-- Ian


From owner-svn-src-all@freebsd.org  Thu Mar 29 16:33:47 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5A7D3F5B29D;
 Thu, 29 Mar 2018 16:33:47 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id A92B8773B0;
 Thu, 29 Mar 2018 16:33:46 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2TGXiuS064129;
 Thu, 29 Mar 2018 09:33:44 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2TGXinX064128;
 Thu, 29 Mar 2018 09:33:44 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
Subject: Re: svn commit: r331728 - in stable/11/etc: . rc.d
In-Reply-To: <1522340373.49673.112.camel@freebsd.org>
To: Ian Lepore 
Date: Thu, 29 Mar 2018 09:33:44 -0700 (PDT)
CC: rgrimes@freebsd.org, Marcelo Araujo ,
 src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 16:33:47 -0000

> On Thu, 2018-03-29 at 06:20 -0700, Rodney W. Grimes wrote:
> > > 
> > > Author: araujo
> > > Date: Thu Mar 29 04:51:07 2018
> > > New Revision: 331728
> > > URL: https://svnweb.freebsd.org/changeset/base/331728
> > > 
> > > Log:
> > > ? MFC r329817:
> > I must of missed this when it landed in ^/head
> > 
> > > 
> > > ? The firewall_type is ignored if not set in rc.conf or rc.conf.local,
> > > ? after r190575 there is an option to call rc.firewall with the firewall_type
> > > ? passed in as an argument.
> > > ??
> > > ? Submitted by:	David P. Discher 
> > > ? Sponsored by:	iXsystems Inc.
> > > ? Differential Revision:	https://reviews.freebsd.org/D14286
> > No one accepted it :-(.
> > 
> 
> That's not a blocker for committing; plenty of time elapsed to allow
> anyone to reject the change. IMO, even a flat-out rejection isn't a
> blocker to committing except for things like random or crypto code that
> require formal approval (but I'd certainly think hard about committing
> if people rejected the change, and put some effort into finding a
> compromise first).

It seems that the Phabricator review system is somewhat disfunctional
in that actual review is only happening in some cases.  Some people
have even stated they flat out hate it.  Others say that it is the
way to go.

As araujo@ pointed out he was a "reviewer", but as I'll point out
he didnt accept the review, which causes the landing state to be
wrong, and is kinda implied that anyone commiting a phabricator
change has reviewed it anyway.

The problem is that most people are not notified that a review
of a change is even in process until the commit lands, this is
not a functional communications system.

Requring us all to go sign up like imp@ did to receive all
submitted reviews, imho, is also a non functional situation.

> There were comments added to the review, which makes citing the review
> in the commit useful.

Yes, I have no problem with citing it,
just unhappy no one had bother to accept it.  

> ?I usually also add a note such as '(timed out)'
> after the url, but I've noticed that doing so ruins the automatic
> closing of the review and requires you to manually abandon it instead.

There isnt a way to close it as commited/fixed in rXXXXXX manually?
If not that is yet another shortcoming of phabricator that should
be looked at.

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Thu Mar 29 17:20:00 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4EB5FF64980;
 Thu, 29 Mar 2018 17:20:00 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id ED88079551;
 Thu, 29 Mar 2018 17:19:59 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E20571CDAC;
 Thu, 29 Mar 2018 17:19:59 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2THJxJd011041;
 Thu, 29 Mar 2018 17:19:59 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2THJxpi011040;
 Thu, 29 Mar 2018 17:19:59 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201803291719.w2THJxpi011040@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston 
Date: Thu, 29 Mar 2018 17:19:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331738 - head/sys/sys
X-SVN-Group: head
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: head/sys/sys
X-SVN-Commit-Revision: 331738
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 17:20:00 -0000

Author: markj
Date: Thu Mar 29 17:19:59 2018
New Revision: 331738
URL: https://svnweb.freebsd.org/changeset/base/331738

Log:
  Have TD_LOCKS_DEC() assert that td_locks is positive.
  
  This makes it easier to catch lock accounting bugs, since the problem
  is otherwise only detected upon a return to user mode (or never, for
  kernel threads).
  
  Reviewed by:	cem
  MFC after:	1 week
  Sponsored by:	Dell EMC Isilon
  Differential Revision:	https://reviews.freebsd.org/D14896

Modified:
  head/sys/sys/proc.h

Modified: head/sys/sys/proc.h
==============================================================================
--- head/sys/sys/proc.h	Thu Mar 29 15:58:49 2018	(r331737)
+++ head/sys/sys/proc.h	Thu Mar 29 17:19:59 2018	(r331738)
@@ -381,7 +381,10 @@ do {									\
 } while (0)
 
 #define	TD_LOCKS_INC(td)	((td)->td_locks++)
-#define	TD_LOCKS_DEC(td)	((td)->td_locks--)
+#define	TD_LOCKS_DEC(td) do {						\
+	KASSERT((td)->td_locks > 0, ("thread %p owns no locks", (td)));	\
+	(td)->td_locks--;						\
+} while (0)
 #else
 #define	THREAD_LOCKPTR_ASSERT(td, lock)
 

From owner-svn-src-all@freebsd.org  Thu Mar 29 17:36:35 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 84CE7F661E9;
 Thu, 29 Mar 2018 17:36:35 +0000 (UTC)
 (envelope-from davidcs@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3839F7A276;
 Thu, 29 Mar 2018 17:36:35 +0000 (UTC)
 (envelope-from davidcs@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 327821D167;
 Thu, 29 Mar 2018 17:36:35 +0000 (UTC)
 (envelope-from davidcs@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2THaZ2q020535;
 Thu, 29 Mar 2018 17:36:35 GMT (envelope-from davidcs@FreeBSD.org)
Received: (from davidcs@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2THaY0C020529;
 Thu, 29 Mar 2018 17:36:34 GMT (envelope-from davidcs@FreeBSD.org)
Message-Id: <201803291736.w2THaY0C020529@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: davidcs set sender to
 davidcs@FreeBSD.org using -f
From: David C Somayajulu 
Date: Thu, 29 Mar 2018 17:36:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331739 - head/sys/dev/qlxgbe
X-SVN-Group: head
X-SVN-Commit-Author: davidcs
X-SVN-Commit-Paths: head/sys/dev/qlxgbe
X-SVN-Commit-Revision: 331739
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 17:36:35 -0000

Author: davidcs
Date: Thu Mar 29 17:36:34 2018
New Revision: 331739
URL: https://svnweb.freebsd.org/changeset/base/331739

Log:
  1. Add additional debug prints.
  2. Break transmit when IFF_DRV_RUNNING is OFF.
  3. set desc_count=0 for default case in switch in ql_rcv_isr()
  MFC after:5 days

Modified:
  head/sys/dev/qlxgbe/ql_dbg.h
  head/sys/dev/qlxgbe/ql_hw.c
  head/sys/dev/qlxgbe/ql_ioctl.c
  head/sys/dev/qlxgbe/ql_isr.c
  head/sys/dev/qlxgbe/ql_os.c
  head/sys/dev/qlxgbe/ql_ver.h

Modified: head/sys/dev/qlxgbe/ql_dbg.h
==============================================================================
--- head/sys/dev/qlxgbe/ql_dbg.h	Thu Mar 29 17:19:59 2018	(r331738)
+++ head/sys/dev/qlxgbe/ql_dbg.h	Thu Mar 29 17:36:34 2018	(r331739)
@@ -59,6 +59,7 @@ extern void ql_dump_buf32(qla_host_t *ha, const char *
 #define INJCT_SGL_RCV_INV_DESC_COUNT			0x0000D
 #define INJCT_SGL_LRO_INV_DESC_COUNT			0x0000E
 #define INJCT_PEER_PORT_FAILURE_ERR_RECOVERY		0x0000F
+#define INJCT_TXBUF_MBUF_NON_NULL			0x00010
 
 #ifdef QL_DBG
 

Modified: head/sys/dev/qlxgbe/ql_hw.c
==============================================================================
--- head/sys/dev/qlxgbe/ql_hw.c	Thu Mar 29 17:19:59 2018	(r331738)
+++ head/sys/dev/qlxgbe/ql_hw.c	Thu Mar 29 17:36:34 2018	(r331739)
@@ -1090,7 +1090,11 @@ ql_hw_add_sysctls(qla_host_t *ha)
                 "\t\t\t 8: mbx: mailbox command failure\n"
                 "\t\t\t 9: heartbeat failure\n"
                 "\t\t\t A: temperature failure\n"
-		"\t\t\t 11: m_getcl or m_getjcl failure\n" );
+		"\t\t\t 11: m_getcl or m_getjcl failure\n"
+		"\t\t\t 13: Invalid Descriptor Count in SGL Receive\n"
+		"\t\t\t 14: Invalid Descriptor Count in LRO Receive\n"
+		"\t\t\t 15: peer port error recovery failure\n"
+		"\t\t\t 16: tx_buf[next_prod_index].mbuf != NULL\n" );
 
 	SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev),
                 SYSCTL_CHILDREN(device_get_sysctl_tree(dev)),
@@ -2906,7 +2910,7 @@ ql_del_hw_if_exit:
 void
 qla_confirm_9kb_enable(qla_host_t *ha)
 {
-	uint32_t supports_9kb = 0;
+//	uint32_t supports_9kb = 0;
 
 	ha->hw.mbx_intr_mask_offset = READ_REG32(ha, Q8_MBOX_INT_MASK_MSIX);
 
@@ -2914,10 +2918,12 @@ qla_confirm_9kb_enable(qla_host_t *ha)
 	WRITE_REG32(ha, Q8_MBOX_INT_ENABLE, BIT_2);
 	WRITE_REG32(ha, ha->hw.mbx_intr_mask_offset, 0x0);
 
+#if 0
 	qla_get_nic_partition(ha, &supports_9kb, NULL);
 
 	if (!supports_9kb)
-		ha->hw.enable_9kb = 0;
+#endif
+	ha->hw.enable_9kb = 0;
 
 	return;
 }
@@ -3589,6 +3595,13 @@ qla_hw_all_mcast(qla_host_t *ha, uint32_t add_mcast)
 			bcopy(ha->hw.mcast[i].addr, mcast, ETHER_ADDR_LEN);
 			mcast = mcast + ETHER_ADDR_LEN;
 			count++;
+
+			device_printf(ha->pci_dev,
+				"%s: %x:%x:%x:%x:%x:%x \n",
+				__func__, ha->hw.mcast[i].addr[0],
+				ha->hw.mcast[i].addr[1], ha->hw.mcast[i].addr[2],
+				ha->hw.mcast[i].addr[3], ha->hw.mcast[i].addr[4],
+				ha->hw.mcast[i].addr[5]);
 			
 			if (count == Q8_MAX_MAC_ADDRS) {
 				if (qla_config_mac_addr(ha, ha->hw.mac_addr_arr,
@@ -3825,6 +3838,18 @@ ql_hw_tx_done_locked(qla_host_t *ha, uint32_t txr_idx)
 	}
 
 	hw_tx_cntxt->txr_free += comp_count;
+
+	if (hw_tx_cntxt->txr_free > NUM_TX_DESCRIPTORS)
+		device_printf(ha->pci_dev, "%s [%d]: txr_idx = %d txr_free = %d"
+			"txr_next = %d txr_comp = %d\n", __func__, __LINE__,
+			txr_idx, hw_tx_cntxt->txr_free,
+			hw_tx_cntxt->txr_next, hw_tx_cntxt->txr_comp);
+
+	QL_ASSERT(ha, (hw_tx_cntxt->txr_free <= NUM_TX_DESCRIPTORS), \
+		("%s [%d]: txr_idx = %d txr_free = %d txr_next = %d txr_comp = %d\n",\
+		__func__, __LINE__, txr_idx, hw_tx_cntxt->txr_free, \
+		hw_tx_cntxt->txr_next, hw_tx_cntxt->txr_comp));
+	
 	return;
 }
 
@@ -3961,7 +3986,9 @@ qla_init_nic_func(qla_host_t *ha)
 
         if (err) {
                 device_printf(dev, "%s: failed [0x%08x]\n", __func__, err);
-        }
+        } else {
+                device_printf(dev, "%s: successful\n", __func__);
+	}
 
         return 0;
 }

Modified: head/sys/dev/qlxgbe/ql_ioctl.c
==============================================================================
--- head/sys/dev/qlxgbe/ql_ioctl.c	Thu Mar 29 17:19:59 2018	(r331738)
+++ head/sys/dev/qlxgbe/ql_ioctl.c	Thu Mar 29 17:36:34 2018	(r331739)
@@ -269,7 +269,8 @@ ql_eioctl(struct cdev *dev, u_long cmd, caddr_t data, 
 			}
 		} else {
 
-			if (QLA_LOCK(ha, __func__, QLA_LOCK_DEFAULT_MS_TIMEOUT, 0) == 0) {
+#define QLA_LOCK_MDUMP_MS_TIMEOUT (QLA_LOCK_DEFAULT_MS_TIMEOUT * 5)
+			if (QLA_LOCK(ha, __func__, QLA_LOCK_MDUMP_MS_TIMEOUT, 0) == 0) {
 				if (!ha->hw.mdump_done) {
 					fw_dump->saved = 0;
 					QL_INITIATE_RECOVERY(ha);
@@ -303,7 +304,7 @@ ql_eioctl(struct cdev *dev, u_long cmd, caddr_t data, 
 			}
 			fw_dump->usec_ts = ha->hw.mdump_usec_ts;
 			
-			if (QLA_LOCK(ha, __func__, QLA_LOCK_DEFAULT_MS_TIMEOUT, 0) == 0) {
+			if (QLA_LOCK(ha, __func__, QLA_LOCK_MDUMP_MS_TIMEOUT, 0) == 0) {
 				ha->hw.mdump_done = 0;
 				QLA_UNLOCK(ha, __func__);
 			} else {

Modified: head/sys/dev/qlxgbe/ql_isr.c
==============================================================================
--- head/sys/dev/qlxgbe/ql_isr.c	Thu Mar 29 17:19:59 2018	(r331738)
+++ head/sys/dev/qlxgbe/ql_isr.c	Thu Mar 29 17:36:34 2018	(r331739)
@@ -703,6 +703,7 @@ ql_rcv_isr(qla_host_t *ha, uint32_t sds_idx, uint32_t 
 			break;
 
 		default:
+			desc_count = 0;
 			device_printf(dev, "%s: default 0x%llx!\n", __func__,
 					(long long unsigned int)sdesc->data[0]);
 			break;

Modified: head/sys/dev/qlxgbe/ql_os.c
==============================================================================
--- head/sys/dev/qlxgbe/ql_os.c	Thu Mar 29 17:19:59 2018	(r331738)
+++ head/sys/dev/qlxgbe/ql_os.c	Thu Mar 29 17:36:34 2018	(r331739)
@@ -1289,13 +1289,20 @@ qla_send(qla_host_t *ha, struct mbuf **m_headp, uint32
 
 	tx_idx = ha->hw.tx_cntxt[txr_idx].txr_next;
 
-	if (NULL != ha->tx_ring[txr_idx].tx_buf[tx_idx].m_head) {
+	if ((NULL != ha->tx_ring[txr_idx].tx_buf[tx_idx].m_head) ||
+		(QL_ERR_INJECT(ha, INJCT_TXBUF_MBUF_NON_NULL))){
 		QL_ASSERT(ha, 0, ("%s [%d]: txr_idx = %d tx_idx = %d "\
 			"mbuf = %p\n", __func__, __LINE__, txr_idx, tx_idx,\
 			ha->tx_ring[txr_idx].tx_buf[tx_idx].m_head));
+
+		device_printf(ha->pci_dev, "%s [%d]: txr_idx = %d tx_idx = %d "
+			"mbuf = %p\n", __func__, __LINE__, txr_idx, tx_idx,
+			ha->tx_ring[txr_idx].tx_buf[tx_idx].m_head);
+
 		if (m_head)
 			m_freem(m_head);
 		*m_headp = NULL;
+		QL_INITIATE_RECOVERY(ha);
 		return (ret);
 	}
 
@@ -1428,8 +1435,8 @@ qla_fp_taskqueue(void *context, int pending)
         qla_tx_fp_t *fp;
         qla_host_t *ha;
         struct ifnet *ifp;
-        struct mbuf  *mp;
-        int ret;
+        struct mbuf  *mp = NULL;
+        int ret = 0;
 	uint32_t txr_idx;
 	uint32_t iscsi_pdu = 0;
 	uint32_t rx_pkts_left = -1;
@@ -1453,7 +1460,7 @@ qla_fp_taskqueue(void *context, int pending)
         }
 
 	while (rx_pkts_left && !ha->stop_rcv &&
-		(ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+		(ifp->if_drv_flags & IFF_DRV_RUNNING) && ha->hw.link_up) {
 		rx_pkts_left = ql_rcv_isr(ha, fp->txr_idx, 64);
 
 #ifdef QL_ENABLE_ISCSI_TLV
@@ -1498,13 +1505,18 @@ qla_fp_taskqueue(void *context, int pending)
 
 			/* Send a copy of the frame to the BPF listener */
 			ETHER_BPF_MTAP(ifp, mp);
-			if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+
+			if (((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) ||
+				(!ha->hw.link_up))
 				break;
 
 			mp = drbr_peek(ifp, fp->tx_br);
 		}
 	}
         mtx_unlock(&fp->tx_mtx);
+
+	if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+		goto qla_fp_taskqueue_exit;
 
 qla_fp_taskqueue_exit0:
 

Modified: head/sys/dev/qlxgbe/ql_ver.h
==============================================================================
--- head/sys/dev/qlxgbe/ql_ver.h	Thu Mar 29 17:19:59 2018	(r331738)
+++ head/sys/dev/qlxgbe/ql_ver.h	Thu Mar 29 17:36:34 2018	(r331739)
@@ -38,6 +38,6 @@
 
 #define QLA_VERSION_MAJOR 	3
 #define QLA_VERSION_MINOR	10
-#define QLA_VERSION_BUILD       36
+#define QLA_VERSION_BUILD       37
 
 #endif /* #ifndef _QL_VER_H_ */

From owner-svn-src-all@freebsd.org  Thu Mar 29 17:44:56 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70AB1F66D30;
 Thu, 29 Mar 2018 17:44:56 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 244337AA08;
 Thu, 29 Mar 2018 17:44:56 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1F0D91D330;
 Thu, 29 Mar 2018 17:44:56 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2THiug9025865;
 Thu, 29 Mar 2018 17:44:56 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2THitKa025864;
 Thu, 29 Mar 2018 17:44:55 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803291744.w2THitKa025864@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Thu, 29 Mar 2018 17:44:55 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331740 - head
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: head
X-SVN-Commit-Revision: 331740
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 17:44:56 -0000

Author: brooks
Date: Thu Mar 29 17:44:55 2018
New Revision: 331740
URL: https://svnweb.freebsd.org/changeset/base/331740

Log:
  It is March not May.
  
  Reported by:	jkim

Modified:
  head/UPDATING

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Thu Mar 29 17:36:34 2018	(r331739)
+++ head/UPDATING	Thu Mar 29 17:44:55 2018	(r331740)
@@ -51,7 +51,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW:
 
 ****************************** SPECIAL WARNING: ******************************
 
-20180528:
+20180328:
 	Support for token ring networks has been removed. If you
 	have "device token" in your kernel config you should remove
 	it. No device drivers supported token ring.

From owner-svn-src-all@freebsd.org  Thu Mar 29 17:51:21 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 647CBF67857;
 Thu, 29 Mar 2018 17:51:21 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1])
 (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 107CD7AEBC;
 Thu, 29 Mar 2018 17:51:21 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215])
 by mail.baldwin.cx (Postfix) with ESMTPSA id 1395E10AFAD;
 Thu, 29 Mar 2018 13:51:20 -0400 (EDT)
From: John Baldwin 
To: Dimitry Andric 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: Re: svn commit: r331686 - head
Date: Thu, 29 Mar 2018 10:28:32 -0700
Message-ID: <2963143.tibTdn2gMF@ralph.baldwin.cx>
User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; )
In-Reply-To: <3653AD2C-F427-4BE7-874C-FF3AF3BDA85D@FreeBSD.org>
References: <201803281651.w2SGp59K069533@repo.freebsd.org>
 <3653AD2C-F427-4BE7-874C-FF3AF3BDA85D@FreeBSD.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3
 (mail.baldwin.cx); Thu, 29 Mar 2018 13:51:20 -0400 (EDT)
X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx
X-Virus-Status: Clean
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 17:51:21 -0000

On Wednesday, March 28, 2018 09:54:41 PM Dimitry Andric wrote:
> On 28 Mar 2018, at 18:51, John Baldwin  wrote:
> > 
> > Author: jhb
> > Date: Wed Mar 28 16:51:05 2018
> > New Revision: 331686
> > URL: https://svnweb.freebsd.org/changeset/base/331686
> > 
> > Log:
> >  Expand remaining instances of 'make kernel' to buildkernel + installkernel.
> > 
> >  The 'kernel' target is a bit more obscure compared to buildkernel and
> >  installkernel.
> 
> The 'kernel' target doesn't seem that obscure to me, it is clearly
> documented in build(7), right?  In my opinion, the main advantage of
> separate build and install steps is that you can run the former as a
> non-privileged user, while only having to run the latter as super-user.

I think it is still obscure even if in build(7).  That said, after I had
done the commit I had a similar thought that splitting up the build and
install steps is useful in its own right, whether that is due to doing
builds as unprivileged, or doing builds on one machine or installs on
another.

-- 
John Baldwin

From owner-svn-src-all@freebsd.org  Thu Mar 29 17:51:28 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1AD9AF67897;
 Thu, 29 Mar 2018 17:51:28 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from mail.baldwin.cx (bigwig.baldwin.cx [96.47.65.170])
 (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 265337AF37;
 Thu, 29 Mar 2018 17:51:25 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215])
 by mail.baldwin.cx (Postfix) with ESMTPSA id AE1C710A87D;
 Thu, 29 Mar 2018 13:51:18 -0400 (EDT)
From: John Baldwin 
To: rgrimes@freebsd.org
Cc: Ian Lepore , Marcelo Araujo ,
 src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: Re: svn commit: r331728 - in stable/11/etc: . rc.d
Date: Thu, 29 Mar 2018 10:45:15 -0700
Message-ID: <1736582.AJYahrK36B@ralph.baldwin.cx>
User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; )
In-Reply-To: <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
References: <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3
 (mail.baldwin.cx); Thu, 29 Mar 2018 13:51:18 -0400 (EDT)
X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx
X-Virus-Status: Clean
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 17:51:28 -0000

On Thursday, March 29, 2018 09:33:44 AM Rodney W. Grimes wrote:
> > On Thu, 2018-03-29 at 06:20 -0700, Rodney W. Grimes wrote:
> > That's not a blocker for committing; plenty of time elapsed to allow
> > anyone to reject the change. IMO, even a flat-out rejection isn't a
> > blocker to committing except for things like random or crypto code that
> > require formal approval (but I'd certainly think hard about committing
> > if people rejected the change, and put some effort into finding a
> > compromise first).
> 
> It seems that the Phabricator review system is somewhat disfunctional
> in that actual review is only happening in some cases.  Some people
> have even stated they flat out hate it.  Others say that it is the
> way to go.

Despite its limitations, we are in a far better shape with phab than we
were without it.
 
> As araujo@ pointed out he was a "reviewer", but as I'll point out
> he didnt accept the review, which causes the landing state to be
> wrong, and is kinda implied that anyone commiting a phabricator
> change has reviewed it anyway.

Eh, I treat the 'reviewed by' line in the commit log itself as the
authoritative list.  For phab I think folks who use it understand
that only those who "accepted" it are the actual approvers (this is
true in LLVM as well).

> The problem is that most people are not notified that a review
> of a change is even in process until the commit lands, this is
> not a functional communications system.
> 
> Requring us all to go sign up like imp@ did to receive all
> submitted reviews, imho, is also a non functional situation.

People are welcome to create herald rules to sign up for notifications
for specific parts of the tree.  That is open even to non-committers to
do.  I don't think that is all that onerous as it gives users the 
control to decide which parts of the tree they want to monitor.

> > ?I usually also add a note such as '(timed out)'
> > after the url, but I've noticed that doing so ruins the automatic
> > closing of the review and requires you to manually abandon it instead.
> 
> There isnt a way to close it as commited/fixed in rXXXXXX manually?
> If not that is yet another shortcoming of phabricator that should
> be looked at.

You can close without abandoning.  (I've done it a few times by just
using "Close Revision").  I do think this is something that didn't used
to work.  I've also noticed that recently phab has grown a "Edit Related Objects"
that seems to let you associate commits with a commit so that you can
fix a review to be tagged to the commit that closed it if it doesn't
auto-close (this seems to be a very recent change).  Prior to that,
I've closed the revision with a comment using the right syntax
(rS) that turns into a hyperlink to the commit in the comment
closing the review (a bare SVN-style r won't do the hyperlink).

-- 
John Baldwin

From owner-svn-src-all@freebsd.org  Thu Mar 29 18:02:01 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3B0E9F68979
 for ;
 Thu, 29 Mar 2018 18:02:01 +0000 (UTC)
 (envelope-from wlosh@bsdimp.com)
Received: from mail-it0-x233.google.com (mail-it0-x233.google.com
 [IPv6:2607:f8b0:4001:c0b::233])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BFB157BB33
 for ; Thu, 29 Mar 2018 18:02:00 +0000 (UTC)
 (envelope-from wlosh@bsdimp.com)
Received: by mail-it0-x233.google.com with SMTP id 71-v6so6944329ith.2
 for ; Thu, 29 Mar 2018 11:02:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=bsdimp-com.20150623.gappssmtp.com; s=20150623;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=tdlOqYEseDRDIIX+dfHOvfnLgy7FvAqzKilhnPCGeps=;
 b=smxNLzTT7vk8aAz9UUBSVIfFQxrLEOuQ++EBaA12S7QE23UcNAA+VGxf9fHP/5Utkn
 kBc8QJkWWP/RyNk3X4DrKtOvKPnueKrB2rlj5/kc66Q/i5m4JHlS9T6mDTwr2S6ub8BJ
 axFa/DDOncfcwd+9vhuYnkmfnex0yNgIdnASNlPIHI1N/8k7OQ4yrfjDYX8O6sS/5mGU
 KEY3Ebxj5utuvOngV6QvNQU30U2RmeULkPYCII6nJiPcD+WMNK8IJ59P49w2NEttxORA
 aj3qupgwZdOK8H5RO2VJEMEABcoS0sn3NK8XHo0UYruwWs47iqN0Nqk5Lht9WtCDj/WY
 /fQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc;
 bh=tdlOqYEseDRDIIX+dfHOvfnLgy7FvAqzKilhnPCGeps=;
 b=rSLJz1eonoW/RhYXjAntAbuYOPjLXak3EtQbXUk759r+k1H2+Pmya21tF80zJWo6f8
 8UbSdTkOCDTrqYSJdT95uqTfMuTke9orEIjNH/wH9+8IUFgoo/JntG1i8qfT65LGbVDa
 aAVE0+IBYPunexZms06iT9rKyL4Rk3ln60S5VUpONwoIvBWgPz9FXBYg7PYPQlWuNUUx
 jxkbtGFJCxuHqiWDehpwou9II3UT6C+ydFz/5vhlE3a4ERvfxUHsafqGa8YBeay3IznP
 i5KzSDVyqxgMzvsO60hxkKwNWLq8OCdUO1Pdq1ZrLTf1cqsc1wpfFRiOEwdYAjEyRtQe
 1fAg==
X-Gm-Message-State: AElRT7Fr7u4x8Wodqyns0omloV0kuOR3t/ZCjC74QxS+hSk2pw/9ioSU
 KIXILcBiv9pyZdSZaX60tGSTQpiKGzWEdd3oiHCKKQ==
X-Google-Smtp-Source: AIpwx4/ksvoVKbjB1aoXG0bDGPQHs3PWH4ZGtOja8gSlgHUKBb0GomMVEtkgKSmQzZyszFAnnTIHensuI2mTaCRTQpw=
X-Received: by 2002:a24:4286:: with SMTP id
 i128-v6mr3676366itb.73.1522346520071; 
 Thu, 29 Mar 2018 11:02:00 -0700 (PDT)
MIME-Version: 1.0
Sender: wlosh@bsdimp.com
Received: by 10.79.203.196 with HTTP; Thu, 29 Mar 2018 11:01:59 -0700 (PDT)
X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d]
In-Reply-To: <2963143.tibTdn2gMF@ralph.baldwin.cx>
References: <201803281651.w2SGp59K069533@repo.freebsd.org>
 <3653AD2C-F427-4BE7-874C-FF3AF3BDA85D@FreeBSD.org>
 <2963143.tibTdn2gMF@ralph.baldwin.cx>
From: Warner Losh 
Date: Thu, 29 Mar 2018 12:01:59 -0600
X-Google-Sender-Auth: QbrIFjTqyrWm1F-TQ4vLc60J5fg
Message-ID: 
Subject: Re: svn commit: r331686 - head
To: John Baldwin 
Cc: Dimitry Andric ,
 src-committers , svn-src-all@freebsd.org, 
 svn-src-head@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-Content-Filtered-By: Mailman/MimeDel 2.1.25
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 18:02:01 -0000

On Thu, Mar 29, 2018 at 11:28 AM, John Baldwin  wrote:

> On Wednesday, March 28, 2018 09:54:41 PM Dimitry Andric wrote:
> > On 28 Mar 2018, at 18:51, John Baldwin  wrote:
> > >
> > > Author: jhb
> > > Date: Wed Mar 28 16:51:05 2018
> > > New Revision: 331686
> > > URL: https://svnweb.freebsd.org/changeset/base/331686
> > >
> > > Log:
> > >  Expand remaining instances of 'make kernel' to buildkernel +
> installkernel.
> > >
> > >  The 'kernel' target is a bit more obscure compared to buildkernel and
> > >  installkernel.
> >
> > The 'kernel' target doesn't seem that obscure to me, it is clearly
> > documented in build(7), right?  In my opinion, the main advantage of
> > separate build and install steps is that you can run the former as a
> > non-privileged user, while only having to run the latter as super-user.
>
> I think it is still obscure even if in build(7).  That said, after I had
> done the commit I had a similar thought that splitting up the build and
> install steps is useful in its own right, whether that is due to doing
> builds as unprivileged, or doing builds on one machine or installs on
> another.
>

Yea, I documented make kernel because it was fewer steps. I've used it 5
times in the last ~20 years or so since I did that. At the time, I think
there was material talking about 'make world' still, so this was there for
symmetry. Just like almost nobody uses make world today, almost nobody
users make kernel. It is correct, and it works, but times and fashion has
changed. We have a completely unpriv'd build now that needn't be in
/usr/src, something that wasn't the case when the 'world' and 'kernel'
targets were invented, IIRC.

I didn't make a fuss when UPDATING changed because of the un-priv'd build,
priv'd install separation that is so widely practiced, we barely need to
call it out in UPDATING. And that 'barely' is covered completely by the
commit to make this two steps.

I'd only add I'd keep it documented in build(7), just like we keep world
documented.

Warner

From owner-svn-src-all@freebsd.org  Thu Mar 29 18:05:30 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF267F68E71
 for ;
 Thu, 29 Mar 2018 18:05:29 +0000 (UTC)
 (envelope-from wlosh@bsdimp.com)
Received: from mail-it0-x22a.google.com (mail-it0-x22a.google.com
 [IPv6:2607:f8b0:4001:c0b::22a])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 403717BE9A
 for ; Thu, 29 Mar 2018 18:05:29 +0000 (UTC)
 (envelope-from wlosh@bsdimp.com)
Received: by mail-it0-x22a.google.com with SMTP id v194-v6so8924756itb.0
 for ; Thu, 29 Mar 2018 11:05:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=bsdimp-com.20150623.gappssmtp.com; s=20150623;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=5dldukiHLxiGO8KXuhsLtOVSory8Rxs3olS5e3EmDuo=;
 b=bgleIBP33BiCaUwmiGHh/oDs9A4DU2etEwjJbVA5obE0bmUc6cNYDoskOpixUmJLcC
 FqIBB5THKRiRrDU+4HYOCrFXzqeK2UjfEwsLjE4L0gNH9p4TonAMereoFNYmysIuqADn
 ObKrv3YFsO2rhEnSBGi2JfDSjnp10BFbnPCUnojmE1HIwHctIaojOtnmE0aAUlLEe20g
 QzxmQEhZHOFLdyZnxx9ZKlb8JXwpPoRhmGYaMH5UL6izU7Ylm13JyzskUh7KsNjn8xTe
 98K8ob7bWfihL+Jg0Y0bZ40OVcPhy76pO1tTDJPzV4IHdC+JfLdF0MHbVeGvT3UZJ9S7
 hjsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc;
 bh=5dldukiHLxiGO8KXuhsLtOVSory8Rxs3olS5e3EmDuo=;
 b=ClvGE0cTl9GJdK8X3eXDUBnMGwiPzuaIWiKzVLBeh2JSfKVhdauwDpYDEJoDVTMNsg
 xt8kDn5vNxmouPbaY+OhVamowN4E/39g2/usOZvgKEcjuT3dqU9kOfD/IkClA4rE+vrK
 7KF5il5HwCxL5f84KeGj2LCiSKbNvgkfmtr2+3B3y3okXgi2Ylj5f6ZVR1V1/PQi0H5E
 WTnigTtMGNbpq5M66D06kVglm0a0qyo/IF2hY5UaqevfeUsmT6enuzhm0xnTyisRC/1b
 HT08yYzqvdMlAOBMkZf5GVnQaJbDj4/H4pzE/dl5SbGwUjruG40SqAqPsRy4EQJLi8UI
 2Zbg==
X-Gm-Message-State: AElRT7GEatGkZd+y3fcx5oEiCvN+Sn3rZ/i3dxxMUt3zAw7OotytnKmo
 BD+zqvORceXB5+DchQgzKoUpxg2Hl63d+J5TD8sy5A==
X-Google-Smtp-Source: AIpwx48BHxv0SvEXe2Ix5i2iD0+VJNAvMPzy713OJCdwt/VNvvtA6S9kRmo8YB5/UvKjO6OqPSvZByfPs9L+eNLf91A=
X-Received: by 2002:a24:b649:: with SMTP id d9-v6mr8907096itj.51.1522346728629; 
 Thu, 29 Mar 2018 11:05:28 -0700 (PDT)
MIME-Version: 1.0
Sender: wlosh@bsdimp.com
Received: by 10.79.203.196 with HTTP; Thu, 29 Mar 2018 11:05:27 -0700 (PDT)
X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d]
In-Reply-To: <1736582.AJYahrK36B@ralph.baldwin.cx>
References: <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
 <1736582.AJYahrK36B@ralph.baldwin.cx>
From: Warner Losh 
Date: Thu, 29 Mar 2018 12:05:27 -0600
X-Google-Sender-Auth: U78F6w8CsTwwHJLjsBttqpfZbWw
Message-ID: 
Subject: Re: svn commit: r331728 - in stable/11/etc: . rc.d
To: John Baldwin 
Cc: "Rodney W. Grimes" , Ian Lepore , 
 Marcelo Araujo ,
 src-committers , svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-Content-Filtered-By: Mailman/MimeDel 2.1.25
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 18:05:30 -0000

On Thu, Mar 29, 2018 at 11:45 AM, John Baldwin  wrote:

> On Thursday, March 29, 2018 09:33:44 AM Rodney W. Grimes wrote:
> > > On Thu, 2018-03-29 at 06:20 -0700, Rodney W. Grimes wrote:
> > > That's not a blocker for committing; plenty of time elapsed to allow
> > > anyone to reject the change. IMO, even a flat-out rejection isn't a
> > > blocker to committing except for things like random or crypto code that
> > > require formal approval (but I'd certainly think hard about committing
> > > if people rejected the change, and put some effort into finding a
> > > compromise first).
> >
> > It seems that the Phabricator review system is somewhat disfunctional
> > in that actual review is only happening in some cases.  Some people
> > have even stated they flat out hate it.  Others say that it is the
> > way to go.
>
> Despite its limitations, we are in a far better shape with phab than we
> were without it.
>
> > As araujo@ pointed out he was a "reviewer", but as I'll point out
> > he didnt accept the review, which causes the landing state to be
> > wrong, and is kinda implied that anyone commiting a phabricator
> > change has reviewed it anyway.
>
> Eh, I treat the 'reviewed by' line in the commit log itself as the
> authoritative list.  For phab I think folks who use it understand
> that only those who "accepted" it are the actual approvers (this is
> true in LLVM as well).
>
> > The problem is that most people are not notified that a review
> > of a change is even in process until the commit lands, this is
> > not a functional communications system.
> >
> > Requring us all to go sign up like imp@ did to receive all
> > submitted reviews, imho, is also a non functional situation.
>
> People are welcome to create herald rules to sign up for notifications
> for specific parts of the tree.  That is open even to non-committers to
> do.  I don't think that is all that onerous as it gives users the
> control to decide which parts of the tree they want to monitor.


The number of reviews isn't onerous. However, as jhb points out, I have
lots of reviews that have people added automatically in stand, for man
pages, parts of the networking stack, etc. It's really not that hard to do.
Lots of people monitor what's going on.

> > ?I usually also add a note such as '(timed out)'
> > > after the url, but I've noticed that doing so ruins the automatic
> > > closing of the review and requires you to manually abandon it instead.
> >
> > There isnt a way to close it as commited/fixed in rXXXXXX manually?
> > If not that is yet another shortcoming of phabricator that should
> > be looked at.
>
> You can close without abandoning.  (I've done it a few times by just
> using "Close Revision").  I do think this is something that didn't used
> to work.  I've also noticed that recently phab has grown a "Edit Related
> Objects"
> that seems to let you associate commits with a commit so that you can
> fix a review to be tagged to the commit that closed it if it doesn't
> auto-close (this seems to be a very recent change).  Prior to that,
> I've closed the revision with a comment using the right syntax
> (rS) that turns into a hyperlink to the commit in the comment
> closing the review (a bare SVN-style r won't do the hyperlink).
>

Now that's handy for when I misspell Differential Revision: or some other
crazy thing happens so the revision isn't closed. Thanks for the useful tip.

Warner

From owner-svn-src-all@freebsd.org  Thu Mar 29 19:29:15 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 470B8F6FA57;
 Thu, 29 Mar 2018 19:29:15 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E65367F4C4;
 Thu, 29 Mar 2018 19:29:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E11691E426;
 Thu, 29 Mar 2018 19:29:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TJTEwG077138;
 Thu, 29 Mar 2018 19:29:14 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TJTD4u077128;
 Thu, 29 Mar 2018 19:29:13 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201803291929.w2TJTD4u077128@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber 
Date: Thu, 29 Mar 2018 19:29:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331741 - in stable: 10/release/arm 11/release/arm
X-SVN-Group: stable-11
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/release/arm 11/release/arm
X-SVN-Commit-Revision: 331741
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 19:29:15 -0000

Author: gjb
Date: Thu Mar 29 19:29:12 2018
New Revision: 331741
URL: https://svnweb.freebsd.org/changeset/base/331741

Log:
  MFC r331562 (manu):
   release: arm: Copy boot.scr from ports
  
   Latest u-boot update need u-boot script to load and start ubldr.
   (See D14230 for more details)
   Copy this file for our arm release on the fat partition.

Modified:
  stable/11/release/arm/BANANAPI.conf
  stable/11/release/arm/BEAGLEBONE.conf
  stable/11/release/arm/CUBIEBOARD.conf
  stable/11/release/arm/CUBIEBOARD2.conf
  stable/11/release/arm/CUBOX-HUMMINGBOARD.conf
  stable/11/release/arm/GUMSTIX.conf
  stable/11/release/arm/PANDABOARD.conf
  stable/11/release/arm/RPI-B.conf
  stable/11/release/arm/RPI2.conf
  stable/11/release/arm/WANDBOARD.conf
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/release/arm/BEAGLEBONE.conf
  stable/10/release/arm/CUBOX-HUMMINGBOARD.conf
  stable/10/release/arm/GUMSTIX.conf
  stable/10/release/arm/PANDABOARD.conf
  stable/10/release/arm/RPI-B.conf
  stable/10/release/arm/RPI2.conf
  stable/10/release/arm/WANDBOARD.conf
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/release/arm/BANANAPI.conf
==============================================================================
--- stable/11/release/arm/BANANAPI.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/11/release/arm/BANANAPI.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -26,6 +26,7 @@ arm_install_uboot() {
 		of=/dev/${mddev} bs=1k seek=8 conv=sync
 	chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
 	chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin

Modified: stable/11/release/arm/BEAGLEBONE.conf
==============================================================================
--- stable/11/release/arm/BEAGLEBONE.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/11/release/arm/BEAGLEBONE.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -25,6 +25,7 @@ arm_install_uboot() {
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/MLO ${FATMOUNT}/MLO
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/u-boot.img ${FATMOUNT}/u-boot.img
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin
 	chroot ${CHROOTDIR} ln ${UFSMOUNT}/boot/dtb/beaglebone.dtb \

Modified: stable/11/release/arm/CUBIEBOARD.conf
==============================================================================
--- stable/11/release/arm/CUBIEBOARD.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/11/release/arm/CUBIEBOARD.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -25,6 +25,7 @@ arm_install_uboot() {
 		of=/dev/${mddev} bs=1k seek=8 conv=sync
 	chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
 	chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin

Modified: stable/11/release/arm/CUBIEBOARD2.conf
==============================================================================
--- stable/11/release/arm/CUBIEBOARD2.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/11/release/arm/CUBIEBOARD2.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -26,6 +26,7 @@ arm_install_uboot() {
 		of=/dev/${mddev} bs=1k seek=8 conv=sync
 	chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
 	chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin

Modified: stable/11/release/arm/CUBOX-HUMMINGBOARD.conf
==============================================================================
--- stable/11/release/arm/CUBOX-HUMMINGBOARD.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/11/release/arm/CUBOX-HUMMINGBOARD.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -26,6 +26,7 @@ arm_install_uboot() {
 		of=/dev/${mddev} bs=512 seek=2 conv=sync
 	chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
 	chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin

Modified: stable/11/release/arm/GUMSTIX.conf
==============================================================================
--- stable/11/release/arm/GUMSTIX.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/11/release/arm/GUMSTIX.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -25,6 +25,7 @@ arm_install_uboot() {
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/MLO ${FATMOUNT}/MLO
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/u-boot.img ${FATMOUNT}/u-boot.img
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin
 	chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot

Modified: stable/11/release/arm/PANDABOARD.conf
==============================================================================
--- stable/11/release/arm/PANDABOARD.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/11/release/arm/PANDABOARD.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -25,6 +25,7 @@ arm_install_uboot() {
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/MLO ${FATMOUNT}/MLO
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/u-boot.img ${FATMOUNT}/u-boot.img
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin
 	chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot

Modified: stable/11/release/arm/RPI-B.conf
==============================================================================
--- stable/11/release/arm/RPI-B.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/11/release/arm/RPI-B.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -40,6 +40,7 @@ arm_install_uboot() {
 		${FATMOUNT}/ubldr.bin
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/dtb/rpi.dtb \
 		${FATMOUNT}/rpi.dtb
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
 	sync
 	umount_loop ${CHROOTDIR}/${FATMOUNT}

Modified: stable/11/release/arm/RPI2.conf
==============================================================================
--- stable/11/release/arm/RPI2.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/11/release/arm/RPI2.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -40,6 +40,7 @@ arm_install_uboot() {
 		${FATMOUNT}/ubldr.bin
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/dtb/rpi2.dtb \
 		${FATMOUNT}/rpi2.dtb
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
 	sync
 	umount_loop ${CHROOTDIR}/${FATMOUNT}

Modified: stable/11/release/arm/WANDBOARD.conf
==============================================================================
--- stable/11/release/arm/WANDBOARD.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/11/release/arm/WANDBOARD.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -26,6 +26,7 @@ arm_install_uboot() {
 		of=/dev/${mddev} bs=512 seek=2 conv=sync
 	chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
 	chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin

From owner-svn-src-all@freebsd.org  Thu Mar 29 19:29:14 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 28BB3F6FA50;
 Thu, 29 Mar 2018 19:29:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id CA6207F4C3;
 Thu, 29 Mar 2018 19:29:13 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C52AD1E425;
 Thu, 29 Mar 2018 19:29:13 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TJTDqg077123;
 Thu, 29 Mar 2018 19:29:13 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TJTDuT077116;
 Thu, 29 Mar 2018 19:29:13 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201803291929.w2TJTDuT077116@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber 
Date: Thu, 29 Mar 2018 19:29:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331741 - in stable: 10/release/arm 11/release/arm
X-SVN-Group: stable-10
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/release/arm 11/release/arm
X-SVN-Commit-Revision: 331741
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 19:29:14 -0000

Author: gjb
Date: Thu Mar 29 19:29:12 2018
New Revision: 331741
URL: https://svnweb.freebsd.org/changeset/base/331741

Log:
  MFC r331562 (manu):
   release: arm: Copy boot.scr from ports
  
   Latest u-boot update need u-boot script to load and start ubldr.
   (See D14230 for more details)
   Copy this file for our arm release on the fat partition.

Modified:
  stable/10/release/arm/BEAGLEBONE.conf
  stable/10/release/arm/CUBOX-HUMMINGBOARD.conf
  stable/10/release/arm/GUMSTIX.conf
  stable/10/release/arm/PANDABOARD.conf
  stable/10/release/arm/RPI-B.conf
  stable/10/release/arm/RPI2.conf
  stable/10/release/arm/WANDBOARD.conf
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/release/arm/BANANAPI.conf
  stable/11/release/arm/BEAGLEBONE.conf
  stable/11/release/arm/CUBIEBOARD.conf
  stable/11/release/arm/CUBIEBOARD2.conf
  stable/11/release/arm/CUBOX-HUMMINGBOARD.conf
  stable/11/release/arm/GUMSTIX.conf
  stable/11/release/arm/PANDABOARD.conf
  stable/11/release/arm/RPI-B.conf
  stable/11/release/arm/RPI2.conf
  stable/11/release/arm/WANDBOARD.conf
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/release/arm/BEAGLEBONE.conf
==============================================================================
--- stable/10/release/arm/BEAGLEBONE.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/10/release/arm/BEAGLEBONE.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -25,6 +25,7 @@ arm_install_uboot() {
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/MLO ${FATMOUNT}/MLO
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/u-boot.img ${FATMOUNT}/u-boot.img
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin
 	chroot ${CHROOTDIR} ln ${UFSMOUNT}/boot/dtb/beaglebone.dtb \

Modified: stable/10/release/arm/CUBOX-HUMMINGBOARD.conf
==============================================================================
--- stable/10/release/arm/CUBOX-HUMMINGBOARD.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/10/release/arm/CUBOX-HUMMINGBOARD.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -27,6 +27,7 @@ arm_install_uboot() {
 		of=/dev/${mddev} bs=512 seek=2 conv=sync
 	chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
 	chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin

Modified: stable/10/release/arm/GUMSTIX.conf
==============================================================================
--- stable/10/release/arm/GUMSTIX.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/10/release/arm/GUMSTIX.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -26,6 +26,7 @@ arm_install_uboot() {
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/MLO ${FATMOUNT}/MLO
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/u-boot.img ${FATMOUNT}/u-boot.img
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin
 	chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot

Modified: stable/10/release/arm/PANDABOARD.conf
==============================================================================
--- stable/10/release/arm/PANDABOARD.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/10/release/arm/PANDABOARD.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -25,6 +25,7 @@ arm_install_uboot() {
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/MLO ${FATMOUNT}/MLO
 	chroot ${CHROOTDIR} cp -p ${UBOOT_DIR}/u-boot.img ${FATMOUNT}/u-boot.img
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin
 	chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot

Modified: stable/10/release/arm/RPI-B.conf
==============================================================================
--- stable/10/release/arm/RPI-B.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/10/release/arm/RPI-B.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -40,6 +40,7 @@ arm_install_uboot() {
 		${FATMOUNT}/ubldr.bin
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/dtb/rpi.dtb \
 		${FATMOUNT}/rpi.dtb
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
 	sync
 	umount_loop ${CHROOTDIR}/${FATMOUNT}

Modified: stable/10/release/arm/RPI2.conf
==============================================================================
--- stable/10/release/arm/RPI2.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/10/release/arm/RPI2.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -34,6 +34,7 @@ arm_install_uboot() {
 		${FATMOUNT}/ubldr.bin
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/dtb/rpi2.dtb \
 		${FATMOUNT}/rpi2.dtb
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot
 	sync
 	umount_loop ${CHROOTDIR}/${FATMOUNT}

Modified: stable/10/release/arm/WANDBOARD.conf
==============================================================================
--- stable/10/release/arm/WANDBOARD.conf	Thu Mar 29 17:44:55 2018	(r331740)
+++ stable/10/release/arm/WANDBOARD.conf	Thu Mar 29 19:29:12 2018	(r331741)
@@ -27,6 +27,7 @@ arm_install_uboot() {
 		of=/dev/${mddev} bs=512 seek=2 conv=sync
 	chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}"
 	chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT}
+	chroot ${CHROOTDIR} cp ${UBOOT_DIR}/boot.scr ${FATMOUNT}/boot.scr
 	chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT}
 	chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \
 		${FATMOUNT}/ubldr.bin

From owner-svn-src-all@freebsd.org  Thu Mar 29 19:32:27 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DDB69F6FF82;
 Thu, 29 Mar 2018 19:32:26 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8EC187FA52;
 Thu, 29 Mar 2018 19:32:26 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6F6EA1E5AD;
 Thu, 29 Mar 2018 19:32:26 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TJWQLH082297;
 Thu, 29 Mar 2018 19:32:26 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TJWPEm082290;
 Thu, 29 Mar 2018 19:32:25 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803291932.w2TJWPEm082290@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Thu, 29 Mar 2018 19:32:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331742 - in stable/11: contrib/mdocml lib lib/libc/gen
 lib/libdl share/mk
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: in stable/11: contrib/mdocml lib lib/libc/gen lib/libdl
 share/mk
X-SVN-Commit-Revision: 331742
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 19:32:27 -0000

Author: kib
Date: Thu Mar 29 19:32:25 2018
New Revision: 331742
URL: https://svnweb.freebsd.org/changeset/base/331742

Log:
  MFC r320872:
  Create libdl.so.1 as a filter for libc.so.7 which exports public dl*
  functions.

Added:
  stable/11/lib/libdl/
     - copied from r320872, head/lib/libdl/
Modified:
  stable/11/contrib/mdocml/lib.in
  stable/11/lib/Makefile
  stable/11/lib/libc/gen/dlfcn.c
  stable/11/lib/libc/gen/dlopen.3
  stable/11/share/mk/bsd.libnames.mk
  stable/11/share/mk/bsd.linker.mk
  stable/11/share/mk/src.libnames.mk
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/mdocml/lib.in
==============================================================================
--- stable/11/contrib/mdocml/lib.in	Thu Mar 29 19:29:12 2018	(r331741)
+++ stable/11/contrib/mdocml/lib.in	Thu Mar 29 19:32:25 2018	(r331742)
@@ -46,6 +46,7 @@ LINE("libdevctl",	"Device Control Library (libdevctl, 
 LINE("libdevinfo",	"Device and Resource Information Utility Library (libdevinfo, \\-ldevinfo)")
 LINE("libdevstat",	"Device Statistics Library (libdevstat, \\-ldevstat)")
 LINE("libdisk",		"Interface to Slice and Partition Labels Library (libdisk, \\-ldisk)")
+LINE("libdl",		"Dynamic Linker Services Filter (libdl, \\-ldl)")
 LINE("libdm",		"Device Mapper Library (libdm, \\-ldm)")
 LINE("libdwarf",	"DWARF Access Library (libdwarf, \\-ldwarf)")
 LINE("libedit",		"Command Line Editor Library (libedit, \\-ledit)")

Modified: stable/11/lib/Makefile
==============================================================================
--- stable/11/lib/Makefile	Thu Mar 29 19:29:12 2018	(r331741)
+++ stable/11/lib/Makefile	Thu Mar 29 19:32:25 2018	(r331742)
@@ -47,6 +47,7 @@ SUBDIR=	${SUBDIR_BOOTSTRAP} \
 	libdevdctl \
 	libdevinfo \
 	libdevstat \
+	${_libdl} \
 	libdwarf \
 	libedit \
 	${_libefivar} \
@@ -273,6 +274,10 @@ _librtld_db=	librtld_db
 .if ${MACHINE_CPUARCH} == "powerpc"
 _libproc=	libproc
 _librtld_db=	librtld_db
+.endif
+
+.if defined(LINKER_FEATURES) && ${LINKER_FEATURES:Mfilter}
+_libdl=		libdl
 .endif
 
 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm" || \

Modified: stable/11/lib/libc/gen/dlfcn.c
==============================================================================
--- stable/11/lib/libc/gen/dlfcn.c	Thu Mar 29 19:29:12 2018	(r331741)
+++ stable/11/lib/libc/gen/dlfcn.c	Thu Mar 29 19:32:25 2018	(r331742)
@@ -27,6 +27,8 @@
 #include 
 __FBSDID("$FreeBSD$");
 
+#if !defined(IN_LIBDL) || defined(PIC)
+
 /*
  * Linkage to services provided by the dynamic linker.
  */
@@ -157,6 +159,7 @@ _rtld_thread_init(void *li __unused)
 	_rtld_error(sorry);
 }
 
+#ifndef IN_LIBDL
 static pthread_once_t dl_phdr_info_once = PTHREAD_ONCE_INIT;
 static struct dl_phdr_info phdr_info;
 
@@ -192,6 +195,7 @@ dl_init_phdr_info(void)
 	}
 	phdr_info.dlpi_adds = 1;
 }
+#endif
 
 #pragma weak dl_iterate_phdr
 int
@@ -199,11 +203,15 @@ dl_iterate_phdr(int (*callback)(struct dl_phdr_info *,
     void *data __unused)
 {
 
+#ifndef IN_LIBDL
 	__init_elf_aux_vector();
 	if (__elf_aux_vector == NULL)
 		return (1);
 	_once(&dl_phdr_info_once, dl_init_phdr_info);
 	return (callback(&phdr_info, sizeof(phdr_info), data));
+#else
+	return (0);
+#endif
 }
 
 #pragma weak fdlopen
@@ -251,3 +259,5 @@ _rtld_is_dlopened(void *arg __unused)
 
 	return (0);
 }
+
+#endif /* !defined(IN_LIBDL) || defined(PIC) */

Modified: stable/11/lib/libc/gen/dlopen.3
==============================================================================
--- stable/11/lib/libc/gen/dlopen.3	Thu Mar 29 19:29:12 2018	(r331741)
+++ stable/11/lib/libc/gen/dlopen.3	Thu Mar 29 19:32:25 2018	(r331742)
@@ -32,7 +32,7 @@
 .\" @(#) dlopen.3 1.6 90/01/31 SMI
 .\" $FreeBSD$
 .\"
-.Dd February 14, 2015
+.Dd July 7, 2017
 .Dt DLOPEN 3
 .Os
 .Sh NAME
@@ -376,6 +376,14 @@ option to
 .Xr ld 1
 for symbols defined in the executable to become visible to
 .Fn dlsym .
+.Pp
+Other ELF platforms require linking with
+.Lb libdl
+to provide
+.Fn dlopen
+and other functions.
+.Fx
+does not require linking with the library, but supports it for compatibility.
 .Pp
 In previous implementations, it was necessary to prepend an underscore
 to all external symbols in order to gain symbol

Modified: stable/11/share/mk/bsd.libnames.mk
==============================================================================
--- stable/11/share/mk/bsd.libnames.mk	Thu Mar 29 19:29:12 2018	(r331741)
+++ stable/11/share/mk/bsd.libnames.mk	Thu Mar 29 19:32:25 2018	(r331742)
@@ -54,6 +54,7 @@ LIBDEVDCTL?=	${DESTDIR}${LIBDIR_BASE}/libdevdctl.a
 LIBDEVINFO?=	${DESTDIR}${LIBDIR_BASE}/libdevinfo.a
 LIBDEVSTAT?=	${DESTDIR}${LIBDIR_BASE}/libdevstat.a
 LIBDIALOG?=	${DESTDIR}${LIBDIR_BASE}/libdialog.a
+LIBDL?=		${DESTDIR}${LIBDIR_BASE}/libdl.a
 LIBDNS?=	${DESTDIR}${LIBDIR_BASE}/libdns.a
 LIBDPV?=	${DESTDIR}${LIBDIR_BASE}/libdpv.a
 LIBDTRACE?=	${DESTDIR}${LIBDIR_BASE}/libdtrace.a

Modified: stable/11/share/mk/bsd.linker.mk
==============================================================================
--- stable/11/share/mk/bsd.linker.mk	Thu Mar 29 19:29:12 2018	(r331741)
+++ stable/11/share/mk/bsd.linker.mk	Thu Mar 29 19:32:25 2018	(r331742)
@@ -70,6 +70,9 @@ ${X_}LINKER_FEATURES=
 .if ${${X_}LINKER_TYPE} != "bfd" || ${${X_}LINKER_VERSION} > 21750
 ${X_}LINKER_FEATURES+=	build-id
 .endif
+.if ${${X_}LINKER_TYPE} == "bfd"
+${X_}LINKER_FEATURES+=	filter
+.endif
 .endif
 .else
 # Use LD's values

Modified: stable/11/share/mk/src.libnames.mk
==============================================================================
--- stable/11/share/mk/src.libnames.mk	Thu Mar 29 19:29:12 2018	(r331741)
+++ stable/11/share/mk/src.libnames.mk	Thu Mar 29 19:32:25 2018	(r331742)
@@ -87,6 +87,7 @@ _LIBRARIES=	\
 		devinfo \
 		devstat \
 		dialog \
+		dl \
 		dpv \
 		dtrace \
 		dwarf \

From owner-svn-src-all@freebsd.org  Thu Mar 29 19:40:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6FDA3F7071B
 for ;
 Thu, 29 Mar 2018 19:40:08 +0000 (UTC) (envelope-from ian@freebsd.org)
Received: from outbound1a.eu.mailhop.org (outbound1a.eu.mailhop.org
 [52.58.109.202])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id EBA5B7FE3C
 for ; Thu, 29 Mar 2018 19:40:07 +0000 (UTC)
 (envelope-from ian@freebsd.org)
X-MHO-User: faa7468d-3388-11e8-91c6-33ffc249f3e8
X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information
X-Originating-IP: 67.177.211.60
X-Mail-Handler: DuoCircle Outbound SMTP
Received: from ilsoft.org (unknown [67.177.211.60])
 by outbound1.eu.mailhop.org (Halon) with ESMTPSA
 id faa7468d-3388-11e8-91c6-33ffc249f3e8;
 Thu, 29 Mar 2018 19:40:06 +0000 (UTC)
Received: from rev (rev [172.22.42.240])
 by ilsoft.org (8.15.2/8.15.2) with ESMTP id w2TJdxg4067740;
 Thu, 29 Mar 2018 13:39:59 -0600 (MDT) (envelope-from ian@freebsd.org)
Message-ID: <1522352399.49673.120.camel@freebsd.org>
Subject: Re: svn commit: r331728 - in stable/11/etc: . rc.d
From: Ian Lepore 
To: rgrimes@freebsd.org
Cc: Marcelo Araujo , src-committers@freebsd.org,
 svn-src-all@freebsd.org, svn-src-stable@freebsd.org,
 svn-src-stable-11@freebsd.org
Date: Thu, 29 Mar 2018 13:39:59 -0600
In-Reply-To: <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
References: <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
Content-Type: text/plain; charset="ISO-8859-1"
X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port 
Mime-Version: 1.0
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 19:40:08 -0000

On Thu, 2018-03-29 at 09:33 -0700, Rodney W. Grimes wrote:
> > 
> > On Thu, 2018-03-29 at 06:20 -0700, Rodney W. Grimes wrote:
> > > 
> > > > 
> > > > 
> > > > Author: araujo
> > > > Date: Thu Mar 29 04:51:07 2018
> > > > New Revision: 331728
> > > > URL: https://svnweb.freebsd.org/changeset/base/331728
> > > > 
> > > > Log:
> > > > ? MFC r329817:
> > > I must of missed this when it landed in ^/head
> > > 
> > > > 
> > > > 
> > > > ? The firewall_type is ignored if not set in rc.conf or rc.conf.local,
> > > > ? after r190575 there is an option to call rc.firewall with the firewall_type
> > > > ? passed in as an argument.
> > > > ??
> > > > ? Submitted by:	David P. Discher 
> > > > ? Sponsored by:	iXsystems Inc.
> > > > ? Differential Revision:	https://reviews.freebsd.org/D14286
> > > No one accepted it :-(.
> > > 
> > That's not a blocker for committing; plenty of time elapsed to allow
> > anyone to reject the change. IMO, even a flat-out rejection isn't a
> > blocker to committing except for things like random or crypto code that
> > require formal approval (but I'd certainly think hard about committing
> > if people rejected the change, and put some effort into finding a
> > compromise first).
> It seems that the Phabricator review system is somewhat disfunctional
> in that actual review is only happening in some cases.Some people
> have even stated they flat out hate it.Others say that it is the
> way to go.
> 

Which is exactly why phab reviews are optional. There are some of us
who've said that if they become mandatory, we're done working on
freebsd. Personally, I put things up for review if I have some doubts
about my choices, or if it's in an area of the system I'm not very
familiar with. If nobody wants to review the changes within a week or
two, I commit and move on.

-- Ian


From owner-svn-src-all@freebsd.org  Thu Mar 29 19:43:30 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 75DD7F70CB9;
 Thu, 29 Mar 2018 19:43:30 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 259C98032A;
 Thu, 29 Mar 2018 19:43:30 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 209011E764;
 Thu, 29 Mar 2018 19:43:30 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TJhU0T087210;
 Thu, 29 Mar 2018 19:43:30 GMT (envelope-from kevans@FreeBSD.org)
Received: (from kevans@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TJhUYp087209;
 Thu, 29 Mar 2018 19:43:30 GMT (envelope-from kevans@FreeBSD.org)
Message-Id: <201803291943.w2TJhUYp087209@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kevans set sender to
 kevans@FreeBSD.org using -f
From: Kyle Evans 
Date: Thu, 29 Mar 2018 19:43:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331743 - head/lib/libdl
X-SVN-Group: head
X-SVN-Commit-Author: kevans
X-SVN-Commit-Paths: head/lib/libdl
X-SVN-Commit-Revision: 331743
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 19:43:30 -0000

Author: kevans
Date: Thu Mar 29 19:43:29 2018
New Revision: 331743
URL: https://svnweb.freebsd.org/changeset/base/331743

Log:
  Add libdl to clibs package
  
  libdl is a filter on libc, and pretty lightweight. Add it to the 'clibs'
  package with libc, effectively tying them together in a pkgbase world.
  
  Reviewed by:	gjb
  MFC after:	3 days
  Differential Revision:	https://reviews.freebsd.org/D13997

Modified:
  head/lib/libdl/Makefile

Modified: head/lib/libdl/Makefile
==============================================================================
--- head/lib/libdl/Makefile	Thu Mar 29 19:32:25 2018	(r331742)
+++ head/lib/libdl/Makefile	Thu Mar 29 19:43:29 2018	(r331743)
@@ -1,5 +1,6 @@
 # $FreeBSD$
 
+PACKAGE=clibs
 LIB=dl
 SHLIB_MAJOR=1
 

From owner-svn-src-all@freebsd.org  Thu Mar 29 19:44:17 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4B3DCF70D78;
 Thu, 29 Mar 2018 19:44:17 +0000 (UTC)
 (envelope-from landonf@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EF9A6804C5;
 Thu, 29 Mar 2018 19:44:16 +0000 (UTC)
 (envelope-from landonf@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EA5271E770;
 Thu, 29 Mar 2018 19:44:16 +0000 (UTC)
 (envelope-from landonf@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TJiGOO087309;
 Thu, 29 Mar 2018 19:44:16 GMT (envelope-from landonf@FreeBSD.org)
Received: (from landonf@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TJiGi0087300;
 Thu, 29 Mar 2018 19:44:16 GMT (envelope-from landonf@FreeBSD.org)
Message-Id: <201803291944.w2TJiGi0087300@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: landonf set sender to
 landonf@FreeBSD.org using -f
From: "Landon J. Fuller" 
Date: Thu, 29 Mar 2018 19:44:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331744 - in head: share/man/man9 sys/dev/bhnd
 sys/dev/bhnd/bcma sys/dev/bhnd/bhndb sys/dev/bhnd/siba
X-SVN-Group: head
X-SVN-Commit-Author: landonf
X-SVN-Commit-Paths: in head: share/man/man9 sys/dev/bhnd sys/dev/bhnd/bcma
 sys/dev/bhnd/bhndb sys/dev/bhnd/siba
X-SVN-Commit-Revision: 331744
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 19:44:17 -0000

Author: landonf
Date: Thu Mar 29 19:44:15 2018
New Revision: 331744
URL: https://svnweb.freebsd.org/changeset/base/331744

Log:
  bhnd(4): include a subset of the ChipCommon capability flags in bhnd_chipid;
  this provides early access to device capability flags required by bhnd(4)
  bus and bhndb(4) bridge drivers.

Modified:
  head/share/man/man9/bhnd.9
  head/sys/dev/bhnd/bcma/bcma_erom.c
  head/sys/dev/bhnd/bhnd.h
  head/sys/dev/bhnd/bhnd_erom.c
  head/sys/dev/bhnd/bhnd_erom.h
  head/sys/dev/bhnd/bhnd_eromvar.h
  head/sys/dev/bhnd/bhnd_subr.c
  head/sys/dev/bhnd/bhndb/bhndb_pci.c
  head/sys/dev/bhnd/siba/siba_erom.c

Modified: head/share/man/man9/bhnd.9
==============================================================================
--- head/share/man/man9/bhnd.9	Thu Mar 29 19:43:29 2018	(r331743)
+++ head/share/man/man9/bhnd.9	Thu Mar 29 19:44:15 2018	(r331744)
@@ -28,7 +28,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 19, 2018
+.Dd March 26, 2018
 .Dt BHND 9
 .Os
 .Sh NAME
@@ -1130,6 +1130,10 @@ chip, each of which may require driver workarounds for
 unpopulated components, etc.
 .It Fa chip_type
 The interconnect architecture used by this chip.
+.It Fa chip_caps
+The
+.Nm
+capability flags supported by this chip.
 .It Fa enum_addr
 The backplane enumeration address.
 On SSB devices, this will be the base address of the first SSB core.
@@ -1154,6 +1158,16 @@ This BCMA-derived interconnect is found in Broadcom BC
 BCM63xx xDSL SoCs.
 UBUS is not currently supported by
 .Xr bhnd 4 .
+.El
+.Pp
+The following
+.Fa chip_caps
+flags are supported:
+.Bl -tag -width ".Dv BHND_CAP_BP64" -offset indent -compact
+.It Dv BHND_CAP_BP64
+The backplane supports 64-bit addressing.
+.It Dv BHND_CAP_PMU
+PMU is present.
 .El
 .Pp
 Additional symbolic constants for known

Modified: head/sys/dev/bhnd/bcma/bcma_erom.c
==============================================================================
--- head/sys/dev/bhnd/bcma/bcma_erom.c	Thu Mar 29 19:43:29 2018	(r331743)
+++ head/sys/dev/bhnd/bcma/bcma_erom.c	Thu Mar 29 19:44:15 2018	(r331744)
@@ -45,7 +45,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
-#include 
+#include 
 
 #include "bcma_eromreg.h"
 #include "bcma_eromvar.h"
@@ -168,23 +168,16 @@ static int
 bcma_erom_probe(bhnd_erom_class_t *cls, struct bhnd_erom_io *eio,
     const struct bhnd_chipid *hint, struct bhnd_chipid *cid)
 {
-	uint32_t idreg, eromptr;
+	int error;
 
 	/* Hints aren't supported; all BCMA devices have a ChipCommon
 	 * core */
 	if (hint != NULL)
 		return (EINVAL);
 
-	/* Confirm CHIPC_EROMPTR availability */	
-	idreg = bhnd_erom_io_read(eio, CHIPC_ID, 4);
-	if (!BHND_CHIPTYPE_HAS_EROM(CHIPC_GET_BITS(idreg, CHIPC_ID_BUS)))
-		return (ENXIO);
-
-	/* Fetch EROM address */
-	eromptr = bhnd_erom_io_read(eio, CHIPC_EROMPTR, 4);
-
-	/* Parse chip identifier */
-	*cid = bhnd_parse_chipid(idreg, eromptr);
+	/* Read and parse chip identification */
+	if ((error = bhnd_erom_read_chipid(eio, cid)))
+		return (error);
 
 	/* Verify chip type */
 	switch (cid->chip_type) {

Modified: head/sys/dev/bhnd/bhnd.h
==============================================================================
--- head/sys/dev/bhnd/bhnd.h	Thu Mar 29 19:43:29 2018	(r331743)
+++ head/sys/dev/bhnd/bhnd.h	Thu Mar 29 19:44:15 2018	(r331744)
@@ -219,6 +219,7 @@ struct bhnd_chipid {
 	uint8_t		chip_rev;	/**< chip revision */
 	uint8_t		chip_pkg;	/**< chip package (BHND_PKGID_*) */
 	uint8_t		chip_type;	/**< chip type (BHND_CHIPTYPE_*) */
+	uint32_t	chip_caps;	/**< chip capabilities (BHND_CAP_*) */
 
 	bhnd_addr_t	enum_addr;	/**< chip_type-specific enumeration
 					  *  address; either the siba(4) base
@@ -230,6 +231,15 @@ struct bhnd_chipid {
 };
 
 /**
+ * Chip capabilities
+ */
+enum bhnd_cap {
+	BHND_CAP_BP64	= (1<<0),	/**< Backplane supports 64-bit
+					  *  addressing */
+	BHND_CAP_PMU	= (1<<1),	/**< PMU is present */
+};
+
+/**
  * A bhnd(4) core descriptor.
  */
 struct bhnd_core_info {
@@ -519,18 +529,6 @@ int				 bhnd_alloc_resources(device_t dev,
 void				 bhnd_release_resources(device_t dev,
 				     const struct resource_spec *rs,
 				     struct bhnd_resource **res);
-
-struct bhnd_chipid		 bhnd_parse_chipid(uint32_t idreg,
-				     bhnd_addr_t enum_addr);
-
-int				 bhnd_chipid_fixed_ncores(
-				     const struct bhnd_chipid *cid,
-				     uint16_t chipc_hwrev, uint8_t *ncores);
-
-int				 bhnd_read_chipid(device_t dev,
-				     struct resource_spec *rs,
-				     bus_size_t chipc_offset,
-				     struct bhnd_chipid *result);
 
 void				 bhnd_set_custom_core_desc(device_t dev,
 				     const char *name);

Modified: head/sys/dev/bhnd/bhnd_erom.c
==============================================================================
--- head/sys/dev/bhnd/bhnd_erom.c	Thu Mar 29 19:43:29 2018	(r331743)
+++ head/sys/dev/bhnd/bhnd_erom.c	Thu Mar 29 19:44:15 2018	(r331744)
@@ -44,18 +44,26 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
+#include 
 #include 
+
 #include 
 #include 
 
+#include 
+
 static int	bhnd_erom_iores_map(struct bhnd_erom_io *eio, bhnd_addr_t addr,
 		    bhnd_size_t size);
+static int	bhnd_erom_iores_tell(struct bhnd_erom_io *eio,
+		    bhnd_addr_t *addr, bhnd_size_t *size);
 static uint32_t	bhnd_erom_iores_read(struct bhnd_erom_io *eio,
 		    bhnd_size_t offset, u_int width);
 static void	bhnd_erom_iores_fini(struct bhnd_erom_io *eio);
 
 static int	bhnd_erom_iobus_map(struct bhnd_erom_io *eio, bhnd_addr_t addr,
 		    bhnd_size_t size);
+static int	bhnd_erom_iobus_tell(struct bhnd_erom_io *eio,
+		    bhnd_addr_t *addr, bhnd_size_t *size);
 static uint32_t	bhnd_erom_iobus_read(struct bhnd_erom_io *eio,
 		    bhnd_size_t offset, u_int width);
 
@@ -248,7 +256,63 @@ bhnd_erom_free(bhnd_erom_t *erom)
 	kobj_delete((kobj_t)erom, M_BHND);
 }
 
+/**
+ * Read the chip identification registers mapped by @p eio, popuating @p cid
+ * with the parsed result
+ * 
+ * @param	eio		A bus I/O instance, configured with a mapping
+ *				of the ChipCommon core.
+ * @param[out]	cid		On success, the parsed chip identification.
+ *
+ * @warning
+ * On early siba(4) devices, the ChipCommon core does not provide
+ * a valid CHIPC_ID_NUMCORE field. On these ChipCommon revisions
+ * (see CHIPC_NCORES_MIN_HWREV()), this function will parse and return
+ * an invalid `ncores` value.
+ */
+int
+bhnd_erom_read_chipid(struct bhnd_erom_io *eio, struct bhnd_chipid *cid)
+{
+	bhnd_addr_t	cc_addr;
+	bhnd_size_t	cc_size;
+	uint32_t	idreg, cc_caps;
+	int		error;
 
+	/* Fetch ChipCommon address */
+	if ((error = bhnd_erom_io_tell(eio, &cc_addr, &cc_size)))
+		return (error);
+
+	/* Read chip identifier */
+	idreg = bhnd_erom_io_read(eio, CHIPC_ID, 4);
+
+	/* Extract the basic chip info */
+	cid->chip_id = CHIPC_GET_BITS(idreg, CHIPC_ID_CHIP);
+	cid->chip_pkg = CHIPC_GET_BITS(idreg, CHIPC_ID_PKG);
+	cid->chip_rev = CHIPC_GET_BITS(idreg, CHIPC_ID_REV);
+	cid->chip_type = CHIPC_GET_BITS(idreg, CHIPC_ID_BUS);
+	cid->ncores = CHIPC_GET_BITS(idreg, CHIPC_ID_NUMCORE);
+
+	/* Populate EROM address */
+	if (BHND_CHIPTYPE_HAS_EROM(cid->chip_type)) {
+		cid->enum_addr = bhnd_erom_io_read(eio, CHIPC_EROMPTR, 4);
+	} else {
+		cid->enum_addr = cc_addr;
+	}
+
+	/* Populate capability flags */
+	cc_caps = bhnd_erom_io_read(eio, CHIPC_CAPABILITIES, 4);
+	cid->chip_caps = 0x0;
+
+	if (cc_caps & CHIPC_CAP_BKPLN64)
+		cid->chip_caps |= BHND_CAP_BP64;
+
+	if (cc_caps & CHIPC_CAP_PMU)
+		cid->chip_caps |= BHND_CAP_PMU;
+
+	return (0);
+}
+
+
 /**
  * Attempt to map @p size bytes at @p addr, replacing any existing
  * @p eio mapping.
@@ -268,6 +332,23 @@ bhnd_erom_io_map(struct bhnd_erom_io *eio, bhnd_addr_t
 }
 
 /**
+ * Return the address range mapped by @p eio, if any.
+ * 
+ * @param	eio	I/O instance state.
+ * @param[out]	addr	The address mapped by @p eio.
+ * @param[out]	size	The number of bytes mapped at @p addr.
+ * 
+ * @retval	0	success
+ * @retval	ENXIO	if @p eio has no mapping.
+ */
+int
+bhnd_erom_io_tell(struct bhnd_erom_io *eio, bhnd_addr_t *addr,
+    bhnd_size_t *size)
+{
+	return (eio->tell(eio, addr, size));
+}
+
+/**
  * Read a 1, 2, or 4 byte data item from @p eio, at the given @p offset
  * relative to @p eio's current mapping.
  * 
@@ -306,6 +387,7 @@ bhnd_erom_iores_new(device_t dev, int rid)
 
 	iores = malloc(sizeof(*iores), M_BHND, M_WAITOK | M_ZERO);
 	iores->eio.map = bhnd_erom_iores_map;
+	iores->eio.tell = bhnd_erom_iores_tell;
 	iores->eio.read = bhnd_erom_iores_read;
 	iores->eio.fini = bhnd_erom_iores_fini;
 
@@ -361,6 +443,21 @@ bhnd_erom_iores_map(struct bhnd_erom_io *eio, bhnd_add
 	return (0);
 }
 
+static int
+bhnd_erom_iores_tell(struct bhnd_erom_io *eio, bhnd_addr_t *addr,
+    bhnd_size_t *size)
+{
+	struct bhnd_erom_iores *iores = (struct bhnd_erom_iores *)eio;
+
+	if (iores->mapped == NULL)
+		return (ENXIO);
+
+	*addr = rman_get_start(iores->mapped->res);
+	*size = rman_get_size(iores->mapped->res);
+
+	return (0);
+}
+
 static uint32_t
 bhnd_erom_iores_read(struct bhnd_erom_io *eio, bhnd_size_t offset, u_int width)
 {
@@ -416,6 +513,7 @@ bhnd_erom_iobus_init(struct bhnd_erom_iobus *iobus, bh
     bhnd_size_t size, bus_space_tag_t bst, bus_space_handle_t bsh)
 {
 	iobus->eio.map = bhnd_erom_iobus_map;
+	iobus->eio.tell = bhnd_erom_iobus_tell;
 	iobus->eio.read = bhnd_erom_iobus_read;
 	iobus->eio.fini = NULL;
 
@@ -459,6 +557,21 @@ bhnd_erom_iobus_map(struct bhnd_erom_io *eio, bhnd_add
 	iobus->offset = addr - iobus->addr;
 	iobus->limit = size;
 	iobus->mapped = true;
+
+	return (0);
+}
+
+static int
+bhnd_erom_iobus_tell(struct bhnd_erom_io *eio, bhnd_addr_t *addr,
+    bhnd_size_t *size)
+{
+	struct bhnd_erom_iobus *iobus = (struct bhnd_erom_iobus *)eio;
+
+	if (!iobus->mapped)
+		return (ENXIO);
+
+	*addr = iobus->addr + iobus->offset;
+	*size = iobus->limit;
 
 	return (0);
 }

Modified: head/sys/dev/bhnd/bhnd_erom.h
==============================================================================
--- head/sys/dev/bhnd/bhnd_erom.h	Thu Mar 29 19:43:29 2018	(r331743)
+++ head/sys/dev/bhnd/bhnd_erom.h	Thu Mar 29 19:44:15 2018	(r331744)
@@ -76,6 +76,8 @@ int			 bhnd_erom_iobus_init(struct bhnd_erom_iobus *io
 
 int			 bhnd_erom_io_map(struct bhnd_erom_io *eio,
 			     bhnd_addr_t addr, bhnd_size_t size);
+int			 bhnd_erom_io_tell(struct bhnd_erom_io *eio,
+			     bhnd_addr_t *addr, bhnd_size_t *size);
 uint32_t		 bhnd_erom_io_read(struct bhnd_erom_io *eio,
 			     bhnd_size_t offset, u_int width);
 void			 bhnd_erom_io_fini(struct bhnd_erom_io *eio);

Modified: head/sys/dev/bhnd/bhnd_eromvar.h
==============================================================================
--- head/sys/dev/bhnd/bhnd_eromvar.h	Thu Mar 29 19:43:29 2018	(r331743)
+++ head/sys/dev/bhnd/bhnd_eromvar.h	Thu Mar 29 19:44:15 2018	(r331744)
@@ -48,6 +48,10 @@ struct bhnd_erom_iobus;
 typedef int		(bhnd_erom_io_map_t)(struct bhnd_erom_io *eio,
 			     bhnd_addr_t addr, bhnd_size_t size);
 
+/** @see bhnd_erom_io_tell() */
+typedef int		(bhnd_erom_io_tell_t)(struct bhnd_erom_io *eio,
+			     bhnd_addr_t *addr, bhnd_size_t *size);
+
 /** @see bhnd_erom_io_read() */
 typedef uint32_t	(bhnd_erom_io_read_t)(struct bhnd_erom_io *eio,
 			     bhnd_size_t offset, u_int width);
@@ -55,11 +59,17 @@ typedef uint32_t	(bhnd_erom_io_read_t)(struct bhnd_ero
 /** @see bhnd_erom_io_fini() */
 typedef void		(bhnd_erom_io_fini_t)(struct bhnd_erom_io *eio);
 
+
+int			 bhnd_erom_read_chipid(struct bhnd_erom_io *eio,
+			     struct bhnd_chipid *cid);
+
+
 /**
  * Abstract EROM bus I/O support.
  */
 struct bhnd_erom_io {
 	bhnd_erom_io_map_t	*map;	/**< @see bhnd_erom_io_map() */
+	bhnd_erom_io_tell_t	*tell;	/**< @see bhnd_erom_io_tell() */
 	bhnd_erom_io_read_t	*read;	/**< @see bhnd_erom_io_read() */
 	bhnd_erom_io_fini_t	*fini;	/**< @see bhnd_erom_io_fini(). May be NULL */
 };

Modified: head/sys/dev/bhnd/bhnd_subr.c
==============================================================================
--- head/sys/dev/bhnd/bhnd_subr.c	Thu Mar 29 19:43:29 2018	(r331743)
+++ head/sys/dev/bhnd/bhnd_subr.c	Thu Mar 29 19:44:15 2018	(r331744)
@@ -1057,174 +1057,6 @@ bhnd_release_resources(device_t dev, const struct reso
 }
 
 /**
- * Parse the CHIPC_ID_* fields from the ChipCommon CHIPC_ID
- * register, returning its bhnd_chipid representation.
- * 
- * @param idreg The CHIPC_ID register value.
- * @param enum_addr The enumeration address to include in the result.
- *
- * @warning
- * On early siba(4) devices, the ChipCommon core does not provide
- * a valid CHIPC_ID_NUMCORE field. On these ChipCommon revisions
- * (see CHIPC_NCORES_MIN_HWREV()), this function will parse and return
- * an invalid `ncores` value.
- */
-struct bhnd_chipid
-bhnd_parse_chipid(uint32_t idreg, bhnd_addr_t enum_addr)
-{
-	struct bhnd_chipid result;
-
-	/* Fetch the basic chip info */
-	result.chip_id = CHIPC_GET_BITS(idreg, CHIPC_ID_CHIP);
-	result.chip_pkg = CHIPC_GET_BITS(idreg, CHIPC_ID_PKG);
-	result.chip_rev = CHIPC_GET_BITS(idreg, CHIPC_ID_REV);
-	result.chip_type = CHIPC_GET_BITS(idreg, CHIPC_ID_BUS);
-	result.ncores = CHIPC_GET_BITS(idreg, CHIPC_ID_NUMCORE);
-
-	result.enum_addr = enum_addr;
-
-	return (result);
-}
-
-
-/**
- * Determine the correct core count for a chip identification value that
- * may contain an invalid core count.
- * 
- * On some early siba(4) devices (see CHIPC_NCORES_MIN_HWREV()), the ChipCommon
- * core does not provide a valid CHIPC_ID_NUMCORE field.
- * 
- * @param cid The chip identification to be queried.
- * @param chipc_hwrev The hardware revision of the ChipCommon core from which
- * @p cid was parsed.
- * @param[out] ncores On success, will be set to the correct core count.
- * 
- * @retval 0 If the core count is already correct, or was mapped to a
- * a correct value.
- * @retval EINVAL If the core count is incorrect, but the chip was not
- * recognized.
- */
-int
-bhnd_chipid_fixed_ncores(const struct bhnd_chipid *cid, uint16_t chipc_hwrev,
-    uint8_t *ncores)
-{
-	/* bcma(4), and most siba(4) devices */
-	if (CHIPC_NCORES_MIN_HWREV(chipc_hwrev)) {
-		*ncores = cid->ncores;
-		return (0);
-	}
-
-	/* broken siba(4) chipsets */
-	switch (cid->chip_id) {
-	case BHND_CHIPID_BCM4306:
-		*ncores = 6;
-		break;
-	case BHND_CHIPID_BCM4704:
-		*ncores = 9;
-		break;
-	case BHND_CHIPID_BCM5365:
-		/*
-		* BCM5365 does support ID_NUMCORE in at least
-		* some of its revisions, but for unknown
-		* reasons, Broadcom's drivers always exclude
-		* the ChipCommon revision (0x5) used by BCM5365
-		* from the set of revisions supporting
-		* ID_NUMCORE, and instead supply a fixed value.
-		* 
-		* Presumably, at least some of these devices
-		* shipped with a broken ID_NUMCORE value.
-		*/
-		*ncores = 7;
-		break;
-	default:
-		return (EINVAL);
-	}
-
-	return (0);
-}
-
-/**
- * Allocate the resource defined by @p rs via @p dev, use it
- * to read the ChipCommon ID register relative to @p chipc_offset,
- * then release the resource.
- * 
- * @param dev The device owning @p rs.
- * @param rs A resource spec that encompasses the ChipCommon register block.
- * @param chipc_offset The offset of the ChipCommon registers within @p rs.
- * @param[out] result The chip identification data.
- * 
- * @retval 0 success
- * @retval non-zero if the ChipCommon identification data could not be read.
- */
-int
-bhnd_read_chipid(device_t dev, struct resource_spec *rs,
-    bus_size_t chipc_offset, struct bhnd_chipid *result)
-{
-	struct resource			*res;
-	bhnd_addr_t			 enum_addr;
-	uint32_t			 reg;
-	uint8_t				 chip_type;
-	int				 error, rid, rtype;
-
-	rid = rs->rid;
-	rtype = rs->type;
-	error = 0;
-
-	/* Allocate the ChipCommon window resource and fetch the chipid data */
-	res = bus_alloc_resource_any(dev, rtype, &rid, RF_ACTIVE);
-	if (res == NULL) {
-		device_printf(dev,
-		    "failed to allocate bhnd chipc resource\n");
-		return (ENXIO);
-	}
-
-	/* Fetch the basic chip info */
-	reg = bus_read_4(res, chipc_offset + CHIPC_ID);
-	chip_type = CHIPC_GET_BITS(reg, CHIPC_ID_BUS);
-
-	/* Fetch the EROMPTR */
-	if (BHND_CHIPTYPE_HAS_EROM(chip_type)) {
-		enum_addr = bus_read_4(res, chipc_offset + CHIPC_EROMPTR);
-	} else if (chip_type == BHND_CHIPTYPE_SIBA) {
-		/* siba(4) uses the ChipCommon base address as the enumeration
-		 * address */
-		enum_addr = BHND_DEFAULT_CHIPC_ADDR;
-	} else {
-		device_printf(dev, "unknown chip type %hhu\n", chip_type);
-		error = ENODEV;
-		goto cleanup;
-	}
-
-	*result = bhnd_parse_chipid(reg, enum_addr);
-
-	/* Fix the core count on early siba(4) devices */
-	if (chip_type == BHND_CHIPTYPE_SIBA) {
-		uint32_t	idh;
-		uint16_t	chipc_hwrev;
-
-		/* 
-		 * We need the ChipCommon revision to determine whether
-		 * the ncore field is valid.
-		 * 
-		 * We can safely assume the siba IDHIGH register is mapped
-		 * within the chipc register block.
-		 */
-		idh = bus_read_4(res, SB0_REG_ABS(SIBA_CFG0_IDHIGH));
-		chipc_hwrev = SIBA_IDH_CORE_REV(idh);
-
-		error = bhnd_chipid_fixed_ncores(result, chipc_hwrev,
-		    &result->ncores);
-		if (error)
-			goto cleanup;
-	}
-
-cleanup:
-	/* Clean up */
-	bus_release_resource(dev, rtype, rid, res);
-	return (error);
-}
-
-/**
  * Allocate and return a new per-core PMU clock control/status (clkctl)
  * instance for @p dev.
  * 

Modified: head/sys/dev/bhnd/bhndb/bhndb_pci.c
==============================================================================
--- head/sys/dev/bhnd/bhndb/bhndb_pci.c	Thu Mar 29 19:43:29 2018	(r331743)
+++ head/sys/dev/bhnd/bhndb/bhndb_pci.c	Thu Mar 29 19:44:15 2018	(r331744)
@@ -125,6 +125,8 @@ static void		bhndb_pci_eio_init(struct bhndb_pci_eio *
 			    struct bhndb_pci_probe *probe);
 static int		bhndb_pci_eio_map(struct bhnd_erom_io *eio,
 			    bhnd_addr_t addr, bhnd_size_t size);
+static int		bhndb_pci_eio_tell(struct bhnd_erom_io *eio,
+			    bhnd_addr_t *addr, bhnd_size_t *size);
 static uint32_t		bhndb_pci_eio_read(struct bhnd_erom_io *eio,
 			    bhnd_size_t offset, u_int width);
 
@@ -144,6 +146,7 @@ static struct bhndb_pci_core bhndb_pci_cores[] = {
 /* bhndb_pci erom I/O instance state */
 struct bhndb_pci_eio {
 	struct bhnd_erom_io		 eio;
+	bool				 mapped;	/**< true if a valid mapping exists */
 	bhnd_addr_t			 addr;		/**< mapped address */
 	bhnd_size_t			 size;		/**< mapped size */
 	struct bhndb_pci_probe		*probe;		/**< borrowed probe reference */
@@ -1667,9 +1670,11 @@ bhndb_pci_eio_init(struct bhndb_pci_eio *pio, struct b
 	memset(pio, 0, sizeof(*pio));
 
 	pio->eio.map = bhndb_pci_eio_map;
+	pio->eio.tell = bhndb_pci_eio_tell;
 	pio->eio.read = bhndb_pci_eio_read;
 	pio->eio.fini = NULL;
 
+	pio->mapped = false;
 	pio->addr = 0;
 	pio->size = 0;
 	pio->probe = probe;
@@ -1687,22 +1692,43 @@ bhndb_pci_eio_map(struct bhnd_erom_io *eio, bhnd_addr_
 
 	pio->addr = addr;
 	pio->size = size;
+	pio->mapped = true;
 
 	return (0);
 }
 
+/* bhnd_erom_io_tell() implementation */
+static int
+bhndb_pci_eio_tell(struct bhnd_erom_io *eio, bhnd_addr_t *addr,
+    bhnd_size_t *size)
+{
+	struct bhndb_pci_eio *pio = (struct bhndb_pci_eio *)eio;
+
+	if (!pio->mapped)
+		return (ENXIO);
+
+	*addr = pio->addr;
+	*size = pio->size;
+
+	return (0);
+}
+
 /* bhnd_erom_io_read() implementation */
 static uint32_t
 bhndb_pci_eio_read(struct bhnd_erom_io *eio, bhnd_size_t offset, u_int width)
 {
 	struct bhndb_pci_eio *pio = (struct bhndb_pci_eio *)eio;
 
+	/* Must have a valid mapping */
+	if (!pio->mapped) 
+		panic("no active mapping");
+
 	/* The requested subrange must fall within the existing mapped range */
 	if (offset > pio->size ||
 	    width > pio->size ||
 	    pio->size - offset < width)
 	{
-		return (ENXIO);
+		panic("invalid offset %#jx", offset);
 	}
 
 	return (bhndb_pci_probe_read(pio->probe, pio->addr, offset, width));

Modified: head/sys/dev/bhnd/siba/siba_erom.c
==============================================================================
--- head/sys/dev/bhnd/siba/siba_erom.c	Thu Mar 29 19:43:29 2018	(r331743)
+++ head/sys/dev/bhnd/siba/siba_erom.c	Thu Mar 29 19:44:15 2018	(r331744)
@@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$");
 
 #include 
 
-#include 
+#include 
 
 #include 
 
@@ -390,7 +390,6 @@ siba_eio_read_chipid(struct siba_erom_io *io, bus_addr
     struct bhnd_chipid *cid)
 {
 	struct siba_core_id	ccid;
-	uint32_t		idreg;
 	int			error;
 
 	/* Identify the chipcommon core */
@@ -409,12 +408,39 @@ siba_eio_read_chipid(struct siba_erom_io *io, bus_addr
 	}
 
 	/* Identify the chipset */
-	idreg = siba_eio_read_4(io, 0, CHIPC_ID);
-	*cid = bhnd_parse_chipid(idreg, enum_addr);
+	if ((error = bhnd_erom_read_chipid(io->eio, cid)))
+		return (error);
 
-	/* Fix up the core count in-place */
-	return (bhnd_chipid_fixed_ncores(cid, ccid.core_info.hwrev,
-	    &cid->ncores));
+	/* Do we need to fix up the core count? */
+	if (CHIPC_NCORES_MIN_HWREV(ccid.core_info.hwrev))
+		return (0);
+
+	switch (cid->chip_id) {
+	case BHND_CHIPID_BCM4306:
+		cid->ncores = 6;
+		break;
+	case BHND_CHIPID_BCM4704:
+		cid->ncores = 9;
+		break;
+	case BHND_CHIPID_BCM5365:
+		/*
+		* BCM5365 does support ID_NUMCORE in at least
+		* some of its revisions, but for unknown
+		* reasons, Broadcom's drivers always exclude
+		* the ChipCommon revision (0x5) used by BCM5365
+		* from the set of revisions supporting
+		* ID_NUMCORE, and instead supply a fixed value.
+		* 
+		* Presumably, at least some of these devices
+		* shipped with a broken ID_NUMCORE value.
+		*/
+		cid->ncores = 7;
+		break;
+	default:
+		return (EINVAL);
+	}
+
+	return (0);
 }
 
 static int

From owner-svn-src-all@freebsd.org  Thu Mar 29 19:48:18 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 87882F71213;
 Thu, 29 Mar 2018 19:48:18 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3B72D80823;
 Thu, 29 Mar 2018 19:48:18 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 363551E778;
 Thu, 29 Mar 2018 19:48:18 +0000 (UTC) (envelope-from np@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TJmHbA087614;
 Thu, 29 Mar 2018 19:48:17 GMT (envelope-from np@FreeBSD.org)
Received: (from np@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TJmHQb087613;
 Thu, 29 Mar 2018 19:48:17 GMT (envelope-from np@FreeBSD.org)
Message-Id: <201803291948.w2TJmHQb087613@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org
 using -f
From: Navdeep Parhar 
Date: Thu, 29 Mar 2018 19:48:17 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331745 - head/sys/netinet
X-SVN-Group: head
X-SVN-Commit-Author: np
X-SVN-Commit-Paths: head/sys/netinet
X-SVN-Commit-Revision: 331745
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 19:48:18 -0000

Author: np
Date: Thu Mar 29 19:48:17 2018
New Revision: 331745
URL: https://svnweb.freebsd.org/changeset/base/331745

Log:
  Fix RSS build (broken in r331309).
  
  Sponsored by:	Chelsio Communications

Modified:
  head/sys/netinet/in_pcb.c

Modified: head/sys/netinet/in_pcb.c
==============================================================================
--- head/sys/netinet/in_pcb.c	Thu Mar 29 19:44:15 2018	(r331744)
+++ head/sys/netinet/in_pcb.c	Thu Mar 29 19:48:17 2018	(r331745)
@@ -1820,9 +1820,9 @@ in_pcblookup_group(struct inpcbinfo *pcbinfo, struct i
 
 found:
 	if (lookupflags & INPLOOKUP_WLOCKPCB)
-		locked = TRY_INP_WLOCK(inp);
+		locked = INP_TRY_WLOCK(inp);
 	else if (lookupflags & INPLOOKUP_RLOCKPCB)
-		locked = TRY_INP_RLOCK(inp);
+		locked = INP_TRY_RLOCK(inp);
 	else
 		panic("%s: locking bug", __func__);
 	if (!locked)

From owner-svn-src-all@freebsd.org  Thu Mar 29 19:48:51 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 701CBF712F6;
 Thu, 29 Mar 2018 19:48:51 +0000 (UTC)
 (envelope-from landonf@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 2129680998;
 Thu, 29 Mar 2018 19:48:51 +0000 (UTC)
 (envelope-from landonf@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1C0361E77C;
 Thu, 29 Mar 2018 19:48:51 +0000 (UTC)
 (envelope-from landonf@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TJmoTu087680;
 Thu, 29 Mar 2018 19:48:50 GMT (envelope-from landonf@FreeBSD.org)
Received: (from landonf@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TJmogQ087678;
 Thu, 29 Mar 2018 19:48:50 GMT (envelope-from landonf@FreeBSD.org)
Message-Id: <201803291948.w2TJmogQ087678@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: landonf set sender to
 landonf@FreeBSD.org using -f
From: "Landon J. Fuller" 
Date: Thu, 29 Mar 2018 19:48:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331746 - in head/sys: dev/bhnd/bhndb mips/broadcom
X-SVN-Group: head
X-SVN-Commit-Author: landonf
X-SVN-Commit-Paths: in head/sys: dev/bhnd/bhndb mips/broadcom
X-SVN-Commit-Revision: 331746
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 19:48:51 -0000

Author: landonf
Date: Thu Mar 29 19:48:50 2018
New Revision: 331746
URL: https://svnweb.freebsd.org/changeset/base/331746

Log:
  bhnd(4): Use the new BHND_CAP_BP64 capability flag to exclude DMA
  translations unsupported by the backplane.

Modified:
  head/sys/dev/bhnd/bhndb/bhndb.c
  head/sys/mips/broadcom/bhnd_nexus.c

Modified: head/sys/dev/bhnd/bhndb/bhndb.c
==============================================================================
--- head/sys/dev/bhnd/bhndb/bhndb.c	Thu Mar 29 19:48:17 2018	(r331745)
+++ head/sys/dev/bhnd/bhndb/bhndb.c	Thu Mar 29 19:48:50 2018	(r331746)
@@ -2128,7 +2128,14 @@ bhndb_get_dma_translation(device_t dev, device_t child
 	if (sc->bus_res->res->dma_tags == NULL)
 		return (ENODEV);
 
-	/* Find the best matching descriptor for the requested type */
+	/* Is the requested width supported? */
+	if (width > BHND_DMA_ADDR_32BIT) {
+		/* Backplane must support 64-bit addressing */
+		if (!(sc->chipid.chip_caps & BHND_CAP_BP64))
+			width = BHND_DMA_ADDR_32BIT;
+	}
+
+	/* Find the best matching descriptor for the requested width */
 	addr_mask = BHND_DMA_ADDR_BITMASK(width);
 
 	match = NULL;

Modified: head/sys/mips/broadcom/bhnd_nexus.c
==============================================================================
--- head/sys/mips/broadcom/bhnd_nexus.c	Thu Mar 29 19:48:17 2018	(r331745)
+++ head/sys/mips/broadcom/bhnd_nexus.c	Thu Mar 29 19:48:50 2018	(r331746)
@@ -234,10 +234,11 @@ bhnd_nexus_get_dma_translation(device_t dev, device_t 
 	KASSERT(width > 0 && width <= BHND_DMA_ADDR_64BIT,
 	    ("invalid width %u", width));
 
+	/* Is the requested width supported? */
 	if (width > BHND_DMA_ADDR_32BIT) {
 		/* Backplane must support 64-bit addressing */
-		if (!(bp->cc_caps & CHIPC_CAP_BKPLN64))
-			return (ENOENT);
+		if (!(bp->cid.chip_caps & BHND_CAP_BP64))
+			width = BHND_DMA_ADDR_32BIT;
 	}
 
 	/* No DMA address translation required */

From owner-svn-src-all@freebsd.org  Thu Mar 29 19:49:20 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55B44F713C7
 for ;
 Thu, 29 Mar 2018 19:49:20 +0000 (UTC)
 (envelope-from wlosh@bsdimp.com)
Received: from mail-it0-x22a.google.com (mail-it0-x22a.google.com
 [IPv6:2607:f8b0:4001:c0b::22a])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id D54CE80B18
 for ; Thu, 29 Mar 2018 19:49:19 +0000 (UTC)
 (envelope-from wlosh@bsdimp.com)
Received: by mail-it0-x22a.google.com with SMTP id c1-v6so9244300itj.1
 for ; Thu, 29 Mar 2018 12:49:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=bsdimp-com.20150623.gappssmtp.com; s=20150623;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=NJUaloFldYjLbCdkU8lzGgypCZpbX6zLiBPrkfMNaUk=;
 b=Sdgwkvof7aIzKzVArmhbZjwDp1nE4eQNuf2S7mhZFv83ivFGzCn8Mrmdjgqe5kq1yS
 QR0V5/1yQsBVqaqBBSnAZasLDqqiIN4j3gfVK+KQ9fHTJQBFNqqm/ydIR9ikxxJNFBUF
 M7WOMhmOVymcS1wDeRIr+Dm08JGYMvcKEuHP+XV24Jjr8swYFj93rU78n08b8gz2U2nx
 sea105YDR6ygOTeMaXZh/e55g5/wxkm9l/DkOF+BgcO8u/PPPBCTbOqI6O37OV+BcF4S
 PAP9rjYxctp3kbTX+0Mx3ftg1cpXVm10m7wQ06Es/4NIgUjf8mrD8mNDxAGGNHEb5qm4
 4fvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc;
 bh=NJUaloFldYjLbCdkU8lzGgypCZpbX6zLiBPrkfMNaUk=;
 b=kGcG5o0cu3tKnRxQCO0p2TUzDAUmSH6ccuBI1ZAx6n8Q8xK7W7/+UXtyQzk7/jVoUm
 gKnTxg6Clj+/9N7tL0N7TD0/7YbIAZnq9ZkLoI6VnCwgaoZDGRFvL+nibyioLa/rBbyk
 JR3jMANMQlOUTD3ZGTEhs+q0XG7KxHU0gPyLBRUgU3CH1WxG9xJpVUAvxnppF9xPsJcS
 7JP1eW13xpVUv+IzLVKxlXLg7i4LQR3Nj/UgA1zIANnZdImDvvkQlb3C1okqZ8a/dZ7g
 gekQBWH1R2CXfQmKTbp6Roovvn3v2YJCN0gJpmLKgvxPpFBs4xewP4+LRFySXr3qVMdY
 H2pw==
X-Gm-Message-State: ALQs6tA+M3QsULyLmrGiH2RrQ/3lynDJHCXqp7SCHq9DXtELHE8VPE2d
 FxUsd7IbUk7KZXxTuwrEESua8dlkGtrPcATFYlLySw==
X-Google-Smtp-Source: AIpwx4+Gx1rAjMOXcEk9BmbdXtBFzySaeIdQsbeKmXl73TCEs452D05cZANrhIJDXuI+KPnQq+ps2j4NBMEXanLRofQ=
X-Received: by 2002:a24:fa83:: with SMTP id
 v125-v6mr360125ith.36.1522352959186; 
 Thu, 29 Mar 2018 12:49:19 -0700 (PDT)
MIME-Version: 1.0
Sender: wlosh@bsdimp.com
Received: by 10.79.203.196 with HTTP; Thu, 29 Mar 2018 12:49:18 -0700 (PDT)
X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d]
In-Reply-To: <1522352399.49673.120.camel@freebsd.org>
References: <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
 <1522352399.49673.120.camel@freebsd.org>
From: Warner Losh 
Date: Thu, 29 Mar 2018 13:49:18 -0600
X-Google-Sender-Auth: fL62FwrmsepTnG-XLxbEcpYjwi0
Message-ID: 
Subject: Re: svn commit: r331728 - in stable/11/etc: . rc.d
To: Ian Lepore 
Cc: "Rodney W. Grimes" ,
 Marcelo Araujo , 
 src-committers , svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-Content-Filtered-By: Mailman/MimeDel 2.1.25
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 19:49:20 -0000

On Thu, Mar 29, 2018 at 1:39 PM, Ian Lepore  wrote:

> On Thu, 2018-03-29 at 09:33 -0700, Rodney W. Grimes wrote:
> > >
> > > On Thu, 2018-03-29 at 06:20 -0700, Rodney W. Grimes wrote:
> > > >
> > > > >
> > > > >
> > > > > Author: araujo
> > > > > Date: Thu Mar 29 04:51:07 2018
> > > > > New Revision: 331728
> > > > > URL: https://svnweb.freebsd.org/changeset/base/331728
> > > > >
> > > > > Log:
> > > > > ? MFC r329817:
> > > > I must of missed this when it landed in ^/head
> > > >
> > > > >
> > > > >
> > > > > ? The firewall_type is ignored if not set in rc.conf or
> rc.conf.local,
> > > > > ? after r190575 there is an option to call rc.firewall with the
> firewall_type
> > > > > ? passed in as an argument.
> > > > > ??
> > > > > ? Submitted by: David P. Discher 
> > > > > ? Sponsored by: iXsystems Inc.
> > > > > ? Differential Revision:        https://reviews.freebsd.org/D14286
> > > > No one accepted it :-(.
> > > >
> > > That's not a blocker for committing; plenty of time elapsed to allow
> > > anyone to reject the change. IMO, even a flat-out rejection isn't a
> > > blocker to committing except for things like random or crypto code that
> > > require formal approval (but I'd certainly think hard about committing
> > > if people rejected the change, and put some effort into finding a
> > > compromise first).
> > It seems that the Phabricator review system is somewhat disfunctional
> > in that actual review is only happening in some cases.  Some people
> > have even stated they flat out hate it.  Others say that it is the
> > way to go.
> >
>
> Which is exactly why phab reviews are optional. There are some of us
> who've said that if they become mandatory, we're done working on
> freebsd. Personally, I put things up for review if I have some doubts
> about my choices, or if it's in an area of the system I'm not very
> familiar with. If nobody wants to review the changes within a week or
> two, I commit and move on.
>

phab is there to make things better. When there's changes worth reviewing,
I use phab. When there's trivial changes or even boring minor ones, there's
no benefit from the review. It adds process without adding value, which is
lame. Especially for a project that's a volunteer project where people's
time may be limited and you need to be as efficient as possible with it.
Doing things that add value, sure. Doing things to tick a box, forget it.

Warner

From owner-svn-src-all@freebsd.org  Thu Mar 29 19:53:57 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 108DCF71BFD;
 Thu, 29 Mar 2018 19:53:57 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B5F7581246;
 Thu, 29 Mar 2018 19:53:56 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B0A3A1E93A;
 Thu, 29 Mar 2018 19:53:56 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TJruGB092418;
 Thu, 29 Mar 2018 19:53:56 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TJruZm092415;
 Thu, 29 Mar 2018 19:53:56 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803291953.w2TJruZm092415@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Thu, 29 Mar 2018 19:53:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331747 - in stable/11/sys: conf kern sys
X-SVN-Group: stable-11
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in stable/11/sys: conf kern sys
X-SVN-Commit-Revision: 331747
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 19:53:57 -0000

Author: brooks
Date: Thu Mar 29 19:53:56 2018
New Revision: 331747
URL: https://svnweb.freebsd.org/changeset/base/331747

Log:
  MFC r328522:
  
  Create deprecation management functions.
  
  gone_in(majar, msg);	If we're running in FreeBSD major, tell
  			the user this code may be deleted soon.
  			If we're running in FreeBSD major - 1,
  			the the user is deprecated and will
  			be gone in major.
  			Otherwise say nothing.
  
  gone_in_dev(dev, major, msg) Just like gone_in, except use device_printf.
  
  New tunable / sysctl debug.oboslete_panic: 0 - don't panic,
  	1 - panic in major or newer , 2 - panic in major - 1 or newer
  	default: 0
  
  if NO_OBSOLETE_CODE is defined, then both of these turn into compile
  time errors when building for major. Add options NO_OBSOLETE_CODE to
  kernel build system.
  
  This lets us tag code that's going away so users know it will be gone,
  as well as automatically manage things.
  
  Differential Review: https://reviews.freebsd.org/D13818

Modified:
  stable/11/sys/conf/options
  stable/11/sys/kern/subr_bus.c
  stable/11/sys/sys/systm.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/conf/options
==============================================================================
--- stable/11/sys/conf/options	Thu Mar 29 19:48:50 2018	(r331746)
+++ stable/11/sys/conf/options	Thu Mar 29 19:53:56 2018	(r331747)
@@ -176,6 +176,7 @@ NO_ADAPTIVE_MUTEXES	opt_adaptive_mutexes.h
 NO_ADAPTIVE_RWLOCKS
 NO_ADAPTIVE_SX
 NO_EVENTTIMERS		opt_timer.h
+NO_OBSOLETE_CODE	opt_global.h
 NO_SYSCTL_DESCR	opt_global.h
 NSWBUF_MIN	opt_swap.h
 MBUF_PACKET_ZONE_DISABLE	opt_global.h

Modified: stable/11/sys/kern/subr_bus.c
==============================================================================
--- stable/11/sys/kern/subr_bus.c	Thu Mar 29 19:48:50 2018	(r331746)
+++ stable/11/sys/kern/subr_bus.c	Thu Mar 29 19:53:56 2018	(r331747)
@@ -5592,3 +5592,53 @@ devctl2_init(void)
 	make_dev_credf(MAKEDEV_ETERNAL, &devctl2_cdevsw, 0, NULL,
 	    UID_ROOT, GID_WHEEL, 0600, "devctl2");
 }
+
+/*
+ * APIs to manage deprecation and obsolescence.
+ */
+static int obsolete_panic = 0;
+SYSCTL_INT(_debug, OID_AUTO, obsolete_panic, CTLFLAG_RWTUN, &obsolete_panic, 0,
+    "Bus debug level");
+/* 0 - don't panic, 1 - panic if already obsolete, 2 - panic if deprecated */
+static void
+gone_panic(int major, int running, const char *msg)
+{
+
+	switch (obsolete_panic)
+	{
+	case 0:
+		return;
+	case 1:
+		if (running < major)
+			return;
+		/* FALLTHROUGH */
+	default:
+		panic("%s", msg);
+	}
+}
+
+void
+_gone_in(int major, const char *msg)
+{
+
+	gone_panic(major, P_OSREL_MAJOR(__FreeBSD_version), msg);
+	if (P_OSREL_MAJOR(__FreeBSD_version) >= major)
+		printf("Obsolete code will removed soon: %s\n", msg);
+	else if (P_OSREL_MAJOR(__FreeBSD_version) + 1 == major)
+		printf("Deprecated code (to be removed in FreeBSD %d): %s\n",
+		    major, msg);
+}
+
+void
+_gone_in_dev(device_t dev, int major, const char *msg)
+{
+
+	gone_panic(major, P_OSREL_MAJOR(__FreeBSD_version), msg);
+	if (P_OSREL_MAJOR(__FreeBSD_version) >= major)
+		device_printf(dev,
+		    "Obsolete code will removed soon: %s\n", msg);
+	else if (P_OSREL_MAJOR(__FreeBSD_version) + 1 == major)
+		device_printf(dev,
+		    "Deprecated code (to be removed in FreeBSD %d): %s\n",
+		    major, msg);
+}

Modified: stable/11/sys/sys/systm.h
==============================================================================
--- stable/11/sys/sys/systm.h	Thu Mar 29 19:48:50 2018	(r331746)
+++ stable/11/sys/sys/systm.h	Thu Mar 29 19:53:56 2018	(r331747)
@@ -461,6 +461,22 @@ void	intr_prof_stack_use(struct thread *td, struct tra
 
 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);
+#ifdef NO_OBSOLETE_CODE
+#define __gone_ok(m, msg)					 \
+	_Static_assert(m < P_OSREL_MAJOR(__FreeBSD_version)),	 \
+	    "Obsolete code" msg);
+#else
+#define	__gone_ok(m, msg)
+#endif
+#define gone_in(major, msg)		__gone_ok(major, msg) _gone_in(major, msg)
+#define gone_in_dev(dev, major, msg)	__gone_ok(major, msg) _gone_in_dev(dev, major, msg)
+
 __NULLABILITY_PRAGMA_POP
 
 #endif /* !_SYS_SYSTM_H_ */

From owner-svn-src-all@freebsd.org  Thu Mar 29 22:31:14 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CD729F4F902;
 Thu, 29 Mar 2018 22:31:14 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 7FB1A6804A;
 Thu, 29 Mar 2018 22:31:14 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7A7222028A;
 Thu, 29 Mar 2018 22:31:14 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2TMVElS070746;
 Thu, 29 Mar 2018 22:31:14 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2TMVEA2070745;
 Thu, 29 Mar 2018 22:31:14 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803292231.w2TMVEA2070745@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Thu, 29 Mar 2018 22:31:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331749 - stable/10/sys/compat/svr4
X-SVN-Group: stable-10
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/10/sys/compat/svr4
X-SVN-Commit-Revision: 331749
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 22:31:15 -0000

Author: emaste
Date: Thu Mar 29 22:31:14 2018
New Revision: 331749
URL: https://svnweb.freebsd.org/changeset/base/331749

Log:
  MF11 r331330: Fix kernel memory disclosure in svr4_sys_getdents64
  
  svr4_sys_getdents64() copies a dirent structure to userland.  When
  calculating the record length for any given dirent entry alignment is
  performed.  However, the aligned bytes are not cleared, this will
  trigger an info leak.
  
  Reported by:	Ilja Van Sprundel 
  Security:	Kernel memory disclosure (801)
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/10/sys/compat/svr4/svr4_misc.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/compat/svr4/svr4_misc.c
==============================================================================
--- stable/10/sys/compat/svr4/svr4_misc.c	Thu Mar 29 20:39:05 2018	(r331748)
+++ stable/10/sys/compat/svr4/svr4_misc.c	Thu Mar 29 22:31:14 2018	(r331749)
@@ -260,6 +260,7 @@ svr4_sys_getdents64(td, uap)
 	u_long *cookies = NULL, *cookiep;
 	int ncookies;
 
+	memset(&svr4_dirent, 0, sizeof(svr4_dirent));
 	DPRINTF(("svr4_sys_getdents64(%d, *, %d)\n",
 		uap->fd, uap->nbytes));
 	error = getvnode(td->td_proc->p_fd, uap->fd,

From owner-svn-src-all@freebsd.org  Thu Mar 29 23:10:26 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 02516F52C4F;
 Thu, 29 Mar 2018 23:10:26 +0000 (UTC)
 (envelope-from bzeeb-lists@lists.zabbadoz.net)
Received: from mx1.sbone.de (bird.sbone.de [46.4.1.90])
 (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
 (Client CN "mx1.sbone.de", Issuer "SBone.DE" (not verified))
 by mx1.freebsd.org (Postfix) with ESMTPS id B468A69CC5;
 Thu, 29 Mar 2018 23:10:25 +0000 (UTC)
 (envelope-from bzeeb-lists@lists.zabbadoz.net)
Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587])
 (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits))
 (No client certificate requested)
 by mx1.sbone.de (Postfix) with ESMTPS id 0147025D3A6D;
 Thu, 29 Mar 2018 23:10:22 +0000 (UTC)
Received: from content-filter.sbone.de (content-filter.sbone.de
 [IPv6:fde9:577b:c1a9:31::2013:2742])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mail.sbone.de (Postfix) with ESMTPS id 31093D1F83D;
 Thu, 29 Mar 2018 23:10:22 +0000 (UTC)
X-Virus-Scanned: amavisd-new at sbone.de
Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587])
 by content-filter.sbone.de (content-filter.sbone.de
 [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024)
 with ESMTP id Zieb_EPFvpTS; Thu, 29 Mar 2018 23:10:20 +0000 (UTC)
Received: from [192.168.1.88] (fresh-ayiya.sbone.de
 [IPv6:fde9:577b:c1a9:f001::2])
 (using TLSv1 with cipher AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mail.sbone.de (Postfix) with ESMTPSA id 81230D1F822;
 Thu, 29 Mar 2018 23:10:20 +0000 (UTC)
From: "Bjoern A. Zeeb" 
To: "Alexander V. Chernikov" 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: Re: svn commit: r331098 - in head/sys: net netinet netinet6
Date: Thu, 29 Mar 2018 23:10:19 +0000
X-Mailer: MailMate (2.0BETAr6106)
Message-ID: <99B864A7-2541-4EBF-BDF3-F24E1ABF11D0@lists.zabbadoz.net>
In-Reply-To: <201803171705.w2HH5mk1054256@repo.freebsd.org>
References: <201803171705.w2HH5mk1054256@repo.freebsd.org>
MIME-Version: 1.0
Content-Type: text/plain; format=flowed
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 23:10:26 -0000

On 17 Mar 2018, at 17:05, Alexander V. Chernikov wrote:

> Author: melifaro
> Date: Sat Mar 17 17:05:48 2018
> New Revision: 331098
> URL: https://svnweb.freebsd.org/changeset/base/331098
>
> Log:
>   Fix outgoing TCP/UDP packet drop on arp/ndp entry expiration.
>
>   Current arp/nd code relies on the feedback from the datapath 
> indicating
>    that the entry is still used. This mechanism is incorporated into 
> the
>    arpresolve()/nd6_resolve() routines. After the inpcb route cache
>    introduction, the packet path for the locally-originated packets 
> changed,
>    passing cached lle pointer to the ether_output() directly. This 
> resulted
>    in the arp/ndp entry expire each time exactly after the configured 
> max_age
>    interval. During the small window between the ARP/NDP request and 
> reply
>    from the router, most of the packets got lost.
>
>   Fix this behaviour by plugging datapath notification code to the 
> packet
>    path used by route cache. Unify the notification code by using 
> single
>    inlined function with the per-AF callbacks.
>
>   Reported by:	sthaug at nethelp.no
>   Reviewed by:	ae
>   MFC after:	2 weeks

Does this mean that we now take an extra lock per-packet again?

/bz

From owner-svn-src-all@freebsd.org  Thu Mar 29 23:25:09 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C59FF53F84;
 Thu, 29 Mar 2018 23:25:09 +0000 (UTC)
 (envelope-from melifaro@ipfw.ru)
Received: from forward104o.mail.yandex.net (forward104o.mail.yandex.net
 [IPv6:2a02:6b8:0:1a2d::607])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "forwards.mail.yandex.net", Issuer "Yandex CA" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B05436A8D6;
 Thu, 29 Mar 2018 23:25:08 +0000 (UTC)
 (envelope-from melifaro@ipfw.ru)
Received: from mxback9j.mail.yandex.net (mxback9j.mail.yandex.net
 [IPv6:2a02:6b8:0:1619::112])
 by forward104o.mail.yandex.net (Yandex) with ESMTP id 49C56700DDF;
 Fri, 30 Mar 2018 02:24:57 +0300 (MSK)
Received: from localhost (localhost [::1])
 by mxback9j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id 01b6uf5HIP-OtXaPV6f; 
 Fri, 30 Mar 2018 02:24:56 +0300
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfw.ru; s=mail;
 t=1522365896; bh=YHGJbXniAvCvKmzHH2Ou2HqObPYZdIbSoG+BaqrEAl8=;
 h=From:To:Cc:In-Reply-To:References:Subject:Message-Id:Date;
 b=tttPc31O9UEE843bCL9qyIPEpkUqkoI2u4SRDZlEBoRTeKvEy+wC9CWETb89IwrpG
 gxYA2chvG1DbD+cWK1QHo3a506AzikGIQZTDPbNBDBwvqKc1ycsLfyStfD3E+2QAAw
 gq6Gh4i3ZEnQ9y1ddgci8iBrkKegz9Sc5X663ua8=
Authentication-Results: mxback9j.mail.yandex.net; dkim=pass header.i=@ipfw.ru
Received: by web41j.yandex.ru with HTTP;
	Fri, 30 Mar 2018 02:24:55 +0300
From: Alexander V. Chernikov 
Envelope-From: melifaro@ipfw.ru
To: Bjoern A. Zeeb 
Cc: "src-committers@freebsd.org" ,
 "svn-src-all@freebsd.org" ,
 "svn-src-head@freebsd.org" 
In-Reply-To: <99B864A7-2541-4EBF-BDF3-F24E1ABF11D0@lists.zabbadoz.net>
References: <201803171705.w2HH5mk1054256@repo.freebsd.org>
 <99B864A7-2541-4EBF-BDF3-F24E1ABF11D0@lists.zabbadoz.net>
Subject: Re: svn commit: r331098 - in head/sys: net netinet netinet6
MIME-Version: 1.0
Message-Id: <10903971522365895@web41j.yandex.ru>
X-Mailer: Yamail [ http://yandex.ru ] 5.0
Date: Fri, 30 Mar 2018 02:24:55 +0300
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=utf-8
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Thu, 29 Mar 2018 23:25:09 -0000

30.03.2018, 02:10, "Bjoern A. Zeeb" :
> On 17 Mar 2018, at 17:05, Alexander V. Chernikov wrote:
>
>>  Author: melifaro
>>  Date: Sat Mar 17 17:05:48 2018
>>  New Revision: 331098
>>  URL: https://svnweb.freebsd.org/changeset/base/331098
>>
>>  Log:
>>    Fix outgoing TCP/UDP packet drop on arp/ndp entry expiration.
>>
>>    Current arp/nd code relies on the feedback from the datapath
>>  indicating
>>     that the entry is still used. This mechanism is incorporated into
>>  the
>>     arpresolve()/nd6_resolve() routines. After the inpcb route cache
>>     introduction, the packet path for the locally-originated packets
>>  changed,
>>     passing cached lle pointer to the ether_output() directly. This
>>  resulted
>>     in the arp/ndp entry expire each time exactly after the configured
>>  max_age
>>     interval. During the small window between the ARP/NDP request and
>>  reply
>>     from the router, most of the packets got lost.
>>
>>    Fix this behaviour by plugging datapath notification code to the
>>  packet
>>     path used by route cache. Unify the notification code by using
>>  single
>>     inlined function with the per-AF callbacks.
>>
>>    Reported by: sthaug at nethelp.no
>>    Reviewed by: ae
>>    MFC after: 2 weeks
>
> Does this mean that we now take an extra lock per-packet again?
No. This codepath is triggered only when ARP/NDP state machine requires datapath feedback, e.g. at most once per second per LLE. 
>
> /bz

From owner-svn-src-all@freebsd.org  Fri Mar 30 00:10:40 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3C977F575A3;
 Fri, 30 Mar 2018 00:10:40 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E48E66C213;
 Fri, 30 Mar 2018 00:10:39 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DE0A0212BE;
 Fri, 30 Mar 2018 00:10:39 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2U0Ad85020364;
 Fri, 30 Mar 2018 00:10:39 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2U0AdbA020363;
 Fri, 30 Mar 2018 00:10:39 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803300010.w2U0AdbA020363@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Fri, 30 Mar 2018 00:10:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331750 - stable/11/share/mk
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/11/share/mk
X-SVN-Commit-Revision: 331750
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 00:10:40 -0000

Author: emaste
Date: Fri Mar 30 00:10:39 2018
New Revision: 331750
URL: https://svnweb.freebsd.org/changeset/base/331750

Log:
  MFC r321417: enable filter lib linker feature flag for lld 5.0+
  
  Also switch the logic to enable this for any non-lld linker, since
  filter library support is fairly simple and is very likely supported
  by any other linker capable of linking the FreeBSD base system.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/share/mk/bsd.linker.mk
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/share/mk/bsd.linker.mk
==============================================================================
--- stable/11/share/mk/bsd.linker.mk	Thu Mar 29 22:31:14 2018	(r331749)
+++ stable/11/share/mk/bsd.linker.mk	Fri Mar 30 00:10:39 2018	(r331750)
@@ -70,7 +70,7 @@ ${X_}LINKER_FEATURES=
 .if ${${X_}LINKER_TYPE} != "bfd" || ${${X_}LINKER_VERSION} > 21750
 ${X_}LINKER_FEATURES+=	build-id
 .endif
-.if ${${X_}LINKER_TYPE} == "bfd"
+.if ${${X_}LINKER_TYPE} != "lld" || ${${X_}LINKER_VERSION} >= 50000
 ${X_}LINKER_FEATURES+=	filter
 .endif
 .endif

From owner-svn-src-all@freebsd.org  Fri Mar 30 01:19:53 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF448F60345;
 Fri, 30 Mar 2018 01:19:53 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 651D76E541;
 Fri, 30 Mar 2018 01:19:53 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 601DF21DF8;
 Fri, 30 Mar 2018 01:19:53 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2U1Jr7E055050;
 Fri, 30 Mar 2018 01:19:53 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2U1JrE1055049;
 Fri, 30 Mar 2018 01:19:53 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803300119.w2U1JrE1055049@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Fri, 30 Mar 2018 01:19:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331751 - stable/11/sys/conf
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/11/sys/conf
X-SVN-Commit-Revision: 331751
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 01:19:53 -0000

Author: emaste
Date: Fri Mar 30 01:19:53 2018
New Revision: 331751
URL: https://svnweb.freebsd.org/changeset/base/331751

Log:
  MFC r329373: Correct module symbol export handling
  
  EXPORT_SYMS can be set to YES, NO, a list of symbols to export from a
  module, or to a filename containing such a list.  For the case that it
  is set to a symbol list, replace spaces in the list with newlines, so
  the created file is in the format expected by kmod_syms.awk.
  
  Sponsored by:	Turing Robotic Industries Inc.

Modified:
  stable/11/sys/conf/kmod.mk
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/conf/kmod.mk
==============================================================================
--- stable/11/sys/conf/kmod.mk	Fri Mar 30 00:10:39 2018	(r331750)
+++ stable/11/sys/conf/kmod.mk	Fri Mar 30 01:19:53 2018	(r331751)
@@ -238,14 +238,14 @@ ${FULLPROG}: ${OBJS}
 .if ${EXPORT_SYMS} == NO
 	:> export_syms
 .elif !exists(${.CURDIR}/${EXPORT_SYMS})
-	echo ${EXPORT_SYMS} > export_syms
+	echo -n "${EXPORT_SYMS:@s@$s${.newline}@}" > export_syms
 .else
 	grep -v '^#' < ${EXPORT_SYMS} > export_syms
 .endif
 	${AWK} -f ${SYSDIR}/conf/kmod_syms.awk ${.TARGET} \
 	    export_syms | xargs -J% ${OBJCOPY} % ${.TARGET}
 .endif
-.endif
+.endif # defined(EXPORT_SYMS)
 .if !defined(DEBUG_FLAGS) && ${__KLD_SHARED} == no
 	${OBJCOPY} --strip-debug ${.TARGET}
 .endif

From owner-svn-src-all@freebsd.org  Fri Mar 30 01:22:48 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79EAAF607FC;
 Fri, 30 Mar 2018 01:22:48 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 2A76D6E95A;
 Fri, 30 Mar 2018 01:22:48 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 23C6521F89;
 Fri, 30 Mar 2018 01:22:48 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2U1Ml9i059616;
 Fri, 30 Mar 2018 01:22:47 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2U1MliB059614;
 Fri, 30 Mar 2018 01:22:47 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803300122.w2U1MliB059614@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Fri, 30 Mar 2018 01:22:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331752 - stable/11/sys/conf
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/11/sys/conf
X-SVN-Commit-Revision: 331752
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 01:22:48 -0000

Author: emaste
Date: Fri Mar 30 01:22:47 2018
New Revision: 331752
URL: https://svnweb.freebsd.org/changeset/base/331752

Log:
  MFC r320695 (bdrewery): Fix out-of-tree kernel builds
  
  after r331730 (MFC of r320275) when bsd.linker.mk not yet installed.

Modified:
  stable/11/sys/conf/kern.pre.mk
  stable/11/sys/conf/kmod.mk
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/conf/kern.pre.mk
==============================================================================
--- stable/11/sys/conf/kern.pre.mk	Fri Mar 30 01:19:53 2018	(r331751)
+++ stable/11/sys/conf/kern.pre.mk	Fri Mar 30 01:22:47 2018	(r331752)
@@ -109,7 +109,7 @@ DEFINED_PROF=	${PROF}
 # can override the others.
 CFLAGS+=	${CONF_CFLAGS}
 
-.if ${LINKER_FEATURES:Mbuild-id}
+.if defined(LINKER_FEATURES) && ${LINKER_FEATURES:Mbuild-id}
 LDFLAGS+=	-Wl,--build-id=sha1
 .endif
 

Modified: stable/11/sys/conf/kmod.mk
==============================================================================
--- stable/11/sys/conf/kmod.mk	Fri Mar 30 01:19:53 2018	(r331751)
+++ stable/11/sys/conf/kmod.mk	Fri Mar 30 01:22:47 2018	(r331752)
@@ -125,7 +125,7 @@ CFLAGS.gcc+= --param large-function-growth=1000
 CFLAGS+=	-fno-common
 LDFLAGS+=	-d -warn-common
 
-.if ${LINKER_FEATURES:Mbuild-id}
+.if defined(LINKER_FEATURES) && ${LINKER_FEATURES:Mbuild-id}
 LDFLAGS+=	-Wl,--build-id=sha1
 .endif
 

From owner-svn-src-all@freebsd.org  Fri Mar 30 01:53:16 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B9249F64B3B;
 Fri, 30 Mar 2018 01:53:15 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6BC136FB91;
 Fri, 30 Mar 2018 01:53:15 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 666B622455;
 Fri, 30 Mar 2018 01:53:15 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2U1rFCs074802;
 Fri, 30 Mar 2018 01:53:15 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2U1rEba074797;
 Fri, 30 Mar 2018 01:53:14 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803300153.w2U1rEba074797@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Fri, 30 Mar 2018 01:53:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331755 - stable/11/sys/compat/linux
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: stable/11/sys/compat/linux
X-SVN-Commit-Revision: 331755
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 01:53:16 -0000

Author: emaste
Date: Fri Mar 30 01:53:14 2018
New Revision: 331755
URL: https://svnweb.freebsd.org/changeset/base/331755

Log:
  MFC r331426: Rationalize license text on Linuxolator files
  
  Many licenses on Linuxolator files contained small variations from the
  standard FreeBSD license text.  To avoid license proliferation switch to
  the standard 2-Clause FreeBSD license for those files where I have
  permission from each of the listed copyright holders.
  
  Approved by:	rdivacky, marcel

Modified:
  stable/11/sys/compat/linux/linux_ioctl.h
  stable/11/sys/compat/linux/linux_ipc.h
  stable/11/sys/compat/linux/linux_mib.h
  stable/11/sys/compat/linux/linux_misc.h
  stable/11/sys/compat/linux/linux_signal.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/compat/linux/linux_ioctl.h
==============================================================================
--- stable/11/sys/compat/linux/linux_ioctl.h	Fri Mar 30 01:33:10 2018	(r331754)
+++ stable/11/sys/compat/linux/linux_ioctl.h	Fri Mar 30 01:53:14 2018	(r331755)
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 1999 Marcel Moolenaar
  * All rights reserved.
  *
@@ -6,24 +8,22 @@
  * 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 
- *    in this position and unchanged.
+ *    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. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
  *
- * 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.
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  *
  * $FreeBSD$
  */

Modified: stable/11/sys/compat/linux/linux_ipc.h
==============================================================================
--- stable/11/sys/compat/linux/linux_ipc.h	Fri Mar 30 01:33:10 2018	(r331754)
+++ stable/11/sys/compat/linux/linux_ipc.h	Fri Mar 30 01:53:14 2018	(r331755)
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2000 Marcel Moolenaar
  * All rights reserved.
  *
@@ -6,24 +8,22 @@
  * 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 
- *    in this position and unchanged.
+ *    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. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
  *
- * 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.
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  *
  * $FreeBSD$
  */

Modified: stable/11/sys/compat/linux/linux_mib.h
==============================================================================
--- stable/11/sys/compat/linux/linux_mib.h	Fri Mar 30 01:33:10 2018	(r331754)
+++ stable/11/sys/compat/linux/linux_mib.h	Fri Mar 30 01:53:14 2018	(r331755)
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 1999 Marcel Moolenaar
  * All rights reserved.
  *
@@ -6,24 +8,22 @@
  * 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 
- *    in this position and unchanged.
+ *    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. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
  *
- * 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.
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  *
  * $FreeBSD$
  */

Modified: stable/11/sys/compat/linux/linux_misc.h
==============================================================================
--- stable/11/sys/compat/linux/linux_misc.h	Fri Mar 30 01:33:10 2018	(r331754)
+++ stable/11/sys/compat/linux/linux_misc.h	Fri Mar 30 01:53:14 2018	(r331755)
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2006 Roman Divacky
  * All rights reserved.
  *
@@ -6,24 +8,22 @@
  * 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
- *    in this position and unchanged.
+ *    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. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission
  *
- * 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.
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  *
  * $FreeBSD$
  */

Modified: stable/11/sys/compat/linux/linux_signal.h
==============================================================================
--- stable/11/sys/compat/linux/linux_signal.h	Fri Mar 30 01:33:10 2018	(r331754)
+++ stable/11/sys/compat/linux/linux_signal.h	Fri Mar 30 01:53:14 2018	(r331755)
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2000 Marcel Moolenaar
  * All rights reserved.
  *
@@ -6,24 +8,22 @@
  * 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 
- *    in this position and unchanged.
+ *    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. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
  *
- * 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.
+ * 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$
  */

From owner-svn-src-all@freebsd.org  Fri Mar 30 02:04:50 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E1F06F65CF3;
 Fri, 30 Mar 2018 02:04:49 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8FD8A70530;
 Fri, 30 Mar 2018 02:04:49 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 71ACE225E8;
 Fri, 30 Mar 2018 02:04:49 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2U24n2m080031;
 Fri, 30 Mar 2018 02:04:49 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2U24k6v079999;
 Fri, 30 Mar 2018 02:04:46 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803300204.w2U24k6v079999@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Fri, 30 Mar 2018 02:04:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331756 - in stable/11/sys/compat/linuxkpi/common:
 include/asm include/linux include/net src
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: in stable/11/sys/compat/linuxkpi/common: include/asm
 include/linux include/net src
X-SVN-Commit-Revision: 331756
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 02:04:50 -0000

Author: emaste
Date: Fri Mar 30 02:04:46 2018
New Revision: 331756
URL: https://svnweb.freebsd.org/changeset/base/331756

Log:
  MFC r331433: linuxkpi whitespace cleanup

Modified:
  stable/11/sys/compat/linuxkpi/common/include/asm/byteorder.h
  stable/11/sys/compat/linuxkpi/common/include/linux/bitops.h
  stable/11/sys/compat/linuxkpi/common/include/linux/cdev.h
  stable/11/sys/compat/linuxkpi/common/include/linux/compiler.h
  stable/11/sys/compat/linuxkpi/common/include/linux/device.h
  stable/11/sys/compat/linuxkpi/common/include/linux/dma-attrs.h
  stable/11/sys/compat/linuxkpi/common/include/linux/dma-mapping.h
  stable/11/sys/compat/linuxkpi/common/include/linux/err.h
  stable/11/sys/compat/linuxkpi/common/include/linux/errno.h
  stable/11/sys/compat/linuxkpi/common/include/linux/etherdevice.h
  stable/11/sys/compat/linuxkpi/common/include/linux/fs.h
  stable/11/sys/compat/linuxkpi/common/include/linux/idr.h
  stable/11/sys/compat/linuxkpi/common/include/linux/if_ether.h
  stable/11/sys/compat/linuxkpi/common/include/linux/if_vlan.h
  stable/11/sys/compat/linuxkpi/common/include/linux/io.h
  stable/11/sys/compat/linuxkpi/common/include/linux/jiffies.h
  stable/11/sys/compat/linuxkpi/common/include/linux/kernel.h
  stable/11/sys/compat/linuxkpi/common/include/linux/kmod.h
  stable/11/sys/compat/linuxkpi/common/include/linux/kobject.h
  stable/11/sys/compat/linuxkpi/common/include/linux/ktime.h
  stable/11/sys/compat/linuxkpi/common/include/linux/list.h
  stable/11/sys/compat/linuxkpi/common/include/linux/log2.h
  stable/11/sys/compat/linuxkpi/common/include/linux/miscdevice.h
  stable/11/sys/compat/linuxkpi/common/include/linux/mutex.h
  stable/11/sys/compat/linuxkpi/common/include/linux/pci.h
  stable/11/sys/compat/linuxkpi/common/include/linux/rwlock.h
  stable/11/sys/compat/linuxkpi/common/include/linux/rwsem.h
  stable/11/sys/compat/linuxkpi/common/include/linux/slab.h
  stable/11/sys/compat/linuxkpi/common/include/linux/spinlock.h
  stable/11/sys/compat/linuxkpi/common/include/linux/sysfs.h
  stable/11/sys/compat/linuxkpi/common/include/linux/usb.h
  stable/11/sys/compat/linuxkpi/common/include/linux/workqueue.h
  stable/11/sys/compat/linuxkpi/common/include/net/if_inet6.h
  stable/11/sys/compat/linuxkpi/common/include/net/ipv6.h
  stable/11/sys/compat/linuxkpi/common/include/net/netevent.h
  stable/11/sys/compat/linuxkpi/common/src/linux_compat.c
  stable/11/sys/compat/linuxkpi/common/src/linux_idr.c
  stable/11/sys/compat/linuxkpi/common/src/linux_radix.c
  stable/11/sys/compat/linuxkpi/common/src/linux_usb.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/compat/linuxkpi/common/include/asm/byteorder.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/asm/byteorder.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/asm/byteorder.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -87,7 +87,7 @@
 
 static inline void
 be16_add_cpu(uint16_t *var, uint16_t val)
-{ 
+{
 	*var = cpu_to_be16(be16_to_cpu(*var) + val);
 }
 

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/bitops.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/bitops.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/bitops.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -54,7 +54,7 @@
 #define BIT_WORD(nr)		((nr) / BITS_PER_LONG)
 #define	GENMASK(h, l)		(((~0UL) >> (BITS_PER_LONG - (h) - 1)) & ((~0UL) << (l)))
 #define	GENMASK_ULL(h, l)	(((~0ULL) >> (BITS_PER_LONG_LONG - (h) - 1)) & ((~0ULL) << (l)))
-#define BITS_PER_BYTE           8
+#define BITS_PER_BYTE		8
 
 #define	hweight8(x)	bitcount((uint8_t)(x))
 #define	hweight16(x)	bitcount16(x)

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/cdev.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/cdev.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/cdev.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -112,7 +112,7 @@ cdev_add_ext(struct linux_cdev *cdev, dev_t dev, uid_t
 	int error;
 
 	cdev->dev = dev;
-	
+
 	/* Setup arguments for make_dev_s() */
 	make_dev_args_init(&args);
 	args.mda_devsw = &linuxcdevsw;

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/compiler.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/compiler.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/compiler.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -84,7 +84,7 @@
 #define	__PASTE(a,b) ___PASTE(a,b)
 
 #define	ACCESS_ONCE(x)			(*(volatile __typeof(x) *)&(x))
-  
+
 #define	WRITE_ONCE(x,v) do {		\
 	barrier();			\
 	ACCESS_ONCE(x) = (v);		\

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/device.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/device.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/device.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -124,10 +124,10 @@ extern const struct kobj_type linux_dev_ktype;
 extern const struct kobj_type linux_class_ktype;
 
 struct class_attribute {
-        struct attribute attr;
-        ssize_t (*show)(struct class *, struct class_attribute *, char *);
-        ssize_t (*store)(struct class *, struct class_attribute *, const char *, size_t);
-        const void *(*namespace)(struct class *, const struct class_attribute *);
+	struct attribute attr;
+	ssize_t (*show)(struct class *, struct class_attribute *, char *);
+	ssize_t (*store)(struct class *, struct class_attribute *, const char *, size_t);
+	const void *(*namespace)(struct class *, const struct class_attribute *);
 };
 
 #define	CLASS_ATTR(_name, _mode, _show, _store)				\
@@ -223,7 +223,7 @@ static inline char *
 dev_name(const struct device *dev)
 {
 
- 	return kobject_name(&dev->kobj);
+	return kobject_name(&dev->kobj);
 }
 
 #define	dev_set_name(_dev, _fmt, ...)					\
@@ -533,7 +533,7 @@ class_remove_file(struct class *class, const struct cl
 static inline int
 dev_to_node(struct device *dev)
 {
-                return -1;
+	return -1;
 }
 
 char *kvasprintf(gfp_t, const char *, va_list);

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/dma-attrs.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/dma-attrs.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/dma-attrs.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -38,7 +38,7 @@ enum dma_attr { DMA_ATTR_WRITE_BARRIER, DMA_ATTR_WEAK_
 struct dma_attrs {
 	unsigned long flags;
 };
- 
+
 #define DEFINE_DMA_ATTRS(x) struct dma_attrs x = { }
 
 static inline void

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/dma-mapping.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/dma-mapping.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/dma-mapping.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -97,7 +97,7 @@ dma_supported(struct device *dev, u64 mask)
 	/* XXX busdma takes care of this elsewhere. */
 	return (1);
 }
- 
+
 static inline int
 dma_set_mask(struct device *dev, u64 dma_mask)
 {
@@ -150,7 +150,7 @@ dma_zalloc_coherent(struct device *dev, size_t size, d
 
 	return (dma_alloc_coherent(dev, size, dma_handle, flag | __GFP_ZERO));
 }
-                       
+
 static inline void
 dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
     dma_addr_t dma_handle)
@@ -180,7 +180,7 @@ dma_map_sg_attrs(struct device *dev, struct scatterlis
 {
 	struct scatterlist *sg;
 	int i;
-	
+
 	for_each_sg(sgl, sg, nents, i)
 		sg_dma_address(sg) = sg_phys(sg);
 
@@ -192,7 +192,7 @@ dma_unmap_sg_attrs(struct device *dev, struct scatterl
     enum dma_data_direction dir, struct dma_attrs *attrs)
 {
 }
- 
+
 static inline dma_addr_t
 dma_map_page(struct device *dev, struct page *page,
     unsigned long offset, size_t size, enum dma_data_direction direction)
@@ -258,9 +258,9 @@ dma_mapping_error(struct device *dev, dma_addr_t dma_a
 }
 
 static inline unsigned int dma_set_max_seg_size(struct device *dev,
-                                                 unsigned int size)
+    unsigned int size)
 {
-        return (0);
+	return (0);
 }
 
 

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/err.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/err.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/err.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -70,10 +70,10 @@ ERR_CAST(void *ptr)
 static inline int
 PTR_ERR_OR_ZERO(const void *ptr)
 {
-        if (IS_ERR(ptr))
-                return PTR_ERR(ptr);
-        else
-                return 0;
+	if (IS_ERR(ptr))
+		return PTR_ERR(ptr);
+	else
+		return 0;
 }
 
 #define PTR_RET(p) PTR_ERR_OR_ZERO(p)

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/errno.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/errno.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/errno.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -35,13 +35,13 @@
 
 #define	ECHRNG		EDOM
 #define	ETIME		ETIMEDOUT
-#define	ECOMM           ESTALE
-#define	ENODATA         ECONNREFUSED
+#define	ECOMM		ESTALE
+#define	ENODATA		ECONNREFUSED
 #define	ENOIOCTLCMD     ENOIOCTL
 /* Use same value as Linux, because BSD's ERESTART is negative */
 #define	ERESTARTSYS     512
-#define	ENOTSUPP        EOPNOTSUPP
-#define	ENONET          EHOSTDOWN
+#define	ENOTSUPP	EOPNOTSUPP
+#define	ENONET		EHOSTDOWN
 
 #define	ERESTARTNOINTR	513
 #define	ERESTARTNOHAND	514

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/etherdevice.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/etherdevice.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/etherdevice.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -51,31 +51,31 @@ struct ethtool_modinfo {
 	u32	eeprom_len;
 };
 
-static inline bool 
+static inline bool
 is_zero_ether_addr(const u8 * addr)
 {
 	return ((addr[0] + addr[1] + addr[2] + addr[3] + addr[4] + addr[5]) == 0x00);
 }
 
-static inline bool 
+static inline bool
 is_multicast_ether_addr(const u8 * addr)
 {
 	return (0x01 & addr[0]);
 }
 
-static inline bool 
+static inline bool
 is_broadcast_ether_addr(const u8 * addr)
 {
 	return ((addr[0] + addr[1] + addr[2] + addr[3] + addr[4] + addr[5]) == (6 * 0xff));
 }
 
-static inline bool 
+static inline bool
 is_valid_ether_addr(const u8 * addr)
 {
 	return !is_multicast_ether_addr(addr) && !is_zero_ether_addr(addr);
 }
 
-static inline void 
+static inline void
 ether_addr_copy(u8 * dst, const u8 * src)
 {
 	memcpy(dst, src, 6);

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/fs.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/fs.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/fs.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -82,7 +82,7 @@ struct linux_file_wait_queue {
 struct linux_file {
 	struct file	*_file;
 	const struct file_operations	*f_op;
-	void 		*private_data;
+	void		*private_data;
 	int		f_flags;
 	int		f_mode;	/* Just starting mode. */
 	struct dentry	*f_dentry;
@@ -140,7 +140,7 @@ struct file_operations {
 	int (*fasync)(int, struct file *, int);
 
 /* Although not supported in FreeBSD, to align with Linux code
- * we are adding llseek() only when it is mapped to no_llseek which returns 
+ * we are adding llseek() only when it is mapped to no_llseek which returns
  * an illegal seek error
  */
 	loff_t (*llseek)(struct file *, loff_t, int);
@@ -270,7 +270,7 @@ iput(struct inode *inode)
 	vrele(inode);
 }
 
-static inline loff_t 
+static inline loff_t
 no_llseek(struct file *file, loff_t offset, int whence)
 {
 

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/idr.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/idr.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/idr.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -96,7 +96,7 @@ int	idr_for_each(struct idr *idp, int (*fn)(int id, vo
 
 #define	IDA_CHUNK_SIZE		128	/* 128 bytes per chunk */
 #define	IDA_BITMAP_LONGS	(IDA_CHUNK_SIZE / sizeof(long) - 1)
-#define	IDA_BITMAP_BITS 	(IDA_BITMAP_LONGS * sizeof(long) * 8)
+#define	IDA_BITMAP_BITS		(IDA_BITMAP_LONGS * sizeof(long) * 8)
 
 struct ida_bitmap {
 	long			nr_busy;

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/if_ether.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/if_ether.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/if_ether.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -35,17 +35,17 @@
 
 #include 
 
-#define ETH_HLEN        ETHER_HDR_LEN   /* Total octets in header.                              */
+#define ETH_HLEN	ETHER_HDR_LEN   /* Total octets in header. */
 #ifndef ETH_ALEN
-#define ETH_ALEN        ETHER_ADDR_LEN
+#define ETH_ALEN	ETHER_ADDR_LEN
 #endif
-#define ETH_FCS_LEN     4               /* Octets in the FCS                                    */
-#define VLAN_HLEN       4               /* The additional bytes (on top of the Ethernet header)
-                                         * that VLAN requires.                                  */
+#define ETH_FCS_LEN     4		/* Octets in the FCS */
+#define VLAN_HLEN       4		/* The additional bytes (on top of the Ethernet header)
+					 * that VLAN requires. */
 /*
  * defined Ethernet Protocol ID's.
  */
-#define	ETH_P_IP        ETHERTYPE_IP
+#define	ETH_P_IP	ETHERTYPE_IP
 #define	ETH_P_IPV6	ETHERTYPE_IPV6
 #define	ETH_P_MPLS_UC	ETHERTYPE_MPLS
 #define	ETH_P_MPLS_MC	ETHERTYPE_MPLS_MCAST

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/if_vlan.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/if_vlan.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/if_vlan.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -39,7 +39,7 @@
 #include 
 #include 
 
-#define VLAN_N_VID              4096
+#define VLAN_N_VID	4096
 
 static inline int
 is_vlan_dev(struct ifnet *ifp)

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/io.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/io.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/io.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -71,7 +71,7 @@ __raw_writeq(uint64_t b, volatile void *addr)
 static inline void
 writel(uint32_t b, void *addr)
 {
-        *(volatile uint32_t *)addr = b;
+	*(volatile uint32_t *)addr = b;
 }
 
 #undef writel_relaxed
@@ -85,21 +85,21 @@ writel_relaxed(uint32_t b, void *addr)
 static inline void
 writeq(uint64_t b, void *addr)
 {
-        *(volatile uint64_t *)addr = b;
+	*(volatile uint64_t *)addr = b;
 }
 
 #undef writeb
 static inline void
 writeb(uint8_t b, void *addr)
 {
-        *(volatile uint8_t *)addr = b;
+	*(volatile uint8_t *)addr = b;
 }
 
 #undef writew
 static inline void
 writew(uint16_t b, void *addr)
 {
-        *(volatile uint16_t *)addr = b;
+	*(volatile uint16_t *)addr = b;
 }
 
 #undef ioread8

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/jiffies.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/jiffies.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/jiffies.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -38,7 +38,7 @@
 #include 
 #include 
 
-#define jiffies                 ticks
+#define	jiffies			ticks
 #define	jiffies_64		ticks
 #define	jiffies_to_msecs(x)     (((int64_t)(int)(x)) * 1000 / hz)
 

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/kernel.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/kernel.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/kernel.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -49,7 +49,7 @@
 #include 
 #include 
 #include 
-#include  
+#include 
 #include 
 
 #include 
@@ -170,12 +170,12 @@ scnprintf(char *buf, size_t size, const char *fmt, ...
  */
 #ifdef DEBUG
 #define pr_debug(fmt, ...) \
-        log(LOG_DEBUG, fmt, ##__VA_ARGS__)
+	log(LOG_DEBUG, fmt, ##__VA_ARGS__)
 #define pr_devel(fmt, ...) \
 	log(LOG_DEBUG, pr_fmt(fmt), ##__VA_ARGS__)
 #else
 #define pr_debug(fmt, ...) \
-        ({ if (0) log(LOG_DEBUG, fmt, ##__VA_ARGS__); 0; })
+	({ if (0) log(LOG_DEBUG, fmt, ##__VA_ARGS__); 0; })
 #define pr_devel(fmt, ...) \
 	({ if (0) log(LOG_DEBUG, pr_fmt(fmt), ##__VA_ARGS__); 0; })
 #endif
@@ -238,19 +238,19 @@ scnprintf(char *buf, size_t size, const char *fmt, ...
 
 #ifndef WARN
 #define	WARN(condition, ...) ({			\
-        bool __ret_warn_on = (condition);	\
-        if (unlikely(__ret_warn_on))		\
-                pr_warning(__VA_ARGS__);	\
-        unlikely(__ret_warn_on);		\
+	bool __ret_warn_on = (condition);	\
+	if (unlikely(__ret_warn_on))		\
+		pr_warning(__VA_ARGS__);	\
+	unlikely(__ret_warn_on);		\
 })
 #endif
 
 #ifndef WARN_ONCE
 #define	WARN_ONCE(condition, ...) ({		\
-        bool __ret_warn_on = (condition);	\
-        if (unlikely(__ret_warn_on))		\
-                pr_warn_once(__VA_ARGS__);	\
-        unlikely(__ret_warn_on);		\
+	bool __ret_warn_on = (condition);	\
+	if (unlikely(__ret_warn_on))		\
+		pr_warn_once(__VA_ARGS__);	\
+	unlikely(__ret_warn_on);		\
 })
 #endif
 
@@ -259,7 +259,7 @@ scnprintf(char *buf, size_t size, const char *fmt, ...
 	const __typeof(((type *)0)->member) *__p = (ptr);	\
 	(type *)((uintptr_t)__p - offsetof(type, member));	\
 })
-  
+
 #define	ARRAY_SIZE(x)	(sizeof(x) / sizeof((x)[0]))
 
 #define	u64_to_user_ptr(val)	((void *)(uintptr_t)(val))
@@ -397,7 +397,7 @@ extern bool linux_cpu_has_clflush;
 #endif
 
 typedef struct pm_message {
-        int event;
+	int event;
 } pm_message_t;
 
 /* Swap values of a and b */

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/kmod.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/kmod.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/kmod.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -41,7 +41,7 @@
 #define	request_module(...) \
 ({\
 	char modname[128]; \
-        int fileid; \
+	int fileid; \
 	snprintf(modname, sizeof(modname), __VA_ARGS__); \
 	kern_kldload(curthread, modname, &fileid); \
 })

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/kobject.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/kobject.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/kobject.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -61,17 +61,17 @@ struct kobject {
 extern struct kobject *mm_kobj;
 
 struct attribute {
-	const char 	*name;
+	const char	*name;
 	struct module	*owner;
 	mode_t		mode;
 };
 
 struct kobj_attribute {
-        struct attribute attr;
-        ssize_t (*show)(struct kobject *kobj, struct kobj_attribute *attr,
-                        char *buf);
-        ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
-                         const char *buf, size_t count);
+	struct attribute attr;
+	ssize_t (*show)(struct kobject *kobj, struct kobj_attribute *attr,
+	    char *buf);
+	ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
+	    const char *buf, size_t count);
 };
 
 static inline void

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/ktime.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/ktime.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/ktime.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -40,8 +40,8 @@
 /* time values in nanoseconds */
 typedef s64 ktime_t;
 
-#define	KTIME_MAX                       ((s64)~((u64)1 << 63))
-#define	KTIME_SEC_MAX                   (KTIME_MAX / NSEC_PER_SEC)
+#define	KTIME_MAX			((s64)~((u64)1 << 63))
+#define	KTIME_SEC_MAX			(KTIME_MAX / NSEC_PER_SEC)
 
 static inline int64_t
 ktime_to_ns(ktime_t kt)

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/list.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/list.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/list.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -93,7 +93,7 @@ INIT_LIST_HEAD(struct list_head *list)
 
 	list->next = list->prev = list;
 }
- 
+
 static inline int
 list_empty(const struct list_head *head)
 {
@@ -159,7 +159,7 @@ linux_list_add(struct list_head *new, struct list_head
 
 static inline void
 list_del_init(struct list_head *entry)
-{	
+{
 
 	list_del(entry);
 	INIT_LIST_HEAD(entry);
@@ -167,8 +167,8 @@ list_del_init(struct list_head *entry)
 
 #define	list_entry(ptr, type, field)	container_of(ptr, type, field)
 
-#define list_first_entry(ptr, type, member) \
-        list_entry((ptr)->next, type, member)
+#define	list_first_entry(ptr, type, member) \
+	list_entry((ptr)->next, type, member)
 
 #define	list_last_entry(ptr, type, member)	\
 	list_entry((ptr)->prev, type, member)
@@ -196,7 +196,7 @@ list_del_init(struct list_head *entry)
 	    p = list_entry((p)->field.next, typeof(*p), field))
 
 #define list_for_each_entry_safe(p, n, h, field)			\
-	for (p = list_entry((h)->next, typeof(*p), field), 		\
+	for (p = list_entry((h)->next, typeof(*p), field),		\
 	    n = list_entry((p)->field.next, typeof(*p), field); &(p)->field != (h);\
 	    p = n, n = list_entry(n->field.next, typeof(*n), field))
 
@@ -208,7 +208,7 @@ list_del_init(struct list_head *entry)
 	for (p = list_next_entry((p), field); &(p)->field != (h);	\
 	    p = list_next_entry((p), field))
 
-#define	list_for_each_entry_safe_from(pos, n, head, member) 			\
+#define	list_for_each_entry_safe_from(pos, n, head, member)			\
 	for (n = list_entry((pos)->member.next, typeof(*pos), member);		\
 	     &(pos)->member != (head);						\
 	     pos = n, n = list_entry(n->member.next, typeof(*n), member))
@@ -218,7 +218,7 @@ list_del_init(struct list_head *entry)
 	    p = list_entry((p)->field.prev, typeof(*p), field))
 
 #define	list_for_each_entry_safe_reverse(p, n, h, field)		\
-	for (p = list_entry((h)->prev, typeof(*p), field), 		\
+	for (p = list_entry((h)->prev, typeof(*p), field),		\
 	    n = list_entry((p)->field.prev, typeof(*p), field); &(p)->field != (h); \
 	    p = n, n = list_entry(n->field.prev, typeof(*n), field))
 
@@ -259,7 +259,7 @@ list_move_tail(struct list_head *entry, struct list_he
 }
 
 static inline void
-linux_list_splice(const struct list_head *list, struct list_head *prev,  
+linux_list_splice(const struct list_head *list, struct list_head *prev,
     struct list_head *next)
 {
 	struct list_head *first;
@@ -280,7 +280,7 @@ list_splice(const struct list_head *list, struct list_
 {
 
 	linux_list_splice(list, head, head->next);
-} 
+}
 
 static inline void
 list_splice_tail(struct list_head *list, struct list_head *head)
@@ -288,15 +288,15 @@ list_splice_tail(struct list_head *list, struct list_h
 
 	linux_list_splice(list, head->prev, head);
 }
- 
+
 static inline void
 list_splice_init(struct list_head *list, struct list_head *head)
 {
 
 	linux_list_splice(list, head, head->next);
-	INIT_LIST_HEAD(list);   
+	INIT_LIST_HEAD(list);
 }
- 
+
 static inline void
 list_splice_tail_init(struct list_head *list, struct list_head *head)
 {
@@ -344,9 +344,9 @@ static inline void
 hlist_del(struct hlist_node *n)
 {
 
-        if (n->next)
-                n->next->pprev = n->pprev;
-        *n->pprev = n->next;
+	if (n->next)
+		n->next->pprev = n->pprev;
+	*n->pprev = n->next;
 }
 
 static inline void
@@ -379,7 +379,7 @@ hlist_add_before(struct hlist_node *n, struct hlist_no
 	next->pprev = &n->next;
 	*(n->pprev) = n;
 }
- 
+
 static inline void
 hlist_add_after(struct hlist_node *n, struct hlist_node *next)
 {
@@ -390,7 +390,7 @@ hlist_add_after(struct hlist_node *n, struct hlist_nod
 	if (next->next)
 		next->next->pprev = &next->next;
 }
- 
+
 static inline void
 hlist_move_list(struct hlist_head *old, struct hlist_head *new)
 {
@@ -433,11 +433,11 @@ static inline void list_cut_position(struct list_head 
 }
 
 static inline int list_is_last(const struct list_head *list,
-                                const struct list_head *head)
+				const struct list_head *head)
 {
-        return list->next == head;
+	return list->next == head;
 }
- 
+
 #define	hlist_entry(ptr, type, field)	container_of(ptr, type, field)
 
 #define	hlist_for_each(p, head)						\

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/log2.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/log2.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/log2.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -50,7 +50,7 @@ is_power_of_2(unsigned long n)
 static inline unsigned long
 rounddown_pow_of_two(unsigned long x)
 {
-        return (1UL << (flsl(x) - 1));
+	return (1UL << (flsl(x) - 1));
 }
 
 #define	ilog2(n)				\

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/miscdevice.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/miscdevice.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/miscdevice.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -59,7 +59,7 @@ misc_register(struct miscdevice *misc)
 	misc->cdev->owner = THIS_MODULE;
 	misc->cdev->ops = misc->fops;
 	kobject_set_name(&misc->cdev->kobj, misc->name);
-        if (cdev_add(misc->cdev, misc->this_device->devt, 1))
+	if (cdev_add(misc->cdev, misc->this_device->devt, 1))
 		return -EINVAL;
 	return (0);
 }

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/mutex.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/mutex.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/mutex.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -116,7 +116,7 @@ mutex_is_owned(mutex_t *m)
 #ifdef WITNESS_ALL
 /* NOTE: the maximum WITNESS name is 64 chars */
 #define	__mutex_name(name, file, line)		\
-	(((const char *){file ":" #line "-" name}) + 	\
+	(((const char *){file ":" #line "-" name}) +	\
 	(sizeof(file) > 16 ? sizeof(file) - 16 : 0))
 #else
 #define	__mutex_name(name, file, line)	name

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/pci.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/pci.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/pci.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -96,8 +96,8 @@ struct pci_device_id {
 #define	PCI_SUBDEVICE_ID_QEMU		0x1100
 
 #define PCI_DEVFN(slot, func)   ((((slot) & 0x1f) << 3) | ((func) & 0x07))
-#define PCI_SLOT(devfn)         (((devfn) >> 3) & 0x1f)
-#define PCI_FUNC(devfn)         ((devfn) & 0x07)
+#define PCI_SLOT(devfn)		(((devfn) >> 3) & 0x1f)
+#define PCI_FUNC(devfn)		((devfn) & 0x07)
 
 #define PCI_VDEVICE(_vendor, _device)					\
 	    .vendor = PCI_VENDOR_ID_##_vendor, .device = (_device),	\
@@ -457,7 +457,7 @@ pci_find_capability(struct pci_dev *pdev, int capid)
 
 static inline int pci_pcie_cap(struct pci_dev *dev)
 {
-        return pci_find_capability(dev, PCI_CAP_ID_EXP);
+	return pci_find_capability(dev, PCI_CAP_ID_EXP);
 }
 
 
@@ -588,12 +588,12 @@ pci_enable_msix_range(struct pci_dev *dev, struct msix
 
 static inline int pci_channel_offline(struct pci_dev *pdev)
 {
-        return false;
+	return false;
 }
 
 static inline int pci_enable_sriov(struct pci_dev *dev, int nr_virtfn)
 {
-        return -ENODEV;
+	return -ENODEV;
 }
 static inline void pci_disable_sriov(struct pci_dev *dev)
 {
@@ -656,169 +656,167 @@ typedef unsigned int __bitwise pci_channel_state_t;
 typedef unsigned int __bitwise pci_ers_result_t;
 
 enum pci_channel_state {
-        pci_channel_io_normal = 1,
-        pci_channel_io_frozen = 2,
-        pci_channel_io_perm_failure = 3,
+	pci_channel_io_normal = 1,
+	pci_channel_io_frozen = 2,
+	pci_channel_io_perm_failure = 3,
 };
 
 enum pci_ers_result {
-        PCI_ERS_RESULT_NONE = 1,
-        PCI_ERS_RESULT_CAN_RECOVER = 2,
-        PCI_ERS_RESULT_NEED_RESET = 3,
-        PCI_ERS_RESULT_DISCONNECT = 4,
-        PCI_ERS_RESULT_RECOVERED = 5,
+	PCI_ERS_RESULT_NONE = 1,
+	PCI_ERS_RESULT_CAN_RECOVER = 2,
+	PCI_ERS_RESULT_NEED_RESET = 3,
+	PCI_ERS_RESULT_DISCONNECT = 4,
+	PCI_ERS_RESULT_RECOVERED = 5,
 };
 
 
 /* PCI bus error event callbacks */
 struct pci_error_handlers {
-        pci_ers_result_t (*error_detected)(struct pci_dev *dev,
-                        enum pci_channel_state error);
-        pci_ers_result_t (*mmio_enabled)(struct pci_dev *dev);
-        pci_ers_result_t (*link_reset)(struct pci_dev *dev);
-        pci_ers_result_t (*slot_reset)(struct pci_dev *dev);
-        void (*resume)(struct pci_dev *dev);
+	pci_ers_result_t (*error_detected)(struct pci_dev *dev,
+	    enum pci_channel_state error);
+	pci_ers_result_t (*mmio_enabled)(struct pci_dev *dev);
+	pci_ers_result_t (*link_reset)(struct pci_dev *dev);
+	pci_ers_result_t (*slot_reset)(struct pci_dev *dev);
+	void (*resume)(struct pci_dev *dev);
 };
 
 /* FreeBSD does not support SRIOV - yet */
 static inline struct pci_dev *pci_physfn(struct pci_dev *dev)
 {
-        return dev;
+	return dev;
 }
 
 static inline bool pci_is_pcie(struct pci_dev *dev)
 {
-        return !!pci_pcie_cap(dev);
+	return !!pci_pcie_cap(dev);
 }
 
 static inline u16 pcie_flags_reg(struct pci_dev *dev)
 {
-        int pos;
-        u16 reg16;
+	int pos;
+	u16 reg16;
 
-        pos = pci_find_capability(dev, PCI_CAP_ID_EXP);
-        if (!pos)
-                return 0;
+	pos = pci_find_capability(dev, PCI_CAP_ID_EXP);
+	if (!pos)
+		return 0;
 
-        pci_read_config_word(dev, pos + PCI_EXP_FLAGS, ®16);
+	pci_read_config_word(dev, pos + PCI_EXP_FLAGS, ®16);
 
-        return reg16;
+	return reg16;
 }
 
 
 static inline int pci_pcie_type(struct pci_dev *dev)
 {
-        return (pcie_flags_reg(dev) & PCI_EXP_FLAGS_TYPE) >> 4;
+	return (pcie_flags_reg(dev) & PCI_EXP_FLAGS_TYPE) >> 4;
 }
 
 static inline int pcie_cap_version(struct pci_dev *dev)
 {
-        return pcie_flags_reg(dev) & PCI_EXP_FLAGS_VERS;
+	return pcie_flags_reg(dev) & PCI_EXP_FLAGS_VERS;
 }
 
 static inline bool pcie_cap_has_lnkctl(struct pci_dev *dev)
 {
-        int type = pci_pcie_type(dev);
+	int type = pci_pcie_type(dev);
 
-        return pcie_cap_version(dev) > 1 ||
-               type == PCI_EXP_TYPE_ROOT_PORT ||
-               type == PCI_EXP_TYPE_ENDPOINT ||
-               type == PCI_EXP_TYPE_LEG_END;
+	return pcie_cap_version(dev) > 1 ||
+	       type == PCI_EXP_TYPE_ROOT_PORT ||
+	       type == PCI_EXP_TYPE_ENDPOINT ||
+	       type == PCI_EXP_TYPE_LEG_END;
 }
 
 static inline bool pcie_cap_has_devctl(const struct pci_dev *dev)
 {
-                return true;
+		return true;
 }
 
 static inline bool pcie_cap_has_sltctl(struct pci_dev *dev)
 {
-        int type = pci_pcie_type(dev);
+	int type = pci_pcie_type(dev);
 
-        return pcie_cap_version(dev) > 1 ||
-               type == PCI_EXP_TYPE_ROOT_PORT ||
-               (type == PCI_EXP_TYPE_DOWNSTREAM &&
-                pcie_flags_reg(dev) & PCI_EXP_FLAGS_SLOT);
+	return pcie_cap_version(dev) > 1 || type == PCI_EXP_TYPE_ROOT_PORT ||
+	    (type == PCI_EXP_TYPE_DOWNSTREAM &&
+	    pcie_flags_reg(dev) & PCI_EXP_FLAGS_SLOT);
 }
 
 static inline bool pcie_cap_has_rtctl(struct pci_dev *dev)
 {
-        int type = pci_pcie_type(dev);
+	int type = pci_pcie_type(dev);
 
-        return pcie_cap_version(dev) > 1 ||
-               type == PCI_EXP_TYPE_ROOT_PORT ||
-               type == PCI_EXP_TYPE_RC_EC;
+	return pcie_cap_version(dev) > 1 || type == PCI_EXP_TYPE_ROOT_PORT ||
+	    type == PCI_EXP_TYPE_RC_EC;
 }
 
 static bool pcie_capability_reg_implemented(struct pci_dev *dev, int pos)
 {
-        if (!pci_is_pcie(dev))
-                return false;
+	if (!pci_is_pcie(dev))
+		return false;
 
-        switch (pos) {
-        case PCI_EXP_FLAGS_TYPE:
-                return true;
-        case PCI_EXP_DEVCAP:
-        case PCI_EXP_DEVCTL:
-        case PCI_EXP_DEVSTA:
-                return pcie_cap_has_devctl(dev);
-        case PCI_EXP_LNKCAP:
-        case PCI_EXP_LNKCTL:
-        case PCI_EXP_LNKSTA:
-                return pcie_cap_has_lnkctl(dev);
-        case PCI_EXP_SLTCAP:
-        case PCI_EXP_SLTCTL:
-        case PCI_EXP_SLTSTA:
-                return pcie_cap_has_sltctl(dev);
-        case PCI_EXP_RTCTL:
-        case PCI_EXP_RTCAP:
-        case PCI_EXP_RTSTA:
-                return pcie_cap_has_rtctl(dev);
-        case PCI_EXP_DEVCAP2:
-        case PCI_EXP_DEVCTL2:
-        case PCI_EXP_LNKCAP2:
-        case PCI_EXP_LNKCTL2:
-        case PCI_EXP_LNKSTA2:
-                return pcie_cap_version(dev) > 1;
-        default:
-                return false;
-        }
+	switch (pos) {
+	case PCI_EXP_FLAGS_TYPE:
+		return true;
+	case PCI_EXP_DEVCAP:
+	case PCI_EXP_DEVCTL:
+	case PCI_EXP_DEVSTA:
+		return pcie_cap_has_devctl(dev);
+	case PCI_EXP_LNKCAP:
+	case PCI_EXP_LNKCTL:
+	case PCI_EXP_LNKSTA:
+		return pcie_cap_has_lnkctl(dev);
+	case PCI_EXP_SLTCAP:
+	case PCI_EXP_SLTCTL:
+	case PCI_EXP_SLTSTA:
+		return pcie_cap_has_sltctl(dev);
+	case PCI_EXP_RTCTL:
+	case PCI_EXP_RTCAP:
+	case PCI_EXP_RTSTA:
+		return pcie_cap_has_rtctl(dev);
+	case PCI_EXP_DEVCAP2:
+	case PCI_EXP_DEVCTL2:
+	case PCI_EXP_LNKCAP2:
+	case PCI_EXP_LNKCTL2:
+	case PCI_EXP_LNKSTA2:
+		return pcie_cap_version(dev) > 1;
+	default:
+		return false;
+	}
 }
 
 static inline int
 pcie_capability_read_dword(struct pci_dev *dev, int pos, u32 *dst)
 {
-        if (pos & 3)
-                return -EINVAL;
+	if (pos & 3)
+		return -EINVAL;
 
-        if (!pcie_capability_reg_implemented(dev, pos))
-                return -EINVAL;
+	if (!pcie_capability_reg_implemented(dev, pos))
+		return -EINVAL;
 
-        return pci_read_config_dword(dev, pci_pcie_cap(dev) + pos, dst);
+	return pci_read_config_dword(dev, pci_pcie_cap(dev) + pos, dst);
 }
 
 static inline int
 pcie_capability_read_word(struct pci_dev *dev, int pos, u16 *dst)
 {
-        if (pos & 3)
-                return -EINVAL;
+	if (pos & 3)
+		return -EINVAL;
 
-        if (!pcie_capability_reg_implemented(dev, pos))
-                return -EINVAL;
+	if (!pcie_capability_reg_implemented(dev, pos))
+		return -EINVAL;
 
-        return pci_read_config_word(dev, pci_pcie_cap(dev) + pos, dst);
+	return pci_read_config_word(dev, pci_pcie_cap(dev) + pos, dst);
 }
 
 static inline int
 pcie_capability_write_word(struct pci_dev *dev, int pos, u16 val)
 {
-        if (pos & 1)
-                return -EINVAL;
+	if (pos & 1)
+		return -EINVAL;
 
-        if (!pcie_capability_reg_implemented(dev, pos))
-                return 0;
+	if (!pcie_capability_reg_implemented(dev, pos))
+		return 0;
 
-        return pci_write_config_word(dev, pci_pcie_cap(dev) + pos, val);
+	return pci_write_config_word(dev, pci_pcie_cap(dev) + pos, val);
 }
 
 static inline int pcie_get_minimum_link(struct pci_dev *dev,

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/rwlock.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/rwlock.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/rwlock.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -48,9 +48,9 @@ typedef struct {
 #define	read_unlock_irq(lock)	read_unlock((lock))
 #define	write_lock_irq(lock)	write_lock((lock))
 #define	write_unlock_irq(lock)	write_unlock((lock))
-#define	read_lock_irqsave(lock, flags)   				\
+#define	read_lock_irqsave(lock, flags)					\
     do {(flags) = 0; read_lock(lock); } while (0)
-#define	write_lock_irqsave(lock, flags)   				\
+#define	write_lock_irqsave(lock, flags)					\
     do {(flags) = 0; write_lock(lock); } while (0)
 #define	read_unlock_irqrestore(lock, flags)				\
     do { read_unlock(lock); } while (0)

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/rwsem.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/rwsem.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/rwsem.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -55,7 +55,7 @@ struct rw_semaphore {
 #ifdef WITNESS_ALL
 /* NOTE: the maximum WITNESS name is 64 chars */
 #define	__rwsem_name(name, file, line)		\
-	(((const char *){file ":" #line "-" name}) + 	\
+	(((const char *){file ":" #line "-" name}) +	\
 	(sizeof(file) > 16 ? sizeof(file) - 16 : 0))
 #else
 #define	__rwsem_name(name, file, line)	name

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/slab.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/slab.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/slab.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -49,9 +49,9 @@ MALLOC_DECLARE(M_KMALLOC);
 #define	vzalloc(size)			__vmalloc(size, GFP_KERNEL | __GFP_NOWARN | __GFP_ZERO, 0)
 #define	vfree(arg)			kfree(arg)
 #define	kvfree(arg)			kfree(arg)
-#define	vmalloc_node(size, node)        __vmalloc(size, GFP_KERNEL, 0)
-#define	vmalloc_user(size)              __vmalloc(size, GFP_KERNEL | __GFP_ZERO, 0)
-#define	vmalloc(size)                   __vmalloc(size, GFP_KERNEL, 0)
+#define	vmalloc_node(size, node)	__vmalloc(size, GFP_KERNEL, 0)
+#define	vmalloc_user(size)		__vmalloc(size, GFP_KERNEL | __GFP_ZERO, 0)
+#define	vmalloc(size)			__vmalloc(size, GFP_KERNEL, 0)
 #define	__kmalloc(...)			kmalloc(__VA_ARGS__)
 #define	kmalloc_node(chunk, flags, n)	kmalloc(chunk, flags)
 
@@ -62,7 +62,7 @@ MALLOC_DECLARE(M_KMALLOC);
 #define	kmem_cache		linux_kmem_cache
 #define	kmem_cache_create(...)	linux_kmem_cache_create(__VA_ARGS__)
 #define	kmem_cache_alloc(...)	linux_kmem_cache_alloc(__VA_ARGS__)
-#define	kmem_cache_free(...) 	linux_kmem_cache_free(__VA_ARGS__)
+#define	kmem_cache_free(...)	linux_kmem_cache_free(__VA_ARGS__)
 #define	kmem_cache_destroy(...) linux_kmem_cache_destroy(__VA_ARGS__)
 
 #define	KMEM_CACHE(__struct, flags)					\
@@ -79,7 +79,7 @@ struct linux_kmem_cache {
 };
 
 #define	SLAB_HWCACHE_ALIGN	(1 << 0)
-#define	SLAB_TYPESAFE_BY_RCU    (1 << 1)
+#define	SLAB_TYPESAFE_BY_RCU	(1 << 1)
 #define	SLAB_RECLAIM_ACCOUNT	(1 << 2)
 
 #define	SLAB_DESTROY_BY_RCU \

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/spinlock.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/spinlock.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/spinlock.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -125,7 +125,7 @@ typedef struct {
 #ifdef WITNESS_ALL
 /* NOTE: the maximum WITNESS name is 64 chars */
 #define	__spin_lock_name(name, file, line)		\
-	(((const char *){file ":" #line "-" name}) + 	\
+	(((const char *){file ":" #line "-" name}) +	\
 	(sizeof(file) > 16 ? sizeof(file) - 16 : 0))
 #else
 #define	__spin_lock_name(name, file, line)	name

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/sysfs.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/sysfs.h	Fri Mar 30 01:53:14 2018	(r331755)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/sysfs.h	Fri Mar 30 02:04:46 2018	(r331756)
@@ -45,14 +45,14 @@ struct sysfs_ops {
 
 struct attribute_group {

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Fri Mar 30 02:20:24 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A2128F66DF8;
 Fri, 30 Mar 2018 02:20:24 +0000 (UTC)
 (envelope-from danfe@freebsd.org)
Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "freefall.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 53BB070CA8;
 Fri, 30 Mar 2018 02:20:24 +0000 (UTC)
 (envelope-from danfe@freebsd.org)
Received: by freefall.freebsd.org (Postfix, from userid 1033)
 id 4BCD516296; Fri, 30 Mar 2018 02:20:24 +0000 (UTC)
Date: Fri, 30 Mar 2018 02:20:24 +0000
From: Alexey Dokuchaev 
To: rgrimes@freebsd.org
Cc: Ian Lepore , src-committers@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable-11@freebsd.org, Marcelo Araujo 
Subject: Re: svn commit: r331728 - in stable/11/etc: . rc.d
Message-ID: <20180330022024.GA60787@FreeBSD.org>
References: <1522340373.49673.112.camel@freebsd.org>
 <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
User-Agent: Mutt/1.9.2 (2017-12-15)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 02:20:24 -0000

On Thu, Mar 29, 2018 at 09:33:44AM -0700, Rodney W. Grimes wrote:
> ...
> It seems that the Phabricator review system is somewhat disfunctional
> in that actual review is only happening in some cases.  Some people
> have even stated they flat out hate it.  Others say that it is the
> way to go.

As imp@ and ian@ had said it does not look too bad in src land, where
people use it more or less correctly (putting up disputable changes,
seeking review from people with better expertise or domain knowledge,
etc.).  It's far worse in ports when people often abuse it for trivial
changes that should just be committed (and usually they are, without
any activity in the Phab expect opening a DR and then closing it).

./danfe

From owner-svn-src-all@freebsd.org  Fri Mar 30 02:25:13 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E98F0F6743B;
 Fri, 30 Mar 2018 02:25:12 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 9FB4C71111;
 Fri, 30 Mar 2018 02:25:12 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9647622934;
 Fri, 30 Mar 2018 02:25:12 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2U2PCY1089915;
 Fri, 30 Mar 2018 02:25:12 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2U2PC0o089914;
 Fri, 30 Mar 2018 02:25:12 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803300225.w2U2PC0o089914@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Fri, 30 Mar 2018 02:25:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331757 - head/sys/dev/hyperv/vmbus
X-SVN-Group: head
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: head/sys/dev/hyperv/vmbus
X-SVN-Commit-Revision: 331757
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 02:25:13 -0000

Author: emaste
Date: Fri Mar 30 02:25:12 2018
New Revision: 331757
URL: https://svnweb.freebsd.org/changeset/base/331757

Log:
  Correct comment typo in Hyper-V
  
  PR:		226665
  Submitted by:	Ryo ONODERA
  MFC after:	3 days

Modified:
  head/sys/dev/hyperv/vmbus/hyperv.c

Modified: head/sys/dev/hyperv/vmbus/hyperv.c
==============================================================================
--- head/sys/dev/hyperv/vmbus/hyperv.c	Fri Mar 30 02:04:46 2018	(r331756)
+++ head/sys/dev/hyperv/vmbus/hyperv.c	Fri Mar 30 02:25:12 2018	(r331757)
@@ -27,7 +27,7 @@
  */
 
 /**
- * Implements low-level interactions with Hypver-V/Azure
+ * Implements low-level interactions with Hyper-V/Azure
  */
 #include 
 __FBSDID("$FreeBSD$");

From owner-svn-src-all@freebsd.org  Fri Mar 30 03:04:52 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id EDAEBF69DE9;
 Fri, 30 Mar 2018 03:04:51 +0000 (UTC)
 (envelope-from linimon@lonesome.com)
Received: from mail.soaustin.net (mail.soaustin.net [192.108.105.60])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mail.soaustin.net",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 9145572810;
 Fri, 30 Mar 2018 03:04:51 +0000 (UTC)
 (envelope-from linimon@lonesome.com)
Received: from lonesome.com (bones.soaustin.net [192.108.105.22])
 by mail.soaustin.net (Postfix) with ESMTPSA id 544D3E83;
 Thu, 29 Mar 2018 22:04:44 -0500 (CDT)
Date: Thu, 29 Mar 2018 22:04:43 -0500
From: Mark Linimon 
To: rgrimes@freebsd.org
Cc: Ian Lepore , src-committers@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable-11@freebsd.org, Marcelo Araujo 
Subject: bug triaging (was: Re: svn commit: r331728 - in stable/11/etc: . rc.d)
Message-ID: <20180330030443.GA15201@lonesome.com>
References: <1522340373.49673.112.camel@freebsd.org>
 <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
User-Agent: Mutt/1.5.23 (2014-03-12)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 03:04:52 -0000

This is addressed to developers in general, not just rgrimes, but he
made the comments, so ...

On Thu, Mar 29, 2018 at 09:33:44AM -0700, Rodney W. Grimes wrote:
> It seems that the Phabricator review system is somewhat dysfunctional
> in that actual review is only happening in some cases.  Some people
> have even stated they flat out hate it.

I will have to state as someone who has spent a great deal of time on
classifying/triaging bug reports in this project, that the attitude
that some developers have that "I am not going to use tool xyz" is both
disheartening and demotivating.  I find it difficult to remember when I
triage: who it is that will or will not use which tool?

Here: the plain facts are that our clearance rate for Phabriactor reviews,
for both src and doc, are far better than for Bugzilla.  For ports, the
opposite is true.  These are just facts.

By and large IMHO phab is a plus.  (Disclaimer: I personally hate the
web interface, it makes me want to pull out my few remaining hairs.)
But I do not see it going away.  Nor, do I see bugzilla going away.
Some people like the workflow of the one, some like the other.

> The problem is that most people are not notified that a review
> of a change is even in process until the commit lands, this is
> not a functional communications system.

But many developers also ignore bug reports coming through Bugzilla,
echoed on the mailing lists.  What is your constructive suggestion
here?  Do we make subscribing to Phab reviews per src bit mandatory?
I would support it but imagine I would get a lot of pushback.

> Requring us all to go sign up like imp@ did to receive all
> submitted reviews, imho, is also a non functional situation.

So what is a constructive suggestion?

(Fair warning, folks: I won't consider "get rid of Phabricator" or
"get rid of Bugzilla" as constructive.)

mcl

From owner-svn-src-all@freebsd.org  Fri Mar 30 03:38:09 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 68799F6C2BC;
 Fri, 30 Mar 2018 03:38:09 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 1AE3673B90;
 Fri, 30 Mar 2018 03:38:09 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 157CF234FC;
 Fri, 30 Mar 2018 03:38:09 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2U3c8VR026112;
 Fri, 30 Mar 2018 03:38:08 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2U3c8aK026111;
 Fri, 30 Mar 2018 03:38:08 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201803300338.w2U3c8aK026111@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste 
Date: Fri, 30 Mar 2018 03:38:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331758 - head/usr.sbin/makefs
X-SVN-Group: head
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: head/usr.sbin/makefs
X-SVN-Commit-Revision: 331758
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 03:38:09 -0000

Author: emaste
Date: Fri Mar 30 03:38:08 2018
New Revision: 331758
URL: https://svnweb.freebsd.org/changeset/base/331758

Log:
  makefs: sync fragment and block size with newfs
  
  r222319 in newfs raised the default blocksize for UFS/FFS filesystems
  from 16K to 32K and the default fragment size from 2K to 4K, with a
  rationale that most disks were now running with 4K sectors.
  
  MFC after:	2 weeks
  Relnotes:	Yes
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/usr.sbin/makefs/ffs.c

Modified: head/usr.sbin/makefs/ffs.c
==============================================================================
--- head/usr.sbin/makefs/ffs.c	Fri Mar 30 02:25:12 2018	(r331757)
+++ head/usr.sbin/makefs/ffs.c	Fri Mar 30 03:38:08 2018	(r331758)
@@ -115,8 +115,8 @@ __FBSDID("$FreeBSD$");
 /*
  * Various file system defaults (cribbed from newfs(8)).
  */
-#define	DFL_FRAGSIZE		1024		/* fragment size */
-#define	DFL_BLKSIZE		8192		/* block size */
+#define	DFL_FRAGSIZE		4096		/* fragment size */
+#define	DFL_BLKSIZE		32768		/* block size */
 #define	DFL_SECSIZE		512		/* sector size */
 #define	DFL_CYLSPERGROUP	65536		/* cylinders per group */
 #define	DFL_FRAGSPERINODE	4		/* fragments per inode */

From owner-svn-src-all@freebsd.org  Fri Mar 30 03:40:09 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E07C7F6C46F;
 Fri, 30 Mar 2018 03:40:08 +0000 (UTC)
 (envelope-from araujobsdport@gmail.com)
Received: from mail-lf0-x242.google.com (mail-lf0-x242.google.com
 [IPv6:2a00:1450:4010:c07::242])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3C6A673D40;
 Fri, 30 Mar 2018 03:40:08 +0000 (UTC)
 (envelope-from araujobsdport@gmail.com)
Received: by mail-lf0-x242.google.com with SMTP id m200-v6so5231511lfm.4;
 Thu, 29 Mar 2018 20:40:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:reply-to:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=wycf9SlEdA6CizNrmYdfZttOaK8xyj8ilh9wlXEZ2IM=;
 b=Ol4h2DTjk5Lga0bCxR2fnsTzTnmD2ULIv0qe7hUDafZfPV7NEUYsM+WKfDs+kgW7Z2
 OXlX7QwrP+wBgue9OXNCmxZ2/JJnCOTLwgPamzMfi59JzSg1STWFgPlu2gw0SuFpWFkO
 p5/l1dpgHPkgt+n2BBwJOM+9qsIGIH/E768SCifBb8xWHUKu5uugGuIHcX4CLLMxdBqx
 6p4HRzIhhgnT+oSyFyVsHxBm9Ou6Di4yLJ1lQecZogWO+Jwp3MCUTZGwnSoppTxE7N78
 13GqjRolTTPnHWo3wEnL+UGtPBRcq2egHYK8WdYp9fKB2bsaNfuFb3et/VLlr3ih3h3f
 yDng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:reply-to:in-reply-to:references
 :from:date:message-id:subject:to:cc;
 bh=wycf9SlEdA6CizNrmYdfZttOaK8xyj8ilh9wlXEZ2IM=;
 b=le10H6f9I4GXoijvxqVZASryKtS9UlL2JfguytNIXEFXGb3MpRvYYKcyRA2T9ybGng
 Ks6YHhtaOTubjhGOoSC+HEn2oxGJiLYK3JPm757TBMM8AMbna9dZUcOGvID3mAbzIXpz
 HQFr59KbOABpyAohn3jCwWva4wYDVLD7lSHi8Yv0gQvFNq/0o2cZEFZ9usB91SZYwGLD
 9mRsxNgBUBbwyB/LjfSjpP8TbkX9P7gd61np1ybmxdl3vD5zblw+QAwjgYPCzVvEDFs9
 +qDmRLYDgK7i4KRl089GS31AcUIWxUJQ+iMAfvJvPU4J3ettMaSuRzl31fKPnXWA2XMl
 hQ4A==
X-Gm-Message-State: AElRT7FyaklI5vgxtDiR5IjKHC25w1lC/JJyNU2GINekgRnghTJsD2an
 BhaXSx0nosRAxycMW/TwKwlUVZL30ib6kjOcMjXImQ==
X-Google-Smtp-Source: AIpwx4+KdBDqKHNjPPjQQyAitEJn9xj4X0NELU7Mw+WuC/WJu5XIKE4tIdUH1m3zgwlZp05FK1JibUL9e9D8ctUxuf8=
X-Received: by 10.46.154.205 with SMTP id p13mr6852713ljj.60.1522381206820;
 Thu, 29 Mar 2018 20:40:06 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a19:a74f:0:0:0:0:0 with HTTP; Thu, 29 Mar 2018 20:40:06
 -0700 (PDT)
Reply-To: araujo@freebsd.org
In-Reply-To: <20180330030443.GA15201@lonesome.com>
References: <1522340373.49673.112.camel@freebsd.org>
 <201803291633.w2TGXinX064128@pdx.rh.CN85.dnsmgr.net>
 <20180330030443.GA15201@lonesome.com>
From: Marcelo Araujo 
Date: Fri, 30 Mar 2018 11:40:06 +0800
Message-ID: 
Subject: Re: bug triaging (was: Re: svn commit: r331728 - in stable/11/etc: .
 rc.d)
To: Mark Linimon 
Cc: "Rodney W. Grimes" , Ian Lepore ,
 src-committers@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-all@freebsd.org, 
 svn-src-stable-11@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-Content-Filtered-By: Mailman/MimeDel 2.1.25
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 03:40:09 -0000

2018-03-30 11:04 GMT+08:00 Mark Linimon :

> This is addressed to developers in general, not just rgrimes, but he
> made the comments, so ...
>
> On Thu, Mar 29, 2018 at 09:33:44AM -0700, Rodney W. Grimes wrote:
> > It seems that the Phabricator review system is somewhat dysfunctional
> > in that actual review is only happening in some cases.  Some people
> > have even stated they flat out hate it.
>
> I will have to state as someone who has spent a great deal of time on
> classifying/triaging bug reports in this project, that the attitude
> that some developers have that "I am not going to use tool xyz" is both
> disheartening and demotivating.  I find it difficult to remember when I
> triage: who it is that will or will not use which tool?
>
> Here: the plain facts are that our clearance rate for Phabriactor reviews,
> for both src and doc, are far better than for Bugzilla.  For ports, the
> opposite is true.  These are just facts.
>
> By and large IMHO phab is a plus.  (Disclaimer: I personally hate the
> web interface, it makes me want to pull out my few remaining hairs.)
> But I do not see it going away.  Nor, do I see bugzilla going away.
> Some people like the workflow of the one, some like the other.
>
> > The problem is that most people are not notified that a review
> > of a change is even in process until the commit lands, this is
> > not a functional communications system.
>
> But many developers also ignore bug reports coming through Bugzilla,
> echoed on the mailing lists.  What is your constructive suggestion
> here?  Do we make subscribing to Phab reviews per src bit mandatory?
> I would support it but imagine I would get a lot of pushback.
>
> > Requring us all to go sign up like imp@ did to receive all
> > submitted reviews, imho, is also a non functional situation.
>
> So what is a constructive suggestion?
>
> (Fair warning, folks: I won't consider "get rid of Phabricator" or
> "get rid of Bugzilla" as constructive.)
>
> mcl
>

IMHO, pre-review is very good, and as far as I have saw at least for "src",
most of developers always ask somebody else's review, especially when you
are touching an area that you are not very familiar with, or there is
somebody that request review in that area because he/she is the maintainer,
and/or for additional inputs. So it works pretty good.

But in other hand, in the past years, there is a big flow of
emails(post-review) for every each commit, and in most cases as I can see
clearly, those post-reviews are in commits that change few lines, because
those are easy to read and people can get very opinionated. Most of the
developers that does the daily post-review, they do little or no real work
at all.

Personally we are losing some good approaches the project used to have,
such like:
1) Now, shut up and code.  Really.
2) Fix things and move forward.
3) bikeshed pop-up windows:

      +------------------------------------------------------------+
      | Your email is about to be sent to several hundred thousand |
      | people, who will have to spend at least 10 seconds reading |
      | it before they can decide if it is interesting.  At least  |
      | two man-weeks will be spent reading your email.  Many of   |
      | the recipients will have to pay to download your email.    |
      |								   |
      | Are you absolutely sure that your email is of sufficient   |
      | importance to bother all these people ?                    |
      |								   |
      |                  [YES]  [REVISE]  [CANCEL]                 |
      +------------------------------------------------------------+

That MFC in question, I was the reviewer, if I committed it, it means
I approved the review, the submitter is not a committer.

It would applies in the same situation as "Approved by", If I review a
commit from somebody else that has no commit bit in that particular
area,
it is implicit that I'm doing the "Approved by" and that person can
commit with my blessing.

So the fuss here is too big, because one or two developers believes
they must be involved for every each change that other developers are
working on.
It just cannot work in that way, simple like that, instead to do
microscopic post-review over other people's work and most of time
without a single patch,
save the time spent on write so many emails and send a patch, I do
believe all the project will benefit more.

Again, there is nothing wrong with PHA, that review was pretty much
right, but unfortunately rgrimes didn't pay enough attention to that
review, because is clear the submitter is not a commiter,
I committed the patch, I was the reviewer, If I committed, it means I
approved that.

I don't know about you guys, but I will go back try to do something
productive .


Best,
-- 

-- 
Marcelo Araujo            (__)araujo@FreeBSD.org
\\\'',)http://www.FreeBSD.org    \/  \ ^
Power To Server.         .\. /_)

From owner-svn-src-all@freebsd.org  Fri Mar 30 10:36:55 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0B707F5A49B;
 Fri, 30 Mar 2018 10:36:55 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B178F818A8;
 Fri, 30 Mar 2018 10:36:54 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A7E3F2789D;
 Fri, 30 Mar 2018 10:36:54 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UAasef034785;
 Fri, 30 Mar 2018 10:36:54 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UAas29034784;
 Fri, 30 Mar 2018 10:36:54 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803301036.w2UAas29034784@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Fri, 30 Mar 2018 10:36:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331759 - stable/11/sys/i386/i386
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: stable/11/sys/i386/i386
X-SVN-Commit-Revision: 331759
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 10:36:55 -0000

Author: kib
Date: Fri Mar 30 10:36:54 2018
New Revision: 331759
URL: https://svnweb.freebsd.org/changeset/base/331759

Log:
  MFC r331432:
  There is no need to disable interrupts around npxsave call.

Modified:
  stable/11/sys/i386/i386/vm86bios.s
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/i386/i386/vm86bios.s
==============================================================================
--- stable/11/sys/i386/i386/vm86bios.s	Fri Mar 30 03:38:08 2018	(r331758)
+++ stable/11/sys/i386/i386/vm86bios.s	Fri Mar 30 10:36:54 2018	(r331759)
@@ -61,8 +61,6 @@ ENTRY(vm86_bioscall)
 	pushl	%edi
 	pushl	%gs
 
-	pushfl
-	cli
 	movl	PCPU(CURTHREAD),%ecx
 	cmpl	%ecx,PCPU(FPCURTHREAD)	/* do we need to save fp? */
 	jne	1f
@@ -73,8 +71,6 @@ ENTRY(vm86_bioscall)
 	addl	$4,%esp
 	popl	%edx			/* recover our pcb */
 1:
-	popfl
-
 	movl	SCR_VMFRAME(%edx),%ebx	/* target frame location */
 	movl	%ebx,%edi		/* destination */
 	movl    SCR_ARGFRAME(%edx),%esi	/* source (set on entry) */

From owner-svn-src-all@freebsd.org  Fri Mar 30 10:55:31 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC1C3F5BBF6;
 Fri, 30 Mar 2018 10:55:31 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 7E29B82575;
 Fri, 30 Mar 2018 10:55:31 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 750B527BD7;
 Fri, 30 Mar 2018 10:55:31 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UAtVmP044659;
 Fri, 30 Mar 2018 10:55:31 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UAtVtK044657;
 Fri, 30 Mar 2018 10:55:31 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803301055.w2UAtVtK044657@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Fri, 30 Mar 2018 10:55:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331760 - head/sys/vm
X-SVN-Group: head
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: head/sys/vm
X-SVN-Commit-Revision: 331760
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 10:55:32 -0000

Author: kib
Date: Fri Mar 30 10:55:31 2018
New Revision: 331760
URL: https://svnweb.freebsd.org/changeset/base/331760

Log:
  Make vm_map_max/min/pmap KBI stable.
  
  There are out of tree consumers of vm_map_min() and vm_map_max(), and
  I believe there are consumers of vm_map_pmap(), although the later is
  arguably less in the need of KBI-stable interface. For the consumers
  benefit, make modules using this KPI not depended on the struct vm_map
  layout.
  
  Reviewed by:	alc, markj
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week
  Differential revision:	https://reviews.freebsd.org/D14902

Modified:
  head/sys/vm/vm_map.c
  head/sys/vm/vm_map.h

Modified: head/sys/vm/vm_map.c
==============================================================================
--- head/sys/vm/vm_map.c	Fri Mar 30 10:36:54 2018	(r331759)
+++ head/sys/vm/vm_map.c	Fri Mar 30 10:55:31 2018	(r331760)
@@ -4315,6 +4315,27 @@ vm_map_lookup_done(vm_map_t map, vm_map_entry_t entry)
 	vm_map_unlock_read(map);
 }
 
+vm_offset_t
+vm_map_max_KBI(const struct vm_map *map)
+{
+
+	return (map->max_offset);
+}
+
+vm_offset_t
+vm_map_min_KBI(const struct vm_map *map)
+{
+
+	return (map->min_offset);
+}
+
+pmap_t
+vm_map_pmap_KBI(vm_map_t map)
+{
+
+	return (map->pmap);
+}
+
 #include "opt_ddb.h"
 #ifdef DDB
 #include 

Modified: head/sys/vm/vm_map.h
==============================================================================
--- head/sys/vm/vm_map.h	Fri Mar 30 10:36:54 2018	(r331759)
+++ head/sys/vm/vm_map.h	Fri Mar 30 10:55:31 2018	(r331760)
@@ -206,6 +206,11 @@ struct vm_map {
 #define	MAP_BUSY_WAKEUP		0x02
 
 #ifdef	_KERNEL
+#ifdef KLD_MODULE
+#define	vm_map_max(map)		vm_map_max_KBI((map))
+#define	vm_map_min(map)		vm_map_min_KBI((map))
+#define	vm_map_pmap(map)	vm_map_pmap_KBI((map))
+#else
 static __inline vm_offset_t
 vm_map_max(const struct vm_map *map)
 {
@@ -229,6 +234,7 @@ vm_map_modflags(vm_map_t map, vm_flags_t set, vm_flags
 {
 	map->flags = (map->flags | set) & ~clear;
 }
+#endif	/* KLD_MODULE */
 #endif	/* _KERNEL */
 
 /*
@@ -289,6 +295,9 @@ void vm_map_wakeup(vm_map_t map);
 void vm_map_busy(vm_map_t map);
 void vm_map_unbusy(vm_map_t map);
 void vm_map_wait_busy(vm_map_t map);
+vm_offset_t vm_map_max_KBI(const struct vm_map *map);
+vm_offset_t vm_map_min_KBI(const struct vm_map *map);
+pmap_t vm_map_pmap_KBI(vm_map_t map);
 
 #define	vm_map_lock(map)	_vm_map_lock(map, LOCK_FILE, LOCK_LINE)
 #define	vm_map_unlock(map)	_vm_map_unlock(map, LOCK_FILE, LOCK_LINE)

From owner-svn-src-all@freebsd.org  Fri Mar 30 11:25:31 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B4E3F60FF5;
 Fri, 30 Mar 2018 11:25:31 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 381D283842;
 Fri, 30 Mar 2018 11:25:31 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2ED77BB;
 Fri, 30 Mar 2018 11:25:31 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UBPVmS060155;
 Fri, 30 Mar 2018 11:25:31 GMT (envelope-from avg@FreeBSD.org)
Received: (from avg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UBPVig060154;
 Fri, 30 Mar 2018 11:25:31 GMT (envelope-from avg@FreeBSD.org)
Message-Id: <201803301125.w2UBPVig060154@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org
 using -f
From: Andriy Gapon 
Date: Fri, 30 Mar 2018 11:25:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331761 - head/sys/i386/i386
X-SVN-Group: head
X-SVN-Commit-Author: avg
X-SVN-Commit-Paths: head/sys/i386/i386
X-SVN-Commit-Revision: 331761
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 11:25:31 -0000

Author: avg
Date: Fri Mar 30 11:25:30 2018
New Revision: 331761
URL: https://svnweb.freebsd.org/changeset/base/331761

Log:
  align i386 cpu_reset() with amd64 version
  
  Maybe this code could be moved to x86.
  
  MFC after:	1 week

Modified:
  head/sys/i386/i386/vm_machdep.c

Modified: head/sys/i386/i386/vm_machdep.c
==============================================================================
--- head/sys/i386/i386/vm_machdep.c	Fri Mar 30 10:55:31 2018	(r331760)
+++ head/sys/i386/i386/vm_machdep.c	Fri Mar 30 11:25:30 2018	(r331761)
@@ -585,7 +585,8 @@ cpu_reset_proxy()
 
 	cpu_reset_proxy_active = 1;
 	while (cpu_reset_proxy_active == 1)
-		;	/* Wait for other cpu to see that we've started */
+		ia32_pause(); /* Wait for other cpu to see that we've started */
+
 	CPU_SETOF(cpu_reset_proxyid, &tcrp);
 	stop_cpus(tcrp);
 	printf("cpu_reset_proxy: Stopped CPU %d\n", cpu_reset_proxyid);
@@ -617,19 +618,21 @@ cpu_reset()
 			printf("cpu_reset: Restarting BSP\n");
 
 			/* Restart CPU #0. */
-			/* XXX: restart_cpus(1 << 0); */
 			CPU_SETOF(0, &started_cpus);
 			wmb();
 
 			cnt = 0;
-			while (cpu_reset_proxy_active == 0 && cnt < 10000000)
+			while (cpu_reset_proxy_active == 0 && cnt < 10000000) {
+				ia32_pause();
 				cnt++;	/* Wait for BSP to announce restart */
+			}
 			if (cpu_reset_proxy_active == 0)
 				printf("cpu_reset: Failed to restart BSP\n");
 			enable_intr();
 			cpu_reset_proxy_active = 2;
 
-			while (1);
+			while (1)
+				ia32_pause();
 			/* NOTREACHED */
 		}
 

From owner-svn-src-all@freebsd.org  Fri Mar 30 11:30:49 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F9CCF6362E;
 Fri, 30 Mar 2018 11:30:49 +0000 (UTC)
 (envelope-from ericbsd@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8AAA883ACD;
 Fri, 30 Mar 2018 11:30:48 +0000 (UTC)
 (envelope-from ericbsd@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 85844D4;
 Fri, 30 Mar 2018 11:30:48 +0000 (UTC)
 (envelope-from ericbsd@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UBUmH8060407;
 Fri, 30 Mar 2018 11:30:48 GMT (envelope-from ericbsd@FreeBSD.org)
Received: (from ericbsd@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UBUmrt060406;
 Fri, 30 Mar 2018 11:30:48 GMT (envelope-from ericbsd@FreeBSD.org)
Message-Id: <201803301130.w2UBUmrt060406@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ericbsd set sender to
 ericbsd@FreeBSD.org using -f
From: Eric Turgeon 
Date: Fri, 30 Mar 2018 11:30:48 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331762 - head/share/misc
X-SVN-Group: head
X-SVN-Commit-Author: ericbsd
X-SVN-Commit-Paths: head/share/misc
X-SVN-Commit-Revision: 331762
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 11:30:49 -0000

Author: ericbsd (ports committer)
Date: Fri Mar 30 11:30:48 2018
New Revision: 331762
URL: https://svnweb.freebsd.org/changeset/base/331762

Log:
  Add Eric Turgeon (ericbsd) in committers-ports.dot with mentor/mentee.
  
  Approved by:	bapt (mentor)

Modified:
  head/share/misc/committers-ports.dot

Modified: head/share/misc/committers-ports.dot
==============================================================================
--- head/share/misc/committers-ports.dot	Fri Mar 30 11:25:30 2018	(r331761)
+++ head/share/misc/committers-ports.dot	Fri Mar 30 11:30:48 2018	(r331762)
@@ -100,6 +100,7 @@ eadler [label="Eitan Adler\neadler@FreeBSD.org\n2011/0
 edwin [label="Edwin Groothuis\nedwin@FreeBSD.org\n2002/10/22"]
 ehaupt [label="Emanuel Haupt\nehaupt@FreeBSD.org\n2005/10/03"]
 eik [label="Oliver Eikemeier\neik@FreeBSD.org\n2003/11/12"]
+ericbsd [label="Eric Turgeon\ericbsd@FreeBSD.org\n2018/03/17"]
 erwin [label="Erwin Lansing\nerwin@FreeBSD.org\n2003/06/04"]
 eugen [label="Eugene Grosbein\neugen@FreeBSD.org\n2017/03/04"]
 farrokhi [label="Babak Farrokhi\nfarrokhi@FreeBSD.org\n2006/11/07"]
@@ -307,6 +308,7 @@ bapt -> bdrewery
 bapt -> bofh
 bapt -> dumbbell
 bapt -> eadler
+bapt -> ericbsd
 bapt -> grembo
 bapt -> jbeich
 bapt -> jlaffaye
@@ -691,6 +693,7 @@ wen -> pawel
 wg -> alexey
 wg -> danilo
 wg -> dvl
+wg -> ericbsd
 wg -> misha
 wg -> nemysis
 

From owner-svn-src-all@freebsd.org  Fri Mar 30 11:57:58 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC86DF65778;
 Fri, 30 Mar 2018 11:57:58 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 7A68984E5F;
 Fri, 30 Mar 2018 11:57:58 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 737035E6;
 Fri, 30 Mar 2018 11:57:58 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UBvwaG075333;
 Fri, 30 Mar 2018 11:57:58 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UBvwlG075332;
 Fri, 30 Mar 2018 11:57:58 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301157.w2UBvwlG075332@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 11:57:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-svnadmin@freebsd.org
Subject: svn commit: r331763 - svnadmin/conf
X-SVN-Group: svnadmin
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: svnadmin/conf
X-SVN-Commit-Revision: 331763
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 11:57:59 -0000

Author: hselasky
Date: Fri Mar 30 11:57:58 2018
New Revision: 331763
URL: https://svnweb.freebsd.org/changeset/base/331763

Log:
  Add myself.

Modified:
  svnadmin/conf/sizelimit.conf

Modified: svnadmin/conf/sizelimit.conf
==============================================================================
--- svnadmin/conf/sizelimit.conf	Fri Mar 30 11:30:48 2018	(r331762)
+++ svnadmin/conf/sizelimit.conf	Fri Mar 30 11:57:58 2018	(r331763)
@@ -18,6 +18,7 @@ achim
 bapt
 davidcs
 dim
+hselasky
 imp
 jb
 jeff

From owner-svn-src-all@freebsd.org  Fri Mar 30 13:37:34 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3A30DF6E1C5;
 Fri, 30 Mar 2018 13:37:34 +0000 (UTC)
 (envelope-from ericbsd@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E3870689A1;
 Fri, 30 Mar 2018 13:37:33 +0000 (UTC)
 (envelope-from ericbsd@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DE4B81617;
 Fri, 30 Mar 2018 13:37:33 +0000 (UTC)
 (envelope-from ericbsd@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UDbXm0025307;
 Fri, 30 Mar 2018 13:37:33 GMT (envelope-from ericbsd@FreeBSD.org)
Received: (from ericbsd@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UDbXLP025306;
 Fri, 30 Mar 2018 13:37:33 GMT (envelope-from ericbsd@FreeBSD.org)
Message-Id: <201803301337.w2UDbXLP025306@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ericbsd set sender to
 ericbsd@FreeBSD.org using -f
From: Eric Turgeon 
Date: Fri, 30 Mar 2018 13:37:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331764 - head/usr.bin/calendar/calendars
X-SVN-Group: head
X-SVN-Commit-Author: ericbsd
X-SVN-Commit-Paths: head/usr.bin/calendar/calendars
X-SVN-Commit-Revision: 331764
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 13:37:34 -0000

Author: ericbsd (ports committer)
Date: Fri Mar 30 13:37:33 2018
New Revision: 331764
URL: https://svnweb.freebsd.org/changeset/base/331764

Log:
  Adding Eric Turgeon (ericbsd) to calendar.freebsd
  
  Approved by: bapt (mentor)

Modified:
  head/usr.bin/calendar/calendars/calendar.freebsd

Modified: head/usr.bin/calendar/calendars/calendar.freebsd
==============================================================================
--- head/usr.bin/calendar/calendars/calendar.freebsd	Fri Mar 30 11:57:58 2018	(r331763)
+++ head/usr.bin/calendar/calendars/calendar.freebsd	Fri Mar 30 13:37:33 2018	(r331764)
@@ -108,6 +108,7 @@
 03/13	Alexander Leidinger  born in Neunkirchen, Saarland, Germany, 1976
 03/13	Will Andrews  born in Pontiac, Michigan, United States, 1982
 03/14	Bernhard Froehlich  born in Graz, Styria, Austria, 1985
+03/14	Eric Turgeon  born in Edmundston, New Brunswick, Canada, 1982
 03/15	Paolo Pisati  born in Lodi, Italy, 1977
 03/15	Brian Fundakowski Feldman  born in Alexandria, Virginia, United States, 1983
 03/17	Michael Smith  born in Bankstown, New South Wales, Australia, 1971

From owner-svn-src-all@freebsd.org  Fri Mar 30 14:41:16 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BBDC6F723BB;
 Fri, 30 Mar 2018 14:41:16 +0000 (UTC)
 (envelope-from ericbsd@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6EBB46B497;
 Fri, 30 Mar 2018 14:41:16 +0000 (UTC)
 (envelope-from ericbsd@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 697F62001;
 Fri, 30 Mar 2018 14:41:16 +0000 (UTC)
 (envelope-from ericbsd@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UEfGog056293;
 Fri, 30 Mar 2018 14:41:16 GMT (envelope-from ericbsd@FreeBSD.org)
Received: (from ericbsd@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UEfG6t056292;
 Fri, 30 Mar 2018 14:41:16 GMT (envelope-from ericbsd@FreeBSD.org)
Message-Id: <201803301441.w2UEfG6t056292@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ericbsd set sender to
 ericbsd@FreeBSD.org using -f
From: Eric Turgeon 
Date: Fri, 30 Mar 2018 14:41:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331765 - head/share/misc
X-SVN-Group: head
X-SVN-Commit-Author: ericbsd
X-SVN-Commit-Paths: head/share/misc
X-SVN-Commit-Revision: 331765
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 14:41:16 -0000

Author: ericbsd (ports committer)
Date: Fri Mar 30 14:41:16 2018
New Revision: 331765
URL: https://svnweb.freebsd.org/changeset/base/331765

Log:
  Fix missing n after \ of Eric Turgeon entry
  
  Approved by:	bapt (mentor)

Modified:
  head/share/misc/committers-ports.dot

Modified: head/share/misc/committers-ports.dot
==============================================================================
--- head/share/misc/committers-ports.dot	Fri Mar 30 13:37:33 2018	(r331764)
+++ head/share/misc/committers-ports.dot	Fri Mar 30 14:41:16 2018	(r331765)
@@ -100,7 +100,7 @@ eadler [label="Eitan Adler\neadler@FreeBSD.org\n2011/0
 edwin [label="Edwin Groothuis\nedwin@FreeBSD.org\n2002/10/22"]
 ehaupt [label="Emanuel Haupt\nehaupt@FreeBSD.org\n2005/10/03"]
 eik [label="Oliver Eikemeier\neik@FreeBSD.org\n2003/11/12"]
-ericbsd [label="Eric Turgeon\ericbsd@FreeBSD.org\n2018/03/17"]
+ericbsd [label="Eric Turgeon\nericbsd@FreeBSD.org\n2018/03/17"]
 erwin [label="Erwin Lansing\nerwin@FreeBSD.org\n2003/06/04"]
 eugen [label="Eugene Grosbein\neugen@FreeBSD.org\n2017/03/04"]
 farrokhi [label="Babak Farrokhi\nfarrokhi@FreeBSD.org\n2006/11/07"]

From owner-svn-src-all@freebsd.org  Fri Mar 30 15:28:26 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 51A99F754A4;
 Fri, 30 Mar 2018 15:28:26 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id F3A266D26C;
 Fri, 30 Mar 2018 15:28:25 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E65E427E0;
 Fri, 30 Mar 2018 15:28:25 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UFSPl7080932;
 Fri, 30 Mar 2018 15:28:25 GMT (envelope-from ken@FreeBSD.org)
Received: (from ken@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UFSPpm080924;
 Fri, 30 Mar 2018 15:28:25 GMT (envelope-from ken@FreeBSD.org)
Message-Id: <201803301528.w2UFSPpm080924@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ken set sender to ken@FreeBSD.org
 using -f
From: "Kenneth D. Merry" 
Date: Fri, 30 Mar 2018 15:28:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331766 - in head: share/man/man4 sys/amd64/conf sys/conf
 sys/dev/ocs_fc sys/modules sys/modules/ocs_fc
X-SVN-Group: head
X-SVN-Commit-Author: ken
X-SVN-Commit-Paths: in head: share/man/man4 sys/amd64/conf sys/conf
 sys/dev/ocs_fc sys/modules sys/modules/ocs_fc
X-SVN-Commit-Revision: 331766
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 15:28:26 -0000

Author: ken
Date: Fri Mar 30 15:28:25 2018
New Revision: 331766
URL: https://svnweb.freebsd.org/changeset/base/331766

Log:
  Bring in the Broadcom/Emulex Fibre Channel driver, ocs_fc(4).
  
  The ocs_fc(4) driver supports the following hardware:
  
  Emulex 16/8G FC GEN 5 HBAS
  	LPe15004 FC Host Bus Adapters
  	LPe160XX FC Host Bus Adapters
  
  Emulex 32/16G FC GEN 6 HBAS
  	LPe3100X FC Host Bus Adapters
  	LPe3200X FC Host Bus Adapters
  
  The driver supports target and initiator mode, and also supports FC-Tape.
  
  Note that the driver only currently works on little endian platforms.  It
  is only included in the module build for amd64 and i386, and in GENERIC
  on amd64 only.
  
  Submitted by:	Ram Kishore Vegesna 
  Reviewed by:	mav
  MFC after:	5 days
  Relnotes:	yes
  Sponsored by:	Broadcom
  Differential Revision:	https://reviews.freebsd.org/D11423

Added:
  head/share/man/man4/ocs_fc.4   (contents, props changed)
  head/sys/dev/ocs_fc/
  head/sys/dev/ocs_fc/ocs.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_cam.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_cam.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_common.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_ddump.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_ddump.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_device.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_device.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_domain.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_domain.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_drv_fc.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_els.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_els.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_fabric.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_fabric.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_fcp.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_hw.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_hw.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_hw_queues.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_hw_queues.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_io.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_io.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_ioctl.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_ioctl.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_list.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_mgmt.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_mgmt.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_node.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_node.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_os.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_os.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_pci.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_scsi.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_scsi.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_sm.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_sm.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_sport.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_sport.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_stats.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_unsol.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_unsol.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_utils.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_utils.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_vpd.h   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_xport.c   (contents, props changed)
  head/sys/dev/ocs_fc/ocs_xport.h   (contents, props changed)
  head/sys/dev/ocs_fc/sli4.c   (contents, props changed)
  head/sys/dev/ocs_fc/sli4.h   (contents, props changed)
  head/sys/dev/ocs_fc/version.h   (contents, props changed)
  head/sys/modules/ocs_fc/
  head/sys/modules/ocs_fc/Makefile   (contents, props changed)
Modified:
  head/share/man/man4/Makefile
  head/sys/amd64/conf/GENERIC
  head/sys/conf/files
  head/sys/modules/Makefile

Modified: head/share/man/man4/Makefile
==============================================================================
--- head/share/man/man4/Makefile	Fri Mar 30 14:41:16 2018	(r331765)
+++ head/share/man/man4/Makefile	Fri Mar 30 15:28:25 2018	(r331766)
@@ -402,6 +402,7 @@ MAN=	aac.4 \
 	${_nvram2env.4} \
 	${_nxge.4} \
 	oce.4 \
+	ocs_fc.4\
 	ohci.4 \
 	orm.4 \
 	ow.4 \

Added: head/share/man/man4/ocs_fc.4
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/man/man4/ocs_fc.4	Fri Mar 30 15:28:25 2018	(r331766)
@@ -0,0 +1,194 @@
+.\" Copyright (c) 2017 Broadcom. All rights reserved.
+.\" The term "Broadcom" refers to Broadcom Limited and/or its subsidiaries.
+.\"
+.\" 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 copyright holder nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd March 30, 2018
+.Dt OCS_FC 4
+.Os
+.Sh NAME
+.Nm ocs_fc
+.Nd "Device driver for Emulex Fibre Channel Host Adapters"
+.Sh SYNOPSIS
+To compile this driver into the kernel, add this line to the
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device ocs_fc"
+.Ed
+.Pp
+To load the driver as a module at boot, add this line to
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+ocs_fc_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides access to Fibre Channel SCSI devices.
+.Pp
+The
+.Nm
+driver supports initiator and target modes.
+Support is available for Arbitrated loops, Point-to-Point,
+and Fabric connections.
+FC-Tape is highly recommended for connections to tape drives that support
+it.
+FC-Tape includes four elements from the T-10 FCP-4 specification:
+.Bl -bullet -offset indent
+.It
+Precise Delivery of Commands
+.It
+Confirmed Completion of FCP I/O Operations
+.It
+Retransmission of Unsuccessfully Transmitted IUs
+.It
+Task Retry Identification
+.El
+.Pp
+Together these features allow for link level error recovery with tape
+devices.
+Without link level error recovery, an initiator cannot, for instance, tell whether a tape write
+command that has timed out resulted in all, part, or none of the data going to
+the tape drive.
+FC-Tape is automatically enabled when both the controller and target support it.
+
+.Sh HARDWARE
+The
+.Nm
+driver supports these Fibre Channel adapters:
+.Bl -tag -width xxxxxx -offset indent
+.It Emulex 16/8G FC GEN 5 HBAS
+.Bd -literal -offset indent
+LPe15004 FC Host Bus Adapters
+LPe160XX FC Host Bus Adapters
+.Ed
+.It Emulex 32/16G FC GEN 6 HBAS
+.Bd -literal -offset indent
+LPe3100X FC Host Bus Adapters
+LPe3200X FC Host Bus Adapters
+.Ed
+.El
+.Sh UPDATING FIRMWARE
+Adapter firmware updates are persistent.
+.Pp
+Firmware can be updated by following these steps:
+.Bl -enum
+.It
+Copy this code to a
+.Pa Makefile :
+.Bd -literal -offset indent
+KMOD=ocsflash
+FIRMWS=imagename.grp:ocsflash
+\&.include 
+.Ed
+.It
+Replace
+.Pa imagename
+with the name of the GRP file.
+.It
+Copy the
+.Pa Makefile
+and GRP file to a local directory
+.It
+Execute
+.Cm make
+and copy the generated
+.Pa ocsflash.ko
+file to
+.Pa /lib/modules
+.It
+.Cm sysctl dev.ocs_fc..fw_upgrade=ocsflash
+.It
+Check kernel messages regarding status of the operation
+.It
+Reboot the machine
+.El
+.Pp
+.Sh BOOT OPTIONS
+Options are controlled by setting values in
+.Pa /boot/device.hints .
+.Pp
+They are:
+.Bl -tag -width indent
+.It Va hint.ocs_fc.N.initiator
+Enable initiator functionality.
+Default 1 (enabled), 0 to disable.
+.It Va hint.ocs_fc.N.target
+Enable target functionality.
+Default 1 (enabled), 0 to disable.
+.It Va hint.ocs_fc.N.topology
+Topology: 0 for Auto, 1 for NPort only, 2 for Loop only.
+.It Va hint.ocs_fc.N.speed
+Link speed in megabits per second.
+Possible values include:
+0 Auto-speed negotiation (default), 4000 (4GFC), 8000 (8GFC), 16000 (16GFC).
+.El
+.Sh SYSCTL OPTIONS
+.Bl -tag -width indent
+.It Va dev.ocs_fc.N.port_state
+Port state (read/write).
+Valid values are
+.Li online
+and
+.Li offline .
+.It Va dev.ocs_fc.N.wwpn
+World Wide Port Name (read/write).
+.It Va dev.ocs_fc.N.wwnn
+World Wide Node Name (read/write).
+.It Va dev.ocs_fc.N.fwrev
+Firmware revision (read-only).
+.It Va dev.ocs_fc.N.sn
+Adapter serial number (read-only).
+.It Va dev.ocs_fc.N.configured_speed
+Configured Port Speed (read/write).
+Valid values are:
+0 Auto-speed negotiation (default), 4000 (4GFC), 8000 (8GFC), 16000 (16GFC).
+.It Va dev.ocs_fc.N.configured_topology
+Configured Port Topology (read/write).
+Valid values are:
+0-Auto; 1-NPort; 2-Loop.
+.It Va dev.ocs_fc.N.current_speed
+Current Port Speed (read-only).
+.It Va dev.ocs_fc.N.current_topology
+Current Port Topology (read-only).
+.El
+.Sh SUPPORT
+For general information and support,
+go to the Broadcom website at:
+.Pa http://www.broadcom.com/
+or E-Mail at
+.Pa ocs-driver-team.pdl@broadcom.com.
+.Sh SEE ALSO
+.Xr ifconfig 8
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An Broadcom.

Modified: head/sys/amd64/conf/GENERIC
==============================================================================
--- head/sys/amd64/conf/GENERIC	Fri Mar 30 14:41:16 2018	(r331765)
+++ head/sys/amd64/conf/GENERIC	Fri Mar 30 15:28:25 2018	(r331766)
@@ -141,6 +141,7 @@ device		adw			# Advansys wide SCSI adapters
 device		aic			# Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
 device		bt			# Buslogic/Mylex MultiMaster SCSI adapters
 device		isci			# Intel C600 SAS controller
+device		ocs_fc			# Emulex FC adapters
 
 # ATA/SCSI peripherals
 device		scbus			# SCSI bus (required for ATA/SCSI)

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files	Fri Mar 30 14:41:16 2018	(r331765)
+++ head/sys/conf/files	Fri Mar 30 15:28:25 2018	(r331766)
@@ -2578,6 +2578,27 @@ dev/oce/oce_mbox.c		optional oce pci
 dev/oce/oce_queue.c		optional oce pci
 dev/oce/oce_sysctl.c		optional oce pci
 dev/oce/oce_util.c		optional oce pci
+dev/ocs_fc/ocs_pci.c		optional ocs_fc pci
+dev/ocs_fc/ocs_ioctl.c		optional ocs_fc pci
+dev/ocs_fc/ocs_os.c		optional ocs_fc pci
+dev/ocs_fc/ocs_utils.c		optional ocs_fc pci
+dev/ocs_fc/ocs_hw.c		optional ocs_fc pci
+dev/ocs_fc/ocs_hw_queues.c	optional ocs_fc pci
+dev/ocs_fc/sli4.c		optional ocs_fc pci
+dev/ocs_fc/ocs_sm.c		optional ocs_fc pci
+dev/ocs_fc/ocs_device.c		optional ocs_fc pci
+dev/ocs_fc/ocs_xport.c		optional ocs_fc pci
+dev/ocs_fc/ocs_domain.c		optional ocs_fc pci
+dev/ocs_fc/ocs_sport.c		optional ocs_fc pci
+dev/ocs_fc/ocs_els.c		optional ocs_fc pci
+dev/ocs_fc/ocs_fabric.c		optional ocs_fc pci
+dev/ocs_fc/ocs_io.c		optional ocs_fc pci
+dev/ocs_fc/ocs_node.c		optional ocs_fc pci
+dev/ocs_fc/ocs_scsi.c		optional ocs_fc pci
+dev/ocs_fc/ocs_unsol.c		optional ocs_fc pci
+dev/ocs_fc/ocs_ddump.c		optional ocs_fc pci
+dev/ocs_fc/ocs_mgmt.c		optional ocs_fc pci
+dev/ocs_fc/ocs_cam.c		optional ocs_fc pci
 dev/ofw/ofw_bus_if.m		optional fdt
 dev/ofw/ofw_bus_subr.c		optional fdt
 dev/ofw/ofw_cpu.c		optional fdt

Added: head/sys/dev/ocs_fc/ocs.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/dev/ocs_fc/ocs.h	Fri Mar 30 15:28:25 2018	(r331766)
@@ -0,0 +1,261 @@
+/*-
+ * Copyright (c) 2017 Broadcom. All rights reserved.
+ * The term "Broadcom" refers to Broadcom Limited and/or its subsidiaries.
+ *
+ * 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 copyright holder nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/**
+ * @file
+ * OCS bsd driver common include file
+ */
+
+
+#if !defined(__OCS_H__)
+#define __OCS_H__
+
+#include "ocs_os.h"
+#include "ocs_utils.h"
+
+#include "ocs_hw.h"
+#include "ocs_scsi.h"
+#include "ocs_io.h"
+
+#include "version.h"
+
+#define DRV_NAME			"ocs_fc"
+#define DRV_VERSION 							\
+	STR_BE_MAJOR "." STR_BE_MINOR "." STR_BE_BUILD "." STR_BE_BRANCH
+
+/**
+ * @brief Interrupt context
+ */
+typedef struct ocs_intr_ctx_s {
+	uint32_t	vec;		/** Zero based interrupt vector */
+	void		*softc;		/** software context for interrupt */
+	char		name[64];	/** label for this context */
+} ocs_intr_ctx_t;
+
+typedef struct ocs_fcport_s {
+	struct cam_sim          *sim;
+	struct cam_path         *path;
+	uint32_t                role;
+
+	ocs_tgt_resource_t      targ_rsrc_wildcard;
+	ocs_tgt_resource_t      targ_rsrc[OCS_MAX_LUN];
+	ocs_vport_spec_t	*vport;
+} ocs_fcport;
+
+#define FCPORT(ocs, chan)	(&((ocs_fcport *)(ocs)->fcports)[(chan)])
+
+/**
+ * @brief Driver's context
+ */
+
+struct ocs_softc {
+
+	device_t		dev;
+	struct cdev		*cdev;
+
+	ocs_pci_reg_t		reg[PCI_MAX_BAR];
+
+	uint32_t		instance_index;
+	const char		*desc;
+
+	uint32_t		irqid;
+	struct resource		*irq;
+	void			*tag;
+
+	ocs_intr_ctx_t		intr_ctx;
+	uint32_t		n_vec;
+
+	bus_dma_tag_t		dmat;	/** Parent DMA tag */
+	bus_dma_tag_t		buf_dmat;/** IO buffer DMA tag */
+	char display_name[OCS_DISPLAY_NAME_LENGTH];
+	uint16_t		pci_vendor;
+	uint16_t		pci_device;
+	uint16_t		pci_subsystem_vendor;
+	uint16_t		pci_subsystem_device;
+	char			businfo[16];
+	const char		*driver_version;
+	const char		*fw_version;
+	const char		*model;
+
+	ocs_hw_t hw;
+
+	ocs_rlock_t lock;	/**< device wide lock */
+
+	ocs_xport_e		ocs_xport;
+	ocs_xport_t *xport;	/**< pointer to transport object */
+	ocs_domain_t *domain;
+	ocs_list_t domain_list;
+	uint32_t domain_instance_count;
+	void (*domain_list_empty_cb)(ocs_t *ocs, void *arg);		
+	void *domain_list_empty_cb_arg;
+
+	uint8_t enable_ini;
+	uint8_t enable_tgt;
+	uint8_t fc_type;
+	int ctrlmask;
+	uint8_t explicit_buffer_list;
+	uint8_t external_loopback;
+	uint8_t skip_hw_teardown;
+	int speed;
+	int topology;
+	int ethernet_license;
+	int num_scsi_ios;
+	uint8_t enable_hlm;
+	uint32_t hlm_group_size;
+	uint32_t max_isr_time_msec;	/*>> Maximum ISR time */
+	uint32_t auto_xfer_rdy_size; /*>> Max sized write to use auto xfer rdy*/
+	uint8_t esoc;
+	int logmask;
+	char *hw_war_version;
+	uint32_t num_vports;
+	uint32_t target_io_timer_sec;
+	uint32_t hw_bounce;
+	uint8_t rq_threads;
+	uint8_t rq_selection_policy;
+	uint8_t rr_quanta;
+	char *filter_def;
+	uint32_t max_remote_nodes;
+
+	/*
+	 * tgt_rscn_delay - delay in kicking off RSCN processing 
+	 * (nameserver queries) after receiving an RSCN on the target. 
+	 * This prevents thrashing of nameserver requests due to a huge burst of
+	 * RSCNs received in a short period of time.
+	 * Note: this is only valid when target RSCN handling is enabled -- see 
+	 * ctrlmask.
+	 */
+	time_t tgt_rscn_delay_msec;	/*>> minimum target RSCN delay */
+
+	/*
+	 * tgt_rscn_period - determines maximum frequency when processing 
+	 * back-to-back RSCNs; e.g. if this value is 30, there will never be 
+	 * any more than 1 RSCN handling per 30s window. This prevents 
+	 * initiators on a faulty link generating many RSCN from causing the 
+	 * target to continually query the nameserver. 
+	 * Note: This is only valid when target RSCN handling is enabled
+	 */
+	time_t tgt_rscn_period_msec;	/*>> minimum target RSCN period */
+
+	uint32_t		enable_task_set_full;		
+	uint32_t		io_in_use;		
+	uint32_t		io_high_watermark; /**< used to send task set full */
+	struct mtx              sim_lock;
+	uint32_t		config_tgt:1,	/**< Configured to support target mode */
+				config_ini:1;	/**< Configured to support initiator mode */
+
+
+	uint32_t nodedb_mask;			/**< Node debugging mask */
+
+	char			modeldesc[64];
+	char			serialnum[64];
+	char			fwrev[64];
+	char			sli_intf[9];
+
+	ocs_ramlog_t		*ramlog;
+	ocs_textbuf_t		ddump_saved;
+
+	ocs_mgmt_functions_t	*mgmt_functions;
+	ocs_mgmt_functions_t	*tgt_mgmt_functions;
+	ocs_mgmt_functions_t	*ini_mgmt_functions;
+
+	ocs_err_injection_e err_injection;
+	uint32_t cmd_err_inject;
+	time_t delay_value_msec;
+
+	bool			attached;
+	struct mtx		dbg_lock;
+	
+	struct cam_devq		*devq;
+	ocs_fcport		*fcports;
+
+	void*			tgt_ocs;
+};
+
+static inline void
+ocs_device_lock_init(ocs_t *ocs)
+{
+	ocs_rlock_init(ocs, &ocs->lock, "ocsdevicelock");
+}
+
+static inline int32_t
+ocs_device_lock_try(ocs_t *ocs)
+{
+	return ocs_rlock_try(&ocs->lock);
+}
+
+static inline void
+ocs_device_lock(ocs_t *ocs)
+{
+	ocs_rlock_acquire(&ocs->lock);
+}
+
+static inline void
+ocs_device_unlock(ocs_t *ocs)
+{
+	ocs_rlock_release(&ocs->lock);
+}
+
+static inline void
+ocs_device_lock_free(ocs_t *ocs)
+{
+	ocs_rlock_free(&ocs->lock);
+}
+
+extern int32_t ocs_device_detach(ocs_t *ocs);
+
+extern int32_t ocs_device_attach(ocs_t *ocs);
+
+#define ocs_is_initiator_enabled()	(ocs->enable_ini)
+#define ocs_is_target_enabled()	(ocs->enable_tgt)
+
+#include "ocs_xport.h"
+#include "ocs_domain.h"
+#include "ocs_sport.h"
+#include "ocs_node.h"
+#include "ocs_unsol.h"
+#include "ocs_scsi.h"
+#include "ocs_ioctl.h"
+
+static inline ocs_io_t *
+ocs_io_alloc(ocs_t *ocs)
+{
+	return ocs_io_pool_io_alloc(ocs->xport->io_pool);
+}
+
+static inline void
+ocs_io_free(ocs_t *ocs, ocs_io_t *io)
+{
+	ocs_io_pool_io_free(ocs->xport->io_pool, io);
+}
+
+#endif /* __OCS_H__ */

Added: head/sys/dev/ocs_fc/ocs_cam.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/dev/ocs_fc/ocs_cam.c	Fri Mar 30 15:28:25 2018	(r331766)
@@ -0,0 +1,2640 @@
+/*-
+ * Copyright (c) 2017 Broadcom. All rights reserved.
+ * The term "Broadcom" refers to Broadcom Limited and/or its subsidiaries.
+ *
+ * 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 copyright holder nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/**
+ * @defgroup scsi_api_target SCSI Target API
+ * @defgroup scsi_api_initiator SCSI Initiator API
+ * @defgroup cam_api Common Access Method (CAM) API
+ * @defgroup cam_io CAM IO
+ */
+
+/**
+ * @file
+ * Provides CAM functionality.
+ */
+
+#include "ocs.h"
+#include "ocs_scsi.h"
+#include "ocs_device.h"
+
+/* Default IO timeout value for initiators is 30 seconds */
+#define OCS_CAM_IO_TIMEOUT	30
+
+typedef struct {
+	ocs_scsi_sgl_t *sgl;
+	uint32_t sgl_max;
+	uint32_t sgl_count;
+	int32_t rc;
+} ocs_dmamap_load_arg_t;
+
+static void ocs_action(struct cam_sim *, union ccb *);
+static void ocs_poll(struct cam_sim *);
+
+static ocs_tgt_resource_t *ocs_tgt_resource_get(ocs_fcport *,
+					struct ccb_hdr *, uint32_t *);
+static int32_t ocs_tgt_resource_abort(struct ocs_softc *, ocs_tgt_resource_t *);
+static uint32_t ocs_abort_initiator_io(struct ocs_softc *ocs, union ccb *accb);
+static void ocs_abort_inot(struct ocs_softc *ocs, union ccb *ccb);
+static void ocs_abort_atio(struct ocs_softc *ocs, union ccb *ccb);
+static int32_t ocs_target_tmf_cb(ocs_io_t *, ocs_scsi_io_status_e, uint32_t, void *);
+static int32_t ocs_io_abort_cb(ocs_io_t *, ocs_scsi_io_status_e, uint32_t, void *);
+static int32_t ocs_task_set_full_or_busy(ocs_io_t *io);
+static int32_t ocs_initiator_tmf_cb(ocs_io_t *, ocs_scsi_io_status_e,
+		ocs_scsi_cmd_resp_t *, uint32_t, void *);
+static uint32_t
+ocs_fcp_change_role(struct ocs_softc *ocs, ocs_fcport *fcp, uint32_t new_role);
+
+static inline ocs_io_t *ocs_scsi_find_io(struct ocs_softc *ocs, uint32_t tag)
+{
+
+	return ocs_io_get_instance(ocs, tag);
+}
+
+static inline void ocs_target_io_free(ocs_io_t *io)
+{
+	io->tgt_io.state = OCS_CAM_IO_FREE;
+	io->tgt_io.flags = 0;
+	io->tgt_io.app = NULL;
+	ocs_scsi_io_complete(io);
+	if(io->ocs->io_in_use != 0)
+		atomic_subtract_acq_32(&io->ocs->io_in_use, 1);
+}
+
+static int32_t
+ocs_attach_port(ocs_t *ocs, int chan)
+{
+
+	struct cam_sim	*sim = NULL;
+	struct cam_path	*path = NULL;
+	uint32_t	max_io = ocs_scsi_get_property(ocs, OCS_SCSI_MAX_IOS);
+	ocs_fcport *fcp = FCPORT(ocs, chan);
+
+	if (NULL == (sim = cam_sim_alloc(ocs_action, ocs_poll, 
+				device_get_name(ocs->dev), ocs, 
+				device_get_unit(ocs->dev), &ocs->sim_lock,
+				max_io, max_io, ocs->devq))) {
+		device_printf(ocs->dev, "Can't allocate SIM\n");
+		return 1;
+	}
+
+	mtx_lock(&ocs->sim_lock);
+	if (CAM_SUCCESS != xpt_bus_register(sim, ocs->dev, chan)) {
+		device_printf(ocs->dev, "Can't register bus %d\n", 0);
+		mtx_unlock(&ocs->sim_lock);
+		cam_sim_free(sim, FALSE);
+		return 1;
+	}
+	mtx_unlock(&ocs->sim_lock);
+
+	if (CAM_REQ_CMP != xpt_create_path(&path, NULL, cam_sim_path(sim),
+				CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD)) {
+		device_printf(ocs->dev, "Can't create path\n");
+		xpt_bus_deregister(cam_sim_path(sim));
+		mtx_unlock(&ocs->sim_lock);
+		cam_sim_free(sim, FALSE);
+		return 1;
+	}
+
+	fcp->sim  = sim;
+	fcp->path = path;
+
+	return 0;
+
+}
+
+static int32_t
+ocs_detach_port(ocs_t *ocs, int32_t chan)
+{
+	ocs_fcport *fcp = NULL;
+	struct cam_sim	*sim = NULL;
+	struct cam_path	*path = NULL;
+	fcp = FCPORT(ocs, chan);
+
+	sim = fcp->sim;
+	path = fcp->path;
+
+	if (fcp->sim) {
+		mtx_lock(&ocs->sim_lock);
+			ocs_tgt_resource_abort(ocs, &fcp->targ_rsrc_wildcard);
+			if (path) {
+				xpt_async(AC_LOST_DEVICE, path, NULL);
+				xpt_free_path(path);
+				fcp->path = NULL;
+			}
+			xpt_bus_deregister(cam_sim_path(sim));
+
+			cam_sim_free(sim, FALSE);
+			fcp->sim = NULL;
+		mtx_unlock(&ocs->sim_lock);
+	}
+	
+	return 0;
+}
+
+int32_t
+ocs_cam_attach(ocs_t *ocs)
+{
+	struct cam_devq	*devq = NULL;
+	int	i = 0;
+	uint32_t	max_io = ocs_scsi_get_property(ocs, OCS_SCSI_MAX_IOS);
+
+	if (NULL == (devq = cam_simq_alloc(max_io))) {
+		device_printf(ocs->dev, "Can't allocate SIMQ\n");
+		return -1;
+	}
+
+	ocs->devq = devq;
+
+	if (mtx_initialized(&ocs->sim_lock) == 0) {
+		mtx_init(&ocs->sim_lock, "ocs_sim_lock", NULL, MTX_DEF);
+	}
+
+	for (i = 0; i < (ocs->num_vports + 1); i++) {
+		if (ocs_attach_port(ocs, i)) {
+			ocs_log_err(ocs, "Attach port failed for chan: %d\n", i);
+			goto detach_port;
+		}
+	}
+	
+	ocs->io_high_watermark = max_io;
+	ocs->io_in_use = 0;
+	return 0;
+
+detach_port:
+	while (--i >= 0) {
+		ocs_detach_port(ocs, i);
+	}
+
+	cam_simq_free(ocs->devq);
+
+	if (mtx_initialized(&ocs->sim_lock))
+		mtx_destroy(&ocs->sim_lock);
+
+	return 1;	
+}
+
+int32_t
+ocs_cam_detach(ocs_t *ocs)
+{
+	int i = 0;
+
+	for (i = (ocs->num_vports); i >= 0; i--) {
+		ocs_detach_port(ocs, i);
+	}
+
+	cam_simq_free(ocs->devq);
+
+	if (mtx_initialized(&ocs->sim_lock))
+		mtx_destroy(&ocs->sim_lock);
+
+	return 0;
+}
+
+/***************************************************************************
+ * Functions required by SCSI base driver API
+ */
+
+/**
+ * @ingroup scsi_api_target
+ * @brief Attach driver to the BSD SCSI layer (a.k.a CAM)
+ *
+ * Allocates + initializes CAM related resources and attaches to the CAM
+ *
+ * @param ocs the driver instance's software context
+ *
+ * @return 0 on success, non-zero otherwise
+ */
+int32_t
+ocs_scsi_tgt_new_device(ocs_t *ocs)
+{
+	ocs->enable_task_set_full = ocs_scsi_get_property(ocs, 
+					OCS_SCSI_ENABLE_TASK_SET_FULL);
+	ocs_log_debug(ocs, "task set full processing is %s\n",
+		ocs->enable_task_set_full ? "enabled" : "disabled");
+
+	return 0;
+}
+
+/**
+ * @ingroup scsi_api_target
+ * @brief Tears down target members of ocs structure.
+ *
+ * Called by OS code when device is removed.
+ *
+ * @param ocs pointer to ocs
+ *
+ * @return returns 0 for success, a negative error code value for failure.
+ */
+int32_t
+ocs_scsi_tgt_del_device(ocs_t *ocs)
+{
+
+	return 0;
+}
+
+/**
+ * @ingroup scsi_api_target
+ * @brief accept new domain notification
+ *
+ * Called by base drive when new domain is discovered.  A target-server
+ * will use this call to prepare for new remote node notifications
+ * arising from ocs_scsi_new_initiator().
+ *
+ * The domain context has an element ocs_scsi_tgt_domain_t tgt_domain 
+ * which is declared by the target-server code and is used for target-server 
+ * private data.
+ *
+ * This function will only be called if the base-driver has been enabled for 
+ * target capability.
+ *
+ * Note that this call is made to target-server backends, 
+ * the ocs_scsi_ini_new_domain() function is called to initiator-client backends.
+ *
+ * @param domain pointer to domain
+ *
+ * @return returns 0 for success, a negative error code value for failure.
+ */
+int32_t
+ocs_scsi_tgt_new_domain(ocs_domain_t *domain)
+{
+	return 0;
+}
+
+/**
+ * @ingroup scsi_api_target
+ * @brief accept domain lost notification
+ *
+ * Called by base-driver when a domain goes away.  A target-server will
+ * use this call to clean up all domain scoped resources.
+ *
+ * Note that this call is made to target-server backends,
+ * the ocs_scsi_ini_del_domain() function is called to initiator-client backends.
+ *
+ * @param domain pointer to domain
+ *
+ * @return returns 0 for success, a negative error code value for failure.
+ */
+void
+ocs_scsi_tgt_del_domain(ocs_domain_t *domain)
+{
+}
+
+
+/**
+ * @ingroup scsi_api_target
+ * @brief accept new sli port (sport) notification
+ *
+ * Called by base drive when new sport is discovered.  A target-server
+ * will use this call to prepare for new remote node notifications
+ * arising from ocs_scsi_new_initiator().
+ *
+ * The domain context has an element ocs_scsi_tgt_sport_t tgt_sport 
+ * which is declared by the target-server code and is used for
+ * target-server private data.
+ *
+ * This function will only be called if the base-driver has been enabled for 
+ * target capability.
+ *
+ * Note that this call is made to target-server backends,
+ * the ocs_scsi_tgt_new_domain() is called to initiator-client backends.
+ *
+ * @param sport pointer to SLI port
+ *
+ * @return returns 0 for success, a negative error code value for failure.
+ */
+int32_t
+ocs_scsi_tgt_new_sport(ocs_sport_t *sport)
+{
+	ocs_t *ocs = sport->ocs;
+
+	if(!sport->is_vport) {
+		sport->tgt_data = FCPORT(ocs, 0);
+	}
+
+	return 0;
+}
+
+/**
+ * @ingroup scsi_api_target
+ * @brief accept SLI port gone notification
+ *
+ * Called by base-driver when a sport goes away.  A target-server will
+ * use this call to clean up all sport scoped resources.
+ *
+ * Note that this call is made to target-server backends,
+ * the ocs_scsi_ini_del_sport() is called to initiator-client backends.
+ *
+ * @param sport pointer to SLI port
+ *
+ * @return returns 0 for success, a negative error code value for failure.
+ */
+void
+ocs_scsi_tgt_del_sport(ocs_sport_t *sport)
+{
+	return;
+}
+
+/**
+ * @ingroup scsi_api_target
+ * @brief receive notification of a new SCSI initiator node
+ *
+ * Sent by base driver to notify a target-server of the presense of a new
+ * remote initiator.   The target-server may use this call to prepare for
+ * inbound IO from this node.
+ *
+ * The ocs_node_t structure has and elment of type ocs_scsi_tgt_node_t named
+ * tgt_node that is declared and used by a target-server for private
+ * information.
+ *
+ * This function is only called if the target capability is enabled in driver.
+ *
+ * @param node pointer to new remote initiator node
+ *
+ * @return returns 0 for success, a negative error code value for failure.
+ *
+ * @note
+ */
+int32_t
+ocs_scsi_new_initiator(ocs_node_t *node)
+{
+	ocs_t	*ocs = node->ocs;
+	struct ac_contract ac;
+	struct ac_device_changed *adc;
+
+	ocs_fcport	*fcp = NULL;
+
+	fcp = node->sport->tgt_data;
+	if (fcp == NULL) {
+		ocs_log_err(ocs, "FCP is NULL \n");
+		return 1;
+	}	
+
+	/*
+	 * Update the IO watermark by decrementing it by the
+	 * number of IOs reserved for each initiator.
+	 */
+	atomic_subtract_acq_32(&ocs->io_high_watermark, OCS_RSVD_INI_IO);
+
+	ac.contract_number = AC_CONTRACT_DEV_CHG;
+	adc = (struct ac_device_changed *) ac.contract_data;
+	adc->wwpn = ocs_node_get_wwpn(node);
+	adc->port = node->rnode.fc_id;
+	adc->target = node->instance_index;
+	adc->arrived = 1;
+	xpt_async(AC_CONTRACT, fcp->path, &ac);
+
+	return 0;
+}
+
+/**
+ * @ingroup scsi_api_target
+ * @brief validate new initiator
+ *
+ * Sent by base driver to validate a remote initiatiator.   The target-server
+ * returns TRUE if this initiator should be accepted.
+ *
+ * This function is only called if the target capability is enabled in driver.
+ *
+ * @param node pointer to remote initiator node to validate
+ *
+ * @return TRUE if initiator should be accepted, FALSE if it should be rejected
+ *
+ * @note
+ */
+
+int32_t
+ocs_scsi_validate_initiator(ocs_node_t *node)
+{
+	return 1;
+}
+
+/**
+ * @ingroup scsi_api_target
+ * @brief Delete a SCSI initiator node
+ *
+ * Sent by base driver to notify a target-server that a remote initiator
+ * is now gone. The base driver will have terminated all outstanding IOs 
+ * and the target-server will receive appropriate completions.
+ *
+ * This function is only called if the base driver is enabled for
+ * target capability.
+ *
+ * @param node pointer node being deleted
+ * @param reason Reason why initiator is gone.
+ *
+ * @return OCS_SCSI_CALL_COMPLETE to indicate that all work was completed
+ *
+ * @note
+ */
+int32_t
+ocs_scsi_del_initiator(ocs_node_t *node, ocs_scsi_del_initiator_reason_e reason)
+{
+	ocs_t	*ocs = node->ocs;
+
+	struct ac_contract ac;
+	struct ac_device_changed *adc;
+	ocs_fcport	*fcp = NULL;
+
+	fcp = node->sport->tgt_data;
+	if (fcp == NULL) {
+		ocs_log_err(ocs, "FCP is NULL \n");
+		return 1;
+	}
+
+	ac.contract_number = AC_CONTRACT_DEV_CHG;
+	adc = (struct ac_device_changed *) ac.contract_data;
+	adc->wwpn = ocs_node_get_wwpn(node);
+	adc->port = node->rnode.fc_id;
+	adc->target = node->instance_index;
+	adc->arrived = 0;
+	xpt_async(AC_CONTRACT, fcp->path, &ac);
+
+
+	if (reason == OCS_SCSI_INITIATOR_MISSING) {
+		return OCS_SCSI_CALL_COMPLETE;
+	}
+

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Fri Mar 30 16:03:09 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C3EEAF77794;
 Fri, 30 Mar 2018 16:03:09 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 4BC626E94A;
 Fri, 30 Mar 2018 16:03:09 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2UG2wb5068680;
 Fri, 30 Mar 2018 09:02:58 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2UG2vBr068679;
 Fri, 30 Mar 2018 09:02:57 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803301602.w2UG2vBr068679@pdx.rh.CN85.dnsmgr.net>
Subject: Re: bug triaging (was: Re: svn commit: r331728 - in stable/11/etc: .
 rc.d)
In-Reply-To: <20180330030443.GA15201@lonesome.com>
To: Mark Linimon 
Date: Fri, 30 Mar 2018 09:02:57 -0700 (PDT)
CC: rgrimes@freebsd.org, Ian Lepore ,
 src-committers@freebsd.org, svn-src-stable@freebsd.org,
 svn-src-all@freebsd.org, svn-src-stable-11@freebsd.org,
 Marcelo Araujo 
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 16:03:10 -0000

> This is addressed to developers in general, not just rgrimes, but he
> made the comments, so ...

:-)

> 
> On Thu, Mar 29, 2018 at 09:33:44AM -0700, Rodney W. Grimes wrote:
> > It seems that the Phabricator review system is somewhat dysfunctional
> > in that actual review is only happening in some cases.  Some people
> > have even stated they flat out hate it.
> 
> I will have to state as someone who has spent a great deal of time on
> classifying/triaging bug reports in this project, that the attitude
> that some developers have that "I am not going to use tool xyz" is both
> disheartening and demotivating.  I find it difficult to remember when I
> triage: who it is that will or will not use which tool?

Agreed that this is difficult if not impossible to "remeber",
and imho there should be no reason to have to remeber it.

However we are also faced with the problem of volunteerism,
which means we can not just shove tools down peoples throats.

> Here: the plain facts are that our clearance rate for Phabriactor reviews,
> for both src and doc, are far better than for Bugzilla.  For ports, the
> opposite is true.  These are just facts.

There is probably a statistical relation between externally opened
(non committer) and internally opened (committer) that would answer
the above.  Most, but not all, Phabricator reviews are opened by
committers, where as most Bugzilla reports are opened by others.

The ports bugzillas are usually opened and handed directly to
a port maintainer.  That does not happen for src bugs, which
are generally assigned to a group which ends up with mail to
a list and hopefully someone is interested in fixing or helping
with that bug.  There is also a periodic summary/reminder of these
list assigned bugs, that was off for months (6?), probably causing
some accumulation.

Improvement:  We need to get better and the "take bug" task,
The default action of bugzilla when you take a bug is to remove
the current assigned value, this leads to the bugs dropping
out of view of the mailling list reminder nontices.  It is
documented in the procedures that you should "keep the current
assignee" when taking a bug.   This is not happening.   When
I notice this I was emailing the taker about it, that got some
fixing done, but now I just go in and fix it when I see it
happen, which also lead to some more peopole doing the correct
thing in this area.   What would REALLY fix it would be if
we could either have a "group asignee" and a "personal assignee",
or perhaps fix the "take bug" action to just move the group
address to the CC: list.

> 
> By and large IMHO phab is a plus.  (Disclaimer: I personally hate the
> web interface, it makes me want to pull out my few remaining hairs.)
> But I do not see it going away.  Nor, do I see bugzilla going away.
> Some people like the workflow of the one, some like the other.

Phabricator is a neat tool, I like it and hate it.  Its not the
tool that I tried to take issue with, but the lack of communications
that occurs with the tool as it stands today.  I should probably
learn to use arc, and then I might hate it less.

> > The problem is that most people are not notified that a review
> > of a change is even in process until the commit lands, this is
> > not a functional communications system.
> 
> But many developers also ignore bug reports coming through Bugzilla,
> echoed on the mailing lists.  What is your constructive suggestion
> here?  Do we make subscribing to Phab reviews per src bit mandatory?
> I would support it but imagine I would get a lot of pushback.

Improvement:  Add a "submitter selected" item that says this
Phabricator review belongs to one of the same mailling list
clasifications that you already usually triage the bugs into,
on phabricator SUBMISSION, a one or two line summary of the
review needs to go to a file, at the end of the day these
files get mailled to the appropriate lists.   That would
only create 1 mail per day per clasification.  Or it could
be sent as a single mail, which would be more, but as imp@ says
it is not a huge amount of traffic.  Phabricator has hearald
rules, and I have been trying for a month to get my custom
#bhyvce rule that was requested by the bhyve group promoted
to a global rule.  I have sent mail to phab admin, no response.
I manually add the #bhvye group when I get notice.  There
are a *few* groups, but by and far this just does not create
enough interest in reviews of code, I suspect because people
do not know there is a review up.

> > Requring us all to go sign up like imp@ did to receive all
> > submitted reviews, imho, is also a non functional situation.
> 
> So what is a constructive suggestion?

See above.

> 
> (Fair warning, folks: I won't consider "get rid of Phabricator" or
> "get rid of Bugzilla" as constructive.)

Nor would I.  But we can make improvements.  And I feel the place
to start with improvements is in the area of information flow.
I still assert, most interested parties are not aware of a review
until the commit lands, and that is a communictions problem.

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Fri Mar 30 16:37:09 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF348F7962F;
 Fri, 30 Mar 2018 16:37:09 +0000 (UTC)
 (envelope-from manu@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 5AB2E6FB4B;
 Fri, 30 Mar 2018 16:37:09 +0000 (UTC)
 (envelope-from manu@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4CBB73303;
 Fri, 30 Mar 2018 16:37:09 +0000 (UTC)
 (envelope-from manu@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UGb9Ru015922;
 Fri, 30 Mar 2018 16:37:09 GMT (envelope-from manu@FreeBSD.org)
Received: (from manu@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UGb9Jr015921;
 Fri, 30 Mar 2018 16:37:09 GMT (envelope-from manu@FreeBSD.org)
Message-Id: <201803301637.w2UGb9Jr015921@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: manu set sender to
 manu@FreeBSD.org using -f
From: Emmanuel Vadot 
Date: Fri, 30 Mar 2018 16:37:09 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331767 - head/stand/efi/libefi
X-SVN-Group: head
X-SVN-Commit-Author: manu
X-SVN-Commit-Paths: head/stand/efi/libefi
X-SVN-Commit-Revision: 331767
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 16:37:09 -0000

Author: manu
Date: Fri Mar 30 16:37:08 2018
New Revision: 331767
URL: https://svnweb.freebsd.org/changeset/base/331767

Log:
  efinet: Do not return only if ReceiveFilter fails
  
  If the network interface or the uefi implementation do not support the
  ReceiveFilter interface do not return only and just print a message.
  U-Boot doesn't support is and likely never will. Also even if this fails
  it doesn't mean that network in EFI isn't supported.

Modified:
  head/stand/efi/libefi/efinet.c

Modified: head/stand/efi/libefi/efinet.c
==============================================================================
--- head/stand/efi/libefi/efinet.c	Fri Mar 30 15:28:25 2018	(r331766)
+++ head/stand/efi/libefi/efinet.c	Fri Mar 30 16:37:08 2018	(r331767)
@@ -225,11 +225,9 @@ efinet_init(struct iodesc *desc, void *machdep_hint)
 	    EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST;
 
 	status = net->ReceiveFilters(net, mask, 0, FALSE, 0, NULL);
-	if (status != EFI_SUCCESS) {
+	if (status != EFI_SUCCESS)
 		printf("net%d: cannot set rx. filters (status=%lu)\n",
 		    nif->nif_unit, EFI_ERROR_CODE(status));
-		return;
-	}
 
 #ifdef EFINET_DEBUG
 	dump_mode(net->Mode);

From owner-svn-src-all@freebsd.org  Fri Mar 30 16:44:55 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98424F79DF2;
 Fri, 30 Mar 2018 16:44:55 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 485757031B;
 Fri, 30 Mar 2018 16:44:55 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 400EA34A0;
 Fri, 30 Mar 2018 16:44:55 +0000 (UTC) (envelope-from cem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UGitmN021156;
 Fri, 30 Mar 2018 16:44:55 GMT (envelope-from cem@FreeBSD.org)
Received: (from cem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UGitit021155;
 Fri, 30 Mar 2018 16:44:55 GMT (envelope-from cem@FreeBSD.org)
Message-Id: <201803301644.w2UGitit021155@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org
 using -f
From: Conrad Meyer 
Date: Fri, 30 Mar 2018 16:44:55 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331768 - head/sys/dev/ocs_fc
X-SVN-Group: head
X-SVN-Commit-Author: cem
X-SVN-Commit-Paths: head/sys/dev/ocs_fc
X-SVN-Commit-Revision: 331768
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 16:44:55 -0000

Author: cem
Date: Fri Mar 30 16:44:54 2018
New Revision: 331768
URL: https://svnweb.freebsd.org/changeset/base/331768

Log:
  ocs_fc(4): Fix GCC build (-Wredundant-decls)
  
  These objects are defined earlier in the same file; an extern declaration
  after definition is redundant.
  
  Broken in r331766 (introduction of ocs_fc(4)).
  
  Sponsored by:	Dell EMC Isilon

Modified:
  head/sys/dev/ocs_fc/sli4.c

Modified: head/sys/dev/ocs_fc/sli4.c
==============================================================================
--- head/sys/dev/ocs_fc/sli4.c	Fri Mar 30 16:37:08 2018	(r331767)
+++ head/sys/dev/ocs_fc/sli4.c	Fri Mar 30 16:44:54 2018	(r331768)
@@ -5758,9 +5758,6 @@ int32_t sli_link_is_configurable(sli4_t *sli)
 
 /* vim: set noexpandtab textwidth=120: */
 
-extern const char *SLI_QNAME[];
-extern const sli4_reg_t regmap[SLI4_REG_MAX][SLI4_MAX_IF_TYPES];
-
 /**
  * @ingroup sli_fc
  * @brief Write an FCOE_WQ_CREATE command.

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:06:32 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F729F52582;
 Fri, 30 Mar 2018 18:06:31 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 2A1B67363A;
 Fri, 30 Mar 2018 18:06:31 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1D5784635;
 Fri, 30 Mar 2018 18:06:31 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UI6VwJ061099;
 Fri, 30 Mar 2018 18:06:31 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UI6U61061086;
 Fri, 30 Mar 2018 18:06:30 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301806.w2UI6U61061086@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:06:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331769 - in stable/11: . contrib/ofed
 contrib/ofed/include contrib/ofed/include/infiniband
 contrib/ofed/include/rdma contrib/ofed/infiniband-diags contrib/ofed/libcxgb4
 contrib/ofed/li...
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11: . contrib/ofed contrib/ofed/include
 contrib/ofed/include/infiniband contrib/ofed/include/rdma
 contrib/ofed/infiniband-diags contrib/ofed/libcxgb4 contrib/ofed/libcxgb4/src
 contrib/ofed/l...
X-SVN-Commit-Revision: 331769
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:06:32 -0000

Author: hselasky
Date: Fri Mar 30 18:06:29 2018
New Revision: 331769
URL: https://svnweb.freebsd.org/changeset/base/331769

Log:
  MFC r303505, r303506, r303512, r303513, r303646, r320418, r323082,
  r326169, r326563, r326649, r326716, r326764, r326765 and r329222:
  
  RoCE/infiniband/iWarp upgrade to Linux 4.9 for kernel and userspace.
  This commit merges projects/bsd_rdma_4_9 to 11-stable.
  
  Compatibility wrappers have been made for existing 11-stable ibcore
  APIs, including ib_reg_phys_mr().
  Refer to "sys/ofed/include/rdma/ib_verbs_compat.h" for more information.
  
  The iw_cxgb driver has not been updated and has been disconnected from
  the build.
  
  Sponsored by:   Mellanox Technologies
  
  MFC r326169 and r326563:
  RoCE/infiniband upgrade to Linux v4.9 for kernel and userspace.
  
  List of kernel sources used:
  ============================
  
  1) kernel sources were cloned from git://github.com/torvalds/linux.git
  Top commit 69973b830859bc6529a7a0468ba0d80ee5117826 - tag: v4.9, linux-4.9
  
  2) krping was cloned from https://github.com/larrystevenwise/krping
  Top commit 292a2f1abf0348285e678a82264740d52e4dcfe4
  
  List of userspace sources used:
  ===============================
  
  1) rdma-core was cloned from https://github.com/linux-rdma/rdma-core.git
  Top commit d65138ef93af30b3ea249f3a84aa6a24ba7f8a75
  
  2) OpenSM was cloned from git://git.openfabrics.org/~halr/opensm.git
  Top commit 85f841cf209f791c89a075048a907020e924528d
  
  3) libibmad was cloned from git://git.openfabrics.org/~iraweiny/libibmad.git
  Tag 1.3.13 with some additional patches from Mellanox.
  
  4) infiniband-diags was cloned from git://git.openfabrics.org/~iraweiny/infiniband-diags.git
  Tag 1.6.7 with some additional patches from Mellanox.
  
  NOTES:
  ======
  
  1) The mthca driver has been removed from userspace.
  2) All GPLv2 only sources have been removed and where applicable
     rewritten from scratch under a BSD license.
  3) List of fully supported drivers in userspace and kernel:
     a) iw_cxgbe (Chelsio)
     b) mlx4ib (Mellanox)
     c) mlx5ib (Mellanox)
  4) WITH_OFED=YES is still required by make in order to build
     OFED userspace and kernel code.
  5) Full support has been added for routable RoCE, RoCE v2.
  
  MFC r326649:
  Disconnect OFED after r326169 broke all DIRDEPS support for it.
  
  MFC r326716:
  Correctly define the unordered_map namespace in ofed/libibnetdisc .
  
  This should fix ofed/libibnetdisc compilation with C-compilers
  different from clang and GCC v4.2.1.
  
  Submitted by:   kib
  Sponsored by:   Mellanox Technologies
  
  MFC r326764:
  ofed: Remove duplicated symbols from the version file.
  
  ld.bfd accepts multiple listing of the same symbol in the version script.
  lld is stricter and errors out.  Since arm64 and sometimes amd64 use lld,
  we should correct this cosmetic issue.
  
  Sponsored by:   Mellanox Technologies
  Reviewed by:    hselasky
  Differential revision:  https://reviews.freebsd.org/D13329
  
  MFC r326765:
  ofed: Define barriers for mips and arm.
  
  I used the strongest barriers available on the architectures, so if
  the future analysis show that it is excessive, the barriers could be
  relaxed. Still, it is unlikely that it is meaningful to run IB on 32bit
  ARM or current MIPS machines, so the change is to make WITH_OFED to pass
  tinderbox.
  
  Sponsored by:   Mellanox Technologies
  Reviewed by:    hselasky
  Differential revision:  https://reviews.freebsd.org/D13329
  
  MFC r303505:
  sdp: Use an mbufq for received control packets.
  
  This is simpler than the hand-rolled queue, and fixes a use-after-free.
  
  Sponsored by:   EMC / Isilon Storage Division
  
  MFC r303506:
  sdp: Destroy the PCB lock before freeing to the zone.
  
  Sponsored by:   EMC / Isilon Storage Division
  
  MFC r303512:
  sdp: Use malloc(9) instead of the Linux compat layer.
  
  SDP transmit and receive rings are always created in a sleepable context,
  so we can use M_WAITOK and remove error checks.
  
  Sponsored by:   EMC / Isilon Storage Division
  
  MFC r303513:
  sdp: Destroy the RDMA ID after destroying the connection's queue pair.
  
  This is the ordering documented by rdma_destroy_qp(). Also add a useful
  KASSERT to sdp_pcbfree().
  
  Sponsored by:   EMC / Isilon Storage Division
  
  MFC r303646:
  ipoib: Bound the number of egress mbufs buffered during pathrec lookups.
  
  In pathological situations where the master subnet manager becomes
  unresponsive for an extended period, we may otherwise end up queuing all
  of the system's mbufs while waiting for a response to a path record lookup.
  
  This addresses the same issue as commit 1e85b806f9 in Linux.
  
  Reviewed by:    cem, ngie
  Sponsored by:   EMC / Isilon Storage Division
  
  MFC r329222:
  Import the mthca kernel side infiniband driver from Linux 4.9 and fix
  compilation under FreeBSD. The mthca driver was temporarily removed as
  part of the Linux 4.9 RoCE/infinband upgrade.
  
  Top commit in Linux source tree:
  69973b830859bc6529a7a0468ba0d80ee5117826
  
  Sponsored by:   Mellanox Technologies
  
  MFC r320418.  Note that the socket lock _is_ the same as so_rcv's lock
  in 11 and this is a no-op in this branch.
  
  Sponsored by:   Chelsio Communications
  
  MFC r323082:
  cxgbe/iw_cxgbe: Set TCP_NODELAY before initiating connection so that
  t4_tom picks it up right away.  This is less work than waiting for
  the connection to be established before applying the setting.
  
  Sponsored by:   Chelsio Communications

Added:
  stable/11/contrib/ofed/include/byteorder.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/byteorder.h
  stable/11/contrib/ofed/include/byteswap.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/byteswap.h
  stable/11/contrib/ofed/include/endian.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/endian.h
  stable/11/contrib/ofed/include/types.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/types.h
  stable/11/contrib/ofed/include/udma_barrier.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/udma_barrier.h
  stable/11/contrib/ofed/infiniband-diags/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/infiniband-diags/
  stable/11/contrib/ofed/libcxgb4/Makefile
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/Makefile
  stable/11/contrib/ofed/libcxgb4/config.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/config.h
  stable/11/contrib/ofed/libcxgb4/cq.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/cq.c
  stable/11/contrib/ofed/libcxgb4/cxgb4-abi.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/cxgb4-abi.h
  stable/11/contrib/ofed/libcxgb4/dev.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/dev.c
  stable/11/contrib/ofed/libcxgb4/libcxgb4.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/libcxgb4.h
  stable/11/contrib/ofed/libcxgb4/qp.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/qp.c
  stable/11/contrib/ofed/libcxgb4/t4.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/t4.h
  stable/11/contrib/ofed/libcxgb4/t4_chip_type.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/t4_chip_type.h
  stable/11/contrib/ofed/libcxgb4/t4_pci_id_tbl.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/t4_pci_id_tbl.h
  stable/11/contrib/ofed/libcxgb4/t4_regs.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/t4_regs.h
  stable/11/contrib/ofed/libcxgb4/t4fw_api.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/t4fw_api.h
  stable/11/contrib/ofed/libcxgb4/t4fw_ri_api.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/t4fw_ri_api.h
  stable/11/contrib/ofed/libcxgb4/verbs.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/verbs.c
  stable/11/contrib/ofed/libibcm/Makefile
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibcm/Makefile
  stable/11/contrib/ofed/libibcm/cm.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibcm/cm.c
  stable/11/contrib/ofed/libibcm/cm.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibcm/cm.h
  stable/11/contrib/ofed/libibcm/cm_abi.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibcm/cm_abi.h
  stable/11/contrib/ofed/libibcm/config.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibcm/config.h
  stable/11/contrib/ofed/libibcm/libibcm.map
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibcm/libibcm.map
  stable/11/contrib/ofed/libibmad/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibmad/
  stable/11/contrib/ofed/libibnetdisc/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibnetdisc/
  stable/11/contrib/ofed/libibumad/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibumad/
  stable/11/contrib/ofed/libibverbs/Makefile
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/Makefile
  stable/11/contrib/ofed/libibverbs/alloca.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/alloca.h
  stable/11/contrib/ofed/libibverbs/arch.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/arch.h
  stable/11/contrib/ofed/libibverbs/cmd.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/cmd.c
  stable/11/contrib/ofed/libibverbs/compat-1_0.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/compat-1_0.c
  stable/11/contrib/ofed/libibverbs/config.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/config.h
  stable/11/contrib/ofed/libibverbs/device.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/device.c
  stable/11/contrib/ofed/libibverbs/driver.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/driver.h
  stable/11/contrib/ofed/libibverbs/enum_strs.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/enum_strs.c
  stable/11/contrib/ofed/libibverbs/examples/build/devices/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/examples/build/devices/
  stable/11/contrib/ofed/libibverbs/examples/xsrq_pingpong.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/examples/xsrq_pingpong.c
  stable/11/contrib/ofed/libibverbs/ibverbs.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/ibverbs.h
  stable/11/contrib/ofed/libibverbs/init.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/init.c
  stable/11/contrib/ofed/libibverbs/kern-abi.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/kern-abi.h
  stable/11/contrib/ofed/libibverbs/libibverbs.map
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/libibverbs.map
  stable/11/contrib/ofed/libibverbs/man/ibv_alloc_mw.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_alloc_mw.3
  stable/11/contrib/ofed/libibverbs/man/ibv_bind_mw.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_bind_mw.3
  stable/11/contrib/ofed/libibverbs/man/ibv_create_cq_ex.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_create_cq_ex.3
  stable/11/contrib/ofed/libibverbs/man/ibv_create_flow.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_create_flow.3
  stable/11/contrib/ofed/libibverbs/man/ibv_create_qp_ex.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_create_qp_ex.3
  stable/11/contrib/ofed/libibverbs/man/ibv_create_rwq_ind_table.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_create_rwq_ind_table.3
  stable/11/contrib/ofed/libibverbs/man/ibv_create_srq_ex.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_create_srq_ex.3
  stable/11/contrib/ofed/libibverbs/man/ibv_create_wq.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_create_wq.3
  stable/11/contrib/ofed/libibverbs/man/ibv_get_srq_num.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_get_srq_num.3
  stable/11/contrib/ofed/libibverbs/man/ibv_inc_rkey.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_inc_rkey.3
  stable/11/contrib/ofed/libibverbs/man/ibv_modify_wq.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_modify_wq.3
  stable/11/contrib/ofed/libibverbs/man/ibv_open_qp.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_open_qp.3
  stable/11/contrib/ofed/libibverbs/man/ibv_open_xrcd.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_open_xrcd.3
  stable/11/contrib/ofed/libibverbs/man/ibv_query_device_ex.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_query_device_ex.3
  stable/11/contrib/ofed/libibverbs/man/ibv_query_rt_values_ex.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_query_rt_values_ex.3
  stable/11/contrib/ofed/libibverbs/man/ibv_rate_to_mbps.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_rate_to_mbps.3
  stable/11/contrib/ofed/libibverbs/man/ibv_rereg_mr.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_rereg_mr.3
  stable/11/contrib/ofed/libibverbs/man/ibv_xsrq_pingpong.1
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/man/ibv_xsrq_pingpong.1
  stable/11/contrib/ofed/libibverbs/marshall.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/marshall.c
  stable/11/contrib/ofed/libibverbs/marshall.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/marshall.h
  stable/11/contrib/ofed/libibverbs/memory.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/memory.c
  stable/11/contrib/ofed/libibverbs/neigh.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/neigh.c
  stable/11/contrib/ofed/libibverbs/neigh.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/neigh.h
  stable/11/contrib/ofed/libibverbs/nl1_compat.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/nl1_compat.h
  stable/11/contrib/ofed/libibverbs/opcode.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/opcode.h
  stable/11/contrib/ofed/libibverbs/sa-kern-abi.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/sa-kern-abi.h
  stable/11/contrib/ofed/libibverbs/sa.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/sa.h
  stable/11/contrib/ofed/libibverbs/sysfs.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/sysfs.c
  stable/11/contrib/ofed/libibverbs/verbs.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/verbs.c
  stable/11/contrib/ofed/libibverbs/verbs.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libibverbs/verbs.h
  stable/11/contrib/ofed/libmlx4/Makefile
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/Makefile
  stable/11/contrib/ofed/libmlx4/buf.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/buf.c
  stable/11/contrib/ofed/libmlx4/config.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/config.h
  stable/11/contrib/ofed/libmlx4/cq.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/cq.c
  stable/11/contrib/ofed/libmlx4/dbrec.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/dbrec.c
  stable/11/contrib/ofed/libmlx4/doorbell.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/doorbell.h
  stable/11/contrib/ofed/libmlx4/mlx4-abi.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/mlx4-abi.h
  stable/11/contrib/ofed/libmlx4/mlx4.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/mlx4.c
  stable/11/contrib/ofed/libmlx4/mlx4.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/mlx4.h
  stable/11/contrib/ofed/libmlx4/mmio.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/mmio.h
  stable/11/contrib/ofed/libmlx4/qp.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/qp.c
  stable/11/contrib/ofed/libmlx4/srq.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/srq.c
  stable/11/contrib/ofed/libmlx4/verbs.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/verbs.c
  stable/11/contrib/ofed/libmlx4/wqe.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx4/wqe.h
  stable/11/contrib/ofed/libmlx5/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libmlx5/
  stable/11/contrib/ofed/librdmacm/Makefile
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/Makefile
  stable/11/contrib/ofed/librdmacm/acm.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/acm.c
  stable/11/contrib/ofed/librdmacm/addrinfo.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/addrinfo.c
  stable/11/contrib/ofed/librdmacm/cma.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/cma.c
  stable/11/contrib/ofed/librdmacm/cma.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/cma.h
  stable/11/contrib/ofed/librdmacm/config.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/config.h
  stable/11/contrib/ofed/librdmacm/examples/build/ucmatose/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/build/ucmatose/
  stable/11/contrib/ofed/librdmacm/examples/cmtime.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/cmtime.c
  stable/11/contrib/ofed/librdmacm/examples/common.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/common.c
  stable/11/contrib/ofed/librdmacm/examples/common.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/common.h
  stable/11/contrib/ofed/librdmacm/examples/rcopy.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/rcopy.c
  stable/11/contrib/ofed/librdmacm/examples/rdma_client.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/rdma_client.c
  stable/11/contrib/ofed/librdmacm/examples/rdma_server.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/rdma_server.c
  stable/11/contrib/ofed/librdmacm/examples/rdma_xclient.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/rdma_xclient.c
  stable/11/contrib/ofed/librdmacm/examples/rdma_xserver.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/rdma_xserver.c
  stable/11/contrib/ofed/librdmacm/examples/riostream.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/riostream.c
  stable/11/contrib/ofed/librdmacm/examples/rstream.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/rstream.c
  stable/11/contrib/ofed/librdmacm/examples/udpong.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/examples/udpong.c
  stable/11/contrib/ofed/librdmacm/ib.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/ib.h
  stable/11/contrib/ofed/librdmacm/indexer.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/indexer.c
  stable/11/contrib/ofed/librdmacm/indexer.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/indexer.h
  stable/11/contrib/ofed/librdmacm/librdmacm.map
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/librdmacm.map
  stable/11/contrib/ofed/librdmacm/librspreload.map
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/librspreload.map
  stable/11/contrib/ofed/librdmacm/man/CMakeLists.txt
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/CMakeLists.txt
  stable/11/contrib/ofed/librdmacm/man/cmtime.1
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/cmtime.1
  stable/11/contrib/ofed/librdmacm/man/rcopy.1
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rcopy.1
  stable/11/contrib/ofed/librdmacm/man/rdma_client.1
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_client.1
  stable/11/contrib/ofed/librdmacm/man/rdma_create_ep.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_create_ep.3
  stable/11/contrib/ofed/librdmacm/man/rdma_create_srq.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_create_srq.3
  stable/11/contrib/ofed/librdmacm/man/rdma_dereg_mr.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_dereg_mr.3
  stable/11/contrib/ofed/librdmacm/man/rdma_destroy_ep.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_destroy_ep.3
  stable/11/contrib/ofed/librdmacm/man/rdma_destroy_srq.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_destroy_srq.3
  stable/11/contrib/ofed/librdmacm/man/rdma_get_recv_comp.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_get_recv_comp.3
  stable/11/contrib/ofed/librdmacm/man/rdma_get_request.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_get_request.3
  stable/11/contrib/ofed/librdmacm/man/rdma_get_send_comp.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_get_send_comp.3
  stable/11/contrib/ofed/librdmacm/man/rdma_getaddrinfo.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_getaddrinfo.3
  stable/11/contrib/ofed/librdmacm/man/rdma_post_read.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_post_read.3
  stable/11/contrib/ofed/librdmacm/man/rdma_post_readv.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_post_readv.3
  stable/11/contrib/ofed/librdmacm/man/rdma_post_recv.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_post_recv.3
  stable/11/contrib/ofed/librdmacm/man/rdma_post_recvv.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_post_recvv.3
  stable/11/contrib/ofed/librdmacm/man/rdma_post_send.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_post_send.3
  stable/11/contrib/ofed/librdmacm/man/rdma_post_sendv.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_post_sendv.3
  stable/11/contrib/ofed/librdmacm/man/rdma_post_ud_send.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_post_ud_send.3
  stable/11/contrib/ofed/librdmacm/man/rdma_post_write.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_post_write.3
  stable/11/contrib/ofed/librdmacm/man/rdma_post_writev.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_post_writev.3
  stable/11/contrib/ofed/librdmacm/man/rdma_reg_msgs.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_reg_msgs.3
  stable/11/contrib/ofed/librdmacm/man/rdma_reg_read.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_reg_read.3
  stable/11/contrib/ofed/librdmacm/man/rdma_reg_write.3
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_reg_write.3
  stable/11/contrib/ofed/librdmacm/man/rdma_server.1
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_server.1
  stable/11/contrib/ofed/librdmacm/man/rdma_xclient.1
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_xclient.1
  stable/11/contrib/ofed/librdmacm/man/rdma_xserver.1
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rdma_xserver.1
  stable/11/contrib/ofed/librdmacm/man/riostream.1
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/riostream.1
  stable/11/contrib/ofed/librdmacm/man/rsocket.7.in
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rsocket.7.in
  stable/11/contrib/ofed/librdmacm/man/rstream.1
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/rstream.1
  stable/11/contrib/ofed/librdmacm/man/udpong.1
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/man/udpong.1
  stable/11/contrib/ofed/librdmacm/preload.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/preload.c
  stable/11/contrib/ofed/librdmacm/rdma_cma.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/rdma_cma.h
  stable/11/contrib/ofed/librdmacm/rdma_cma_abi.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/rdma_cma_abi.h
  stable/11/contrib/ofed/librdmacm/rdma_verbs.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/rdma_verbs.h
  stable/11/contrib/ofed/librdmacm/rsocket.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/rsocket.c
  stable/11/contrib/ofed/librdmacm/rsocket.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/librdmacm/rsocket.h
  stable/11/contrib/ofed/opensm/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/opensm/
  stable/11/contrib/ofed/usr.lib/0/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/usr.lib/0/
  stable/11/contrib/ofed/usr.lib/1/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/usr.lib/1/
  stable/11/contrib/ofed/usr.lib/2/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/usr.lib/2/
  stable/11/contrib/ofed/usr.lib/3/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/usr.lib/3/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/sys/contrib/rdma/krping_compat/
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_gsi.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/dev/mlx5/mlx5_ib/mlx5_ib_gsi.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_virt.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/dev/mlx5/mlx5_ib/mlx5_ib_virt.c
  stable/11/sys/dev/mthca/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/sys/dev/mthca/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/sys/modules/rdma/krping_compat/
  stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_addr.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_agent.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_agent.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_cache.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_cm.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_cm.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_cma.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_cq.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_cq.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_device.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_device.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_fmr_pool.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_fmr_pool.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_iwcm.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_iwcm.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_iwpm_msg.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_iwpm_msg.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_iwpm_util.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_iwpm_util.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_mad.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_mad.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_mad_rmpp.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_mad_rmpp.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_multicast.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_multicast.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_packer.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_packer.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_sa_query.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_sa_query.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_smi.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_smi.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_sysfs.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_sysfs.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_ucm.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_ucm.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_ucma.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_ucma.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_ud_header.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_ud_header.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_umem.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_umem.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_umem_odp.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_umem_odp.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_umem_rbtree.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_umem_rbtree.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_user_mad.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_user_mad.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_cmd.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_uverbs_cmd.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_main.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_uverbs_main.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_marshall.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_uverbs_marshall.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/ib_verbs.c
  stable/11/sys/ofed/drivers/infiniband/core/iwpm_util.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/iwpm_util.h
  stable/11/sys/ofed/drivers/infiniband/core/opa_smi.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/drivers/infiniband/core/opa_smi.h
  stable/11/sys/ofed/include/rdma/ib.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/rdma/ib.h
  stable/11/sys/ofed/include/rdma/ib_hdrs.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/rdma/ib_hdrs.h
  stable/11/sys/ofed/include/rdma/ib_umem_odp.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/rdma/ib_umem_odp.h
  stable/11/sys/ofed/include/rdma/ib_verbs_compat.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/rdma/ib_verbs_compat.h
  stable/11/sys/ofed/include/rdma/iw_portmap.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/rdma/iw_portmap.h
  stable/11/sys/ofed/include/rdma/opa_port_info.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/rdma/opa_port_info.h
  stable/11/sys/ofed/include/rdma/opa_smi.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/rdma/opa_smi.h
  stable/11/sys/ofed/include/rdma/rdma_vt.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/rdma/rdma_vt.h
  stable/11/sys/ofed/include/rdma/rdmavt_cq.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/rdma/rdmavt_cq.h
  stable/11/sys/ofed/include/rdma/rdmavt_mr.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/rdma/rdmavt_mr.h
  stable/11/sys/ofed/include/rdma/rdmavt_qp.h
     - copied unchanged from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/rdma/rdmavt_qp.h
  stable/11/sys/ofed/include/uapi/
     - copied from r331758, projects/bsd_rdma_4_9_stable_11/sys/ofed/include/uapi/
Directory Properties:
  stable/11/sys/contrib/rdma/krping_compat/   (props changed)
  stable/11/sys/modules/rdma/krping_compat/   (props changed)
Deleted:
  stable/11/contrib/ofed/include/infiniband/
  stable/11/contrib/ofed/include/rdma/
  stable/11/contrib/ofed/libcxgb4/AUTHORS
  stable/11/contrib/ofed/libcxgb4/COPYING
  stable/11/contrib/ofed/libcxgb4/ChangeLog
  stable/11/contrib/ofed/libcxgb4/README
  stable/11/contrib/ofed/libcxgb4/cxgb4.driver
  stable/11/contrib/ofed/libcxgb4/src/
  stable/11/contrib/ofed/libibcm/AUTHORS
  stable/11/contrib/ofed/libibcm/COPYING
  stable/11/contrib/ofed/libibcm/ChangeLog
  stable/11/contrib/ofed/libibcm/INSTALL
  stable/11/contrib/ofed/libibcm/Makefile.am
  stable/11/contrib/ofed/libibcm/Makefile.in
  stable/11/contrib/ofed/libibcm/NEWS
  stable/11/contrib/ofed/libibcm/README
  stable/11/contrib/ofed/libibcm/aclocal.m4
  stable/11/contrib/ofed/libibcm/config/
  stable/11/contrib/ofed/libibcm/config.h.in
  stable/11/contrib/ofed/libibcm/configure
  stable/11/contrib/ofed/libibcm/configure.in
  stable/11/contrib/ofed/libibcm/include/
  stable/11/contrib/ofed/libibcm/libibcm.spec
  stable/11/contrib/ofed/libibcm/libibcm.spec.in
  stable/11/contrib/ofed/libibcm/src/
  stable/11/contrib/ofed/libibverbs/AUTHORS
  stable/11/contrib/ofed/libibverbs/COPYING
  stable/11/contrib/ofed/libibverbs/ChangeLog
  stable/11/contrib/ofed/libibverbs/Makefile.am
  stable/11/contrib/ofed/libibverbs/README
  stable/11/contrib/ofed/libibverbs/autogen.sh
  stable/11/contrib/ofed/libibverbs/config/
  stable/11/contrib/ofed/libibverbs/configure.in
  stable/11/contrib/ofed/libibverbs/debian/
  stable/11/contrib/ofed/libibverbs/examples/build/device_list/
  stable/11/contrib/ofed/libibverbs/fixes/
  stable/11/contrib/ofed/libibverbs/include/
  stable/11/contrib/ofed/libibverbs/libibverbs.spec.in
  stable/11/contrib/ofed/libibverbs/man/ibv_create_xrc_rcv_qp.3
  stable/11/contrib/ofed/libibverbs/man/ibv_modify_xrc_rcv_qp.3
  stable/11/contrib/ofed/libibverbs/man/ibv_open_xrc_domain.3
  stable/11/contrib/ofed/libibverbs/man/ibv_query_xrc_rcv_qp.3
  stable/11/contrib/ofed/libibverbs/man/ibv_reg_xrc_rcv_qp.3
  stable/11/contrib/ofed/libibverbs/man/verbs.7
  stable/11/contrib/ofed/libibverbs/src/
  stable/11/contrib/ofed/libmlx4/AUTHORS
  stable/11/contrib/ofed/libmlx4/COPYING
  stable/11/contrib/ofed/libmlx4/Makefile.am
  stable/11/contrib/ofed/libmlx4/README
  stable/11/contrib/ofed/libmlx4/autogen.sh
  stable/11/contrib/ofed/libmlx4/config/
  stable/11/contrib/ofed/libmlx4/configure.in
  stable/11/contrib/ofed/libmlx4/debian/
  stable/11/contrib/ofed/libmlx4/fixes/
  stable/11/contrib/ofed/libmlx4/libmlx4.spec.in
  stable/11/contrib/ofed/libmlx4/mlx4.driver
  stable/11/contrib/ofed/libmlx4/src/
  stable/11/contrib/ofed/libmthca/
  stable/11/contrib/ofed/librdmacm/AUTHORS
  stable/11/contrib/ofed/librdmacm/COPYING
  stable/11/contrib/ofed/librdmacm/ChangeLog
  stable/11/contrib/ofed/librdmacm/INSTALL
  stable/11/contrib/ofed/librdmacm/Makefile.am
  stable/11/contrib/ofed/librdmacm/Makefile.in
  stable/11/contrib/ofed/librdmacm/NEWS
  stable/11/contrib/ofed/librdmacm/README
  stable/11/contrib/ofed/librdmacm/aclocal.m4
  stable/11/contrib/ofed/librdmacm/config/
  stable/11/contrib/ofed/librdmacm/config.h.in
  stable/11/contrib/ofed/librdmacm/configure
  stable/11/contrib/ofed/librdmacm/configure.in
  stable/11/contrib/ofed/librdmacm/examples/build/cmatose/
  stable/11/contrib/ofed/librdmacm/include/
  stable/11/contrib/ofed/librdmacm/librdmacm.spec
  stable/11/contrib/ofed/librdmacm/librdmacm.spec.in
  stable/11/contrib/ofed/librdmacm/src/
  stable/11/contrib/ofed/libsdp/
  stable/11/contrib/ofed/management/
  stable/11/contrib/ofed/usr.bin/Makefile.inc
  stable/11/contrib/ofed/usr.bin/ibaddr/
  stable/11/contrib/ofed/usr.bin/ibnetdiscover/
  stable/11/contrib/ofed/usr.bin/ibping/
  stable/11/contrib/ofed/usr.bin/ibportstate/
  stable/11/contrib/ofed/usr.bin/ibroute/
  stable/11/contrib/ofed/usr.bin/ibsendtrap/
  stable/11/contrib/ofed/usr.bin/ibstat/
  stable/11/contrib/ofed/usr.bin/ibsysstat/
  stable/11/contrib/ofed/usr.bin/ibtracert/
  stable/11/contrib/ofed/usr.bin/opensm/
  stable/11/contrib/ofed/usr.bin/osmtest/
  stable/11/contrib/ofed/usr.bin/perfquery/
  stable/11/contrib/ofed/usr.bin/saquery/
  stable/11/contrib/ofed/usr.bin/sminfo/
  stable/11/contrib/ofed/usr.bin/smpdump/
  stable/11/contrib/ofed/usr.bin/smpquery/
  stable/11/contrib/ofed/usr.bin/vendstat/
  stable/11/contrib/ofed/usr.lib/Makefile.inc
  stable/11/contrib/ofed/usr.lib/libcxgb4/
  stable/11/contrib/ofed/usr.lib/libibcm/
  stable/11/contrib/ofed/usr.lib/libibcommon/
  stable/11/contrib/ofed/usr.lib/libibmad/
  stable/11/contrib/ofed/usr.lib/libibumad/
  stable/11/contrib/ofed/usr.lib/libibverbs/
  stable/11/contrib/ofed/usr.lib/libmlx4/
  stable/11/contrib/ofed/usr.lib/libmthca/
  stable/11/contrib/ofed/usr.lib/libopensm/
  stable/11/contrib/ofed/usr.lib/libosmcomp/
  stable/11/contrib/ofed/usr.lib/libosmvendor/
  stable/11/contrib/ofed/usr.lib/librdmacm/
  stable/11/contrib/ofed/usr.lib/libsdp/
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_exp.h
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_exp.c
  stable/11/sys/dev/mlx4/mlx4_ib/user.h
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_roce.c
  stable/11/sys/dev/mlx5/mlx5_ib/user.h
  stable/11/sys/ofed/drivers/infiniband/Kconfig
  stable/11/sys/ofed/drivers/infiniband/Makefile
  stable/11/sys/ofed/drivers/infiniband/core/addr.c
  stable/11/sys/ofed/drivers/infiniband/core/agent.c
  stable/11/sys/ofed/drivers/infiniband/core/cache.c
  stable/11/sys/ofed/drivers/infiniband/core/cm.c
  stable/11/sys/ofed/drivers/infiniband/core/cma.c
  stable/11/sys/ofed/drivers/infiniband/core/device.c
  stable/11/sys/ofed/drivers/infiniband/core/fmr_pool.c
  stable/11/sys/ofed/drivers/infiniband/core/iwcm.c
  stable/11/sys/ofed/drivers/infiniband/core/mad.c
  stable/11/sys/ofed/drivers/infiniband/core/mad_rmpp.c
  stable/11/sys/ofed/drivers/infiniband/core/multicast.c
  stable/11/sys/ofed/drivers/infiniband/core/packer.c
  stable/11/sys/ofed/drivers/infiniband/core/peer_mem.c
  stable/11/sys/ofed/drivers/infiniband/core/sa_query.c
  stable/11/sys/ofed/drivers/infiniband/core/smi.c
  stable/11/sys/ofed/drivers/infiniband/core/sysfs.c
  stable/11/sys/ofed/drivers/infiniband/core/ucm.c
  stable/11/sys/ofed/drivers/infiniband/core/ucma.c
  stable/11/sys/ofed/drivers/infiniband/core/ud_header.c
  stable/11/sys/ofed/drivers/infiniband/core/umem.c
  stable/11/sys/ofed/drivers/infiniband/core/user_mad.c
  stable/11/sys/ofed/drivers/infiniband/core/uverbs_cmd.c
  stable/11/sys/ofed/drivers/infiniband/core/uverbs_main.c
  stable/11/sys/ofed/drivers/infiniband/core/uverbs_marshall.c
  stable/11/sys/ofed/drivers/infiniband/core/verbs.c
  stable/11/sys/ofed/drivers/infiniband/debug/Makefile
  stable/11/sys/ofed/drivers/infiniband/debug/memtrack.c
  stable/11/sys/ofed/drivers/infiniband/debug/memtrack.h
  stable/11/sys/ofed/drivers/infiniband/debug/mtrack.h
  stable/11/sys/ofed/drivers/infiniband/hw/
  stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/Kconfig
  stable/11/sys/ofed/drivers/infiniband/util/Kconfig
  stable/11/sys/ofed/include/rdma/ib_peer_mem.h
  stable/11/sys/ofed/include/rdma/ib_user_cm.h
  stable/11/sys/ofed/include/rdma/ib_user_mad.h
  stable/11/sys/ofed/include/rdma/ib_user_sa.h
  stable/11/sys/ofed/include/rdma/ib_user_verbs.h
  stable/11/sys/ofed/include/rdma/ib_user_verbs_exp.h
  stable/11/sys/ofed/include/rdma/ib_verbs_exp.h
  stable/11/sys/ofed/include/rdma/peer_mem.h
  stable/11/sys/ofed/include/rdma/rdma_user_cm.h
  stable/11/sys/ofed/include/rdma/sdp_socket.h
Modified:
  stable/11/Makefile.inc1
  stable/11/contrib/ofed/Makefile   (contents, props changed)
  stable/11/contrib/ofed/include/Makefile   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/asyncwatch.c   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/build/Makefile   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/build/Makefile.inc   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/build/asyncwatch/Makefile   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/build/devinfo/Makefile   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/build/rc_pingpong/Makefile   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/build/srq_pingpong/Makefile   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/build/uc_pingpong/Makefile   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/build/ud_pingpong/Makefile   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/device_list.c   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/devinfo.c   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/pingpong.c   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/pingpong.h   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/rc_pingpong.c   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/srq_pingpong.c   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/uc_pingpong.c   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/examples/ud_pingpong.c   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_alloc_pd.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_asyncwatch.1   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_attach_mcast.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_create_ah.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_create_ah_from_wc.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_create_comp_channel.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_create_cq.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_create_qp.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_create_srq.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_devices.1   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_devinfo.1   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_event_type_str.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_fork_init.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_get_async_event.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_get_cq_event.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_get_device_guid.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_get_device_list.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_get_device_name.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_modify_qp.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_modify_srq.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_open_device.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_poll_cq.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_post_recv.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_post_send.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_post_srq_recv.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_query_device.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_query_gid.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_query_pkey.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_query_port.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_query_qp.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_query_srq.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_rate_to_mult.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_rc_pingpong.1   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_reg_mr.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_req_notify_cq.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_resize_cq.3   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_srq_pingpong.1   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_uc_pingpong.1   (contents, props changed)
  stable/11/contrib/ofed/libibverbs/man/ibv_ud_pingpong.1   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/examples/build/Makefile   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/examples/build/Makefile.inc   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/examples/build/mckey/Makefile   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/examples/build/rping/Makefile   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/examples/build/udaddy/Makefile   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/examples/cmatose.c   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/examples/mckey.c   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/examples/rping.c   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/examples/udaddy.c   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/mckey.1   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_accept.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_ack_cm_event.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_bind_addr.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_cm.7   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_connect.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_create_event_channel.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_create_id.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_create_qp.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_destroy_event_channel.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_destroy_id.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_destroy_qp.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_disconnect.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_event_str.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_free_devices.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_get_cm_event.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_get_devices.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_get_dst_port.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_get_local_addr.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_get_peer_addr.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_get_src_port.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_join_multicast.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_leave_multicast.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_listen.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_migrate_id.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_notify.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_reject.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_resolve_addr.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_resolve_route.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rdma_set_option.3   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/rping.1   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/ucmatose.1   (contents, props changed)
  stable/11/contrib/ofed/librdmacm/man/udaddy.1   (contents, props changed)
  stable/11/contrib/ofed/usr.bin/Makefile   (contents, props changed)
  stable/11/contrib/ofed/usr.lib/Makefile   (contents, props changed)
  stable/11/share/mk/bsd.libnames.mk
  stable/11/share/mk/src.libnames.mk
  stable/11/sys/amd64/conf/NOTES
  stable/11/sys/conf/files
  stable/11/sys/conf/kern.pre.mk
  stable/11/sys/contrib/rdma/krping/krping.c
  stable/11/sys/contrib/rdma/krping/krping.h
  stable/11/sys/contrib/rdma/krping/krping_dev.c
  stable/11/sys/dev/cxgbe/adapter.h
  stable/11/sys/dev/cxgbe/common/common.h
  stable/11/sys/dev/cxgbe/common/t4_hw.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/cm.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/cq.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/device.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h
  stable/11/sys/dev/cxgbe/iw_cxgbe/mem.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/provider.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/qp.c
  stable/11/sys/dev/cxgbe/iw_cxgbe/t4.h
  stable/11/sys/dev/cxgbe/iw_cxgbe/user.h
  stable/11/sys/dev/cxgbe/offload.h
  stable/11/sys/dev/cxgbe/t4_main.c
  stable/11/sys/dev/iser/icl_iser.c
  stable/11/sys/dev/iser/icl_iser.h
  stable/11/sys/dev/iser/iser_memory.c
  stable/11/sys/dev/iser/iser_verbs.c
  stable/11/sys/dev/mlx4/device.h
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib.h
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_ah.c
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_alias_GUID.c
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_cm.c
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_cq.c
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_mad.c
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_mcg.c
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_mr.c
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_qp.c
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_srq.c
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_sysfs.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_ah.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_cq.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_doorbell.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_mad.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_mem.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_srq.c
  stable/11/sys/dev/mlx5/qp.h
  stable/11/sys/i386/conf/NOTES
  stable/11/sys/modules/Makefile
  stable/11/sys/modules/cxgb/Makefile
  stable/11/sys/modules/cxgbe/iw_cxgbe/Makefile
  stable/11/sys/modules/ibcore/Makefile
  stable/11/sys/modules/ipoib/Makefile
  stable/11/sys/modules/iser/Makefile
  stable/11/sys/modules/mlx4/Makefile
  stable/11/sys/modules/mlx4ib/Makefile
  stable/11/sys/modules/mlx5ib/Makefile
  stable/11/sys/modules/mthca/Makefile   (contents, props changed)
  stable/11/sys/modules/rdma/krping/Makefile
  stable/11/sys/ofed/drivers/infiniband/core/agent.h
  stable/11/sys/ofed/drivers/infiniband/core/cm_msgs.h
  stable/11/sys/ofed/drivers/infiniband/core/core_priv.h
  stable/11/sys/ofed/drivers/infiniband/core/iwcm.h
  stable/11/sys/ofed/drivers/infiniband/core/mad_priv.h
  stable/11/sys/ofed/drivers/infiniband/core/smi.h
  stable/11/sys/ofed/drivers/infiniband/core/uverbs.h
  stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib.h
  stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c
  stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c
  stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
  stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
  stable/11/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
  stable/11/sys/ofed/drivers/infiniband/ulp/sdp/sdp.h
  stable/11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_cma.c
  stable/11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
  stable/11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_proc.c
  stable/11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c
  stable/11/sys/ofed/drivers/infiniband/ulp/sdp/sdp_tx.c
  stable/11/sys/ofed/include/rdma/ib_addr.h
  stable/11/sys/ofed/include/rdma/ib_cache.h
  stable/11/sys/ofed/include/rdma/ib_cm.h
  stable/11/sys/ofed/include/rdma/ib_mad.h
  stable/11/sys/ofed/include/rdma/ib_pack.h
  stable/11/sys/ofed/include/rdma/ib_pma.h
  stable/11/sys/ofed/include/rdma/ib_sa.h
  stable/11/sys/ofed/include/rdma/ib_smi.h
  stable/11/sys/ofed/include/rdma/ib_umem.h
  stable/11/sys/ofed/include/rdma/ib_verbs.h
  stable/11/sys/ofed/include/rdma/iw_cm.h
  stable/11/sys/ofed/include/rdma/rdma_cm.h
  stable/11/targets/pseudo/userland/Makefile.depend
  stable/11/targets/pseudo/userland/lib/Makefile.depend
Directory Properties:
  stable/11/   (props changed)
  stable/11/contrib/ofed/libibcm/   (props changed)
  stable/11/contrib/ofed/libibverbs/   (props changed)
  stable/11/contrib/ofed/libibverbs/examples/   (props changed)
  stable/11/contrib/ofed/libibverbs/man/   (props changed)
  stable/11/contrib/ofed/libmlx4/   (props changed)
  stable/11/contrib/ofed/librdmacm/   (props changed)
  stable/11/contrib/ofed/librdmacm/examples/   (props changed)
  stable/11/contrib/ofed/librdmacm/man/   (props changed)

Modified: stable/11/Makefile.inc1
==============================================================================
--- stable/11/Makefile.inc1	Fri Mar 30 16:44:54 2018	(r331768)
+++ stable/11/Makefile.inc1	Fri Mar 30 18:06:29 2018	(r331769)
@@ -2141,16 +2141,24 @@ _lib_libradius=	lib/libradius
 .endif
 
 .if ${MK_OFED} != "no"
-_ofed_lib=		contrib/ofed/usr.lib
-_prebuild_libs+=	contrib/ofed/usr.lib/libosmcomp
-_prebuild_libs+=	contrib/ofed/usr.lib/libopensm
-_prebuild_libs+=	contrib/ofed/usr.lib/libibcommon
-_prebuild_libs+=	contrib/ofed/usr.lib/libibverbs
-_prebuild_libs+=	contrib/ofed/usr.lib/libibumad
+#
+# The OFED libraries are built in four steps
+# as reflected below, due to interdependencies.
+#
+# NOTE: Depending on contrib/ofed/include is only needed for
+# the lib32 compat build.
+#
+_ofed_lib= \
+contrib/ofed/include \
+contrib/ofed/usr.lib/0 \
+contrib/ofed/usr.lib/1 \
+contrib/ofed/usr.lib/2 \
+contrib/ofed/usr.lib/3
 
-contrib/ofed/usr.lib/libopensm__L: lib/libthr__L
-contrib/ofed/usr.lib/libosmcomp__L: lib/libthr__L
-contrib/ofed/usr.lib/libibumad__L: contrib/ofed/usr.lib/libibcommon__L
+contrib/ofed/usr.lib/0__L: contrib/ofed/include__L lib/libthr__L
+contrib/ofed/usr.lib/1__L: contrib/ofed/usr.lib/0__L
+contrib/ofed/usr.lib/2__L: contrib/ofed/usr.lib/1__L
+contrib/ofed/usr.lib/3__L: contrib/ofed/usr.lib/2__L
 .endif
 
 .if ${MK_CASPER} != "no"

Modified: stable/11/contrib/ofed/Makefile
==============================================================================
--- stable/11/contrib/ofed/Makefile	Fri Mar 30 16:44:54 2018	(r331768)
+++ stable/11/contrib/ofed/Makefile	Fri Mar 30 18:06:29 2018	(r331769)
@@ -1,3 +1,10 @@
-SUBDIR	= include usr.lib usr.bin
+# $FreeBSD$
+
+# NOTE: Make sure WITH_OFED=YES is set when building this top-level directory.
+
+SUBDIR= \
+include \
+usr.lib \
+usr.bin
 
 .include 

Modified: stable/11/contrib/ofed/include/Makefile
==============================================================================
--- stable/11/contrib/ofed/include/Makefile	Fri Mar 30 16:44:54 2018	(r331768)
+++ stable/11/contrib/ofed/include/Makefile	Fri Mar 30 18:06:29 2018	(r331769)
@@ -1,5 +1,191 @@
-.include 
+# $FreeBSD$
 
-SUBDIR	= infiniband rdma
+IBVERBS=	${.CURDIR}/../libibverbs
+IBMAD=		${.CURDIR}/../libibmad
+IBUMAD=		${.CURDIR}/../libibumad
+IBCM=		${.CURDIR}/../libibcm
+IBND=		${.CURDIR}/../libibnetdisc
+RDMACM=		${.CURDIR}/../librdmacm
+RDMA=		${.CURDIR}/../../../sys/ofed/include/uapi/rdma
+OSM=		${.CURDIR}/../opensm/include
 
-.include 
+IBINCS= \
+byteorder.h \
+byteswap.h \
+endian.h \
+types.h \
+udma_barrier.h \
+${IBVERBS}/arch.h \
+${IBVERBS}/driver.h \
+${IBVERBS}/kern-abi.h \
+${IBVERBS}/marshall.h \
+${IBVERBS}/opcode.h \
+${IBVERBS}/sa-kern-abi.h \
+${IBVERBS}/sa.h \
+${IBVERBS}/verbs.h \
+${IBUMAD}/umad.h \
+${IBUMAD}/umad_cm.h \
+${IBUMAD}/umad_sa.h \
+${IBUMAD}/umad_sm.h \
+${IBUMAD}/umad_str.h \
+${IBUMAD}/umad_types.h \
+${IBMAD}/mad.h \
+${IBMAD}/mad_osd.h \
+${IBCM}/cm.h \
+${IBCM}/cm_abi.h \
+${IBND}/ibnetdisc.h \
+${IBND}/ibnetdisc_osd.h \
+${RDMACM}/ib.h
+IBINCSDIR=	${INCLUDEDIR}/infiniband
+
+RDMAINCS= \
+${RDMACM}/rdma_cma.h \
+${RDMACM}/rdma_cma_abi.h \
+${RDMACM}/rdma_verbs.h \
+${RDMACM}/rsocket.h \
+${RDMA}/ib_user_cm.h \
+${RDMA}/ib_user_sa.h \
+${RDMA}/ib_user_verbs.h	\
+${RDMA}/rdma_user_cm.h \
+${RDMA}/mlx4-abi.h \
+${RDMA}/mlx5-abi.h
+RDMAINCSDIR=	${INCLUDEDIR}/rdma
+
+COMPINCS= \
+${OSM}/complib/cl_atomic.h \
+${OSM}/complib/cl_atomic_osd.h \
+${OSM}/complib/cl_byteswap.h \
+${OSM}/complib/cl_byteswap_osd.h \
+${OSM}/complib/cl_comppool.h \
+${OSM}/complib/cl_debug.h \
+${OSM}/complib/cl_debug_osd.h \
+${OSM}/complib/cl_dispatcher.h \
+${OSM}/complib/cl_event.h \
+${OSM}/complib/cl_event_osd.h \
+${OSM}/complib/cl_event_wheel.h \
+${OSM}/complib/cl_fleximap.h \
+${OSM}/complib/cl_list.h \
+${OSM}/complib/cl_log.h \
+${OSM}/complib/cl_map.h \
+${OSM}/complib/cl_math.h \
+${OSM}/complib/cl_nodenamemap.h \
+${OSM}/complib/cl_packoff.h \
+${OSM}/complib/cl_packon.h \
+${OSM}/complib/cl_passivelock.h \
+${OSM}/complib/cl_pool.h \
+${OSM}/complib/cl_ptr_vector.h \
+${OSM}/complib/cl_qcomppool.h \
+${OSM}/complib/cl_qlist.h \
+${OSM}/complib/cl_qmap.h \
+${OSM}/complib/cl_qpool.h \
+${OSM}/complib/cl_spinlock.h \
+${OSM}/complib/cl_spinlock_osd.h \
+${OSM}/complib/cl_thread.h \
+${OSM}/complib/cl_thread_osd.h \
+${OSM}/complib/cl_threadpool.h \
+${OSM}/complib/cl_timer.h \
+${OSM}/complib/cl_timer_osd.h \
+${OSM}/complib/cl_types.h \
+${OSM}/complib/cl_types_osd.h \
+${OSM}/complib/cl_vector.h
+COMPINCSDIR=	${INCLUDEDIR}/infiniband/complib
+
+OSMINCS= \
+${OSM}/opensm/osm_attrib_req.h \
+${OSM}/opensm/osm_base.h \
+${OSM}/opensm/osm_config.h \
+${OSM}/opensm/osm_congestion_control.h \
+${OSM}/opensm/osm_console.h \
+${OSM}/opensm/osm_console_io.h \
+${OSM}/opensm/osm_db.h \
+${OSM}/opensm/osm_db_pack.h \
+${OSM}/opensm/osm_errors.h \
+${OSM}/opensm/osm_event_plugin.h \
+${OSM}/opensm/osm_file_ids.h \
+${OSM}/opensm/osm_guid.h \
+${OSM}/opensm/osm_helper.h \
+${OSM}/opensm/osm_inform.h \
+${OSM}/opensm/osm_lid_mgr.h \
+${OSM}/opensm/osm_log.h \
+${OSM}/opensm/osm_mad_pool.h \
+${OSM}/opensm/osm_madw.h \
+${OSM}/opensm/osm_mcast_mgr.h \
+${OSM}/opensm/osm_mcast_tbl.h \
+${OSM}/opensm/osm_mcm_port.h \
+${OSM}/opensm/osm_mesh.h \
+${OSM}/opensm/osm_msgdef.h \
+${OSM}/opensm/osm_mtree.h \
+${OSM}/opensm/osm_multicast.h \
+${OSM}/opensm/osm_node.h \
+${OSM}/opensm/osm_opensm.h \
+${OSM}/opensm/osm_partition.h \
+${OSM}/opensm/osm_path.h \
+${OSM}/opensm/osm_perfmgr.h \
+${OSM}/opensm/osm_perfmgr_db.h \
+${OSM}/opensm/osm_pkey.h \
+${OSM}/opensm/osm_port.h \
+${OSM}/opensm/osm_port_profile.h \
+${OSM}/opensm/osm_prefix_route.h \
+${OSM}/opensm/osm_qos_policy.h \
+${OSM}/opensm/osm_remote_sm.h \
+${OSM}/opensm/osm_router.h \
+${OSM}/opensm/osm_sa.h \
+${OSM}/opensm/osm_sa_mad_ctrl.h \
+${OSM}/opensm/osm_service.h \
+${OSM}/opensm/osm_sm.h \
+${OSM}/opensm/osm_sm_mad_ctrl.h \
+${OSM}/opensm/osm_stats.h \
+${OSM}/opensm/osm_subnet.h \
+${OSM}/opensm/osm_switch.h \
+${OSM}/opensm/osm_ucast_cache.h \
+${OSM}/opensm/osm_ucast_lash.h \
+${OSM}/opensm/osm_ucast_mgr.h \
+${OSM}/opensm/osm_version.h \
+${OSM}/opensm/osm_vl15intf.h \
+${OSM}/opensm/st.h
+OSMINCSDIR=	${INCLUDEDIR}/infiniband/opensm
+
+IBAINCS= \
+${OSM}/iba/ib_cm_types.h \
+${OSM}/iba/ib_types.h
+IBAINCSDIR=	${INCLUDEDIR}/infiniband/iba
+
+VENDORINCS= \
+${OSM}/vendor/osm_mtl_bind.h \
+${OSM}/vendor/osm_pkt_randomizer.h \
+${OSM}/vendor/osm_ts_useraccess.h \
+${OSM}/vendor/osm_umadt.h \
+${OSM}/vendor/osm_vendor.h \
+${OSM}/vendor/osm_vendor_al.h \
+${OSM}/vendor/osm_vendor_api.h \
+${OSM}/vendor/osm_vendor_ibumad.h \
+${OSM}/vendor/osm_vendor_mlx.h \
+${OSM}/vendor/osm_vendor_mlx_defs.h \
+${OSM}/vendor/osm_vendor_mlx_dispatcher.h \
+${OSM}/vendor/osm_vendor_mlx_hca.h \
+${OSM}/vendor/osm_vendor_mlx_inout.h \
+${OSM}/vendor/osm_vendor_mlx_rmpp_ctx.h \
+${OSM}/vendor/osm_vendor_mlx_sar.h \
+${OSM}/vendor/osm_vendor_mlx_sender.h \
+${OSM}/vendor/osm_vendor_mlx_svc.h \
+${OSM}/vendor/osm_vendor_mlx_transport.h \
+${OSM}/vendor/osm_vendor_mlx_transport_anafa.h \
+${OSM}/vendor/osm_vendor_mlx_txn.h \
+${OSM}/vendor/osm_vendor_mtl.h \
+${OSM}/vendor/osm_vendor_mtl_hca_guid.h \
+${OSM}/vendor/osm_vendor_mtl_transaction_mgr.h \
+${OSM}/vendor/osm_vendor_sa_api.h \
+${OSM}/vendor/osm_vendor_test.h \
+${OSM}/vendor/osm_vendor_ts.h \
+${OSM}/vendor/osm_vendor_umadt.h
+VENDORINCSDIR=	${INCLUDEDIR}/infiniband/vendor
+
+INCSGROUPS= \
+IBINCS \
+RDMAINCS \
+COMPINCS \
+OSMINCS \
+IBAINCS \
+VENDORINCS
+
+.include 

Copied: stable/11/contrib/ofed/include/byteorder.h (from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/byteorder.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/ofed/include/byteorder.h	Fri Mar 30 18:06:29 2018	(r331769, copy of r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/byteorder.h)
@@ -0,0 +1,84 @@
+/*-
+ * Copyright (c) 2010 Isilon Systems, Inc.
+ * Copyright (c) 2010 iX Systems, Inc.
+ * Copyright (c) 2010 Panasas, 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 unmodified, this list of conditions, and the following
+ *    disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef	_INFINIBAND_BYTEORDER_H_
+#define	_INFINIBAND_BYTEORDER_H_
+
+#include 
+#include 
+
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define	__LITTLE_ENDIAN
+#else
+#define	__BIG_ENDIAN
+#endif
+
+#define	cpu_to_le64	htole64
+#define	le64_to_cpu	le64toh
+#define	cpu_to_le32	htole32
+#define	le32_to_cpu	le32toh
+#define	cpu_to_le16	htole16
+#define	le16_to_cpu	le16toh
+#define	cpu_to_be64	htobe64
+#define	be64_to_cpu	be64toh
+#define	cpu_to_be32	htobe32
+#define	be32_to_cpu	be32toh
+#define	cpu_to_be16	htobe16
+#define	be16_to_cpu	be16toh
+#define	__be16_to_cpu	be16toh
+
+#define	cpu_to_le64p(x)	htole64(*((uint64_t *)x))
+#define	le64_to_cpup(x)	le64toh(*((uint64_t *)x))
+#define	cpu_to_le32p(x)	htole32(*((uint32_t *)x))
+#define	le32_to_cpup(x)	le32toh(*((uint32_t *)x))
+#define	cpu_to_le16p(x)	htole16(*((uint16_t *)x))
+#define	le16_to_cpup(x)	le16toh(*((uint16_t *)x))
+#define	cpu_to_be64p(x)	htobe64(*((uint64_t *)x))
+#define	be64_to_cpup(x)	be64toh(*((uint64_t *)x))
+#define	cpu_to_be32p(x)	htobe32(*((uint32_t *)x))
+#define	be32_to_cpup(x)	be32toh(*((uint32_t *)x))
+#define	cpu_to_be16p(x)	htobe16(*((uint16_t *)x))
+#define	be16_to_cpup(x)	be16toh(*((uint16_t *)x))
+
+#define	cpu_to_le64s(x)	do { *((uint64_t *)x) = cpu_to_le64p((x)) } while (0)
+#define	le64_to_cpus(x)	do { *((uint64_t *)x) = le64_to_cpup((x)) } while (0)
+#define	cpu_to_le32s(x)	do { *((uint32_t *)x) = cpu_to_le32p((x)) } while (0)
+#define	le32_to_cpus(x)	do { *((uint32_t *)x) = le32_to_cpup((x)) } while (0)
+#define	cpu_to_le16s(x)	do { *((uint16_t *)x) = cpu_to_le16p((x)) } while (0)
+#define	le16_to_cpus(x)	do { *((uint16_t *)x) = le16_to_cpup((x)) } while (0)
+#define	cpu_to_be64s(x)	do { *((uint64_t *)x) = cpu_to_be64p((x)) } while (0)
+#define	be64_to_cpus(x)	do { *((uint64_t *)x) = be64_to_cpup((x)) } while (0)
+#define	cpu_to_be32s(x)	do { *((uint32_t *)x) = cpu_to_be32p((x)) } while (0)
+#define	be32_to_cpus(x)	do { *((uint32_t *)x) = be32_to_cpup((x)) } while (0)
+#define	cpu_to_be16s(x)	do { *((uint16_t *)x) = cpu_to_be16p((x)) } while (0)
+#define	be16_to_cpus(x)	do { *((uint16_t *)x) = be16_to_cpup((x)) } while (0)
+
+#define	swab16	bswap16
+#define	swab32	bswap32
+#define	swab64	bswap64
+
+#endif	/* _INFINIBAND_BYTEORDER_H_ */

Copied: stable/11/contrib/ofed/include/byteswap.h (from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/byteswap.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/ofed/include/byteswap.h	Fri Mar 30 18:06:29 2018	(r331769, copy of r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/byteswap.h)
@@ -0,0 +1,42 @@
+/*-
+ * Copyright (c) 2010 Isilon Systems, Inc.
+ * Copyright (c) 2010 iX Systems, Inc.
+ * Copyright (c) 2010 Panasas, 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 unmodified, this list of conditions, and the following
+ *    disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _INFINIBAND_BYTESWAP_H_
+#define	_INFINIBAND_BYTESWAP_H_
+/*
+ * This file is included for compatibility with the userland libraries
+ * accompanying the infiniband stack.
+ */
+#include 
+#include 
+
+#define bswap_16        bswap16
+#define bswap_32        bswap32
+#define bswap_64        bswap64
+
+#endif	/* _INFINIBAND_BYTESWAP_H_ */

Copied: stable/11/contrib/ofed/include/endian.h (from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/endian.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/ofed/include/endian.h	Fri Mar 30 18:06:29 2018	(r331769, copy of r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/endian.h)
@@ -0,0 +1,42 @@
+/*-
+ * Copyright (c) 2010 Isilon Systems, Inc.
+ * Copyright (c) 2010 iX Systems, Inc.
+ * Copyright (c) 2010 Panasas, 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 unmodified, this list of conditions, and the following
+ *    disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * This file is included for compatibility with the userland libraries
+ * accompanying the infiniband stack.
+ */
+
+#ifndef _INFINIBAND_ENDIAN_H_
+#define	_INFINIBAND_ENDIAN_H_
+
+#include 
+#include 
+#define	__LITTLE_ENDIAN	_LITTLE_ENDIAN
+#define	__BIG_ENDIAN	_BIG_ENDIAN
+#define __BYTE_ORDER    _BYTE_ORDER
+
+#endif /* _INFINIBAND_ENDIAN_H_ */

Copied: stable/11/contrib/ofed/include/types.h (from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/types.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/ofed/include/types.h	Fri Mar 30 18:06:29 2018	(r331769, copy of r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/types.h)
@@ -0,0 +1,61 @@
+/*-
+ * Copyright (c) 2010 Isilon Systems, Inc.
+ * Copyright (c) 2010 iX Systems, Inc.
+ * Copyright (c) 2010 Panasas, 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 unmodified, this list of conditions, and the following
+ *    disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef	_INFINIBAND_TYPES_H_
+#define	_INFINIBAND_TYPES_H_
+
+#include 
+#include 
+
+typedef int8_t s8;
+typedef uint8_t u8;
+typedef int8_t __s8;
+typedef uint8_t __u8;
+
+typedef int16_t s16;
+typedef uint16_t u16;
+typedef int16_t __s16;
+typedef uint16_t __u16;
+
+typedef int32_t s32;
+typedef uint32_t u32;
+typedef int32_t __s32;
+typedef uint32_t __u32;
+
+typedef int64_t s64;
+typedef uint64_t u64;
+typedef int64_t __s64;
+typedef uint64_t __u64;
+
+typedef uint16_t __le16;
+typedef uint16_t __be16;
+typedef uint32_t __le32;
+typedef uint32_t __be32;
+typedef uint64_t __le64;
+typedef uint64_t __be64;
+
+#endif	/* _INFINIBAND_TYPES_H_ */

Copied: stable/11/contrib/ofed/include/udma_barrier.h (from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/udma_barrier.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/ofed/include/udma_barrier.h	Fri Mar 30 18:06:29 2018	(r331769, copy of r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/include/udma_barrier.h)
@@ -0,0 +1,277 @@
+/*
+ * Copyright (c) 2005 Topspin Communications.  All rights reserved.
+ *
+ * This software is available to you under a choice of one of two
+ * licenses.  You may choose to be licensed under the terms of the GNU
+ * General Public License (GPL) Version 2, available from the file
+ * COPYING in the main directory of this source tree, or the
+ * OpenIB.org BSD license below:
+ *
+ *     Redistribution and use in source and binary forms, with or
+ *     without modification, are permitted provided that the following
+ *     conditions are met:
+ *
+ *      - Redistributions of source code must retain the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer.
+ *
+ *      - Redistributions in binary form must reproduce the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer in the documentation and/or other materials
+ *        provided with the distribution.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#ifndef __UTIL_UDMA_BARRIER_H
+#define __UTIL_UDMA_BARRIER_H
+
+#include 
+
+/* Barriers for DMA.
+
+   These barriers are expliclty only for use with user DMA operations. If you
+   are looking for barriers to use with cache-coherent multi-threaded
+   consitency then look in stdatomic.h. If you need both kinds of synchronicity
+   for the same address then use an atomic operation followed by one
+   of these barriers.
+
+   When reasoning about these barriers there are two objects:
+     - CPU attached address space (the CPU memory could be a range of things:
+       cached/uncached/non-temporal CPU DRAM, uncached MMIO space in another
+       device, pMEM). Generally speaking the ordering is only relative
+       to the local CPU's view of the system. Eg if the local CPU
+       is not guaranteed to see a write from another CPU then it is also
+       OK for the DMA device to also not see the write after the barrier.
+     - A DMA initiator on a bus. For instance a PCI-E device issuing
+       MemRd/MemWr TLPs.
+
+   The ordering guarantee is always stated between those two streams. Eg what
+   happens if a MemRd TLP is sent in via PCI-E relative to a CPU WRITE to the
+   same memory location.
+
+   The providers have a very regular and predictable use of these barriers,
+   to make things very clear each narrow use is given a name and the proper
+   name should be used in the provider as a form of documentation.
+*/
+
+/* Ensure that the device's view of memory matches the CPU's view of memory.
+   This should be placed before any MMIO store that could trigger the device
+   to begin doing DMA, such as a device doorbell ring.
+
+   eg
+    *dma_buf = 1;
+    udma_to_device_barrier();
+    mmio_write(DO_DMA_REG, dma_buf);
+   Must ensure that the device sees the '1'.
+
+   This is required to fence writes created by the libibverbs user. Those
+   writes could be to any CPU mapped memory object with any cachability mode.
+
+   NOTE: x86 has historically used a weaker semantic for this barrier, and
+   only fenced normal stores to normal memory. libibverbs users using other
+   memory types or non-temporal stores are required to use SFENCE in their own
+   code prior to calling verbs to start a DMA.
+*/
+#if defined(__i386__)
+#define udma_to_device_barrier() asm volatile("" ::: "memory")
+#elif defined(__x86_64__)
+#define udma_to_device_barrier() asm volatile("" ::: "memory")
+#elif defined(__PPC64__)
+#define udma_to_device_barrier() asm volatile("sync" ::: "memory")
+#elif defined(__PPC__)
+#define udma_to_device_barrier() asm volatile("sync" ::: "memory")
+#elif defined(__ia64__)
+#define udma_to_device_barrier() asm volatile("mf" ::: "memory")
+#elif defined(__sparc_v9__)
+#define udma_to_device_barrier() asm volatile("membar #StoreStore" ::: "memory")
+#elif defined(__aarch64__)
+#define udma_to_device_barrier() asm volatile("dsb st" ::: "memory");
+#elif defined(__sparc__) || defined(__s390x__)
+#define udma_to_device_barrier() asm volatile("" ::: "memory")
+#elif defined(__mips__)
+#include 
+#include 
+#define udma_to_device_barrier() mips_sync()
+#elif defined(__arm__)
+#include 
+#include 
+#define udma_to_device_barrier() dmb()
+#else
+#error No architecture specific memory barrier defines found!
+#endif
+
+/* Ensure that all ordered stores from the device are observable from the
+   CPU. This only makes sense after something that observes an ordered store
+   from the device - eg by reading a MMIO register or seeing that CPU memory is
+   updated.
+
+   This guarantees that all reads that follow the barrier see the ordered
+   stores that preceded the observation.
+
+   For instance, this would be used after testing a valid bit in a memory
+   that is a DMA target, to ensure that the following reads see the
+   data written before the MemWr TLP that set the valid bit.
+*/
+#if defined(__i386__)
+#define udma_from_device_barrier() asm volatile("lock; addl $0,0(%%esp) " ::: "memory")
+#elif defined(__x86_64__)
+#define udma_from_device_barrier() asm volatile("lfence" ::: "memory")
+#elif defined(__PPC64__)
+#define udma_from_device_barrier() asm volatile("lwsync" ::: "memory")
+#elif defined(__PPC__)
+#define udma_from_device_barrier() asm volatile("sync" ::: "memory")
+#elif defined(__ia64__)
+#define udma_from_device_barrier() asm volatile("mf" ::: "memory")
+#elif defined(__sparc_v9__)
+#define udma_from_device_barrier() asm volatile("membar #LoadLoad" ::: "memory")
+#elif defined(__aarch64__)
+#define udma_from_device_barrier() asm volatile("dsb ld" ::: "memory");
+#elif defined(__sparc__) || defined(__s390x__)
+#define udma_from_device_barrier() asm volatile("" ::: "memory")
+#elif defined(__mips__)
+#define udma_from_device_barrier() mips_sync()
+#elif defined(__arm__)
+#define udma_from_device_barrier() dmb()
+#else
+#error No architecture specific memory barrier defines found!
+#endif
+
+/* Order writes to CPU memory so that a DMA device cannot view writes after
+   the barrier without also seeing all writes before the barrier. This does
+   not guarantee any writes are visible to DMA.
+
+   This would be used in cases where a DMA buffer might have a valid bit and
+   data, this barrier is placed after writing the data but before writing the
+   valid bit to ensure the DMA device cannot observe a set valid bit with
+   unwritten data.
+
+   Compared to udma_to_device_barrier() this barrier is not required to fence
+   anything but normal stores to normal malloc memory. Usage should be:
+
+   write_wqe
+      udma_to_device_barrier();    // Get user memory ready for DMA
+      wqe->addr = ...;
+      wqe->flags = ...;
+      udma_ordering_write_barrier();  // Guarantee WQE written in order
+      wqe->valid = 1;
+*/
+#define udma_ordering_write_barrier() udma_to_device_barrier()
+
+/* Promptly flush writes to MMIO Write Cominbing memory.
+   This should be used after a write to WC memory. This is both a barrier
+   and a hint to the CPU to flush any buffers to reduce latency to TLP
+   generation.
+
+   This is not required to have any effect on CPU memory.
+
+   If done while holding a lock then the ordering of MMIO writes across CPUs
+   must be guaranteed to follow the natural ordering implied by the lock.
+
+   This must also act as a barrier that prevents write combining, eg
+     *wc_mem = 1;
+     mmio_flush_writes();
+     *wc_mem = 2;
+   Must always produce two MemWr TLPs, '1' and '2'. Without the barrier
+   the CPU is allowed to produce a single TLP '2'.
+
+   Note that there is no order guarantee for writes to WC memory without
+   barriers.
+
+   This is intended to be used in conjunction with WC memory to generate large
+   PCI-E MemWr TLPs from the CPU.
+*/
+#if defined(__i386__)
+#define mmio_flush_writes() asm volatile("lock; addl $0,0(%%esp) " ::: "memory")
+#elif defined(__x86_64__)
+#define mmio_flush_writes() asm volatile("sfence" ::: "memory")
+#elif defined(__PPC64__)
+#define mmio_flush_writes() asm volatile("sync" ::: "memory")
+#elif defined(__PPC__)
+#define mmio_flush_writes() asm volatile("sync" ::: "memory")
+#elif defined(__ia64__)
+#define mmio_flush_writes() asm volatile("fwb" ::: "memory")
+#elif defined(__sparc_v9__)
+#define mmio_flush_writes() asm volatile("membar #StoreStore" ::: "memory")
+#elif defined(__aarch64__)
+#define mmio_flush_writes() asm volatile("dsb st" ::: "memory");
+#elif defined(__sparc__) || defined(__s390x__)
+#define mmio_flush_writes() asm volatile("" ::: "memory")
+#elif defined(__mips__)
+#define mmio_flush_writes() mips_sync()
+#elif defined(__arm__)
+#define mmio_flush_writes() dmb()
+#else
+#error No architecture specific memory barrier defines found!
+#endif
+
+/* Prevent WC writes from being re-ordered relative to other MMIO
+   writes. This should be used before a write to WC memory.
+
+   This must act as a barrier to prevent write re-ordering from different
+   memory types:
+     *mmio_mem = 1;
+     mmio_flush_writes();
+     *wc_mem = 2;
+   Must always produce a TLP '1' followed by '2'.
+
+   This barrier implies udma_to_device_barrier()
+
+   This is intended to be used in conjunction with WC memory to generate large
+   PCI-E MemWr TLPs from the CPU.
+*/
+#define mmio_wc_start() mmio_flush_writes()
+
+/* Keep MMIO writes in order.
+   Currently we lack writel macros that universally guarantee MMIO
+   writes happen in order, like the kernel does. Even worse many
+   providers haphazardly open code writes to MMIO memory omitting even
+   volatile.
+
+   Until this can be fixed with a proper writel macro, this barrier
+   is a stand in to indicate places where MMIO writes should be switched
+   to some future writel.
+*/
+#define mmio_ordered_writes_hack() mmio_flush_writes()
+
+/* Write Combining Spinlock primitive
+
+   Any access to a multi-value WC region must ensure that multiple cpus do not
+   write to the same values concurrently, these macros make that
+   straightforward and efficient if the choosen exclusion is a spinlock.
+
+   The spinlock guarantees that the WC writes issued within the critical
+   section are made visible as TLP to the device. The TLP must be seen by the
+   device strictly in the order that the spinlocks are acquired, and combining
+   WC writes between different sections is not permitted.
+
+   Use of these macros allow the fencing inside the spinlock to be combined
+   with the fencing required for DMA.
+ */
+static inline void mmio_wc_spinlock(pthread_spinlock_t *lock)
+{
+	pthread_spin_lock(lock);
+#if !defined(__i386__) && !defined(__x86_64__)
+	/* For x86 the serialization within the spin lock is enough to
+	 * strongly order WC and other memory types. */
+	mmio_wc_start();
+#endif
+}
+
+static inline void mmio_wc_spinunlock(pthread_spinlock_t *lock)
+{
+	/* It is possible that on x86 the atomic in the lock is strong enough
+	 * to force-flush the WC buffers quickly, and this SFENCE can be
+	 * omitted too. */
+	mmio_flush_writes();
+	pthread_spin_unlock(lock);
+}
+
+#endif

Copied: stable/11/contrib/ofed/libcxgb4/Makefile (from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/Makefile)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/ofed/libcxgb4/Makefile	Fri Mar 30 18:06:29 2018	(r331769, copy of r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/Makefile)
@@ -0,0 +1,19 @@
+# $FreeBSD$
+
+.PATH: ${.CURDIR}
+
+SHLIBDIR?=	/usr/lib
+LIB=		cxgb4
+SHLIB_MAJOR=	1
+MK_PROFILE=	no
+
+SRCS= \
+cq.c \
+dev.c \
+qp.c \
+verbs.c
+
+LIBADD=		ibverbs pthread
+CFLAGS+=	-I${.CURDIR}
+
+.include 

Copied: stable/11/contrib/ofed/libcxgb4/config.h (from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/config.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/ofed/libcxgb4/config.h	Fri Mar 30 18:06:29 2018	(r331769, copy of r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/config.h)
@@ -0,0 +1,6 @@
+/* $FreeBSD$ */
+
+#define	ENODATA ECONNREFUSED
+#define	likely(x) __predict_true(x)
+#define	unlikely(x) __predict_false(x)
+

Copied: stable/11/contrib/ofed/libcxgb4/cq.c (from r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/cq.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/ofed/libcxgb4/cq.c	Fri Mar 30 18:06:29 2018	(r331769, copy of r331758, projects/bsd_rdma_4_9_stable_11/contrib/ofed/libcxgb4/cq.c)
@@ -0,0 +1,750 @@
+/*
+ * Copyright (c) 2006-2016 Chelsio, Inc. All rights reserved.
+ *
+ * This software is available to you under a choice of one of two
+ * licenses.  You may choose to be licensed under the terms of the GNU
+ * General Public License (GPL) Version 2, available from the file
+ * COPYING in the main directory of this source tree, or the
+ * OpenIB.org BSD license below:
+ *
+ *     Redistribution and use in source and binary forms, with or
+ *     without modification, are permitted provided that the following
+ *     conditions are met:
+ *
+ *      - Redistributions of source code must retain the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer.
+ *
+ *      - Redistributions in binary form must reproduce the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer in the documentation and/or other materials
+ *        provided with the distribution.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include "libcxgb4.h"
+#include "cxgb4-abi.h"
+
+static void insert_recv_cqe(struct t4_wq *wq, struct t4_cq *cq)
+{
+	struct t4_cqe cqe;
+
+	PDBG("%s wq %p cq %p sw_cidx %u sw_pidx %u\n", __func__,
+	     wq, cq, cq->sw_cidx, cq->sw_pidx);
+	memset(&cqe, 0, sizeof(cqe));
+	cqe.header = htobe32(V_CQE_STATUS(T4_ERR_SWFLUSH) |
+			         V_CQE_OPCODE(FW_RI_SEND) |
+				 V_CQE_TYPE(0) |
+				 V_CQE_SWCQE(1) |
+				 V_CQE_QPID(wq->sq.qid));
+	cqe.bits_type_ts = htobe64(V_CQE_GENBIT((u64)cq->gen));
+	cq->sw_queue[cq->sw_pidx] = cqe;
+	t4_swcq_produce(cq);
+}
+
+int c4iw_flush_rq(struct t4_wq *wq, struct t4_cq *cq, int count)
+{
+	int flushed = 0;
+	int in_use = wq->rq.in_use - count;
+
+	BUG_ON(in_use < 0);
+	PDBG("%s wq %p cq %p rq.in_use %u skip count %u\n", __func__,
+	     wq, cq, wq->rq.in_use, count);
+	while (in_use--) {
+		insert_recv_cqe(wq, cq);
+		flushed++;
+	}
+	return flushed;
+}
+
+static void insert_sq_cqe(struct t4_wq *wq, struct t4_cq *cq,
+		          struct t4_swsqe *swcqe)
+{
+	struct t4_cqe cqe;
+
+	PDBG("%s wq %p cq %p sw_cidx %u sw_pidx %u\n", __func__,
+	     wq, cq, cq->sw_cidx, cq->sw_pidx);
+	memset(&cqe, 0, sizeof(cqe));
+	cqe.header = htobe32(V_CQE_STATUS(T4_ERR_SWFLUSH) |
+			         V_CQE_OPCODE(swcqe->opcode) |
+			         V_CQE_TYPE(1) |
+			         V_CQE_SWCQE(1) |
+			         V_CQE_QPID(wq->sq.qid));
+	CQE_WRID_SQ_IDX(&cqe) = swcqe->idx;
+	cqe.bits_type_ts = htobe64(V_CQE_GENBIT((u64)cq->gen));
+	cq->sw_queue[cq->sw_pidx] = cqe;
+	t4_swcq_produce(cq);
+}
+
+static void advance_oldest_read(struct t4_wq *wq);
+
+void c4iw_flush_sq(struct c4iw_qp *qhp)
+{
+	unsigned short flushed = 0;
+	struct t4_wq *wq = &qhp->wq;
+	struct c4iw_cq *chp = to_c4iw_cq(qhp->ibv_qp.send_cq);
+	struct t4_cq *cq = &chp->cq;
+	int idx;
+	struct t4_swsqe *swsqe;
+	
+	if (wq->sq.flush_cidx == -1)
+		wq->sq.flush_cidx = wq->sq.cidx;
+	idx = wq->sq.flush_cidx;
+	BUG_ON(idx >= wq->sq.size);
+	while (idx != wq->sq.pidx) {
+		swsqe = &wq->sq.sw_sq[idx];
+		BUG_ON(swsqe->flushed);
+		swsqe->flushed = 1;
+		insert_sq_cqe(wq, cq, swsqe);
+		if (wq->sq.oldest_read == swsqe) {
+			BUG_ON(swsqe->opcode != FW_RI_READ_REQ);
+			advance_oldest_read(wq);
+		}
+		flushed++;
+		if (++idx == wq->sq.size)
+			idx = 0;
+	}
+	wq->sq.flush_cidx += flushed;
+	if (wq->sq.flush_cidx >= wq->sq.size)
+		wq->sq.flush_cidx -= wq->sq.size;
+}
+
+static void flush_completed_wrs(struct t4_wq *wq, struct t4_cq *cq)
+{
+	struct t4_swsqe *swsqe;
+	unsigned short cidx;
+ 
+	if (wq->sq.flush_cidx == -1)
+		wq->sq.flush_cidx = wq->sq.cidx;
+	cidx = wq->sq.flush_cidx;
+	BUG_ON(cidx >= wq->sq.size);
+
+	while (cidx != wq->sq.pidx) {
+		swsqe = &wq->sq.sw_sq[cidx];
+		if (!swsqe->signaled) {
+			if (++cidx == wq->sq.size)
+				cidx = 0;
+		} else if (swsqe->complete) {
+
+			BUG_ON(swsqe->flushed);
+
+			/*
+			 * Insert this completed cqe into the swcq.
+			 */
+			PDBG("%s moving cqe into swcq sq idx %u cq idx %u\n",
+			     __func__, cidx, cq->sw_pidx);
+
+			swsqe->cqe.header |= htobe32(V_CQE_SWCQE(1));
+			cq->sw_queue[cq->sw_pidx] = swsqe->cqe;
+			t4_swcq_produce(cq);
+			swsqe->flushed = 1;
+			if (++cidx == wq->sq.size)
+				cidx = 0;
+			wq->sq.flush_cidx = cidx;
+		} else
+			break;
+	}
+}
+
+static void create_read_req_cqe(struct t4_wq *wq, struct t4_cqe *hw_cqe,
+				struct t4_cqe *read_cqe)
+{
+	read_cqe->u.scqe.cidx = wq->sq.oldest_read->idx;
+	read_cqe->len = be32toh(wq->sq.oldest_read->read_len);
+	read_cqe->header = htobe32(V_CQE_QPID(CQE_QPID(hw_cqe)) |
+				 V_CQE_SWCQE(SW_CQE(hw_cqe)) |
+				 V_CQE_OPCODE(FW_RI_READ_REQ) |
+				 V_CQE_TYPE(1));
+	read_cqe->bits_type_ts = hw_cqe->bits_type_ts;
+}
+
+static void advance_oldest_read(struct t4_wq *wq)
+{
+
+	u32 rptr = wq->sq.oldest_read - wq->sq.sw_sq + 1;
+
+	if (rptr == wq->sq.size)
+		rptr = 0;
+	while (rptr != wq->sq.pidx) {
+		wq->sq.oldest_read = &wq->sq.sw_sq[rptr];
+
+		if (wq->sq.oldest_read->opcode == FW_RI_READ_REQ)
+			return;
+		if (++rptr == wq->sq.size)
+			rptr = 0;
+	}
+	wq->sq.oldest_read = NULL;
+}
+
+/*
+ * Move all CQEs from the HWCQ into the SWCQ.
+ * Deal with out-of-order and/or completions that complete
+ * prior unsignalled WRs.
+ */
+void c4iw_flush_hw_cq(struct c4iw_cq *chp)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:10:16 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D505DF52A2A;
 Fri, 30 Mar 2018 18:10:16 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 2CD19738D8;
 Fri, 30 Mar 2018 18:10:16 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 238DA463D;
 Fri, 30 Mar 2018 18:10:16 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIAFWO061299;
 Fri, 30 Mar 2018 18:10:15 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIAF1S061298;
 Fri, 30 Mar 2018 18:10:15 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301810.w2UIAF1S061298@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:10:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-svnadmin@freebsd.org
Subject: svn commit: r331770 - svnadmin/conf
X-SVN-Group: svnadmin
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: svnadmin/conf
X-SVN-Commit-Revision: 331770
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:10:17 -0000

Author: hselasky
Date: Fri Mar 30 18:10:15 2018
New Revision: 331770
URL: https://svnweb.freebsd.org/changeset/base/331770

Log:
  Remove myself.

Modified:
  svnadmin/conf/sizelimit.conf

Modified: svnadmin/conf/sizelimit.conf
==============================================================================
--- svnadmin/conf/sizelimit.conf	Fri Mar 30 18:06:29 2018	(r331769)
+++ svnadmin/conf/sizelimit.conf	Fri Mar 30 18:10:15 2018	(r331770)
@@ -18,7 +18,6 @@ achim
 bapt
 davidcs
 dim
-hselasky
 imp
 jb
 jeff

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:13:45 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E44DF5316D;
 Fri, 30 Mar 2018 18:13:45 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id CFEF373E82;
 Fri, 30 Mar 2018 18:13:44 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CAE3347C9;
 Fri, 30 Mar 2018 18:13:44 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIDiHF065845;
 Fri, 30 Mar 2018 18:13:44 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIDiFn065842;
 Fri, 30 Mar 2018 18:13:44 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301813.w2UIDiFn065842@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:13:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331771 - stable/11/lib/libusb
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/lib/libusb
X-SVN-Commit-Revision: 331771
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:13:45 -0000

Author: hselasky
Date: Fri Mar 30 18:13:44 2018
New Revision: 331771
URL: https://svnweb.freebsd.org/changeset/base/331771

Log:
  MFC r331419:
  Allow the libusb20_dev_get_port_path() function to be called when the
  USB device is closed. This fixes a compatibility issue with upstream
  libusb.
  
  Found by:	romain@

Modified:
  stable/11/lib/libusb/libusb20.c
  stable/11/lib/libusb/libusb20_int.h
  stable/11/lib/libusb/libusb20_ugen20.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libusb/libusb20.c
==============================================================================
--- stable/11/lib/libusb/libusb20.c	Fri Mar 30 18:10:15 2018	(r331770)
+++ stable/11/lib/libusb/libusb20.c	Fri Mar 30 18:13:44 2018	(r331771)
@@ -75,7 +75,6 @@ dummy_callback(struct libusb20_transfer *xfer)
 #define	dummy_check_connected (void *)dummy_int
 #define	dummy_set_power_mode (void *)dummy_int
 #define	dummy_get_power_mode (void *)dummy_int
-#define	dummy_get_port_path (void *)dummy_int
 #define	dummy_get_power_usage (void *)dummy_int
 #define	dummy_kernel_driver_active (void *)dummy_int
 #define	dummy_detach_kernel_driver (void *)dummy_int
@@ -743,7 +742,26 @@ libusb20_dev_get_power_mode(struct libusb20_device *pd
 int
 libusb20_dev_get_port_path(struct libusb20_device *pdev, uint8_t *buf, uint8_t bufsize)
 {
-	return (pdev->methods->get_port_path(pdev, buf, bufsize));
+
+	if (pdev->port_level == 0) {
+		/*
+		 * Fallback for backends without port path:
+		 */
+		if (bufsize < 2)
+			return (LIBUSB20_ERROR_OVERFLOW);
+		buf[0] = pdev->parent_address;
+		buf[1] = pdev->parent_port;
+		return (2);
+	}
+
+	/* check if client buffer is too small */
+	if (pdev->port_level > bufsize)
+		return (LIBUSB20_ERROR_OVERFLOW);
+
+	/* copy port number information */
+	memcpy(buf, pdev->port_path, pdev->port_level);
+
+	return (pdev->port_level);	/* success */
 }
 
 uint16_t

Modified: stable/11/lib/libusb/libusb20_int.h
==============================================================================
--- stable/11/lib/libusb/libusb20_int.h	Fri Mar 30 18:10:15 2018	(r331770)
+++ stable/11/lib/libusb/libusb20_int.h	Fri Mar 30 18:13:44 2018	(r331771)
@@ -105,7 +105,6 @@ typedef int (libusb20_process_t)(struct libusb20_devic
 typedef int (libusb20_reset_device_t)(struct libusb20_device *pdev);
 typedef int (libusb20_set_power_mode_t)(struct libusb20_device *pdev, uint8_t power_mode);
 typedef int (libusb20_get_power_mode_t)(struct libusb20_device *pdev, uint8_t *power_mode);
-typedef int (libusb20_get_port_path_t)(struct libusb20_device *pdev, uint8_t *buf, uint8_t bufsize);
 typedef int (libusb20_get_power_usage_t)(struct libusb20_device *pdev, uint16_t *power_usage);
 typedef int (libusb20_set_alt_index_t)(struct libusb20_device *pdev, uint8_t iface_index, uint8_t alt_index);
 typedef int (libusb20_set_config_index_t)(struct libusb20_device *pdev, uint8_t index);
@@ -129,7 +128,6 @@ typedef void (libusb20_tr_cancel_async_t)(struct libus
   m(n, check_connected) \
   m(n, set_power_mode) \
   m(n, get_power_mode) \
-  m(n, get_port_path) \
   m(n, get_power_usage) \
   m(n, set_alt_index) \
   m(n, set_config_index) \
@@ -235,8 +233,11 @@ struct libusb20_device {
 	uint8_t	is_opened;
 	uint8_t parent_address;
 	uint8_t parent_port;
+	uint8_t port_level;
 
 	char	usb_desc[96];
+#define	LIBUSB20_DEVICE_PORT_PATH_MAX	32
+	uint8_t	port_path[LIBUSB20_DEVICE_PORT_PATH_MAX];
 };
 
 extern const struct libusb20_backend_methods libusb20_ugen20_backend;

Modified: stable/11/lib/libusb/libusb20_ugen20.c
==============================================================================
--- stable/11/lib/libusb/libusb20_ugen20.c	Fri Mar 30 18:10:15 2018	(r331770)
+++ stable/11/lib/libusb/libusb20_ugen20.c	Fri Mar 30 18:13:44 2018	(r331771)
@@ -77,7 +77,6 @@ static libusb20_reset_device_t ugen20_reset_device;
 static libusb20_check_connected_t ugen20_check_connected;
 static libusb20_set_power_mode_t ugen20_set_power_mode;
 static libusb20_get_power_mode_t ugen20_get_power_mode;
-static libusb20_get_port_path_t ugen20_get_port_path;
 static libusb20_get_power_usage_t ugen20_get_power_usage;
 static libusb20_kernel_driver_active_t ugen20_kernel_driver_active;
 static libusb20_detach_kernel_driver_t ugen20_detach_kernel_driver;
@@ -134,6 +133,7 @@ ugen20_enumerate(struct libusb20_device *pdev, const c
 	const char *tmp = id;
 	struct usb_device_descriptor ddesc;
 	struct usb_device_info devinfo;
+	struct usb_device_port_path udpp;
 	uint32_t plugtime;
 	char buf[64];
 	int f;
@@ -217,6 +217,13 @@ ugen20_enumerate(struct libusb20_device *pdev, const c
 	    pdev->device_address, devinfo.udi_vendor,
 	    devinfo.udi_product, pdev->bus_number);
 
+	/* get device port path, if any */
+	if (ioctl(f, IOUSB(USB_GET_DEV_PORT_PATH), &udpp) == 0 &&
+	    udpp.udp_port_level < LIBUSB20_DEVICE_PORT_PATH_MAX) {
+		memcpy(pdev->port_path, udpp.udp_port_no, udpp.udp_port_level);
+		pdev->port_level = udpp.udp_port_level;
+	}
+
 	error = 0;
 done:
 	close(f);
@@ -646,22 +653,6 @@ ugen20_get_power_mode(struct libusb20_device *pdev, ui
 	}
 	*power_mode = temp;
 	return (0);			/* success */
-}
-
-static int
-ugen20_get_port_path(struct libusb20_device *pdev, uint8_t *buf, uint8_t bufsize)
-{
-	struct usb_device_port_path udpp;
-
-	if (ioctl(pdev->file_ctrl, IOUSB(USB_GET_DEV_PORT_PATH), &udpp))
-		return (LIBUSB20_ERROR_OTHER);
-
-	if (udpp.udp_port_level > bufsize)
-		return (LIBUSB20_ERROR_OVERFLOW);
-
-	memcpy(buf, udpp.udp_port_no, udpp.udp_port_level);
-
-	return (udpp.udp_port_level);	/* success */
 }
 
 static int

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:17:41 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B09FAF5366A;
 Fri, 30 Mar 2018 18:17:40 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 5D8CD74173;
 Fri, 30 Mar 2018 18:17:40 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5817347CB;
 Fri, 30 Mar 2018 18:17:40 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIHeKd066158;
 Fri, 30 Mar 2018 18:17:40 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIHYPQ066094;
 Fri, 30 Mar 2018 18:17:34 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301817.w2UIHYPQ066094@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:17:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331772 - in stable/11/sys/ofed: drivers/infiniband/core
 include/rdma include/uapi/rdma
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11/sys/ofed: drivers/infiniband/core
 include/rdma include/uapi/rdma
X-SVN-Commit-Revision: 331772
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:17:41 -0000

Author: hselasky
Date: Fri Mar 30 18:17:33 2018
New Revision: 331772
URL: https://svnweb.freebsd.org/changeset/base/331772

Log:
  MFC r330490:
  Add missing FreeBSD tags and SVN properties to ibcore.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/agent.h   (contents, props changed)
  stable/11/sys/ofed/drivers/infiniband/core/cm_msgs.h   (contents, props changed)
  stable/11/sys/ofed/drivers/infiniband/core/core_priv.h   (contents, props changed)
  stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_agent.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_cm.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_cq.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_device.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_fmr_pool.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_iwcm.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_iwpm_msg.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_iwpm_util.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_mad.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_mad_rmpp.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_multicast.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_packer.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_sa_query.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_smi.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_sysfs.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_ucm.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_ucma.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_ud_header.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_umem.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_umem_odp.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_umem_rbtree.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_user_mad.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_cmd.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_main.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_marshall.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c
  stable/11/sys/ofed/drivers/infiniband/core/iwcm.h   (contents, props changed)
  stable/11/sys/ofed/drivers/infiniband/core/iwpm_util.h
  stable/11/sys/ofed/drivers/infiniband/core/mad_priv.h   (contents, props changed)
  stable/11/sys/ofed/drivers/infiniband/core/mad_rmpp.h   (contents, props changed)
  stable/11/sys/ofed/drivers/infiniband/core/opa_smi.h
  stable/11/sys/ofed/drivers/infiniband/core/sa.h   (contents, props changed)
  stable/11/sys/ofed/drivers/infiniband/core/smi.h   (contents, props changed)
  stable/11/sys/ofed/drivers/infiniband/core/uverbs.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib.h
  stable/11/sys/ofed/include/rdma/ib_addr.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib_cache.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib_cm.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib_fmr_pool.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib_hdrs.h
  stable/11/sys/ofed/include/rdma/ib_mad.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib_marshall.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib_pack.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib_pma.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib_sa.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib_smi.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib_umem.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/ib_umem_odp.h
  stable/11/sys/ofed/include/rdma/ib_verbs.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/iw_cm.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/iw_portmap.h
  stable/11/sys/ofed/include/rdma/opa_port_info.h
  stable/11/sys/ofed/include/rdma/opa_smi.h
  stable/11/sys/ofed/include/rdma/rdma_cm.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/rdma_cm_ib.h   (contents, props changed)
  stable/11/sys/ofed/include/rdma/rdma_vt.h
  stable/11/sys/ofed/include/rdma/rdmavt_cq.h
  stable/11/sys/ofed/include/rdma/rdmavt_mr.h
  stable/11/sys/ofed/include/rdma/rdmavt_qp.h
  stable/11/sys/ofed/include/uapi/rdma/ib_user_cm.h
  stable/11/sys/ofed/include/uapi/rdma/ib_user_mad.h
  stable/11/sys/ofed/include/uapi/rdma/ib_user_sa.h
  stable/11/sys/ofed/include/uapi/rdma/ib_user_verbs.h
  stable/11/sys/ofed/include/uapi/rdma/mlx4-abi.h
  stable/11/sys/ofed/include/uapi/rdma/mlx5-abi.h
  stable/11/sys/ofed/include/uapi/rdma/mthca-abi.h   (contents, props changed)
  stable/11/sys/ofed/include/uapi/rdma/rdma_user_cm.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/agent.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/agent.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/agent.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -32,6 +32,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #ifndef __AGENT_H_

Modified: stable/11/sys/ofed/drivers/infiniband/core/cm_msgs.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/cm_msgs.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/cm_msgs.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004, 2011 Intel Corporation.  All rights reserved.
  * Copyright (c) 2004 Topspin Corporation.  All rights reserved.
  * Copyright (c) 2004 Voltaire Corporation.  All rights reserved.
@@ -30,7 +32,10 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
+
 #if !defined(CM_MSGS_H)
 #define CM_MSGS_H
 

Modified: stable/11/sys/ofed/drivers/infiniband/core/core_priv.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/core_priv.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/core_priv.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -28,6 +28,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #ifndef _CORE_PRIV_H

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2005 Voltaire Inc.  All rights reserved.
  * Copyright (c) 2002-2005, Network Appliance, Inc. All rights reserved.
  * Copyright (c) 1999-2005, Mellanox Technologies, Inc. All rights reserved.
@@ -31,6 +33,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_agent.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_agent.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_agent.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004, 2005 Mellanox Technologies Ltd.  All rights reserved.
  * Copyright (c) 2004, 2005 Infinicon Corporation.  All rights reserved.
  * Copyright (c) 2004, 2005 Intel Corporation.  All rights reserved.
@@ -34,6 +36,7 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004 Topspin Communications.  All rights reserved.
  * Copyright (c) 2005 Intel Corporation. All rights reserved.
  * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
@@ -31,6 +33,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cm.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cm.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cm.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004-2007 Intel Corporation.  All rights reserved.
  * Copyright (c) 2004 Topspin Corporation.  All rights reserved.
  * Copyright (c) 2004, 2005 Voltaire Corporation.  All rights reserved.
@@ -31,6 +33,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2005 Voltaire Inc.  All rights reserved.
  * Copyright (c) 2002-2005, Network Appliance, Inc. All rights reserved.
  * Copyright (c) 1999-2005, Mellanox Technologies, Inc. All rights reserved.
@@ -31,6 +33,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #define	LINUXKPI_PARAM_PREFIX ibcore_

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cq.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cq.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cq.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2017 Mellanox Technologies Ltd.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -28,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_device.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_device.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_device.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004 Topspin Communications.  All rights reserved.
  * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
  *
@@ -29,6 +31,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_fmr_pool.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_fmr_pool.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_fmr_pool.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004 Topspin Communications.  All rights reserved.
  * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
  *
@@ -29,6 +31,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_iwcm.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_iwcm.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_iwcm.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004, 2005 Intel Corporation.  All rights reserved.
  * Copyright (c) 2004 Topspin Corporation.  All rights reserved.
  * Copyright (c) 2004, 2005 Voltaire Corporation.  All rights reserved.
@@ -34,7 +36,9 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  *
+ * $FreeBSD$
  */
+
 #include 
 #include 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_iwpm_msg.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_iwpm_msg.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_iwpm_msg.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2014 Intel Corporation. All rights reserved.
  * Copyright (c) 2014 Chelsio, Inc. All rights reserved.
  *
@@ -29,6 +31,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include "iwpm_util.h"

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_iwpm_util.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_iwpm_util.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_iwpm_util.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2014 Chelsio, Inc. All rights reserved.
  * Copyright (c) 2014 Intel Corporation. All rights reserved.
  *
@@ -29,6 +31,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include "iwpm_util.h"

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_mad.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_mad.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_mad.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
  * Copyright (c) 2005 Intel Corporation.  All rights reserved.
  * Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
@@ -33,6 +35,7 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  *
+ * $FreeBSD$
  */
 
 #define	LINUXKPI_PARAM_PREFIX ibcore_

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_mad_rmpp.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_mad_rmpp.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_mad_rmpp.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2005 Intel Inc. All rights reserved.
  * Copyright (c) 2005-2006 Voltaire, Inc. All rights reserved.
  * Copyright (c) 2014 Intel Corporation.  All rights reserved.
@@ -30,6 +32,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_multicast.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_multicast.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_multicast.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2006 Intel Corporation.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -28,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #define	LINUXKPI_PARAM_PREFIX ibcore_

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_packer.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_packer.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_packer.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004 Topspin Corporation.  All rights reserved.
  * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
  *
@@ -29,6 +31,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2015-2017, Mellanox Technologies inc.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -28,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include "core_priv.h"

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_sa_query.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_sa_query.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_sa_query.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004 Topspin Communications.  All rights reserved.
  * Copyright (c) 2005 Voltaire, Inc.  All rights reserved.
  * Copyright (c) 2006 Intel Corporation.  All rights reserved.
@@ -30,6 +32,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_smi.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_smi.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_smi.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004, 2005 Mellanox Technologies Ltd.  All rights reserved.
  * Copyright (c) 2004, 2005 Infinicon Corporation.  All rights reserved.
  * Copyright (c) 2004, 2005 Intel Corporation.  All rights reserved.
@@ -35,6 +37,7 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_sysfs.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_sysfs.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_sysfs.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved.
  * Copyright (c) 2005 Mellanox Technologies Ltd.  All rights reserved.
  * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
@@ -30,6 +32,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include "core_priv.h"

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_ucm.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_ucm.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_ucm.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2005 Topspin Communications.  All rights reserved.
  * Copyright (c) 2005 Intel Corporation.  All rights reserved.
  *
@@ -29,6 +31,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_ucma.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_ucma.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_ucma.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2005-2006 Intel Corporation.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -28,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_ud_header.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_ud_header.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_ud_header.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004 Topspin Corporation.  All rights reserved.
  * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
  *
@@ -29,6 +31,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_umem.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_umem.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_umem.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2005 Topspin Communications.  All rights reserved.
  * Copyright (c) 2005 Cisco Systems.  All rights reserved.
  * Copyright (c) 2005 Mellanox Technologies. All rights reserved.
@@ -30,6 +32,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #define	LINUXKPI_PARAM_PREFIX ibcore_

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_umem_odp.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_umem_odp.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_umem_odp.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2014 Mellanox Technologies. All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -28,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_umem_rbtree.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_umem_rbtree.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_umem_rbtree.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2014 Mellanox Technologies. All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -28,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_user_mad.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_user_mad.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_user_mad.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004 Topspin Communications.  All rights reserved.
  * Copyright (c) 2005 Voltaire, Inc. All rights reserved.
  * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
@@ -31,6 +33,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #define pr_fmt(fmt) "user_mad: " fmt

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_cmd.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_cmd.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_cmd.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2005 Topspin Communications.  All rights reserved.
  * Copyright (c) 2005, 2006, 2007 Cisco Systems.  All rights reserved.
  * Copyright (c) 2005 PathScale, Inc.  All rights reserved.
@@ -31,6 +33,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #define	LINUXKPI_PARAM_PREFIX ibcore_

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_main.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_main.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_main.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2005 Topspin Communications.  All rights reserved.
  * Copyright (c) 2005, 2006 Cisco Systems.  All rights reserved.
  * Copyright (c) 2005 Mellanox Technologies. All rights reserved.
@@ -32,6 +34,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_marshall.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_marshall.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_marshall.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2005 Intel Corporation.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -28,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2004 Mellanox Technologies Ltd.  All rights reserved.
  * Copyright (c) 2004 Infinicon Corporation.  All rights reserved.
  * Copyright (c) 2004 Intel Corporation.  All rights reserved.
@@ -34,6 +36,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #include 

Modified: stable/11/sys/ofed/drivers/infiniband/core/iwcm.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/iwcm.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/iwcm.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -29,7 +29,10 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
+
 #ifndef IWCM_H
 #define IWCM_H
 

Modified: stable/11/sys/ofed/drivers/infiniband/core/iwpm_util.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/iwpm_util.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/iwpm_util.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2014 Intel Corporation. All rights reserved.
  * Copyright (c) 2014 Chelsio, Inc. All rights reserved.
  *
@@ -29,7 +31,10 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
+
 #ifndef _IWPM_UTIL_H
 #define _IWPM_UTIL_H
 

Modified: stable/11/sys/ofed/drivers/infiniband/core/mad_priv.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/mad_priv.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/mad_priv.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -31,6 +31,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #ifndef __IB_MAD_PRIV_H__

Modified: stable/11/sys/ofed/drivers/infiniband/core/mad_rmpp.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/mad_rmpp.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/mad_rmpp.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -28,6 +28,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #ifndef __MAD_RMPP_H__

Modified: stable/11/sys/ofed/drivers/infiniband/core/opa_smi.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/opa_smi.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/opa_smi.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2014 Intel Corporation.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -29,6 +31,7 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  *
+ * $FreeBSD$
  */
 
 #ifndef __OPA_SMI_H_

Modified: stable/11/sys/ofed/drivers/infiniband/core/sa.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/sa.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/sa.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -30,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #ifndef SA_H

Modified: stable/11/sys/ofed/drivers/infiniband/core/smi.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/smi.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/smi.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -33,6 +33,7 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  *
+ * $FreeBSD$
  */
 
 #ifndef __SMI_H_

Modified: stable/11/sys/ofed/drivers/infiniband/core/uverbs.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/uverbs.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/drivers/infiniband/core/uverbs.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -32,6 +32,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #ifndef UVERBS_H

Modified: stable/11/sys/ofed/include/rdma/ib.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2010 Intel Corporation.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -28,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #if !defined(_RDMA_IB_H)

Modified: stable/11/sys/ofed/include/rdma/ib_addr.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_addr.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_addr.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -29,6 +29,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #if !defined(IB_ADDR_H)

Modified: stable/11/sys/ofed/include/rdma/ib_cache.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_cache.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_cache.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -30,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #ifndef _IB_CACHE_H

Modified: stable/11/sys/ofed/include/rdma/ib_cm.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_cm.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_cm.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -31,7 +31,10 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
+
 #if !defined(IB_CM_H)
 #define IB_CM_H
 

Modified: stable/11/sys/ofed/include/rdma/ib_fmr_pool.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_fmr_pool.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_fmr_pool.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -29,6 +29,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #if !defined(IB_FMR_POOL_H)

Modified: stable/11/sys/ofed/include/rdma/ib_hdrs.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_hdrs.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_hdrs.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright(c) 2016 Intel Corporation.
  *
  * This file is provided under a dual BSD/GPLv2 license.  When using or
@@ -43,6 +45,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
+ * $FreeBSD$
  */
 
 #ifndef IB_HDRS_H

Modified: stable/11/sys/ofed/include/rdma/ib_mad.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_mad.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_mad.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -32,6 +32,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #if !defined(IB_MAD_H)

Modified: stable/11/sys/ofed/include/rdma/ib_marshall.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_marshall.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_marshall.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -28,6 +28,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #if !defined(IB_USER_MARSHALL_H)

Modified: stable/11/sys/ofed/include/rdma/ib_pack.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_pack.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_pack.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -28,6 +28,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #ifndef IB_PACK_H

Modified: stable/11/sys/ofed/include/rdma/ib_pma.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_pma.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_pma.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -30,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #if !defined(IB_PMA_H)

Modified: stable/11/sys/ofed/include/rdma/ib_sa.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_sa.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_sa.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -30,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #ifndef IB_SA_H

Modified: stable/11/sys/ofed/include/rdma/ib_smi.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_smi.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_smi.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -32,6 +32,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #if !defined(IB_SMI_H)

Modified: stable/11/sys/ofed/include/rdma/ib_umem.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_umem.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_umem.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -28,6 +28,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #ifndef IB_UMEM_H

Modified: stable/11/sys/ofed/include/rdma/ib_umem_odp.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_umem_odp.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_umem_odp.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2014 Mellanox Technologies. All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -28,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #ifndef IB_UMEM_ODP_H

Modified: stable/11/sys/ofed/include/rdma/ib_verbs.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_verbs.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/ib_verbs.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -34,6 +34,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #if !defined(IB_VERBS_H)

Modified: stable/11/sys/ofed/include/rdma/iw_cm.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/iw_cm.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/iw_cm.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -29,7 +29,10 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
+
 #ifndef IW_CM_H
 #define IW_CM_H
 

Modified: stable/11/sys/ofed/include/rdma/iw_portmap.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/iw_portmap.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/iw_portmap.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2014 Intel Corporation. All rights reserved.
  * Copyright (c) 2014 Chelsio, Inc. All rights reserved.
  *
@@ -29,7 +31,10 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
+
 #ifndef _IW_PORTMAP_H
 #define _IW_PORTMAP_H
 

Modified: stable/11/sys/ofed/include/rdma/opa_port_info.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/opa_port_info.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/opa_port_info.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2014 Intel Corporation.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -28,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #if !defined(OPA_PORT_INFO_H)

Modified: stable/11/sys/ofed/include/rdma/opa_smi.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/opa_smi.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/opa_smi.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -1,4 +1,6 @@
-/*
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
+ *
  * Copyright (c) 2014 Intel Corporation.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
@@ -28,6 +30,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #if !defined(OPA_SMI_H)

Modified: stable/11/sys/ofed/include/rdma/rdma_cm.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/rdma_cm.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/rdma_cm.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -29,6 +29,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 
 #if !defined(RDMA_CM_H)

Modified: stable/11/sys/ofed/include/rdma/rdma_cm_ib.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/rdma_cm_ib.h	Fri Mar 30 18:13:44 2018	(r331771)
+++ stable/11/sys/ofed/include/rdma/rdma_cm_ib.h	Fri Mar 30 18:17:33 2018	(r331772)
@@ -28,6 +28,8 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
+ *
+ * $FreeBSD$
  */
 

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:24:35 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DA4ABF540F8;
 Fri, 30 Mar 2018 18:24:35 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8CE3B74A2C;
 Fri, 30 Mar 2018 18:24:35 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 87751496A;
 Fri, 30 Mar 2018 18:24:35 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIOZWS071779;
 Fri, 30 Mar 2018 18:24:35 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIOZQ3071778;
 Fri, 30 Mar 2018 18:24:35 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301824.w2UIOZQ3071778@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:24:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331773 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331773
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:24:36 -0000

Author: hselasky
Date: Fri Mar 30 18:24:35 2018
New Revision: 331773
URL: https://svnweb.freebsd.org/changeset/base/331773

Log:
  MFC r330491:
  Do not add RoCEv2 default GID in ibcore when IPv6 is disabled to honor the
  networking stack's IPv6 disabled setting. Else the offload HCA can start using
  IPv6 packets for QPs.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c	Fri Mar 30 18:17:33 2018	(r331772)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c	Fri Mar 30 18:24:35 2018	(r331773)
@@ -42,6 +42,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 
@@ -702,6 +703,16 @@ void ib_cache_gid_set_default_gid(struct ib_device *ib
 	make_default_gid(ndev, &gid);
 	memset(&gid_attr, 0, sizeof(gid_attr));
 	gid_attr.ndev = ndev;
+
+	/* Default GID is created using unique GUID and local subnet prefix,
+	 * as described in section 4.1.1 and 3.5.10 in IB spec 1.3.
+	 * Therefore don't create RoCEv2 default GID based on it that
+	 * resembles as IPv6 GID based on link local address when IPv6 is
+	 * disabled in kernel.
+	 */
+#ifndef INET6
+	gid_type_mask &= ~BIT(IB_GID_TYPE_ROCE_UDP_ENCAP);
+#endif
 
 	for (gid_type = 0; gid_type < IB_GID_TYPE_SIZE; ++gid_type) {
 		int ix;

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:25:31 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 886B0F5425A;
 Fri, 30 Mar 2018 18:25:31 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3622074C70;
 Fri, 30 Mar 2018 18:25:31 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 30EA6496D;
 Fri, 30 Mar 2018 18:25:31 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIPVRD072139;
 Fri, 30 Mar 2018 18:25:31 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIPVpc072138;
 Fri, 30 Mar 2018 18:25:31 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301825.w2UIPVpc072138@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:25:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331774 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331774
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:25:31 -0000

Author: hselasky
Date: Fri Mar 30 18:25:30 2018
New Revision: 331774
URL: https://svnweb.freebsd.org/changeset/base/331774

Log:
  MFC r330492:
  Add support for IPv6 link local GIDs equal to the default GID for
  VLANs in ibcore.
  
  IPv6 link local addresses are usually derived from the netdev MAC
  address. This is applicable to VLAN devices and its lower netdevice as
  well. In such cases the IPv6 link local address is a duplicate of the
  default GID.
  
  Now that link local IPv6 addresses based GIDs are supported, allow
  adding such GID entries in the GID table.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c	Fri Mar 30 18:24:35 2018	(r331773)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cache.c	Fri Mar 30 18:25:30 2018	(r331774)
@@ -336,29 +336,12 @@ int ib_cache_gid_add(struct ib_device *ib_dev, u8 port
 	struct ib_gid_table *table;
 	int ix;
 	int ret = 0;
-	struct net_device *idev;
 	int empty;
 
 	table = ports_table[port - rdma_start_port(ib_dev)];
 
 	if (!memcmp(gid, &zgid, sizeof(*gid)))
 		return -EINVAL;
-
-	if (ib_dev->get_netdev) {
-		idev = ib_dev->get_netdev(ib_dev, port);
-		if (idev && attr->ndev != idev) {
-			union ib_gid default_gid;
-
-			/* Adding default GIDs in not permitted */
-			make_default_gid(idev, &default_gid);
-			if (!memcmp(gid, &default_gid, sizeof(*gid))) {
-				dev_put(idev);
-				return -EPERM;
-			}
-		}
-		if (idev)
-			dev_put(idev);
-	}
 
 	mutex_lock(&table->lock);
 	write_lock_irq(&table->rwlock);

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:26:27 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C0DAF5441B;
 Fri, 30 Mar 2018 18:26:27 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 07D1274DDF;
 Fri, 30 Mar 2018 18:26:27 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 02C19496E;
 Fri, 30 Mar 2018 18:26:27 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIQQor072233;
 Fri, 30 Mar 2018 18:26:26 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIQQip072232;
 Fri, 30 Mar 2018 18:26:26 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301826.w2UIQQip072232@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:26:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331775 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331775
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:26:27 -0000

Author: hselasky
Date: Fri Mar 30 18:26:26 2018
New Revision: 331775
URL: https://svnweb.freebsd.org/changeset/base/331775

Log:
  MFC r330493:
  Make deletion of RoCE GID entries synchronous in ibcore.
  
  When a network device is departing, the RoCE GID entries should be
  cleared before the default L2 link layer address is freed. Else a NULL
  pointer access may happen.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c	Fri Mar 30 18:25:30 2018	(r331774)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c	Fri Mar 30 18:26:26 2018	(r331775)
@@ -362,6 +362,9 @@ roce_gid_delete_all_event(struct net_device *ndev)
 	dev_hold(ndev);
 	work->ndev = ndev;
 	queue_work(roce_gid_mgmt_wq, &work->work);
+
+	/* make sure job is complete before returning */
+	flush_workqueue(roce_gid_mgmt_wq);
 }
 
 static int

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:26:30 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5E1F7F5445D;
 Fri, 30 Mar 2018 18:26:30 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 0D0B874DE8;
 Fri, 30 Mar 2018 18:26:30 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 080394970;
 Fri, 30 Mar 2018 18:26:30 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIQTHl072281;
 Fri, 30 Mar 2018 18:26:29 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIQTlB072280;
 Fri, 30 Mar 2018 18:26:29 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803301826.w2UIQTlB072280@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Fri, 30 Mar 2018 18:26:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331776 - head/sys/netinet6
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: head/sys/netinet6
X-SVN-Commit-Revision: 331776
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:26:30 -0000

Author: brooks
Date: Fri Mar 30 18:26:29 2018
New Revision: 331776
URL: https://svnweb.freebsd.org/changeset/base/331776

Log:
  Remove a comment that suggests checking that a non-pointer is non-NULL.
  
  Reviewed by:	melifaro, markj, hrs, ume
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14904

Modified:
  head/sys/netinet6/in6.c

Modified: head/sys/netinet6/in6.c
==============================================================================
--- head/sys/netinet6/in6.c	Fri Mar 30 18:26:26 2018	(r331775)
+++ head/sys/netinet6/in6.c	Fri Mar 30 18:26:29 2018	(r331776)
@@ -476,10 +476,6 @@ in6_control(struct socket *so, u_long cmd, caddr_t dat
 			error = EINVAL;
 			goto out;
 		}
-		/*
-		 * XXX: should we check if ifa_dstaddr is NULL and return
-		 * an error?
-		 */
 		ifr->ifr_dstaddr = ia->ia_dstaddr;
 		if ((error = sa6_recoverscope(&ifr->ifr_dstaddr)) != 0)
 			goto out;

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:27:25 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83081F545D1;
 Fri, 30 Mar 2018 18:27:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 33E857508C;
 Fri, 30 Mar 2018 18:27:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2EA6B497A;
 Fri, 30 Mar 2018 18:27:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIRPFa072378;
 Fri, 30 Mar 2018 18:27:25 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIRPGa072377;
 Fri, 30 Mar 2018 18:27:25 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301827.w2UIRPGa072377@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:27:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331777 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331777
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:27:25 -0000

Author: hselasky
Date: Fri Mar 30 18:27:24 2018
New Revision: 331777
URL: https://svnweb.freebsd.org/changeset/base/331777

Log:
  MFC r330494:
  Select RoCEv2 by default in ibcore.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:26:29 2018	(r331776)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:27:24 2018	(r331777)
@@ -4137,7 +4137,6 @@ static void cma_add_one(struct ib_device *device)
 	struct cma_device *cma_dev;
 	struct rdma_id_private *id_priv;
 	unsigned int i;
-	unsigned long supported_gids = 0;
 
 	cma_dev = kmalloc(sizeof *cma_dev, GFP_KERNEL);
 	if (!cma_dev)
@@ -4154,10 +4153,23 @@ static void cma_add_one(struct ib_device *device)
 		return;
 	}
 	for (i = rdma_start_port(device); i <= rdma_end_port(device); i++) {
+		unsigned long supported_gids;
+		unsigned int default_gid_type;
+
 		supported_gids = roce_gid_type_mask_support(device, i);
-		WARN_ON(!supported_gids);
+
+		if (WARN_ON(!supported_gids)) {
+			/* set something valid */
+			default_gid_type = 0;
+		} else if (test_bit(IB_GID_TYPE_ROCE_UDP_ENCAP, &supported_gids)) {
+			/* prefer RoCEv2, if supported */
+			default_gid_type = IB_GID_TYPE_ROCE_UDP_ENCAP;
+		} else {
+			default_gid_type = find_first_bit(&supported_gids,
+			    BITS_PER_LONG);
+		}
 		cma_dev->default_gid_type[i - rdma_start_port(device)] =
-			find_first_bit(&supported_gids, BITS_PER_LONG);
+		    default_gid_type;
 	}
 
 	init_completion(&cma_dev->comp);

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:28:22 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AFDE7F54774;
 Fri, 30 Mar 2018 18:28:22 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 641C275251;
 Fri, 30 Mar 2018 18:28:22 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5EF4E497C;
 Fri, 30 Mar 2018 18:28:22 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UISMT4072469;
 Fri, 30 Mar 2018 18:28:22 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UISMY6072468;
 Fri, 30 Mar 2018 18:28:22 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301828.w2UISMY6072468@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:28:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331778 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331778
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:28:22 -0000

Author: hselasky
Date: Fri Mar 30 18:28:22 2018
New Revision: 331778
URL: https://svnweb.freebsd.org/changeset/base/331778

Log:
  MFC r330495:
  Map type of service, TOS, to IB or VLAN service level 1:1 in ibcore.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:27:24 2018	(r331777)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:28:22 2018	(r331778)
@@ -2422,8 +2422,17 @@ static int cma_resolve_iw_route(struct rdma_id_private
 
 static int iboe_tos_to_sl(struct net_device *ndev, int tos)
 {
-	/* TODO: Implement this function */
-	return 0;
+	/* get service level, SL, from type of service, TOS */
+	int sl = tos;
+
+	/* range check input argument and map 1:1 */
+	if (sl > 255)
+		sl = 255;
+	else if (sl < 0)
+		sl = 0;
+
+	/* final mappings are done by the vendor specific drivers */
+	return sl;
 }
 
 static enum ib_gid_type cma_route_gid_type(enum rdma_network_type network_type,

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:29:15 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 126FEF548C4;
 Fri, 30 Mar 2018 18:29:15 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B8870753B8;
 Fri, 30 Mar 2018 18:29:14 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B39C7497F;
 Fri, 30 Mar 2018 18:29:14 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UITEGx072558;
 Fri, 30 Mar 2018 18:29:14 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UITEwX072557;
 Fri, 30 Mar 2018 18:29:14 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301829.w2UITEwX072557@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:29:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331779 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331779
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:29:15 -0000

Author: hselasky
Date: Fri Mar 30 18:29:14 2018
New Revision: 331779
URL: https://svnweb.freebsd.org/changeset/base/331779

Log:
  MFC r330496:
  Need to check for IPv6 linklocal address inside rdma_resolve_addr() in ibcore.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:28:22 2018	(r331778)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:29:14 2018	(r331779)
@@ -107,6 +107,7 @@ const char *__attribute_const__ rdma_event_msg(enum rd
 }
 EXPORT_SYMBOL(rdma_event_msg);
 
+static int cma_check_linklocal(struct rdma_dev_addr *, struct sockaddr *);
 static void cma_add_one(struct ib_device *device);
 static void cma_remove_one(struct ib_device *device, void *client_data);
 
@@ -2807,6 +2808,10 @@ int rdma_resolve_addr(struct rdma_cm_id *id, struct so
 		if (dst_addr->sa_family == AF_IB) {
 			ret = cma_resolve_ib_addr(id_priv);
 		} else {
+			ret = cma_check_linklocal(&id->route.addr.dev_addr, dst_addr);
+			if (ret)
+				goto err;
+
 			ret = rdma_resolve_ip(&addr_client, cma_src_addr(id_priv),
 					      dst_addr, &id->route.addr.dev_addr,
 					      timeout_ms, addr_handler, id_priv);

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:30:10 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C92A3F54A1F;
 Fri, 30 Mar 2018 18:30:10 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 7D0B37558F;
 Fri, 30 Mar 2018 18:30:10 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5D7FA4983;
 Fri, 30 Mar 2018 18:30:10 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIUAHG072679;
 Fri, 30 Mar 2018 18:30:10 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIUAs5072678;
 Fri, 30 Mar 2018 18:30:10 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301830.w2UIUAs5072678@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:30:10 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331780 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331780
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:30:11 -0000

Author: hselasky
Date: Fri Mar 30 18:30:10 2018
New Revision: 331780
URL: https://svnweb.freebsd.org/changeset/base/331780

Log:
  MFC r330501:
  Make sure to register the VLAN GIDs using the VLAN network interface
  and not the parent one in ibcore. Else looking up the VLAN GIDs will
  fail for VLAN IPs.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c	Fri Mar 30 18:29:14 2018	(r331779)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c	Fri Mar 30 18:30:10 2018	(r331780)
@@ -169,12 +169,14 @@ roce_gid_update_addr_callback(struct ib_device *device
 			struct sockaddr_in v4;
 			struct sockaddr_in6 v6;
 		} ipx_addr;
+		struct net_device *ndev;
 	};
 	struct ipx_entry *entry;
 	struct net_device *idev;
 #if defined(INET) || defined(INET6)
 	struct ifaddr *ifa;
 #endif
+	struct ib_gid_attr gid_attr;
 	union ib_gid gid;
 	int default_gids;
 	u16 index_num;
@@ -211,6 +213,7 @@ roce_gid_update_addr_callback(struct ib_device *device
 				continue;
 			}
 			entry->ipx_addr.v4 = *((struct sockaddr_in *)ifa->ifa_addr);
+			entry->ndev = idev;
 			STAILQ_INSERT_TAIL(&ipx_head, entry, entry);
 		}
 #endif
@@ -226,6 +229,7 @@ roce_gid_update_addr_callback(struct ib_device *device
 				continue;
 			}
 			entry->ipx_addr.v6 = *((struct sockaddr_in6 *)ifa->ifa_addr);
+			entry->ndev = idev;
 
 			/* trash IPv6 scope ID */
 			sa6_recoverscope(&entry->ipx_addr.v6);
@@ -251,19 +255,25 @@ roce_gid_update_addr_callback(struct ib_device *device
 				continue;
 			/* check if entry found */
 			if (ib_find_cached_gid_by_port(device, &gid, i,
-			    port, ndev, &index_num) == 0)
+			    port, entry->ndev, &index_num) == 0)
 				break;
 		}
 		if (i != IB_GID_TYPE_SIZE)
 			continue;
 		/* add new GID */
-		update_gid(GID_ADD, device, port, &gid, ndev);
+		update_gid(GID_ADD, device, port, &gid, entry->ndev);
 	}
 
 	/* remove stale GIDs, if any */
-	for (i = default_gids; ib_get_cached_gid(device, port, i, &gid, NULL) == 0; i++) {
+	for (i = default_gids; ib_get_cached_gid(device, port, i, &gid, &gid_attr) == 0; i++) {
 		union ipx_addr ipx;
 
+		/* check for valid network device pointer */
+		ndev = gid_attr.ndev;
+		if (ndev == NULL)
+			continue;
+		dev_put(ndev);
+
 		/* don't delete empty entries */
 		if (memcmp(&gid, &zgid, sizeof(zgid)) == 0)
 			continue;
@@ -274,7 +284,8 @@ roce_gid_update_addr_callback(struct ib_device *device
 		rdma_gid2ip(&ipx.sa[0], &gid);
 
 		STAILQ_FOREACH(entry, &ipx_head, entry) {
-			if (memcmp(&entry->ipx_addr, &ipx, sizeof(ipx)) == 0)
+			if (entry->ndev == ndev &&
+			    memcmp(&entry->ipx_addr, &ipx, sizeof(ipx)) == 0)
 				break;
 		}
 		/* check if entry found */

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:31:14 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BFBA8F54DAD;
 Fri, 30 Mar 2018 18:31:14 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 72D11758B7;
 Fri, 30 Mar 2018 18:31:14 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6DB9949B3;
 Fri, 30 Mar 2018 18:31:14 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIVEvu074247;
 Fri, 30 Mar 2018 18:31:14 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIVENP074246;
 Fri, 30 Mar 2018 18:31:14 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301831.w2UIVENP074246@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:31:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331781 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331781
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:31:15 -0000

Author: hselasky
Date: Fri Mar 30 18:31:14 2018
New Revision: 331781
URL: https://svnweb.freebsd.org/changeset/base/331781

Log:
  MFC r330504:
  Add support for loopback in ibcore.
  
  Implement the missing pieces in addr_resolve() to support loopback
  addresses. IB core will test for the IFF_LOOPBACK flag in the network
  interface and treat these devices in a special way.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c	Fri Mar 30 18:30:10 2018	(r331780)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c	Fri Mar 30 18:31:14 2018	(r331781)
@@ -123,7 +123,15 @@ rdma_copy_addr_sub(u8 *dst, const u8 *src, unsigned mi
 int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
 		     const unsigned char *dst_dev_addr)
 {
-	if (dev->if_type == IFT_INFINIBAND)
+	/* check for loopback device */
+	if (dev->if_type == IFT_LOOP) {
+		dev_addr->dev_type = ARPHRD_ETHER;
+		memset(dev_addr->src_dev_addr, 0, MAX_ADDR_LEN);
+		memset(dev_addr->broadcast, 0, MAX_ADDR_LEN);
+		memset(dev_addr->dst_dev_addr, 0, MAX_ADDR_LEN);
+		dev_addr->bound_dev_if = dev->if_index;
+		return (0);
+	} else if (dev->if_type == IFT_INFINIBAND)
 		dev_addr->dev_type = ARPHRD_INFINIBAND;
 	else if (dev->if_type == IFT_ETHER)
 		dev_addr->dev_type = ARPHRD_ETHER;
@@ -240,10 +248,10 @@ static int addr_resolve_multi(u8 *edst, struct ifnet *
 static int addr4_resolve(struct sockaddr_in *src_in,
 			 const struct sockaddr_in *dst_in,
 			 struct rdma_dev_addr *addr,
+			 u8 *edst,
 			 struct ifnet **ifpp)
 {
 	struct sockaddr_in dst_tmp = *dst_in;
-	u8 edst[MAX_ADDR_LEN];
 	in_port_t src_port;
 	struct sockaddr *saddr;
 	struct rtentry *rte;
@@ -278,8 +286,7 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 		if (rte == NULL) {
 			error = EHOSTUNREACH;
 			goto done;
-		} else if (rte->rt_ifp == NULL || rte->rt_ifp == V_loif ||
-		    RT_LINK_IS_UP(rte->rt_ifp) == 0) {
+		} else if (rte->rt_ifp == NULL || RT_LINK_IS_UP(rte->rt_ifp) == 0) {
 			RTFREE_LOCKED(rte);
 			error = EHOSTUNREACH;
 			goto done;
@@ -294,8 +301,14 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 	/* Step 2 - find outgoing network interface */
 	switch (type) {
 	case 0:
-		/* source check */
-		ifp = ip_dev_find(addr->net, src_in->sin_addr.s_addr);
+		/* check for loopback device */
+		if (rte->rt_ifp->if_flags & IFF_LOOPBACK) {
+			ifp = rte->rt_ifp;
+			dev_hold(ifp);
+		} else {
+			ifp = ip_dev_find(addr->net, src_in->sin_addr.s_addr);
+		}
+		/* check source interface */
 		if (ifp == NULL) {
 			error = ENETUNREACH;
 			goto error_rt_free;
@@ -305,11 +318,17 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 		}
 		break;
 	case 1:
+		/* check for loopback device */
+		if (rte->rt_ifp->if_flags & IFF_LOOPBACK)
+			saddr = (struct sockaddr *)&dst_tmp;
+		else
+			saddr = rte->rt_ifa->ifa_addr;
+
 		/* get destination network interface from route */
 		ifp = rte->rt_ifp;
 		dev_hold(ifp);
-		saddr = rte->rt_ifa->ifa_addr;
 
+		/* update source address */
 		src_port = src_in->sin_port;
 		memcpy(src_in, saddr, rdma_addr_size(saddr));
 		src_in->sin_port = src_port;	/* preserve port number */
@@ -324,13 +343,17 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 	if (dst_tmp.sin_addr.s_addr == INADDR_BROADCAST) {
 		rdma_copy_addr_sub(edst, ifp->if_broadcastaddr,
 		    ifp->if_addrlen, MAX_ADDR_LEN);
+		error = 0;
 	} else if (IN_MULTICAST(ntohl(dst_tmp.sin_addr.s_addr))) {
 		error = addr_resolve_multi(edst, ifp, (struct sockaddr *)&dst_tmp);
 		if (error != 0)
 			goto error_put_ifp;
+	} else if (ifp->if_flags & IFF_LOOPBACK) {
+		memset(edst, 0, MAX_ADDR_LEN);
+		error = 0;
 	} else {
 		bool is_gw = (rte->rt_flags & RTF_GATEWAY) != 0;
-		memset(edst, 0, sizeof(edst));
+		memset(edst, 0, MAX_ADDR_LEN);
 		error = arpresolve(ifp, is_gw, NULL, is_gw ?
 		    rte->rt_gateway : (const struct sockaddr *)&dst_tmp,
 		    edst, NULL, NULL);
@@ -340,13 +363,6 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 			addr->network = RDMA_NETWORK_IPV4;
 	}
 
-	/*
-	 * Step 4 - copy destination and source MAC addresses
-	 */
-	error = -rdma_copy_addr(addr, ifp, edst);
-	if (error != 0)
-		goto error_put_ifp;
-
 	if (rte != NULL)
 		RTFREE(rte);
 
@@ -369,6 +385,7 @@ done:
 static int addr4_resolve(struct sockaddr_in *src_in,
 			 const struct sockaddr_in *dst_in,
 			 struct rdma_dev_addr *addr,
+			 u8 *edst,
 			 struct ifnet **ifpp)
 {
 	return -EADDRNOTAVAIL;
@@ -379,10 +396,10 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 static int addr6_resolve(struct sockaddr_in6 *src_in,
 			 const struct sockaddr_in6 *dst_in,
 			 struct rdma_dev_addr *addr,
+			 u8 *edst,
 			 struct ifnet **ifpp)
 {
 	struct sockaddr_in6 dst_tmp = *dst_in;
-	u8 edst[MAX_ADDR_LEN];
 	in_port_t src_port;
 	struct sockaddr *saddr;
 	struct rtentry *rte;
@@ -424,8 +441,7 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 		if (rte == NULL) {
 			error = EHOSTUNREACH;
 			goto done;
-		} else if (rte->rt_ifp == NULL || rte->rt_ifp == V_loif ||
-		    RT_LINK_IS_UP(rte->rt_ifp) == 0) {
+		} else if (rte->rt_ifp == NULL || RT_LINK_IS_UP(rte->rt_ifp) == 0) {
 			RTFREE_LOCKED(rte);
 			error = EHOSTUNREACH;
 			goto done;
@@ -440,8 +456,14 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 	/* Step 2 - find outgoing network interface */
 	switch (type) {
 	case 0:
-		/* source check */
-		ifp = ip6_dev_find(addr->net, src_in->sin6_addr);
+		/* check for loopback device */
+		if (rte->rt_ifp->if_flags & IFF_LOOPBACK) {
+			ifp = rte->rt_ifp;
+			dev_hold(ifp);
+		} else {
+			ifp = ip6_dev_find(addr->net, src_in->sin6_addr);
+		}
+		/* check source interface */
 		if (ifp == NULL) {
 			error = ENETUNREACH;
 			goto error_rt_free;
@@ -451,10 +473,15 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 		}
 		break;
 	case 1:
+		/* check for loopback device */
+		if (rte->rt_ifp->if_flags & IFF_LOOPBACK)
+			saddr = (struct sockaddr *)&dst_tmp;
+		else
+			saddr = rte->rt_ifa->ifa_addr;
+
 		/* get destination network interface from route */
 		ifp = rte->rt_ifp;
 		dev_hold(ifp);
-		saddr = rte->rt_ifa->ifa_addr;
 
 		src_port = src_in->sin6_port;
 		memcpy(src_in, saddr, rdma_addr_size(saddr));
@@ -472,9 +499,12 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 		    (struct sockaddr *)&dst_tmp);
 		if (error != 0)
 			goto error_put_ifp;
+	} else if (rte->rt_ifp->if_flags & IFF_LOOPBACK) {
+		memset(edst, 0, MAX_ADDR_LEN);
+		error = 0;
 	} else {
 		bool is_gw = (rte->rt_flags & RTF_GATEWAY) != 0;
-		memset(edst, 0, sizeof(edst));
+		memset(edst, 0, MAX_ADDR_LEN);
 		error = nd6_resolve(ifp, is_gw, NULL, is_gw ?
 		    rte->rt_gateway : (const struct sockaddr *)&dst_tmp,
 		    edst, NULL, NULL);
@@ -484,13 +514,6 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 			addr->network = RDMA_NETWORK_IPV6;
 	}
 
-	/*
-	 * Step 4 - copy destination and source MAC addresses
-	 */
-	error = -rdma_copy_addr(addr, ifp, edst);
-	if (error != 0)
-		goto error_put_ifp;
-
 	if (rte != NULL)
 		RTFREE(rte);
 
@@ -513,6 +536,7 @@ done:
 static int addr6_resolve(struct sockaddr_in6 *src_in,
 			 const struct sockaddr_in6 *dst_in,
 			 struct rdma_dev_addr *addr,
+			 u8 *edst,
 			 struct ifnet **ifpp)
 {
 	return -EADDRNOTAVAIL;
@@ -521,6 +545,7 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 
 static int addr_resolve_neigh(struct ifnet *dev,
 			      const struct sockaddr *dst_in,
+			      u8 *edst,
 			      struct rdma_dev_addr *addr)
 {
 	if (dev->if_flags & IFF_LOOPBACK) {
@@ -536,7 +561,7 @@ static int addr_resolve_neigh(struct ifnet *dev,
 
 	/* If the device doesn't do ARP internally */
 	if (!(dev->if_flags & IFF_NOARP))
-		return 0;
+		return rdma_copy_addr(addr, dev, edst);
 
 	return rdma_copy_addr(addr, dev, NULL);
 }
@@ -547,6 +572,7 @@ static int addr_resolve(struct sockaddr *src_in,
 			bool resolve_neigh)
 {
 	struct net_device *ndev = NULL;
+	u8 edst[MAX_ADDR_LEN];
 	int ret;
 
 	if (dst_in->sa_family != src_in->sa_family)
@@ -555,21 +581,21 @@ static int addr_resolve(struct sockaddr *src_in,
 	if (src_in->sa_family == AF_INET) {
 		ret = addr4_resolve((struct sockaddr_in *)src_in,
 				    (const struct sockaddr_in *)dst_in,
-				    addr, &ndev);
+				    addr, edst, &ndev);
 		if (ret)
 			return ret;
 
 		if (resolve_neigh)
-			ret = addr_resolve_neigh(ndev, dst_in, addr);
+			ret = addr_resolve_neigh(ndev, dst_in, edst, addr);
 	} else {
 		ret = addr6_resolve((struct sockaddr_in6 *)src_in,
 				    (const struct sockaddr_in6 *)dst_in, addr,
-				    &ndev);
+				    edst, &ndev);
 		if (ret)
 			return ret;
 
 		if (resolve_neigh)
-			ret = addr_resolve_neigh(ndev, dst_in, addr);
+			ret = addr_resolve_neigh(ndev, dst_in, edst, addr);
 	}
 
 	addr->bound_dev_if = ndev->if_index;

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:32:39 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 49CB9F54FD5;
 Fri, 30 Mar 2018 18:32:39 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EF9C275B59;
 Fri, 30 Mar 2018 18:32:38 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EAA434B26;
 Fri, 30 Mar 2018 18:32:38 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIWcbF077233;
 Fri, 30 Mar 2018 18:32:38 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIWcvb077232;
 Fri, 30 Mar 2018 18:32:38 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301832.w2UIWcvb077232@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:32:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331782 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331782
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:32:39 -0000

Author: hselasky
Date: Fri Mar 30 18:32:38 2018
New Revision: 331782
URL: https://svnweb.freebsd.org/changeset/base/331782

Log:
  MFC r330506:
  Pass valid if_index to rdma_addr_find_l2_eth_by_grh() in ibcore when possible.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c	Fri Mar 30 18:31:14 2018	(r331781)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c	Fri Mar 30 18:32:38 2018	(r331782)
@@ -483,7 +483,7 @@ int ib_init_ah_from_wc(struct ib_device *device, u8 po
 		return ret;
 
 	if (rdma_protocol_roce(device, port_num)) {
-		int if_index = 0;
+		int if_index;
 		u16 vlan_id = wc->wc_flags & IB_WC_WITH_VLAN ?
 				wc->vlan_id : 0xffff;
 		struct net_device *idev;
@@ -498,6 +498,12 @@ int ib_init_ah_from_wc(struct ib_device *device, u8 po
 		idev = device->get_netdev(device, port_num);
 		if (!idev)
 			return -ENODEV;
+
+		/*
+		 * Get network interface index early on. This is
+		 * useful for IPv6 link local addresses:
+		 */
+		if_index = idev->if_index;
 
 		ret = rdma_addr_find_l2_eth_by_grh(&dgid, &sgid,
 						   ah_attr->dmac,

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:33:31 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A2C4F55106;
 Fri, 30 Mar 2018 18:33:31 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EC64775CC4;
 Fri, 30 Mar 2018 18:33:30 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E74054B27;
 Fri, 30 Mar 2018 18:33:30 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIXUig077356;
 Fri, 30 Mar 2018 18:33:30 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIXUGD077351;
 Fri, 30 Mar 2018 18:33:30 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301833.w2UIXUGD077351@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:33:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331783 - in stable/11/sys/ofed: drivers/infiniband/core
 include/rdma
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11/sys/ofed: drivers/infiniband/core include/rdma
X-SVN-Commit-Revision: 331783
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:33:31 -0000

Author: hselasky
Date: Fri Mar 30 18:33:30 2018
New Revision: 331783
URL: https://svnweb.freebsd.org/changeset/base/331783

Log:
  MFC r330507:
  Get correct network device when accepting incoming RDMA connections in ibcore.
  
  This patch ensures the GID index is always used as a basis of resolving
  incoming RDMA connections, as compared to the GID value itself.
  
  Background:
  On a per infiniband port basis, the GID identifier is not a unique identifier!
  This assumption falls apart when VLAN ID, IPv6 scope ID and RoCE type,
  as supported by RoCE v2, is taken into account. This additional
  information is stored in the so-called GID attributes and is needed to
  correctly identify the destination network interface for an incoming
  connection.
  
  Different VLANs are allowed to define the same IPv4 addresses and especially
  for the default IPv6 link-local addresses or when using so-called containers
  or jails, this is true.
  
  The VNET information for the destination network interface is needed in
  order to perform the L2 address lookup in the right Virtual Network Stack
  context.
  
  Consequently old functions previously used by RoCE v1, like
  rdma_addr_find_smac_by_sgid() are impossible to support, because
  there can be multiple identical GIDs associated with the same
  infiniband port, and the answer to such a request becomes undefined.
  This function has been removed.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c
  stable/11/sys/ofed/include/rdma/ib_addr.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c	Fri Mar 30 18:32:38 2018	(r331782)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c	Fri Mar 30 18:33:30 2018	(r331783)
@@ -151,8 +151,7 @@ int rdma_copy_addr(struct rdma_dev_addr *dev_addr, str
 EXPORT_SYMBOL(rdma_copy_addr);
 
 int rdma_translate_ip(const struct sockaddr *addr,
-		      struct rdma_dev_addr *dev_addr,
-		      u16 *vlan_id)
+		      struct rdma_dev_addr *dev_addr)
 {
 	struct net_device *dev = NULL;
 	int ret = -EADDRNOTAVAIL;
@@ -185,8 +184,6 @@ int rdma_translate_ip(const struct sockaddr *addr,
 
 	if (dev != NULL) {
 		ret = rdma_copy_addr(dev_addr, dev, NULL);
-		if (vlan_id)
-			*vlan_id = rdma_vlan_dev_vlan_id(dev);
 		dev_put(dev);
 	}
 	return ret;
@@ -305,6 +302,8 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 		if (rte->rt_ifp->if_flags & IFF_LOOPBACK) {
 			ifp = rte->rt_ifp;
 			dev_hold(ifp);
+		} else if (addr->bound_dev_if != 0) {
+			ifp = dev_get_by_index(addr->net, addr->bound_dev_if);
 		} else {
 			ifp = ip_dev_find(addr->net, src_in->sin_addr.s_addr);
 		}
@@ -460,6 +459,8 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 		if (rte->rt_ifp->if_flags & IFF_LOOPBACK) {
 			ifp = rte->rt_ifp;
 			dev_hold(ifp);
+		} else if (addr->bound_dev_if != 0) {
+			ifp = dev_get_by_index(addr->net, addr->bound_dev_if);
 		} else {
 			ifp = ip6_dev_find(addr->net, src_in->sin6_addr);
 		}
@@ -551,7 +552,7 @@ static int addr_resolve_neigh(struct ifnet *dev,
 	if (dev->if_flags & IFF_LOOPBACK) {
 		int ret;
 
-		ret = rdma_translate_ip(dst_in, addr, NULL);
+		ret = rdma_translate_ip(dst_in, addr);
 		if (!ret)
 			memcpy(addr->dst_dev_addr, addr->src_dev_addr,
 			       MAX_ADDR_LEN);
@@ -757,13 +758,12 @@ static void resolve_cb(int status, struct sockaddr *sr
 
 int rdma_addr_find_l2_eth_by_grh(const union ib_gid *sgid,
 				 const union ib_gid *dgid,
-				 u8 *dmac, u16 *vlan_id, int *if_index,
+				 u8 *dmac, struct net_device *dev,
 				 int *hoplimit)
 {
 	int ret = 0;
 	struct rdma_dev_addr dev_addr;
 	struct resolve_cb_context ctx;
-	struct net_device *dev;
 
 	union {
 		struct sockaddr     _sockaddr;
@@ -771,15 +771,14 @@ int rdma_addr_find_l2_eth_by_grh(const union ib_gid *s
 		struct sockaddr_in6 _sockaddr_in6;
 	} sgid_addr, dgid_addr;
 
-
 	rdma_gid2ip(&sgid_addr._sockaddr, sgid);
 	rdma_gid2ip(&dgid_addr._sockaddr, dgid);
 
 	memset(&dev_addr, 0, sizeof(dev_addr));
-	if (if_index)
-		dev_addr.bound_dev_if = *if_index;
-	dev_addr.net = TD_TO_VNET(curthread);
 
+	dev_addr.bound_dev_if = dev->if_index;
+	dev_addr.net = dev_net(dev);
+
 	ctx.addr = &dev_addr;
 	init_completion(&ctx.comp);
 	ret = rdma_resolve_ip(&self, &sgid_addr._sockaddr, &dgid_addr._sockaddr,
@@ -794,42 +793,11 @@ int rdma_addr_find_l2_eth_by_grh(const union ib_gid *s
 		return ret;
 
 	memcpy(dmac, dev_addr.dst_dev_addr, ETH_ALEN);
-	dev = dev_get_by_index(dev_addr.net, dev_addr.bound_dev_if);
-	if (!dev)
-		return -ENODEV;
-	if (if_index)
-		*if_index = dev_addr.bound_dev_if;
-	if (vlan_id)
-		*vlan_id = rdma_vlan_dev_vlan_id(dev);
 	if (hoplimit)
 		*hoplimit = dev_addr.hoplimit;
-	dev_put(dev);
 	return ret;
 }
 EXPORT_SYMBOL(rdma_addr_find_l2_eth_by_grh);
-
-int rdma_addr_find_smac_by_sgid(union ib_gid *sgid, u8 *smac, u16 *vlan_id)
-{
-	int ret = 0;
-	struct rdma_dev_addr dev_addr;
-	union {
-		struct sockaddr     _sockaddr;
-		struct sockaddr_in  _sockaddr_in;
-		struct sockaddr_in6 _sockaddr_in6;
-	} gid_addr;
-
-	rdma_gid2ip(&gid_addr._sockaddr, sgid);
-
-	memset(&dev_addr, 0, sizeof(dev_addr));
-	dev_addr.net = TD_TO_VNET(curthread);
-	ret = rdma_translate_ip(&gid_addr._sockaddr, &dev_addr, vlan_id);
-	if (ret)
-		return ret;
-
-	memcpy(smac, dev_addr.src_dev_addr, ETH_ALEN);
-	return ret;
-}
-EXPORT_SYMBOL(rdma_addr_find_smac_by_sgid);
 
 int addr_init(void)
 {

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:32:38 2018	(r331782)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:33:30 2018	(r331783)
@@ -533,7 +533,7 @@ static int cma_translate_addr(struct sockaddr *addr, s
 	int ret;
 
 	if (addr->sa_family != AF_IB) {
-		ret = rdma_translate_ip(addr, dev_addr, NULL);
+		ret = rdma_translate_ip(addr, dev_addr);
 	} else {
 		cma_translate_ib((struct sockaddr_ib *) addr, dev_addr);
 		ret = 0;
@@ -2094,7 +2094,7 @@ static int iw_conn_req_handler(struct iw_cm_id *cm_id,
 	mutex_lock_nested(&conn_id->handler_mutex, SINGLE_DEPTH_NESTING);
 	conn_id->state = RDMA_CM_CONNECT;
 
-	ret = rdma_translate_ip(laddr, &conn_id->id.route.addr.dev_addr, NULL);
+	ret = rdma_translate_ip(laddr, &conn_id->id.route.addr.dev_addr);
 	if (ret) {
 		mutex_unlock(&conn_id->handler_mutex);
 		rdma_destroy_id(new_cm_id);

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c	Fri Mar 30 18:32:38 2018	(r331782)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c	Fri Mar 30 18:33:30 2018	(r331783)
@@ -483,56 +483,29 @@ int ib_init_ah_from_wc(struct ib_device *device, u8 po
 		return ret;
 
 	if (rdma_protocol_roce(device, port_num)) {
-		int if_index;
-		u16 vlan_id = wc->wc_flags & IB_WC_WITH_VLAN ?
+		struct ib_gid_attr dgid_attr;
+		const u16 vlan_id = wc->wc_flags & IB_WC_WITH_VLAN ?
 				wc->vlan_id : 0xffff;
-		struct net_device *idev;
-		struct net_device *resolved_dev;
 
 		if (!(wc->wc_flags & IB_WC_GRH))
 			return -EPROTOTYPE;
 
-		if (!device->get_netdev)
-			return -EOPNOTSUPP;
-
-		idev = device->get_netdev(device, port_num);
-		if (!idev)
-			return -ENODEV;
-
-		/*
-		 * Get network interface index early on. This is
-		 * useful for IPv6 link local addresses:
-		 */
-		if_index = idev->if_index;
-
-		ret = rdma_addr_find_l2_eth_by_grh(&dgid, &sgid,
-						   ah_attr->dmac,
-						   wc->wc_flags & IB_WC_WITH_VLAN ?
-						   NULL : &vlan_id,
-						   &if_index, &hoplimit);
-		if (ret) {
-			dev_put(idev);
+		ret = get_sgid_index_from_eth(device, port_num, vlan_id,
+					      &dgid, gid_type, &gid_index);
+		if (ret)
 			return ret;
-		}
 
-		resolved_dev = dev_get_by_index(&init_net, if_index);
-		if (resolved_dev->if_flags & IFF_LOOPBACK) {
-			dev_put(resolved_dev);
-			resolved_dev = idev;
-			dev_hold(resolved_dev);
-		}
-		rcu_read_lock();
-		if (resolved_dev != idev && !rdma_is_upper_dev_rcu(idev,
-								   resolved_dev))
-			ret = -EHOSTUNREACH;
-		rcu_read_unlock();
-		dev_put(idev);
-		dev_put(resolved_dev);
+		ret = ib_get_cached_gid(device, port_num, gid_index, &dgid, &dgid_attr);
 		if (ret)
 			return ret;
 
-		ret = get_sgid_index_from_eth(device, port_num, vlan_id,
-					      &dgid, gid_type, &gid_index);
+		if (dgid_attr.ndev == NULL)
+			return -ENODEV;
+
+		ret = rdma_addr_find_l2_eth_by_grh(&dgid, &sgid, ah_attr->dmac,
+		    dgid_attr.ndev, &hoplimit);
+
+		dev_put(dgid_attr.ndev);
 		if (ret)
 			return ret;
 	}
@@ -1207,7 +1180,6 @@ int ib_resolve_eth_dmac(struct ib_qp *qp,
 		} else {
 			union ib_gid		sgid;
 			struct ib_gid_attr	sgid_attr;
-			int			ifindex;
 			int			hop_limit;
 
 			ret = ib_query_gid(qp->device,
@@ -1221,12 +1193,10 @@ int ib_resolve_eth_dmac(struct ib_qp *qp,
 				goto out;
 			}
 
-			ifindex = sgid_attr.ndev->if_index;
-
 			ret = rdma_addr_find_l2_eth_by_grh(&sgid,
 							   &qp_attr->ah_attr.grh.dgid,
 							   qp_attr->ah_attr.dmac,
-							   NULL, &ifindex, &hop_limit);
+							   sgid_attr.ndev, &hop_limit);
 
 			dev_put(sgid_attr.ndev);
 

Modified: stable/11/sys/ofed/include/rdma/ib_addr.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_addr.h	Fri Mar 30 18:32:38 2018	(r331782)
+++ stable/11/sys/ofed/include/rdma/ib_addr.h	Fri Mar 30 18:33:30 2018	(r331783)
@@ -93,10 +93,10 @@ struct rdma_dev_addr {
  * rdma_translate_ip - Translate a local IP address to an RDMA hardware
  *   address.
  *
- * The dev_addr->net field must be initialized.
+ * The dev_addr->net and dev_addr->bound_dev_if fields must be initialized.
  */
 int rdma_translate_ip(const struct sockaddr *addr,
-		      struct rdma_dev_addr *dev_addr, u16 *vlan_id);
+		      struct rdma_dev_addr *dev_addr);
 
 /**
  * rdma_resolve_ip - Resolve source and destination IP addresses to
@@ -132,10 +132,9 @@ int rdma_copy_addr(struct rdma_dev_addr *dev_addr, str
 
 int rdma_addr_size(struct sockaddr *addr);
 
-int rdma_addr_find_smac_by_sgid(union ib_gid *sgid, u8 *smac, u16 *vlan_id);
 int rdma_addr_find_l2_eth_by_grh(const union ib_gid *sgid,
 				 const union ib_gid *dgid,
-				 u8 *smac, u16 *vlan_id, int *if_index,
+				 u8 *smac, struct net_device *dev,
 				 int *hoplimit);
 
 static inline u16 ib_addr_get_pkey(struct rdma_dev_addr *dev_addr)

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:36:46 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 62EA4F555F7;
 Fri, 30 Mar 2018 18:36:46 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 1106875EF9;
 Fri, 30 Mar 2018 18:36:46 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0A3354B2A;
 Fri, 30 Mar 2018 18:36:46 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIakAN077548;
 Fri, 30 Mar 2018 18:36:46 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIait3077536;
 Fri, 30 Mar 2018 18:36:44 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301836.w2UIait3077536@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:36:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331784 - in stable/11/sys: dev/cxgbe/iw_cxgbe
 dev/mlx4/mlx4_ib dev/mlx5/mlx5_ib dev/mthca ofed/drivers/infiniband/core
 ofed/include/rdma ofed/include/uapi/rdma
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11/sys: dev/cxgbe/iw_cxgbe dev/mlx4/mlx4_ib
 dev/mlx5/mlx5_ib dev/mthca ofed/drivers/infiniband/core ofed/include/rdma
 ofed/include/uapi/rdma
X-SVN-Commit-Revision: 331784
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:36:46 -0000

Author: hselasky
Date: Fri Mar 30 18:36:44 2018
New Revision: 331784
URL: https://svnweb.freebsd.org/changeset/base/331784

Log:
  MFC r330508:
  Optimize ibcore RoCE address handle creation from user-space.
  
  Creating a UD address handle from user-space or from the kernel-space,
  when the link layer is ethernet, requires resolving the remote L3
  address into a L2 address. Doing this from the kernel is easy because
  the required ARP(IPv4) and ND6(IPv6) address resolving APIs are readily
  available. In userspace such an interface does not exist and kernel
  help is required.
  
  It should be noted that in an IP-based GID environment, the GID itself
  does not contain all the information needed to resolve the destination
  IP address. For example information like VLAN ID and SCOPE ID, is not
  part of the GID and must be fetched from the GID attributes. Therefore
  a source GID should always be referred to as a GID index. Instead of
  going through various racy steps to obtain information about the
  GID attributes from user-space, this is now all done by the kernel.
  
  This patch optimises the L3 to L2 address resolving using the existing
  create address handle uverbs interface, retrieving back the L2 address
  as an additional user-space information structure.
  
  This commit combines the following Linux upstream commits:
  
  IB/core: Let create_ah return extended response to user
  IB/core: Change ib_resolve_eth_dmac to use it in create AH
  IB/mlx5: Make create/destroy_ah available to userspace
  IB/mlx5: Use kernel driver to help userspace create ah
  IB/mlx5: Report that device has udata response in create_ah
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/cxgbe/iw_cxgbe/provider.c
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib.h
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_ah.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_ah.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
  stable/11/sys/dev/mthca/mthca_provider.c
  stable/11/sys/ofed/drivers/infiniband/core/core_priv.h
  stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_cmd.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c
  stable/11/sys/ofed/include/rdma/ib_verbs.h
  stable/11/sys/ofed/include/uapi/rdma/mlx5-abi.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/cxgbe/iw_cxgbe/provider.c
==============================================================================
--- stable/11/sys/dev/cxgbe/iw_cxgbe/provider.c	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/dev/cxgbe/iw_cxgbe/provider.c	Fri Mar 30 18:36:44 2018	(r331784)
@@ -57,7 +57,8 @@ static int c4iw_modify_port(struct ib_device *ibdev,
 }
 
 static struct ib_ah *c4iw_ah_create(struct ib_pd *pd,
-				    struct ib_ah_attr *ah_attr)
+				    struct ib_ah_attr *ah_attr,
+				    struct ib_udata *udata)
 {
 	return ERR_PTR(-ENOSYS);
 }

Modified: stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib.h
==============================================================================
--- stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib.h	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib.h	Fri Mar 30 18:36:44 2018	(r331784)
@@ -752,7 +752,8 @@ int mlx4_ib_arm_cq(struct ib_cq *cq, enum ib_cq_notify
 void __mlx4_ib_cq_clean(struct mlx4_ib_cq *cq, u32 qpn, struct mlx4_ib_srq *srq);
 void mlx4_ib_cq_clean(struct mlx4_ib_cq *cq, u32 qpn, struct mlx4_ib_srq *srq);
 
-struct ib_ah *mlx4_ib_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr);
+struct ib_ah *mlx4_ib_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr,
+				struct ib_udata *udata);
 int mlx4_ib_query_ah(struct ib_ah *ibah, struct ib_ah_attr *ah_attr);
 int mlx4_ib_destroy_ah(struct ib_ah *ah);
 

Modified: stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_ah.c
==============================================================================
--- stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_ah.c	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_ah.c	Fri Mar 30 18:36:44 2018	(r331784)
@@ -129,7 +129,9 @@ static struct ib_ah *create_iboe_ah(struct ib_pd *pd, 
 	return &ah->ibah;
 }
 
-struct ib_ah *mlx4_ib_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr)
+struct ib_ah *mlx4_ib_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr,
+				struct ib_udata *udata)
+
 {
 	struct mlx4_ib_ah *ah;
 	struct ib_ah *ret;

Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h	Fri Mar 30 18:36:44 2018	(r331784)
@@ -734,7 +734,8 @@ void mlx5_ib_free_srq_wqe(struct mlx5_ib_srq *srq, int
 int mlx5_MAD_IFC(struct mlx5_ib_dev *dev, int ignore_mkey, int ignore_bkey,
 		 u8 port, const struct ib_wc *in_wc, const struct ib_grh *in_grh,
 		 const void *in_mad, void *response_mad);
-struct ib_ah *mlx5_ib_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr);
+struct ib_ah *mlx5_ib_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr,
+				struct ib_udata *udata);
 int mlx5_ib_query_ah(struct ib_ah *ibah, struct ib_ah_attr *ah_attr);
 int mlx5_ib_destroy_ah(struct ib_ah *ah);
 struct ib_srq *mlx5_ib_create_srq(struct ib_pd *pd,

Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_ah.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_ah.c	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_ah.c	Fri Mar 30 18:36:44 2018	(r331784)
@@ -59,7 +59,9 @@ static struct ib_ah *create_ib_ah(struct mlx5_ib_dev *
 	return &ah->ibah;
 }
 
-struct ib_ah *mlx5_ib_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr)
+struct ib_ah *mlx5_ib_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr,
+				struct ib_udata *udata)
+
 {
 	struct mlx5_ib_ah *ah;
 	struct mlx5_ib_dev *dev = to_mdev(pd->device);
@@ -69,6 +71,27 @@ struct ib_ah *mlx5_ib_create_ah(struct ib_pd *pd, stru
 
 	if (ll == IB_LINK_LAYER_ETHERNET && !(ah_attr->ah_flags & IB_AH_GRH))
 		return ERR_PTR(-EINVAL);
+
+	if (ll == IB_LINK_LAYER_ETHERNET && udata) {
+		int err;
+		struct mlx5_ib_create_ah_resp resp = {};
+		u32 min_resp_len = offsetof(typeof(resp), dmac) +
+				   sizeof(resp.dmac);
+
+		if (udata->outlen < min_resp_len)
+			return ERR_PTR(-EINVAL);
+
+		resp.response_length = min_resp_len;
+
+		err = ib_resolve_eth_dmac(pd->device, ah_attr);
+		if (err)
+			return ERR_PTR(err);
+
+		memcpy(resp.dmac, ah_attr->dmac, ETH_ALEN);
+		err = ib_copy_to_udata(udata, &resp, resp.response_length);
+		if (err)
+			return ERR_PTR(err);
+	}
 
 	ah = kzalloc(sizeof(*ah), GFP_ATOMIC);
 	if (!ah)

Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c	Fri Mar 30 18:36:44 2018	(r331784)
@@ -1081,7 +1081,8 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(stru
 		resp.response_length += sizeof(resp.cqe_version);
 
 	if (field_avail(typeof(resp), cmds_supp_uhw, udata->outlen)) {
-		resp.cmds_supp_uhw |= MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE;
+		resp.cmds_supp_uhw |= MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE |
+				      MLX5_USER_CMDS_SUPP_UHW_CREATE_AH;
 		resp.response_length += sizeof(resp.cmds_supp_uhw);
 	}
 
@@ -2975,6 +2976,8 @@ static void *mlx5_ib_add(struct mlx5_core_dev *mdev)
 		(1ull << IB_USER_VERBS_CMD_QUERY_PORT)		|
 		(1ull << IB_USER_VERBS_CMD_ALLOC_PD)		|
 		(1ull << IB_USER_VERBS_CMD_DEALLOC_PD)		|
+		(1ull << IB_USER_VERBS_CMD_CREATE_AH)		|
+		(1ull << IB_USER_VERBS_CMD_DESTROY_AH)		|
 		(1ull << IB_USER_VERBS_CMD_REG_MR)		|
 		(1ull << IB_USER_VERBS_CMD_REREG_MR)		|
 		(1ull << IB_USER_VERBS_CMD_DEREG_MR)		|

Modified: stable/11/sys/dev/mthca/mthca_provider.c
==============================================================================
--- stable/11/sys/dev/mthca/mthca_provider.c	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/dev/mthca/mthca_provider.c	Fri Mar 30 18:36:44 2018	(r331784)
@@ -409,7 +409,8 @@ static int mthca_dealloc_pd(struct ib_pd *pd)
 }
 
 static struct ib_ah *mthca_ah_create(struct ib_pd *pd,
-				     struct ib_ah_attr *ah_attr)
+				     struct ib_ah_attr *ah_attr,
+				     struct ib_udata *udata)
 {
 	int err;
 	struct mthca_ah *ah;

Modified: stable/11/sys/ofed/drivers/infiniband/core/core_priv.h
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/core_priv.h	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/ofed/drivers/infiniband/core/core_priv.h	Fri Mar 30 18:36:44 2018	(r331784)
@@ -76,9 +76,6 @@ void ib_device_unregister_sysfs(struct ib_device *devi
 void ib_cache_setup(void);
 void ib_cache_cleanup(void);
 
-int ib_resolve_eth_dmac(struct ib_qp *qp,
-			struct ib_qp_attr *qp_attr, int *qp_attr_mask);
-
 typedef void (*roce_netdev_callback)(struct ib_device *device, u8 port,
 	      struct net_device *idev, void *cookie);
 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_cmd.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_cmd.c	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_uverbs_cmd.c	Fri Mar 30 18:36:44 2018	(r331784)
@@ -2409,9 +2409,11 @@ ssize_t ib_uverbs_modify_qp(struct ib_uverbs_file *fil
 	attr->alt_ah_attr.port_num 	    = cmd.alt_dest.port_num;
 
 	if (qp->real_qp == qp) {
-		ret = ib_resolve_eth_dmac(qp, attr, &cmd.attr_mask);
-		if (ret)
-			goto release_qp;
+		if (cmd.attr_mask & IB_QP_AV) {
+			ret = ib_resolve_eth_dmac(qp->device, &attr->ah_attr);
+			if (ret)
+				goto release_qp;
+		}
 		ret = qp->device->modify_qp(qp, attr,
 			modify_qp_mask(qp->qp_type, cmd.attr_mask), &udata);
 	} else {
@@ -2882,6 +2884,7 @@ ssize_t ib_uverbs_create_ah(struct ib_uverbs_file *fil
 	struct ib_ah			*ah;
 	struct ib_ah_attr		attr;
 	int ret;
+	struct ib_udata                   udata;
 
 	if (out_len < sizeof resp)
 		return -ENOSPC;
@@ -2889,6 +2892,10 @@ ssize_t ib_uverbs_create_ah(struct ib_uverbs_file *fil
 	if (copy_from_user(&cmd, buf, sizeof cmd))
 		return -EFAULT;
 
+	INIT_UDATA(&udata, buf + sizeof(cmd),
+		   (unsigned long)cmd.response + sizeof(resp),
+		   in_len - sizeof(cmd), out_len - sizeof(resp));
+
 	uobj = kmalloc(sizeof *uobj, GFP_KERNEL);
 	if (!uobj)
 		return -ENOMEM;
@@ -2915,12 +2922,16 @@ ssize_t ib_uverbs_create_ah(struct ib_uverbs_file *fil
 	memset(&attr.dmac, 0, sizeof(attr.dmac));
 	memcpy(attr.grh.dgid.raw, cmd.attr.grh.dgid, 16);
 
-	ah = ib_create_ah(pd, &attr);
+	ah = pd->device->create_ah(pd, &attr, &udata);
+
 	if (IS_ERR(ah)) {
 		ret = PTR_ERR(ah);
 		goto err_put;
 	}
 
+	ah->device  = pd->device;
+	ah->pd      = pd;
+	atomic_inc(&pd->usecnt);
 	ah->uobject  = uobj;
 	uobj->object = ah;
 

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_verbs.c	Fri Mar 30 18:36:44 2018	(r331784)
@@ -321,7 +321,7 @@ struct ib_ah *ib_create_ah(struct ib_pd *pd, struct ib
 {
 	struct ib_ah *ah;
 
-	ah = pd->device->create_ah(pd, ah_attr);
+	ah = pd->device->create_ah(pd, ah_attr, NULL);
 
 	if (!IS_ERR(ah)) {
 		ah->device  = pd->device;
@@ -1161,47 +1161,45 @@ int ib_modify_qp_is_ok(enum ib_qp_state cur_state, enu
 }
 EXPORT_SYMBOL(ib_modify_qp_is_ok);
 
-int ib_resolve_eth_dmac(struct ib_qp *qp,
-			struct ib_qp_attr *qp_attr, int *qp_attr_mask)
+int ib_resolve_eth_dmac(struct ib_device *device,
+			struct ib_ah_attr *ah_attr)
 {
 	int           ret = 0;
 
-	if (*qp_attr_mask & IB_QP_AV) {
-		if (qp_attr->ah_attr.port_num < rdma_start_port(qp->device) ||
-		    qp_attr->ah_attr.port_num > rdma_end_port(qp->device))
-			return -EINVAL;
+	if (ah_attr->port_num < rdma_start_port(device) ||
+	    ah_attr->port_num > rdma_end_port(device))
+		return -EINVAL;
 
-		if (!rdma_cap_eth_ah(qp->device, qp_attr->ah_attr.port_num))
-			return 0;
+	if (!rdma_cap_eth_ah(device, ah_attr->port_num))
+		return 0;
 
-		if (rdma_link_local_addr((struct in6_addr *)qp_attr->ah_attr.grh.dgid.raw)) {
-			rdma_get_ll_mac((struct in6_addr *)qp_attr->ah_attr.grh.dgid.raw,
-					qp_attr->ah_attr.dmac);
-		} else {
-			union ib_gid		sgid;
-			struct ib_gid_attr	sgid_attr;
-			int			hop_limit;
+	if (rdma_link_local_addr((struct in6_addr *)ah_attr->grh.dgid.raw)) {
+		rdma_get_ll_mac((struct in6_addr *)ah_attr->grh.dgid.raw,
+				ah_attr->dmac);
+	} else {
+		union ib_gid		sgid;
+		struct ib_gid_attr	sgid_attr;
+		int			hop_limit;
 
-			ret = ib_query_gid(qp->device,
-					   qp_attr->ah_attr.port_num,
-					   qp_attr->ah_attr.grh.sgid_index,
-					   &sgid, &sgid_attr);
+		ret = ib_query_gid(device,
+				   ah_attr->port_num,
+				   ah_attr->grh.sgid_index,
+				   &sgid, &sgid_attr);
 
-			if (ret || !sgid_attr.ndev) {
-				if (!ret)
-					ret = -ENXIO;
-				goto out;
-			}
+		if (ret || !sgid_attr.ndev) {
+			if (!ret)
+				ret = -ENXIO;
+			goto out;
+		}
 
-			ret = rdma_addr_find_l2_eth_by_grh(&sgid,
-							   &qp_attr->ah_attr.grh.dgid,
-							   qp_attr->ah_attr.dmac,
-							   sgid_attr.ndev, &hop_limit);
+		ret = rdma_addr_find_l2_eth_by_grh(&sgid,
+						   &ah_attr->grh.dgid,
+						   ah_attr->dmac,
+						   sgid_attr.ndev, &hop_limit);
 
-			dev_put(sgid_attr.ndev);
+		dev_put(sgid_attr.ndev);
 
-			qp_attr->ah_attr.grh.hop_limit = hop_limit;
-		}
+		ah_attr->grh.hop_limit = hop_limit;
 	}
 out:
 	return ret;
@@ -1213,11 +1211,13 @@ int ib_modify_qp(struct ib_qp *qp,
 		 struct ib_qp_attr *qp_attr,
 		 int qp_attr_mask)
 {
-	int ret;
+	if (qp_attr_mask & IB_QP_AV) {
+		int ret;
 
-	ret = ib_resolve_eth_dmac(qp, qp_attr, &qp_attr_mask);
-	if (ret)
-		return ret;
+		ret = ib_resolve_eth_dmac(qp->device, &qp_attr->ah_attr);
+		if (ret)
+			return ret;
+	}
 
 	return qp->device->modify_qp(qp->real_qp, qp_attr, qp_attr_mask, NULL);
 }

Modified: stable/11/sys/ofed/include/rdma/ib_verbs.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_verbs.h	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/ofed/include/rdma/ib_verbs.h	Fri Mar 30 18:36:44 2018	(r331784)
@@ -1940,7 +1940,8 @@ struct ib_device {
 					       struct ib_udata *udata);
 	int                        (*dealloc_pd)(struct ib_pd *pd);
 	struct ib_ah *             (*create_ah)(struct ib_pd *pd,
-						struct ib_ah_attr *ah_attr);
+						struct ib_ah_attr *ah_attr,
+						struct ib_udata *udata);
 	int                        (*modify_ah)(struct ib_ah *ah,
 						struct ib_ah_attr *ah_attr);
 	int                        (*query_ah)(struct ib_ah *ah,
@@ -3368,4 +3369,7 @@ int ib_sg_to_pages(struct ib_mr *mr, struct scatterlis
 void ib_drain_rq(struct ib_qp *qp);
 void ib_drain_sq(struct ib_qp *qp);
 void ib_drain_qp(struct ib_qp *qp);
+
+int ib_resolve_eth_dmac(struct ib_device *device,
+			struct ib_ah_attr *ah_attr);
 #endif /* IB_VERBS_H */

Modified: stable/11/sys/ofed/include/uapi/rdma/mlx5-abi.h
==============================================================================
--- stable/11/sys/ofed/include/uapi/rdma/mlx5-abi.h	Fri Mar 30 18:33:30 2018	(r331783)
+++ stable/11/sys/ofed/include/uapi/rdma/mlx5-abi.h	Fri Mar 30 18:36:44 2018	(r331784)
@@ -90,6 +90,7 @@ enum mlx5_ib_alloc_ucontext_resp_mask {
 
 enum mlx5_user_cmds_supp_uhw {
 	MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0,
+	MLX5_USER_CMDS_SUPP_UHW_CREATE_AH    = 1 << 1,
 };
 
 struct mlx5_ib_alloc_ucontext_resp {
@@ -238,6 +239,12 @@ struct mlx5_ib_create_wq {
 	__u32   flags;
 	__u32   comp_mask;
 	__u32   reserved;
+};
+
+struct mlx5_ib_create_ah_resp {
+	__u32	response_length;
+	__u8	dmac[ETH_ALEN];
+	__u8	reserved[6];
 };
 
 struct mlx5_ib_create_wq_resp {

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:37:52 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5378AF5573E;
 Fri, 30 Mar 2018 18:37:52 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 065197604E;
 Fri, 30 Mar 2018 18:37:52 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 00D054B2B;
 Fri, 30 Mar 2018 18:37:52 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIbpP2077646;
 Fri, 30 Mar 2018 18:37:51 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIbp6Z077642;
 Fri, 30 Mar 2018 18:37:51 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301837.w2UIbp6Z077642@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:37:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331785 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331785
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:37:52 -0000

Author: hselasky
Date: Fri Mar 30 18:37:51 2018
New Revision: 331785
URL: https://svnweb.freebsd.org/changeset/base/331785

Log:
  MFC r330579:
  Fix for use-after-free when using delayed work structures in ibcore.
  
  It is not enough to cancel delayed work structures before freeing.
  Always cancel delayed work synchronously before freeing!
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_cm.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_mad.c
  stable/11/sys/ofed/drivers/infiniband/core/ib_mad_rmpp.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cm.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cm.c	Fri Mar 30 18:36:44 2018	(r331784)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cm.c	Fri Mar 30 18:37:51 2018	(r331785)
@@ -4132,6 +4132,7 @@ static void __exit ib_cm_cleanup(void)
 	destroy_workqueue(cm.wq);
 
 	list_for_each_entry_safe(timewait_info, tmp, &cm.timewait_list, list) {
+		cancel_delayed_work_sync(&timewait_info->work.work);
 		list_del(&timewait_info->list);
 		kfree(timewait_info);
 	}

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_mad.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_mad.c	Fri Mar 30 18:36:44 2018	(r331784)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_mad.c	Fri Mar 30 18:37:51 2018	(r331785)
@@ -572,7 +572,7 @@ static void unregister_mad_agent(struct ib_mad_agent_p
 	 */
 	cancel_mads(mad_agent_priv);
 	port_priv = mad_agent_priv->qp_info->port_priv;
-	cancel_delayed_work(&mad_agent_priv->timed_work);
+	cancel_delayed_work_sync(&mad_agent_priv->timed_work);
 
 	spin_lock_irqsave(&port_priv->reg_lock, flags);
 	remove_mad_reg_req(mad_agent_priv);

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_mad_rmpp.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_mad_rmpp.c	Fri Mar 30 18:36:44 2018	(r331784)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_mad_rmpp.c	Fri Mar 30 18:37:51 2018	(r331785)
@@ -103,8 +103,8 @@ void ib_cancel_rmpp_recvs(struct ib_mad_agent_private 
 	spin_unlock_irqrestore(&agent->lock, flags);
 
 	list_for_each_entry(rmpp_recv, &agent->rmpp_list, list) {
-		cancel_delayed_work(&rmpp_recv->timeout_work);
-		cancel_delayed_work(&rmpp_recv->cleanup_work);
+		cancel_delayed_work_sync(&rmpp_recv->timeout_work);
+		cancel_delayed_work_sync(&rmpp_recv->cleanup_work);
 	}
 
 	flush_workqueue(agent->qp_info->port_priv->wq);

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:38:44 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3A4D5F55809;
 Fri, 30 Mar 2018 18:38:44 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id DFF3C761A6;
 Fri, 30 Mar 2018 18:38:43 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DADE64B2C;
 Fri, 30 Mar 2018 18:38:43 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIchHG077731;
 Fri, 30 Mar 2018 18:38:43 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIchvi077730;
 Fri, 30 Mar 2018 18:38:43 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301838.w2UIchvi077730@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:38:43 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331786 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331786
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:38:44 -0000

Author: hselasky
Date: Fri Mar 30 18:38:43 2018
New Revision: 331786
URL: https://svnweb.freebsd.org/changeset/base/331786

Log:
  MFC r330580:
  Make sure the IPv6 scope ID gets properly masked in ibcore.
  
  When exchanging CM messages the IPv6 scope ID should be ignored
  for link local addresses when doing comparisons. Make sure the
  scope ID is always set to zero for link local addresses.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:37:51 2018	(r331785)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:38:43 2018	(r331786)
@@ -1116,6 +1116,17 @@ static void cma_save_ip4_info(struct sockaddr_in *src_
 	}
 }
 
+static void cma_ip6_clear_scope_id(struct in6_addr *addr)
+{
+	/* make sure link local scope ID gets zeroed */
+	if (IN6_IS_SCOPE_LINKLOCAL(addr) ||
+	    IN6_IS_ADDR_MC_INTFACELOCAL(addr)) {
+		/* use byte-access to be alignment safe */
+		addr->s6_addr[2] = 0;
+		addr->s6_addr[3] = 0;
+	}
+}
+
 static void cma_save_ip6_info(struct sockaddr_in6 *src_addr,
 			      struct sockaddr_in6 *dst_addr,
 			      struct cma_hdr *hdr,
@@ -1128,6 +1139,7 @@ static void cma_save_ip6_info(struct sockaddr_in6 *src
 			.sin6_addr = hdr->dst_addr.ip6,
 			.sin6_port = local_port,
 		};
+		cma_ip6_clear_scope_id(&src_addr->sin6_addr);
 	}
 
 	if (dst_addr) {
@@ -1137,6 +1149,7 @@ static void cma_save_ip6_info(struct sockaddr_in6 *src
 			.sin6_addr = hdr->src_addr.ip6,
 			.sin6_port = hdr->port,
 		};
+		cma_ip6_clear_scope_id(&dst_addr->sin6_addr);
 	}
 }
 
@@ -1395,6 +1408,7 @@ static bool cma_match_private_data(struct rdma_id_priv
 		ip6_addr = ((struct sockaddr_in6 *)addr)->sin6_addr;
 		if (cma_get_ip_ver(hdr) != 6)
 			return false;
+		cma_ip6_clear_scope_id(&ip6_addr);
 		if (!cma_any_addr(addr) &&
 		    memcmp(&hdr->dst_addr.ip6, &ip6_addr, sizeof(ip6_addr)))
 			return false;
@@ -3242,6 +3256,8 @@ static int cma_format_hdr(void *hdr, struct rdma_id_pr
 		cma_hdr->src_addr.ip6 = src6->sin6_addr;
 		cma_hdr->dst_addr.ip6 = dst6->sin6_addr;
 		cma_hdr->port = src6->sin6_port;
+		cma_ip6_clear_scope_id(&cma_hdr->src_addr.ip6);
+		cma_ip6_clear_scope_id(&cma_hdr->dst_addr.ip6);
 	}
 	return 0;
 }

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:39:36 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3FEFFF558E3;
 Fri, 30 Mar 2018 18:39:36 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E1795762F4;
 Fri, 30 Mar 2018 18:39:35 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DC6224B2D;
 Fri, 30 Mar 2018 18:39:35 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIdZkc077819;
 Fri, 30 Mar 2018 18:39:35 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIdZXg077818;
 Fri, 30 Mar 2018 18:39:35 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301839.w2UIdZXg077818@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:39:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331787 - stable/11/sys/ofed/include/rdma
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/include/rdma
X-SVN-Commit-Revision: 331787
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:39:36 -0000

Author: hselasky
Date: Fri Mar 30 18:39:35 2018
New Revision: 331787
URL: https://svnweb.freebsd.org/changeset/base/331787

Log:
  MFC r330581:
  Add IB_SPEED_HDR definition in ibcore.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/include/rdma/ib_verbs.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/include/rdma/ib_verbs.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_verbs.h	Fri Mar 30 18:38:43 2018	(r331786)
+++ stable/11/sys/ofed/include/rdma/ib_verbs.h	Fri Mar 30 18:39:35 2018	(r331787)
@@ -418,7 +418,8 @@ enum ib_port_speed {
 	IB_SPEED_QDR	= 4,
 	IB_SPEED_FDR10	= 8,
 	IB_SPEED_FDR	= 16,
-	IB_SPEED_EDR	= 32
+	IB_SPEED_EDR	= 32,
+	IB_SPEED_HDR	= 64
 };
 
 /**

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:41:28 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1CD8AF55E05;
 Fri, 30 Mar 2018 18:41:28 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id C679B7683D;
 Fri, 30 Mar 2018 18:41:27 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C17784C68;
 Fri, 30 Mar 2018 18:41:27 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIfRdV079752;
 Fri, 30 Mar 2018 18:41:27 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIfRw9079751;
 Fri, 30 Mar 2018 18:41:27 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301841.w2UIfRw9079751@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:41:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331788 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331788
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:41:28 -0000

Author: hselasky
Date: Fri Mar 30 18:41:27 2018
New Revision: 331788
URL: https://svnweb.freebsd.org/changeset/base/331788

Log:
  MFC r330583:
  Embed the IPv6 scope ID before calling rtalloc1() in ibcore.
  Else rtalloc1() will resolve to the loopback interface.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c	Fri Mar 30 18:39:35 2018	(r331787)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c	Fri Mar 30 18:41:27 2018	(r331788)
@@ -424,6 +424,13 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 	 */
 	dst_tmp.sin6_len = sizeof(dst_tmp);
 
+	/*
+	 * Make sure the scope ID gets embedded, else rtalloc1() will
+	 * resolve to the loopback interface.
+	 */
+	dst_tmp.sin6_scope_id = addr->bound_dev_if;
+	sa6_embedscope(&dst_tmp, 0);
+
 	/* Step 1 - lookup destination route if any */
 	switch (type) {
 	case 0:

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:42:44 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DF9A0F55F58;
 Fri, 30 Mar 2018 18:42:44 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 91B7376B40;
 Fri, 30 Mar 2018 18:42:44 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8CBBA4CC3;
 Fri, 30 Mar 2018 18:42:44 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIgifS082965;
 Fri, 30 Mar 2018 18:42:44 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIgiwG082964;
 Fri, 30 Mar 2018 18:42:44 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301842.w2UIgiwG082964@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:42:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331789 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331789
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:42:45 -0000

Author: hselasky
Date: Fri Mar 30 18:42:44 2018
New Revision: 331789
URL: https://svnweb.freebsd.org/changeset/base/331789

Log:
  MFC r330584:
  Recover IPv6 scope ID for multicast link-local addresses as well as
  unicast link-local addresses.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:41:27 2018	(r331788)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:42:44 2018	(r331789)
@@ -2785,7 +2785,8 @@ static int cma_bind_addr(struct rdma_cm_id *id, struct
 			struct sockaddr_in6 *src_addr6 = (struct sockaddr_in6 *) src_addr;
 			struct sockaddr_in6 *dst_addr6 = (struct sockaddr_in6 *) dst_addr;
 			src_addr6->sin6_scope_id = dst_addr6->sin6_scope_id;
-			if (IN6_IS_SCOPE_LINKLOCAL(&dst_addr6->sin6_addr))
+			if (IN6_IS_SCOPE_LINKLOCAL(&dst_addr6->sin6_addr) ||
+			    IN6_IS_ADDR_MC_INTFACELOCAL(&dst_addr6->sin6_addr))
 				id->route.addr.dev_addr.bound_dev_if = dst_addr6->sin6_scope_id;
 		} else if (dst_addr->sa_family == AF_IB) {
 			((struct sockaddr_ib *) src_addr)->sib_pkey =
@@ -3119,13 +3120,13 @@ static int cma_check_linklocal(struct rdma_dev_addr *d
 
 	sin6 = *(struct sockaddr_in6 *)addr;
 
-	if (!(IN6_IS_SCOPE_LINKLOCAL(&sin6.sin6_addr)))
-		return 0;
-
-	if (sa6_recoverscope(&sin6) || sin6.sin6_scope_id == 0)
-		return -EINVAL;
-
-	dev_addr->bound_dev_if = sin6.sin6_scope_id;
+	if (IN6_IS_SCOPE_LINKLOCAL(&sin6.sin6_addr) ||
+	    IN6_IS_ADDR_MC_INTFACELOCAL(&sin6.sin6_addr)) {
+		/* check if IPv6 scope ID is set */
+		if (sa6_recoverscope(&sin6) || sin6.sin6_scope_id == 0)
+			return -EINVAL;
+		dev_addr->bound_dev_if = sin6.sin6_scope_id;
+	}
 #endif
 	return 0;
 }

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:43:39 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4BB6CF56099;
 Fri, 30 Mar 2018 18:43:39 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E8EDF76CD8;
 Fri, 30 Mar 2018 18:43:38 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E39BE4CC4;
 Fri, 30 Mar 2018 18:43:38 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIhcCC083062;
 Fri, 30 Mar 2018 18:43:38 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIhcUl083061;
 Fri, 30 Mar 2018 18:43:38 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301843.w2UIhcUl083061@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:43:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331790 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331790
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:43:39 -0000

Author: hselasky
Date: Fri Mar 30 18:43:38 2018
New Revision: 331790
URL: https://svnweb.freebsd.org/changeset/base/331790

Log:
  MFC r330585:
  Define values instead of using hardcoding.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c	Fri Mar 30 18:42:44 2018	(r331789)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_addr.c	Fri Mar 30 18:43:38 2018	(r331790)
@@ -248,6 +248,11 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 			 u8 *edst,
 			 struct ifnet **ifpp)
 {
+	enum {
+		ADDR_VALID = 0,
+		ADDR_SRC_ANY = 1,
+		ADDR_DST_ANY = 2,
+	};
 	struct sockaddr_in dst_tmp = *dst_in;
 	in_port_t src_port;
 	struct sockaddr *saddr;
@@ -262,11 +267,11 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 	/* set default TTL limit */
 	addr->hoplimit = V_ip_defttl;
 
-	type = 0;
+	type = ADDR_VALID;
 	if (src_in->sin_addr.s_addr == INADDR_ANY)
-		type |= 1;
+		type |= ADDR_SRC_ANY;
 	if (dst_tmp.sin_addr.s_addr == INADDR_ANY)
-		type |= 2;
+		type |= ADDR_DST_ANY;
 
 	/*
 	 * Make sure the socket address length field
@@ -276,8 +281,8 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 
 	/* Step 1 - lookup destination route if any */
 	switch (type) {
-	case 0:
-	case 1:
+	case ADDR_VALID:
+	case ADDR_SRC_ANY:
 		/* regular destination route lookup */
 		rte = rtalloc1((struct sockaddr *)&dst_tmp, 1, 0);
 		if (rte == NULL) {
@@ -297,7 +302,7 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 
 	/* Step 2 - find outgoing network interface */
 	switch (type) {
-	case 0:
+	case ADDR_VALID:
 		/* check for loopback device */
 		if (rte->rt_ifp->if_flags & IFF_LOOPBACK) {
 			ifp = rte->rt_ifp;
@@ -316,7 +321,7 @@ static int addr4_resolve(struct sockaddr_in *src_in,
 			goto error_put_ifp;
 		}
 		break;
-	case 1:
+	case ADDR_SRC_ANY:
 		/* check for loopback device */
 		if (rte->rt_ifp->if_flags & IFF_LOOPBACK)
 			saddr = (struct sockaddr *)&dst_tmp;
@@ -398,6 +403,11 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 			 u8 *edst,
 			 struct ifnet **ifpp)
 {
+	enum {
+		ADDR_VALID = 0,
+		ADDR_SRC_ANY = 1,
+		ADDR_DST_ANY = 2,
+	};
 	struct sockaddr_in6 dst_tmp = *dst_in;
 	in_port_t src_port;
 	struct sockaddr *saddr;
@@ -412,11 +422,11 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 	/* set default TTL limit */
 	addr->hoplimit = V_ip_defttl;
 
-	type = 0;
+	type = ADDR_VALID;
 	if (ipv6_addr_any(&src_in->sin6_addr))
-		type |= 1;
+		type |= ADDR_SRC_ANY;
 	if (ipv6_addr_any(&dst_tmp.sin6_addr))
-		type |= 2;
+		type |= ADDR_DST_ANY;
 
 	/*
 	 * Make sure the socket address length field
@@ -433,7 +443,7 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 
 	/* Step 1 - lookup destination route if any */
 	switch (type) {
-	case 0:
+	case ADDR_VALID:
 		/* sanity check for IPv4 addresses */
 		if (ipv6_addr_v4mapped(&src_in->sin6_addr) !=
 		    ipv6_addr_v4mapped(&dst_tmp.sin6_addr)) {
@@ -441,7 +451,7 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 			goto done;
 		}
 		/* FALLTHROUGH */
-	case 1:
+	case ADDR_SRC_ANY:
 		/* regular destination route lookup */
 		rte = rtalloc1((struct sockaddr *)&dst_tmp, 1, 0);
 		if (rte == NULL) {
@@ -461,7 +471,7 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 
 	/* Step 2 - find outgoing network interface */
 	switch (type) {
-	case 0:
+	case ADDR_VALID:
 		/* check for loopback device */
 		if (rte->rt_ifp->if_flags & IFF_LOOPBACK) {
 			ifp = rte->rt_ifp;
@@ -480,7 +490,7 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
 			goto error_put_ifp;
 		}
 		break;
-	case 1:
+	case ADDR_SRC_ANY:
 		/* check for loopback device */
 		if (rte->rt_ifp->if_flags & IFF_LOOPBACK)
 			saddr = (struct sockaddr *)&dst_tmp;

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:44:51 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B717BF5625C;
 Fri, 30 Mar 2018 18:44:51 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6C9B476E90;
 Fri, 30 Mar 2018 18:44:51 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6771D4CC5;
 Fri, 30 Mar 2018 18:44:51 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIipRP083191;
 Fri, 30 Mar 2018 18:44:51 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIipjG083190;
 Fri, 30 Mar 2018 18:44:51 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301844.w2UIipjG083190@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:44:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331791 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331791
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:44:51 -0000

Author: hselasky
Date: Fri Mar 30 18:44:51 2018
New Revision: 331791
URL: https://svnweb.freebsd.org/changeset/base/331791

Log:
  MFC r330586:
  Make sure VNET is set when calling sa6_recoverscope() in ibcore.
  
  Else panic will occur when VIMAGE is enabled.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:43:38 2018	(r331790)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_cma.c	Fri Mar 30 18:44:51 2018	(r331791)
@@ -3122,8 +3122,14 @@ static int cma_check_linklocal(struct rdma_dev_addr *d
 
 	if (IN6_IS_SCOPE_LINKLOCAL(&sin6.sin6_addr) ||
 	    IN6_IS_ADDR_MC_INTFACELOCAL(&sin6.sin6_addr)) {
-		/* check if IPv6 scope ID is set */
-		if (sa6_recoverscope(&sin6) || sin6.sin6_scope_id == 0)
+		bool failure;
+
+		CURVNET_SET_QUIET(dev_addr->net);
+		failure = sa6_recoverscope(&sin6) || sin6.sin6_scope_id == 0;
+		CURVNET_RESTORE();
+
+		/* check if IPv6 scope ID is not set */
+		if (failure)
 			return -EINVAL;
 		dev_addr->bound_dev_if = sin6.sin6_scope_id;
 	}

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:45:48 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1388FF563CC;
 Fri, 30 Mar 2018 18:45:48 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BA10876FF8;
 Fri, 30 Mar 2018 18:45:47 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B4FB44CC6;
 Fri, 30 Mar 2018 18:45:47 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIjlk0083291;
 Fri, 30 Mar 2018 18:45:47 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIjlZK083290;
 Fri, 30 Mar 2018 18:45:47 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301845.w2UIjlZK083290@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:45:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331792 - stable/11/sys/dev/mlx4/mlx4_ib
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/dev/mlx4/mlx4_ib
X-SVN-Commit-Revision: 331792
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:45:48 -0000

Author: hselasky
Date: Fri Mar 30 18:45:47 2018
New Revision: 331792
URL: https://svnweb.freebsd.org/changeset/base/331792

Log:
  MFC r330594:
  Disable unsupported disassociate ucontext functionality in mlx4ib(4).
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c
==============================================================================
--- stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c	Fri Mar 30 18:44:51 2018	(r331791)
+++ stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c	Fri Mar 30 18:45:47 2018	(r331792)
@@ -1135,68 +1135,6 @@ static const struct vm_operations_struct mlx4_ib_vm_op
 	.close = mlx4_ib_vma_close
 };
 
-static void mlx4_ib_disassociate_ucontext(struct ib_ucontext *ibcontext)
-{
-	int i;
-	int ret = 0;
-	struct vm_area_struct *vma;
-	struct mlx4_ib_ucontext *context = to_mucontext(ibcontext);
-	struct task_struct *owning_process  = NULL;
-	struct mm_struct   *owning_mm       = NULL;
-
-	owning_process = get_pid_task(ibcontext->tgid, PIDTYPE_PID);
-	if (!owning_process)
-		return;
-
-	owning_mm = get_task_mm(owning_process);
-	if (!owning_mm) {
-		pr_info("no mm, disassociate ucontext is pending task termination\n");
-		while (1) {
-			/* make sure that task is dead before returning, it may
-			 * prevent a rare case of module down in parallel to a
-			 * call to mlx4_ib_vma_close.
-			 */
-			put_task_struct(owning_process);
-			msleep(1);
-			owning_process = get_pid_task(ibcontext->tgid,
-						      PIDTYPE_PID);
-			if (!owning_process /* ||
-			    owning_process->state == TASK_DEAD */) {
-				pr_info("disassociate ucontext done, task was terminated\n");
-				/* in case task was dead need to release the task struct */
-				if (owning_process)
-					put_task_struct(owning_process);
-				return;
-			}
-		}
-	}
-
-	/* need to protect from a race on closing the vma as part of
-	 * mlx4_ib_vma_close().
-	 */
-	down_read(&owning_mm->mmap_sem);
-	for (i = 0; i < HW_BAR_COUNT; i++) {
-		vma = context->hw_bar_info[i].vma;
-		if (!vma)
-			continue;
-
-		ret = zap_vma_ptes(context->hw_bar_info[i].vma,
-				   context->hw_bar_info[i].vma->vm_start,
-				   PAGE_SIZE);
-		if (ret) {
-			pr_err("Error: zap_vma_ptes failed for index=%d, ret=%d\n", i, ret);
-			BUG_ON(1);
-		}
-
-		/* context going to be destroyed, should not access ops any more */
-		context->hw_bar_info[i].vma->vm_ops = NULL;
-	}
-
-	up_read(&owning_mm->mmap_sem);
-	mmput(owning_mm);
-	put_task_struct(owning_process);
-}
-
 static void mlx4_ib_set_vma_data(struct vm_area_struct *vma,
 				 struct mlx4_ib_vma_private_data *vma_private_data)
 {
@@ -2695,7 +2633,6 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
 	ibdev->ib_dev.process_mad	= mlx4_ib_process_mad;
 	ibdev->ib_dev.get_port_immutable = mlx4_port_immutable;
 	ibdev->ib_dev.get_dev_fw_str    = get_fw_ver_str;
-	ibdev->ib_dev.disassociate_ucontext = mlx4_ib_disassociate_ucontext;
 
 	if (!mlx4_is_slave(ibdev->dev)) {
 		ibdev->ib_dev.alloc_fmr		= mlx4_ib_fmr_alloc;

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:46:39 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 14947F564EE;
 Fri, 30 Mar 2018 18:46:39 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BB66D7714C;
 Fri, 30 Mar 2018 18:46:38 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B65F84CC7;
 Fri, 30 Mar 2018 18:46:38 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIkc5n083380;
 Fri, 30 Mar 2018 18:46:38 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIkcRd083379;
 Fri, 30 Mar 2018 18:46:38 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301846.w2UIkcRd083379@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:46:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331793 - stable/11/sys/dev/mlx4/mlx4_ib
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/dev/mlx4/mlx4_ib
X-SVN-Commit-Revision: 331793
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:46:39 -0000

Author: hselasky
Date: Fri Mar 30 18:46:38 2018
New Revision: 331793
URL: https://svnweb.freebsd.org/changeset/base/331793

Log:
  MFC r330595:
  The mlx4ib(4) should not be loaded before the ibcore is initialized.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c
==============================================================================
--- stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c	Fri Mar 30 18:45:47 2018	(r331792)
+++ stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c	Fri Mar 30 18:46:38 2018	(r331793)
@@ -3318,7 +3318,7 @@ static void __exit mlx4_ib_cleanup(void)
 	destroy_workqueue(wq);
 }
 
-module_init_order(mlx4_ib_init, SI_ORDER_MIDDLE);
+module_init_order(mlx4_ib_init, SI_ORDER_THIRD);
 module_exit(mlx4_ib_cleanup);
 
 static int

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:47:34 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F11EF5665A;
 Fri, 30 Mar 2018 18:47:34 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 05992772C1;
 Fri, 30 Mar 2018 18:47:34 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0085E4CC9;
 Fri, 30 Mar 2018 18:47:34 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIlXfA083473;
 Fri, 30 Mar 2018 18:47:33 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIlXrD083472;
 Fri, 30 Mar 2018 18:47:33 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301847.w2UIlXrD083472@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:47:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331794 - stable/11/sys/dev/mlx4/mlx4_ib
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/dev/mlx4/mlx4_ib
X-SVN-Commit-Revision: 331794
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:47:34 -0000

Author: hselasky
Date: Fri Mar 30 18:47:33 2018
New Revision: 331794
URL: https://svnweb.freebsd.org/changeset/base/331794

Log:
  MFC r330596:
  Bump version information in mlx4ib(4).
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c
==============================================================================
--- stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c	Fri Mar 30 18:46:38 2018	(r331793)
+++ stable/11/sys/dev/mlx4/mlx4_ib/mlx4_ib_main.c	Fri Mar 30 18:47:33 2018	(r331794)
@@ -63,8 +63,10 @@
 #include "wc.h"
 
 #define DRV_NAME	MLX4_IB_DRV_NAME
-#define DRV_VERSION	"3.4.1-BETA"
-#define DRV_RELDATE	"October 2017"
+#ifndef DRV_VERSION
+#define DRV_VERSION	"3.4.1"
+#endif
+#define DRV_RELDATE	"February 2018"
 
 #define MLX4_IB_FLOW_MAX_PRIO 0xFFF
 #define MLX4_IB_FLOW_QPN_MASK 0xFFFFFF

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:48:26 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 29B7FF567BB;
 Fri, 30 Mar 2018 18:48:26 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id D197777481;
 Fri, 30 Mar 2018 18:48:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B39CA4CCA;
 Fri, 30 Mar 2018 18:48:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UImP4K083560;
 Fri, 30 Mar 2018 18:48:25 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UImP16083559;
 Fri, 30 Mar 2018 18:48:25 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301848.w2UImP16083559@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:48:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331795 - stable/11/sys/dev/mlx5/mlx5_ib
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_ib
X-SVN-Commit-Revision: 331795
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:48:26 -0000

Author: hselasky
Date: Fri Mar 30 18:48:25 2018
New Revision: 331795
URL: https://svnweb.freebsd.org/changeset/base/331795

Log:
  MFC r330597:
  Disable unsupported disassociate ucontext functionality in mlx5ib(4).
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c	Fri Mar 30 18:47:33 2018	(r331794)
+++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c	Fri Mar 30 18:48:25 2018	(r331795)
@@ -1242,62 +1242,6 @@ static int mlx5_ib_set_vma_data(struct vm_area_struct 
 	return 0;
 }
 
-static void mlx5_ib_disassociate_ucontext(struct ib_ucontext *ibcontext)
-{
-	int ret;
-	struct vm_area_struct *vma;
-	struct mlx5_ib_vma_private_data *vma_private, *n;
-	struct mlx5_ib_ucontext *context = to_mucontext(ibcontext);
-	struct task_struct *owning_process  = NULL;
-	struct mm_struct   *owning_mm       = NULL;
-
-	owning_process = get_pid_task(ibcontext->tgid, PIDTYPE_PID);
-	if (!owning_process)
-		return;
-
-	owning_mm = get_task_mm(owning_process);
-	if (!owning_mm) {
-		pr_info("no mm, disassociate ucontext is pending task termination\n");
-		while (1) {
-			put_task_struct(owning_process);
-			usleep_range(1000, 2000);
-			owning_process = get_pid_task(ibcontext->tgid,
-						      PIDTYPE_PID);
-			if (!owning_process /* ||
-			    owning_process->state == TASK_DEAD */) {
-				pr_info("disassociate ucontext done, task was terminated\n");
-				/* in case task was dead need to release the
-				 * task struct.
-				 */
-				if (owning_process)
-					put_task_struct(owning_process);
-				return;
-			}
-		}
-	}
-
-	/* need to protect from a race on closing the vma as part of
-	 * mlx5_ib_vma_close.
-	 */
-	down_read(&owning_mm->mmap_sem);
-	list_for_each_entry_safe(vma_private, n, &context->vma_private_list,
-				 list) {
-		vma = vma_private->vma;
-		ret = zap_vma_ptes(vma, vma->vm_start,
-				   PAGE_SIZE);
-		WARN_ONCE(ret, "%s: zap_vma_ptes failed", __func__);
-		/* context going to be destroyed, should
-		 * not access ops any more.
-		 */
-		vma->vm_ops = NULL;
-		list_del(&vma_private->list);
-		kfree(vma_private);
-	}
-	up_read(&owning_mm->mmap_sem);
-	mmput(owning_mm);
-	put_task_struct(owning_process);
-}
-
 static inline char *mmap_cmd2str(enum mlx5_ib_mmap_cmd cmd)
 {
 	switch (cmd) {
@@ -3057,8 +3001,6 @@ static void *mlx5_ib_add(struct mlx5_core_dev *mdev)
 		dev->ib_dev.get_vf_stats	= mlx5_ib_get_vf_stats;
 		dev->ib_dev.set_vf_guid		= mlx5_ib_set_vf_guid;
 	}
-
-	dev->ib_dev.disassociate_ucontext = mlx5_ib_disassociate_ucontext;
 
 	mlx5_ib_internal_fill_odp_caps(dev);
 

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:49:53 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F8E3F569B2;
 Fri, 30 Mar 2018 18:49:53 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id D7FF17763E;
 Fri, 30 Mar 2018 18:49:52 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B8FDE4CCB;
 Fri, 30 Mar 2018 18:49:52 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UInqWv083664;
 Fri, 30 Mar 2018 18:49:52 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UInqtl083663;
 Fri, 30 Mar 2018 18:49:52 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301849.w2UInqtl083663@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:49:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331796 - stable/11
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11
X-SVN-Commit-Revision: 331796
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:49:53 -0000

Author: hselasky
Date: Fri Mar 30 18:49:52 2018
New Revision: 331796
URL: https://svnweb.freebsd.org/changeset/base/331796

Log:
  MFC r330655:
  Remove duplicate prototypes (update mergeinfo only).
  
  Sponsored by:	Mellanox Technologies

Modified:
Directory Properties:
  stable/11/   (props changed)

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:50:17 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C541AF56A87;
 Fri, 30 Mar 2018 18:50:16 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 2900377771;
 Fri, 30 Mar 2018 18:50:16 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 23C904CCF;
 Fri, 30 Mar 2018 18:50:16 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIoG6Q083787;
 Fri, 30 Mar 2018 18:50:16 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIoDdi083754;
 Fri, 30 Mar 2018 18:50:13 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803301850.w2UIoDdi083754@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Fri, 30 Mar 2018 18:50:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331797 - in head/sys: dev/an dev/ath dev/cxgbe
 dev/if_ndis dev/iwi dev/ixl dev/mlx4/mlx4_en dev/mlx5/mlx5_en dev/mwl
 dev/nxge dev/oce dev/qlnx/qlnxe dev/sbni dev/sfxge dev/vxge net net...
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in head/sys: dev/an dev/ath dev/cxgbe dev/if_ndis dev/iwi
 dev/ixl dev/mlx4/mlx4_en dev/mlx5/mlx5_en dev/mwl dev/nxge dev/oce
 dev/qlnx/qlnxe dev/sbni dev/sfxge dev/vxge net net80211 netinet netpfil/pf
 ...
X-SVN-Commit-Revision: 331797
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:50:17 -0000

Author: brooks
Date: Fri Mar 30 18:50:13 2018
New Revision: 331797
URL: https://svnweb.freebsd.org/changeset/base/331797

Log:
  Use an accessor function to access ifr_data.
  
  This fixes 32-bit compat (no ioctl command defintions are required
  as struct ifreq is the same size).  This is believed to be sufficent to
  fully support ifconfig on 32-bit systems.
  
  Reviewed by:	kib
  Obtained from:	CheriBSD
  MFC after:	1 week
  Relnotes:	yes
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14900

Modified:
  head/sys/dev/an/if_an.c
  head/sys/dev/ath/if_ath_ioctl.c
  head/sys/dev/cxgbe/t4_main.c
  head/sys/dev/if_ndis/if_ndis.c
  head/sys/dev/iwi/if_iwi.c
  head/sys/dev/ixl/ixl_pf_main.c
  head/sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c
  head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
  head/sys/dev/mwl/if_mwl.c
  head/sys/dev/nxge/if_nxge.c
  head/sys/dev/oce/oce_if.c
  head/sys/dev/qlnx/qlnxe/qlnx_os.c
  head/sys/dev/sbni/if_sbni.c
  head/sys/dev/sfxge/sfxge.c
  head/sys/dev/vxge/vxge.c
  head/sys/net/if.c
  head/sys/net/if.h
  head/sys/net/if_gif.c
  head/sys/net/if_gre.c
  head/sys/net/if_ipsec.c
  head/sys/net/if_spppsubr.c
  head/sys/net/if_var.h
  head/sys/net/if_vlan.c
  head/sys/net/iflib.c
  head/sys/net80211/ieee80211_ioctl.c
  head/sys/netinet/ip_carp.c
  head/sys/netpfil/pf/if_pfsync.c
  head/sys/security/mac/mac_net.c

Modified: head/sys/dev/an/if_an.c
==============================================================================
--- head/sys/dev/an/if_an.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/an/if_an.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -1934,7 +1934,8 @@ an_ioctl(struct ifnet *ifp, u_long command, caddr_t da
 		error = 0;
 		break;
 	case SIOCGAIRONET:
-		error = copyin(ifr->ifr_data, &sc->areq, sizeof(sc->areq));
+		error = copyin(ifr_data_get_ptr(ifr), &sc->areq,
+		    sizeof(sc->areq));
 		if (error != 0)
 			break;
 		AN_LOCK(sc);
@@ -1963,13 +1964,15 @@ an_ioctl(struct ifnet *ifp, u_long command, caddr_t da
 			break;
 		}
 		AN_UNLOCK(sc);
-		error = copyout(&sc->areq, ifr->ifr_data, sizeof(sc->areq));
+		error = copyout(&sc->areq, ifr_data_get_ptr(ifr),
+		    sizeof(sc->areq));
 		break;
 	case SIOCSAIRONET:
 		if ((error = priv_check(td, PRIV_DRIVER)))
 			goto out;
 		AN_LOCK(sc);
-		error = copyin(ifr->ifr_data, &sc->areq, sizeof(sc->areq));
+		error = copyin(ifr_data_get_ptr(ifr), &sc->areq,
+		    sizeof(sc->areq));
 		if (error != 0)
 			break;
 		an_setdef(sc, &sc->areq);
@@ -1978,7 +1981,8 @@ an_ioctl(struct ifnet *ifp, u_long command, caddr_t da
 	case SIOCGPRIVATE_0:		/* used by Cisco client utility */
 		if ((error = priv_check(td, PRIV_DRIVER)))
 			goto out;
-		error = copyin(ifr->ifr_data, &l_ioctl, sizeof(l_ioctl));
+		error = copyin(ifr_data_get_ptr(ifr), &l_ioctl,
+		    sizeof(l_ioctl));
 		if (error)
 			goto out;
 		mode = l_ioctl.command;
@@ -1996,13 +2000,15 @@ an_ioctl(struct ifnet *ifp, u_long command, caddr_t da
 		AN_UNLOCK(sc);
 		if (!error) {
 			/* copy out the updated command info */
-			error = copyout(&l_ioctl, ifr->ifr_data, sizeof(l_ioctl));
+			error = copyout(&l_ioctl, ifr_data_get_ptr(ifr),
+			    sizeof(l_ioctl));
 		}
 		break;
 	case SIOCGPRIVATE_1:		/* used by Cisco client utility */
 		if ((error = priv_check(td, PRIV_DRIVER)))
 			goto out;
-		error = copyin(ifr->ifr_data, &l_ioctl, sizeof(l_ioctl));
+		error = copyin(ifr_data_get_ptr(ifr), &l_ioctl,
+		    sizeof(l_ioctl));
 		if (error)
 			goto out;
 		l_ioctl.command = 0;

Modified: head/sys/dev/ath/if_ath_ioctl.c
==============================================================================
--- head/sys/dev/ath/if_ath_ioctl.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/ath/if_ath_ioctl.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -267,12 +267,12 @@ ath_ioctl(struct ieee80211com *ic, u_long cmd, void *d
 		    rt->info[sc->sc_txrix].dot11Rate &~ IEEE80211_RATE_BASIC;
 		if (rt->info[sc->sc_txrix].phy & IEEE80211_T_HT)
 			sc->sc_stats.ast_tx_rate |= IEEE80211_RATE_MCS;
-		return copyout(&sc->sc_stats,
-		    ifr->ifr_data, sizeof (sc->sc_stats));
+		return copyout(&sc->sc_stats, ifr_data_get_ptr(ifr),
+		    sizeof (sc->sc_stats));
 	}
 	case SIOCGATHAGSTATS:
-		return copyout(&sc->sc_aggr_stats,
-		    ifr->ifr_data, sizeof (sc->sc_aggr_stats));
+		return copyout(&sc->sc_aggr_stats, ifr_data_get_ptr(ifr),
+		    sizeof (sc->sc_aggr_stats));
 	case SIOCZATHSTATS: {
 		int error;
 

Modified: head/sys/dev/cxgbe/t4_main.c
==============================================================================
--- head/sys/dev/cxgbe/t4_main.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/cxgbe/t4_main.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -1800,7 +1800,7 @@ fail:
 	case SIOCGI2C: {
 		struct ifi2creq i2c;
 
-		rc = copyin(ifr->ifr_data, &i2c, sizeof(i2c));
+		rc = copyin(ifr_data_get_ptr(ifr), &i2c, sizeof(i2c));
 		if (rc != 0)
 			break;
 		if (i2c.dev_addr != 0xA0 && i2c.dev_addr != 0xA2) {
@@ -1818,7 +1818,7 @@ fail:
 		    i2c.offset, i2c.len, &i2c.data[0]);
 		end_synchronized_op(sc, 0);
 		if (rc == 0)
-			rc = copyout(&i2c, ifr->ifr_data, sizeof(i2c));
+			rc = copyout(&i2c, ifr_data_get_ptr(ifr), sizeof(i2c));
 		break;
 	}
 

Modified: head/sys/dev/if_ndis/if_ndis.c
==============================================================================
--- head/sys/dev/if_ndis/if_ndis.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/if_ndis/if_ndis.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -2975,11 +2975,12 @@ ndis_80211ioctl(struct ieee80211com *ic, u_long cmd, v
 	switch (cmd) {
 	case SIOCGDRVSPEC:
 	case SIOCSDRVSPEC:
-		error = copyin(ifr->ifr_data, &oid, sizeof(oid));
+		error = copyin(ifr_data_get_ptr(ifr), &oid, sizeof(oid));
 		if (error)
 			break;
 		oidbuf = malloc(oid.len, M_TEMP, M_WAITOK | M_ZERO);
-		error = copyin(ifr->ifr_data + sizeof(oid), oidbuf, oid.len);
+		error = copyin((caddr_t)ifr_data_get_ptr(ifr) + sizeof(oid),
+		    oidbuf, oid.len);
 	}
 
 	if (error) {
@@ -3001,7 +3002,7 @@ ndis_80211ioctl(struct ieee80211com *ic, u_long cmd, v
 			NDIS_UNLOCK(sc);
 			break;
 		}
-		error = copyin(ifr->ifr_data, &evt, sizeof(evt));
+		error = copyin(ifr_data_get_ptr(ifr), &evt, sizeof(evt));
 		if (error) {
 			NDIS_UNLOCK(sc);
 			break;
@@ -3012,14 +3013,15 @@ ndis_80211ioctl(struct ieee80211com *ic, u_long cmd, v
 			break;
 		}
 		error = copyout(&sc->ndis_evt[sc->ndis_evtcidx],
-		    ifr->ifr_data, sizeof(uint32_t) * 2);
+		    ifr_data_get_ptr(ifr), sizeof(uint32_t) * 2);
 		if (error) {
 			NDIS_UNLOCK(sc);
 			break;
 		}
 		if (sc->ndis_evt[sc->ndis_evtcidx].ne_len) {
 			error = copyout(sc->ndis_evt[sc->ndis_evtcidx].ne_buf,
-			    ifr->ifr_data + (sizeof(uint32_t) * 2),
+			    (caddr_t)ifr_data_get_ptr(ifr) +
+			    (sizeof(uint32_t) * 2),
 			    sc->ndis_evt[sc->ndis_evtcidx].ne_len);
 			if (error) {
 				NDIS_UNLOCK(sc);
@@ -3041,10 +3043,11 @@ ndis_80211ioctl(struct ieee80211com *ic, u_long cmd, v
 	switch (cmd) {
 	case SIOCGDRVSPEC:
 	case SIOCSDRVSPEC:
-		error = copyout(&oid, ifr->ifr_data, sizeof(oid));
+		error = copyout(&oid, ifr_data_get_ptr(ifr), sizeof(oid));
 		if (error)
 			break;
-		error = copyout(oidbuf, ifr->ifr_data + sizeof(oid), oid.len);
+		error = copyout(oidbuf,
+		    (caddr_t)ifr_data_get_ptr(ifr) + sizeof(oid), oid.len);
 	}
 
 	free(oidbuf, M_TEMP);

Modified: head/sys/dev/iwi/if_iwi.c
==============================================================================
--- head/sys/dev/iwi/if_iwi.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/iwi/if_iwi.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -2059,7 +2059,7 @@ iwi_ioctl(struct ieee80211com *ic, u_long cmd, void *d
 	switch (cmd) {
 	case SIOCGIWISTATS:
 		/* XXX validate permissions/memory/etc? */
-		error = copyout(&sc->sc_linkqual, ifr->ifr_data,
+		error = copyout(&sc->sc_linkqual, ifr_data_get_ptr(ifr),
 		    sizeof(struct iwi_notif_link_quality));
 		break;
 	case SIOCZIWISTATS:

Modified: head/sys/dev/ixl/ixl_pf_main.c
==============================================================================
--- head/sys/dev/ixl/ixl_pf_main.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/ixl/ixl_pf_main.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -5174,7 +5174,7 @@ ixl_ioctl(struct ifnet * ifp, u_long command, caddr_t 
 		if (!pf->has_i2c)
 			return (ENOTTY);
 
-		error = copyin(ifr->ifr_data, &i2c, sizeof(i2c));
+		error = copyin(ifr_data_get_ptr(ifr), &i2c, sizeof(i2c));
 		if (error != 0)
 			break;
 		if (i2c.dev_addr != 0xA0 && i2c.dev_addr != 0xA2) {
@@ -5191,7 +5191,7 @@ ixl_ioctl(struct ifnet * ifp, u_long command, caddr_t 
 			    i2c.dev_addr, &i2c.data[i]))
 				return (EIO);
 
-		error = copyout(&i2c, ifr->ifr_data, sizeof(i2c));
+		error = copyout(&i2c, ifr_data_get_ptr(ifr), sizeof(i2c));
 		break;
 	}
 #endif

Modified: head/sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c
==============================================================================
--- head/sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -2058,7 +2058,7 @@ out:
 	case SIOCGI2C: {
 		struct ifi2creq i2c;
 
-		error = copyin(ifr->ifr_data, &i2c, sizeof(i2c));
+		error = copyin(ifr_data_get_ptr(ifr), &i2c, sizeof(i2c));
 		if (error)
 			break;
 		if (i2c.len > sizeof(i2c.data)) {
@@ -2075,7 +2075,7 @@ out:
 			error = -error;
 			break;
 		}
-		error = copyout(&i2c, ifr->ifr_data, sizeof(i2c));
+		error = copyout(&i2c, ifr_data_get_ptr(ifr), sizeof(i2c));
 		break;
 	}
 #endif

Modified: head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -2884,7 +2884,7 @@ out:
 		 * Copy from the user-space address ifr_data to the
 		 * kernel-space address i2c
 		 */
-		error = copyin(ifr->ifr_data, &i2c, sizeof(i2c));
+		error = copyin(ifr_data_get_ptr(ifr), &i2c, sizeof(i2c));
 		if (error)
 			break;
 
@@ -2948,7 +2948,7 @@ out:
 			goto err_i2c;
 		}
 
-		error = copyout(&i2c, ifr->ifr_data, sizeof(i2c));
+		error = copyout(&i2c, ifr_data_get_ptr(ifr), sizeof(i2c));
 err_i2c:
 		PRIV_UNLOCK(priv);
 		break;

Modified: head/sys/dev/mwl/if_mwl.c
==============================================================================
--- head/sys/dev/mwl/if_mwl.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/mwl/if_mwl.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -4750,8 +4750,8 @@ mwl_ioctl(struct ieee80211com *ic, u_long cmd, void *d
 		 * statistics.  The alternative is to copy the data
 		 * to a local structure.
 		 */
-		return (copyout(&sc->sc_stats,
-				ifr->ifr_data, sizeof (sc->sc_stats)));
+		return (copyout(&sc->sc_stats, ifr_data_get_ptr(ifr),
+		    sizeof (sc->sc_stats)));
 #ifdef MWL_DIAGAPI
 	case SIOCGMVDIAG:
 		/* XXX check privs */

Modified: head/sys/dev/nxge/if_nxge.c
==============================================================================
--- head/sys/dev/nxge/if_nxge.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/nxge/if_nxge.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -1368,7 +1368,7 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 	void *info = NULL;
 	int retValue = EINVAL;
 
-	cmd = fubyte(ifreqp->ifr_data);
+	cmd = fubyte(ifr_data_get_ptr(ifreqp));
 	if (cmd == -1)
 		return (EFAULT);
 
@@ -1379,7 +1379,7 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 	            (xge_hal_stats_hw_info_t **)&info);
 	        mtx_unlock(&lldev->mtx_drv);
 	        if(status == XGE_HAL_OK) {
-	            if(copyout(info, ifreqp->ifr_data,
+	            if(copyout(info, ifr_data_get_ptr(ifreqp),
 	                sizeof(xge_hal_stats_hw_info_t)) == 0)
 	                retValue = 0;
 	        }
@@ -1397,7 +1397,7 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 	                sizeof(xge_hal_pci_config_t));
 	            mtx_unlock(&lldev->mtx_drv);
 	            if(status == XGE_HAL_OK) {
-	                if(copyout(info, ifreqp->ifr_data,
+	                if(copyout(info, ifr_data_get_ptr(ifreqp),
 	                    sizeof(xge_hal_pci_config_t)) == 0)
 	                    retValue = 0;
 	            }
@@ -1417,7 +1417,7 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 	                sizeof(xge_hal_stats_device_info_t));
 	            mtx_unlock(&lldev->mtx_drv);
 	            if(status == XGE_HAL_OK) {
-	                if(copyout(info, ifreqp->ifr_data,
+	                if(copyout(info, ifr_data_get_ptr(ifreqp),
 	                    sizeof(xge_hal_stats_device_info_t)) == 0)
 	                    retValue = 0;
 	            }
@@ -1438,7 +1438,7 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 	                sizeof(xge_hal_stats_sw_err_t));
 	            mtx_unlock(&lldev->mtx_drv);
 	            if(status == XGE_HAL_OK) {
-	                if(copyout(info, ifreqp->ifr_data,
+	                if(copyout(info, ifr_data_get_ptr(ifreqp),
 	                    sizeof(xge_hal_stats_sw_err_t)) == 0)
 	                    retValue = 0;
 	            }
@@ -1451,7 +1451,7 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 	        break;
 
 	    case XGE_QUERY_DRIVERSTATS:
-		if(copyout(&lldev->driver_stats, ifreqp->ifr_data,
+		if(copyout(&lldev->driver_stats, ifr_data_get_ptr(ifreqp),
 	            sizeof(xge_driver_stats_t)) == 0) {
 	            retValue = 0;
 	        }
@@ -1465,7 +1465,8 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 	        info = xge_os_malloc(NULL, XGE_BUFFER_SIZE);
 	        if(info != NULL) {
 	            strcpy(info, XGE_DRIVER_VERSION);
-	            if(copyout(info, ifreqp->ifr_data, XGE_BUFFER_SIZE) == 0)
+	            if(copyout(info, ifr_data_get_ptr(ifreqp),
+			XGE_BUFFER_SIZE) == 0)
 	                retValue = 0;
 	            xge_os_free(NULL, info, XGE_BUFFER_SIZE);
 	        }
@@ -1479,7 +1480,7 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 	                sizeof(xge_hal_device_config_t));
 	            mtx_unlock(&lldev->mtx_drv);
 	            if(status == XGE_HAL_OK) {
-	                if(copyout(info, ifreqp->ifr_data,
+	                if(copyout(info, ifr_data_get_ptr(ifreqp),
 	                    sizeof(xge_hal_device_config_t)) == 0)
 	                    retValue = 0;
 	            }
@@ -1492,7 +1493,7 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 	        break;
 
 	    case XGE_QUERY_BUFFER_MODE:
-	        if(copyout(&lldev->buffer_mode, ifreqp->ifr_data,
+	        if(copyout(&lldev->buffer_mode, ifr_data_get_ptr(ifreqp),
 	            sizeof(int)) == 0)
 	            retValue = 0;
 	        break;
@@ -1501,7 +1502,7 @@ xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifre
 	    case XGE_SET_BUFFER_MODE_2:
 	    case XGE_SET_BUFFER_MODE_5:
 	        mode = (cmd == XGE_SET_BUFFER_MODE_1) ? 'Y':'N';
-	        if(copyout(&mode, ifreqp->ifr_data, sizeof(mode)) == 0)
+	        if(copyout(&mode, ifr_data_get_ptr(ifreqp), sizeof(mode)) == 0)
 	            retValue = 0;
 	        break;
 	    default:
@@ -1529,7 +1530,7 @@ xge_ioctl_registers(xge_lldev_t *lldev, struct ifreq *
 	int error;
 	u64 val64 = 0;
 
-	error = copyin(ifreqp->ifr_data, &tmpdata, sizeof(tmpdata));
+	error = copyin(ifr_data_get_ptr(ifreqp), &tmpdata, sizeof(tmpdata));
 	if (error != 0)
 		return (error);
 	data = &tmpdata;
@@ -1542,7 +1543,8 @@ xge_ioctl_registers(xge_lldev_t *lldev, struct ifreq *
 	        &data->value);
 	    mtx_unlock(&lldev->mtx_drv);
 	    if(status == XGE_HAL_OK) {
-	        if(copyout(data, ifreqp->ifr_data, sizeof(xge_register_t)) == 0)
+	        if(copyout(data, ifr_data_get_ptr(ifreqp),
+		    sizeof(xge_register_t)) == 0)
 	            retValue = 0;
 	    }
 	}
@@ -1587,7 +1589,7 @@ xge_ioctl_registers(xge_lldev_t *lldev, struct ifreq *
 	    mtx_unlock(&lldev->mtx_drv);
 
 	    if(retValue == 0) {
-	        if(copyout(data, ifreqp->ifr_data,
+	        if(copyout(data, ifr_data_get_ptr(ifreqp),
 	            sizeof(xge_hal_pci_bar0_t)) != 0) {
 	            xge_trace(XGE_ERR, "Copyout of register values failed");
 	            retValue = EINVAL;

Modified: head/sys/dev/oce/oce_if.c
==============================================================================
--- head/sys/dev/oce/oce_if.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/oce/oce_if.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -2276,7 +2276,7 @@ oce_handle_passthrough(struct ifnet *ifp, caddr_t data
 	struct ifreq *ifr = (struct ifreq *)data;
 	int rc = ENXIO;
 	char cookie[32] = {0};
-	void *priv_data = (void *)ifr->ifr_data;
+	void *priv_data = ifr_data_get_ptr(ifr);
 	void *ioctl_ptr;
 	uint32_t req_size;
 	struct mbx_hdr req;

Modified: head/sys/dev/qlnx/qlnxe/qlnx_os.c
==============================================================================
--- head/sys/dev/qlnx/qlnxe/qlnx_os.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/qlnx/qlnxe/qlnx_os.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -2464,7 +2464,7 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data
 		struct ecore_hwfn *p_hwfn = &ha->cdev.hwfns[0];
 		struct ecore_ptt *p_ptt;
 
-		ret = copyin(ifr->ifr_data, &i2c, sizeof(i2c));
+		ret = copyin(ifr_data_get_ptr(ifr), &i2c, sizeof(i2c));
 
 		if (ret)
 			break;
@@ -2494,7 +2494,7 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data
 			break;
 		}
 
-		ret = copyout(&i2c, ifr->ifr_data, sizeof(i2c));
+		ret = copyout(&i2c, ifr_data_get_ptr(ifr), sizeof(i2c));
 
 		QL_DPRINT8(ha, "SIOCGI2C copyout ret = %d \
 			 len = %d addr = 0x%02x offset = 0x%04x \

Modified: head/sys/dev/sbni/if_sbni.c
==============================================================================
--- head/sys/dev/sbni/if_sbni.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/sbni/if_sbni.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -1153,7 +1153,7 @@ sbni_ioctl(struct ifnet *ifp, u_long command, caddr_t 
 		SBNI_LOCK(sc);
 		bcopy(&sc->in_stats, in_stats, sizeof(struct sbni_in_stats));
 		SBNI_UNLOCK(sc);
-		error = copyout(ifr->ifr_data, in_stats,
+		error = copyout(ifr_data_get_ptr(ifr), in_stats,
 		    sizeof(struct sbni_in_stats));
 		free(in_stats, M_DEVBUF);
 		break;

Modified: head/sys/dev/sfxge/sfxge.c
==============================================================================
--- head/sys/dev/sfxge/sfxge.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/sfxge/sfxge.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -529,7 +529,7 @@ sfxge_if_ioctl(struct ifnet *ifp, unsigned long comman
 	{
 		struct ifi2creq i2c;
 
-		error = copyin(ifr->ifr_data, &i2c, sizeof(i2c));
+		error = copyin(ifr_data_get_ptr(ifr), &i2c, sizeof(i2c));
 		if (error != 0)
 			break;
 
@@ -544,7 +544,8 @@ sfxge_if_ioctl(struct ifnet *ifp, unsigned long comman
 						&i2c.data[0]);
 		SFXGE_ADAPTER_UNLOCK(sc);
 		if (error == 0)
-			error = copyout(&i2c, ifr->ifr_data, sizeof(i2c));
+			error = copyout(&i2c, ifr_data_get_ptr(ifr),
+			    sizeof(i2c));
 		break;
 	}
 #endif
@@ -552,12 +553,13 @@ sfxge_if_ioctl(struct ifnet *ifp, unsigned long comman
 		error = priv_check(curthread, PRIV_DRIVER);
 		if (error != 0)
 			break;
-		error = copyin(ifr->ifr_data, &ioc, sizeof(ioc));
+		error = copyin(ifr_data_get_ptr(ifr), &ioc, sizeof(ioc));
 		if (error != 0)
 			return (error);
 		error = sfxge_private_ioctl(sc, &ioc);
 		if (error == 0) {
-			error = copyout(&ioc, ifr->ifr_data, sizeof(ioc));
+			error = copyout(&ioc, ifr_data_get_ptr(ifr),
+			    sizeof(ioc));
 		}
 		break;
 	default:

Modified: head/sys/dev/vxge/vxge.c
==============================================================================
--- head/sys/dev/vxge/vxge.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/dev/vxge/vxge.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -3710,8 +3710,8 @@ vxge_ioctl_regs(vxge_dev_t *vdev, struct ifreq *ifr)
 	u32 offset, reqd_size = 0;
 	int i, err = EINVAL;
 
-	char *command = (char *) ifr->ifr_data;
-	void *reg_info = (void *) ifr->ifr_data;
+	char *command = ifr_data_get_ptr(ifr);
+	void *reg_info = ifr_data_get_ptr(ifr);
 
 	vxge_vpath_t *vpath;
 	vxge_hal_status_e status = VXGE_HAL_OK;
@@ -3818,7 +3818,7 @@ vxge_ioctl_stats(vxge_dev_t *vdev, struct ifreq *ifr)
 	vxge_drv_stats_t *drv_stat;
 
 	char *buffer = NULL;
-	char *command = (char *) ifr->ifr_data;
+	char *command = ifr_data_get_ptr(ifr);
 	vxge_hal_status_e status = VXGE_HAL_OK;
 
 	switch (*command) {
@@ -3829,7 +3829,8 @@ vxge_ioctl_stats(vxge_dev_t *vdev, struct ifreq *ifr)
 			status = vxge_hal_aux_pci_config_read(vdev->devh,
 			    bufsize, buffer, &retsize);
 			if (status == VXGE_HAL_OK)
-				err = copyout(buffer, ifr->ifr_data, retsize);
+				err = copyout(buffer, ifr_data_get_ptr(ifr),
+				    retsize);
 			else
 				device_printf(vdev->ndev,
 				    "failed pciconfig statistics query\n");
@@ -3848,7 +3849,8 @@ vxge_ioctl_stats(vxge_dev_t *vdev, struct ifreq *ifr)
 			status = vxge_hal_aux_stats_mrpcim_read(vdev->devh,
 			    bufsize, buffer, &retsize);
 			if (status == VXGE_HAL_OK)
-				err = copyout(buffer, ifr->ifr_data, retsize);
+				err = copyout(buffer, ifr_data_get_ptr(ifr),
+				    retsize);
 			else
 				device_printf(vdev->ndev,
 				    "failed mrpcim statistics query\n");
@@ -3864,7 +3866,8 @@ vxge_ioctl_stats(vxge_dev_t *vdev, struct ifreq *ifr)
 			status = vxge_hal_aux_stats_device_read(vdev->devh,
 			    bufsize, buffer, &retsize);
 			if (status == VXGE_HAL_OK)
-				err = copyout(buffer, ifr->ifr_data, retsize);
+				err = copyout(buffer, ifr_data_get_ptr(ifr),
+				    retsize);
 			else
 				device_printf(vdev->ndev,
 				    "failed device statistics query\n");
@@ -3888,7 +3891,7 @@ vxge_ioctl_stats(vxge_dev_t *vdev, struct ifreq *ifr)
 			((vxge_device_hw_info_t *) buffer)->port_failure =
 			    vdev->port_failure;
 
-			err = copyout(buffer, ifr->ifr_data, bufsize);
+			err = copyout(buffer, ifr_data_get_ptr(ifr), bufsize);
 			if (err != 0)
 				device_printf(vdev->ndev,
 				    "failed device hardware info query\n");
@@ -3915,7 +3918,7 @@ vxge_ioctl_stats(vxge_dev_t *vdev, struct ifreq *ifr)
 				    sizeof(vxge_drv_stats_t));
 			}
 
-			err = copyout(drv_stat, ifr->ifr_data, bufsize);
+			err = copyout(drv_stat, ifr_data_get_ptr(ifr), bufsize);
 			if (err != 0)
 				device_printf(vdev->ndev,
 				    "failed driver statistics query\n");
@@ -3925,7 +3928,7 @@ vxge_ioctl_stats(vxge_dev_t *vdev, struct ifreq *ifr)
 		break;
 
 	case VXGE_GET_BANDWIDTH:
-		bw_info = (vxge_bw_info_t *) ifr->ifr_data;
+		bw_info = ifr_data_get_ptr(ifr);
 
 		if ((vdev->config.hw_info.func_id != 0) &&
 		    (vdev->hw_fw_version < VXGE_FW_VERSION(1, 8, 0)))
@@ -3938,7 +3941,8 @@ vxge_ioctl_stats(vxge_dev_t *vdev, struct ifreq *ifr)
 		if (status != VXGE_HAL_OK)
 			break;
 
-		err = copyout(bw_info, ifr->ifr_data, sizeof(vxge_bw_info_t));
+		err = copyout(bw_info, ifr_data_get_ptr(ifr),
+		    sizeof(vxge_bw_info_t));
 		break;
 
 	case VXGE_SET_BANDWIDTH:
@@ -3949,7 +3953,7 @@ vxge_ioctl_stats(vxge_dev_t *vdev, struct ifreq *ifr)
 	case VXGE_SET_PORT_MODE:
 		if (vdev->is_privilaged) {
 			if (vdev->config.hw_info.ports == VXGE_DUAL_PORT_MODE) {
-				port_info = (vxge_port_info_t *) ifr->ifr_data;
+				port_info = ifr_data_get_ptr(ifr);
 				vdev->config.port_mode = port_info->port_mode;
 				err = vxge_port_mode_update(vdev);
 				if (err != ENXIO)
@@ -3966,10 +3970,11 @@ vxge_ioctl_stats(vxge_dev_t *vdev, struct ifreq *ifr)
 	case VXGE_GET_PORT_MODE:
 		if (vdev->is_privilaged) {
 			if (vdev->config.hw_info.ports == VXGE_DUAL_PORT_MODE) {
-				port_info = (vxge_port_info_t *) ifr->ifr_data;
+				port_info = ifr_data_get_ptr(ifr);
 				err = vxge_port_mode_get(vdev, port_info);
 				if (err == VXGE_HAL_OK) {
-					err = copyout(port_info, ifr->ifr_data,
+					err = copyout(port_info,
+					    ifr_data_get_ptr(ifr),
 					    sizeof(vxge_port_info_t));
 				}
 			}
@@ -4005,7 +4010,7 @@ vxge_bw_priority_set(vxge_dev_t *vdev, struct ifreq *i
 	u32 func_id;
 	vxge_bw_info_t *bw_info;
 
-	bw_info = (vxge_bw_info_t *) ifr->ifr_data;
+	bw_info = ifr_data_get_ptr(ifr);
 	func_id = bw_info->func_id;
 
 	vdev->config.bw_info[func_id].priority = bw_info->priority;

Modified: head/sys/net/if.c
==============================================================================
--- head/sys/net/if.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/net/if.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -2403,6 +2403,20 @@ ifr_buffer_set_length(struct thread *td, void *data, s
 		ifrup->ifr.ifr_ifru.ifru_buffer.length = len;
 }
 
+void *
+ifr_data_get_ptr(void *ifrp)
+{
+	union ifreq_union *ifrup;
+
+	ifrup = ifrp;
+#ifdef COMPAT_FREEBSD32
+	if (SV_CURPROC_FLAG(SV_ILP32))
+		return ((void *)(uintptr_t)
+		    ifrup->ifr32.ifr_ifru.ifru_data);
+#endif
+		return (ifrup->ifr.ifr_ifru.ifru_data);
+}
+
 /*
  * Hardware specific interface ioctls.
  */
@@ -2584,7 +2598,8 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data,
 		error = priv_check(td, PRIV_NET_SETIFNAME);
 		if (error)
 			return (error);
-		error = copyinstr(ifr->ifr_data, new_name, IFNAMSIZ, NULL);
+		error = copyinstr(ifr_data_get_ptr(ifr), new_name, IFNAMSIZ,
+		    NULL);
 		if (error != 0)
 			return (error);
 		if (new_name[0] == '\0')
@@ -2895,8 +2910,8 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, s
 		error = priv_check(td, PRIV_NET_IFCREATE);
 		if (error == 0)
 			error = if_clone_create(ifr->ifr_name,
-			    sizeof(ifr->ifr_name),
-			    cmd == SIOCIFCREATE2 ? ifr->ifr_data : NULL);
+			    sizeof(ifr->ifr_name), cmd == SIOCIFCREATE2 ?
+			    ifr_data_get_ptr(ifr) : NULL);
 		CURVNET_RESTORE();
 		return (error);
 	case SIOCIFDESTROY:

Modified: head/sys/net/if.h
==============================================================================
--- head/sys/net/if.h	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/net/if.h	Fri Mar 30 18:50:13 2018	(r331797)
@@ -412,7 +412,9 @@ struct	ifreq {
 #define	ifr_mtu		ifr_ifru.ifru_mtu	/* mtu */
 #define ifr_phys	ifr_ifru.ifru_phys	/* physical wire */
 #define ifr_media	ifr_ifru.ifru_media	/* physical media */
+#ifndef _KERNEL
 #define	ifr_data	ifr_ifru.ifru_data	/* for use by interface */
+#endif
 #define	ifr_reqcap	ifr_ifru.ifru_cap[0]	/* requested capabilities */
 #define	ifr_curcap	ifr_ifru.ifru_cap[1]	/* current capabilities */
 #define	ifr_index	ifr_ifru.ifru_index	/* interface index */

Modified: head/sys/net/if_gif.c
==============================================================================
--- head/sys/net/if_gif.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/net/if_gif.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -898,12 +898,14 @@ gif_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 		break;
 	case GIFGOPTS:
 		options = sc->gif_options;
-		error = copyout(&options, ifr->ifr_data, sizeof(options));
+		error = copyout(&options, ifr_data_get_ptr(ifr),
+		    sizeof(options));
 		break;
 	case GIFSOPTS:
 		if ((error = priv_check(curthread, PRIV_NET_GIF)) != 0)
 			break;
-		error = copyin(ifr->ifr_data, &options, sizeof(options));
+		error = copyin(ifr_data_get_ptr(ifr), &options,
+		    sizeof(options));
 		if (error)
 			break;
 		if (options & ~GIF_OPTMASK)

Modified: head/sys/net/if_gre.c
==============================================================================
--- head/sys/net/if_gre.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/net/if_gre.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -455,7 +455,8 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 	case GRESKEY:
 		if ((error = priv_check(curthread, PRIV_NET_GRE)) != 0)
 			break;
-		if ((error = copyin(ifr->ifr_data, &opt, sizeof(opt))) != 0)
+		if ((error = copyin(ifr_data_get_ptr(ifr), &opt,
+		    sizeof(opt))) != 0)
 			break;
 		if (sc->gre_key != opt) {
 			GRE_WLOCK(sc);
@@ -465,13 +466,14 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 		}
 		break;
 	case GREGKEY:
-		error = copyout(&sc->gre_key, ifr->ifr_data,
+		error = copyout(&sc->gre_key, ifr_data_get_ptr(ifr),
 		    sizeof(sc->gre_key));
 		break;
 	case GRESOPTS:
 		if ((error = priv_check(curthread, PRIV_NET_GRE)) != 0)
 			break;
-		if ((error = copyin(ifr->ifr_data, &opt, sizeof(opt))) != 0)
+		if ((error = copyin(ifr_data_get_ptr(ifr), &opt,
+		    sizeof(opt))) != 0)
 			break;
 		if (opt & ~GRE_OPTMASK)
 			error = EINVAL;
@@ -486,7 +488,7 @@ gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 		break;
 
 	case GREGOPTS:
-		error = copyout(&sc->gre_options, ifr->ifr_data,
+		error = copyout(&sc->gre_options, ifr_data_get_ptr(ifr),
 		    sizeof(sc->gre_options));
 		break;
 	default:

Modified: head/sys/net/if_ipsec.c
==============================================================================
--- head/sys/net/if_ipsec.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/net/if_ipsec.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -688,12 +688,12 @@ ipsec_ioctl(struct ifnet *ifp, u_long cmd, caddr_t dat
 		break;
 	case IPSECGREQID:
 		reqid = sc->reqid;
-		error = copyout(&reqid, ifr->ifr_data, sizeof(reqid));
+		error = copyout(&reqid, ifr_data_get_ptr(ifr), sizeof(reqid));
 		break;
 	case IPSECSREQID:
 		if ((error = priv_check(curthread, PRIV_NET_SETIFCAP)) != 0)
 			break;
-		error = copyin(ifr->ifr_data, &reqid, sizeof(reqid));
+		error = copyin(ifr_data_get_ptr(ifr), &reqid, sizeof(reqid));
 		if (error != 0)
 			break;
 		error = ipsec_set_reqid(ifp, reqid);

Modified: head/sys/net/if_spppsubr.c
==============================================================================
--- head/sys/net/if_spppsubr.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/net/if_spppsubr.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -5058,17 +5058,17 @@ sppp_params(struct sppp *sp, u_long cmd, void *data)
 	if ((spr = malloc(sizeof(struct spppreq), M_TEMP, M_NOWAIT)) == NULL)
 		return (EAGAIN);
 	/*
-	 * ifr->ifr_data is supposed to point to a struct spppreq.
+	 * ifr_data_get_ptr(ifr) is supposed to point to a struct spppreq.
 	 * Check the cmd word first before attempting to fetch all the
 	 * data.
 	 */
-	rv = fueword(ifr->ifr_data, &subcmd);
+	rv = fueword(ifr_data_get_ptr(ifr), &subcmd);
 	if (rv == -1) {
 		rv = EFAULT;
 		goto quit;
 	}
 
-	if (copyin((caddr_t)ifr->ifr_data, spr, sizeof(struct spppreq)) != 0) {
+	if (copyin(ifr_data_get_ptr(ifr), spr, sizeof(struct spppreq)) != 0) {
 		rv = EFAULT;
 		goto quit;
 	}
@@ -5105,8 +5105,8 @@ sppp_params(struct sppp *sp, u_long cmd, void *data)
 		 * setting it.
 		 */
 		spr->defs.lcp.timeout = sp->lcp.timeout * 1000 / hz;
-		rv = copyout(spr, (caddr_t)ifr->ifr_data,
-			     sizeof(struct spppreq));
+		rv = copyout(spr, ifr_data_get_ptr(ifr),
+		    sizeof(struct spppreq));
 		break;
 
 	case (u_long)SPPPIOSDEFS:

Modified: head/sys/net/if_var.h
==============================================================================
--- head/sys/net/if_var.h	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/net/if_var.h	Fri Mar 30 18:50:13 2018	(r331797)
@@ -719,6 +719,9 @@ int drbr_enqueue_drv(if_t ifp, struct buf_ring *br, st
 void if_hw_tsomax_common(if_t ifp, struct ifnet_hw_tsomax *);
 int if_hw_tsomax_update(if_t ifp, struct ifnet_hw_tsomax *);
 
+/* accessors for struct ifreq */
+void *ifr_data_get_ptr(void *ifrp);
+
 #ifdef DEVICE_POLLING
 enum poll_cmd { POLL_ONLY, POLL_AND_CHECK_STATUS };
 

Modified: head/sys/net/if_vlan.c
==============================================================================
--- head/sys/net/if_vlan.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/net/if_vlan.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -1857,7 +1857,7 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data
 			break;
 		}
 #endif
-		error = copyin(ifr->ifr_data, &vlr, sizeof(vlr));
+		error = copyin(ifr_data_get_ptr(ifr), &vlr, sizeof(vlr));
 		if (error)
 			break;
 		if (vlr.vlr_parent[0] == '\0') {
@@ -1888,7 +1888,7 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data
 			vlr.vlr_tag = ifv->ifv_vid;
 		}
 		VLAN_SUNLOCK();
-		error = copyout(&vlr, ifr->ifr_data, sizeof(vlr));
+		error = copyout(&vlr, ifr_data_get_ptr(ifr), sizeof(vlr));
 		break;
 		
 	case SIOCSIFFLAGS:

Modified: head/sys/net/iflib.c
==============================================================================
--- head/sys/net/iflib.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/net/iflib.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -3984,7 +3984,7 @@ iflib_if_ioctl(if_t ifp, u_long command, caddr_t data)
 	{
 		struct ifi2creq i2c;
 
-		err = copyin(ifr->ifr_data, &i2c, sizeof(i2c));
+		err = copyin(ifr_data_get_ptr(ifr), &i2c, sizeof(i2c));
 		if (err != 0)
 			break;
 		if (i2c.dev_addr != 0xA0 && i2c.dev_addr != 0xA2) {
@@ -3997,7 +3997,8 @@ iflib_if_ioctl(if_t ifp, u_long command, caddr_t data)
 		}
 
 		if ((err = IFDI_I2C_REQ(ctx, &i2c)) == 0)
-			err = copyout(&i2c, ifr->ifr_data, sizeof(i2c));
+			err = copyout(&i2c, ifr_data_get_ptr(ifr),
+			    sizeof(i2c));
 		break;
 	}
 	case SIOCSIFCAP:

Modified: head/sys/net80211/ieee80211_ioctl.c
==============================================================================
--- head/sys/net80211/ieee80211_ioctl.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/net80211/ieee80211_ioctl.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -3567,7 +3567,8 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t
 		break;
 	case SIOCG80211STATS:
 		ifr = (struct ifreq *)data;
-		copyout(&vap->iv_stats, ifr->ifr_data, sizeof (vap->iv_stats));
+		copyout(&vap->iv_stats, ifr_data_get_ptr(ifr),
+		    sizeof (vap->iv_stats));
 		break;
 	case SIOCSIFMTU:
 		ifr = (struct ifreq *)data;

Modified: head/sys/netinet/ip_carp.c
==============================================================================
--- head/sys/netinet/ip_carp.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/netinet/ip_carp.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -1708,7 +1708,7 @@ carp_ioctl(struct ifreq *ifr, u_long cmd, struct threa
 	struct carp_softc *sc = NULL;
 	int error = 0, locked = 0;
 
-	if ((error = copyin(ifr->ifr_data, &carpr, sizeof carpr)))
+	if ((error = copyin(ifr_data_get_ptr(ifr), &carpr, sizeof carpr)))
 		return (error);
 
 	ifp = ifunit_ref(ifr->ifr_name);
@@ -1824,7 +1824,8 @@ carp_ioctl(struct ifreq *ifr, u_long cmd, struct threa
 				break;
 			}
 			carp_carprcp(&carpr, sc, priveleged);
-			error = copyout(&carpr, ifr->ifr_data, sizeof(carpr));
+			error = copyout(&carpr, ifr_data_get_ptr(ifr),
+			    sizeof(carpr));
 		} else  {
 			int i, count;
 
@@ -1842,7 +1843,8 @@ carp_ioctl(struct ifreq *ifr, u_long cmd, struct threa
 			IFNET_FOREACH_CARP(ifp, sc) {
 				carp_carprcp(&carpr, sc, priveleged);
 				carpr.carpr_count = count;
-				error = copyout(&carpr, ifr->ifr_data +
+				error = copyout(&carpr,
+				    (caddr_t)ifr_data_get_ptr(ifr) +
 				    (i * sizeof(carpr)), sizeof(carpr));
 				if (error) {
 					CIF_UNLOCK(ifp->if_carp);

Modified: head/sys/netpfil/pf/if_pfsync.c
==============================================================================
--- head/sys/netpfil/pf/if_pfsync.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/netpfil/pf/if_pfsync.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -1319,7 +1319,8 @@ pfsyncioctl(struct ifnet *ifp, u_long cmd, caddr_t dat
 		pfsyncr.pfsyncr_defer = (PFSYNCF_DEFER ==
 		    (sc->sc_flags & PFSYNCF_DEFER));
 		PFSYNC_UNLOCK(sc);
-		return (copyout(&pfsyncr, ifr->ifr_data, sizeof(pfsyncr)));
+		return (copyout(&pfsyncr, ifr_data_get_ptr(ifr),
+		    sizeof(pfsyncr)));
 
 	case SIOCSETPFSYNC:
 	    {
@@ -1330,7 +1331,8 @@ pfsyncioctl(struct ifnet *ifp, u_long cmd, caddr_t dat
 
 		if ((error = priv_check(curthread, PRIV_NETINET_PF)) != 0)
 			return (error);
-		if ((error = copyin(ifr->ifr_data, &pfsyncr, sizeof(pfsyncr))))
+		if ((error = copyin(ifr_data_get_ptr(ifr), &pfsyncr,
+		    sizeof(pfsyncr))))
 			return (error);
 
 		if (pfsyncr.pfsyncr_maxupdates > 255)

Modified: head/sys/security/mac/mac_net.c
==============================================================================
--- head/sys/security/mac/mac_net.c	Fri Mar 30 18:49:52 2018	(r331796)
+++ head/sys/security/mac/mac_net.c	Fri Mar 30 18:50:13 2018	(r331797)
@@ -406,7 +406,7 @@ mac_ifnet_ioctl_get(struct ucred *cred, struct ifreq *
 	if (!(mac_labeled & MPC_OBJECT_IFNET))
 		return (EINVAL);
 
-	error = copyin(ifr->ifr_ifru.ifru_data, &mac, sizeof(mac));
+	error = copyin(ifr_data_get_ptr(ifr), &mac, sizeof(mac));
 	if (error)
 		return (error);
 
@@ -449,7 +449,7 @@ mac_ifnet_ioctl_set(struct ucred *cred, struct ifreq *
 	if (!(mac_labeled & MPC_OBJECT_IFNET))
 		return (EINVAL);
 
-	error = copyin(ifr->ifr_ifru.ifru_data, &mac, sizeof(mac));
+	error = copyin(ifr_data_get_ptr(ifr), &mac, sizeof(mac));
 	if (error)
 		return (error);
 

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:50:42 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B8C19F56B89;
 Fri, 30 Mar 2018 18:50:42 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6C4C0778EE;
 Fri, 30 Mar 2018 18:50:42 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 66F804CDB;
 Fri, 30 Mar 2018 18:50:42 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIogHP083851;
 Fri, 30 Mar 2018 18:50:42 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIogPn083850;
 Fri, 30 Mar 2018 18:50:42 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301850.w2UIogPn083850@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:50:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331798 - stable/11/sys/dev/mlx5/mlx5_ib
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_ib
X-SVN-Commit-Revision: 331798
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:50:43 -0000

Author: hselasky
Date: Fri Mar 30 18:50:42 2018
New Revision: 331798
URL: https://svnweb.freebsd.org/changeset/base/331798

Log:
  MFC r330662:
  Set correct SL in completion for RoCE in mlx5ib(4).
  
  There is a difference when parsing a completion entry between Ethernet
  and IB ports. When link layer is Ethernet the bits describe the type of
  L3 header in the packet. In the case when link layer is Ethernet and VLAN
  header is present the value of SL is equal to the 3 UP bits in the VLAN
  header. If VLAN header is not present then the SL is undefined and consumer
  of the completion should check if IB_WC_WITH_VLAN is set.
  
  While that, this patch also fills the vlan_id field in the completion if
  present.
  
  linux commit 12f8fedef2ec94c783f929126b20440a01512c14
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_cq.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_cq.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_cq.c	Fri Mar 30 18:50:13 2018	(r331797)
+++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_cq.c	Fri Mar 30 18:50:42 2018	(r331798)
@@ -167,6 +167,8 @@ static void handle_responder(struct ib_wc *wc, struct 
 	struct mlx5_ib_srq *srq;
 	struct mlx5_ib_wq *wq;
 	u16 wqe_ctr;
+	u8  roce_packet_type;
+	bool vlan_present;
 	u8 g;
 
 	if (qp->ibqp.srq || qp->ibqp.xrcd) {
@@ -218,7 +220,6 @@ static void handle_responder(struct ib_wc *wc, struct 
 		break;
 	}
 	wc->slid	   = be16_to_cpu(cqe->slid);
-	wc->sl		   = (be32_to_cpu(cqe->flags_rqpn) >> 24) & 0xf;
 	wc->src_qp	   = be32_to_cpu(cqe->flags_rqpn) & 0xffffff;
 	wc->dlid_path_bits = cqe->ml_path;
 	g = (be32_to_cpu(cqe->flags_rqpn) >> 28) & 3;
@@ -232,10 +233,22 @@ static void handle_responder(struct ib_wc *wc, struct 
 		wc->pkey_index = 0;
 	}
 
-	if (ll != IB_LINK_LAYER_ETHERNET)
+	if (ll != IB_LINK_LAYER_ETHERNET) {
+		wc->sl = (be32_to_cpu(cqe->flags_rqpn) >> 24) & 0xf;
 		return;
+	}
 
-	switch (wc->sl & 0x3) {
+	vlan_present = cqe_has_vlan(cqe);
+	roce_packet_type   = (be32_to_cpu(cqe->flags_rqpn) >> 24) & 0x3;
+	if (vlan_present) {
+		wc->vlan_id = (be16_to_cpu(cqe->vlan_info)) & 0xfff;
+		wc->sl = (be16_to_cpu(cqe->vlan_info) >> 13) & 0x7;
+		wc->wc_flags |= IB_WC_WITH_VLAN;
+	} else {
+		wc->sl = 0;
+	}
+
+	switch (roce_packet_type) {
 	case MLX5_CQE_ROCE_L3_HEADER_TYPE_GRH:
 		wc->network_hdr_type = RDMA_NETWORK_IB;
 		break;

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:51:37 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5F0D1F56E89;
 Fri, 30 Mar 2018 18:51:37 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 1241A77B36;
 Fri, 30 Mar 2018 18:51:37 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0CBCB4D2B;
 Fri, 30 Mar 2018 18:51:37 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIpaNp085336;
 Fri, 30 Mar 2018 18:51:36 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIpaWJ085324;
 Fri, 30 Mar 2018 18:51:36 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301851.w2UIpaWJ085324@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:51:36 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331799 -
 stable/11/sys/compat/linuxkpi/common/include/linux
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/compat/linuxkpi/common/include/linux
X-SVN-Commit-Revision: 331799
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:51:37 -0000

Author: hselasky
Date: Fri Mar 30 18:51:36 2018
New Revision: 331799
URL: https://svnweb.freebsd.org/changeset/base/331799

Log:
  MFC r330944:
  Fix compliancy of the kstrtoXXX() functions in the LinuxKPI, by skipping
  one newline character at the end, if any.
  
  Found by:	greg@unrelenting.technology
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/compat/linuxkpi/common/include/linux/kernel.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/kernel.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/kernel.h	Fri Mar 30 18:50:42 2018	(r331798)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/kernel.h	Fri Mar 30 18:51:36 2018	(r331799)
@@ -295,6 +295,9 @@ kstrtoul(const char *cp, unsigned int base, unsigned l
 
 	*res = strtoul(cp, &end, base);
 
+	/* skip newline character, if any */
+	if (*end == '\n')
+		end++;
 	if (*cp == 0 || *end != 0)
 		return (-EINVAL);
 	return (0);
@@ -307,6 +310,9 @@ kstrtol(const char *cp, unsigned int base, long *res)
 
 	*res = strtol(cp, &end, base);
 
+	/* skip newline character, if any */
+	if (*end == '\n')
+		end++;
 	if (*cp == 0 || *end != 0)
 		return (-EINVAL);
 	return (0);
@@ -320,6 +326,9 @@ kstrtoint(const char *cp, unsigned int base, int *res)
 
 	*res = temp = strtol(cp, &end, base);
 
+	/* skip newline character, if any */
+	if (*end == '\n')
+		end++;
 	if (*cp == 0 || *end != 0)
 		return (-EINVAL);
 	if (temp != (int)temp)
@@ -335,6 +344,9 @@ kstrtouint(const char *cp, unsigned int base, unsigned
 
 	*res = temp = strtoul(cp, &end, base);
 
+	/* skip newline character, if any */
+	if (*end == '\n')
+		end++;
 	if (*cp == 0 || *end != 0)
 		return (-EINVAL);
 	if (temp != (unsigned int)temp)
@@ -350,6 +362,9 @@ kstrtou32(const char *cp, unsigned int base, u32 *res)
 
 	*res = temp = strtoul(cp, &end, base);
 
+	/* skip newline character, if any */
+	if (*end == '\n')
+		end++;
 	if (*cp == 0 || *end != 0)
 		return (-EINVAL);
 	if (temp != (u32)temp)

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:52:24 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C6DAAF56FB7;
 Fri, 30 Mar 2018 18:52:24 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 7A52B77D37;
 Fri, 30 Mar 2018 18:52:24 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 74E804E56;
 Fri, 30 Mar 2018 18:52:24 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIqOX2088285;
 Fri, 30 Mar 2018 18:52:24 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIqOYx088258;
 Fri, 30 Mar 2018 18:52:24 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301852.w2UIqOYx088258@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:52:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331800 - stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/ofed/drivers/infiniband/core
X-SVN-Commit-Revision: 331800
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:52:24 -0000

Author: hselasky
Date: Fri Mar 30 18:52:24 2018
New Revision: 331800
URL: https://svnweb.freebsd.org/changeset/base/331800

Log:
  MFC r331204:
  Remove redundant integer cast in ibcore. The "ref_count" field already
  has integer type.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/ofed/drivers/infiniband/core/ib_fmr_pool.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/drivers/infiniband/core/ib_fmr_pool.c
==============================================================================
--- stable/11/sys/ofed/drivers/infiniband/core/ib_fmr_pool.c	Fri Mar 30 18:51:36 2018	(r331799)
+++ stable/11/sys/ofed/drivers/infiniband/core/ib_fmr_pool.c	Fri Mar 30 18:52:24 2018	(r331800)
@@ -155,7 +155,7 @@ static void ib_fmr_batch_release(struct ib_fmr_pool *p
 #ifdef DEBUG
 		if (fmr->ref_count !=0) {
 			pr_warn(PFX "Unmapping FMR %p with ref count %d\n",
-				fmr, (int)fmr->ref_count);
+				fmr, fmr->ref_count);
 		}
 #endif
 	}

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:53:13 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09233F570FB;
 Fri, 30 Mar 2018 18:53:13 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 86BED77FFA;
 Fri, 30 Mar 2018 18:53:12 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 812434E5E;
 Fri, 30 Mar 2018 18:53:12 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIrCcl088790;
 Fri, 30 Mar 2018 18:53:12 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIrCS3088789;
 Fri, 30 Mar 2018 18:53:12 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301853.w2UIrCS3088789@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:53:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331801 -
 stable/11/sys/compat/linuxkpi/common/include/linux
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/compat/linuxkpi/common/include/linux
X-SVN-Commit-Revision: 331801
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:53:13 -0000

Author: hselasky
Date: Fri Mar 30 18:53:12 2018
New Revision: 331801
URL: https://svnweb.freebsd.org/changeset/base/331801

Log:
  MFC r331355:
  Clear old MSIX IRQ numbers in the LinuxKPI.
  
  When disabling the MSIX IRQ vectors for a PCI device through the
  LinuxKPI, make sure any old MSIX IRQ numbers are no longer visible to
  the linux_pci_find_irq_dev() function else IRQs can be requested from
  the wrong PCI device.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/compat/linuxkpi/common/include/linux/pci.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/pci.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/pci.h	Fri Mar 30 18:52:24 2018	(r331800)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/pci.h	Fri Mar 30 18:53:12 2018	(r331801)
@@ -425,6 +425,15 @@ pci_disable_msix(struct pci_dev *pdev)
 {
 
 	pci_release_msi(pdev->dev.bsddev);
+
+	/*
+	 * The MSIX IRQ numbers associated with this PCI device are no
+	 * longer valid and might be re-assigned. Make sure
+	 * linux_pci_find_irq_dev() does no longer see them by
+	 * resetting their references to zero:
+	 */
+	pdev->dev.msix = 0;
+	pdev->dev.msix_max = 0;
 }
 
 static inline bus_addr_t

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:53:59 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E6E03F57229;
 Fri, 30 Mar 2018 18:53:58 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 99B7878159;
 Fri, 30 Mar 2018 18:53:58 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 949714E5F;
 Fri, 30 Mar 2018 18:53:58 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UIrwR5088881;
 Fri, 30 Mar 2018 18:53:58 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UIrwt8088880;
 Fri, 30 Mar 2018 18:53:58 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301853.w2UIrwt8088880@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:53:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331802 -
 stable/11/sys/compat/linuxkpi/common/include/linux
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/compat/linuxkpi/common/include/linux
X-SVN-Commit-Revision: 331802
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:53:59 -0000

Author: hselasky
Date: Fri Mar 30 18:53:58 2018
New Revision: 331802
URL: https://svnweb.freebsd.org/changeset/base/331802

Log:
  MFC r331357:
  The pci_disable_device() function is also expected to clear the PCI
  busmaster. This fixes LinuxKPI compliancy with Linux.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/compat/linuxkpi/common/include/linux/pci.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/pci.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/pci.h	Fri Mar 30 18:53:12 2018	(r331801)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/pci.h	Fri Mar 30 18:53:58 2018	(r331802)
@@ -343,6 +343,7 @@ pci_disable_device(struct pci_dev *pdev)
 
 	pci_disable_io(pdev->dev.bsddev, SYS_RES_IOPORT);
 	pci_disable_io(pdev->dev.bsddev, SYS_RES_MEMORY);
+	pci_disable_busmaster(pdev->dev.bsddev);
 }
 
 static inline int

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:55:15 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E4F16F5741A;
 Fri, 30 Mar 2018 18:55:14 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 76D4A7834A;
 Fri, 30 Mar 2018 18:55:14 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 71B204E60;
 Fri, 30 Mar 2018 18:55:14 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UItEaA089024;
 Fri, 30 Mar 2018 18:55:14 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UItEkw089021;
 Fri, 30 Mar 2018 18:55:14 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301855.w2UItEkw089021@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:55:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331803 - stable/11/sys/dev/mlx5/mlx5_en
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en
X-SVN-Commit-Revision: 331803
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:55:15 -0000

Author: hselasky
Date: Fri Mar 30 18:55:13 2018
New Revision: 331803
URL: https://svnweb.freebsd.org/changeset/base/331803

Log:
  MFC r331437:
  Create designated workqueue for each mlx5en(4) device instance.
  
  The mlx5e_destroy_ifp() function may be called from the system workqueue and
  in this case trying to flush all works will cause a dead lock.
  Instead of using the system workqueue, create a designated workqueue
  for each mlx5en(4) device instance.
  
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/mlx5_en/en.h
  stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/mlx5_en/en.h
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_en/en.h	Fri Mar 30 18:53:58 2018	(r331802)
+++ stable/11/sys/dev/mlx5/mlx5_en/en.h	Fri Mar 30 18:55:13 2018	(r331803)
@@ -759,6 +759,8 @@ struct mlx5e_priv {
 	struct mlx5e_stats stats;
 	int	counter_set_id;
 
+	struct workqueue_struct *wq;
+
 	eventhandler_tag vlan_detach;
 	eventhandler_tag vlan_attach;
 	struct ifmedia media;

Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c	Fri Mar 30 18:53:58 2018	(r331802)
+++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c	Fri Mar 30 18:55:13 2018	(r331803)
@@ -640,7 +640,7 @@ mlx5e_update_stats(void *arg)
 {
 	struct mlx5e_priv *priv = arg;
 
-	schedule_work(&priv->update_stats_work);
+	queue_work(priv->wq, &priv->update_stats_work);
 
 	callout_reset(&priv->watchdog, hz, &mlx5e_update_stats, priv);
 }
@@ -652,7 +652,7 @@ mlx5e_async_event_sub(struct mlx5e_priv *priv,
 	switch (event) {
 	case MLX5_DEV_EVENT_PORT_UP:
 	case MLX5_DEV_EVENT_PORT_DOWN:
-		schedule_work(&priv->update_carrier_work);
+		queue_work(priv->wq, &priv->update_carrier_work);
 		break;
 
 	default:
@@ -2585,7 +2585,7 @@ mlx5e_set_rx_mode(struct ifnet *ifp)
 {
 	struct mlx5e_priv *priv = ifp->if_softc;
 
-	schedule_work(&priv->set_rx_mode_work);
+	queue_work(priv->wq, &priv->set_rx_mode_work);
 }
 
 static int
@@ -3425,11 +3425,20 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev)
 		goto err_free_sysctl;
 	}
 	mlx5e_build_ifp_priv(mdev, priv, ncv);
+
+	snprintf(unit, sizeof(unit), "mce%u_wq",
+	    device_get_unit(mdev->pdev->dev.bsddev));
+	priv->wq = alloc_workqueue(unit, 0, 1);
+	if (priv->wq == NULL) {
+		if_printf(ifp, "%s: alloc_workqueue failed\n", __func__);
+		goto err_free_sysctl;
+	}
+
 	err = mlx5_alloc_map_uar(mdev, &priv->cq_uar);
 	if (err) {
 		if_printf(ifp, "%s: mlx5_alloc_map_uar failed, %d\n",
 		    __func__, err);
-		goto err_free_sysctl;
+		goto err_free_wq;
 	}
 	err = mlx5_core_alloc_pd(mdev, &priv->pdn);
 	if (err) {
@@ -3544,6 +3553,9 @@ err_dealloc_pd:
 err_unmap_free_uar:
 	mlx5_unmap_free_uar(mdev, &priv->cq_uar);
 
+err_free_wq:
+	destroy_workqueue(priv->wq);
+
 err_free_sysctl:
 	sysctl_ctx_free(&priv->sysctl_ctx);
 
@@ -3604,7 +3616,7 @@ mlx5e_destroy_ifp(struct mlx5_core_dev *mdev, void *vp
 	mlx5_core_dealloc_pd(priv->mdev, priv->pdn);
 	mlx5_unmap_free_uar(priv->mdev, &priv->cq_uar);
 	mlx5e_disable_async_events(priv);
-	flush_scheduled_work();
+	destroy_workqueue(priv->wq);
 	mlx5e_priv_mtx_destroy(priv);
 	free(priv, M_MLX5EN);
 }

From owner-svn-src-all@freebsd.org  Fri Mar 30 18:55:59 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B4C3EF57542;
 Fri, 30 Mar 2018 18:55:59 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6709E784CA;
 Fri, 30 Mar 2018 18:55:59 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 61CC04E61;
 Fri, 30 Mar 2018 18:55:59 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UItxah089103;
 Fri, 30 Mar 2018 18:55:59 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UItxjG089102;
 Fri, 30 Mar 2018 18:55:59 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301855.w2UItxjG089102@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 18:55:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331804 - stable/11/sys/contrib/rdma/krping
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/contrib/rdma/krping
X-SVN-Commit-Revision: 331804
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 18:55:59 -0000

Author: hselasky
Date: Fri Mar 30 18:55:59 2018
New Revision: 331804
URL: https://svnweb.freebsd.org/changeset/base/331804

Log:
  MFC r331438:
  Exit krping on device removal to avoid endless hang situation.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/contrib/rdma/krping/krping.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/contrib/rdma/krping/krping.c
==============================================================================
--- stable/11/sys/contrib/rdma/krping/krping.c	Fri Mar 30 18:55:13 2018	(r331803)
+++ stable/11/sys/contrib/rdma/krping/krping.c	Fri Mar 30 18:55:59 2018	(r331804)
@@ -301,6 +301,8 @@ static int krping_cma_event_handler(struct rdma_cm_id 
 
 	case RDMA_CM_EVENT_DEVICE_REMOVAL:
 		printk(KERN_ERR PFX "cma detected device removal!!!!\n");
+		cb->state = ERROR;
+		wake_up_interruptible(&cb->sem);
 		break;
 
 	default:

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:02:25 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 744A4F57F93;
 Fri, 30 Mar 2018 19:02:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 275BF78C0F;
 Fri, 30 Mar 2018 19:02:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 225974FFE;
 Fri, 30 Mar 2018 19:02:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJ2P7H094075;
 Fri, 30 Mar 2018 19:02:25 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJ2PRC094074;
 Fri, 30 Mar 2018 19:02:25 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301902.w2UJ2PRC094074@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:02:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331805 - stable/11/sys/dev/mlx5/mlx5_ib
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_ib
X-SVN-Commit-Revision: 331805
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:02:25 -0000

Author: hselasky
Date: Fri Mar 30 19:02:24 2018
New Revision: 331805
URL: https://svnweb.freebsd.org/changeset/base/331805

Log:
  MFC r330606:
  Implement missing query for current port rate in mlx5ib(4).
  
  This is a direct commit.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c

Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c	Fri Mar 30 18:55:59 2018	(r331804)
+++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c	Fri Mar 30 19:02:24 2018	(r331805)
@@ -165,6 +165,64 @@ static struct net_device *mlx5_ib_get_netdev(struct ib
 	return ndev;
 }
 
+static int translate_eth_proto_oper(u32 eth_proto_oper, u8 *active_speed,
+				    u8 *active_width)
+{
+	switch (eth_proto_oper) {
+	case MLX5E_PROT_MASK(MLX5E_1000BASE_CX_SGMII):
+	case MLX5E_PROT_MASK(MLX5E_1000BASE_KX):
+	case MLX5E_PROT_MASK(MLX5E_100BASE_TX):
+	case MLX5E_PROT_MASK(MLX5E_1000BASE_T):
+		*active_width = IB_WIDTH_1X;
+		*active_speed = IB_SPEED_SDR;
+		break;
+	case MLX5E_PROT_MASK(MLX5E_10GBASE_T):
+	case MLX5E_PROT_MASK(MLX5E_10GBASE_CX4):
+	case MLX5E_PROT_MASK(MLX5E_10GBASE_KX4):
+	case MLX5E_PROT_MASK(MLX5E_10GBASE_KR):
+	case MLX5E_PROT_MASK(MLX5E_10GBASE_CR):
+	case MLX5E_PROT_MASK(MLX5E_10GBASE_SR):
+	case MLX5E_PROT_MASK(MLX5E_10GBASE_ER):
+		*active_width = IB_WIDTH_1X;
+		*active_speed = IB_SPEED_QDR;
+		break;
+	case MLX5E_PROT_MASK(MLX5E_25GBASE_CR):
+	case MLX5E_PROT_MASK(MLX5E_25GBASE_KR):
+	case MLX5E_PROT_MASK(MLX5E_25GBASE_SR):
+		*active_width = IB_WIDTH_1X;
+		*active_speed = IB_SPEED_EDR;
+		break;
+	case MLX5E_PROT_MASK(MLX5E_40GBASE_CR4):
+	case MLX5E_PROT_MASK(MLX5E_40GBASE_KR4):
+	case MLX5E_PROT_MASK(MLX5E_40GBASE_SR4):
+	case MLX5E_PROT_MASK(MLX5E_40GBASE_LR4):
+		*active_width = IB_WIDTH_4X;
+		*active_speed = IB_SPEED_QDR;
+		break;
+	case MLX5E_PROT_MASK(MLX5E_50GBASE_CR2):
+	case MLX5E_PROT_MASK(MLX5E_50GBASE_KR2):
+	case MLX5E_PROT_MASK(MLX5E_50GBASE_SR2):
+		*active_width = IB_WIDTH_1X;
+		*active_speed = IB_SPEED_HDR;
+		break;
+	case MLX5E_PROT_MASK(MLX5E_56GBASE_R4):
+		*active_width = IB_WIDTH_4X;
+		*active_speed = IB_SPEED_FDR;
+		break;
+	case MLX5E_PROT_MASK(MLX5E_100GBASE_CR4):
+	case MLX5E_PROT_MASK(MLX5E_100GBASE_SR4):
+	case MLX5E_PROT_MASK(MLX5E_100GBASE_KR4):
+	case MLX5E_PROT_MASK(MLX5E_100GBASE_LR4):
+		*active_width = IB_WIDTH_4X;
+		*active_speed = IB_SPEED_EDR;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
 static int mlx5_query_port_roce(struct ib_device *device, u8 port_num,
 				struct ib_port_attr *props)
 {
@@ -172,9 +230,21 @@ static int mlx5_query_port_roce(struct ib_device *devi
 	struct net_device *ndev;
 	enum ib_mtu ndev_ib_mtu;
 	u16 qkey_viol_cntr;
+	u32 eth_prot_oper;
+	int err;
 
 	memset(props, 0, sizeof(*props));
 
+	/* Possible bad flows are checked before filling out props so in case
+	 * of an error it will still be zeroed out.
+	 */
+	err = mlx5_query_port_eth_proto_oper(dev->mdev, ð_prot_oper, port_num);
+	if (err)
+		return err;
+
+	translate_eth_proto_oper(eth_prot_oper, &props->active_speed,
+				 &props->active_width);
+
 	props->port_cap_flags  |= IB_PORT_CM_SUP;
 	props->port_cap_flags  |= IB_PORT_IP_BASED_GIDS;
 
@@ -203,10 +273,6 @@ static int mlx5_query_port_roce(struct ib_device *devi
 	dev_put(ndev);
 
 	props->active_mtu	= min(props->max_mtu, ndev_ib_mtu);
-
-	props->active_width	= IB_WIDTH_4X;  /* TODO */
-	props->active_speed	= IB_SPEED_QDR; /* TODO */
-
 	return 0;
 }
 

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:08:38 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1F935F5957D;
 Fri, 30 Mar 2018 19:08:38 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id C327778F65;
 Fri, 30 Mar 2018 19:08:37 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B92BC500A;
 Fri, 30 Mar 2018 19:08:37 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJ8bOh094347;
 Fri, 30 Mar 2018 19:08:37 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJ8b5D094346;
 Fri, 30 Mar 2018 19:08:37 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201803301908.w2UJ8b5D094346@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber 
Date: Fri, 30 Mar 2018 19:08:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331806 - head/release
X-SVN-Group: head
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: head/release
X-SVN-Commit-Revision: 331806
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:08:38 -0000

Author: gjb
Date: Fri Mar 30 19:08:37 2018
New Revision: 331806
URL: https://svnweb.freebsd.org/changeset/base/331806

Log:
  Add logic for "families" for GCE images.
  
  This allows for GCE consumers to easily detect the latest major
  version of FreeBSD when using the gcloud command line utility.
  
  To ensure snapshot builds do not conflict with release-style
  builds (ALPHA, BETA, RC, RELEASE), the '-snap' suffix is appended
  to the GCE image family name.
  
  MFC after:	3 days
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/release/Makefile.gce

Modified: head/release/Makefile.gce
==============================================================================
--- head/release/Makefile.gce	Fri Mar 30 19:02:24 2018	(r331805)
+++ head/release/Makefile.gce	Fri Mar 30 19:08:37 2018	(r331806)
@@ -18,8 +18,13 @@ CLEANFILES+=		${GCE_UPLOAD_TGTS}
 
 GCE_BUCKET?=
 
+.if !defined(GCE_FAMILY) || empty(GCE_FAMILY)
+GCE_FAMILY=		${TYPE:tl}-${REVISION:S,.,-,}
+.endif
+
 .if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE"
 SNAPSHOT_DATE!=		date +-%Y-%m-%d
+GCE_FAMILY_SUFX=	-snap
 .endif
 
 # Really?  Uppercase characters are not allowed?  Sigh...
@@ -64,6 +69,7 @@ gce-do-upload:
 	/usr/local/bin/gsutil cp ${.OBJDIR}/${GCE_TARGET}.tar.gz \
 		gs://${GCE_BUCKET}/
 	/usr/local/bin/gcloud compute images create ${GCE_TARGET} \
+		--family=${GCE_FAMILY}${GCE_FAMILY_SUFX} \
 		--source-uri gs://${GCE_BUCKET}/${GCE_TARGET}.tar.gz
 	touch ${.OBJDIR}/${.TARGET}
 

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:13:18 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 86B19F59C3A;
 Fri, 30 Mar 2018 19:13:18 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 36506795E6;
 Fri, 30 Mar 2018 19:13:18 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 302A95199;
 Fri, 30 Mar 2018 19:13:18 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJDIOY099165;
 Fri, 30 Mar 2018 19:13:18 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJDH9R099159;
 Fri, 30 Mar 2018 19:13:17 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301913.w2UJDH9R099159@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:13:17 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331807 - in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en
 mlx5_ib
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core mlx5_en mlx5_ib
X-SVN-Commit-Revision: 331807
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:13:19 -0000

Author: hselasky
Date: Fri Mar 30 19:13:17 2018
New Revision: 331807
URL: https://svnweb.freebsd.org/changeset/base/331807

Log:
  MFC r330647:
  Use the autogenerated interface file for all commands in mlx5core.
  
  This patch accumulates the following Linux commits:
  - 90b3e38d048f09b22fb50bcd460cea65fd00b2d7
    mlx5_core: Modify CQ moderation parameters
  - 09a7d9eca1a6cf5eb4f9abfdf8914db9dbd96f08
    mlx5_core: QP/XRCD commands via mlx5 ifc
  - 1a412fb1caa2c1b77719ccb5ed8b0c3c2bc65da7
    mlx5_core: Modify QP commands via mlx5 ifc
  - ec22eb53106be1472ba6573dc900943f52f8fd1e
    mlx5_core: MKey/PSV commands via mlx5 ifc
  - 73b626c182dff06867ceba996a819e8372c9b2ce
    mlx5_core: EQ commands via mlx5 ifc
  - 20ed51c643b6296789a48adc3bc2cc875a1612cf
    mlx5_core: Access register and MAD IFC commands via mlx5 ifc
  - a533ed5e179cd15512d40282617909d3482a771c
    mlx5_core: Pages management commands via mlx5 ifc
  - b8a4ddb2e8f44f872fb93bbda2d541b27079fd2b
    mlx5_core: Add MLX5_ARRAY_SET64 to fix BUILD_BUG_ON
  - af1ba291c5e498973cc325c501dd8da80b234571
    mlx5_core: Refactor internal SRQ API
  - b06e7de8a9d8d1d540ec122bbdf2face2a211634
    mlx5_core: Refactor device capability function
  - c4f287c4a6ac489c18afc4acc4353141a8c53070
    mlx5_core: Unify and improve command interface
  
  Submitted by:	Matthew Finlay 
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/cq.h
  stable/11/sys/dev/mlx5/device.h
  stable/11/sys/dev/mlx5/driver.h
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_cq.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_eq.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_fw.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_mad.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_mcg.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_mr.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_pd.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_port.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_qp.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_srq.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_transobj.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_uar.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_vport.c
  stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_cq.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_srq.c
  stable/11/sys/dev/mlx5/mlx5_ifc.h
  stable/11/sys/dev/mlx5/qp.h
  stable/11/sys/dev/mlx5/srq.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/cq.h
==============================================================================
--- stable/11/sys/dev/mlx5/cq.h	Fri Mar 30 19:08:37 2018	(r331806)
+++ stable/11/sys/dev/mlx5/cq.h	Fri Mar 30 19:13:17 2018	(r331807)
@@ -157,12 +157,12 @@ static inline void mlx5_cq_arm(struct mlx5_core_cq *cq
 int mlx5_init_cq_table(struct mlx5_core_dev *dev);
 void mlx5_cleanup_cq_table(struct mlx5_core_dev *dev);
 int mlx5_core_create_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq,
-			struct mlx5_create_cq_mbox_in *in, int inlen);
+			u32 *in, int inlen);
 int mlx5_core_destroy_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq);
 int mlx5_core_query_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq,
-		       struct mlx5_query_cq_mbox_out *out);
+		       u32 *out, int outlen);
 int mlx5_core_modify_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq,
-			struct mlx5_modify_cq_mbox_in *in, int in_sz);
+			u32 *in, int inlen);
 int mlx5_core_modify_cq_moderation(struct mlx5_core_dev *dev,
 				   struct mlx5_core_cq *cq, u16 cq_period,
 				   u16 cq_max_count);

Modified: stable/11/sys/dev/mlx5/device.h
==============================================================================
--- stable/11/sys/dev/mlx5/device.h	Fri Mar 30 19:08:37 2018	(r331806)
+++ stable/11/sys/dev/mlx5/device.h	Fri Mar 30 19:13:17 2018	(r331807)
@@ -92,12 +92,21 @@ __mlx5_mask(typ, fld))
 	___t; \
 })
 
-#define MLX5_SET64(typ, p, fld, v) do { \
+#define __MLX5_SET64(typ, p, fld, v) do { \
 	BUILD_BUG_ON(__mlx5_bit_sz(typ, fld) != 64); \
-	BUILD_BUG_ON(__mlx5_bit_off(typ, fld) % 64); \
 	*((__be64 *)(p) + __mlx5_64_off(typ, fld)) = cpu_to_be64(v); \
 } while (0)
 
+#define MLX5_SET64(typ, p, fld, v) do { \
+	BUILD_BUG_ON(__mlx5_bit_off(typ, fld) % 64); \
+	__MLX5_SET64(typ, p, fld, v); \
+} while (0)
+
+#define MLX5_ARRAY_SET64(typ, p, fld, idx, v) do { \
+	BUILD_BUG_ON(__mlx5_bit_off(typ, fld) % 64); \
+	__MLX5_SET64(typ, p, fld[idx], v); \
+} while (0)
+
 #define MLX5_GET64(typ, p, fld) be64_to_cpu(*((__be64 *)(p) + __mlx5_64_off(typ, fld)))
 
 #define MLX5_GET64_BE(typ, p, fld) (*((__be64 *)(p) +\
@@ -386,30 +395,6 @@ enum {
 	MLX5_MAX_SGE_RD	= (512 - 16 - 16) / 16
 };
 
-struct mlx5_inbox_hdr {
-	__be16		opcode;
-	u8		rsvd[4];
-	__be16		opmod;
-};
-
-struct mlx5_outbox_hdr {
-	u8		status;
-	u8		rsvd[3];
-	__be32		syndrome;
-};
-
-struct mlx5_cmd_set_dc_cnak_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	u8			enable;
-	u8			reserved[47];
-	__be64			pa;
-};
-
-struct mlx5_cmd_set_dc_cnak_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd[8];
-};
-
 struct mlx5_cmd_layout {
 	u8		type;
 	u8		rsvd0[3];
@@ -425,7 +410,6 @@ struct mlx5_cmd_layout {
 	u8		status_own;
 };
 
-
 struct mlx5_health_buffer {
 	__be32		assert_var[5];
 	__be32		rsvd0[3];
@@ -754,211 +738,6 @@ struct mlx5_cqe128 {
 	struct mlx5_cqe64	cqe64;
 };
 
-struct mlx5_srq_ctx {
-	u8			state_log_sz;
-	u8			rsvd0[3];
-	__be32			flags_xrcd;
-	__be32			pgoff_cqn;
-	u8			rsvd1[4];
-	u8			log_pg_sz;
-	u8			rsvd2[7];
-	__be32			pd;
-	__be16			lwm;
-	__be16			wqe_cnt;
-	u8			rsvd3[8];
-	__be64			db_record;
-};
-
-struct mlx5_create_srq_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32			input_srqn;
-	u8			rsvd0[4];
-	struct mlx5_srq_ctx	ctx;
-	u8			rsvd1[208];
-	__be64			pas[0];
-};
-
-struct mlx5_create_srq_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	__be32			srqn;
-	u8			rsvd[4];
-};
-
-struct mlx5_destroy_srq_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32			srqn;
-	u8			rsvd[4];
-};
-
-struct mlx5_destroy_srq_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd[8];
-};
-
-struct mlx5_query_srq_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32			srqn;
-	u8			rsvd0[4];
-};
-
-struct mlx5_query_srq_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd0[8];
-	struct mlx5_srq_ctx	ctx;
-	u8			rsvd1[32];
-	__be64			pas[0];
-};
-
-struct mlx5_arm_srq_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32			srqn;
-	__be16			rsvd;
-	__be16			lwm;
-};
-
-struct mlx5_arm_srq_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd[8];
-};
-
-struct mlx5_cq_context {
-	u8			status;
-	u8			cqe_sz_flags;
-	u8			st;
-	u8			rsvd3;
-	u8			rsvd4[6];
-	__be16			page_offset;
-	__be32			log_sz_usr_page;
-	__be16			cq_period;
-	__be16			cq_max_count;
-	__be16			rsvd20;
-	__be16			c_eqn;
-	u8			log_pg_sz;
-	u8			rsvd25[7];
-	__be32			last_notified_index;
-	__be32			solicit_producer_index;
-	__be32			consumer_counter;
-	__be32			producer_counter;
-	u8			rsvd48[8];
-	__be64			db_record_addr;
-};
-
-struct mlx5_create_cq_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32			input_cqn;
-	u8			rsvdx[4];
-	struct mlx5_cq_context	ctx;
-	u8			rsvd6[192];
-	__be64			pas[0];
-};
-
-struct mlx5_create_cq_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	__be32			cqn;
-	u8			rsvd0[4];
-};
-
-struct mlx5_destroy_cq_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32			cqn;
-	u8			rsvd0[4];
-};
-
-struct mlx5_destroy_cq_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd0[8];
-};
-
-struct mlx5_query_cq_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32			cqn;
-	u8			rsvd0[4];
-};
-
-struct mlx5_query_cq_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd0[8];
-	struct mlx5_cq_context	ctx;
-	u8			rsvd6[16];
-	__be64			pas[0];
-};
-
-struct mlx5_modify_cq_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32			cqn;
-	__be32			field_select;
-	struct mlx5_cq_context	ctx;
-	u8			rsvd[192];
-	__be64			pas[0];
-};
-
-struct mlx5_modify_cq_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd[8];
-};
-
-struct mlx5_eq_context {
-	u8			status;
-	u8			ec_oi;
-	u8			st;
-	u8			rsvd2[7];
-	__be16			page_pffset;
-	__be32			log_sz_usr_page;
-	u8			rsvd3[7];
-	u8			intr;
-	u8			log_page_size;
-	u8			rsvd4[15];
-	__be32			consumer_counter;
-	__be32			produser_counter;
-	u8			rsvd5[16];
-};
-
-struct mlx5_create_eq_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	u8			rsvd0[3];
-	u8			input_eqn;
-	u8			rsvd1[4];
-	struct mlx5_eq_context	ctx;
-	u8			rsvd2[8];
-	__be64			events_mask;
-	u8			rsvd3[176];
-	__be64			pas[0];
-};
-
-struct mlx5_create_eq_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd0[3];
-	u8			eq_number;
-	u8			rsvd1[4];
-};
-
-struct mlx5_map_eq_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be64			mask;
-	u8			mu;
-	u8			rsvd0[2];
-	u8			eqn;
-	u8			rsvd1[24];
-};
-
-struct mlx5_map_eq_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd[8];
-};
-
-struct mlx5_query_eq_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	u8			rsvd0[3];
-	u8			eqn;
-	u8			rsvd1[4];
-};
-
-struct mlx5_query_eq_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd[8];
-	struct mlx5_eq_context	ctx;
-};
-
 enum {
 	MLX5_MKEY_STATUS_FREE = 1 << 6,
 };
@@ -985,121 +764,10 @@ struct mlx5_mkey_seg {
 	u8		rsvd4[4];
 };
 
-struct mlx5_query_special_ctxs_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	u8			rsvd[8];
-};
-
-struct mlx5_query_special_ctxs_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	__be32			dump_fill_mkey;
-	__be32			reserved_lkey;
-};
-
-struct mlx5_create_mkey_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32			input_mkey_index;
-	__be32			flags;
-	struct mlx5_mkey_seg	seg;
-	u8			rsvd1[16];
-	__be32			xlat_oct_act_size;
-	__be32			rsvd2;
-	u8			rsvd3[168];
-	__be64			pas[0];
-};
-
-struct mlx5_create_mkey_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	__be32			mkey;
-	u8			rsvd[4];
-};
-
-struct mlx5_query_mkey_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32			mkey;
-};
-
-struct mlx5_query_mkey_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	__be64			pas[0];
-};
-
-struct mlx5_modify_mkey_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32			mkey;
-	__be64			pas[0];
-};
-
-struct mlx5_modify_mkey_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd[8];
-};
-
-struct mlx5_dump_mkey_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-};
-
-struct mlx5_dump_mkey_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	__be32			mkey;
-};
-
-struct mlx5_mad_ifc_mbox_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be16			remote_lid;
-	u8			rsvd0;
-	u8			port;
-	u8			rsvd1[4];
-	u8			data[256];
-};
-
-struct mlx5_mad_ifc_mbox_out {
-	struct mlx5_outbox_hdr	hdr;
-	u8			rsvd[8];
-	u8			data[256];
-};
-
-struct mlx5_access_reg_mbox_in {
-	struct mlx5_inbox_hdr		hdr;
-	u8				rsvd0[2];
-	__be16				register_id;
-	__be32				arg;
-	__be32				data[0];
-};
-
-struct mlx5_access_reg_mbox_out {
-	struct mlx5_outbox_hdr		hdr;
-	u8				rsvd[8];
-	__be32				data[0];
-};
-
 #define MLX5_ATTR_EXTENDED_PORT_INFO	cpu_to_be16(0xff90)
 
 enum {
 	MLX_EXT_PORT_CAP_FLAG_EXTENDED_PORT_INFO	= 1 <<  0
-};
-
-struct mlx5_allocate_psv_in {
-	struct mlx5_inbox_hdr   hdr;
-	__be32			npsv_pd;
-	__be32			rsvd_psv0;
-};
-
-struct mlx5_allocate_psv_out {
-	struct mlx5_outbox_hdr  hdr;
-	u8			rsvd[8];
-	__be32			psv_idx[4];
-};
-
-struct mlx5_destroy_psv_in {
-	struct mlx5_inbox_hdr	hdr;
-	__be32                  psv_number;
-	u8                      rsvd[4];
-};
-
-struct mlx5_destroy_psv_out {
-	struct mlx5_outbox_hdr  hdr;
-	u8                      rsvd[8];
 };
 
 static inline int mlx5_host_is_le(void)

Modified: stable/11/sys/dev/mlx5/driver.h
==============================================================================
--- stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:08:37 2018	(r331806)
+++ stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:13:17 2018	(r331807)
@@ -41,6 +41,7 @@
 
 #include 
 #include 
+#include 
 
 #define MLX5_QCOUNTER_SETS_NETDEV 64
 #define MLX5_MAX_NUMBER_OF_VFS 128
@@ -868,10 +869,8 @@ int mlx5_cmd_init(struct mlx5_core_dev *dev);
 void mlx5_cmd_cleanup(struct mlx5_core_dev *dev);
 void mlx5_cmd_use_events(struct mlx5_core_dev *dev);
 void mlx5_cmd_use_polling(struct mlx5_core_dev *dev);
-int mlx5_cmd_status_to_err(struct mlx5_outbox_hdr *hdr);
-int mlx5_cmd_status_to_err_v2(void *ptr);
-int mlx5_core_get_caps(struct mlx5_core_dev *dev, enum mlx5_cap_type cap_type,
-		       enum mlx5_cap_mode cap_mode);
+void mlx5_cmd_mbox_status(void *out, u8 *status, u32 *syndrome);
+int mlx5_core_get_caps(struct mlx5_core_dev *dev, enum mlx5_cap_type cap_type);
 int mlx5_cmd_exec(struct mlx5_core_dev *dev, void *in, int in_size, void *out,
 		  int out_size);
 int mlx5_cmd_exec_cb(struct mlx5_core_dev *dev, void *in, int in_size,
@@ -895,23 +894,26 @@ int mlx5_buf_alloc(struct mlx5_core_dev *dev, int size
 		   struct mlx5_buf *buf);
 void mlx5_buf_free(struct mlx5_core_dev *dev, struct mlx5_buf *buf);
 int mlx5_core_create_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq,
-			 struct mlx5_create_srq_mbox_in *in, int inlen,
-			 int is_xrc);
+			 struct mlx5_srq_attr *in);
 int mlx5_core_destroy_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq);
 int mlx5_core_query_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq,
-			struct mlx5_query_srq_mbox_out *out);
+			struct mlx5_srq_attr *out);
 int mlx5_core_query_vendor_id(struct mlx5_core_dev *mdev, u32 *vendor_id);
 int mlx5_core_arm_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq,
 		      u16 lwm, int is_srq);
 void mlx5_init_mr_table(struct mlx5_core_dev *dev);
 void mlx5_cleanup_mr_table(struct mlx5_core_dev *dev);
-int mlx5_core_create_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mr *mr,
-			  struct mlx5_create_mkey_mbox_in *in, int inlen,
-			  mlx5_cmd_cbk_t callback, void *context,
-			  struct mlx5_create_mkey_mbox_out *out);
-int mlx5_core_destroy_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mr *mr);
-int mlx5_core_query_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mr *mr,
-			 struct mlx5_query_mkey_mbox_out *out, int outlen);
+int mlx5_core_create_mkey_cb(struct mlx5_core_dev *dev,
+			     struct mlx5_core_mr *mkey,
+			     u32 *in, int inlen,
+			     u32 *out, int outlen,
+			     mlx5_cmd_cbk_t callback, void *context);
+int mlx5_core_create_mkey(struct mlx5_core_dev *dev,
+			  struct mlx5_core_mr *mr,
+			  u32 *in, int inlen);
+int mlx5_core_destroy_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mr *mkey);
+int mlx5_core_query_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mr *mkey,
+			 u32 *out, int outlen);
 int mlx5_core_dump_fill_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mr *mr,
 			     u32 *mkey);
 int mlx5_core_alloc_pd(struct mlx5_core_dev *dev, u32 *pdn);
@@ -966,7 +968,7 @@ void mlx5_toggle_port_link(struct mlx5_core_dev *dev);
 int mlx5_debug_eq_add(struct mlx5_core_dev *dev, struct mlx5_eq *eq);
 void mlx5_debug_eq_remove(struct mlx5_core_dev *dev, struct mlx5_eq *eq);
 int mlx5_core_eq_query(struct mlx5_core_dev *dev, struct mlx5_eq *eq,
-		       struct mlx5_query_eq_mbox_out *out, int outlen);
+		       u32 *out, int outlen);
 int mlx5_eq_debugfs_init(struct mlx5_core_dev *dev);
 void mlx5_eq_debugfs_cleanup(struct mlx5_core_dev *dev);
 int mlx5_cq_debugfs_init(struct mlx5_core_dev *dev);

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c	Fri Mar 30 19:08:37 2018	(r331806)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c	Fri Mar 30 19:13:17 2018	(r331807)
@@ -75,6 +75,26 @@ enum {
 	MLX5_CMD_DELIVERY_STAT_CMD_DESCR_ERR		= 0x10,
 };
 
+struct mlx5_ifc_mbox_out_bits {
+	u8	   status[0x8];
+	u8	   reserved_at_8[0x18];
+
+	u8	   syndrome[0x20];
+
+	u8	   reserved_at_40[0x40];
+};
+
+struct mlx5_ifc_mbox_in_bits {
+	u8	   opcode[0x10];
+	u8	   reserved_at_10[0x10];
+
+	u8	   reserved_at_20[0x10];
+	u8	   op_mod[0x10];
+
+	u8	   reserved_at_40[0x40];
+};
+
+
 static struct mlx5_cmd_work_ent *alloc_cmd(struct mlx5_cmd *cmd,
 					   struct mlx5_cmd_msg *in,
 					   int uin_size,
@@ -588,11 +608,105 @@ const char *mlx5_command_str(int command)
 	}
 }
 
+static const char *cmd_status_str(u8 status)
+{
+	switch (status) {
+	case MLX5_CMD_STAT_OK:
+		return "OK";
+	case MLX5_CMD_STAT_INT_ERR:
+		return "internal error";
+	case MLX5_CMD_STAT_BAD_OP_ERR:
+		return "bad operation";
+	case MLX5_CMD_STAT_BAD_PARAM_ERR:
+		return "bad parameter";
+	case MLX5_CMD_STAT_BAD_SYS_STATE_ERR:
+		return "bad system state";
+	case MLX5_CMD_STAT_BAD_RES_ERR:
+		return "bad resource";
+	case MLX5_CMD_STAT_RES_BUSY:
+		return "resource busy";
+	case MLX5_CMD_STAT_LIM_ERR:
+		return "limits exceeded";
+	case MLX5_CMD_STAT_BAD_RES_STATE_ERR:
+		return "bad resource state";
+	case MLX5_CMD_STAT_IX_ERR:
+		return "bad index";
+	case MLX5_CMD_STAT_NO_RES_ERR:
+		return "no resources";
+	case MLX5_CMD_STAT_BAD_INP_LEN_ERR:
+		return "bad input length";
+	case MLX5_CMD_STAT_BAD_OUTP_LEN_ERR:
+		return "bad output length";
+	case MLX5_CMD_STAT_BAD_QP_STATE_ERR:
+		return "bad QP state";
+	case MLX5_CMD_STAT_BAD_PKT_ERR:
+		return "bad packet (discarded)";
+	case MLX5_CMD_STAT_BAD_SIZE_OUTS_CQES_ERR:
+		return "bad size too many outstanding CQEs";
+	default:
+		return "unknown status";
+	}
+}
+
+static int cmd_status_to_err_helper(u8 status)
+{
+	switch (status) {
+	case MLX5_CMD_STAT_OK:				return 0;
+	case MLX5_CMD_STAT_INT_ERR:			return -EIO;
+	case MLX5_CMD_STAT_BAD_OP_ERR:			return -EINVAL;
+	case MLX5_CMD_STAT_BAD_PARAM_ERR:		return -EINVAL;
+	case MLX5_CMD_STAT_BAD_SYS_STATE_ERR:		return -EIO;
+	case MLX5_CMD_STAT_BAD_RES_ERR:			return -EINVAL;
+	case MLX5_CMD_STAT_RES_BUSY:			return -EBUSY;
+	case MLX5_CMD_STAT_LIM_ERR:			return -ENOMEM;
+	case MLX5_CMD_STAT_BAD_RES_STATE_ERR:		return -EINVAL;
+	case MLX5_CMD_STAT_IX_ERR:			return -EINVAL;
+	case MLX5_CMD_STAT_NO_RES_ERR:			return -EAGAIN;
+	case MLX5_CMD_STAT_BAD_INP_LEN_ERR:		return -EIO;
+	case MLX5_CMD_STAT_BAD_OUTP_LEN_ERR:		return -EIO;
+	case MLX5_CMD_STAT_BAD_QP_STATE_ERR:		return -EINVAL;
+	case MLX5_CMD_STAT_BAD_PKT_ERR:			return -EINVAL;
+	case MLX5_CMD_STAT_BAD_SIZE_OUTS_CQES_ERR:	return -EINVAL;
+	default:					return -EIO;
+	}
+}
+
+void mlx5_cmd_mbox_status(void *out, u8 *status, u32 *syndrome)
+{
+	*status = MLX5_GET(mbox_out, out, status);
+	*syndrome = MLX5_GET(mbox_out, out, syndrome);
+}
+
+static int mlx5_cmd_check(struct mlx5_core_dev *dev, void *in, void *out)
+{
+	u32 syndrome;
+	u8  status;
+	u16 opcode;
+	u16 op_mod;
+
+	mlx5_cmd_mbox_status(out, &status, &syndrome);
+	if (!status)
+		return 0;
+
+	opcode = MLX5_GET(mbox_in, in, opcode);
+	op_mod = MLX5_GET(mbox_in, in, op_mod);
+
+	mlx5_core_err(dev,
+		      "%s(0x%x) op_mod(0x%x) failed, status %s(0x%x), syndrome (0x%x)\n",
+		       mlx5_command_str(opcode),
+		       opcode, op_mod,
+		       cmd_status_str(status),
+		       status,
+		       syndrome);
+
+	return cmd_status_to_err_helper(status);
+}
+
 static void dump_command(struct mlx5_core_dev *dev,
 			 struct mlx5_cmd_work_ent *ent, int input)
 {
-	u16 op = be16_to_cpu(((struct mlx5_inbox_hdr *)(ent->lay->in))->opcode);
 	struct mlx5_cmd_msg *msg = input ? ent->in : ent->out;
+	u16 op = MLX5_GET(mbox_in, ent->lay->in, opcode);
 	size_t i;
 	int data_only;
 	int offset = 0;
@@ -654,9 +768,7 @@ static void dump_command(struct mlx5_core_dev *dev,
 
 static u16 msg_to_opcode(struct mlx5_cmd_msg *in)
 {
-        struct mlx5_inbox_hdr *hdr = (struct mlx5_inbox_hdr *)(in->first.data);
-
-        return be16_to_cpu(hdr->opcode);
+	return MLX5_GET(mbox_in, in->first.data, opcode);
 }
 
 static void cb_timeout_handler(struct work_struct *work)
@@ -676,173 +788,6 @@ static void cb_timeout_handler(struct work_struct *wor
         mlx5_cmd_comp_handler(dev, 1UL << ent->idx);
 }
 
-static int set_internal_err_outbox(struct mlx5_core_dev *dev, u16 opcode,
-				   struct mlx5_outbox_hdr *hdr)
-{
-	hdr->status = 0;
-	hdr->syndrome = 0;
-
-	switch (opcode) {
-	case MLX5_CMD_OP_TEARDOWN_HCA:
-	case MLX5_CMD_OP_DISABLE_HCA:
-	case MLX5_CMD_OP_MANAGE_PAGES:
-	case MLX5_CMD_OP_DESTROY_MKEY:
-	case MLX5_CMD_OP_DESTROY_EQ:
-	case MLX5_CMD_OP_DESTROY_CQ:
-	case MLX5_CMD_OP_DESTROY_QP:
-	case MLX5_CMD_OP_DESTROY_PSV:
-	case MLX5_CMD_OP_DESTROY_SRQ:
-	case MLX5_CMD_OP_DESTROY_XRC_SRQ:
-	case MLX5_CMD_OP_DESTROY_DCT:
-	case MLX5_CMD_OP_DEALLOC_Q_COUNTER:
-	case MLX5_CMD_OP_DEALLOC_PD:
-	case MLX5_CMD_OP_DEALLOC_UAR:
-	case MLX5_CMD_OP_DETACH_FROM_MCG:
-	case MLX5_CMD_OP_DEALLOC_XRCD:
-	case MLX5_CMD_OP_DEALLOC_TRANSPORT_DOMAIN:
-	case MLX5_CMD_OP_DELETE_VXLAN_UDP_DPORT:
-	case MLX5_CMD_OP_DELETE_L2_TABLE_ENTRY:
-	case MLX5_CMD_OP_DESTROY_LAG:
-	case MLX5_CMD_OP_DESTROY_VPORT_LAG:
-	case MLX5_CMD_OP_DESTROY_TIR:
-	case MLX5_CMD_OP_DESTROY_SQ:
-	case MLX5_CMD_OP_DESTROY_RQ:
-	case MLX5_CMD_OP_DESTROY_RMP:
-	case MLX5_CMD_OP_DESTROY_TIS:
-	case MLX5_CMD_OP_DESTROY_RQT:
-	case MLX5_CMD_OP_DESTROY_FLOW_TABLE:
-	case MLX5_CMD_OP_DESTROY_FLOW_GROUP:
-	case MLX5_CMD_OP_DELETE_FLOW_TABLE_ENTRY:
-	case MLX5_CMD_OP_DEALLOC_FLOW_COUNTER:
-	case MLX5_CMD_OP_2ERR_QP:
-	case MLX5_CMD_OP_2RST_QP:
-	case MLX5_CMD_OP_MODIFY_NIC_VPORT_CONTEXT:
-	case MLX5_CMD_OP_MODIFY_FLOW_TABLE:
-	case MLX5_CMD_OP_SET_FLOW_TABLE_ENTRY:
-	case MLX5_CMD_OP_SET_FLOW_TABLE_ROOT:
-	case MLX5_CMD_OP_DEALLOC_ENCAP_HEADER:
-	case MLX5_CMD_OP_DESTROY_SCHEDULING_ELEMENT:
-	case MLX5_CMD_OP_DESTROY_QOS_PARA_VPORT:
-	case MLX5_CMD_OP_MODIFY_VPORT_STATE:
-	case MLX5_CMD_OP_MODIFY_SQ:
-	case MLX5_CMD_OP_MODIFY_RQ:
-	case MLX5_CMD_OP_MODIFY_TIS:
-	case MLX5_CMD_OP_MODIFY_LAG:
-	case MLX5_CMD_OP_MODIFY_TIR:
-	case MLX5_CMD_OP_MODIFY_RMP:
-	case MLX5_CMD_OP_MODIFY_RQT:
-	case MLX5_CMD_OP_MODIFY_SCHEDULING_ELEMENT:
-	case MLX5_CMD_OP_MODIFY_CONG_PARAMS:
-	case MLX5_CMD_OP_MODIFY_CONG_STATUS:
-	case MLX5_CMD_OP_MODIFY_CQ:
-	case MLX5_CMD_OP_MODIFY_ESW_VPORT_CONTEXT:
-	case MLX5_CMD_OP_MODIFY_HCA_VPORT_CONTEXT:
-	case MLX5_CMD_OP_MODIFY_OTHER_HCA_CAP:
-	case MLX5_CMD_OP_ACCESS_REG:
-	case MLX5_CMD_OP_DRAIN_DCT:
-		return 0;
-
-	case MLX5_CMD_OP_ADD_VXLAN_UDP_DPORT:
-	case MLX5_CMD_OP_ALLOC_ENCAP_HEADER:
-	case MLX5_CMD_OP_ALLOC_FLOW_COUNTER:
-	case MLX5_CMD_OP_ALLOC_PD:
-	case MLX5_CMD_OP_ALLOC_Q_COUNTER:
-	case MLX5_CMD_OP_ALLOC_TRANSPORT_DOMAIN:
-	case MLX5_CMD_OP_ALLOC_UAR:
-	case MLX5_CMD_OP_ALLOC_XRCD:
-	case MLX5_CMD_OP_ARM_DCT_FOR_KEY_VIOLATION:
-	case MLX5_CMD_OP_ARM_RQ:
-	case MLX5_CMD_OP_ARM_XRC_SRQ:
-	case MLX5_CMD_OP_ATTACH_TO_MCG:
-	case MLX5_CMD_OP_CONFIG_INT_MODERATION:
-	case MLX5_CMD_OP_CREATE_CQ:
-	case MLX5_CMD_OP_CREATE_DCT:
-	case MLX5_CMD_OP_CREATE_EQ:
-	case MLX5_CMD_OP_CREATE_FLOW_GROUP:
-	case MLX5_CMD_OP_CREATE_FLOW_TABLE:
-	case MLX5_CMD_OP_CREATE_LAG:
-	case MLX5_CMD_OP_CREATE_MKEY:
-	case MLX5_CMD_OP_CREATE_PSV:
-	case MLX5_CMD_OP_CREATE_QOS_PARA_VPORT:
-	case MLX5_CMD_OP_CREATE_QP:
-	case MLX5_CMD_OP_CREATE_RMP:
-	case MLX5_CMD_OP_CREATE_RQ:
-	case MLX5_CMD_OP_CREATE_RQT:
-	case MLX5_CMD_OP_CREATE_SCHEDULING_ELEMENT:
-	case MLX5_CMD_OP_CREATE_SQ:
-	case MLX5_CMD_OP_CREATE_SRQ:
-	case MLX5_CMD_OP_CREATE_TIR:
-	case MLX5_CMD_OP_CREATE_TIS:
-	case MLX5_CMD_OP_CREATE_VPORT_LAG:
-	case MLX5_CMD_OP_CREATE_XRC_SRQ:
-	case MLX5_CMD_OP_ENABLE_HCA:
-	case MLX5_CMD_OP_GEN_EQE:
-	case MLX5_CMD_OP_GET_DROPPED_PACKET_LOG:
-	case MLX5_CMD_OP_INIT2INIT_QP:
-	case MLX5_CMD_OP_INIT2RTR_QP:
-	case MLX5_CMD_OP_INIT_HCA:
-	case MLX5_CMD_OP_MAD_IFC:
-	case MLX5_CMD_OP_NOP:
-	case MLX5_CMD_OP_PAGE_FAULT_RESUME:
-	case MLX5_CMD_OP_QUERY_ADAPTER:
-	case MLX5_CMD_OP_QUERY_CONG_PARAMS:
-	case MLX5_CMD_OP_QUERY_CONG_STATISTICS:
-	case MLX5_CMD_OP_QUERY_CONG_STATUS:
-	case MLX5_CMD_OP_QUERY_CQ:
-	case MLX5_CMD_OP_QUERY_DCT:
-	case MLX5_CMD_OP_QUERY_EQ:
-	case MLX5_CMD_OP_QUERY_ESW_VPORT_CONTEXT:
-	case MLX5_CMD_OP_QUERY_FLOW_COUNTER:
-	case MLX5_CMD_OP_QUERY_FLOW_GROUP:
-	case MLX5_CMD_OP_QUERY_FLOW_TABLE:
-	case MLX5_CMD_OP_QUERY_FLOW_TABLE_ENTRY:
-	case MLX5_CMD_OP_QUERY_HCA_CAP:
-	case MLX5_CMD_OP_QUERY_HCA_VPORT_CONTEXT:
-	case MLX5_CMD_OP_QUERY_HCA_VPORT_GID:
-	case MLX5_CMD_OP_QUERY_HCA_VPORT_PKEY:
-	case MLX5_CMD_OP_QUERY_ISSI:
-	case MLX5_CMD_OP_QUERY_L2_TABLE_ENTRY:
-	case MLX5_CMD_OP_QUERY_LAG:
-	case MLX5_CMD_OP_QUERY_MAD_DEMUX:
-	case MLX5_CMD_OP_QUERY_MKEY:
-	case MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT:
-	case MLX5_CMD_OP_QUERY_OTHER_HCA_CAP:
-	case MLX5_CMD_OP_QUERY_PAGES:
-	case MLX5_CMD_OP_QUERY_QP:
-	case MLX5_CMD_OP_QUERY_Q_COUNTER:
-	case MLX5_CMD_OP_QUERY_RMP:
-	case MLX5_CMD_OP_QUERY_ROCE_ADDRESS:
-	case MLX5_CMD_OP_QUERY_RQ:
-	case MLX5_CMD_OP_QUERY_RQT:
-	case MLX5_CMD_OP_QUERY_SCHEDULING_ELEMENT:
-	case MLX5_CMD_OP_QUERY_SPECIAL_CONTEXTS:
-	case MLX5_CMD_OP_QUERY_SQ:
-	case MLX5_CMD_OP_QUERY_SRQ:
-	case MLX5_CMD_OP_QUERY_TIR:
-	case MLX5_CMD_OP_QUERY_TIS:
-	case MLX5_CMD_OP_QUERY_VPORT_COUNTER:
-	case MLX5_CMD_OP_QUERY_VPORT_STATE:
-	case MLX5_CMD_OP_QUERY_XRC_SRQ:
-	case MLX5_CMD_OP_RST2INIT_QP:
-	case MLX5_CMD_OP_RTR2RTS_QP:
-	case MLX5_CMD_OP_RTS2RTS_QP:
-	case MLX5_CMD_OP_SET_DC_CNAK_TRACE:
-	case MLX5_CMD_OP_SET_HCA_CAP:
-	case MLX5_CMD_OP_SET_ISSI:
-	case MLX5_CMD_OP_SET_L2_TABLE_ENTRY:
-	case MLX5_CMD_OP_SET_MAD_DEMUX:
-	case MLX5_CMD_OP_SET_ROCE_ADDRESS:
-	case MLX5_CMD_OP_SQD_RTS_QP:
-	case MLX5_CMD_OP_SQERR2RTS_QP:
-		hdr->status = MLX5_CMD_STAT_INT_ERR;
-		hdr->syndrome = 0xFFFFFFFF;
-		return -ECANCELED;
-	default:
-		mlx5_core_err(dev, "Unknown FW command (%d)\n", opcode);
-		return -EINVAL;
-	}
-}
-
 static void complete_command(struct mlx5_cmd_work_ent *ent)
 {
 	struct mlx5_cmd *cmd = ent->cmd;
@@ -863,15 +808,12 @@ static void complete_command(struct mlx5_cmd_work_ent 
 		sem = &cmd->sem;
 
 	if (dev->state != MLX5_DEVICE_STATE_UP) {
-		struct mlx5_outbox_hdr *out_hdr =
-			(struct mlx5_outbox_hdr *)ent->out;
-		struct mlx5_inbox_hdr *in_hdr =
-			(struct mlx5_inbox_hdr *)(ent->in->first.data);
-		u16 opcode = be16_to_cpu(in_hdr->opcode);
+		u8 status = 0;
+		u32 drv_synd;
 
-		ent->ret = set_internal_err_outbox(dev,
-						   opcode,
-						   out_hdr);
+		ent->ret = mlx5_internal_err_ret_value(dev, msg_to_opcode(ent->in), &drv_synd, &status);
+		MLX5_SET(mbox_out, ent->out, status, status);
+		MLX5_SET(mbox_out, ent->out, syndrome, drv_synd);
 	}
 
 	if (ent->callback) {
@@ -887,10 +829,14 @@ static void complete_command(struct mlx5_cmd_work_ent 
 		callback = ent->callback;
 		context = ent->context;
 		err = ent->ret;
-		if (!err)
+		if (!err) {
 			err = mlx5_copy_from_msg(ent->uout,
 						 ent->out,
 						 ent->uout_size);
+			err = err ? err : mlx5_cmd_check(dev,
+							 ent->in->first.data,
+							 ent->uout);
+		}
 
 		mlx5_free_cmd_msg(dev, ent->out);
 		free_msg(dev, ent->in);
@@ -1014,16 +960,6 @@ static int wait_func(struct mlx5_core_dev *dev, struct
 	return err;
 }
 
-static __be32 *get_synd_ptr(struct mlx5_outbox_hdr *out)
-{
-	return &out->syndrome;
-}
-
-static u8 *get_status_ptr(struct mlx5_outbox_hdr *out)
-{
-	return &out->status;
-}
-
 /*  Notes:
  *    1. Callback functions may not sleep
  *    2. page queue commands do not support asynchrous completion
@@ -1070,7 +1006,7 @@ static int mlx5_cmd_invoke(struct mlx5_core_dev *dev, 
                 goto out;
 
         ds = ent->ts2 - ent->ts1;
-        op = be16_to_cpu(((struct mlx5_inbox_hdr *)in->first.data)->opcode);
+	op = MLX5_GET(mbox_in, in->first.data, opcode);
         if (op < ARRAY_SIZE(cmd->stats)) {
                 stats = &cmd->stats[op];
                 spin_lock_irq(&stats->lock);
@@ -1315,16 +1251,11 @@ static struct mlx5_cmd_msg *alloc_msg(struct mlx5_core
 	return msg;
 }
 
-static u16 opcode_from_in(struct mlx5_inbox_hdr *in)
+static int is_manage_pages(void *in)
 {
-	return be16_to_cpu(in->opcode);
+	return MLX5_GET(mbox_in, in, opcode) == MLX5_CMD_OP_MANAGE_PAGES;
 }
 
-static int is_manage_pages(struct mlx5_inbox_hdr *in)
-{
-	return be16_to_cpu(in->opcode) == MLX5_CMD_OP_MANAGE_PAGES;
-}
-
 static int cmd_exec_helper(struct mlx5_core_dev *dev,
 			   void *in, int in_size,
 			   void *out, int out_size,
@@ -1340,9 +1271,10 @@ static int cmd_exec_helper(struct mlx5_core_dev *dev,
 
 	if (pci_channel_offline(dev->pdev) ||
 	    dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) {
-		err = mlx5_internal_err_ret_value(dev, opcode_from_in(in), &drv_synd, &status);
-		*get_synd_ptr(out) = cpu_to_be32(drv_synd);
-		*get_status_ptr(out) = status;
+		u16 opcode = MLX5_GET(mbox_in, in, opcode);
+		err = mlx5_internal_err_ret_value(dev, opcode, &drv_synd, &status);
+		MLX5_SET(mbox_out, out, status, status);
+		MLX5_SET(mbox_out, out, syndrome, drv_synd);
 		return err;
 	}
 
@@ -1396,7 +1328,10 @@ out_in:
 int mlx5_cmd_exec(struct mlx5_core_dev *dev, void *in, int in_size, void *out,
 		  int out_size)
 {
-	return cmd_exec_helper(dev, in, in_size, out, out_size, NULL, NULL);
+	int err;
+
+	err = cmd_exec_helper(dev, in, in_size, out, out_size, NULL, NULL);
+	return err ? : mlx5_cmd_check(dev, in, out);
 }
 EXPORT_SYMBOL(mlx5_cmd_exec);
 
@@ -1631,94 +1566,3 @@ void mlx5_cmd_cleanup(struct mlx5_core_dev *dev)
 	free_cmd_page(dev, cmd);
 }
 EXPORT_SYMBOL(mlx5_cmd_cleanup);
-
-static const char *cmd_status_str(u8 status)
-{
-	switch (status) {
-	case MLX5_CMD_STAT_OK:
-		return "OK";
-	case MLX5_CMD_STAT_INT_ERR:
-		return "internal error";
-	case MLX5_CMD_STAT_BAD_OP_ERR:
-		return "bad operation";
-	case MLX5_CMD_STAT_BAD_PARAM_ERR:
-		return "bad parameter";
-	case MLX5_CMD_STAT_BAD_SYS_STATE_ERR:
-		return "bad system state";
-	case MLX5_CMD_STAT_BAD_RES_ERR:
-		return "bad resource";
-	case MLX5_CMD_STAT_RES_BUSY:
-		return "resource busy";
-	case MLX5_CMD_STAT_LIM_ERR:
-		return "limits exceeded";
-	case MLX5_CMD_STAT_BAD_RES_STATE_ERR:
-		return "bad resource state";
-	case MLX5_CMD_STAT_IX_ERR:
-		return "bad index";
-	case MLX5_CMD_STAT_NO_RES_ERR:
-		return "no resources";
-	case MLX5_CMD_STAT_BAD_INP_LEN_ERR:
-		return "bad input length";
-	case MLX5_CMD_STAT_BAD_OUTP_LEN_ERR:
-		return "bad output length";
-	case MLX5_CMD_STAT_BAD_QP_STATE_ERR:
-		return "bad QP state";
-	case MLX5_CMD_STAT_BAD_PKT_ERR:
-		return "bad packet (discarded)";
-	case MLX5_CMD_STAT_BAD_SIZE_OUTS_CQES_ERR:
-		return "bad size too many outstanding CQEs";
-	default:
-		return "unknown status";
-	}
-}
-
-static int cmd_status_to_err_helper(u8 status)
-{
-	switch (status) {
-	case MLX5_CMD_STAT_OK:				return 0;
-	case MLX5_CMD_STAT_INT_ERR:			return -EIO;
-	case MLX5_CMD_STAT_BAD_OP_ERR:			return -EINVAL;
-	case MLX5_CMD_STAT_BAD_PARAM_ERR:		return -EINVAL;
-	case MLX5_CMD_STAT_BAD_SYS_STATE_ERR:		return -EIO;
-	case MLX5_CMD_STAT_BAD_RES_ERR:			return -EINVAL;
-	case MLX5_CMD_STAT_RES_BUSY:			return -EBUSY;
-	case MLX5_CMD_STAT_LIM_ERR:			return -ENOMEM;
-	case MLX5_CMD_STAT_BAD_RES_STATE_ERR:		return -EINVAL;
-	case MLX5_CMD_STAT_IX_ERR:			return -EINVAL;
-	case MLX5_CMD_STAT_NO_RES_ERR:			return -EAGAIN;
-	case MLX5_CMD_STAT_BAD_INP_LEN_ERR:		return -EIO;
-	case MLX5_CMD_STAT_BAD_OUTP_LEN_ERR:		return -EIO;
-	case MLX5_CMD_STAT_BAD_QP_STATE_ERR:		return -EINVAL;
-	case MLX5_CMD_STAT_BAD_PKT_ERR:			return -EINVAL;
-	case MLX5_CMD_STAT_BAD_SIZE_OUTS_CQES_ERR:	return -EINVAL;
-	default:					return -EIO;
-	}
-}
-
-/* this will be available till all the commands use set/get macros */
-int mlx5_cmd_status_to_err(struct mlx5_outbox_hdr *hdr)
-{
-	if (!hdr->status)
-		return 0;
-
-	printf("mlx5_core: WARN: ""command failed, status %s(0x%x), syndrome 0x%x\n", cmd_status_str(hdr->status), hdr->status, be32_to_cpu(hdr->syndrome));
-
-	return cmd_status_to_err_helper(hdr->status);
-}
-
-int mlx5_cmd_status_to_err_v2(void *ptr)
-{
-	u32	syndrome;
-	u8	status;
-
-	status = be32_to_cpu(*(__be32 *)ptr) >> 24;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:15:06 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D742F59E01;
 Fri, 30 Mar 2018 19:15:06 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id ADC2C79758;
 Fri, 30 Mar 2018 19:15:05 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A4410519A;
 Fri, 30 Mar 2018 19:15:05 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJF5vD099294;
 Fri, 30 Mar 2018 19:15:05 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJF4il099286;
 Fri, 30 Mar 2018 19:15:04 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301915.w2UJF4il099286@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:15:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331808 - in stable/11/sys: conf dev/mlx5
 dev/mlx5/mlx5_core dev/mlx5/mlx5_ib modules/mlx5ib
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11/sys: conf dev/mlx5 dev/mlx5/mlx5_core
 dev/mlx5/mlx5_ib modules/mlx5ib
X-SVN-Commit-Revision: 331808
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:15:06 -0000

Author: hselasky
Date: Fri Mar 30 19:15:04 2018
New Revision: 331808
URL: https://svnweb.freebsd.org/changeset/base/331808

Log:
  MFC r330648:
  Add support for explicit congestion notification, ECN, to mlx5ib(4).
  
  ECN configuration and statistics is available through a set of sysctl(8)
  nodes under sys.class.infiniband.mlx5_X.cong . The ECN configuration
  nodes can also be used as loader tunables.
  
  Sponsored by:	Mellanox Technologies

Added:
  stable/11/sys/dev/mlx5/cmd.h
     - copied unchanged from r330648, head/sys/dev/mlx5/cmd.h
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c
     - copied unchanged from r330648, head/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c
Modified:
  stable/11/sys/conf/files
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h
  stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
  stable/11/sys/dev/mlx5/mlx5_ifc.h
  stable/11/sys/modules/mlx5ib/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/conf/files
==============================================================================
--- stable/11/sys/conf/files	Fri Mar 30 19:13:17 2018	(r331807)
+++ stable/11/sys/conf/files	Fri Mar 30 19:15:04 2018	(r331808)
@@ -4481,6 +4481,8 @@ dev/mlx4/mlx4_en/mlx4_en_tx.c			optional mlx4en pci in
 
 dev/mlx5/mlx5_ib/mlx5_ib_ah.c			optional mlx5ib pci ofed \
 	compile-with "${OFED_C}"
+dev/mlx5/mlx5_ib/mlx5_ib_cong.c			optional mlx5ib pci ofed \
+	compile-with "${OFED_C}"
 dev/mlx5/mlx5_ib/mlx5_ib_cq.c			optional mlx5ib pci ofed \
 	compile-with "${OFED_C}"
 dev/mlx5/mlx5_ib/mlx5_ib_doorbell.c		optional mlx5ib pci ofed \

Copied: stable/11/sys/dev/mlx5/cmd.h (from r330648, head/sys/dev/mlx5/cmd.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/sys/dev/mlx5/cmd.h	Fri Mar 30 19:15:04 2018	(r331808, copy of r330648, head/sys/dev/mlx5/cmd.h)
@@ -0,0 +1,60 @@
+/*-
+ * Copyright (c) 2013-2017, Mellanox Technologies, Ltd.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, 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 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 AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef MLX5_CMD_H
+#define MLX5_CMD_H
+
+#include 
+
+struct manage_pages_layout {
+	u64	ptr;
+	u32	reserved;
+	u16	num_entries;
+	u16	func_id;
+};
+
+
+struct mlx5_cmd_alloc_uar_imm_out {
+	u32	rsvd[3];
+	u32	uarn;
+};
+
+struct mlx5_core_dev;
+int mlx5_cmd_query_cong_counter(struct mlx5_core_dev *dev,
+                                bool reset, void *out, int out_size);
+int mlx5_cmd_query_cong_params(struct mlx5_core_dev *dev, int cong_point,
+                               void *out, int out_size);
+int mlx5_cmd_modify_cong_params(struct mlx5_core_dev *mdev,
+                                void *in, int in_size);
+struct mlx5_core_dev;
+int mlx5_cmd_query_cong_counter(struct mlx5_core_dev *dev,
+                                bool reset, void *out, int out_size);
+int mlx5_cmd_query_cong_params(struct mlx5_core_dev *dev, int cong_point,
+                               void *out, int out_size);
+int mlx5_cmd_modify_cong_params(struct mlx5_core_dev *mdev,
+                                void *in, int in_size);
+#endif /* MLX5_CMD_H */

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c	Fri Mar 30 19:13:17 2018	(r331807)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c	Fri Mar 30 19:15:04 2018	(r331808)
@@ -36,6 +36,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "mlx5_core.h"
 
@@ -1566,3 +1567,37 @@ void mlx5_cmd_cleanup(struct mlx5_core_dev *dev)
 	free_cmd_page(dev, cmd);
 }
 EXPORT_SYMBOL(mlx5_cmd_cleanup);
+
+int mlx5_cmd_query_cong_counter(struct mlx5_core_dev *dev,
+                                bool reset, void *out, int out_size)
+{
+        u32 in[MLX5_ST_SZ_DW(query_cong_statistics_in)] = { };
+
+        MLX5_SET(query_cong_statistics_in, in, opcode,
+                 MLX5_CMD_OP_QUERY_CONG_STATISTICS);
+        MLX5_SET(query_cong_statistics_in, in, clear, reset);
+        return mlx5_cmd_exec(dev, in, sizeof(in), out, out_size);
+}
+EXPORT_SYMBOL(mlx5_cmd_query_cong_counter);
+
+int mlx5_cmd_query_cong_params(struct mlx5_core_dev *dev, int cong_point,
+			       void *out, int out_size)
+{
+	u32 in[MLX5_ST_SZ_DW(query_cong_params_in)] = { };
+
+	MLX5_SET(query_cong_params_in, in, opcode,
+		 MLX5_CMD_OP_QUERY_CONG_PARAMS);
+	MLX5_SET(query_cong_params_in, in, cong_protocol, cong_point);
+
+	return mlx5_cmd_exec(dev, in, sizeof(in), out, out_size);
+}
+EXPORT_SYMBOL(mlx5_cmd_query_cong_params);
+
+int mlx5_cmd_modify_cong_params(struct mlx5_core_dev *dev,
+				void *in, int in_size)
+{
+	u32 out[MLX5_ST_SZ_DW(modify_cong_params_out)] = { };
+
+	return mlx5_cmd_exec(dev, in, in_size, out, sizeof(out));
+}
+EXPORT_SYMBOL(mlx5_cmd_modify_cong_params);

Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h	Fri Mar 30 19:13:17 2018	(r331807)
+++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib.h	Fri Mar 30 19:15:04 2018	(r331808)
@@ -605,6 +605,56 @@ struct mlx5_roce {
 	atomic_t		next_port;
 };
 
+#define	MLX5_IB_STATS_COUNT(a,b,c,d) a
+#define	MLX5_IB_STATS_VAR(a,b,c,d) b;
+#define	MLX5_IB_STATS_DESC(a,b,c,d) c, d,
+
+#define	MLX5_IB_CONG_PARAMS(m) \
+  /* ECN RP */ \
+  m(+1, u64 rp_clamp_tgt_rate, "rp_clamp_tgt_rate", "If set, whenever a CNP is processed, the target rate is updated to be the current rate") \
+  m(+1, u64 rp_clamp_tgt_rate_ati, "rp_clamp_tgt_rate_ati", "If set, when receiving a CNP, the target rate should be updated if the transission rate was increased due to the timer, and not only due to the byte counter") \
+  m(+1, u64 rp_time_reset, "rp_time_reset", "Time in microseconds between rate increases if no CNPs are received") \
+  m(+1, u64 rp_byte_reset, "rp_byte_reset", "Transmitted data in bytes between rate increases if no CNP's are received. A value of zero means disabled.") \
+  m(+1, u64 rp_threshold, "rp_threshold", "The number of times rpByteStage or rpTimeStage can count before the RP rate control state machine advances states") \
+  m(+1, u64 rp_ai_rate, "rp_ai_rate", "The rate, in Mbits per second, used to increase rpTargetRate in the active increase state") \
+  m(+1, u64 rp_hai_rate, "rp_hai_rate", "The rate, in Mbits per second, used to increase rpTargetRate in the hyper increase state") \
+  m(+1, u64 rp_min_dec_fac, "rp_min_dec_fac", "The minimum factor by which the current transmit rate can be changed when processing a CNP. Value is given as a percentage, [1 .. 100]") \
+  m(+1, u64 rp_min_rate, "rp_min_rate", "The minimum value, in Mbps per second, for rate to limit") \
+  m(+1, u64 rp_rate_to_set_on_first_cnp, "rp_rate_to_set_on_first_cnp", "The rate that is set for the flow when a rate limiter is allocated to it upon first CNP received, in Mbps. A value of zero means use full port speed") \
+  m(+1, u64 rp_dce_tcp_g, "rp_dce_tcp_g", "Used to update the congestion estimator, alpha, once every dce_tcp_rtt once every dce_tcp_rtt microseconds") \
+  m(+1, u64 rp_dce_tcp_rtt, "rp_dce_tcp_rtt", "The time between updates of the aolpha value, in microseconds") \
+  m(+1, u64 rp_rate_reduce_monitor_period, "rp_rate_reduce_monitor_period", "The minimum time between two consecutive rate reductions for a single flow") \
+  m(+1, u64 rp_initial_alpha_value, "rp_initial_alpha_value", "The initial value of alpha to use when receiving the first CNP for a flow") \
+  m(+1, u64 rp_gd, "rp_gd", "If a CNP is received, the flow rate is reduced at the beginning of the next rate_reduce_monitor_period interval") \
+  /* ECN NP */ \
+  m(+1, u64 np_cnp_dscp, "np_cnp_dscp", "The DiffServ Code Point of the generated CNP for this port") \
+  m(+1, u64 np_cnp_prio_mode, "np_cnp_prio_mode", "The 802.1p priority value of the generated CNP for this port") \
+  m(+1, u64 np_cnp_prio, "np_cnp_prio", "The 802.1p priority value of the generated CNP for this port")
+
+#define	MLX5_IB_CONG_PARAMS_NUM (0 MLX5_IB_CONG_PARAMS(MLX5_IB_STATS_COUNT))
+
+#define	MLX5_IB_CONG_STATS(m) \
+  m(+1, u64 syndrome, "syndrome", "Syndrome number") \
+  m(+1, u64 rp_cur_flows, "rp_cur_flows", "Number of flows limited") \
+  m(+1, u64 sum_flows, "sum_flows", "Sum of the number of flows limited over time") \
+  m(+1, u64 rp_cnp_ignored, "rp_cnp_ignored", "Number of CNPs and CNMs ignored") \
+  m(+1, u64 rp_cnp_handled, "rp_cnp_handled", "Number of CNPs and CNMs successfully handled") \
+  m(+1, u64 time_stamp, "time_stamp", "Time stamp in microseconds") \
+  m(+1, u64 accumulators_period, "accumulators_period", "The value of X variable for accumulating counters") \
+  m(+1, u64 np_ecn_marked_roce_packets, "np_ecn_marked_roce_packets", "Number of ECN marked packets seen") \
+  m(+1, u64 np_cnp_sent, "np_cnp_sent", "Number of CNPs sent")
+
+#define	MLX5_IB_CONG_STATS_NUM (0 MLX5_IB_CONG_STATS(MLX5_IB_STATS_COUNT))
+
+struct mlx5_ib_congestion {
+	struct sysctl_ctx_list ctx;
+	struct sx lock;
+	struct delayed_work dwork;
+	u64	arg [0];
+	MLX5_IB_CONG_PARAMS(MLX5_IB_STATS_VAR)
+	MLX5_IB_CONG_STATS(MLX5_IB_STATS_VAR)
+};
+
 struct mlx5_ib_dev {
 	struct ib_device		ib_dev;
 	struct mlx5_core_dev		*mdev;
@@ -638,6 +688,7 @@ struct mlx5_ib_dev {
 	struct list_head	qp_list;
 	/* Array with num_ports elements */
 	struct mlx5_ib_port	*port;
+	struct mlx5_ib_congestion congestion;
 };
 
 static inline struct mlx5_ib_cq *to_mibcq(struct mlx5_core_cq *mcq)
@@ -996,4 +1047,8 @@ static inline int get_srq_user_index(struct mlx5_ib_uc
 
 	return verify_assign_uidx(cqe_version, ucmd->uidx, user_index);
 }
+
+void mlx5_ib_cleanup_congestion(struct mlx5_ib_dev *);
+int mlx5_ib_init_congestion(struct mlx5_ib_dev *);
+
 #endif /* MLX5_IB_H */

Copied: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c (from r330648, head/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c	Fri Mar 30 19:15:04 2018	(r331808, copy of r330648, head/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c)
@@ -0,0 +1,460 @@
+/*-
+ * Copyright (c) 2013-2015, Mellanox Technologies, Ltd.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, 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 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 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$
+ */
+
+#include "mlx5_ib.h"
+
+#include 
+
+static const char *mlx5_ib_cong_params_desc[] = {
+	MLX5_IB_CONG_PARAMS(MLX5_IB_STATS_DESC)
+};
+
+static const char *mlx5_ib_cong_stats_desc[] = {
+	MLX5_IB_CONG_STATS(MLX5_IB_STATS_DESC)
+};
+
+#define	MLX5_IB_INDEX(field) (__offsetof(struct mlx5_ib_congestion, field) / sizeof(u64))
+#define	MLX5_IB_FLD_MAX(type, field) ((1ULL << __mlx5_bit_sz(type, field)) - 1ULL)
+#define	MLX5_IB_SET_CLIPPED(type, ptr, field, var) do { \
+  /* rangecheck */					\
+  if ((var) > MLX5_IB_FLD_MAX(type, field))		\
+	(var) = MLX5_IB_FLD_MAX(type, field);		\
+  /* set value */					\
+  MLX5_SET(type, ptr, field, var);			\
+} while (0)
+
+#define	CONG_LOCK(dev) sx_xlock(&(dev)->congestion.lock)
+#define	CONG_UNLOCK(dev) sx_xunlock(&(dev)->congestion.lock)
+#define	CONG_LOCKED(dev) sx_xlocked(&(dev)->congestion.lock)
+
+#define	MLX5_IB_RP_CLAMP_TGT_RATE_ATTR			BIT(1)
+#define	MLX5_IB_RP_CLAMP_TGT_RATE_ATI_ATTR		BIT(2)
+#define	MLX5_IB_RP_TIME_RESET_ATTR			BIT(3)
+#define	MLX5_IB_RP_BYTE_RESET_ATTR			BIT(4)
+#define	MLX5_IB_RP_THRESHOLD_ATTR			BIT(5)
+#define	MLX5_IB_RP_AI_RATE_ATTR				BIT(7)
+#define	MLX5_IB_RP_HAI_RATE_ATTR			BIT(8)
+#define	MLX5_IB_RP_MIN_DEC_FAC_ATTR			BIT(9)
+#define	MLX5_IB_RP_MIN_RATE_ATTR			BIT(10)
+#define	MLX5_IB_RP_RATE_TO_SET_ON_FIRST_CNP_ATTR	BIT(11)
+#define	MLX5_IB_RP_DCE_TCP_G_ATTR			BIT(12)
+#define	MLX5_IB_RP_DCE_TCP_RTT_ATTR			BIT(13)
+#define	MLX5_IB_RP_RATE_REDUCE_MONITOR_PERIOD_ATTR	BIT(14)
+#define	MLX5_IB_RP_INITIAL_ALPHA_VALUE_ATTR		BIT(15)
+#define	MLX5_IB_RP_GD_ATTR				BIT(16)
+
+#define	MLX5_IB_NP_CNP_DSCP_ATTR			BIT(3)
+#define	MLX5_IB_NP_CNP_PRIO_MODE_ATTR			BIT(4)
+
+enum mlx5_ib_cong_node_type {
+	MLX5_IB_RROCE_ECN_RP = 1,
+	MLX5_IB_RROCE_ECN_NP = 2,
+};
+
+static enum mlx5_ib_cong_node_type
+mlx5_ib_param_to_node(u32 index)
+{
+
+	if (index >= MLX5_IB_INDEX(rp_clamp_tgt_rate) &&
+	    index <= MLX5_IB_INDEX(rp_gd))
+		return MLX5_IB_RROCE_ECN_RP;
+	else
+		return MLX5_IB_RROCE_ECN_NP;
+}
+
+static u64
+mlx5_get_cc_param_val(void *field, u32 index)
+{
+
+	switch (index) {
+	case MLX5_IB_INDEX(rp_clamp_tgt_rate):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				clamp_tgt_rate);
+	case MLX5_IB_INDEX(rp_clamp_tgt_rate_ati):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				clamp_tgt_rate_after_time_inc);
+	case MLX5_IB_INDEX(rp_time_reset):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				rpg_time_reset);
+	case MLX5_IB_INDEX(rp_byte_reset):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				rpg_byte_reset);
+	case MLX5_IB_INDEX(rp_threshold):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				rpg_threshold);
+	case MLX5_IB_INDEX(rp_ai_rate):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				rpg_ai_rate);
+	case MLX5_IB_INDEX(rp_hai_rate):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				rpg_hai_rate);
+	case MLX5_IB_INDEX(rp_min_dec_fac):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				rpg_min_dec_fac);
+	case MLX5_IB_INDEX(rp_min_rate):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				rpg_min_rate);
+	case MLX5_IB_INDEX(rp_rate_to_set_on_first_cnp):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				rate_to_set_on_first_cnp);
+	case MLX5_IB_INDEX(rp_dce_tcp_g):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				dce_tcp_g);
+	case MLX5_IB_INDEX(rp_dce_tcp_rtt):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				dce_tcp_rtt);
+	case MLX5_IB_INDEX(rp_rate_reduce_monitor_period):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				rate_reduce_monitor_period);
+	case MLX5_IB_INDEX(rp_initial_alpha_value):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				initial_alpha_value);
+	case MLX5_IB_INDEX(rp_gd):
+		return MLX5_GET(cong_control_r_roce_ecn_rp, field,
+				rpg_gd);
+	case MLX5_IB_INDEX(np_cnp_dscp):
+		return MLX5_GET(cong_control_r_roce_ecn_np, field,
+				cnp_dscp);
+	case MLX5_IB_INDEX(np_cnp_prio_mode):
+		return MLX5_GET(cong_control_r_roce_ecn_np, field,
+				cnp_prio_mode);
+	case MLX5_IB_INDEX(np_cnp_prio):
+		return MLX5_GET(cong_control_r_roce_ecn_np, field,
+				cnp_802p_prio);
+	default:
+		return 0;
+	}
+}
+
+static void
+mlx5_ib_set_cc_param_mask_val(void *field, u32 index,
+    u64 var, u32 *attr_mask)
+{
+
+	switch (index) {
+	case MLX5_IB_INDEX(rp_clamp_tgt_rate):
+		*attr_mask |= MLX5_IB_RP_CLAMP_TGT_RATE_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 clamp_tgt_rate, var);
+		break;
+	case MLX5_IB_INDEX(rp_clamp_tgt_rate_ati):
+		*attr_mask |= MLX5_IB_RP_CLAMP_TGT_RATE_ATI_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 clamp_tgt_rate_after_time_inc, var);
+		break;
+	case MLX5_IB_INDEX(rp_time_reset):
+		*attr_mask |= MLX5_IB_RP_TIME_RESET_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 rpg_time_reset, var);
+		break;
+	case MLX5_IB_INDEX(rp_byte_reset):
+		*attr_mask |= MLX5_IB_RP_BYTE_RESET_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 rpg_byte_reset, var);
+		break;
+	case MLX5_IB_INDEX(rp_threshold):
+		*attr_mask |= MLX5_IB_RP_THRESHOLD_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 rpg_threshold, var);
+		break;
+	case MLX5_IB_INDEX(rp_ai_rate):
+		*attr_mask |= MLX5_IB_RP_AI_RATE_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 rpg_ai_rate, var);
+		break;
+	case MLX5_IB_INDEX(rp_hai_rate):
+		*attr_mask |= MLX5_IB_RP_HAI_RATE_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 rpg_hai_rate, var);
+		break;
+	case MLX5_IB_INDEX(rp_min_dec_fac):
+		*attr_mask |= MLX5_IB_RP_MIN_DEC_FAC_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 rpg_min_dec_fac, var);
+		break;
+	case MLX5_IB_INDEX(rp_min_rate):
+		*attr_mask |= MLX5_IB_RP_MIN_RATE_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 rpg_min_rate, var);
+		break;
+	case MLX5_IB_INDEX(rp_rate_to_set_on_first_cnp):
+		*attr_mask |= MLX5_IB_RP_RATE_TO_SET_ON_FIRST_CNP_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 rate_to_set_on_first_cnp, var);
+		break;
+	case MLX5_IB_INDEX(rp_dce_tcp_g):
+		*attr_mask |= MLX5_IB_RP_DCE_TCP_G_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 dce_tcp_g, var);
+		break;
+	case MLX5_IB_INDEX(rp_dce_tcp_rtt):
+		*attr_mask |= MLX5_IB_RP_DCE_TCP_RTT_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 dce_tcp_rtt, var);
+		break;
+	case MLX5_IB_INDEX(rp_rate_reduce_monitor_period):
+		*attr_mask |= MLX5_IB_RP_RATE_REDUCE_MONITOR_PERIOD_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 rate_reduce_monitor_period, var);
+		break;
+	case MLX5_IB_INDEX(rp_initial_alpha_value):
+		*attr_mask |= MLX5_IB_RP_INITIAL_ALPHA_VALUE_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 initial_alpha_value, var);
+		break;
+	case MLX5_IB_INDEX(rp_gd):
+		*attr_mask |= MLX5_IB_RP_GD_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_rp, field,
+			 rpg_gd, var);
+		break;
+	case MLX5_IB_INDEX(np_cnp_dscp):
+		*attr_mask |= MLX5_IB_NP_CNP_DSCP_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_np, field, cnp_dscp, var);
+		break;
+	case MLX5_IB_INDEX(np_cnp_prio_mode):
+		*attr_mask |= MLX5_IB_NP_CNP_PRIO_MODE_ATTR;
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_np, field, cnp_prio_mode, var);
+		break;
+	case MLX5_IB_INDEX(np_cnp_prio):
+		*attr_mask |= MLX5_IB_NP_CNP_PRIO_MODE_ATTR;
+		MLX5_SET(cong_control_r_roce_ecn_np, field, cnp_prio_mode, 0);
+		MLX5_IB_SET_CLIPPED(cong_control_r_roce_ecn_np, field, cnp_802p_prio, var);
+		break;
+	default:
+		break;
+	}
+}
+
+static int
+mlx5_ib_get_all_cc_params(struct mlx5_ib_dev *dev)
+{
+	int outlen = MLX5_ST_SZ_BYTES(query_cong_params_out);
+	enum mlx5_ib_cong_node_type node = 0;
+	void *out;
+	void *field;
+	u32 x;
+	int err = 0;
+
+	out = kzalloc(outlen, GFP_KERNEL);
+	if (!out)
+		return -ENOMEM;
+
+	/* get the current values */
+	for (x = 0; x != MLX5_IB_CONG_PARAMS_NUM; x++) {
+		if (node != mlx5_ib_param_to_node(x)) {
+			node = mlx5_ib_param_to_node(x);
+
+			err = mlx5_cmd_query_cong_params(dev->mdev, node, out, outlen);
+			if (err)
+				break;
+		}
+		field = MLX5_ADDR_OF(query_cong_params_out, out, congestion_parameters);
+		dev->congestion.arg[x] = mlx5_get_cc_param_val(field, x);
+	}
+	kfree(out);
+	return err;
+}
+
+static int
+mlx5_ib_set_cc_params(struct mlx5_ib_dev *dev, u32 index, u64 var)
+{
+	int inlen = MLX5_ST_SZ_BYTES(modify_cong_params_in);
+	enum mlx5_ib_cong_node_type node;
+	u32 attr_mask = 0;
+	void *field;
+	void *in;
+	int err;
+
+	in = kzalloc(inlen, GFP_KERNEL);
+	if (!in)
+		return -ENOMEM;
+
+	MLX5_SET(modify_cong_params_in, in, opcode,
+		 MLX5_CMD_OP_MODIFY_CONG_PARAMS);
+
+	node = mlx5_ib_param_to_node(index);
+	MLX5_SET(modify_cong_params_in, in, cong_protocol, node);
+
+	field = MLX5_ADDR_OF(modify_cong_params_in, in, congestion_parameters);
+	mlx5_ib_set_cc_param_mask_val(field, index, var, &attr_mask);
+
+	field = MLX5_ADDR_OF(modify_cong_params_in, in, field_select);
+	MLX5_SET(field_select_r_roce_rp, field, field_select_r_roce_rp,
+		 attr_mask);
+
+	err = mlx5_cmd_modify_cong_params(dev->mdev, in, inlen);
+	kfree(in);
+
+	return err;
+}
+
+static int
+mlx5_ib_cong_params_handler(SYSCTL_HANDLER_ARGS)
+{
+	struct mlx5_ib_dev *dev = arg1;
+	u64 value;
+	int error;
+
+	CONG_LOCK(dev);
+	value = dev->congestion.arg[arg2];
+	if (req != NULL) {
+		error = sysctl_handle_64(oidp, &value, 0, req);
+		if (error || req->newptr == NULL ||
+		    value == dev->congestion.arg[arg2])
+			goto done;
+
+		/* assign new value */
+		dev->congestion.arg[arg2] = value;
+	} else {
+		error = 0;
+	}
+	if (!MLX5_CAP_GEN(dev->mdev, cc_modify_allowed))
+		error = EPERM;
+	else {
+		error = -mlx5_ib_set_cc_params(dev, MLX5_IB_INDEX(arg[arg2]),
+		    dev->congestion.arg[arg2]);
+	}
+done:
+	CONG_UNLOCK(dev);
+
+	return (error);
+}
+
+#define	MLX5_GET_UNALIGNED_64(t,p,f) \
+    (((u64)MLX5_GET(t,p,f##_high) << 32) | MLX5_GET(t,p,f##_low))
+
+static void
+mlx5_ib_read_cong_stats(struct work_struct *work)
+{
+	struct mlx5_ib_dev *dev =
+	    container_of(work, struct mlx5_ib_dev, congestion.dwork.work);
+	const int outlen = MLX5_ST_SZ_BYTES(query_cong_statistics_out);
+	void *out;
+
+	out = kzalloc(outlen, GFP_KERNEL);
+	if (!out)
+		goto done;
+
+	CONG_LOCK(dev);
+	if (mlx5_cmd_query_cong_counter(dev->mdev, 0, out, outlen))
+		memset(out, 0, outlen);
+
+	dev->congestion.syndrome =
+	    MLX5_GET(query_cong_statistics_out, out, syndrome);
+	dev->congestion.rp_cur_flows =
+	    MLX5_GET(query_cong_statistics_out, out, rp_cur_flows);
+	dev->congestion.sum_flows =
+	    MLX5_GET(query_cong_statistics_out, out, sum_flows);
+	dev->congestion.rp_cnp_ignored =
+	    MLX5_GET_UNALIGNED_64(query_cong_statistics_out, out, rp_cnp_ignored);
+	dev->congestion.rp_cnp_handled =
+	    MLX5_GET_UNALIGNED_64(query_cong_statistics_out, out, rp_cnp_handled);
+	dev->congestion.time_stamp =
+	    MLX5_GET_UNALIGNED_64(query_cong_statistics_out, out, time_stamp);
+	dev->congestion.accumulators_period =
+	    MLX5_GET(query_cong_statistics_out, out, accumulators_period);
+	dev->congestion.np_ecn_marked_roce_packets =
+	    MLX5_GET_UNALIGNED_64(query_cong_statistics_out, out, np_ecn_marked_roce_packets);
+	dev->congestion.np_cnp_sent =
+	    MLX5_GET_UNALIGNED_64(query_cong_statistics_out, out, np_cnp_sent);
+
+	CONG_UNLOCK(dev);
+	kfree(out);
+
+done:
+	schedule_delayed_work(&dev->congestion.dwork, hz);
+}
+
+void
+mlx5_ib_cleanup_congestion(struct mlx5_ib_dev *dev)
+{
+
+	cancel_delayed_work_sync(&dev->congestion.dwork);
+	sysctl_ctx_free(&dev->congestion.ctx);
+	sx_destroy(&dev->congestion.lock);
+}
+
+int
+mlx5_ib_init_congestion(struct mlx5_ib_dev *dev)
+{
+	struct sysctl_ctx_list *ctx;
+	struct sysctl_oid *parent;
+	struct sysctl_oid *node;
+	int err;
+	u32 x;
+
+	ctx = &dev->congestion.ctx;
+	sysctl_ctx_init(ctx);
+	sx_init(&dev->congestion.lock, "mlx5ibcong");
+	INIT_DELAYED_WORK(&dev->congestion.dwork, mlx5_ib_read_cong_stats);
+
+	if (!MLX5_CAP_GEN(dev->mdev, cc_query_allowed))
+		return (0);
+
+	err = mlx5_ib_get_all_cc_params(dev);
+	if (err)
+		return (err);
+
+	parent = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(dev->ib_dev.dev.kobj.oidp),
+	    OID_AUTO, "cong", CTLFLAG_RW, NULL, "Congestion control");
+	if (parent == NULL)
+		return (-ENOMEM);
+
+	node = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(parent),
+	    OID_AUTO, "conf", CTLFLAG_RW, NULL, "Configuration");
+	if (node == NULL) {
+		sysctl_ctx_free(&dev->congestion.ctx);
+		return (-ENOMEM);
+	}
+
+	for (x = 0; x != MLX5_IB_CONG_PARAMS_NUM; x++) {
+		SYSCTL_ADD_PROC(ctx,
+		    SYSCTL_CHILDREN(node), OID_AUTO,
+		    mlx5_ib_cong_params_desc[2 * x],
+		    CTLTYPE_U64 | CTLFLAG_RWTUN | CTLFLAG_MPSAFE,
+		    dev, x, &mlx5_ib_cong_params_handler, "QU",
+		    mlx5_ib_cong_params_desc[2 * x + 1]);
+	}
+
+	node = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(parent),
+	    OID_AUTO, "stats", CTLFLAG_RD, NULL, "Statistics");
+	if (node == NULL) {
+		sysctl_ctx_free(&dev->congestion.ctx);
+		return (-ENOMEM);
+	}
+
+	for (x = 0; x != MLX5_IB_CONG_STATS_NUM; x++) {
+		/* read-only SYSCTLs */
+		SYSCTL_ADD_U64(ctx, SYSCTL_CHILDREN(node), OID_AUTO,
+		    mlx5_ib_cong_stats_desc[2 * x],
+		    CTLFLAG_RD | CTLFLAG_MPSAFE,
+		    &dev->congestion.arg[x + MLX5_IB_CONG_PARAMS_NUM],
+		    0, mlx5_ib_cong_stats_desc[2 * x + 1]);
+	}
+	schedule_delayed_work(&dev->congestion.dwork, hz);
+	return (0);
+}

Modified: stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c	Fri Mar 30 19:13:17 2018	(r331807)
+++ stable/11/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c	Fri Mar 30 19:15:04 2018	(r331808)
@@ -3152,6 +3152,10 @@ static void *mlx5_ib_add(struct mlx5_core_dev *mdev)
 			goto err_umrc;
 	}
 
+	err = mlx5_ib_init_congestion(dev);
+	if (err)
+		goto err_umrc;
+
 	dev->ib_active = true;
 
 	return dev;
@@ -3191,6 +3195,7 @@ static void mlx5_ib_remove(struct mlx5_core_dev *mdev,
 	struct mlx5_ib_dev *dev = context;
 	enum rdma_link_layer ll = mlx5_ib_port_link_layer(&dev->ib_dev, 1);
 
+	mlx5_ib_cleanup_congestion(dev);
 	mlx5_remove_roce_notifier(dev);
 	ib_unregister_device(&dev->ib_dev);
 	mlx5_ib_dealloc_q_counters(dev);

Modified: stable/11/sys/dev/mlx5/mlx5_ifc.h
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_ifc.h	Fri Mar 30 19:13:17 2018	(r331807)
+++ stable/11/sys/dev/mlx5/mlx5_ifc.h	Fri Mar 30 19:15:04 2018	(r331808)
@@ -4865,17 +4865,17 @@ struct mlx5_ifc_query_cong_statistics_out_bits {
 
 	u8         reserved_1[0x40];
 
-	u8         cur_flows[0x20];
+	u8         rp_cur_flows[0x20];
 
 	u8         sum_flows[0x20];
 
-	u8         cnp_ignored_high[0x20];
+	u8         rp_cnp_ignored_high[0x20];
 
-	u8         cnp_ignored_low[0x20];
+	u8         rp_cnp_ignored_low[0x20];
 
-	u8         cnp_handled_high[0x20];
+	u8         rp_cnp_handled_high[0x20];
 
-	u8         cnp_handled_low[0x20];
+	u8         rp_cnp_handled_low[0x20];
 
 	u8         reserved_2[0x100];
 
@@ -4885,13 +4885,13 @@ struct mlx5_ifc_query_cong_statistics_out_bits {
 
 	u8         accumulators_period[0x20];
 
-	u8         ecn_marked_roce_packets_high[0x20];
+	u8         np_ecn_marked_roce_packets_high[0x20];
 
-	u8         ecn_marked_roce_packets_low[0x20];
+	u8         np_ecn_marked_roce_packets_low[0x20];
 
-	u8         cnps_sent_high[0x20];
+	u8         np_cnp_sent_high[0x20];
 
-	u8         cnps_sent_low[0x20];
+	u8         np_cnp_sent_low[0x20];
 
 	u8         reserved_3[0x560];
 };

Modified: stable/11/sys/modules/mlx5ib/Makefile
==============================================================================
--- stable/11/sys/modules/mlx5ib/Makefile	Fri Mar 30 19:13:17 2018	(r331807)
+++ stable/11/sys/modules/mlx5ib/Makefile	Fri Mar 30 19:15:04 2018	(r331808)
@@ -4,6 +4,7 @@
 KMOD=mlx5ib
 SRCS= \
 mlx5_ib_ah.c \
+mlx5_ib_cong.c \
 mlx5_ib_cq.c \
 mlx5_ib_doorbell.c \
 mlx5_ib_gsi.c \

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:17:10 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 795B6F5A07E;
 Fri, 30 Mar 2018 19:17:10 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id D28CB79928;
 Fri, 30 Mar 2018 19:17:09 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CA44651AA;
 Fri, 30 Mar 2018 19:17:09 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJH95V099427;
 Fri, 30 Mar 2018 19:17:09 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJH9HR099423;
 Fri, 30 Mar 2018 19:17:09 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301917.w2UJH9HR099423@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:17:09 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331809 - in stable/11/sys/dev/mlx5: . mlx5_core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core
X-SVN-Commit-Revision: 331809
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:17:10 -0000

Author: hselasky
Date: Fri Mar 30 19:17:09 2018
New Revision: 331809
URL: https://svnweb.freebsd.org/changeset/base/331809

Log:
  MFC r331443:
  Improve support for health recovery in mlx5core.
  
  This patch accumulates the following Linux commits:
  
  - 04c0c1ab38e95105d950db5b84e727637e149ce7
    net/mlx5: PCI error recovery health care simulation
  - 0179720d6be2096b8d0a4d143254ff9e77747daa
    net/mlx5: Introduce trigger_health_work function
  - 3fece5d676939f42f434c63dfe1bd42d7d94e6f0
    net/mlx5: Continue health polling until it is explicitly stopped
  
  Submitted by:	Matthew Finlay 
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/driver.h
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/driver.h
==============================================================================
--- stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:15:04 2018	(r331808)
+++ stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:17:09 2018	(r331809)
@@ -498,6 +498,7 @@ struct mlx5_core_health {
 	struct workqueue_struct	       *wq;
 	unsigned long			flags;
 	struct work_struct		work;
+	struct delayed_work		recover_work;
 };
 
 #define	MLX5_CQ_LINEAR_ARRAY_SIZE	1024
@@ -887,6 +888,7 @@ int mlx5_health_init(struct mlx5_core_dev *dev);
 void mlx5_start_health_poll(struct mlx5_core_dev *dev);
 void mlx5_stop_health_poll(struct mlx5_core_dev *dev);
 void mlx5_drain_health_wq(struct mlx5_core_dev *dev);
+void mlx5_trigger_health_work(struct mlx5_core_dev *dev);
 
 #define	mlx5_buf_alloc_node(dev, size, direct, buf, node) \
 	mlx5_buf_alloc(dev, size, direct, buf)

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h	Fri Mar 30 19:15:04 2018	(r331808)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h	Fri Mar 30 19:17:09 2018	(r331809)
@@ -74,6 +74,7 @@ void mlx5_core_event(struct mlx5_core_dev *dev, enum m
 		     unsigned long param);
 void mlx5_enter_error_state(struct mlx5_core_dev *dev);
 void mlx5_disable_device(struct mlx5_core_dev *dev);
+void mlx5_recover_device(struct mlx5_core_dev *dev);
 
 void mlx5e_init(void);
 void mlx5e_cleanup(void);

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:15:04 2018	(r331808)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:17:09 2018	(r331809)
@@ -40,14 +40,15 @@
 enum {
 	MLX5_NIC_IFC_FULL		= 0,
 	MLX5_NIC_IFC_DISABLED		= 1,
-	MLX5_NIC_IFC_NO_DRAM_NIC	= 2
+	MLX5_NIC_IFC_NO_DRAM_NIC	= 2,
+	MLX5_NIC_IFC_INVALID		= 3,
 };
 
 enum {
 	MLX5_DROP_NEW_HEALTH_WORK,
 };
 
-static u8 get_nic_interface(struct mlx5_core_dev *dev)
+static u8 get_nic_state(struct mlx5_core_dev *dev)
 {
 	return (ioread32be(&dev->iseg->cmdq_addr_l_sz) >> 8) & 3;
 }
@@ -80,7 +81,7 @@ static int in_fatal(struct mlx5_core_dev *dev)
 	struct mlx5_core_health *health = &dev->priv.health;
 	struct mlx5_health_buffer __iomem *h = health->health;
 
-	if (get_nic_interface(dev) == MLX5_NIC_IFC_DISABLED)
+	if (get_nic_state(dev) == MLX5_NIC_IFC_DISABLED)
 		return 1;
 
 	if (ioread32be(&h->fw_ver) == 0xffffffff)
@@ -112,9 +113,9 @@ unlock:
 
 static void mlx5_handle_bad_state(struct mlx5_core_dev *dev)
 {
-	u8 nic_interface = get_nic_interface(dev);
+	u8 nic_state = get_nic_state(dev);
 
-	switch (nic_interface) {
+	switch (nic_state) {
 	case MLX5_NIC_IFC_FULL:
 		mlx5_core_warn(dev, "Expected to see disabled NIC but it is full driver\n");
 		break;
@@ -128,23 +129,58 @@ static void mlx5_handle_bad_state(struct mlx5_core_dev
 		break;
 	default:
 		mlx5_core_warn(dev, "Expected to see disabled NIC but it is has invalid value %d\n",
-			       nic_interface);
+			       nic_state);
 	}
 
 	mlx5_disable_device(dev);
 }
 
+static void health_recover(struct work_struct *work)
+{
+	struct mlx5_core_health *health;
+	struct delayed_work *dwork;
+	struct mlx5_core_dev *dev;
+	struct mlx5_priv *priv;
+	u8 nic_state;
+
+	dwork = container_of(work, struct delayed_work, work);
+	health = container_of(dwork, struct mlx5_core_health, recover_work);
+	priv = container_of(health, struct mlx5_priv, health);
+	dev = container_of(priv, struct mlx5_core_dev, priv);
+
+	nic_state = get_nic_state(dev);
+	if (nic_state == MLX5_NIC_IFC_INVALID) {
+		dev_err(&dev->pdev->dev, "health recovery flow aborted since the nic state is invalid\n");
+		return;
+	}
+
+	dev_err(&dev->pdev->dev, "starting health recovery flow\n");
+	mlx5_recover_device(dev);
+}
+
+/* How much time to wait until health resetting the driver (in msecs) */
+#define MLX5_RECOVERY_DELAY_MSECS 60000
 static void health_care(struct work_struct *work)
 {
+	unsigned long recover_delay = msecs_to_jiffies(MLX5_RECOVERY_DELAY_MSECS);
 	struct mlx5_core_health *health;
 	struct mlx5_core_dev *dev;
 	struct mlx5_priv *priv;
+	unsigned long flags;
 
 	health = container_of(work, struct mlx5_core_health, work);
 	priv = container_of(health, struct mlx5_priv, health);
 	dev = container_of(priv, struct mlx5_core_dev, priv);
 	mlx5_core_warn(dev, "handling bad device here\n");
 	mlx5_handle_bad_state(dev);
+
+	spin_lock_irqsave(&health->wq_lock, flags);
+	if (!test_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags))
+		schedule_delayed_work(&health->recover_work, recover_delay);
+	else
+		dev_err(&dev->pdev->dev,
+			"new health works are not permitted at this stage\n");
+	spin_unlock_irqrestore(&health->wq_lock, flags);
 }
 
 static int get_next_poll_jiffies(void)
@@ -158,6 +194,20 @@ static int get_next_poll_jiffies(void)
 	return next;
 }
 
+void mlx5_trigger_health_work(struct mlx5_core_dev *dev)
+{
+	struct mlx5_core_health *health = &dev->priv.health;
+	unsigned long flags;
+
+	spin_lock_irqsave(&health->wq_lock, flags);
+	if (!test_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags))
+		queue_work(health->wq, &health->work);
+	else
+		dev_err(&dev->pdev->dev,
+			"new health works are not permitted at this stage\n");
+	spin_unlock_irqrestore(&health->wq_lock, flags);
+}
+
 static const char *hsynd_str(u8 synd)
 {
 	switch (synd) {
@@ -224,10 +274,8 @@ static void poll_health(unsigned long data)
 	if (dev->state != MLX5_DEVICE_STATE_UP)
 		return;
 
-	if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) {
-		mod_timer(&health->timer, get_next_poll_jiffies());
-		return;
-	}
+	if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR)
+		goto out;
 
 	count = ioread32be(health->health_counter);
 	if (count == health->prev)
@@ -239,21 +287,16 @@ static void poll_health(unsigned long data)
 	if (health->miss_counter == MAX_MISSES) {
 		mlx5_core_err(dev, "device's health compromised - reached miss count\n");
 		print_health_info(dev);
-	} else {
-		mod_timer(&health->timer, get_next_poll_jiffies());
 	}
 
 	if (in_fatal(dev) && !health->sick) {
 		health->sick = true;
 		print_health_info(dev);
-		spin_lock(&health->wq_lock);
-		if (!test_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags))
-			queue_work(health->wq, &health->work);
-		else
-			dev_err(&dev->pdev->dev,
-				"new health works are not permitted at this stage\n");
-		spin_unlock(&health->wq_lock);
+		mlx5_trigger_health_work(dev);
 	}
+
+out:
+	mod_timer(&health->timer, get_next_poll_jiffies());
 }
 
 void mlx5_start_health_poll(struct mlx5_core_dev *dev)
@@ -281,10 +324,12 @@ void mlx5_stop_health_poll(struct mlx5_core_dev *dev)
 void mlx5_drain_health_wq(struct mlx5_core_dev *dev)
 {
 	struct mlx5_core_health *health = &dev->priv.health;
+	unsigned long flags;
 
-	spin_lock(&health->wq_lock);
+	spin_lock_irqsave(&health->wq_lock, flags);
 	set_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags);
-	spin_unlock(&health->wq_lock);
+	spin_unlock_irqrestore(&health->wq_lock, flags);
+	cancel_delayed_work_sync(&health->recover_work);
 	cancel_work_sync(&health->work);
 }
 
@@ -316,6 +361,7 @@ int mlx5_health_init(struct mlx5_core_dev *dev)
 
 	spin_lock_init(&health->wq_lock);
 	INIT_WORK(&health->work, health_care);
+	INIT_DELAYED_WORK(&health->recover_work, health_recover);
 
 	return 0;
 }

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:15:04 2018	(r331808)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:17:09 2018	(r331809)
@@ -1257,11 +1257,6 @@ static pci_ers_result_t mlx5_pci_slot_reset(struct pci
 	return err ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED;
 }
 
-void mlx5_disable_device(struct mlx5_core_dev *dev)
-{
-	mlx5_pci_err_detected(dev->pdev, 0);
-}
-
 /* wait for the device to show vital signs. For now we check
  * that we can read the device ID and that the health buffer
  * shows a non zero value which is different than 0xffffffff
@@ -1376,6 +1371,18 @@ static const struct pci_device_id mlx5_core_pci_table[
 };
 
 MODULE_DEVICE_TABLE(pci, mlx5_core_pci_table);
+
+void mlx5_disable_device(struct mlx5_core_dev *dev)
+{
+	mlx5_pci_err_detected(dev->pdev, 0);
+}
+
+void mlx5_recover_device(struct mlx5_core_dev *dev)
+{
+	mlx5_pci_disable_device(dev);
+	if (mlx5_pci_slot_reset(dev->pdev) == PCI_ERS_RESULT_RECOVERED)
+		mlx5_pci_resume(dev->pdev);
+}
 
 struct pci_driver mlx5_core_driver = {
 	.name           = DRIVER_NAME,

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:18:34 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7EF2FF5A1CC;
 Fri, 30 Mar 2018 19:18:34 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 23FCB79AA9;
 Fri, 30 Mar 2018 19:18:34 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0102351AB;
 Fri, 30 Mar 2018 19:18:34 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJIXCx099537;
 Fri, 30 Mar 2018 19:18:33 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJIXJ9099530;
 Fri, 30 Mar 2018 19:18:33 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301918.w2UJIXJ9099530@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:18:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331810 - in stable/11/sys/dev/mlx5: . mlx5_core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core
X-SVN-Commit-Revision: 331810
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:18:34 -0000

Author: hselasky
Date: Fri Mar 30 19:18:33 2018
New Revision: 331810
URL: https://svnweb.freebsd.org/changeset/base/331810

Log:
  MFC r331445:
  Add support for fast unload in shutdown flow in mlx5core.
  
  This patch accumulates the following Linux commits:
  
  - 8812c24d28f4972c4f2b9998bf30b1f2a1b62adf
    net/mlx5: Add fast unload support in shutdown flow
  - 59211bd3b6329c3e5f4a90ac3d7f87ffa7867073
    net/mlx5: Split the load/unload flow into hardware and software flows
  - 4525abeaae54560254a1bb8970b3d4c225d32ef4
    net/mlx5: Expose command polling interface
  
  Submitted by:	Matthew Finlay 
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/driver.h
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_fw.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c
  stable/11/sys/dev/mlx5/mlx5_ifc.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/driver.h
==============================================================================
--- stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:17:09 2018	(r331809)
+++ stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:18:33 2018	(r331810)
@@ -779,6 +779,7 @@ struct mlx5_cmd_work_ent {
 	u64			ts2;
 	u16			op;
 	u8			busy;
+	bool			polling;
 };
 
 struct mlx5_pas {
@@ -866,6 +867,7 @@ static inline u32 mlx5_base_mkey(const u32 key)
 	return key & 0xffffff00u;
 }
 
+void mlx5_enter_error_state(struct mlx5_core_dev *dev, bool force);
 int mlx5_cmd_init(struct mlx5_core_dev *dev);
 void mlx5_cmd_cleanup(struct mlx5_core_dev *dev);
 void mlx5_cmd_use_events(struct mlx5_core_dev *dev);
@@ -877,6 +879,8 @@ int mlx5_cmd_exec(struct mlx5_core_dev *dev, void *in,
 int mlx5_cmd_exec_cb(struct mlx5_core_dev *dev, void *in, int in_size,
 		     void *out, int out_size, mlx5_cmd_cbk_t callback,
 		     void *context);
+int mlx5_cmd_exec_polling(struct mlx5_core_dev *dev, void *in, int in_size,
+			  void *out, int out_size);
 int mlx5_cmd_alloc_uar(struct mlx5_core_dev *dev, u32 *uarn);
 int mlx5_cmd_free_uar(struct mlx5_core_dev *dev, u32 uarn);
 int mlx5_alloc_uuars(struct mlx5_core_dev *dev, struct mlx5_uuar_info *uuari);

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c	Fri Mar 30 19:17:09 2018	(r331809)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_cmd.c	Fri Mar 30 19:18:33 2018	(r331810)
@@ -859,6 +859,7 @@ static void cmd_work_handler(struct work_struct *work)
         unsigned long cb_timeout = msecs_to_jiffies(MLX5_CMD_TIMEOUT_MSEC);
 	struct mlx5_cmd_layout *lay;
 	struct semaphore *sem;
+	bool poll_cmd = ent->polling;
 
 	sem = ent->page_queue ? &cmd->pages_sem : &cmd->sem;
 	down(sem);
@@ -897,7 +898,7 @@ static void cmd_work_handler(struct work_struct *work)
 	iowrite32be(1 << ent->idx, &dev->iseg->cmd_dbell);
 	mmiowb();
 	/* if not in polling don't use ent after this point*/
-	if (cmd->mode == CMD_MODE_POLLING) {
+	if (cmd->mode == CMD_MODE_POLLING || poll_cmd) {
 		poll_timeout(ent);
 		/* make sure we read the descriptor after ownership is SW */
 		mlx5_cmd_comp_handler(dev, 1U << ent->idx);
@@ -940,7 +941,7 @@ static int wait_func(struct mlx5_core_dev *dev, struct
 	struct mlx5_cmd *cmd = &dev->cmd;
 	int err;
 
-	if (cmd->mode == CMD_MODE_POLLING) {
+	if (cmd->mode == CMD_MODE_POLLING || ent->polling) {
 		wait_for_completion(&ent->done);
 		err = ent->ret;
 	} else if (!wait_for_completion_timeout(&ent->done, timeout)) {
@@ -969,7 +970,8 @@ static int mlx5_cmd_invoke(struct mlx5_core_dev *dev, 
 			   int uin_size,
 			   struct mlx5_cmd_msg *out, void *uout, int uout_size,
 			   mlx5_cmd_cbk_t callback,
-			   void *context, int page_queue, u8 *status)
+			   void *context, int page_queue, u8 *status,
+			   bool force_polling)
 {
 	struct mlx5_cmd *cmd = &dev->cmd;
 	struct mlx5_cmd_work_ent *ent;
@@ -986,6 +988,8 @@ static int mlx5_cmd_invoke(struct mlx5_core_dev *dev, 
 	if (IS_ERR(ent))
 		return PTR_ERR(ent);
 
+	ent->polling = force_polling;
+
 	if (!callback)
 		init_completion(&ent->done);
 
@@ -1260,7 +1264,8 @@ static int is_manage_pages(void *in)
 static int cmd_exec_helper(struct mlx5_core_dev *dev,
 			   void *in, int in_size,
 			   void *out, int out_size,
-			   mlx5_cmd_cbk_t callback, void *context)
+			   mlx5_cmd_cbk_t callback, void *context,
+			   bool force_polling)
 {
 	struct mlx5_cmd_msg *inb;
 	struct mlx5_cmd_msg *outb;
@@ -1300,7 +1305,7 @@ static int cmd_exec_helper(struct mlx5_core_dev *dev,
 	}
 
 	err = mlx5_cmd_invoke(dev, inb, in_size, outb, out, out_size, callback,
-			      context, pages_queue, &status);
+			      context, pages_queue, &status, force_polling);
 	if (err) {
 		if (err == -ETIMEDOUT)
 			return err;
@@ -1331,7 +1336,7 @@ int mlx5_cmd_exec(struct mlx5_core_dev *dev, void *in,
 {
 	int err;
 
-	err = cmd_exec_helper(dev, in, in_size, out, out_size, NULL, NULL);
+	err = cmd_exec_helper(dev, in, in_size, out, out_size, NULL, NULL, false);
 	return err ? : mlx5_cmd_check(dev, in, out);
 }
 EXPORT_SYMBOL(mlx5_cmd_exec);
@@ -1340,9 +1345,19 @@ int mlx5_cmd_exec_cb(struct mlx5_core_dev *dev, void *
 		     void *out, int out_size, mlx5_cmd_cbk_t callback,
 		     void *context)
 {
-	return cmd_exec_helper(dev, in, in_size, out, out_size, callback, context);
+	return cmd_exec_helper(dev, in, in_size, out, out_size, callback, context, false);
 }
 EXPORT_SYMBOL(mlx5_cmd_exec_cb);
+
+int mlx5_cmd_exec_polling(struct mlx5_core_dev *dev, void *in, int in_size,
+			  void *out, int out_size)
+{
+	int err;
+
+	err = cmd_exec_helper(dev, in, in_size, out, out_size, NULL, NULL, true);
+	return err ? : mlx5_cmd_check(dev, in, out);
+}
+EXPORT_SYMBOL(mlx5_cmd_exec_polling);
 
 static void destroy_msg_cache(struct mlx5_core_dev *dev)
 {

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h	Fri Mar 30 19:17:09 2018	(r331809)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h	Fri Mar 30 19:18:33 2018	(r331810)
@@ -70,9 +70,10 @@ int mlx5_query_hca_caps(struct mlx5_core_dev *dev);
 int mlx5_query_board_id(struct mlx5_core_dev *dev);
 int mlx5_cmd_init_hca(struct mlx5_core_dev *dev);
 int mlx5_cmd_teardown_hca(struct mlx5_core_dev *dev);
+int mlx5_cmd_force_teardown_hca(struct mlx5_core_dev *dev);
 void mlx5_core_event(struct mlx5_core_dev *dev, enum mlx5_dev_event event,
 		     unsigned long param);
-void mlx5_enter_error_state(struct mlx5_core_dev *dev);
+void mlx5_enter_error_state(struct mlx5_core_dev *dev, bool force);
 void mlx5_disable_device(struct mlx5_core_dev *dev);
 void mlx5_recover_device(struct mlx5_core_dev *dev);
 

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_fw.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_fw.c	Fri Mar 30 19:17:09 2018	(r331809)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_fw.c	Fri Mar 30 19:18:33 2018	(r331810)
@@ -218,6 +218,34 @@ int mlx5_cmd_teardown_hca(struct mlx5_core_dev *dev)
 	return mlx5_cmd_exec(dev, in,  sizeof(in), out, sizeof(out));
 }
 
+int mlx5_cmd_force_teardown_hca(struct mlx5_core_dev *dev)
+{
+	u32 out[MLX5_ST_SZ_DW(teardown_hca_out)] = {0};
+	u32 in[MLX5_ST_SZ_DW(teardown_hca_in)] = {0};
+	int force_state;
+	int ret;
+
+	if (!MLX5_CAP_GEN(dev, force_teardown)) {
+		mlx5_core_dbg(dev, "force teardown is not supported in the firmware\n");
+		return -EOPNOTSUPP;
+	}
+
+	MLX5_SET(teardown_hca_in, in, opcode, MLX5_CMD_OP_TEARDOWN_HCA);
+	MLX5_SET(teardown_hca_in, in, profile, MLX5_TEARDOWN_HCA_IN_PROFILE_FORCE_CLOSE);
+
+	ret = mlx5_cmd_exec_polling(dev, in, sizeof(in), out, sizeof(out));
+	if (ret)
+		return ret;
+
+	force_state = MLX5_GET(teardown_hca_out, out, force_state);
+	if (force_state == MLX5_TEARDOWN_HCA_OUT_FORCE_STATE_FAIL)  {
+		mlx5_core_err(dev, "teardown with force mode failed\n");
+		return -EIO;
+	}
+
+	return 0;
+}
+
 int mlx5_core_set_dc_cnak_trace(struct mlx5_core_dev *dev, int enable,
 				u64 addr)
 {

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:17:09 2018	(r331809)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:18:33 2018	(r331810)
@@ -90,7 +90,7 @@ static int in_fatal(struct mlx5_core_dev *dev)
 	return 0;
 }
 
-void mlx5_enter_error_state(struct mlx5_core_dev *dev)
+void mlx5_enter_error_state(struct mlx5_core_dev *dev, bool force)
 {
 	mutex_lock(&dev->intf_state_mutex);
 	if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) {
@@ -99,7 +99,7 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev)
 	}
 
 	mlx5_core_err(dev, "start\n");
-	if (pci_channel_offline(dev->pdev) || in_fatal(dev)) {
+	if (pci_channel_offline(dev->pdev) || in_fatal(dev) || force) {
 		dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR;
 		mlx5_trigger_cmd_completions(dev);
 	}

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:17:09 2018	(r331809)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:18:33 2018	(r331810)
@@ -868,11 +868,65 @@ static void mlx5_pci_close(struct mlx5_core_dev *dev, 
 	mlx5_pci_disable_device(dev);
 }
 
-static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
+static int mlx5_init_once(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
 {
 	struct pci_dev *pdev = dev->pdev;
 	int err;
 
+	err = mlx5_query_hca_caps(dev);
+	if (err) {
+		dev_err(&pdev->dev, "query hca failed\n");
+		goto out;
+	}
+
+	err = mlx5_query_board_id(dev);
+	if (err) {
+		dev_err(&pdev->dev, "query board id failed\n");
+		goto out;
+	}
+
+	err = mlx5_eq_init(dev);
+	if (err) {
+		dev_err(&pdev->dev, "failed to initialize eq\n");
+		goto out;
+	}
+
+	MLX5_INIT_DOORBELL_LOCK(&priv->cq_uar_lock);
+
+	err = mlx5_init_cq_table(dev);
+	if (err) {
+		dev_err(&pdev->dev, "failed to initialize cq table\n");
+		goto err_eq_cleanup;
+	}
+
+	mlx5_init_qp_table(dev);
+	mlx5_init_srq_table(dev);
+	mlx5_init_mr_table(dev);
+
+	return 0;
+
+err_eq_cleanup:
+	mlx5_eq_cleanup(dev);
+
+out:
+	return err;
+}
+
+static void mlx5_cleanup_once(struct mlx5_core_dev *dev)
+{
+	mlx5_cleanup_mr_table(dev);
+	mlx5_cleanup_srq_table(dev);
+	mlx5_cleanup_qp_table(dev);
+	mlx5_cleanup_cq_table(dev);
+	mlx5_eq_cleanup(dev);
+}
+
+static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv,
+			 bool boot)
+{
+	struct pci_dev *pdev = dev->pdev;
+	int err;
+
 	mutex_lock(&dev->intf_state_mutex);
 	if (test_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state)) {
 		dev_warn(&dev->pdev->dev, "%s: interface is up, NOP\n",
@@ -900,12 +954,10 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st
 		goto err_cmd_cleanup;
 	}
 
-	mlx5_pagealloc_init(dev);
-
 	err = mlx5_core_enable_hca(dev);
 	if (err) {
 		device_printf((&pdev->dev)->bsddev, "ERR: ""enable hca failed\n");
-		goto err_pagealloc_cleanup;
+		goto err_cmd_cleanup;
 	}
 
 	err = mlx5_core_set_issi(dev);
@@ -958,34 +1010,21 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st
 
 	mlx5_start_health_poll(dev);
 
-	err = mlx5_query_hca_caps(dev);
-	if (err) {
-		device_printf((&pdev->dev)->bsddev, "ERR: ""query hca failed\n");
+	if (boot && mlx5_init_once(dev, priv)) {
+		dev_err(&pdev->dev, "sw objs init failed\n");
 		goto err_stop_poll;
 	}
 
-	err = mlx5_query_board_id(dev);
-	if (err) {
-		device_printf((&pdev->dev)->bsddev, "ERR: ""query board id failed\n");
-		goto err_stop_poll;
-	}
-
 	err = mlx5_enable_msix(dev);
 	if (err) {
 		device_printf((&pdev->dev)->bsddev, "ERR: ""enable msix failed\n");
-		goto err_stop_poll;
+		goto err_cleanup_once;
 	}
 
-	err = mlx5_eq_init(dev);
-	if (err) {
-		device_printf((&pdev->dev)->bsddev, "ERR: ""failed to initialize eq\n");
-		goto disable_msix;
-	}
-
 	err = mlx5_alloc_uuars(dev, &priv->uuari);
 	if (err) {
 		device_printf((&pdev->dev)->bsddev, "ERR: ""Failed allocating uar, aborting\n");
-		goto err_eq_cleanup;
+		goto err_disable_msix;
 	}
 
 	err = mlx5_start_eqs(dev);
@@ -1003,23 +1042,16 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st
 	if (map_bf_area(dev))
 		device_printf((&pdev->dev)->bsddev, "ERR: ""Failed to map blue flame area\n");
 
-	MLX5_INIT_DOORBELL_LOCK(&priv->cq_uar_lock);
-
-	mlx5_init_cq_table(dev);
-	mlx5_init_qp_table(dev);
-	mlx5_init_srq_table(dev);
-	mlx5_init_mr_table(dev);
-
 	err = mlx5_init_fs(dev);
 	if (err) {
 		mlx5_core_err(dev, "flow steering init %d\n", err);
-		goto err_init_tables;
+		goto err_free_comp_eqs;
 	}
 
 	err = mlx5_register_device(dev);
 	if (err) {
 		dev_err(&pdev->dev, "mlx5_register_device failed %d\n", err);
-		goto err_reg_dev;
+		goto err_fs;
 	}
 
 	mlx5_fwdump_prep(dev);
@@ -1031,13 +1063,11 @@ out:
 	mutex_unlock(&dev->intf_state_mutex);
 	return 0;
 
-err_reg_dev:
+err_fs:
 	mlx5_cleanup_fs(dev);
-err_init_tables:
-	mlx5_cleanup_mr_table(dev);
-	mlx5_cleanup_srq_table(dev);
-	mlx5_cleanup_qp_table(dev);
-	mlx5_cleanup_cq_table(dev);
+
+err_free_comp_eqs:
+	free_comp_eqs(dev);
 	unmap_bf_area(dev);
 
 err_stop_eqs:
@@ -1046,12 +1076,13 @@ err_stop_eqs:
 err_free_uar:
 	mlx5_free_uuars(dev, &priv->uuari);
 
-err_eq_cleanup:
-	mlx5_eq_cleanup(dev);
-
-disable_msix:
+err_disable_msix:
 	mlx5_disable_msix(dev);
 
+err_cleanup_once:
+	if (boot)
+		mlx5_cleanup_once(dev);
+
 err_stop_poll:
 	mlx5_stop_health_poll(dev);
 	if (mlx5_cmd_teardown_hca(dev)) {
@@ -1068,9 +1099,6 @@ err_pagealloc_stop:
 err_disable_hca:
 	mlx5_core_disable_hca(dev);
 
-err_pagealloc_cleanup:
-	mlx5_pagealloc_cleanup(dev);
-
 err_cmd_cleanup:
 	mlx5_cmd_cleanup(dev);
 
@@ -1081,13 +1109,16 @@ out_err:
 	return err;
 }
 
-static int mlx5_unload_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
+static int mlx5_unload_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv,
+			   bool cleanup)
 {
 	int err = 0;
 
 	mutex_lock(&dev->intf_state_mutex);
 	if (test_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state)) {
 		dev_warn(&dev->pdev->dev, "%s: interface is down, NOP\n", __func__);
+                if (cleanup)
+                        mlx5_cleanup_once(dev);
 		goto out;
 	}
 
@@ -1095,17 +1126,14 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, 
 	mlx5_unregister_device(dev);
 
 	mlx5_cleanup_fs(dev);
-	mlx5_cleanup_mr_table(dev);
-	mlx5_cleanup_srq_table(dev);
-	mlx5_cleanup_qp_table(dev);
-	mlx5_cleanup_cq_table(dev);
 	unmap_bf_area(dev);
 	mlx5_wait_for_reclaim_vfs_pages(dev);
 	free_comp_eqs(dev);
 	mlx5_stop_eqs(dev);
 	mlx5_free_uuars(dev, &priv->uuari);
-	mlx5_eq_cleanup(dev);
 	mlx5_disable_msix(dev);
+        if (cleanup)
+                mlx5_cleanup_once(dev);
 	mlx5_stop_health_poll(dev);
 	err = mlx5_cmd_teardown_hca(dev);
 	if (err) {
@@ -1115,7 +1143,6 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, 
 	mlx5_pagealloc_stop(dev);
 	mlx5_reclaim_startup_pages(dev);
 	mlx5_core_disable_hca(dev);
-	mlx5_pagealloc_cleanup(dev);
 	mlx5_cmd_cleanup(dev);
 
 out:
@@ -1184,7 +1211,9 @@ static int init_one(struct pci_dev *pdev,
                 goto close_pci;
         }
 
-	err = mlx5_load_one(dev, priv);
+	mlx5_pagealloc_init(dev);
+
+	err = mlx5_load_one(dev, priv, true);
 	if (err) {
 		device_printf((&pdev->dev)->bsddev, "ERR: ""mlx5_register_device failed %d\n", err);
 		goto clean_health;
@@ -1193,6 +1222,7 @@ static int init_one(struct pci_dev *pdev,
 	return 0;
 
 clean_health:
+	mlx5_pagealloc_cleanup(dev);
         mlx5_health_cleanup(dev);
 close_pci:
         mlx5_pci_close(dev, priv);
@@ -1206,12 +1236,13 @@ static void remove_one(struct pci_dev *pdev)
 	struct mlx5_core_dev *dev  = pci_get_drvdata(pdev);
 	struct mlx5_priv *priv = &dev->priv;
 
-	if (mlx5_unload_one(dev, priv)) {
+	if (mlx5_unload_one(dev, priv, true)) {
 		dev_err(&dev->pdev->dev, "mlx5_unload_one failed\n");
 		mlx5_health_cleanup(dev);
 		return;
 	}
 
+	mlx5_pagealloc_cleanup(dev);
 	mlx5_health_cleanup(dev);
 	mlx5_pci_close(dev, priv);
 	pci_set_drvdata(pdev, NULL);
@@ -1225,8 +1256,8 @@ static pci_ers_result_t mlx5_pci_err_detected(struct p
 	struct mlx5_priv *priv = &dev->priv;
 
 	dev_info(&pdev->dev, "%s was called\n", __func__);
-	mlx5_enter_error_state(dev);
-	mlx5_unload_one(dev, priv);
+	mlx5_enter_error_state(dev, false);
+	mlx5_unload_one(dev, priv, false);
 	if (state) {
 		pci_save_state(pdev->dev.bsddev);
 		mlx5_drain_health_wq(dev);
@@ -1310,7 +1341,7 @@ static void mlx5_pci_resume(struct pci_dev *pdev)
 	pci_save_state(pdev->dev.bsddev);
 	wait_vital(pdev);
 
-	err = mlx5_load_one(dev, priv);
+	err = mlx5_load_one(dev, priv, false);
 	if (err)
 		dev_err(&pdev->dev, "%s: mlx5_load_one failed with error code: %d\n"
 			, __func__, err);
@@ -1324,13 +1355,41 @@ static const struct pci_error_handlers mlx5_err_handle
 	.resume		= mlx5_pci_resume
 };
 
+static int mlx5_try_fast_unload(struct mlx5_core_dev *dev)
+{
+	int err;
+
+	if (!MLX5_CAP_GEN(dev, force_teardown)) {
+		mlx5_core_dbg(dev, "force teardown is not supported in the firmware\n");
+		return -EOPNOTSUPP;
+	}
+
+	if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) {
+		mlx5_core_dbg(dev, "Device in internal error state, giving up\n");
+		return -EAGAIN;
+	}
+
+	err = mlx5_cmd_force_teardown_hca(dev);
+	if (err) {
+		mlx5_core_dbg(dev, "Firmware couldn't do fast unload error: %d\n", err);
+		return err;
+	}
+
+	mlx5_enter_error_state(dev, true);
+
+	return 0;
+}
+
 static void shutdown_one(struct pci_dev *pdev)
 {
 	struct mlx5_core_dev *dev  = pci_get_drvdata(pdev);
 	struct mlx5_priv *priv = &dev->priv;
+	int err;
 
 	set_bit(MLX5_INTERFACE_STATE_SHUTDOWN, &dev->intf_state);
-	mlx5_unload_one(dev, priv);
+	err = mlx5_try_fast_unload(dev);
+	if (err)
+	        mlx5_unload_one(dev, priv, false);
 	mlx5_pci_disable_device(dev);
 }
 

Modified: stable/11/sys/dev/mlx5/mlx5_ifc.h
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_ifc.h	Fri Mar 30 19:17:09 2018	(r331809)
+++ stable/11/sys/dev/mlx5/mlx5_ifc.h	Fri Mar 30 19:18:33 2018	(r331810)
@@ -941,7 +941,8 @@ struct mlx5_ifc_cmd_hca_cap_bits {
 	u8         max_indirection[0x8];
 	u8         reserved_8[0x1];
 	u8         log_max_mrw_sz[0x7];
-	u8         reserved_9[0x2];
+	u8	   force_teardown[0x1];
+	u8         reserved_9[0x1];
 	u8         log_max_bsf_list_size[0x6];
 	u8         reserved_10[0x2];
 	u8         log_max_klm_list_size[0x6];
@@ -3149,18 +3150,25 @@ struct mlx5_ifc_icmd_access_reg_in_bits {
 	u8         register_data[0][0x20];
 };
 
+enum {
+	MLX5_TEARDOWN_HCA_OUT_FORCE_STATE_SUCCESS = 0x0,
+	MLX5_TEARDOWN_HCA_OUT_FORCE_STATE_FAIL = 0x1,
+};
+
 struct mlx5_ifc_teardown_hca_out_bits {
 	u8         status[0x8];
 	u8         reserved_0[0x18];
 
 	u8         syndrome[0x20];
 
-	u8         reserved_1[0x40];
+	u8         reserved_1[0x3f];
+
+	u8	   force_state[0x1];
 };
 
 enum {
 	MLX5_TEARDOWN_HCA_IN_PROFILE_GRACEFUL_CLOSE  = 0x0,
-	MLX5_TEARDOWN_HCA_IN_PROFILE_PANIC_CLOSE     = 0x1,
+	MLX5_TEARDOWN_HCA_IN_PROFILE_FORCE_CLOSE     = 0x1,
 };
 
 struct mlx5_ifc_teardown_hca_in_bits {

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:19:26 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 34749F5A31A;
 Fri, 30 Mar 2018 19:19:26 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id D683779C09;
 Fri, 30 Mar 2018 19:19:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D144851AC;
 Fri, 30 Mar 2018 19:19:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJJPJI099632;
 Fri, 30 Mar 2018 19:19:25 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJJPm4099629;
 Fri, 30 Mar 2018 19:19:25 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301919.w2UJJPm4099629@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:19:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331811 - in stable/11/sys/dev/mlx5: . mlx5_core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core
X-SVN-Commit-Revision: 331811
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:19:26 -0000

Author: hselasky
Date: Fri Mar 30 19:19:25 2018
New Revision: 331811
URL: https://svnweb.freebsd.org/changeset/base/331811

Log:
  MFC r331446:
  Cancel delayed recovery work when unloading the mlx5core driver.
  
  linux commit 2a0165a034ac024b60cca49c61e46f4afa2e4d98
  
  Submitted by:	Matthew Finlay 
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/driver.h
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/driver.h
==============================================================================
--- stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:18:33 2018	(r331810)
+++ stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:19:25 2018	(r331811)
@@ -892,6 +892,7 @@ int mlx5_health_init(struct mlx5_core_dev *dev);
 void mlx5_start_health_poll(struct mlx5_core_dev *dev);
 void mlx5_stop_health_poll(struct mlx5_core_dev *dev);
 void mlx5_drain_health_wq(struct mlx5_core_dev *dev);
+void mlx5_drain_health_recovery(struct mlx5_core_dev *dev);
 void mlx5_trigger_health_work(struct mlx5_core_dev *dev);
 
 #define	mlx5_buf_alloc_node(dev, size, direct, buf, node) \

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:18:33 2018	(r331810)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:19:25 2018	(r331811)
@@ -46,6 +46,7 @@ enum {
 
 enum {
 	MLX5_DROP_NEW_HEALTH_WORK,
+	MLX5_DROP_NEW_RECOVERY_WORK,
 };
 
 static u8 get_nic_state(struct mlx5_core_dev *dev)
@@ -175,7 +176,7 @@ static void health_care(struct work_struct *work)
 	mlx5_handle_bad_state(dev);
 
 	spin_lock_irqsave(&health->wq_lock, flags);
-	if (!test_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags))
+	if (!test_bit(MLX5_DROP_NEW_RECOVERY_WORK, &health->flags))
 		schedule_delayed_work(&health->recover_work, recover_delay);
 	else
 		dev_err(&dev->pdev->dev,
@@ -306,6 +307,7 @@ void mlx5_start_health_poll(struct mlx5_core_dev *dev)
 	init_timer(&health->timer);
 	health->sick = 0;
 	clear_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags);
+	clear_bit(MLX5_DROP_NEW_RECOVERY_WORK, &health->flags);
 	health->health = &dev->iseg->health;
 	health->health_counter = &dev->iseg->health_counter;
 
@@ -328,9 +330,21 @@ void mlx5_drain_health_wq(struct mlx5_core_dev *dev)
 
 	spin_lock_irqsave(&health->wq_lock, flags);
 	set_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags);
+	set_bit(MLX5_DROP_NEW_RECOVERY_WORK, &health->flags);
 	spin_unlock_irqrestore(&health->wq_lock, flags);
 	cancel_delayed_work_sync(&health->recover_work);
 	cancel_work_sync(&health->work);
+}
+
+void mlx5_drain_health_recovery(struct mlx5_core_dev *dev)
+{
+	struct mlx5_core_health *health = &dev->priv.health;
+	unsigned long flags;
+
+	spin_lock_irqsave(&health->wq_lock, flags);
+	set_bit(MLX5_DROP_NEW_RECOVERY_WORK, &health->flags);
+	spin_unlock_irqrestore(&health->wq_lock, flags);
+	cancel_delayed_work_sync(&dev->priv.health.recover_work);
 }
 
 void mlx5_health_cleanup(struct mlx5_core_dev *dev)

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:18:33 2018	(r331810)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:19:25 2018	(r331811)
@@ -1114,6 +1114,9 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, 
 {
 	int err = 0;
 
+	if (cleanup)
+		mlx5_drain_health_recovery(dev);
+
 	mutex_lock(&dev->intf_state_mutex);
 	if (test_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state)) {
 		dev_warn(&dev->pdev->dev, "%s: interface is down, NOP\n", __func__);

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:20:28 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 32B90F5A4FB;
 Fri, 30 Mar 2018 19:20:28 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id D43BC79DA4;
 Fri, 30 Mar 2018 19:20:27 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CF25651B0;
 Fri, 30 Mar 2018 19:20:27 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJKRUs099755;
 Fri, 30 Mar 2018 19:20:27 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJKR0f099754;
 Fri, 30 Mar 2018 19:20:27 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301920.w2UJKR0f099754@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:20:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331812 - stable/11/sys/dev/mlx5/mlx5_core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core
X-SVN-Commit-Revision: 331812
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:20:28 -0000

Author: hselasky
Date: Fri Mar 30 19:20:27 2018
New Revision: 331812
URL: https://svnweb.freebsd.org/changeset/base/331812

Log:
  MFC r331447:
  Hide verbose proclamation of error when forced in mlx5core.
  
  When mlx5_enter_error_state() operation is forced by shutdown, the
  messages surrounding setting the error state are not informational
  and confuse users.
  
  Submitted by:	kib@
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:19:25 2018	(r331811)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:20:27 2018	(r331812)
@@ -99,14 +99,16 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev,
 		return;
 	}
 
-	mlx5_core_err(dev, "start\n");
+	if (!force)
+		mlx5_core_err(dev, "internal state error detected\n");
 	if (pci_channel_offline(dev->pdev) || in_fatal(dev) || force) {
 		dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR;
 		mlx5_trigger_cmd_completions(dev);
 	}
 
 	mlx5_core_event(dev, MLX5_DEV_EVENT_SYS_ERROR, 0);
-	mlx5_core_err(dev, "end\n");
+	if (!force)
+		mlx5_core_err(dev, "system error event triggered\n");
 
 unlock:
 	mutex_unlock(&dev->intf_state_mutex);

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:21:20 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0313FF5A847;
 Fri, 30 Mar 2018 19:21:20 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id CF2147A13A;
 Fri, 30 Mar 2018 19:21:19 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CA29152E7;
 Fri, 30 Mar 2018 19:21:19 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJLJlu001437;
 Fri, 30 Mar 2018 19:21:19 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJLJNu001435;
 Fri, 30 Mar 2018 19:21:19 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301921.w2UJLJNu001435@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:21:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331813 - in stable/11/sys/dev/mlx5: . mlx5_core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core
X-SVN-Commit-Revision: 331813
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:21:20 -0000

Author: hselasky
Date: Fri Mar 30 19:21:19 2018
New Revision: 331813
URL: https://svnweb.freebsd.org/changeset/base/331813

Log:
  MFC r331449:
  Handle software reset of firmware in error flow in mlx5core.
  
  Some mlx5 adapter firmware allows the driver to reset the firmware in
  the event of an error. When a software reset is issued on any physical
  function all PFs enter reset state. This is a recoverable condition.
  The existing recovery flow was designed to allow the recovery of a
  VF after a PF driver reload. This patch expands the scope of that
  flow to recover PFs or VFs after a SW reset has been issued.
  When a software reset is issued the following occurs:
  
  1. The NIC interface mode is set to SW_RESET (7) while the reset is in
     progress.
  2. Once the reset completes the NIC interface mode is set to NIC
     disabled (1).
  
  After the reset has been issued (added in a subsequent patch) the
  health poll for other functions will detect that the NIC interface
  state has been set to disabled. This will cause it to enter the
  existing recovery flow.  If the PCI is still working (meaning it
  doesn't return 0xff on all reads) it means recovery can proceed
  immediately instead of waiting 60 seconds.
  
  The error detetion has also been refactored to avoid incorrect or
  misleading log messages.
  
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/driver.h
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/driver.h
==============================================================================
--- stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:20:27 2018	(r331812)
+++ stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:21:19 2018	(r331813)
@@ -492,7 +492,7 @@ struct mlx5_core_health {
 	struct timer_list		timer;
 	u32				prev;
 	int				miss_counter;
-	bool				sick;
+	u32				fatal_error;
 	/* wq spinlock to synchronize draining */
 	spinlock_t			wq_lock;
 	struct workqueue_struct	       *wq;

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:20:27 2018	(r331812)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:21:19 2018	(r331813)
@@ -30,6 +30,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include "mlx5_core.h"
@@ -41,7 +42,7 @@ enum {
 	MLX5_NIC_IFC_FULL		= 0,
 	MLX5_NIC_IFC_DISABLED		= 1,
 	MLX5_NIC_IFC_NO_DRAM_NIC	= 2,
-	MLX5_NIC_IFC_INVALID		= 3,
+	MLX5_NIC_IFC_SW_RESET		= 7,
 };
 
 enum {
@@ -49,9 +50,17 @@ enum {
 	MLX5_DROP_NEW_RECOVERY_WORK,
 };
 
-static u8 get_nic_state(struct mlx5_core_dev *dev)
+enum  {
+	MLX5_SENSOR_NO_ERR		= 0,
+	MLX5_SENSOR_PCI_COMM_ERR	= 1,
+	MLX5_SENSOR_PCI_ERR		= 2,
+	MLX5_SENSOR_NIC_DISABLED	= 3,
+	MLX5_SENSOR_NIC_SW_RESET	= 4,
+};
+
+static u8 get_nic_mode(struct mlx5_core_dev *dev)
 {
-	return (ioread32be(&dev->iseg->cmdq_addr_l_sz) >> 8) & 3;
+	return (ioread32be(&dev->iseg->cmdq_addr_l_sz) >> 8) & 7;
 }
 
 static void mlx5_trigger_cmd_completions(struct mlx5_core_dev *dev)
@@ -77,20 +86,39 @@ no_trig:
 	spin_unlock_irqrestore(&dev->cmd.alloc_lock, flags);
 }
 
-static int in_fatal(struct mlx5_core_dev *dev)
+static bool sensor_pci_no_comm(struct mlx5_core_dev *dev)
 {
 	struct mlx5_core_health *health = &dev->priv.health;
 	struct mlx5_health_buffer __iomem *h = health->health;
+	bool err = ioread32be(&h->fw_ver) == 0xffffffff;
 
-	if (get_nic_state(dev) == MLX5_NIC_IFC_DISABLED)
-		return 1;
+	return err;
+}
 
-	if (ioread32be(&h->fw_ver) == 0xffffffff)
-		return 1;
+static bool sensor_nic_disabled(struct mlx5_core_dev *dev)
+{
+	return get_nic_mode(dev) == MLX5_NIC_IFC_DISABLED;
+}
 
-	return 0;
+static bool sensor_nic_sw_reset(struct mlx5_core_dev *dev)
+{
+	return get_nic_mode(dev) == MLX5_NIC_IFC_SW_RESET;
 }
 
+static u32 check_fatal_sensors(struct mlx5_core_dev *dev)
+{
+	if (sensor_pci_no_comm(dev))
+		return MLX5_SENSOR_PCI_COMM_ERR;
+	if (pci_channel_offline(dev->pdev))
+		return MLX5_SENSOR_PCI_ERR;
+	if (sensor_nic_disabled(dev))
+		return MLX5_SENSOR_NIC_DISABLED;
+	if (sensor_nic_sw_reset(dev))
+		return MLX5_SENSOR_NIC_SW_RESET;
+
+	return MLX5_SENSOR_NO_ERR;
+}
+
 void mlx5_enter_error_state(struct mlx5_core_dev *dev, bool force)
 {
 	mutex_lock(&dev->intf_state_mutex);
@@ -101,7 +129,7 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev,
 
 	if (!force)
 		mlx5_core_err(dev, "internal state error detected\n");
-	if (pci_channel_offline(dev->pdev) || in_fatal(dev) || force) {
+	if (check_fatal_sensors(dev) || force) {
 		dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR;
 		mlx5_trigger_cmd_completions(dev);
 	}
@@ -116,57 +144,80 @@ unlock:
 
 static void mlx5_handle_bad_state(struct mlx5_core_dev *dev)
 {
-	u8 nic_state = get_nic_state(dev);
+	u8 nic_mode = get_nic_mode(dev);
 
-	switch (nic_state) {
-	case MLX5_NIC_IFC_FULL:
-		mlx5_core_warn(dev, "Expected to see disabled NIC but it is full driver\n");
-		break;
-
-	case MLX5_NIC_IFC_DISABLED:
-		mlx5_core_warn(dev, "starting teardown\n");
-		break;
-
-	case MLX5_NIC_IFC_NO_DRAM_NIC:
-		mlx5_core_warn(dev, "Expected to see disabled NIC but it is no dram nic\n");
-		break;
-	default:
-		mlx5_core_warn(dev, "Expected to see disabled NIC but it is has invalid value %d\n",
-			       nic_state);
+	if (nic_mode == MLX5_NIC_IFC_SW_RESET) {
+		/* The IFC mode field is 3 bits, so it will read 0x7 in two cases:
+		 * 1. PCI has been disabled (ie. PCI-AER, PF driver unloaded
+		 *    and this is a VF), this is not recoverable by SW reset.
+		 *    Logging of this is handled elsewhere.
+		 * 2. FW reset has been issued by another function, driver can
+		 *    be reloaded to recover after the mode switches to
+		 *    MLX5_NIC_IFC_DISABLED.
+		 */
+		if (dev->priv.health.fatal_error != MLX5_SENSOR_PCI_COMM_ERR)
+			mlx5_core_warn(dev, "NIC SW reset is already progress\n");
+		else
+			mlx5_core_warn(dev, "Communication with FW over the PCI link is down\n");
+	} else {
+		mlx5_core_warn(dev, "NIC mode %d\n", nic_mode);
 	}
 
 	mlx5_disable_device(dev);
 }
 
+#define MLX5_FW_RESET_WAIT_MS	1000
+#define MLX5_NIC_STATE_POLL_MS	5
 static void health_recover(struct work_struct *work)
 {
+	unsigned long end = jiffies + msecs_to_jiffies(MLX5_FW_RESET_WAIT_MS);
 	struct mlx5_core_health *health;
 	struct delayed_work *dwork;
 	struct mlx5_core_dev *dev;
 	struct mlx5_priv *priv;
-	u8 nic_state;
+	u8 nic_mode;
 
 	dwork = container_of(work, struct delayed_work, work);
 	health = container_of(dwork, struct mlx5_core_health, recover_work);
 	priv = container_of(health, struct mlx5_priv, health);
 	dev = container_of(priv, struct mlx5_core_dev, priv);
 
-	nic_state = get_nic_state(dev);
-	if (nic_state == MLX5_NIC_IFC_INVALID) {
-		dev_err(&dev->pdev->dev, "health recovery flow aborted since the nic state is invalid\n");
+	if (sensor_pci_no_comm(dev)) {
+		dev_err(&dev->pdev->dev, "health recovery flow aborted, PCI reads still not working\n");
 		return;
 	}
 
+	nic_mode = get_nic_mode(dev);
+	while (nic_mode != MLX5_NIC_IFC_DISABLED &&
+	       !time_after(jiffies, end)) {
+		msleep(MLX5_NIC_STATE_POLL_MS);
+		nic_mode = get_nic_mode(dev);
+	}
+
+	if (nic_mode != MLX5_NIC_IFC_DISABLED) {
+		dev_err(&dev->pdev->dev, "health recovery flow aborted, unexpected NIC IFC mode %d.\n",
+			nic_mode);
+		return;
+	}
+
 	dev_err(&dev->pdev->dev, "starting health recovery flow\n");
 	mlx5_recover_device(dev);
 }
 
 /* How much time to wait until health resetting the driver (in msecs) */
 #define MLX5_RECOVERY_DELAY_MSECS 60000
+#define MLX5_RECOVERY_NO_DELAY 0
+static unsigned long get_recovery_delay(struct mlx5_core_dev *dev)
+{
+	return dev->priv.health.fatal_error == MLX5_SENSOR_PCI_ERR ||
+		dev->priv.health.fatal_error == MLX5_SENSOR_PCI_COMM_ERR	?
+		MLX5_RECOVERY_DELAY_MSECS : MLX5_RECOVERY_NO_DELAY;
+}
+
 static void health_care(struct work_struct *work)
 {
-	unsigned long recover_delay = msecs_to_jiffies(MLX5_RECOVERY_DELAY_MSECS);
 	struct mlx5_core_health *health;
+	unsigned long recover_delay;
 	struct mlx5_core_dev *dev;
 	struct mlx5_priv *priv;
 	unsigned long flags;
@@ -176,6 +227,7 @@ static void health_care(struct work_struct *work)
 	dev = container_of(priv, struct mlx5_core_dev, priv);
 	mlx5_core_warn(dev, "handling bad device here\n");
 	mlx5_handle_bad_state(dev);
+	recover_delay = msecs_to_jiffies(get_recovery_delay(dev));
 
 	spin_lock_irqsave(&health->wq_lock, flags);
 	if (!test_bit(MLX5_DROP_NEW_RECOVERY_WORK, &health->flags))
@@ -272,6 +324,7 @@ static void poll_health(unsigned long data)
 {
 	struct mlx5_core_dev *dev = (struct mlx5_core_dev *)data;
 	struct mlx5_core_health *health = &dev->priv.health;
+	u32 fatal_error;
 	u32 count;
 
 	if (dev->state != MLX5_DEVICE_STATE_UP)
@@ -292,8 +345,11 @@ static void poll_health(unsigned long data)
 		print_health_info(dev);
 	}
 
-	if (in_fatal(dev) && !health->sick) {
-		health->sick = true;
+	fatal_error = check_fatal_sensors(dev);
+
+	if (fatal_error && !health->fatal_error) {
+		mlx5_core_err(dev, "Fatal error %u detected\n", fatal_error);
+		dev->priv.health.fatal_error = fatal_error;
 		print_health_info(dev);
 		mlx5_trigger_health_work(dev);
 	}
@@ -307,7 +363,7 @@ void mlx5_start_health_poll(struct mlx5_core_dev *dev)
 	struct mlx5_core_health *health = &dev->priv.health;
 
 	init_timer(&health->timer);
-	health->sick = 0;
+	health->fatal_error = MLX5_SENSOR_NO_ERR;
 	clear_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags);
 	clear_bit(MLX5_DROP_NEW_RECOVERY_WORK, &health->flags);
 	health->health = &dev->iseg->health;

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:22:43 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D8467F5AB51;
 Fri, 30 Mar 2018 19:22:42 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 89A457A4D9;
 Fri, 30 Mar 2018 19:22:42 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 845C5533D;
 Fri, 30 Mar 2018 19:22:42 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJMgDW004442;
 Fri, 30 Mar 2018 19:22:42 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJMgmq004440;
 Fri, 30 Mar 2018 19:22:42 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301922.w2UJMgmq004440@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:22:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331814 - in stable/11/sys/dev/mlx5: . mlx5_core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11/sys/dev/mlx5: . mlx5_core
X-SVN-Commit-Revision: 331814
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:22:43 -0000

Author: hselasky
Date: Fri Mar 30 19:22:42 2018
New Revision: 331814
URL: https://svnweb.freebsd.org/changeset/base/331814

Log:
  MFC r331451:
  Issue a software reset on firmware assert in mlx5core.
  
  If a FW assert is considered fatal, indicated by a new bit in the
  health buffer, reset the FW. After the reset, follow the normal
  recovery flow.
  
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/device.h
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/device.h
==============================================================================
--- stable/11/sys/dev/mlx5/device.h	Fri Mar 30 19:21:19 2018	(r331813)
+++ stable/11/sys/dev/mlx5/device.h	Fri Mar 30 19:22:42 2018	(r331814)
@@ -410,6 +410,10 @@ struct mlx5_cmd_layout {
 	u8		status_own;
 };
 
+enum mlx5_fatal_assert_bit_offsets {
+	MLX5_RFR_OFFSET = 31,
+};
+
 struct mlx5_health_buffer {
 	__be32		assert_var[5];
 	__be32		rsvd0[3];
@@ -418,10 +422,18 @@ struct mlx5_health_buffer {
 	__be32		rsvd1[2];
 	__be32		fw_ver;
 	__be32		hw_id;
-	__be32		rsvd2;
+	__be32		rfr;
 	u8		irisc_index;
 	u8		synd;
 	__be16		ext_synd;
+};
+
+enum mlx5_initializing_bit_offsets {
+	MLX5_FW_RESET_SUPPORTED_OFFSET = 30,
+};
+
+enum mlx5_cmd_addr_l_sz_offset {
+	MLX5_NIC_IFC_OFFSET = 8,
 };
 
 struct mlx5_init_seg {

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:21:19 2018	(r331813)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:22:42 2018	(r331814)
@@ -56,6 +56,7 @@ enum  {
 	MLX5_SENSOR_PCI_ERR		= 2,
 	MLX5_SENSOR_NIC_DISABLED	= 3,
 	MLX5_SENSOR_NIC_SW_RESET	= 4,
+	MLX5_SENSOR_FW_SYND_RFR		= 5,
 };
 
 static u8 get_nic_mode(struct mlx5_core_dev *dev)
@@ -63,6 +64,18 @@ static u8 get_nic_mode(struct mlx5_core_dev *dev)
 	return (ioread32be(&dev->iseg->cmdq_addr_l_sz) >> 8) & 7;
 }
 
+static bool sensor_fw_synd_rfr(struct mlx5_core_dev *dev)
+{
+	struct mlx5_core_health *health = &dev->priv.health;
+	struct mlx5_health_buffer __iomem *h = health->health;
+	u32 rfr = ioread32be(&h->rfr) >> MLX5_RFR_OFFSET;
+	u8 synd = ioread8(&h->synd);
+
+	if (rfr && synd)
+		mlx5_core_dbg(dev, "FW requests reset, synd: %d\n", synd);
+	return rfr && synd;
+}
+
 static void mlx5_trigger_cmd_completions(struct mlx5_core_dev *dev)
 {
 	unsigned long flags;
@@ -115,10 +128,44 @@ static u32 check_fatal_sensors(struct mlx5_core_dev *d
 		return MLX5_SENSOR_NIC_DISABLED;
 	if (sensor_nic_sw_reset(dev))
 		return MLX5_SENSOR_NIC_SW_RESET;
+	if (sensor_fw_synd_rfr(dev))
+		return MLX5_SENSOR_FW_SYND_RFR;
 
 	return MLX5_SENSOR_NO_ERR;
 }
 
+static void reset_fw_if_needed(struct mlx5_core_dev *dev)
+{
+	bool supported = (ioread32be(&dev->iseg->initializing) >>
+			  MLX5_FW_RESET_SUPPORTED_OFFSET) & 1;
+	u32 cmdq_addr, fatal_error;
+
+	if (!supported)
+		return;
+
+	/* The reset only needs to be issued by one PF. The health buffer is
+	 * shared between all functions, and will be cleared during a reset.
+	 * Check again to avoid a redundant 2nd reset. If the fatal erros was
+	 * PCI related a reset won't help.
+	 */
+	fatal_error = check_fatal_sensors(dev);
+	if (fatal_error == MLX5_SENSOR_PCI_COMM_ERR ||
+	    fatal_error == MLX5_SENSOR_NIC_DISABLED ||
+	    fatal_error == MLX5_SENSOR_NIC_SW_RESET) {
+		mlx5_core_warn(dev, "Not issuing FW reset. Either it's already done or won't help.");
+		return;
+	}
+
+	mlx5_core_warn(dev, "Issuing FW Reset\n");
+	/* Write the NIC interface field to initiate the reset, the command
+	 * interface address also resides here, don't overwrite it.
+	 */
+	cmdq_addr = ioread32be(&dev->iseg->cmdq_addr_l_sz);
+	iowrite32be((cmdq_addr & 0xFFFFF000) |
+		    MLX5_NIC_IFC_SW_RESET << MLX5_NIC_IFC_OFFSET,
+		    &dev->iseg->cmdq_addr_l_sz);
+}
+
 void mlx5_enter_error_state(struct mlx5_core_dev *dev, bool force)
 {
 	mutex_lock(&dev->intf_state_mutex);
@@ -130,6 +177,7 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev,
 	if (!force)
 		mlx5_core_err(dev, "internal state error detected\n");
 	if (check_fatal_sensors(dev) || force) {
+		reset_fw_if_needed(dev);
 		dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR;
 		mlx5_trigger_cmd_completions(dev);
 	}
@@ -230,11 +278,14 @@ static void health_care(struct work_struct *work)
 	recover_delay = msecs_to_jiffies(get_recovery_delay(dev));
 
 	spin_lock_irqsave(&health->wq_lock, flags);
-	if (!test_bit(MLX5_DROP_NEW_RECOVERY_WORK, &health->flags))
+	if (!test_bit(MLX5_DROP_NEW_RECOVERY_WORK, &health->flags)) {
+		mlx5_core_warn(dev, "Scheduling recovery work with %lums delay\n",
+			       recover_delay);
 		schedule_delayed_work(&health->recover_work, recover_delay);
-	else
+	} else {
 		dev_err(&dev->pdev->dev,
 			"new health works are not permitted at this stage\n");
+	}
 	spin_unlock_irqrestore(&health->wq_lock, flags);
 }
 

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:23:48 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C9928F5ACE7;
 Fri, 30 Mar 2018 19:23:47 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6F5267A669;
 Fri, 30 Mar 2018 19:23:47 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6A040533E;
 Fri, 30 Mar 2018 19:23:47 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJNlTO004543;
 Fri, 30 Mar 2018 19:23:47 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJNkGD004536;
 Fri, 30 Mar 2018 19:23:46 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301923.w2UJNkGD004536@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:23:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331815 - in stable/11/sys: conf dev/mlx5
 dev/mlx5/mlx5_core modules/mlx5
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in stable/11/sys: conf dev/mlx5 dev/mlx5/mlx5_core
 modules/mlx5
X-SVN-Commit-Revision: 331815
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:23:48 -0000

Author: hselasky
Date: Fri Mar 30 19:23:46 2018
New Revision: 331815
URL: https://svnweb.freebsd.org/changeset/base/331815

Log:
  MFC r331452:
  Add mutual exclusion mechanism for software reset of firmware in mlx5core.
  
  Since the FW can be shared between PCI functions it is common that
  more than one health poll will detected a failure, this can lead to
  multiple resets.
  
  The solution is to use a FW locking mechanism using semaphore space to
  provide a way to synchronize between functions. The FW semaphore is
  acquired via config cycle access. First the VSEC gateway must be
  acquired, then the semaphore can be locked by writing a value to it
  and confirmed it's locked by reading the same value back. The process
  in the same to free the semaphore, except the value written should be
  zero.
  
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Added:
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_crspace.c
     - copied unchanged from r331452, head/sys/dev/mlx5/mlx5_core/mlx5_crspace.c
Modified:
  stable/11/sys/conf/files
  stable/11/sys/dev/mlx5/driver.h
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c
  stable/11/sys/modules/mlx5/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/conf/files
==============================================================================
--- stable/11/sys/conf/files	Fri Mar 30 19:22:42 2018	(r331814)
+++ stable/11/sys/conf/files	Fri Mar 30 19:23:46 2018	(r331815)
@@ -4510,6 +4510,8 @@ dev/mlx5/mlx5_core/mlx5_cmd.c			optional mlx5 pci	\
 	compile-with "${OFED_C}"
 dev/mlx5/mlx5_core/mlx5_cq.c			optional mlx5 pci	\
 	compile-with "${OFED_C}"
+dev/mlx5/mlx5_core/mlx5_crspace.c		optional mlx5 pci	\
+	compile-with "${OFED_C}"
 dev/mlx5/mlx5_core/mlx5_diagnostics.c		optional mlx5 pci	\
 	compile-with "${OFED_C}"
 dev/mlx5/mlx5_core/mlx5_eq.c			optional mlx5 pci	\

Modified: stable/11/sys/dev/mlx5/driver.h
==============================================================================
--- stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:22:42 2018	(r331814)
+++ stable/11/sys/dev/mlx5/driver.h	Fri Mar 30 19:23:46 2018	(r331815)
@@ -651,6 +651,7 @@ struct mlx5_core_dev {
 	struct mlx5_flow_root_namespace *sniffer_tx_root_ns;
 	u32 num_q_counter_allocated[MLX5_INTERFACE_NUMBER];
 	struct mlx5_dump_data	*dump_data;
+	u32			vsec_addr;
 };
 
 enum {

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h	Fri Mar 30 19:22:42 2018	(r331814)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_core.h	Fri Mar 30 19:23:46 2018	(r331815)
@@ -64,6 +64,16 @@ enum {
 	MLX5_CMD_TIME, /* print command execution time */
 };
 
+enum mlx5_semaphore_space_address {
+	MLX5_SEMAPHORE_SW_RESET		= 0x20,
+};
+
+enum {
+	UNLOCK = 0,
+	LOCK = 1,
+	CAP_ID = 0x9,
+};
+
 struct mlx5_core_dev;
 
 int mlx5_query_hca_caps(struct mlx5_core_dev *dev);
@@ -95,4 +105,8 @@ struct mlx5_crspace_regmap {
 
 extern struct pci_driver mlx5_core_driver;
 
+void mlx5_vsec_init(struct mlx5_core_dev *dev);
+int mlx5_pciconf_cap9_sem(struct mlx5_core_dev *dev, int state);
+int mlx5_pciconf_set_sem_addr_space(struct mlx5_core_dev *dev,
+				    u32 sem_space_address, int state);
 #endif /* __MLX5_CORE_H__ */

Copied: stable/11/sys/dev/mlx5/mlx5_core/mlx5_crspace.c (from r331452, head/sys/dev/mlx5/mlx5_core/mlx5_crspace.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_crspace.c	Fri Mar 30 19:23:46 2018	(r331815, copy of r331452, head/sys/dev/mlx5/mlx5_core/mlx5_crspace.c)
@@ -0,0 +1,248 @@
+/*-
+ * Copyright (c) 2013-2018, Mellanox Technologies, Ltd.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, 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 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 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$
+ */
+
+#include 
+#include 
+#include 
+#include "mlx5_core.h"
+
+enum {
+	PCI_CTRL_OFFSET = 0x4,
+	PCI_COUNTER_OFFSET = 0x8,
+	PCI_SEMAPHORE_OFFSET = 0xc,
+
+	PCI_ADDR_OFFSET = 0x10,
+	PCI_DATA_OFFSET = 0x14,
+
+	PCI_FLAG_BIT_OFFS = 31,
+	PCI_SPACE_BIT_OFFS = 0,
+	PCI_SPACE_BIT_LEN = 16,
+	PCI_SIZE_VLD_BIT_OFFS = 28,
+	PCI_SIZE_VLD_BIT_LEN = 1,
+	PCI_STATUS_BIT_OFFS = 29,
+	PCI_STATUS_BIT_LEN = 3,
+};
+
+enum {
+	IFC_MAX_RETRIES = 2048
+};
+
+#define MLX5_EXTRACT_C(source, offset, size)	\
+	((((unsigned)(source)) >> (offset)) & MLX5_ONES32(size))
+#define MLX5_EXTRACT(src, start, len)		\
+	(((len) == 32) ? (src) : MLX5_EXTRACT_C(src, start, len))
+#define MLX5_ONES32(size)			\
+	((size) ? (0xffffffff >> (32 - (size))) : 0)
+#define MLX5_MASK32(offset, size)		\
+	(MLX5_ONES32(size) << (offset))
+#define MLX5_MERGE_C(rsrc1, rsrc2, start, len)  \
+	((((rsrc2) << (start)) & (MLX5_MASK32((start), (len)))) | \
+	 ((rsrc1) & (~MLX5_MASK32((start), (len)))))
+#define MLX5_MERGE(rsrc1, rsrc2, start, len)	\
+	(((len) == 32) ? (rsrc2) : MLX5_MERGE_C(rsrc1, rsrc2, start, len))
+
+static int mlx5_pciconf_wait_on_flag(struct mlx5_core_dev *dev,
+				     u8 expected_val)
+{
+	int retries = 0;
+	u32 flag;
+
+	for(;;) {
+		pci_read_config_dword(dev->pdev, dev->vsec_addr +
+				      PCI_ADDR_OFFSET, &flag);
+		flag = MLX5_EXTRACT(flag, PCI_FLAG_BIT_OFFS, 1);
+		if (flag == expected_val)
+			return (0);
+		retries++;
+		if (retries > IFC_MAX_RETRIES)
+			return (-EBUSY);
+		if ((retries & 0xf) == 0)
+			usleep_range(1000, 2000);
+	}
+}
+
+static int mlx5_pciconf_read(struct mlx5_core_dev *dev,
+			     unsigned int offset, u32 *data)
+{
+	u32 address;
+	int ret;
+
+	if (MLX5_EXTRACT(offset, 31, 1))
+		return -EINVAL;
+	address = MLX5_MERGE(offset, 0, PCI_FLAG_BIT_OFFS, 1);
+	pci_write_config_dword(dev->pdev, dev->vsec_addr +
+			       PCI_ADDR_OFFSET, address);
+	ret = mlx5_pciconf_wait_on_flag(dev, 1);
+	if (ret)
+		return (ret);
+	return pci_read_config_dword(dev->pdev, dev->vsec_addr +
+				     PCI_DATA_OFFSET, data);
+}
+
+static int mlx5_pciconf_write(struct mlx5_core_dev *dev,
+			      unsigned int offset, u32 data)
+{
+	u32 address;
+
+	if (MLX5_EXTRACT(offset, 31, 1))
+		return -EINVAL;
+
+	/* Set flag to 0x1 */
+	address = MLX5_MERGE(offset, 1, PCI_FLAG_BIT_OFFS, 1);
+
+	pci_write_config_dword(dev->pdev, dev->vsec_addr +
+			       PCI_DATA_OFFSET, data);
+
+	pci_write_config_dword(dev->pdev, dev->vsec_addr +
+			       PCI_ADDR_OFFSET, address);
+
+	/* Wait for the flag to be cleared */
+	return mlx5_pciconf_wait_on_flag(dev, 0);
+
+}
+
+int mlx5_pciconf_cap9_sem(struct mlx5_core_dev *dev, int state)
+{
+	u32 counter = 0;
+	int retries = 0;
+	u32 lock_val;
+
+	if (state == UNLOCK) {
+		pci_write_config_dword(dev->pdev, dev->vsec_addr +
+				       PCI_SEMAPHORE_OFFSET, 0);
+		return (0);
+	}
+	do {
+		if (retries > IFC_MAX_RETRIES * 10)
+			return -EBUSY;
+		pci_read_config_dword(dev->pdev, dev->vsec_addr +
+				      PCI_SEMAPHORE_OFFSET, &lock_val);
+		if (lock_val != 0) {
+			retries++;
+			if (retries > IFC_MAX_RETRIES * 10)
+				return -EBUSY;
+			usleep_range(1000, 2000);
+			continue;
+		}
+		pci_read_config_dword(dev->pdev, dev->vsec_addr +
+				      PCI_COUNTER_OFFSET, &counter);
+		pci_write_config_dword(dev->pdev, dev->vsec_addr +
+				       PCI_SEMAPHORE_OFFSET, counter);
+		pci_read_config_dword(dev->pdev, dev->vsec_addr +
+				      PCI_SEMAPHORE_OFFSET, &lock_val);
+		retries++;
+	} while (counter != lock_val);
+	return 0;
+}
+
+#define MLX5_PROTECTED_CR_SPACE_DOMAIN 0x6
+static int mlx5_pciconf_set_addr_space(struct mlx5_core_dev *dev,
+				       u16 space)
+{
+	u32 val;
+
+	pci_read_config_dword(dev->pdev, dev->vsec_addr +
+			      PCI_CTRL_OFFSET, &val);
+
+	val = MLX5_MERGE(val, space, PCI_SPACE_BIT_OFFS,
+			 PCI_SPACE_BIT_LEN);
+	pci_write_config_dword(dev->pdev, dev->vsec_addr +
+			       PCI_CTRL_OFFSET, val);
+
+	pci_read_config_dword(dev->pdev, dev->vsec_addr +
+			      PCI_CTRL_OFFSET, &val);
+
+	if (MLX5_EXTRACT(val, PCI_STATUS_BIT_OFFS,
+			 PCI_STATUS_BIT_LEN) == 0)
+		return -EINVAL;
+
+	return 0;
+}
+
+#define MLX5_CR_SPACE_DOMAIN 0x2
+static int mlx5_get_vendor_cap_addr(struct mlx5_core_dev *dev)
+{
+	int vend_cap;
+	int ret;
+
+	vend_cap = pci_find_capability(dev->pdev, CAP_ID);
+	if (!vend_cap)
+		return 0;
+	dev->vsec_addr = vend_cap;
+	ret = mlx5_pciconf_cap9_sem(dev, LOCK);
+	if (ret) {
+		mlx5_core_warn(dev,
+			       "pciconf_cap9_sem locking failure\n");
+		return 0;
+	}
+	if (mlx5_pciconf_set_addr_space(dev, MLX5_CR_SPACE_DOMAIN))
+		vend_cap = 0;
+	ret = mlx5_pciconf_cap9_sem(dev, UNLOCK);
+	if (ret)
+		mlx5_core_warn(dev,
+			       "pciconf_cap9_sem unlocking failure\n");
+	return vend_cap;
+}
+
+#define MLX5_SEMAPHORE_SPACE_DOMAIN 0xA
+int mlx5_pciconf_set_sem_addr_space(struct mlx5_core_dev *dev,
+				    u32 sem_space_address, int state)
+{
+	u32 data, id = 0;
+	int ret;
+
+	ret = mlx5_pciconf_set_addr_space(dev,
+					  MLX5_SEMAPHORE_SPACE_DOMAIN);
+	if (ret)
+		return (ret);
+
+	if (state == LOCK)
+		/* Get a unique ID based on the counter */
+		pci_read_config_dword(dev->pdev, dev->vsec_addr +
+				      PCI_COUNTER_OFFSET, &id);
+
+	/* Try to modify lock */
+	ret = mlx5_pciconf_write(dev, sem_space_address, id);
+	if (ret)
+		return (ret);
+
+	/* Verify lock was modified */
+	ret = mlx5_pciconf_read(dev, sem_space_address, &data);
+	if (ret)
+		return -EINVAL;
+
+	if (data != id)
+		return -EBUSY;
+
+	return 0;
+}
+
+void mlx5_vsec_init(struct mlx5_core_dev *dev)
+{
+	dev->vsec_addr = mlx5_get_vendor_cap_addr(dev);
+}
+

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:22:42 2018	(r331814)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:23:46 2018	(r331815)
@@ -48,6 +48,8 @@ enum {
 enum {
 	MLX5_DROP_NEW_HEALTH_WORK,
 	MLX5_DROP_NEW_RECOVERY_WORK,
+	MLX5_SKIP_SW_RESET,
+	MLX5_SW_RESET_SEM_LOCKED,
 };
 
 enum  {
@@ -59,6 +61,33 @@ enum  {
 	MLX5_SENSOR_FW_SYND_RFR		= 5,
 };
 
+static int lock_sem_sw_reset(struct mlx5_core_dev *dev, int state)
+{
+	int ret, err;
+
+	/* Lock GW access */
+	ret = mlx5_pciconf_cap9_sem(dev, LOCK);
+	if (ret) {
+		mlx5_core_warn(dev, "Timed out locking gateway %d, %d\n", state, ret);
+		return ret;
+	}
+
+	ret = mlx5_pciconf_set_sem_addr_space(dev, MLX5_SEMAPHORE_SW_RESET, state);
+	if (ret && state == LOCK) {
+		if (ret == -EBUSY)
+			mlx5_core_dbg(dev, "SW reset FW semaphore already locked, another function will handle the reset\n");
+		else
+			mlx5_core_warn(dev, "SW reset semaphore lock return %d\n", ret);
+	}
+
+	/* Unlock GW access */
+	err = mlx5_pciconf_cap9_sem(dev, UNLOCK);
+	if (err)
+		mlx5_core_warn(dev, "Timed out unlocking gateway: state %d, err %d\n", state, err);
+
+	return ret;
+}
+
 static u8 get_nic_mode(struct mlx5_core_dev *dev)
 {
 	return (ioread32be(&dev->iseg->cmdq_addr_l_sz) >> 8) & 7;
@@ -138,6 +167,7 @@ static void reset_fw_if_needed(struct mlx5_core_dev *d
 {
 	bool supported = (ioread32be(&dev->iseg->initializing) >>
 			  MLX5_FW_RESET_SUPPORTED_OFFSET) & 1;
+	struct mlx5_core_health *health = &dev->priv.health;
 	u32 cmdq_addr, fatal_error;
 
 	if (!supported)
@@ -151,7 +181,8 @@ static void reset_fw_if_needed(struct mlx5_core_dev *d
 	fatal_error = check_fatal_sensors(dev);
 	if (fatal_error == MLX5_SENSOR_PCI_COMM_ERR ||
 	    fatal_error == MLX5_SENSOR_NIC_DISABLED ||
-	    fatal_error == MLX5_SENSOR_NIC_SW_RESET) {
+	    fatal_error == MLX5_SENSOR_NIC_SW_RESET ||
+	    test_bit(MLX5_SKIP_SW_RESET, &health->flags)) {
 		mlx5_core_warn(dev, "Not issuing FW reset. Either it's already done or won't help.");
 		return;
 	}
@@ -223,6 +254,7 @@ static void health_recover(struct work_struct *work)
 	struct delayed_work *dwork;
 	struct mlx5_core_dev *dev;
 	struct mlx5_priv *priv;
+	bool recover = true;
 	u8 nic_mode;
 
 	dwork = container_of(work, struct delayed_work, work);
@@ -232,7 +264,8 @@ static void health_recover(struct work_struct *work)
 
 	if (sensor_pci_no_comm(dev)) {
 		dev_err(&dev->pdev->dev, "health recovery flow aborted, PCI reads still not working\n");
-		return;
+		recover = false;
+		goto clear_sem;
 	}
 
 	nic_mode = get_nic_mode(dev);
@@ -245,11 +278,21 @@ static void health_recover(struct work_struct *work)
 	if (nic_mode != MLX5_NIC_IFC_DISABLED) {
 		dev_err(&dev->pdev->dev, "health recovery flow aborted, unexpected NIC IFC mode %d.\n",
 			nic_mode);
-		return;
+		recover = false;
 	}
 
-	dev_err(&dev->pdev->dev, "starting health recovery flow\n");
-	mlx5_recover_device(dev);
+clear_sem:
+	if (test_and_clear_bit(MLX5_SW_RESET_SEM_LOCKED, &health->flags)) {
+		mlx5_core_dbg(dev, "Unlocking FW reset semaphore\n");
+		lock_sem_sw_reset(dev, UNLOCK);
+	}
+
+	test_and_clear_bit(MLX5_SKIP_SW_RESET, &health->flags);
+
+	if (recover) {
+		dev_err(&dev->pdev->dev, "starting health recovery flow\n");
+		mlx5_recover_device(dev);
+	}
 }
 
 /* How much time to wait until health resetting the driver (in msecs) */
@@ -269,10 +312,29 @@ static void health_care(struct work_struct *work)
 	struct mlx5_core_dev *dev;
 	struct mlx5_priv *priv;
 	unsigned long flags;
+	int ret;
 
 	health = container_of(work, struct mlx5_core_health, work);
 	priv = container_of(health, struct mlx5_priv, health);
 	dev = container_of(priv, struct mlx5_core_dev, priv);
+
+	if (mlx5_core_is_pf(dev)) {
+		ret = lock_sem_sw_reset(dev, LOCK);
+		if (!ret) {
+			mlx5_core_warn(dev, "Locked FW reset semaphore\n");
+			set_bit(MLX5_SW_RESET_SEM_LOCKED, &health->flags);
+		}
+		else if (ret == -EBUSY) {
+			/* sw reset will be skipped only in case we detect the
+			 * semaphore was already taken. In case of an error
+			 * while taking the semaphore we prefer to issue a
+			 * reset since longer cr-dump time and multiple resets
+			 * are better than a stuck fw.
+			 */
+			set_bit(MLX5_SKIP_SW_RESET, &health->flags);
+		}
+	}
+
 	mlx5_core_warn(dev, "handling bad device here\n");
 	mlx5_handle_bad_state(dev);
 	recover_delay = msecs_to_jiffies(get_recovery_delay(dev));

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:22:42 2018	(r331814)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:23:46 2018	(r331815)
@@ -873,6 +873,8 @@ static int mlx5_init_once(struct mlx5_core_dev *dev, s
 	struct pci_dev *pdev = dev->pdev;
 	int err;
 
+	mlx5_vsec_init(dev);
+
 	err = mlx5_query_hca_caps(dev);
 	if (err) {
 		dev_err(&pdev->dev, "query hca failed\n");

Modified: stable/11/sys/modules/mlx5/Makefile
==============================================================================
--- stable/11/sys/modules/mlx5/Makefile	Fri Mar 30 19:22:42 2018	(r331814)
+++ stable/11/sys/modules/mlx5/Makefile	Fri Mar 30 19:23:46 2018	(r331815)
@@ -6,6 +6,7 @@ SRCS= \
 mlx5_alloc.c \
 mlx5_cmd.c \
 mlx5_cq.c \
+mlx5_crspace.c \
 mlx5_diagnostics.c \
 mlx5_eq.c \
 mlx5_fs_cmd.c \

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:24:50 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 47E05F5AE0D;
 Fri, 30 Mar 2018 19:24:50 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EE29B7A804;
 Fri, 30 Mar 2018 19:24:49 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E917C5340;
 Fri, 30 Mar 2018 19:24:49 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJOn1N004640;
 Fri, 30 Mar 2018 19:24:49 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJOn7e004639;
 Fri, 30 Mar 2018 19:24:49 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301924.w2UJOn7e004639@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:24:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331816 - stable/11/sys/dev/mlx5/mlx5_core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core
X-SVN-Commit-Revision: 331816
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:24:50 -0000

Author: hselasky
Date: Fri Mar 30 19:24:49 2018
New Revision: 331816
URL: https://svnweb.freebsd.org/changeset/base/331816

Log:
  MFC r331453:
  Don't save PCI state when PCI error is detected in mlx5core.
  
  When a PCI error is detected the PCI state could be corrupt, don't
  save it in that flow. Save the state after initialization. After
  restoring the PCI state during slot reset save it again, restoring
  the state destroys the previously saved state info.
  
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:23:46 2018	(r331815)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:24:49 2018	(r331816)
@@ -1224,6 +1224,7 @@ static int init_one(struct pci_dev *pdev,
 		goto clean_health;
 	}
 
+	pci_save_state(pdev->dev.bsddev);
 	return 0;
 
 clean_health:
@@ -1264,7 +1265,6 @@ static pci_ers_result_t mlx5_pci_err_detected(struct p
 	mlx5_enter_error_state(dev, false);
 	mlx5_unload_one(dev, priv, false);
 	if (state) {
-		pci_save_state(pdev->dev.bsddev);
 		mlx5_drain_health_wq(dev);
 		mlx5_pci_disable_device(dev);
 	}
@@ -1289,6 +1289,7 @@ static pci_ers_result_t mlx5_pci_slot_reset(struct pci
 	pci_set_master(pdev);
 	pci_set_powerstate(pdev->dev.bsddev, PCI_POWERSTATE_D0);
 	pci_restore_state(pdev->dev.bsddev);
+	pci_save_state(pdev->dev.bsddev);
 
 	return err ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED;
 }
@@ -1343,7 +1344,6 @@ static void mlx5_pci_resume(struct pci_dev *pdev)
 
 	dev_info(&pdev->dev, "%s was called\n", __func__);
 
-	pci_save_state(pdev->dev.bsddev);
 	wait_vital(pdev);
 
 	err = mlx5_load_one(dev, priv, false);

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:25:41 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 182F6F5AF4B;
 Fri, 30 Mar 2018 19:25:41 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BA0867A97E;
 Fri, 30 Mar 2018 19:25:40 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9C5285341;
 Fri, 30 Mar 2018 19:25:40 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJPeQn004738;
 Fri, 30 Mar 2018 19:25:40 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJPedS004737;
 Fri, 30 Mar 2018 19:25:40 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301925.w2UJPedS004737@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:25:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331817 - stable/11/sys/dev/mlx5/mlx5_core
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_core
X-SVN-Commit-Revision: 331817
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:25:41 -0000

Author: hselasky
Date: Fri Mar 30 19:25:40 2018
New Revision: 331817
URL: https://svnweb.freebsd.org/changeset/base/331817

Log:
  MFC r331455:
  Fix incorrect page count when mlx5core is in internal error.
  
  Change page cleanup flow when in internal error to properly decrement
  the page counts when reclaiming pages. That prevents timing out
  waiting for extra pages that were actually cleaned up previously.
  
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c	Fri Mar 30 19:24:49 2018	(r331816)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c	Fri Mar 30 19:25:40 2018	(r331817)
@@ -380,6 +380,37 @@ out_free:
 	return err;
 }
 
+static int reclaim_pages_cmd(struct mlx5_core_dev *dev,
+			     u32 *in, int in_size, u32 *out, int out_size)
+{
+	struct mlx5_fw_page *fwp;
+	struct rb_node *p;
+	u32 func_id;
+	u32 npages;
+	u32 i = 0;
+
+	if (dev->state != MLX5_DEVICE_STATE_INTERNAL_ERROR)
+		return mlx5_cmd_exec(dev, in, in_size, out, out_size);
+
+	/* No hard feelings, we want our pages back! */
+	npages = MLX5_GET(manage_pages_in, in, input_num_entries);
+	func_id = MLX5_GET(manage_pages_in, in, function_id);
+
+	p = rb_first(&dev->priv.page_root);
+	while (p && i < npages) {
+		fwp = rb_entry(p, struct mlx5_fw_page, rb_node);
+		p = rb_next(p);
+		if (fwp->func_id != func_id)
+			continue;
+
+		MLX5_ARRAY_SET64(manage_pages_out, out, pas, i, fwp->dma_addr);
+		i++;
+	}
+
+	MLX5_SET(manage_pages_out, out, output_num_entries, i);
+	return 0;
+}
+
 static int reclaim_pages(struct mlx5_core_dev *dev, u32 func_id, int npages,
 			 int *nclaimed)
 {
@@ -404,7 +435,7 @@ static int reclaim_pages(struct mlx5_core_dev *dev, u3
 	MLX5_SET(manage_pages_in, in, input_num_entries, npages);
 
 	mlx5_core_dbg(dev, "npages %d, outlen %d\n", npages, outlen);
-	err = mlx5_cmd_exec(dev, in, sizeof(in), out, outlen);
+	err = reclaim_pages_cmd(dev, in, sizeof(in), out, outlen);
 	if (err) {
 		mlx5_core_err(dev, "failed reclaiming pages\n");
 		goto out_free;
@@ -531,19 +562,13 @@ int mlx5_reclaim_startup_pages(struct mlx5_core_dev *d
 		p = rb_first(&dev->priv.page_root);
 		if (p) {
 			fwp = rb_entry(p, struct mlx5_fw_page, rb_node);
-			if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) {
-				--dev->priv.fw_pages;
-				free_4k(dev, fwp->dma_addr);
-				nclaimed = 1;
-			} else {
-				err = reclaim_pages(dev, fwp->func_id,
-						    optimal_reclaimed_pages(),
-						    &nclaimed);
-				if (err) {
-					mlx5_core_warn(dev, "failed reclaiming pages (%d)\n",
-						       err);
-					return err;
-				}
+			err = reclaim_pages(dev, fwp->func_id,
+					    optimal_reclaimed_pages(),
+					    &nclaimed);
+			if (err) {
+				mlx5_core_warn(dev, "failed reclaiming pages (%d)\n",
+					       err);
+				return err;
 			}
 
 			if (nclaimed)

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:26:48 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 47042F5B0D3;
 Fri, 30 Mar 2018 19:26:48 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3AAD37AB31;
 Fri, 30 Mar 2018 19:26:46 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 10DF15342;
 Fri, 30 Mar 2018 19:26:46 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJQj1G004832;
 Fri, 30 Mar 2018 19:26:45 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJQjDg004831;
 Fri, 30 Mar 2018 19:26:45 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301926.w2UJQjDg004831@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:26:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331818 - stable/11/sys/dev/mlx5/mlx5_en
X-SVN-Group: stable-11
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en
X-SVN-Commit-Revision: 331818
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:26:48 -0000

Author: hselasky
Date: Fri Mar 30 19:26:45 2018
New Revision: 331818
URL: https://svnweb.freebsd.org/changeset/base/331818

Log:
  MFC r331456:
  Don't wait for completions when a mlx5en(4) device is in internal
  error state.
  
  If the device is in internal error state the hardware will not
  generate completions. Just move on to destroy the resources.
  
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c	Fri Mar 30 19:25:40 2018	(r331817)
+++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_main.c	Fri Mar 30 19:26:45 2018	(r331818)
@@ -802,8 +802,7 @@ mlx5e_destroy_rq(struct mlx5e_rq *rq)
 	wq_sz = mlx5_wq_ll_get_size(&rq->wq);
 	for (i = 0; i != wq_sz; i++) {
 		if (rq->mbuf[i].mbuf != NULL) {
-			bus_dmamap_unload(rq->dma_tag,
-			    rq->mbuf[i].dma_map);
+			bus_dmamap_unload(rq->dma_tag, rq->mbuf[i].dma_map);
 			m_freem(rq->mbuf[i].mbuf);
 		}
 		bus_dmamap_destroy(rq->dma_tag, rq->mbuf[i].dma_map);
@@ -959,8 +958,11 @@ mlx5e_close_rq(struct mlx5e_rq *rq)
 static void
 mlx5e_close_rq_wait(struct mlx5e_rq *rq)
 {
+	struct mlx5_core_dev *mdev = rq->channel->priv->mdev;
+
 	/* wait till RQ is empty */
-	while (!mlx5_wq_ll_is_empty(&rq->wq)) {
+	while (!mlx5_wq_ll_is_empty(&rq->wq) &&
+	       (mdev->state != MLX5_DEVICE_STATE_INTERNAL_ERROR)) {
 		msleep(4);
 		rq->cq.mcq.comp(&rq->cq.mcq);
 	}
@@ -1299,6 +1301,7 @@ void
 mlx5e_drain_sq(struct mlx5e_sq *sq)
 {
 	int error;
+	struct mlx5_core_dev *mdev= sq->priv->mdev;
 
 	/*
 	 * Check if already stopped.
@@ -1331,7 +1334,8 @@ mlx5e_drain_sq(struct mlx5e_sq *sq)
 	/* wait till SQ is empty or link is down */
 	mtx_lock(&sq->lock);
 	while (sq->cc != sq->pc &&
-	    (sq->priv->media_status_last & IFM_ACTIVE) != 0) {
+	    (sq->priv->media_status_last & IFM_ACTIVE) != 0 &&
+	    mdev->state != MLX5_DEVICE_STATE_INTERNAL_ERROR) {
 		mtx_unlock(&sq->lock);
 		msleep(1);
 		sq->cq.mcq.comp(&sq->cq.mcq);
@@ -1348,7 +1352,8 @@ mlx5e_drain_sq(struct mlx5e_sq *sq)
 
 	/* wait till SQ is empty */
 	mtx_lock(&sq->lock);
-	while (sq->cc != sq->pc) {
+	while (sq->cc != sq->pc &&
+	       mdev->state != MLX5_DEVICE_STATE_INTERNAL_ERROR) {
 		mtx_unlock(&sq->lock);
 		msleep(1);
 		sq->cq.mcq.comp(&sq->cq.mcq);

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:35:32 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 88E1DF5C023;
 Fri, 30 Mar 2018 19:35:32 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 37DF77B680;
 Fri, 30 Mar 2018 19:35:32 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 32B5B54EF;
 Fri, 30 Mar 2018 19:35:32 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJZW5a010015;
 Fri, 30 Mar 2018 19:35:32 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJZWdu010014;
 Fri, 30 Mar 2018 19:35:32 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301935.w2UJZWdu010014@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:35:32 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331819 - head/sys/dev/mlx5/mlx5_core
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_core
X-SVN-Commit-Revision: 331819
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:35:32 -0000

Author: hselasky
Date: Fri Mar 30 19:35:31 2018
New Revision: 331819
URL: https://svnweb.freebsd.org/changeset/base/331819

Log:
  Add missing newline character in print in mlx5core.
  
  MFC after:	3 days
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/mlx5/mlx5_core/mlx5_health.c

Modified: head/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:26:45 2018	(r331818)
+++ head/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:35:31 2018	(r331819)
@@ -183,7 +183,7 @@ static void reset_fw_if_needed(struct mlx5_core_dev *d
 	    fatal_error == MLX5_SENSOR_NIC_DISABLED ||
 	    fatal_error == MLX5_SENSOR_NIC_SW_RESET ||
 	    test_bit(MLX5_SKIP_SW_RESET, &health->flags)) {
-		mlx5_core_warn(dev, "Not issuing FW reset. Either it's already done or won't help.");
+		mlx5_core_warn(dev, "Not issuing FW reset. Either it's already done or won't help.\n");
 		return;
 	}
 

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:39:28 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 40D37F5C543;
 Fri, 30 Mar 2018 19:39:28 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E70A37B9C5;
 Fri, 30 Mar 2018 19:39:27 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E1EF754F4;
 Fri, 30 Mar 2018 19:39:27 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJdReA010419;
 Fri, 30 Mar 2018 19:39:27 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJdRqB010418;
 Fri, 30 Mar 2018 19:39:27 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301939.w2UJdRqB010418@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:39:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331820 - head/sys/dev/mlx5/mlx5_core
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_core
X-SVN-Commit-Revision: 331820
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:39:28 -0000

Author: hselasky
Date: Fri Mar 30 19:39:27 2018
New Revision: 331820
URL: https://svnweb.freebsd.org/changeset/base/331820

Log:
  Properly check if crspace is supported in mlx5core.
  
  The old code checked for MLX5_CR_SPACE_DOMAIN which is irrelevant here.
  However, if dev->vsec_addr would be 0, an access to wrong offset would
  happen.
  
  MFC after:	3 days
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/mlx5/mlx5_core/mlx5_crspace.c

Modified: head/sys/dev/mlx5/mlx5_core/mlx5_crspace.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_core/mlx5_crspace.c	Fri Mar 30 19:35:31 2018	(r331819)
+++ head/sys/dev/mlx5/mlx5_core/mlx5_crspace.c	Fri Mar 30 19:39:27 2018	(r331820)
@@ -65,6 +65,8 @@ enum {
 #define MLX5_MERGE(rsrc1, rsrc2, start, len)	\
 	(((len) == 32) ? (rsrc2) : MLX5_MERGE_C(rsrc1, rsrc2, start, len))
 
+#define MLX5_SEMAPHORE_SPACE_DOMAIN 0xA
+
 static int mlx5_pciconf_wait_on_flag(struct mlx5_core_dev *dev,
 				     u8 expected_val)
 {
@@ -131,6 +133,9 @@ int mlx5_pciconf_cap9_sem(struct mlx5_core_dev *dev, i
 	int retries = 0;
 	u32 lock_val;
 
+	if (!dev->vsec_addr)
+		return -ENXIO;
+
 	if (state == UNLOCK) {
 		pci_write_config_dword(dev->pdev, dev->vsec_addr +
 				       PCI_SEMAPHORE_OFFSET, 0);
@@ -159,7 +164,6 @@ int mlx5_pciconf_cap9_sem(struct mlx5_core_dev *dev, i
 	return 0;
 }
 
-#define MLX5_PROTECTED_CR_SPACE_DOMAIN 0x6
 static int mlx5_pciconf_set_addr_space(struct mlx5_core_dev *dev,
 				       u16 space)
 {
@@ -183,7 +187,6 @@ static int mlx5_pciconf_set_addr_space(struct mlx5_cor
 	return 0;
 }
 
-#define MLX5_CR_SPACE_DOMAIN 0x2
 static int mlx5_get_vendor_cap_addr(struct mlx5_core_dev *dev)
 {
 	int vend_cap;
@@ -196,24 +199,27 @@ static int mlx5_get_vendor_cap_addr(struct mlx5_core_d
 	ret = mlx5_pciconf_cap9_sem(dev, LOCK);
 	if (ret) {
 		mlx5_core_warn(dev,
-			       "pciconf_cap9_sem locking failure\n");
+		    "pciconf_cap9_sem locking failure\n");
 		return 0;
 	}
-	if (mlx5_pciconf_set_addr_space(dev, MLX5_CR_SPACE_DOMAIN))
+	if (mlx5_pciconf_set_addr_space(dev,
+	       MLX5_SEMAPHORE_SPACE_DOMAIN))
 		vend_cap = 0;
 	ret = mlx5_pciconf_cap9_sem(dev, UNLOCK);
 	if (ret)
 		mlx5_core_warn(dev,
-			       "pciconf_cap9_sem unlocking failure\n");
+		    "pciconf_cap9_sem unlocking failure\n");
 	return vend_cap;
 }
 
-#define MLX5_SEMAPHORE_SPACE_DOMAIN 0xA
 int mlx5_pciconf_set_sem_addr_space(struct mlx5_core_dev *dev,
 				    u32 sem_space_address, int state)
 {
 	u32 data, id = 0;
 	int ret;
+
+	if (!dev->vsec_addr)
+		return -ENXIO;
 
 	ret = mlx5_pciconf_set_addr_space(dev,
 					  MLX5_SEMAPHORE_SPACE_DOMAIN);

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:43:16 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1802FF5CBA7;
 Fri, 30 Mar 2018 19:43:16 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BC5AC7BF57;
 Fri, 30 Mar 2018 19:43:15 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9CBAF5684;
 Fri, 30 Mar 2018 19:43:15 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJhFnr015706;
 Fri, 30 Mar 2018 19:43:15 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJhFYT015704;
 Fri, 30 Mar 2018 19:43:15 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301943.w2UJhFYT015704@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:43:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331821 - head/sys/dev/mlx5/mlx5_core
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_core
X-SVN-Commit-Revision: 331821
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:43:16 -0000

Author: hselasky
Date: Fri Mar 30 19:43:15 2018
New Revision: 331821
URL: https://svnweb.freebsd.org/changeset/base/331821

Log:
  Prepare for FW dump in error state in mlx5core.
  
  - Move firmware dump prep and cleanup to init_one() and remove_one() so that
  the init and cleanup will happen only upon driver reload.
  - Add some prints to indicate firmware dump.
  
  MFC after:	3 days
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c
  head/sys/dev/mlx5/mlx5_core/mlx5_main.c

Modified: head/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c	Fri Mar 30 19:39:27 2018	(r331820)
+++ head/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c	Fri Mar 30 19:43:15 2018	(r331821)
@@ -116,14 +116,18 @@ mlx5_fwdump(struct mlx5_core_dev *mdev)
 	uint32_t i, ri;
 	int error;
 
+	dev_info(&mdev->pdev->dev, "Issuing FW dump\n");
 	dd = (struct mlx5_dump_data *)atomic_load_acq_ptr((uintptr_t *)
 	    &mdev->dump_data);
 	if (dd == NULL)
 		return;
 	mtx_lock(&dd->dump_lock);
-	if (dd->dump_valid)
+	if (dd->dump_valid) {
 		/* only one dump */
+		dev_warn(&mdev->pdev->dev,
+		    "Only one FW dump can be captured aborting FW dump\n");
 		goto failed;
+	}
 
 	/* mlx5_vsc already warns, be silent. */
 	error = mlx5_vsc_lock(mdev);

Modified: head/sys/dev/mlx5/mlx5_core/mlx5_main.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:39:27 2018	(r331820)
+++ head/sys/dev/mlx5/mlx5_core/mlx5_main.c	Fri Mar 30 19:43:15 2018	(r331821)
@@ -1056,8 +1056,6 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, st
 		goto err_fs;
 	}
 
-	mlx5_fwdump_prep(dev);
-
 	clear_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state);
 	set_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state);
 
@@ -1127,7 +1125,6 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, 
 		goto out;
 	}
 
-	mlx5_fwdump_clean(dev);
 	mlx5_unregister_device(dev);
 
 	mlx5_cleanup_fs(dev);
@@ -1179,7 +1176,6 @@ struct mlx5_core_event_handler {
 		      void *data);
 };
 
-
 static int init_one(struct pci_dev *pdev,
 		    const struct pci_device_id *id)
 {
@@ -1224,6 +1220,8 @@ static int init_one(struct pci_dev *pdev,
 		goto clean_health;
 	}
 
+	mlx5_fwdump_prep(dev);
+
 	pci_save_state(pdev->dev.bsddev);
 	return 0;
 
@@ -1248,6 +1246,7 @@ static void remove_one(struct pci_dev *pdev)
 		return;
 	}
 
+	mlx5_fwdump_clean(dev);
 	mlx5_pagealloc_cleanup(dev);
 	mlx5_health_cleanup(dev);
 	mlx5_pci_close(dev, priv);
@@ -1264,6 +1263,7 @@ static pci_ers_result_t mlx5_pci_err_detected(struct p
 	dev_info(&pdev->dev, "%s was called\n", __func__);
 	mlx5_enter_error_state(dev, false);
 	mlx5_unload_one(dev, priv, false);
+
 	if (state) {
 		mlx5_drain_health_wq(dev);
 		mlx5_pci_disable_device(dev);

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:45:49 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BC091F5CF01;
 Fri, 30 Mar 2018 19:45:49 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4A98D7C1C6;
 Fri, 30 Mar 2018 19:45:49 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 414F05685;
 Fri, 30 Mar 2018 19:45:49 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJjnAO015861;
 Fri, 30 Mar 2018 19:45:49 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJjngu015860;
 Fri, 30 Mar 2018 19:45:49 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301945.w2UJjngu015860@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:45:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331822 - head/sys/dev/mlx5/mlx5_core
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_core
X-SVN-Commit-Revision: 331822
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:45:50 -0000

Author: hselasky
Date: Fri Mar 30 19:45:48 2018
New Revision: 331822
URL: https://svnweb.freebsd.org/changeset/base/331822

Log:
  Reorganize health recovery in mlx5core.
  
  - Move the semaphore locking and unlocking to the same function.
  - Flags are no longer needed if the reset and crdump will be done in the
    same function.
  
  MFC after:	3 days
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/mlx5/mlx5_core/mlx5_health.c

Modified: head/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:43:15 2018	(r331821)
+++ head/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:45:48 2018	(r331822)
@@ -48,8 +48,6 @@ enum {
 enum {
 	MLX5_DROP_NEW_HEALTH_WORK,
 	MLX5_DROP_NEW_RECOVERY_WORK,
-	MLX5_SKIP_SW_RESET,
-	MLX5_SW_RESET_SEM_LOCKED,
 };
 
 enum  {
@@ -167,7 +165,6 @@ static void reset_fw_if_needed(struct mlx5_core_dev *d
 {
 	bool supported = (ioread32be(&dev->iseg->initializing) >>
 			  MLX5_FW_RESET_SUPPORTED_OFFSET) & 1;
-	struct mlx5_core_health *health = &dev->priv.health;
 	u32 cmdq_addr, fatal_error;
 
 	if (!supported)
@@ -181,8 +178,7 @@ static void reset_fw_if_needed(struct mlx5_core_dev *d
 	fatal_error = check_fatal_sensors(dev);
 	if (fatal_error == MLX5_SENSOR_PCI_COMM_ERR ||
 	    fatal_error == MLX5_SENSOR_NIC_DISABLED ||
-	    fatal_error == MLX5_SENSOR_NIC_SW_RESET ||
-	    test_bit(MLX5_SKIP_SW_RESET, &health->flags)) {
+	    fatal_error == MLX5_SENSOR_NIC_SW_RESET) {
 		mlx5_core_warn(dev, "Not issuing FW reset. Either it's already done or won't help.\n");
 		return;
 	}
@@ -197,26 +193,65 @@ static void reset_fw_if_needed(struct mlx5_core_dev *d
 		    &dev->iseg->cmdq_addr_l_sz);
 }
 
+#define MLX5_CRDUMP_WAIT_MS	60000
+#define MLX5_FW_RESET_WAIT_MS	1000
+#define MLX5_NIC_STATE_POLL_MS	5
 void mlx5_enter_error_state(struct mlx5_core_dev *dev, bool force)
 {
+	unsigned long end, delay_ms = MLX5_CRDUMP_WAIT_MS;
+	u32 fatal_error;
+	int lock = -EBUSY;
+
 	mutex_lock(&dev->intf_state_mutex);
 	if (dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) {
 		goto unlock;
 		return;
 	}
 
-	if (!force)
-		mlx5_core_err(dev, "internal state error detected\n");
-	if (check_fatal_sensors(dev) || force) {
-		reset_fw_if_needed(dev);
+	fatal_error = check_fatal_sensors(dev);
+
+	if (fatal_error || force) {
+		if (!force)
+			mlx5_core_err(dev, "internal state error detected\n");
 		dev->state = MLX5_DEVICE_STATE_INTERNAL_ERROR;
 		mlx5_trigger_cmd_completions(dev);
 	}
 
-	mlx5_core_event(dev, MLX5_DEV_EVENT_SYS_ERROR, 0);
-	if (!force)
-		mlx5_core_err(dev, "system error event triggered\n");
+	if (force)
+		goto err_state_done;
 
+	if (fatal_error == MLX5_SENSOR_FW_SYND_RFR) {
+		if (mlx5_core_is_pf(dev))
+			lock = lock_sem_sw_reset(dev, LOCK);
+
+		if (lock != -EBUSY) {
+			reset_fw_if_needed(dev);
+			delay_ms = MLX5_FW_RESET_WAIT_MS;
+		}
+	}
+
+	/* Recover from SW reset */
+	end = jiffies + msecs_to_jiffies(delay_ms);
+	do {
+		if (sensor_nic_disabled(dev))
+			break;
+
+		msleep(MLX5_NIC_STATE_POLL_MS);
+	} while (!time_after(jiffies, end));
+
+	if (!sensor_nic_disabled(dev)) {
+		dev_err(&dev->pdev->dev, "NIC IFC still %d after %lums.\n",
+			get_nic_mode(dev), delay_ms);
+	}
+
+	/* Release FW semaphore if you are the lock owner */
+	if (!lock)
+		lock_sem_sw_reset(dev, UNLOCK);
+
+	mlx5_core_err(dev, "system error event triggered\n");
+
+err_state_done:
+	mlx5_core_event(dev, MLX5_DEV_EVENT_SYS_ERROR, 0);
 unlock:
 	mutex_unlock(&dev->intf_state_mutex);
 }
@@ -265,7 +300,6 @@ static void health_recover(struct work_struct *work)
 	if (sensor_pci_no_comm(dev)) {
 		dev_err(&dev->pdev->dev, "health recovery flow aborted, PCI reads still not working\n");
 		recover = false;
-		goto clear_sem;
 	}
 
 	nic_mode = get_nic_mode(dev);
@@ -281,14 +315,6 @@ static void health_recover(struct work_struct *work)
 		recover = false;
 	}
 
-clear_sem:
-	if (test_and_clear_bit(MLX5_SW_RESET_SEM_LOCKED, &health->flags)) {
-		mlx5_core_dbg(dev, "Unlocking FW reset semaphore\n");
-		lock_sem_sw_reset(dev, UNLOCK);
-	}
-
-	test_and_clear_bit(MLX5_SKIP_SW_RESET, &health->flags);
-
 	if (recover) {
 		dev_err(&dev->pdev->dev, "starting health recovery flow\n");
 		mlx5_recover_device(dev);
@@ -312,28 +338,10 @@ static void health_care(struct work_struct *work)
 	struct mlx5_core_dev *dev;
 	struct mlx5_priv *priv;
 	unsigned long flags;
-	int ret;
 
 	health = container_of(work, struct mlx5_core_health, work);
 	priv = container_of(health, struct mlx5_priv, health);
 	dev = container_of(priv, struct mlx5_core_dev, priv);
-
-	if (mlx5_core_is_pf(dev)) {
-		ret = lock_sem_sw_reset(dev, LOCK);
-		if (!ret) {
-			mlx5_core_warn(dev, "Locked FW reset semaphore\n");
-			set_bit(MLX5_SW_RESET_SEM_LOCKED, &health->flags);
-		}
-		else if (ret == -EBUSY) {
-			/* sw reset will be skipped only in case we detect the
-			 * semaphore was already taken. In case of an error
-			 * while taking the semaphore we prefer to issue a
-			 * reset since longer cr-dump time and multiple resets
-			 * are better than a stuck fw.
-			 */
-			set_bit(MLX5_SKIP_SW_RESET, &health->flags);
-		}
-	}
 
 	mlx5_core_warn(dev, "handling bad device here\n");
 	mlx5_handle_bad_state(dev);

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:48:26 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E08FF6020A;
 Fri, 30 Mar 2018 19:48:26 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id CEF807C3E8;
 Fri, 30 Mar 2018 19:48:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C28EA5686;
 Fri, 30 Mar 2018 19:48:25 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJmPfu015989;
 Fri, 30 Mar 2018 19:48:25 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJmPDr015988;
 Fri, 30 Mar 2018 19:48:25 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301948.w2UJmPDr015988@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:48:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331823 - head/sys/dev/mlx5/mlx5_core
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_core
X-SVN-Commit-Revision: 331823
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:48:26 -0000

Author: hselasky
Date: Fri Mar 30 19:48:25 2018
New Revision: 331823
URL: https://svnweb.freebsd.org/changeset/base/331823

Log:
  Collect firmware dump when mlx5core is in device error state.
  
  Firmware dump collecting should be triggered in case firmware syndrome
  with request for reset bit is set.
  
  MFC after:	3 days
  Submitted by:	slavash@
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/mlx5/mlx5_core/mlx5_health.c

Modified: head/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:45:48 2018	(r331822)
+++ head/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:48:25 2018	(r331823)
@@ -221,10 +221,13 @@ void mlx5_enter_error_state(struct mlx5_core_dev *dev,
 		goto err_state_done;
 
 	if (fatal_error == MLX5_SENSOR_FW_SYND_RFR) {
+		/* Get cr-dump and reset FW semaphore */
 		if (mlx5_core_is_pf(dev))
 			lock = lock_sem_sw_reset(dev, LOCK);
 
+		/* Execute cr-dump and SW reset */
 		if (lock != -EBUSY) {
+			mlx5_fwdump(dev);
 			reset_fw_if_needed(dev);
 			delay_ms = MLX5_FW_RESET_WAIT_MS;
 		}

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:49:36 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E850F60357;
 Fri, 30 Mar 2018 19:49:36 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id C60B07C568;
 Fri, 30 Mar 2018 19:49:35 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C0D565687;
 Fri, 30 Mar 2018 19:49:35 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJnZSe016070;
 Fri, 30 Mar 2018 19:49:35 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJnZ57016069;
 Fri, 30 Mar 2018 19:49:35 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301949.w2UJnZ57016069@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:49:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331824 - head/sys/dev/mlx5/mlx5_core
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_core
X-SVN-Commit-Revision: 331824
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:49:36 -0000

Author: hselasky
Date: Fri Mar 30 19:49:35 2018
New Revision: 331824
URL: https://svnweb.freebsd.org/changeset/base/331824

Log:
  Make sure Giant is locked when allocating bus resources in mlx5core.
  
  During health care IRQ resources will be reallocated.
  Newbus requires that Giant is locked before accessing
  these resources.
  
  MFC after:	3 days
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/mlx5/mlx5_core/mlx5_health.c

Modified: head/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:48:25 2018	(r331823)
+++ head/sys/dev/mlx5/mlx5_core/mlx5_health.c	Fri Mar 30 19:49:35 2018	(r331824)
@@ -300,6 +300,8 @@ static void health_recover(struct work_struct *work)
 	priv = container_of(health, struct mlx5_priv, health);
 	dev = container_of(priv, struct mlx5_core_dev, priv);
 
+	mtx_lock(&Giant);	/* XXX newbus needs this */
+
 	if (sensor_pci_no_comm(dev)) {
 		dev_err(&dev->pdev->dev, "health recovery flow aborted, PCI reads still not working\n");
 		recover = false;
@@ -322,6 +324,8 @@ static void health_recover(struct work_struct *work)
 		dev_err(&dev->pdev->dev, "starting health recovery flow\n");
 		mlx5_recover_device(dev);
 	}
+
+	mtx_unlock(&Giant);
 }
 
 /* How much time to wait until health resetting the driver (in msecs) */

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:50:46 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20569F60539;
 Fri, 30 Mar 2018 19:50:46 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id CAE737C74F;
 Fri, 30 Mar 2018 19:50:45 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C5D195698;
 Fri, 30 Mar 2018 19:50:45 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJojNL016180;
 Fri, 30 Mar 2018 19:50:45 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJojYe016179;
 Fri, 30 Mar 2018 19:50:45 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301950.w2UJojYe016179@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:50:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331825 - head/sys/dev/mlx5/mlx5_core
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_core
X-SVN-Commit-Revision: 331825
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:50:46 -0000

Author: hselasky
Date: Fri Mar 30 19:50:45 2018
New Revision: 331825
URL: https://svnweb.freebsd.org/changeset/base/331825

Log:
  Fix for use after free in mlx5core.
  
  Make sure the command completion handler is not called when the device is
  in internal error state. This can easily trigger use after free situations.
  
  MFC after:	3 days
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/mlx5/mlx5_core/mlx5_eq.c

Modified: head/sys/dev/mlx5/mlx5_core/mlx5_eq.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_core/mlx5_eq.c	Fri Mar 30 19:49:35 2018	(r331824)
+++ head/sys/dev/mlx5/mlx5_core/mlx5_eq.c	Fri Mar 30 19:50:45 2018	(r331825)
@@ -254,7 +254,8 @@ static int mlx5_eq_int(struct mlx5_core_dev *dev, stru
 			break;
 
 		case MLX5_EVENT_TYPE_CMD:
-			mlx5_cmd_comp_handler(dev, be32_to_cpu(eqe->data.cmd.vector));
+			if (dev->state != MLX5_DEVICE_STATE_INTERNAL_ERROR)
+				mlx5_cmd_comp_handler(dev, be32_to_cpu(eqe->data.cmd.vector));
 			break;
 
 		case MLX5_EVENT_TYPE_PORT_CHANGE:

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:55:32 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 47893F60D71;
 Fri, 30 Mar 2018 19:55:32 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id EA8327CC82;
 Fri, 30 Mar 2018 19:55:31 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E542E5819;
 Fri, 30 Mar 2018 19:55:31 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJtVpF020752;
 Fri, 30 Mar 2018 19:55:31 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJtVrH020751;
 Fri, 30 Mar 2018 19:55:31 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301955.w2UJtVrH020751@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:55:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331826 - head/sys/dev/mlx5/mlx5_core
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/dev/mlx5/mlx5_core
X-SVN-Commit-Revision: 331826
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:55:32 -0000

Author: hselasky
Date: Fri Mar 30 19:55:31 2018
New Revision: 331826
URL: https://svnweb.freebsd.org/changeset/base/331826

Log:
  Bump mlx5core driver version.
  
  MFC after:	3 days
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/mlx5/mlx5_core/mlx5_core.h

Modified: head/sys/dev/mlx5/mlx5_core/mlx5_core.h
==============================================================================
--- head/sys/dev/mlx5/mlx5_core/mlx5_core.h	Fri Mar 30 19:50:45 2018	(r331825)
+++ head/sys/dev/mlx5/mlx5_core/mlx5_core.h	Fri Mar 30 19:55:31 2018	(r331826)
@@ -33,8 +33,10 @@
 #include 
 
 #define DRIVER_NAME "mlx5_core"
-#define DRIVER_VERSION "1.23.0 (03 Mar 2015)"
-#define DRIVER_RELDATE "03 Mar 2015"
+#ifndef DRIVER_VERSION
+#define DRIVER_VERSION "3.4.1"
+#endif
+#define DRIVER_RELDATE "February 2018"
 
 extern int mlx5_core_debug_mask;
 

From owner-svn-src-all@freebsd.org  Fri Mar 30 19:58:58 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D43EBF631CA;
 Fri, 30 Mar 2018 19:58:58 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 84D0A7CEEA;
 Fri, 30 Mar 2018 19:58:58 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7F481581D;
 Fri, 30 Mar 2018 19:58:58 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UJwwbf020899;
 Fri, 30 Mar 2018 19:58:58 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UJwwrl020898;
 Fri, 30 Mar 2018 19:58:58 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803301958.w2UJwwrl020898@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 19:58:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331827 - head/sys/dev/mlx5
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: head/sys/dev/mlx5
X-SVN-Commit-Revision: 331827
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 19:58:59 -0000

Author: hselasky
Date: Fri Mar 30 19:58:58 2018
New Revision: 331827
URL: https://svnweb.freebsd.org/changeset/base/331827

Log:
  Remove unused structure field in mlx5core.
  
  MFC after:	3 days
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/dev/mlx5/driver.h

Modified: head/sys/dev/mlx5/driver.h
==============================================================================
--- head/sys/dev/mlx5/driver.h	Fri Mar 30 19:55:31 2018	(r331826)
+++ head/sys/dev/mlx5/driver.h	Fri Mar 30 19:58:58 2018	(r331827)
@@ -371,7 +371,6 @@ struct mlx5_cmd {
 	struct cmd_msg_cache cache;
 	int checksum_disabled;
 	struct mlx5_cmd_stats stats[MLX5_CMD_OP_MAX];
-	int moving_to_polling;
 };
 
 struct mlx5_port_caps {

From owner-svn-src-all@freebsd.org  Fri Mar 30 20:11:13 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AE7ACF64030;
 Fri, 30 Mar 2018 20:11:13 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 5CE3E7D6FF;
 Fri, 30 Mar 2018 20:11:13 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 57BDC59E5;
 Fri, 30 Mar 2018 20:11:13 +0000 (UTC)
 (envelope-from hselasky@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UKBD2O029564;
 Fri, 30 Mar 2018 20:11:13 GMT (envelope-from hselasky@FreeBSD.org)
Received: (from hselasky@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UKBC8q029559;
 Fri, 30 Mar 2018 20:11:12 GMT (envelope-from hselasky@FreeBSD.org)
Message-Id: <201803302011.w2UKBC8q029559@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: hselasky set sender to
 hselasky@FreeBSD.org using -f
From: Hans Petter Selasky 
Date: Fri, 30 Mar 2018 20:11:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331828 - in head/sys/compat/linuxkpi/common:
 include/linux src
X-SVN-Group: head
X-SVN-Commit-Author: hselasky
X-SVN-Commit-Paths: in head/sys/compat/linuxkpi/common: include/linux src
X-SVN-Commit-Revision: 331828
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 20:11:14 -0000

Author: hselasky
Date: Fri Mar 30 20:11:12 2018
New Revision: 331828
URL: https://svnweb.freebsd.org/changeset/base/331828

Log:
  Optimise use of Giant in the LinuxKPI.
  
  - Make sure Giant is locked when calling PCI device methods.
  Newbus currently requires this.
  
  - Avoid unlocking Giant right before aquiring the sleepqueue lock.
  This can save a task switch.
  
  MFC after:	1 week
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/compat/linuxkpi/common/include/linux/module.h
  head/sys/compat/linuxkpi/common/src/linux_compat.c
  head/sys/compat/linuxkpi/common/src/linux_pci.c
  head/sys/compat/linuxkpi/common/src/linux_rcu.c
  head/sys/compat/linuxkpi/common/src/linux_schedule.c

Modified: head/sys/compat/linuxkpi/common/include/linux/module.h
==============================================================================
--- head/sys/compat/linuxkpi/common/include/linux/module.h	Fri Mar 30 19:58:58 2018	(r331827)
+++ head/sys/compat/linuxkpi/common/include/linux/module.h	Fri Mar 30 20:11:12 2018	(r331828)
@@ -78,9 +78,7 @@ _module_run(void *arg)
 		printf("Running %s (%p)\n", name, pc);
 #endif
 	fn = arg;
-	DROP_GIANT();
 	fn();
-	PICKUP_GIANT();
 }
 
 #define	module_init(fn)							\

Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c
==============================================================================
--- head/sys/compat/linuxkpi/common/src/linux_compat.c	Fri Mar 30 19:58:58 2018	(r331827)
+++ head/sys/compat/linuxkpi/common/src/linux_compat.c	Fri Mar 30 20:11:12 2018	(r331828)
@@ -1804,8 +1804,6 @@ linux_wait_for_common(struct completion *c, int flags)
 	if (SCHEDULER_STOPPED())
 		return (0);
 
-	DROP_GIANT();
-
 	task = current;
 
 	if (flags != 0)
@@ -1819,22 +1817,25 @@ linux_wait_for_common(struct completion *c, int flags)
 			break;
 		sleepq_add(c, NULL, "completion", flags, 0);
 		if (flags & SLEEPQ_INTERRUPTIBLE) {
+			DROP_GIANT();
 			error = -sleepq_wait_sig(c, 0);
+			PICKUP_GIANT();
 			if (error != 0) {
 				linux_schedule_save_interrupt_value(task, error);
 				error = -ERESTARTSYS;
 				goto intr;
 			}
-		} else
+		} else {
+			DROP_GIANT();
 			sleepq_wait(c, 0);
+			PICKUP_GIANT();
+		}
 	}
 	if (c->done != UINT_MAX)
 		c->done--;
 	sleepq_release(c);
 
 intr:
-	PICKUP_GIANT();
-
 	return (error);
 }
 
@@ -1851,8 +1852,6 @@ linux_wait_for_timeout_common(struct completion *c, in
 	if (SCHEDULER_STOPPED())
 		return (0);
 
-	DROP_GIANT();
-
 	task = current;
 
 	if (flags != 0)
@@ -1866,10 +1865,14 @@ linux_wait_for_timeout_common(struct completion *c, in
 			break;
 		sleepq_add(c, NULL, "completion", flags, 0);
 		sleepq_set_timeout(c, linux_timer_jiffies_until(end));
+
+		DROP_GIANT();
 		if (flags & SLEEPQ_INTERRUPTIBLE)
 			error = -sleepq_timedwait_sig(c, 0);
 		else
 			error = -sleepq_timedwait(c, 0);
+		PICKUP_GIANT();
+
 		if (error != 0) {
 			/* check for timeout */
 			if (error == -EWOULDBLOCK) {
@@ -1889,8 +1892,6 @@ linux_wait_for_timeout_common(struct completion *c, in
 	/* return how many jiffies are left */
 	error = linux_timer_jiffies_until(end);
 done:
-	PICKUP_GIANT();
-
 	return (error);
 }
 

Modified: head/sys/compat/linuxkpi/common/src/linux_pci.c
==============================================================================
--- head/sys/compat/linuxkpi/common/src/linux_pci.c	Fri Mar 30 19:58:58 2018	(r331827)
+++ head/sys/compat/linuxkpi/common/src/linux_pci.c	Fri Mar 30 20:11:12 2018	(r331828)
@@ -171,12 +171,11 @@ linux_pci_attach(device_t dev)
 		pdev->bus = pbus;
 	}
 
-	DROP_GIANT();
 	spin_lock(&pci_lock);
 	list_add(&pdev->links, &pci_devices);
 	spin_unlock(&pci_lock);
+
 	error = pdrv->probe(pdev, id);
-	PICKUP_GIANT();
 	if (error) {
 		spin_lock(&pci_lock);
 		list_del(&pdev->links);
@@ -194,9 +193,9 @@ linux_pci_detach(device_t dev)
 
 	linux_set_current(curthread);
 	pdev = device_get_softc(dev);
-	DROP_GIANT();
+
 	pdev->pdrv->remove(pdev);
-	PICKUP_GIANT();
+
 	spin_lock(&pci_lock);
 	list_del(&pdev->links);
 	spin_unlock(&pci_lock);
@@ -258,11 +257,8 @@ linux_pci_shutdown(device_t dev)
 
 	linux_set_current(curthread);
 	pdev = device_get_softc(dev);
-	if (pdev->pdrv->shutdown != NULL) {
-		DROP_GIANT();
+	if (pdev->pdrv->shutdown != NULL)
 		pdev->pdrv->shutdown(pdev);
-		PICKUP_GIANT();
-	}
 	return (0);
 }
 

Modified: head/sys/compat/linuxkpi/common/src/linux_rcu.c
==============================================================================
--- head/sys/compat/linuxkpi/common/src/linux_rcu.c	Fri Mar 30 19:58:58 2018	(r331827)
+++ head/sys/compat/linuxkpi/common/src/linux_rcu.c	Fri Mar 30 20:11:12 2018	(r331828)
@@ -297,13 +297,13 @@ linux_synchronize_rcu(void)
 
 	td = curthread;
 
-	DROP_GIANT();
-
 	/*
 	 * Synchronizing RCU might change the CPU core this function
 	 * is running on. Save current values:
 	 */
 	thread_lock(td);
+
+	DROP_GIANT();
 
 	old_cpu = PCPU_GET(cpuid);
 	old_pinned = td->td_pinned;

Modified: head/sys/compat/linuxkpi/common/src/linux_schedule.c
==============================================================================
--- head/sys/compat/linuxkpi/common/src/linux_schedule.c	Fri Mar 30 19:58:58 2018	(r331827)
+++ head/sys/compat/linuxkpi/common/src/linux_schedule.c	Fri Mar 30 20:11:12 2018	(r331828)
@@ -55,6 +55,8 @@ linux_add_to_sleepqueue(void *wchan, struct task_struc
 	sleepq_add(wchan, NULL, wmesg, flags, 0);
 	if (timeout != 0)
 		sleepq_set_timeout(wchan, timeout);
+
+	DROP_GIANT();
 	if ((state & TASK_INTERRUPTIBLE) != 0) {
 		if (timeout == 0)
 			ret = -sleepq_wait_sig(wchan, 0);
@@ -67,6 +69,8 @@ linux_add_to_sleepqueue(void *wchan, struct task_struc
 		} else
 			ret = -sleepq_timedwait(wchan, 0);
 	}
+	PICKUP_GIANT();
+
 	/* filter return value */
 	if (ret != 0 && ret != -EWOULDBLOCK) {
 		linux_schedule_save_interrupt_value(task, ret);
@@ -248,8 +252,6 @@ linux_wait_event_common(wait_queue_head_t *wqh, wait_q
 	if (lock != NULL)
 		spin_unlock_irq(lock);
 
-	DROP_GIANT();
-
 	/* range check timeout */
 	if (timeout < 1)
 		timeout = 1;
@@ -272,8 +274,6 @@ linux_wait_event_common(wait_queue_head_t *wqh, wait_q
 	}
 	PRELE(task->task_thread->td_proc);
 
-	PICKUP_GIANT();
-
 	if (lock != NULL)
 		spin_lock_irq(lock);
 	return (ret);
@@ -297,8 +297,6 @@ linux_schedule_timeout(int timeout)
 
 	remainder = ticks + timeout;
 
-	DROP_GIANT();
-
 	sleepq_lock(task);
 	state = atomic_read(&task->state);
 	if (state != TASK_WAKING) {
@@ -309,8 +307,6 @@ linux_schedule_timeout(int timeout)
 	}
 	set_task_state(task, TASK_RUNNING);
 
-	PICKUP_GIANT();
-
 	if (timeout == 0)
 		return (MAX_SCHEDULE_TIMEOUT);
 
@@ -356,8 +352,6 @@ linux_wait_on_bit_timeout(unsigned long *word, int bit
 	void *wchan;
 	int ret;
 
-	DROP_GIANT();
-
 	/* range check timeout */
 	if (timeout < 1)
 		timeout = 1;
@@ -380,8 +374,6 @@ linux_wait_on_bit_timeout(unsigned long *word, int bit
 	}
 	set_task_state(task, TASK_RUNNING);
 
-	PICKUP_GIANT();
-
 	return (ret);
 }
 
@@ -399,8 +391,6 @@ linux_wait_on_atomic_t(atomic_t *a, unsigned int state
 	void *wchan;
 	int ret;
 
-	DROP_GIANT();
-
 	task = current;
 	wchan = a;
 	for (;;) {
@@ -416,8 +406,6 @@ linux_wait_on_atomic_t(atomic_t *a, unsigned int state
 			break;
 	}
 	set_task_state(task, TASK_RUNNING);
-
-	PICKUP_GIANT();
 
 	return (ret);
 }

From owner-svn-src-all@freebsd.org  Fri Mar 30 20:24:30 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 53F1FF64FAC;
 Fri, 30 Mar 2018 20:24:30 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 017957E012;
 Fri, 30 Mar 2018 20:24:30 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F04FB5CEA;
 Fri, 30 Mar 2018 20:24:29 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UKOTX6036281;
 Fri, 30 Mar 2018 20:24:29 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UKOTvH036277;
 Fri, 30 Mar 2018 20:24:29 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803302024.w2UKOTvH036277@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Fri, 30 Mar 2018 20:24:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331829 - in head/sys/dev: ex ixgb nxge vxge
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in head/sys/dev: ex ixgb nxge vxge
X-SVN-Commit-Revision: 331829
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 20:24:30 -0000

Author: brooks
Date: Fri Mar 30 20:24:29 2018
New Revision: 331829
URL: https://svnweb.freebsd.org/changeset/base/331829

Log:
  Fall back to ether_ioctl() by default.
  
  The common pratice in ethernet device drivers is to fall back to
  ether_ioctl() to implement generic ioctls not implemented by the driver
  and to fail if no handler exists.
  
  Convert these drivers to follow that practice rather than calling
  ether_ioctl() for specific cases.
  
  vxge(4) aready had the default case, but it was only called on failure
  to match.
  
  Reviewed by:	imp
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14895

Modified:
  head/sys/dev/ex/if_ex.c
  head/sys/dev/ixgb/if_ixgb.c
  head/sys/dev/nxge/if_nxge.c
  head/sys/dev/vxge/vxge.c

Modified: head/sys/dev/ex/if_ex.c
==============================================================================
--- head/sys/dev/ex/if_ex.c	Fri Mar 30 20:11:12 2018	(r331828)
+++ head/sys/dev/ex/if_ex.c	Fri Mar 30 20:24:29 2018	(r331829)
@@ -823,12 +823,6 @@ ex_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 	DODEBUG(Start_End, printf("%s: ex_ioctl: start ", ifp->if_xname););
 
 	switch(cmd) {
-		case SIOCSIFADDR:
-		case SIOCGIFADDR:
-		case SIOCSIFMTU:
-			error = ether_ioctl(ifp, cmd, data);
-			break;
-
 		case SIOCSIFFLAGS:
 			DODEBUG(Start_End, printf("SIOCSIFFLAGS"););
 			EX_LOCK(sc);
@@ -850,8 +844,8 @@ ex_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 			error = ifmedia_ioctl(ifp, ifr, &sc->ifmedia, cmd);
 			break;
 		default:
-			DODEBUG(Start_End, printf("unknown"););
-			error = EINVAL;
+			error = ether_ioctl(ifp, cmd, data);
+			break;
 	}
 
 	DODEBUG(Start_End, printf("\n%s: ex_ioctl: finish\n", ifp->if_xname););

Modified: head/sys/dev/ixgb/if_ixgb.c
==============================================================================
--- head/sys/dev/ixgb/if_ixgb.c	Fri Mar 30 20:11:12 2018	(r331828)
+++ head/sys/dev/ixgb/if_ixgb.c	Fri Mar 30 20:24:29 2018	(r331829)
@@ -525,11 +525,6 @@ ixgb_ioctl(struct ifnet * ifp, IOCTL_CMD_TYPE command,
 		goto out;
 
 	switch (command) {
-	case SIOCSIFADDR:
-	case SIOCGIFADDR:
-		IOCTL_DEBUGOUT("ioctl rcv'd: SIOCxIFADDR (Get/Set Interface Addr)");
-		ether_ioctl(ifp, command, data);
-		break;
 	case SIOCSIFMTU:
 		IOCTL_DEBUGOUT("ioctl rcv'd: SIOCSIFMTU (Set Interface MTU)");
 		if (ifr->ifr_mtu > IXGB_MAX_JUMBO_FRAME_SIZE - ETHER_HDR_LEN) {
@@ -610,8 +605,8 @@ ixgb_ioctl(struct ifnet * ifp, IOCTL_CMD_TYPE command,
 		}
 		break;
 	default:
-		IOCTL_DEBUGOUT1("ioctl received: UNKNOWN (0x%X)\n", (int)command);
-		error = EINVAL;
+		error = ether_ioctl(ifp, command, data);
+		break;
 	}
 
 out:

Modified: head/sys/dev/nxge/if_nxge.c
==============================================================================
--- head/sys/dev/nxge/if_nxge.c	Fri Mar 30 20:11:12 2018	(r331828)
+++ head/sys/dev/nxge/if_nxge.c	Fri Mar 30 20:24:29 2018	(r331829)
@@ -1623,12 +1623,6 @@ xge_ioctl(struct ifnet *ifnetp, unsigned long command,
 	}
 
 	switch(command) {
-	    /* Set/Get ifnet address */
-	    case SIOCSIFADDR:
-	    case SIOCGIFADDR:
-	        ether_ioctl(ifnetp, command, data);
-	        break;
-
 	    /* Set ifnet MTU */
 	    case SIOCSIFMTU:
 	        retValue = xge_change_mtu(lldev, ifreqp->ifr_mtu);
@@ -1713,7 +1707,7 @@ xge_ioctl(struct ifnet *ifnetp, unsigned long command,
 	        break;
 
 	    default:
-	        retValue = EINVAL;
+	        retValue = ether_ioctl(ifnetp, command, data);
 	        break;
 	}
 	return retValue;

Modified: head/sys/dev/vxge/vxge.c
==============================================================================
--- head/sys/dev/vxge/vxge.c	Fri Mar 30 20:11:12 2018	(r331828)
+++ head/sys/dev/vxge/vxge.c	Fri Mar 30 20:24:29 2018	(r331829)
@@ -3573,12 +3573,6 @@ vxge_ioctl(ifnet_t ifp, u_long command, caddr_t data)
 		return (EBUSY);
 
 	switch (command) {
-		/* Set/Get ifnet address */
-	case SIOCSIFADDR:
-	case SIOCGIFADDR:
-		ether_ioctl(ifp, command, data);
-		break;
-
 		/* Set Interface MTU */
 	case SIOCSIFMTU:
 		err = vxge_change_mtu(vdev, (unsigned long)ifr->ifr_mtu);

From owner-svn-src-all@freebsd.org  Fri Mar 30 20:27:48 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15E88F66344;
 Fri, 30 Mar 2018 20:27:48 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B61F37E222;
 Fri, 30 Mar 2018 20:27:47 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A59EC5CEF;
 Fri, 30 Mar 2018 20:27:47 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UKRlLw036555;
 Fri, 30 Mar 2018 20:27:47 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UKRl81036549;
 Fri, 30 Mar 2018 20:27:47 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803302027.w2UKRl81036549@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Fri, 30 Mar 2018 20:27:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331830 - in head: share/man/man4 sys/dev/cm sys/dev/pdq
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in head: share/man/man4 sys/dev/cm sys/dev/pdq
X-SVN-Commit-Revision: 331830
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 20:27:48 -0000

Author: brooks
Date: Fri Mar 30 20:27:47 2018
New Revision: 331830
URL: https://svnweb.freebsd.org/changeset/base/331830

Log:
  Add deprecation notices for Arcnet and FDDI drivers.
  
  We intend to remove support before FreeBSD 12 is branched.
  
  Reviewed by:	imp, emaste
  MFC after:	3 days
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14890

Modified:
  head/share/man/man4/cm.4
  head/share/man/man4/fpa.4
  head/sys/dev/cm/if_cm_isa.c
  head/sys/dev/pdq/if_fpa.c

Modified: head/share/man/man4/cm.4
==============================================================================
--- head/share/man/man4/cm.4	Fri Mar 30 20:24:29 2018	(r331829)
+++ head/share/man/man4/cm.4	Fri Mar 30 20:27:47 2018	(r331830)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd July 16, 2005
+.Dd March 29, 2018
 .Dt CM 4
 .Os
 .Sh NAME
@@ -46,6 +46,12 @@ module at boot time, place the following line in
 .Bd -literal -offset indent
 if_cm_load="YES"
 .Ed
+.Sh DEPRECATION NOTICE
+The
+.Nm
+driver is not present in
+.Fx 12.0
+and later.
 .Sh DESCRIPTION
 The
 .Nm

Modified: head/share/man/man4/fpa.4
==============================================================================
--- head/share/man/man4/fpa.4	Fri Mar 30 20:24:29 2018	(r331829)
+++ head/share/man/man4/fpa.4	Fri Mar 30 20:27:47 2018	(r331830)
@@ -4,7 +4,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd February 15, 2017
+.Dd March 29, 2018
 .Dt FPA 4
 .Os
 .Sh NAME
@@ -16,6 +16,12 @@
 .Fx
 only:
 .Cd "device fddi"
+.Sh DEPRECATION NOTICE
+The
+.Nm
+driver is not present in
+.Fx 12.0
+and later.
 .Sh DESCRIPTION
 The
 .Nm

Modified: head/sys/dev/cm/if_cm_isa.c
==============================================================================
--- head/sys/dev/cm/if_cm_isa.c	Fri Mar 30 20:24:29 2018	(r331829)
+++ head/sys/dev/cm/if_cm_isa.c	Fri Mar 30 20:27:47 2018	(r331830)
@@ -113,6 +113,7 @@ cm_isa_attach(dev)
 	if (error)
 		goto err;
 
+	gone_in_dev(dev, 12, "cm(4) driver");
 	return 0;
 
 err:

Modified: head/sys/dev/pdq/if_fpa.c
==============================================================================
--- head/sys/dev/pdq/if_fpa.c	Fri Mar 30 20:24:29 2018	(r331829)
+++ head/sys/dev/pdq/if_fpa.c	Fri Mar 30 20:27:47 2018	(r331830)
@@ -158,6 +158,7 @@ pdq_pci_attach(device_t dev)
     }
 
 
+    gone_in_dev(dev, 12, "fpa(4) driver");
     return (0);
 bad:
     pdq_free(dev);

From owner-svn-src-all@freebsd.org  Fri Mar 30 21:13:34 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AB675F6AA02;
 Fri, 30 Mar 2018 21:13:34 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 29CF280454;
 Fri, 30 Mar 2018 21:13:33 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2ULDNdl070087;
 Fri, 30 Mar 2018 14:13:23 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2ULDMbv070086;
 Fri, 30 Mar 2018 14:13:22 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803302113.w2ULDMbv070086@pdx.rh.CN85.dnsmgr.net>
Subject: Re: svn commit: r331830 - in head: share/man/man4 sys/dev/cm
 sys/dev/pdq
In-Reply-To: <201803302027.w2UKRl81036549@repo.freebsd.org>
To: Brooks Davis 
Date: Fri, 30 Mar 2018 14:13:22 -0700 (PDT)
CC: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 21:13:34 -0000

> Author: brooks
> Date: Fri Mar 30 20:27:47 2018
> New Revision: 331830
> URL: https://svnweb.freebsd.org/changeset/base/331830
> 
> Log:
>   Add deprecation notices for Arcnet and FDDI drivers.
>   
>   We intend to remove support before FreeBSD 12 is branched.
>   
>   Reviewed by:	imp, emaste
>   MFC after:	3 days
>   Sponsored by:	DARPA, AFRL
>   Differential Revision:	https://reviews.freebsd.org/D14890
> 
> Modified:
>   head/share/man/man4/cm.4
>   head/share/man/man4/fpa.4
>   head/sys/dev/cm/if_cm_isa.c
>   head/sys/dev/pdq/if_fpa.c

There is still an if_fea.c, which is also an FDDI driver, in the
11.1 src tree.
Not sure what happened to it in ^head, as it seems missing.

You'll probably need to make a direct commit to add a
+    gone_in_dev(dev, 12, "fea(4) driver");

Thanks,
Rod

> 
> Modified: head/share/man/man4/cm.4
> ==============================================================================
> --- head/share/man/man4/cm.4	Fri Mar 30 20:24:29 2018	(r331829)
> +++ head/share/man/man4/cm.4	Fri Mar 30 20:27:47 2018	(r331830)
> @@ -25,7 +25,7 @@
>  .\"
>  .\" $FreeBSD$
>  .\"
> -.Dd July 16, 2005
> +.Dd March 29, 2018
>  .Dt CM 4
>  .Os
>  .Sh NAME
> @@ -46,6 +46,12 @@ module at boot time, place the following line in
>  .Bd -literal -offset indent
>  if_cm_load="YES"
>  .Ed
> +.Sh DEPRECATION NOTICE
> +The
> +.Nm
> +driver is not present in
> +.Fx 12.0
> +and later.
>  .Sh DESCRIPTION
>  The
>  .Nm
> 
> Modified: head/share/man/man4/fpa.4
> ==============================================================================
> --- head/share/man/man4/fpa.4	Fri Mar 30 20:24:29 2018	(r331829)
> +++ head/share/man/man4/fpa.4	Fri Mar 30 20:27:47 2018	(r331830)
> @@ -4,7 +4,7 @@
>  .\"
>  .\" $FreeBSD$
>  .\"
> -.Dd February 15, 2017
> +.Dd March 29, 2018
>  .Dt FPA 4
>  .Os
>  .Sh NAME
> @@ -16,6 +16,12 @@
>  .Fx
>  only:
>  .Cd "device fddi"
> +.Sh DEPRECATION NOTICE
> +The
> +.Nm
> +driver is not present in
> +.Fx 12.0
> +and later.
>  .Sh DESCRIPTION
>  The
>  .Nm
> 
> Modified: head/sys/dev/cm/if_cm_isa.c
> ==============================================================================
> --- head/sys/dev/cm/if_cm_isa.c	Fri Mar 30 20:24:29 2018	(r331829)
> +++ head/sys/dev/cm/if_cm_isa.c	Fri Mar 30 20:27:47 2018	(r331830)
> @@ -113,6 +113,7 @@ cm_isa_attach(dev)
>  	if (error)
>  		goto err;
>  
> +	gone_in_dev(dev, 12, "cm(4) driver");
>  	return 0;
>  
>  err:
> 
> Modified: head/sys/dev/pdq/if_fpa.c
> ==============================================================================
> --- head/sys/dev/pdq/if_fpa.c	Fri Mar 30 20:24:29 2018	(r331829)
> +++ head/sys/dev/pdq/if_fpa.c	Fri Mar 30 20:27:47 2018	(r331830)
> @@ -158,6 +158,7 @@ pdq_pci_attach(device_t dev)
>      }
>  
>  
> +    gone_in_dev(dev, 12, "fpa(4) driver");
>      return (0);
>  bad:
>      pdq_free(dev);
> 
> 

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Fri Mar 30 21:38:54 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6ED15F6C53A;
 Fri, 30 Mar 2018 21:38:54 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 159E081700;
 Fri, 30 Mar 2018 21:38:54 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D11F684B;
 Fri, 30 Mar 2018 21:38:54 +0000 (UTC)
 (envelope-from brooks@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2ULcrKe072846;
 Fri, 30 Mar 2018 21:38:53 GMT (envelope-from brooks@FreeBSD.org)
Received: (from brooks@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2ULcrjl072844;
 Fri, 30 Mar 2018 21:38:53 GMT (envelope-from brooks@FreeBSD.org)
Message-Id: <201803302138.w2ULcrjl072844@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: brooks set sender to
 brooks@FreeBSD.org using -f
From: Brooks Davis 
Date: Fri, 30 Mar 2018 21:38:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331831 - in head/sys: net netinet6
X-SVN-Group: head
X-SVN-Commit-Author: brooks
X-SVN-Commit-Paths: in head/sys: net netinet6
X-SVN-Commit-Revision: 331831
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 21:38:54 -0000

Author: brooks
Date: Fri Mar 30 21:38:53 2018
New Revision: 331831
URL: https://svnweb.freebsd.org/changeset/base/331831

Log:
  Document and enforce assumptions about struct (in6_)ifreq.
  
  - The two types must be type-punnable for shared members of ifr_ifru.
    This allows compatibility accessors to be shared.
  
  - There must be no padding gap between ifr_name and ifr_ifru.  This is
    assumed in tcpdump's use of SIOCGIFFLAGS output which attempts to be
    broadly portable.  This is true for all current architectures, but very
    large (256-bit) fat-pointers could violate this invariant.
  
  Reviewed by:	kib
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14910

Modified:
  head/sys/net/if.c
  head/sys/netinet6/in6.c

Modified: head/sys/net/if.c
==============================================================================
--- head/sys/net/if.c	Fri Mar 30 20:27:47 2018	(r331830)
+++ head/sys/net/if.c	Fri Mar 30 21:38:53 2018	(r331831)
@@ -97,6 +97,13 @@
 
 #include 
 
+/*
+ * Consumers of struct ifreq such as tcpdump assume no pad between ifr_name
+ * and ifr_ifru when it is used in SIOCGIFCONF.
+ */
+_Static_assert(sizeof(((struct ifreq *)0)->ifr_name) ==
+    offsetof(struct ifreq, ifr_ifru), "gap between ifr_name and ifr_ifru");
+
 #ifdef COMPAT_FREEBSD32
 #include 
 #include 

Modified: head/sys/netinet6/in6.c
==============================================================================
--- head/sys/netinet6/in6.c	Fri Mar 30 20:27:47 2018	(r331830)
+++ head/sys/netinet6/in6.c	Fri Mar 30 21:38:53 2018	(r331831)
@@ -112,6 +112,14 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
+/*
+ * struct in6_ifreq and struct ifreq must be type punnable for common members
+ * of ifr_ifru to allow accessors to be shared.
+ */
+_Static_assert(offsetof(struct in6_ifreq, ifr_ifru) ==
+    offsetof(struct ifreq, ifr_ifru),
+    "struct in6_ifreq and struct ifreq are not type punnable");
+
 VNET_DECLARE(int, icmp6_nodeinfo_oldmcprefix);
 #define V_icmp6_nodeinfo_oldmcprefix	VNET(icmp6_nodeinfo_oldmcprefix)
 

From owner-svn-src-all@freebsd.org  Fri Mar 30 21:41:16 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 018FFF6C9F6;
 Fri, 30 Mar 2018 21:41:16 +0000 (UTC)
 (envelope-from brooks@spindle.one-eyed-alien.net)
Received: from spindle.one-eyed-alien.net (spindle.one-eyed-alien.net
 [199.48.129.229])
 (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 C6B4E81ACB;
 Fri, 30 Mar 2018 21:41:15 +0000 (UTC)
 (envelope-from brooks@spindle.one-eyed-alien.net)
Received: by spindle.one-eyed-alien.net (Postfix, from userid 3001)
 id CDBF25A9F17; Fri, 30 Mar 2018 21:41:14 +0000 (UTC)
Date: Fri, 30 Mar 2018 21:41:14 +0000
From: Brooks Davis 
To: rgrimes@freebsd.org
Cc: Brooks Davis , src-committers@freebsd.org,
 svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject: Re: svn commit: r331830 - in head: share/man/man4 sys/dev/cm
 sys/dev/pdq
Message-ID: <20180330214114.GA53770@spindle.one-eyed-alien.net>
References: <201803302027.w2UKRl81036549@repo.freebsd.org>
 <201803302113.w2ULDMbv070086@pdx.rh.CN85.dnsmgr.net>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
 protocol="application/pgp-signature"; boundary="Q68bSM7Ycu6FN28Q"
Content-Disposition: inline
In-Reply-To: <201803302113.w2ULDMbv070086@pdx.rh.CN85.dnsmgr.net>
User-Agent: Mutt/1.9.4 (2018-02-28)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 21:41:16 -0000


--Q68bSM7Ycu6FN28Q
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Mar 30, 2018 at 02:13:22PM -0700, Rodney W. Grimes wrote:
> > Author: brooks
> > Date: Fri Mar 30 20:27:47 2018
> > New Revision: 331830
> > URL: https://svnweb.freebsd.org/changeset/base/331830
> >=20
> > Log:
> >   Add deprecation notices for Arcnet and FDDI drivers.
> >  =20
> >   We intend to remove support before FreeBSD 12 is branched.
> >  =20
> >   Reviewed by:	imp, emaste
> >   MFC after:	3 days
> >   Sponsored by:	DARPA, AFRL
> >   Differential Revision:	https://reviews.freebsd.org/D14890
> >=20
> > Modified:
> >   head/share/man/man4/cm.4
> >   head/share/man/man4/fpa.4
> >   head/sys/dev/cm/if_cm_isa.c
> >   head/sys/dev/pdq/if_fpa.c
>=20
> There is still an if_fea.c, which is also an FDDI driver, in the
> 11.1 src tree.
> Not sure what happened to it in ^head, as it seems missing.

It went away with EISA support.

> You'll probably need to make a direct commit to add a
> +    gone_in_dev(dev, 12, "fea(4) driver");

Thanks for the reminder, I'll do that now.

-- Brooks

--Q68bSM7Ycu6FN28Q
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBAgAGBQJavq76AAoJEKzQXbSebgfAuoAIAIgrSi5WEIETc14j5JhEWOBR
YwPElGM48tkhjsjZOselWF5oQNNmYHDL0AI+WM+tN4o0Ek/+FU/A6/Q641lY7A0Q
9ax1u/94ykQU9Dm6JckuHqtcghwhBD9ivIhPZxB1C9Y8v2HOU1CB5AY/oLepXmr3
QkmsqPAWTorXtVvG5kuLfZPwifnaNxGn8UUd45+sDkqOm4Umn4AvPxlcn/9pZ2wP
eJOvewthOIl+PZbjYorSDFQDjdZsyxao8OlqF3m63Tm/SI8khNGkxe9PGnrAPzUB
ExItm60xGt8DJFGsv5K8FMbnM+BprPZjBTLkqVDl22pevL3s4V5iCzCi1lrMkwA=
=I36g
-----END PGP SIGNATURE-----

--Q68bSM7Ycu6FN28Q--

From owner-svn-src-all@freebsd.org  Fri Mar 30 23:31:10 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1D5F6F7359D;
 Fri, 30 Mar 2018 23:31:10 +0000 (UTC)
 (envelope-from gonzo@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id C36A6856DE;
 Fri, 30 Mar 2018 23:31:09 +0000 (UTC)
 (envelope-from gonzo@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BE4E37A49;
 Fri, 30 Mar 2018 23:31:09 +0000 (UTC)
 (envelope-from gonzo@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2UNV99x030409;
 Fri, 30 Mar 2018 23:31:09 GMT (envelope-from gonzo@FreeBSD.org)
Received: (from gonzo@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2UNV83f030402;
 Fri, 30 Mar 2018 23:31:08 GMT (envelope-from gonzo@FreeBSD.org)
Message-Id: <201803302331.w2UNV83f030402@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gonzo set sender to
 gonzo@FreeBSD.org using -f
From: Oleksandr Tymoshenko 
Date: Fri, 30 Mar 2018 23:31:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331832 - in stable/11: share/man/man4 sys/conf
 sys/dev/gpio sys/modules sys/modules/chvgpio
X-SVN-Group: stable-11
X-SVN-Commit-Author: gonzo
X-SVN-Commit-Paths: in stable/11: share/man/man4 sys/conf sys/dev/gpio
 sys/modules sys/modules/chvgpio
X-SVN-Commit-Revision: 331832
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Fri, 30 Mar 2018 23:31:10 -0000

Author: gonzo
Date: Fri Mar 30 23:31:08 2018
New Revision: 331832
URL: https://svnweb.freebsd.org/changeset/base/331832

Log:
  MFC r329832, r329926
  
  r329832:
  [chvgpio] add GPIO driver for Intel Z8xxx SoC family
  
  Add chvgpio(4) driver for Intel Z8xxx SoC family. This product
  was formerly known as Cherry Trail but Linux and OpenBSD drivers
  refer to it as Cherry View. This driver is derived from OpenBSD
  one so the name is kept for alignment with another BSD system.
  
  Submitted by:	Tom Jones 
  Reviewed by:	gonzo, wblock(man page)
  Differential Revision:	https://reviews.freebsd.org/D13086
  
  r329926:
  Add SPDX tags for chvgpio driver sources
  
  Also move $FreeBSD$ keyword in header to BSD license

Added:
  stable/11/share/man/man4/chvgpio.4
     - copied unchanged from r329832, head/share/man/man4/chvgpio.4
  stable/11/sys/dev/gpio/chvgpio.c
     - copied, changed from r329832, head/sys/dev/gpio/chvgpio.c
  stable/11/sys/dev/gpio/chvgpio_reg.h
     - copied, changed from r329832, head/sys/dev/gpio/chvgpio_reg.h
  stable/11/sys/modules/chvgpio/
     - copied from r329832, head/sys/modules/chvgpio/
Modified:
  stable/11/share/man/man4/Makefile
  stable/11/sys/conf/files.amd64
  stable/11/sys/conf/files.i386
  stable/11/sys/modules/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/share/man/man4/Makefile
==============================================================================
--- stable/11/share/man/man4/Makefile	Fri Mar 30 21:38:53 2018	(r331831)
+++ stable/11/share/man/man4/Makefile	Fri Mar 30 23:31:08 2018	(r331832)
@@ -87,6 +87,7 @@ MAN=	aac.4 \
 	bwi.4 \
 	bwn.4 \
 	${_bytgpio.4} \
+	${_chvgpio.4} \
 	capsicum.4 \
 	cardbus.4 \
 	carp.4 \
@@ -800,6 +801,7 @@ _amdtemp.4=	amdtemp.4
 _asmc.4=	asmc.4
 _bxe.4=		bxe.4
 _bytgpio.4=	bytgpio.4
+_chvgpio.4=	chvgpio.4
 _coretemp.4=	coretemp.4
 _cpuctl.4=	cpuctl.4
 _dpms.4=	dpms.4

Copied: stable/11/share/man/man4/chvgpio.4 (from r329832, head/share/man/man4/chvgpio.4)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/share/man/man4/chvgpio.4	Fri Mar 30 23:31:08 2018	(r331832, copy of r329832, head/share/man/man4/chvgpio.4)
@@ -0,0 +1,65 @@
+.\" Copyright (c) 2017
+.\"	Tom Jones   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$
+.\"
+.Dd November 17, 2017
+.Dt CHVGPIO 4
+.Os
+.Sh NAME
+.Nm chvgpio
+.Nd Intel Cherry View SoC GPIO controller
+.Sh SYNOPSIS
+.Cd "device gpio"
+.Cd "device chvgpio"
+.Sh DESCRIPTION
+.Nm
+supports the GPIO controller that can be found in Intel's Cherry View SoC
+family.
+.Pp
+The Cherry View SoC has 5 banks of GPIO pins, NORTH, EAST, SOUTHEAST, SOUTHWEST
+and VIRTUAL.
+All but VIRTUAL are exposed to userland as
+.Pa /dev/gpiocN ,
+where N is 0-3.
+Pins in each bank are pre-named to match names in the Intel® Atom™ Z8000
+Processor Series Vol 2
+.Sh SEE ALSO
+.Xr gpio 3 ,
+.Xr gpio 4 ,
+.Xr gpioctl 8
+.Rs
+.%T Intel® Atom™ Z8000 Processor Series Vol 1
+.Re
+.Rs
+.%T Intel® Atom™ Z8000 Processor Series Vol 2
+.Re
+.Sh HISTORY
+The
+.Nm
+manual page first appeared in
+.Fx 12 .
+.Sh AUTHORS
+This driver and man page were written by
+.An Tom Jones Aq Mt tj@enoti.me .

Modified: stable/11/sys/conf/files.amd64
==============================================================================
--- stable/11/sys/conf/files.amd64	Fri Mar 30 21:38:53 2018	(r331831)
+++ stable/11/sys/conf/files.amd64	Fri Mar 30 23:31:08 2018	(r331832)
@@ -279,6 +279,7 @@ dev/fdc/fdc_acpi.c		optional	fdc
 dev/fdc/fdc_isa.c		optional	fdc isa
 dev/fdc/fdc_pccard.c		optional	fdc pccard
 dev/gpio/bytgpio.c		optional	bytgpio
+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

Modified: stable/11/sys/conf/files.i386
==============================================================================
--- stable/11/sys/conf/files.i386	Fri Mar 30 21:38:53 2018	(r331831)
+++ stable/11/sys/conf/files.i386	Fri Mar 30 23:31:08 2018	(r331832)
@@ -227,6 +227,7 @@ dev/glxiic/glxiic.c		optional glxiic
 dev/glxsb/glxsb.c		optional glxsb
 dev/glxsb/glxsb_hash.c		optional glxsb
 dev/gpio/bytgpio.c		optional	bytgpio
+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

Copied and modified: stable/11/sys/dev/gpio/chvgpio.c (from r329832, head/sys/dev/gpio/chvgpio.c)
==============================================================================
--- head/sys/dev/gpio/chvgpio.c	Thu Feb 22 19:12:32 2018	(r329832, copy source)
+++ stable/11/sys/dev/gpio/chvgpio.c	Fri Mar 30 23:31:08 2018	(r331832)
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2017 Tom Jones 
  * All rights reserved.
  *

Copied and modified: stable/11/sys/dev/gpio/chvgpio_reg.h (from r329832, head/sys/dev/gpio/chvgpio_reg.h)
==============================================================================
--- head/sys/dev/gpio/chvgpio_reg.h	Thu Feb 22 19:12:32 2018	(r329832, copy source)
+++ stable/11/sys/dev/gpio/chvgpio_reg.h	Fri Mar 30 23:31:08 2018	(r331832)
@@ -1,4 +1,6 @@
 /*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
  * Copyright (c) 2017 Tom Jones 
  * All rights reserved.
  *
@@ -23,6 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
+ * $FreeBSD$
  */
 
 /*
@@ -40,7 +43,6 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $FreeBSD$
  */
 
 

Modified: stable/11/sys/modules/Makefile
==============================================================================
--- stable/11/sys/modules/Makefile	Fri Mar 30 21:38:53 2018	(r331831)
+++ stable/11/sys/modules/Makefile	Fri Mar 30 23:31:08 2018	(r331832)
@@ -64,6 +64,7 @@ SUBDIR=	\
 	bwn \
 	bwn_pci \
 	${_bytgpio} \
+	${_chvgpio} \
 	cam \
 	${_canbepm} \
 	${_canbus} \
@@ -637,6 +638,7 @@ _amdtemp=	amdtemp
 _arcmsr=	arcmsr
 _asmc=		asmc
 _bytgpio=	bytgpio
+_chvgpio=	chvgpio
 _ciss=		ciss
 _chromebook_platform=	chromebook_platform
 _cmx=		cmx

From owner-svn-src-all@freebsd.org  Sat Mar 31 00:03:01 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 53905F755EB;
 Sat, 31 Mar 2018 00:03:01 +0000 (UTC)
 (envelope-from gonzo@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 05AB886C7E;
 Sat, 31 Mar 2018 00:03:01 +0000 (UTC)
 (envelope-from gonzo@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 005161008A;
 Sat, 31 Mar 2018 00:03:01 +0000 (UTC)
 (envelope-from gonzo@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2V030Ea051002;
 Sat, 31 Mar 2018 00:03:00 GMT (envelope-from gonzo@FreeBSD.org)
Received: (from gonzo@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2V030Q1050998;
 Sat, 31 Mar 2018 00:03:00 GMT (envelope-from gonzo@FreeBSD.org)
Message-Id: <201803310003.w2V030Q1050998@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gonzo set sender to
 gonzo@FreeBSD.org using -f
From: Oleksandr Tymoshenko 
Date: Sat, 31 Mar 2018 00:03:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331833 - in stable/11/share/man: man4 man9
X-SVN-Group: stable-11
X-SVN-Commit-Author: gonzo
X-SVN-Commit-Paths: in stable/11/share/man: man4 man9
X-SVN-Commit-Revision: 331833
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 00:03:01 -0000

Author: gonzo
Date: Sat Mar 31 00:03:00 2018
New Revision: 331833
URL: https://svnweb.freebsd.org/changeset/base/331833

Log:
  MFC r330309:
  
  [fdt_pinctrl] Add man pages for fdt_pinctrl driver
  
  - Add fdt_pinctrl(4) with general information for the driver
  - Add fdt_pinctrl(9) with fdt_pinctrl KPI description
  
  Reviewed by:	ian, manu, wblock
  Differential Revision:	https://reviews.freebsd.org/D14235

Added:
  stable/11/share/man/man4/fdt_pinctrl.4
     - copied unchanged from r330309, head/share/man/man4/fdt_pinctrl.4
  stable/11/share/man/man9/fdt_pinctrl.9
     - copied unchanged from r330309, head/share/man/man9/fdt_pinctrl.9
Modified:
  stable/11/share/man/man4/Makefile
  stable/11/share/man/man9/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/share/man/man4/Makefile
==============================================================================
--- stable/11/share/man/man4/Makefile	Fri Mar 30 23:31:08 2018	(r331832)
+++ stable/11/share/man/man4/Makefile	Sat Mar 31 00:03:00 2018	(r331833)
@@ -161,6 +161,7 @@ MAN=	aac.4 \
 	fd.4 \
 	fdc.4 \
 	fdt.4 \
+	fdt_pinctrl.4 \
 	fdtbus.4 \
 	ffclock.4 \
 	filemon.4 \

Copied: stable/11/share/man/man4/fdt_pinctrl.4 (from r330309, head/share/man/man4/fdt_pinctrl.4)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/share/man/man4/fdt_pinctrl.4	Sat Mar 31 00:03:00 2018	(r331833, copy of r330309, head/share/man/man4/fdt_pinctrl.4)
@@ -0,0 +1,127 @@
+.\" Copyright (c) 2018 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 AUTHORS 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 AUTHORS 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 March 2, 2018
+.Dt "FDT_PINCTRL" 4
+.Os
+.Sh NAME
+.Nm fdt_pinctrl
+.Nd FDT I/O pin multiplexing support
+.Sh SYNOPSIS
+.Cd "device fdt_pinctrl"
+.Sh DESCRIPTION
+.Pp
+Pin multiplexing is a technology used to re-purpose a single
+physical connection (depending on chip packaging it may be
+pin, ball, or pad) to pull signal from one of SoC internal
+controllers to peripheral devices.
+For example, based on the actual device design, a single SoC chip
+pin can perform any of these roles: SPI clock, I2C
+data, GPIO pin, or PWM signal.
+Function selection is performed by the pinmux controller, a SoC
+hardware block, usually controlled a set of registers.
+Pinmux controller capabilities and register format depend
+on the actual hardware implementation.
+.Pp
+On
+.Xr fdt 4
+based systems, the pinmux controller is represented by a node in
+the device tree.
+It may have any number of child nodes representing pin
+configuration groups.
+Properties of such nodes are hardware-specific and handled
+by individual pinctrl drivers.
+.Ss Example 1
+Pinmux controller device tree node
+.Bd -literal
+pinctrl@7e220000 {
+    compatible = "vndr,soc1715-pinctrl";
+    reg = <0x7e220000 0x100>
+
+    spi0_pins: spi0 {
+        vndr,pins = <11 12>
+        vndr,functions = 
+    }
+
+    i2c0_pins: i2c0 {
+        ...
+    }
+}
+.Ed
+.Pp
+Client devices are hardware devices that require certain pin
+configurations to function properly.
+Depending on the state the device is in (active, idle) it might
+require different pin configurations.
+Each configuration is described by setting the pinctrl-N
+property to the list of phandles pointing to specific child
+nodes of the pinmux controller node.
+N is an integer value starting with 0 and incremented by 1
+for every new set of pin configurations.
+pinctrl-0 is a default configuration that is applied in the
+.Xr fdt_pinctrl_configure_tree 9
+call.
+In addition to referring to pin configurations by index, they
+can be referred to by name if the pinctrl-names property is set.
+The value of pinctrl-names is a list of strings with names for
+each pinctrl-N property.
+Client devices can request specific configuration using
+.Xr fdt_pinctrl_configure 9
+and
+.Xr fdt_pinctrl_configure_by_name 9 .
+.Ss Example 2
+.Bd -literal
+backlight@7f000000 {
+    compatible = "vndr,vndr-bl"
+    reg = <0x7f000000 0x20>
+    ...
+    pinctrl-name = "active", "idle"
+    pinctrl-0 = <&backlight_active_pins>
+    pinctrl-1 = <&backlight_idle_pins>
+}
+.Ed
+.Pp
+The pinctrl driver should implement FDT_PINCTRL_CONFIGURE
+method, register itself as pin configuration handler by
+calling fdt_pinctrl_register function, and call
+.Xr fdt_pinctrl_configure_tree 9
+to configure pins for all enabled devices (device where
+the "status" property is not set to "disabled").
+.Sh SEE ALSO
+.Xr fdt_pinctrl 9
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 10.2 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+device driver was developed by
+.An \&Ian Lepore Aq Mt ian@FreeBSD.org .
+This manual page was written by
+.An Oleksandr Tymoshenko Aq Mt gonzo@FreeBSD.org .

Modified: stable/11/share/man/man9/Makefile
==============================================================================
--- stable/11/share/man/man9/Makefile	Fri Mar 30 23:31:08 2018	(r331832)
+++ stable/11/share/man/man9/Makefile	Sat Mar 31 00:03:00 2018	(r331833)
@@ -121,6 +121,7 @@ MAN=	accept_filter.9 \
 	eventtimers.9 \
 	extattr.9 \
 	fail.9 \
+	fdt_pinctrl.9 \
 	fetch.9 \
 	firmware.9 \
 	fpu_kern.9 \
@@ -768,6 +769,10 @@ MLINKS+=fail.9 KFAIL_POINT_CODE.9 \
 	fail.9 KFAIL_POINT_GOTO.9 \
 	fail.9 KFAIL_POINT_RETURN.9 \
 	fail.9 KFAIL_POINT_RETURN_VOID.9
+MLINKS+=fdt_pinctrl.9 fdt_pinctrl_configure.9 \
+	fdt_pinctrl.9 fdt_pinctrl_configure_by_name.9 \
+	fdt_pinctrl.9 fdt_pinctrl_configure_tree.9 \
+	fdt_pinctrl.9 fdt_pinctrl_register.9
 MLINKS+=fetch.9 fubyte.9 \
 	fetch.9 fuswintr.9 \
 	fetch.9 fuword.9 \

Copied: stable/11/share/man/man9/fdt_pinctrl.9 (from r330309, head/share/man/man9/fdt_pinctrl.9)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/share/man/man9/fdt_pinctrl.9	Sat Mar 31 00:03:00 2018	(r331833, copy of r330309, head/share/man/man9/fdt_pinctrl.9)
@@ -0,0 +1,161 @@
+.\" -*- nroff -*-
+.\"
+.\" Copyright (c) 2018 Oleksandr Tymoshenko
+.\"
+.\" All rights reserved.
+.\"
+.\" This program is free software.
+.\"
+.\" 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 DEVELOPERS ``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 DEVELOPERS 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 March 2, 2018
+.Dt fdt_pinctrl 9
+.Os
+.Sh NAME
+.Nm fdt_pinctrl
+.Nd helper functions for FDT pinmux controller drivers
+.Sh SYNOPSIS
+.In dev/fdt/fdt_pinctrl.h
+.Ft int
+.Fn fdt_pinctrl_configure "device_t client" "u_int index"
+.Ft int
+.Fn fdt_pinctrl_configure_by_name "device_t client" "const char * name"
+.Ft int
+.Fn fdt_pinctrl_register "device_t pinctrl" "const char *pinprop"
+.Ft int
+.Fn fdt_pinctrl_configure_tree "device_t pinctrl"
+.Sh DESCRIPTION
+.Xr fdt_pinctrl 4
+provides an API for manipulating I/O pin configurations on
+pinmux controllers and pinmux clients.
+On the controller side, the standard newbus probe and
+attach methods are implemented.
+This driver also implements the
+.Fn fdt_pinctrl_configure
+method, in which it calls the
+.Fn fdt_pinctrl_register
+function to register itself as a pinmux controller.
+Then
+.Fn fdt_pinctrl_configure_tree
+is used to walk the device tree and configure pins specified by the pinctrl-0
+property for all active devices.
+If a client device requires a pin configuration change at some
+point of its lifecycle, it uses the
+.Fn fdt_pinctrl_configure
+or
+.Fn fdt_pinctrl_configure_by_name
+functions.
+.Pp
+.Fn fdt_pinctrl_configure
+is used by client device
+.Fa client
+to request a pin configuration
+described by the pinctrl-N property with index
+.Fa index .
+.Pp
+.Fn fdt_pinctrl_configure_by_name
+is used by client device
+.Fa client
+to request the pin configuration with name
+.Fa name .
+.Pp
+.Fn fdt_pinctrl_register
+registers a pinctrl driver so that it can be used by other devices which call
+.Fn fdt_pinctrl_configure
+or
+.Fn fdt_pinctrl_configure_by_name .
+The
+.Fa pinprop
+argument is the name of a property that
+identifies each descendant of the pinctrl
+node.
+The pinctrl node is a pin configuration
+node whose xref phandle can be passed to
+.Fn FDT_PINCTRL_CONFIGURE .
+If
+.Fa pinprop
+is
+.Dv NULL ,
+every descendant node is registered.
+It is possible for the driver to register itself
+as a pinmux controller for more than one pin property type
+by calling
+.Fn fdt_pinctrl_register
+multiple types.
+.Pp
+.Fn fdt_pinctrl_configure_tree
+walks through enabled devices in the device tree.
+If the pinctrl-0 property contains references
+to child nodes of the specified pinctrl device,
+their pins are configured.
+.Sh EXAMPLES
+.Bd -literal
+static int
+foo_configure_pins(device_t dev, phandle_t cfgxref)
+{
+	phandle_t cfgnode;
+	uint32_t *pins, *functions;
+	int npins, nfunctions;
+
+	cfgnode = OF_node_from_xref(cfgxref);
+	pins = NULL;
+	npins = OF_getencprop_alloc(cfgnode, "foo,pins", sizeof(*pins),
+	    (void **)&pins);
+	functions = NULL;
+	nfunctions = OF_getencprop_alloc(cfgnode, "foo,functions",
+	    sizeof(*functions), (void **)&functions);
+	...
+}
+
+static int
+foo_attach(device_t dev)
+{
+	...
+
+	fdt_pinctrl_register(dev, "foo,pins");
+	/*
+	 * It is possible to register more than one pinprop handler
+	 */
+	fdt_pinctrl_register(dev, "bar,pins");
+	fdt_pinctrl_configure_tree(dev);
+
+	return (0);
+}
+
+static device_method_t foo_methods[] = {
+	...
+
+	/* fdt_pinctrl interface */
+	DEVMETHOD(fdt_pinctrl_configure, foo_configure_pins),
+
+	/* Terminate method list */
+	DEVMETHOD_END
+};
+
+DRIVER_MODULE(foo, simplebus, foo_driver, foo_devclass, NULL, NULL);
+.Ed
+.Sh SEE ALSO
+.Xr fdt_pinctrl 4 ,
+.Sh AUTHORS
+This manual page was written by
+.An Oleksandr Tymoshenko .

From owner-svn-src-all@freebsd.org  Sat Mar 31 00:30:48 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 96D30F76D58;
 Sat, 31 Mar 2018 00:30:48 +0000 (UTC)
 (envelope-from gonzo@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 44CE987949;
 Sat, 31 Mar 2018 00:30:48 +0000 (UTC)
 (envelope-from gonzo@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3FC4C103E0;
 Sat, 31 Mar 2018 00:30:48 +0000 (UTC)
 (envelope-from gonzo@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2V0UmL8062141;
 Sat, 31 Mar 2018 00:30:48 GMT (envelope-from gonzo@FreeBSD.org)
Received: (from gonzo@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2V0UlSW062136;
 Sat, 31 Mar 2018 00:30:47 GMT (envelope-from gonzo@FreeBSD.org)
Message-Id: <201803310030.w2V0UlSW062136@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gonzo set sender to
 gonzo@FreeBSD.org using -f
From: Oleksandr Tymoshenko 
Date: Sat, 31 Mar 2018 00:30:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331834 - stable/11/sys/dev/ichiic
X-SVN-Group: stable-11
X-SVN-Commit-Author: gonzo
X-SVN-Commit-Paths: stable/11/sys/dev/ichiic
X-SVN-Commit-Revision: 331834
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 00:30:48 -0000

Author: gonzo
Date: Sat Mar 31 00:30:47 2018
New Revision: 331834
URL: https://svnweb.freebsd.org/changeset/base/331834

Log:
  MFC r330558:
  
  [ig4] Add support for i2c controllers on Skylake and Kaby Lake
  
  This was tested by Ben on  HP Chromebook 13 G1 with a
  Skylake CPU and Sunrise Point-LP I2C controller and by me on
  Minnowboard Turbot with Atom E3826 (formerly Bay Trail)
  
  Submitted by:	Ben Pye 
  Reviewed by:	gonzo
  Obtained from:	DragonflyBSD (a4549657 by Imre Vadász)
  Differential Revision:	https://reviews.freebsd.org/D13654

Modified:
  stable/11/sys/dev/ichiic/ig4_acpi.c
  stable/11/sys/dev/ichiic/ig4_iic.c
  stable/11/sys/dev/ichiic/ig4_pci.c
  stable/11/sys/dev/ichiic/ig4_reg.h
  stable/11/sys/dev/ichiic/ig4_var.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/ichiic/ig4_acpi.c
==============================================================================
--- stable/11/sys/dev/ichiic/ig4_acpi.c	Sat Mar 31 00:03:00 2018	(r331833)
+++ stable/11/sys/dev/ichiic/ig4_acpi.c	Sat Mar 31 00:30:47 2018	(r331834)
@@ -85,6 +85,8 @@ ig4iic_acpi_attach(device_t dev)
 	sc = device_get_softc(dev);
 
 	sc->dev = dev;
+	/* All the HIDs matched are Atom SOCs. */
+	sc->version = IG4_ATOM;
 	sc->regs_rid = 0;
 	sc->regs_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
 					  &sc->regs_rid, RF_ACTIVE);

Modified: stable/11/sys/dev/ichiic/ig4_iic.c
==============================================================================
--- stable/11/sys/dev/ichiic/ig4_iic.c	Sat Mar 31 00:03:00 2018	(r331833)
+++ stable/11/sys/dev/ichiic/ig4_iic.c	Sat Mar 31 00:30:47 2018	(r331834)
@@ -525,22 +525,38 @@ ig4iic_attach(ig4iic_softc_t *sc)
 	mtx_init(&sc->io_lock, "IG4 I/O lock", NULL, MTX_DEF);
 	sx_init(&sc->call_lock, "IG4 call lock");
 
-	v = reg_read(sc, IG4_REG_COMP_TYPE);
-	v = reg_read(sc, IG4_REG_COMP_PARAM1);
-	v = reg_read(sc, IG4_REG_GENERAL);
-	if ((v & IG4_GENERAL_SWMODE) == 0) {
-		v |= IG4_GENERAL_SWMODE;
-		reg_write(sc, IG4_REG_GENERAL, v);
+	if (sc->version == IG4_ATOM)
+		v = reg_read(sc, IG4_REG_COMP_TYPE);
+	
+	if (sc->version == IG4_HASWELL || sc->version == IG4_ATOM) {
+		v = reg_read(sc, IG4_REG_COMP_PARAM1);
 		v = reg_read(sc, IG4_REG_GENERAL);
+		/*
+		 * The content of IG4_REG_GENERAL is different for each
+		 * controller version.
+		 */
+		if (sc->version == IG4_HASWELL &&
+		    (v & IG4_GENERAL_SWMODE) == 0) {
+			v |= IG4_GENERAL_SWMODE;
+			reg_write(sc, IG4_REG_GENERAL, v);
+			v = reg_read(sc, IG4_REG_GENERAL);
+		}
 	}
 
-	v = reg_read(sc, IG4_REG_SW_LTR_VALUE);
-	v = reg_read(sc, IG4_REG_AUTO_LTR_VALUE);
+	if (sc->version == IG4_HASWELL) {
+		v = reg_read(sc, IG4_REG_SW_LTR_VALUE);
+		v = reg_read(sc, IG4_REG_AUTO_LTR_VALUE);
+	} else if (sc->version == IG4_SKYLAKE) {
+		v = reg_read(sc, IG4_REG_ACTIVE_LTR_VALUE);
+		v = reg_read(sc, IG4_REG_IDLE_LTR_VALUE);
+	}
 
-	v = reg_read(sc, IG4_REG_COMP_VER);
-	if (v != IG4_COMP_VER) {
-		error = ENXIO;
-		goto done;
+	if (sc->version == IG4_HASWELL || sc->version == IG4_ATOM) {
+		v = reg_read(sc, IG4_REG_COMP_VER);
+		if (v != IG4_COMP_VER) {
+			error = ENXIO;
+			goto done;
+		}
 	}
 	v = reg_read(sc, IG4_REG_SS_SCL_HCNT);
 	v = reg_read(sc, IG4_REG_SS_SCL_LCNT);
@@ -591,8 +607,13 @@ ig4iic_attach(ig4iic_softc_t *sc)
 	/*
 	 * Don't do this, it blows up the PCI config
 	 */
-	reg_write(sc, IG4_REG_RESETS, IG4_RESETS_ASSERT);
-	reg_write(sc, IG4_REG_RESETS, IG4_RESETS_DEASSERT);
+	if (sc->version == IG4_HASWELL || sc->version == IG4_ATOM) {
+		reg_write(sc, IG4_REG_RESETS_HSW, IG4_RESETS_ASSERT_HSW);
+		reg_write(sc, IG4_REG_RESETS_HSW, IG4_RESETS_DEASSERT_HSW);
+	} else if (sc->version = IG4_SKYLAKE) {
+		reg_write(sc, IG4_REG_RESETS_SKL, IG4_RESETS_ASSERT_SKL);
+		reg_write(sc, IG4_REG_RESETS_SKL, IG4_RESETS_DEASSERT_SKL);
+	}
 #endif
 
 	mtx_lock(&sc->io_lock);
@@ -727,14 +748,27 @@ ig4iic_dump(ig4iic_softc_t *sc)
 	REGDUMP(sc, IG4_REG_DMA_RDLR);
 	REGDUMP(sc, IG4_REG_SDA_SETUP);
 	REGDUMP(sc, IG4_REG_ENABLE_STATUS);
-	REGDUMP(sc, IG4_REG_COMP_PARAM1);
-	REGDUMP(sc, IG4_REG_COMP_VER);
-	REGDUMP(sc, IG4_REG_COMP_TYPE);
-	REGDUMP(sc, IG4_REG_CLK_PARMS);
-	REGDUMP(sc, IG4_REG_RESETS);
-	REGDUMP(sc, IG4_REG_GENERAL);
-	REGDUMP(sc, IG4_REG_SW_LTR_VALUE);
-	REGDUMP(sc, IG4_REG_AUTO_LTR_VALUE);
+	if (sc->version == IG4_HASWELL || sc->version == IG4_ATOM) {
+		REGDUMP(sc, IG4_REG_COMP_PARAM1);
+		REGDUMP(sc, IG4_REG_COMP_VER);
+	}
+	if (sc->version == IG4_ATOM) {
+		REGDUMP(sc, IG4_REG_COMP_TYPE);
+		REGDUMP(sc, IG4_REG_CLK_PARMS);
+	}
+	if (sc->version == IG4_HASWELL || sc->version == IG4_ATOM) {
+		REGDUMP(sc, IG4_REG_RESETS_HSW);
+		REGDUMP(sc, IG4_REG_GENERAL);
+	} else if (sc->version == IG4_SKYLAKE) {
+		REGDUMP(sc, IG4_REG_RESETS_SKL);
+	}
+	if (sc->version == IG4_HASWELL) {
+		REGDUMP(sc, IG4_REG_SW_LTR_VALUE);
+		REGDUMP(sc, IG4_REG_AUTO_LTR_VALUE);
+	} else if (sc->version == IG4_SKYLAKE) {
+		REGDUMP(sc, IG4_REG_ACTIVE_LTR_VALUE);
+		REGDUMP(sc, IG4_REG_IDLE_LTR_VALUE);
+	}
 }
 #undef REGDUMP
 

Modified: stable/11/sys/dev/ichiic/ig4_pci.c
==============================================================================
--- stable/11/sys/dev/ichiic/ig4_pci.c	Sat Mar 31 00:03:00 2018	(r331833)
+++ stable/11/sys/dev/ichiic/ig4_pci.c	Sat Mar 31 00:30:47 2018	(r331834)
@@ -74,34 +74,74 @@ static int ig4iic_pci_detach(device_t dev);
 #define PCI_CHIP_BRASWELL_I2C_5 	0x22c58086
 #define PCI_CHIP_BRASWELL_I2C_6 	0x22c68086
 #define PCI_CHIP_BRASWELL_I2C_7 	0x22c78086
+#define PCI_CHIP_SKYLAKE_I2C_0		0x9d608086
+#define PCI_CHIP_SKYLAKE_I2C_1		0x9d618086
+#define PCI_CHIP_SKYLAKE_I2C_2		0x9d628086
+#define PCI_CHIP_SKYLAKE_I2C_3		0x9d638086
+#define PCI_CHIP_SKYLAKE_I2C_4		0x9d648086
+#define PCI_CHIP_SKYLAKE_I2C_5		0x9d658086
 
 static int
 ig4iic_pci_probe(device_t dev)
 {
+	ig4iic_softc_t *sc = device_get_softc(dev);
+
 	switch(pci_get_devid(dev)) {
 	case PCI_CHIP_LYNXPT_LP_I2C_1:
 		device_set_desc(dev, "Intel Lynx Point-LP I2C Controller-1");
+		sc->version = IG4_HASWELL;
 		break;
 	case PCI_CHIP_LYNXPT_LP_I2C_2:
 		device_set_desc(dev, "Intel Lynx Point-LP I2C Controller-2");
+		sc->version = IG4_HASWELL;
 		break;
 	case PCI_CHIP_BRASWELL_I2C_1:
 		device_set_desc(dev, "Intel Braswell Serial I/O I2C Port 1");
+		sc->version = IG4_ATOM;
 		break;
 	case PCI_CHIP_BRASWELL_I2C_2:
 		device_set_desc(dev, "Intel Braswell Serial I/O I2C Port 2");
+		sc->version = IG4_ATOM;
 		break;
 	case PCI_CHIP_BRASWELL_I2C_3:
 		device_set_desc(dev, "Intel Braswell Serial I/O I2C Port 3");
+		sc->version = IG4_ATOM;
 		break;
 	case PCI_CHIP_BRASWELL_I2C_5:
 		device_set_desc(dev, "Intel Braswell Serial I/O I2C Port 5");
+		sc->version = IG4_ATOM;
 		break;
 	case PCI_CHIP_BRASWELL_I2C_6:
 		device_set_desc(dev, "Intel Braswell Serial I/O I2C Port 6");
+		sc->version = IG4_ATOM;
 		break;
 	case PCI_CHIP_BRASWELL_I2C_7:
 		device_set_desc(dev, "Intel Braswell Serial I/O I2C Port 7");
+		sc->version = IG4_ATOM;
+		break;
+	case PCI_CHIP_SKYLAKE_I2C_0:
+		device_set_desc(dev, "Intel Sunrise Point-LP I2C Controller-0");
+		sc->version = IG4_SKYLAKE;
+		break;
+	case PCI_CHIP_SKYLAKE_I2C_1:
+		device_set_desc(dev, "Intel Sunrise Point-LP I2C Controller-1");
+		sc->version = IG4_SKYLAKE;
+		break;
+	case PCI_CHIP_SKYLAKE_I2C_2:
+		device_set_desc(dev, "Intel Sunrise Point-LP I2C Controller-2");
+		sc->version = IG4_SKYLAKE;
+		break;
+	case PCI_CHIP_SKYLAKE_I2C_3:
+		device_set_desc(dev, "Intel Sunrise Point-LP I2C Controller-3");
+		sc->version = IG4_SKYLAKE;
+		break;
+	case PCI_CHIP_SKYLAKE_I2C_4:
+		device_set_desc(dev, "Intel Sunrise Point-LP I2C Controller-4");
+		sc->version = IG4_SKYLAKE;
+		break;
+	case PCI_CHIP_SKYLAKE_I2C_5:
+		device_set_desc(dev, "Intel Sunrise Point-LP I2C Controller-5");
+		sc->version = IG4_SKYLAKE;
 		break;
 	default:
 		return (ENXIO);

Modified: stable/11/sys/dev/ichiic/ig4_reg.h
==============================================================================
--- stable/11/sys/dev/ichiic/ig4_reg.h	Sat Mar 31 00:03:00 2018	(r331833)
+++ stable/11/sys/dev/ichiic/ig4_reg.h	Sat Mar 31 00:30:47 2018	(r331834)
@@ -109,12 +109,21 @@
 #define IG4_REG_DMA_RDLR	0x0090	/* RW	DMA Receive Data Level */
 #define IG4_REG_SDA_SETUP	0x0094	/* RW	SDA Setup */
 #define IG4_REG_ENABLE_STATUS	0x009C	/* RO	Enable Status */
+/* Available at least on Atom SoCs and Haswell mobile. */
 #define IG4_REG_COMP_PARAM1	0x00F4	/* RO	Component Parameter */
 #define IG4_REG_COMP_VER	0x00F8	/* RO	Component Version */
+/* Available at least on Atom SoCs */
 #define IG4_REG_COMP_TYPE	0x00FC	/* RO	Probe width/endian? (linux) */
+/* Available on Skylake-U/Y and Kaby Lake-U/Y */
+#define IG4_REG_RESETS_SKL	0x0204	/* RW	Reset Register */
+#define IG4_REG_ACTIVE_LTR_VALUE 0x0210	/* RW	Active LTR Value */
+#define IG4_REG_IDLE_LTR_VALUE	0x0214	/* RW	Idle LTR Value */
+/* Available at least on Atom SoCs */
 #define IG4_REG_CLK_PARMS	0x0800	/* RW	Clock Parameters */
-#define IG4_REG_RESETS		0x0804	/* RW	Reset Register */
+/* Available at least on Atom SoCs and Haswell mobile */
+#define IG4_REG_RESETS_HSW	0x0804	/* RW	Reset Register */
 #define IG4_REG_GENERAL		0x0808	/* RW	General Register */
+/* These LTR config registers are at least available on Haswell mobile. */
 #define IG4_REG_SW_LTR_VALUE	0x0810	/* RW	SW LTR Value */
 #define IG4_REG_AUTO_LTR_VALUE	0x0814	/* RW	Auto LTR Value */
 
@@ -566,8 +575,12 @@
  *	10	(reserved)
  *	11	I2C host controller is in reset.
  */
-#define IG4_RESETS_ASSERT	0x0003
-#define IG4_RESETS_DEASSERT	0x0000
+#define IG4_RESETS_ASSERT_HSW	0x0003
+#define IG4_RESETS_DEASSERT_HSW	0x0000
+
+/* Skylake-U/Y and Kaby Lake-U/Y have the reset bits inverted */
+#define IG4_RESETS_DEASSERT_SKL	0x0003
+#define IG4_RESETS_ASSERT_SKL	0x0000
 
 /*
  * GENERAL - (RW) General Reigster				22.2.38

Modified: stable/11/sys/dev/ichiic/ig4_var.h
==============================================================================
--- stable/11/sys/dev/ichiic/ig4_var.h	Sat Mar 31 00:03:00 2018	(r331833)
+++ stable/11/sys/dev/ichiic/ig4_var.h	Sat Mar 31 00:30:47 2018	(r331834)
@@ -47,6 +47,7 @@
 #define IG4_RBUFMASK	(IG4_RBUFSIZE - 1)
 
 enum ig4_op { IG4_IDLE, IG4_READ, IG4_WRITE };
+enum ig4_vers { IG4_HASWELL, IG4_ATOM, IG4_SKYLAKE };
 
 struct ig4iic_softc {
 	device_t	dev;
@@ -58,6 +59,7 @@ struct ig4iic_softc {
 	int		intr_rid;
 	void		*intr_handle;
 	int		intr_type;
+	enum ig4_vers	version;
 	enum ig4_op	op;
 	int		cmd;
 	int		rnext;

From owner-svn-src-all@freebsd.org  Sat Mar 31 01:37:15 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E4D0F7A937;
 Sat, 31 Mar 2018 01:37:15 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id CE85F69F13;
 Sat, 31 Mar 2018 01:37:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C682E10FB6;
 Sat, 31 Mar 2018 01:37:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2V1bEru097957;
 Sat, 31 Mar 2018 01:37:14 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2V1bEEL097956;
 Sat, 31 Mar 2018 01:37:14 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201803310137.w2V1bEEL097956@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber 
Date: Sat, 31 Mar 2018 01:37:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331835 - in stable: 10/share/man/man7 11/share/man/man7
X-SVN-Group: stable-11
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/share/man/man7 11/share/man/man7
X-SVN-Commit-Revision: 331835
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 01:37:15 -0000

Author: gjb
Date: Sat Mar 31 01:37:14 2018
New Revision: 331835
URL: https://svnweb.freebsd.org/changeset/base/331835

Log:
  MFC r331696, r331697:
  
   r331696:
    Update the Release Engineering article URL to the modern version.
  
   r331697:
    Add an example for building SD card images for the RPI-B and RPI3.
  
  Note, this commit manually fixes a merge conflict caused by r325096,
  which does a seemingly recursive http -> https update, which this
  commit was never marked for MFC.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/share/man/man7/release.7
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/share/man/man7/release.7
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/share/man/man7/release.7
==============================================================================
--- stable/11/share/man/man7/release.7	Sat Mar 31 00:30:47 2018	(r331834)
+++ stable/11/share/man/man7/release.7	Sat Mar 31 01:37:14 2018	(r331835)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 28, 2017
+.Dd March 28, 2018
 .Dt RELEASE 7
 .Os
 .Sh NAME
@@ -687,6 +687,23 @@ cd /usr/src/release
 sh release.sh -c $HOME/release.conf
 .Ed
 .Pp
+Configuration files specific to various supported embedded systems, such as
+the Raspberry Pi, exist in the directory corresponding to the
+.Va TARGET
+.Xr make 1
+variable.
+For example, to build an image for the Raspberry Pi:
+.Bd -literal -offset indent
+cd /usr/src/release
+sh release.sh -c arm/RPI-B.conf
+.Ed
+.Pp
+To build an image for the Raspberry Pi 3:
+.Bd -literal -offset indent
+cd /usr/src/release
+sh release.sh -c arm64/RPI3.conf
+.Ed
+.Pp
 After running these commands, all prepared release files are available in the
 .Pa /scratch
 directory.
@@ -709,7 +726,7 @@ variable in
 .Xr sysctl 8
 .Rs
 .%T "FreeBSD Release Engineering"
-.%U http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/
+.%U https://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/freebsd-releng/
 .Re
 .Rs
 .%T "FreeBSD Developers' Handbook"

From owner-svn-src-all@freebsd.org  Sat Mar 31 01:37:15 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id F334FF7A933;
 Sat, 31 Mar 2018 01:37:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 9942769F12;
 Sat, 31 Mar 2018 01:37:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9151910FB5;
 Sat, 31 Mar 2018 01:37:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2V1bE8Y097951;
 Sat, 31 Mar 2018 01:37:14 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2V1bEb3097950;
 Sat, 31 Mar 2018 01:37:14 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201803310137.w2V1bEb3097950@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber 
Date: Sat, 31 Mar 2018 01:37:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject: svn commit: r331835 - in stable: 10/share/man/man7 11/share/man/man7
X-SVN-Group: stable-10
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/share/man/man7 11/share/man/man7
X-SVN-Commit-Revision: 331835
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 01:37:15 -0000

Author: gjb
Date: Sat Mar 31 01:37:14 2018
New Revision: 331835
URL: https://svnweb.freebsd.org/changeset/base/331835

Log:
  MFC r331696, r331697:
  
   r331696:
    Update the Release Engineering article URL to the modern version.
  
   r331697:
    Add an example for building SD card images for the RPI-B and RPI3.
  
  Note, this commit manually fixes a merge conflict caused by r325096,
  which does a seemingly recursive http -> https update, which this
  commit was never marked for MFC.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/10/share/man/man7/release.7
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/share/man/man7/release.7
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/share/man/man7/release.7
==============================================================================
--- stable/10/share/man/man7/release.7	Sat Mar 31 00:30:47 2018	(r331834)
+++ stable/10/share/man/man7/release.7	Sat Mar 31 01:37:14 2018	(r331835)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 28, 2017
+.Dd March 28, 2018
 .Dt RELEASE 7
 .Os
 .Sh NAME
@@ -679,6 +679,23 @@ cd /usr/src/release
 sh release.sh -c $HOME/release.conf
 .Ed
 .Pp
+Configuration files specific to various supported embedded systems, such as
+the Raspberry Pi, exist in the directory corresponding to the
+.Va TARGET
+.Xr make 1
+variable.
+For example, to build an image for the Raspberry Pi:
+.Bd -literal -offset indent
+cd /usr/src/release
+sh release.sh -c arm/RPI-B.conf
+.Ed
+.Pp
+To build an image for the Raspberry Pi 3:
+.Bd -literal -offset indent
+cd /usr/src/release
+sh release.sh -c arm64/RPI3.conf
+.Ed
+.Pp
 After running these commands, all prepared release files are available in the
 .Pa /scratch
 directory.
@@ -701,7 +718,7 @@ variable in
 .Xr sysctl 8
 .Rs
 .%T "FreeBSD Release Engineering"
-.%U http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/
+.%U https://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/freebsd-releng/
 .Re
 .Rs
 .%T "FreeBSD Release Engineering of Third Party Packages"

From owner-svn-src-all@freebsd.org  Sat Mar 31 05:17:29 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 21886F5A48B;
 Sat, 31 Mar 2018 05:17:29 +0000 (UTC)
 (envelope-from rgrimes@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id A075F721A9;
 Sat, 31 Mar 2018 05:17:28 +0000 (UTC)
 (envelope-from rgrimes@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9B5D8136C3;
 Sat, 31 Mar 2018 05:17:28 +0000 (UTC)
 (envelope-from rgrimes@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2V5HS7K015348;
 Sat, 31 Mar 2018 05:17:28 GMT (envelope-from rgrimes@FreeBSD.org)
Received: (from rgrimes@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2V5HSom015347;
 Sat, 31 Mar 2018 05:17:28 GMT (envelope-from rgrimes@FreeBSD.org)
Message-Id: <201803310517.w2V5HSom015347@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: rgrimes set sender to
 rgrimes@FreeBSD.org using -f
From: "Rodney W. Grimes" 
Date: Sat, 31 Mar 2018 05:17:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331837 - stable/11/share/misc
X-SVN-Group: stable-11
X-SVN-Commit-Author: rgrimes
X-SVN-Commit-Paths: stable/11/share/misc
X-SVN-Commit-Revision: 331837
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 05:17:29 -0000

Author: rgrimes
Date: Sat Mar 31 05:17:28 2018
New Revision: 331837
URL: https://svnweb.freebsd.org/changeset/base/331837

Log:
  MFC:		r331664
  
  Add Bruce Evans
  Update my mentors to bde and phk
  Approved by:	bde (mentor), phk (mentor)

Modified:
  stable/11/share/misc/committers-src.dot
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/share/misc/committers-src.dot
==============================================================================
--- stable/11/share/misc/committers-src.dot	Sat Mar 31 05:17:12 2018	(r331836)
+++ stable/11/share/misc/committers-src.dot	Sat Mar 31 05:17:28 2018	(r331837)
@@ -122,6 +122,7 @@ avg [label="Andriy Gapon\navg@FreeBSD.org\n2009/02/18"
 avos [label="Andriy Voskoboinyk\navos@FreeBSD.org\n2015/09/24"]
 badger [label="Eric Badger\nbadger@FreeBSD.org\n2016/07/01"]
 bapt [label="Baptiste Daroussin\nbapt@FreeBSD.org\n2011/12/23"]
+bde [label="Bruce Evans\nbde@FreeBSD.org\n1994/08/20"]
 bdrewery [label="Bryan Drewery\nbdrewery@FreeBSD.org\n2013/12/14"]
 benl [label="Ben Laurie\nbenl@FreeBSD.org\n2011/05/18"]
 benno [label="Benno Rice\nbenno@FreeBSD.org\n2000/11/02"]
@@ -402,6 +403,8 @@ bapt -> araujo
 bapt -> bdrewery
 bapt -> wulf
 
+bde -> rgrimes
+
 benno -> grehan
 
 billf -> dougb
@@ -720,6 +723,7 @@ philip -> kp
 
 phk -> jkoshy
 phk -> mux
+phk -> rgrimes
 
 pjd -> def
 pjd -> kib

From owner-svn-src-all@freebsd.org  Sat Mar 31 05:17:15 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0DA6EF5A47E;
 Sat, 31 Mar 2018 05:17:15 +0000 (UTC) (envelope-from jah@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E8374720D0;
 Sat, 31 Mar 2018 05:17:12 +0000 (UTC) (envelope-from jah@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DD5B7136C2;
 Sat, 31 Mar 2018 05:17:12 +0000 (UTC) (envelope-from jah@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2V5HCbp015285;
 Sat, 31 Mar 2018 05:17:12 GMT (envelope-from jah@FreeBSD.org)
Received: (from jah@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2V5HCSg015284;
 Sat, 31 Mar 2018 05:17:12 GMT (envelope-from jah@FreeBSD.org)
Message-Id: <201803310517.w2V5HCSg015284@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: jah set sender to jah@FreeBSD.org
 using -f
From: "Jason A. Harmening" 
Date: Sat, 31 Mar 2018 05:17:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331836 - head/sys/conf
X-SVN-Group: head
X-SVN-Commit-Author: jah
X-SVN-Commit-Paths: head/sys/conf
X-SVN-Commit-Revision: 331836
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 05:17:15 -0000

Author: jah
Date: Sat Mar 31 05:17:12 2018
New Revision: 331836
URL: https://svnweb.freebsd.org/changeset/base/331836

Log:
  Remove MK_AUTO_OBJ from env passed to PORTS_MODULES
  
  This fixes a failure to resolve object file paths seen when buildkernel
  (which sets MK_AUTO_OBJ=yes) and installkernel (which sets MK_AUTO_OBJ=no)
  are run as separate steps.  r329232 partially fixed this scenario by removing
  MAKEOBJDIR, but it seems the AUTO_OBJ setting also needs to be on the same
  page for the build and install steps.
  
  Reviewed by:	bdrewery
  MFC after:	2 weeks
  Differential Revision:	https://reviews.freebsd.org/D14143

Modified:
  head/sys/conf/kern.post.mk

Modified: head/sys/conf/kern.post.mk
==============================================================================
--- head/sys/conf/kern.post.mk	Sat Mar 31 01:37:14 2018	(r331835)
+++ head/sys/conf/kern.post.mk	Sat Mar 31 05:17:12 2018	(r331836)
@@ -70,8 +70,9 @@ PORTSMODULESENV=\
 	-u CXX \
 	-u CPP \
 	-u MAKESYSPATH \
+	-u MK_AUTO_OBJ \
 	-u MAKEOBJDIR \
-	MAKEFLAGS="${MAKEFLAGS:M*:tW:S/^-m /-m_/g:S/ -m / -m_/g:tw:N-m_*}" \
+	MAKEFLAGS="${MAKEFLAGS:M*:tW:S/^-m /-m_/g:S/ -m / -m_/g:tw:N-m_*:NMK_AUTO_OBJ=*}" \
 	SYSDIR=${SYSDIR} \
 	PATH=${PATH}:${LOCALBASE}/bin:${LOCALBASE}/sbin \
 	SRC_BASE=${SRC_BASE} \

From owner-svn-src-all@freebsd.org  Sat Mar 31 09:17:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1E31CF71573
 for ;
 Sat, 31 Mar 2018 09:17:08 +0000 (UTC)
 (envelope-from freebsd@omnilan.de)
Received: from mx0.gentlemail.de (mx0.gentlemail.de [IPv6:2a00:e10:2800::a130])
 (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 946FF7A145;
 Sat, 31 Mar 2018 09:17:07 +0000 (UTC)
 (envelope-from freebsd@omnilan.de)
Received: from mh0.gentlemail.de (mh0.gentlemail.de [IPv6:2a00:e10:2800::a135])
 by mx0.gentlemail.de (8.14.5/8.14.5) with ESMTP id w2V9H5dU012347;
 Sat, 31 Mar 2018 11:17:05 +0200 (CEST)
 (envelope-from freebsd@omnilan.de)
Received: from titan.inop.mo1.omnilan.net (s1.omnilan.de [217.91.127.234])
 (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mh0.gentlemail.de (Postfix) with ESMTPSA id EA649F6C;
 Sat, 31 Mar 2018 11:17:04 +0200 (CEST)
Message-ID: <5ABF5210.5080904@omnilan.de>
Date: Sat, 31 Mar 2018 11:17:04 +0200
From: Harry Schmalzbauer 
Organization: OmniLAN
User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; de-DE;
 rv:1.9.2.8) Gecko/20100906 Lightning/1.0b2 Thunderbird/3.1.2
MIME-Version: 1.0
CC: src-committers@freebsd.org, svn-src-all@freebsd.org
Subject: Re: svn commit: r324102 - head/sys/netsmb
References: <201709291553.v8TFrQbu022220@repo.freebsd.org>
In-Reply-To: <201709291553.v8TFrQbu022220@repo.freebsd.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7
 (mx0.gentlemail.de [IPv6:2a00:e10:2800::a130]);
 Sat, 31 Mar 2018 11:17:05 +0200 (CEST)
X-Milter: Spamilter (Reciever: mx0.gentlemail.de; Sender-ip: ;
 Sender-helo: mh0.gentlemail.de; )
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 09:17:08 -0000

 Bezglich Conrad Meyer's Nachricht vom 29.09.2017 17:53 (localtime):
> Author: cem
> Date: Fri Sep 29 15:53:26 2017
> New Revision: 324102
> URL: https://svnweb.freebsd.org/changeset/base/324102
>
> Log:
>   netsmb: Fix buggy/racy smb_strdupin()
>   
>   smb_strdupin() tried to roll a copyin() based strlen to allocate a buffer
>   and then blindly copyin that size.  Of course, a malicious user program
>   could simultaneously manipulate the buffer, resulting in a non-terminated
>   string being copied.
>   
>   Later assumptions in the code rely upon the string being nul-terminated.
>   
>   Just use copyinstr() and drop the racy sizing.
>   
>   PR:		222687
>   Reported by:	Meng Xu 
>   Security:	possible local DoS
>   Sponsored by:	Dell EMC Isilon

Does anybody want to MFC this one before 11.2?

Thanks,

-harry

From owner-svn-src-all@freebsd.org  Sat Mar 31 09:19:20 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 80F85F7177F;
 Sat, 31 Mar 2018 09:19:20 +0000 (UTC)
 (envelope-from freebsd@omnilan.de)
Received: from mx0.gentlemail.de (mx0.gentlemail.de [IPv6:2a00:e10:2800::a130])
 (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 07F757A30B;
 Sat, 31 Mar 2018 09:19:19 +0000 (UTC)
 (envelope-from freebsd@omnilan.de)
Received: from mh0.gentlemail.de (mh0.gentlemail.de [78.138.80.135])
 by mx0.gentlemail.de (8.14.5/8.14.5) with ESMTP id w2V9JIvm012358;
 Sat, 31 Mar 2018 11:19:18 +0200 (CEST)
 (envelope-from freebsd@omnilan.de)
Received: from titan.inop.mo1.omnilan.net (s1.omnilan.de [217.91.127.234])
 (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mh0.gentlemail.de (Postfix) with ESMTPSA id 8C126F6E;
 Sat, 31 Mar 2018 11:19:18 +0200 (CEST)
Message-ID: <5ABF5296.3050307@omnilan.de>
Date: Sat, 31 Mar 2018 11:19:18 +0200
From: Harry Schmalzbauer 
Organization: OmniLAN
User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; de-DE;
 rv:1.9.2.8) Gecko/20100906 Lightning/1.0b2 Thunderbird/3.1.2
MIME-Version: 1.0
To: Andriy Voskoboinyk 
CC: Bryan Drewery , svn-src-head@freebsd.org,
 svn-src-all@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r324673 - head/sys/kern
References: <201710162146.v9GLkB6t036842@repo.freebsd.org>
 <5305175e-e8d2-453d-9ba6-0281af1582a9@FreeBSD.org>
 
In-Reply-To: 
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Greylist: ACL 130 matched, not delayed by milter-greylist-4.2.7
 (mx0.gentlemail.de [78.138.80.130]); Sat, 31 Mar 2018 11:19:18 +0200 (CEST)
X-Milter: Spamilter (Reciever: mx0.gentlemail.de; Sender-ip: 78.138.80.135;
 Sender-helo: mh0.gentlemail.de; )
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 09:19:20 -0000

 Bezüglich Andriy Voskoboinyk's Nachricht vom 17.10.2017 00:50 (localtime):
> Tue, 17 Oct 2017 00:53:28 +0300 було написано Bryan Drewery
> :
>
>> On 10/16/2017 2:46 PM, Andriy Voskoboinyk wrote:
>>> Author: avos
>>> Date: Mon Oct 16 21:46:11 2017
>>> New Revision: 324673
>>> URL: https://svnweb.freebsd.org/changeset/base/324673
>>>
>>> Log:
>>>   mbuf(9): unbreak m_fragment()
>>
>> How was it broken
>
> Due to m_cat() usage reason (as described below); this part was
> not changed since function creation in r119644.
>
>> and since when?
>
> No idea here - probably, it was partially working until m_cat()
> improvement in r242256.
>
> P.S. Just checked with m_fragment(m, M_NOWAIT, -2) placed
> right before ieee80211_mbuf_defrag() (from D4077) and
> various m_len printf's before and after - it defragments
> frames before this change and works as intended after it.
>
>>
>>>
>>>   - Fix it by replacing m_cat() with m_prev->m_next = m_new
>>>   (m_cat() will try to append data - as a result, there will be no
>>>   fragmentation).
>>>   - Move some constants out of the loop.
>>>
>>>   Was previously tested with D4077.
>>>
>>>   Differential Revision:    https://reviews.freebsd.org/D4090


Will r324673 be MFCd before 11.2?

Thanks,

-harry

From owner-svn-src-all@freebsd.org  Sat Mar 31 09:33:50 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 78FD0F7268F;
 Sat, 31 Mar 2018 09:33:50 +0000 (UTC)
 (envelope-from freebsd@omnilan.de)
Received: from mx0.gentlemail.de (mx0.gentlemail.de [IPv6:2a00:e10:2800::a130])
 (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 006527ACE1;
 Sat, 31 Mar 2018 09:33:49 +0000 (UTC)
 (envelope-from freebsd@omnilan.de)
Received: from mh0.gentlemail.de (ezra.dcm1.omnilan.net [78.138.80.135])
 by mx0.gentlemail.de (8.14.5/8.14.5) with ESMTP id w2V9XmlY012477;
 Sat, 31 Mar 2018 11:33:48 +0200 (CEST)
 (envelope-from freebsd@omnilan.de)
Received: from titan.inop.mo1.omnilan.net (s1.omnilan.de [217.91.127.234])
 (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mh0.gentlemail.de (Postfix) with ESMTPSA id 90B3CF72;
 Sat, 31 Mar 2018 11:33:48 +0200 (CEST)
Message-ID: <5ABF55FC.6030102@omnilan.de>
Date: Sat, 31 Mar 2018 11:33:48 +0200
From: Harry Schmalzbauer 
Organization: OmniLAN
User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; de-DE;
 rv:1.9.2.8) Gecko/20100906 Lightning/1.0b2 Thunderbird/3.1.2
MIME-Version: 1.0
To: Sean Bruno 
CC: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: Re: svn commit: r324508 - head/sys/kern
References: <201710102221.v9AML554015782@repo.freebsd.org>
In-Reply-To: <201710102221.v9AML554015782@repo.freebsd.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Greylist: ACL 130 matched, not delayed by milter-greylist-4.2.7
 (mx0.gentlemail.de [78.138.80.130]); Sat, 31 Mar 2018 11:33:48 +0200 (CEST)
X-Milter: Spamilter (Reciever: mx0.gentlemail.de; Sender-ip: 78.138.80.135;
 Sender-helo: mh0.gentlemail.de; )
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 09:33:50 -0000

 Bezglich Sean Bruno's Nachricht vom 11.10.2017 00:21 (localtime):
> Author: sbruno
> Date: Tue Oct 10 22:21:05 2017
> New Revision: 324508
> URL: https://svnweb.freebsd.org/changeset/base/324508
>
> Log:
>   match sendfile() error handling to send().
>   
>   Sendfile() should match the error checking order of send() which
>   is currently:
>   
>   SBS_CANTSENDMORE
>   so_error
>   SS_ISCONNECTED
>   
>   Submitted by:	Jason Eggleston 
>   Reviewed by:	glebius
>   MFC after:	2 weeks
>   Sponsored by:	Limelight Networks
>   Differential Revision:	https://reviews.freebsd.org/D12633
>
> Modified:
>   head/sys/kern/kern_sendfile.c
>

I'm still applying this one locally to stable/11.
Is it going to be MFCd before 11.2?

There are a view more candidates:
https://svnweb.freebsd.org/base?view=revision&revision=324601 along with
r324448
https://svnweb.freebsd.org/base?view=revision&revision=327596
https://svnweb.freebsd.org/base?view=revision&revision=328977
These were flagged for MFC with expired defer time.
And tomorrow this one was supposed to be MFCd also:
https://svnweb.freebsd.org/base?view=revision&revision=331130

Thanks,

-harry

From owner-svn-src-all@freebsd.org  Sat Mar 31 09:35:40 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CDD3FF728D2;
 Sat, 31 Mar 2018 09:35:40 +0000 (UTC)
 (envelope-from freebsd@omnilan.de)
Received: from mx0.gentlemail.de (mx0.gentlemail.de [IPv6:2a00:e10:2800::a130])
 (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 507887AE91;
 Sat, 31 Mar 2018 09:35:40 +0000 (UTC)
 (envelope-from freebsd@omnilan.de)
Received: from mh0.gentlemail.de (ezra.dcm1.omnilan.net [78.138.80.135])
 by mx0.gentlemail.de (8.14.5/8.14.5) with ESMTP id w2V9Zdqb012493;
 Sat, 31 Mar 2018 11:35:39 +0200 (CEST)
 (envelope-from freebsd@omnilan.de)
Received: from titan.inop.mo1.omnilan.net (s1.omnilan.de [217.91.127.234])
 (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by mh0.gentlemail.de (Postfix) with ESMTPSA id 1782BF74;
 Sat, 31 Mar 2018 11:35:39 +0200 (CEST)
Message-ID: <5ABF566A.2050907@omnilan.de>
Date: Sat, 31 Mar 2018 11:35:38 +0200
From: Harry Schmalzbauer 
Organization: OmniLAN
User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; de-DE;
 rv:1.9.2.8) Gecko/20100906 Lightning/1.0b2 Thunderbird/3.1.2
MIME-Version: 1.0
To: src-committers@freebsd.org
CC: svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject: Re: svn commit: r317567 - head/sys/x86/x86
References: <201704281825.v3SIPAnU089576@repo.freebsd.org>
In-Reply-To: <201704281825.v3SIPAnU089576@repo.freebsd.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Greylist: ACL 130 matched, not delayed by milter-greylist-4.2.7
 (mx0.gentlemail.de [78.138.80.130]); Sat, 31 Mar 2018 11:35:39 +0200 (CEST)
X-Milter: Spamilter (Reciever: mx0.gentlemail.de; Sender-ip: 78.138.80.135;
 Sender-helo: mh0.gentlemail.de; )
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 09:35:41 -0000

 Bezglich Conrad Meyer's Nachricht vom 28.04.2017 20:25 (localtime):
> Author: cem
> Date: Fri Apr 28 18:25:10 2017
> New Revision: 317567
> URL: https://svnweb.freebsd.org/changeset/base/317567
>
> Log:
>   x86 MCA: Fix a deadlock in MCA exception processing
>   
>   In exceptional circumstances, an MCA exception will trigger when the
>   freelist is exhausted. In such a case, no error will be logged on the list
>   and 'mca_count' will not be incremented.
>   
>   Prior to this patch, all CPUs that received the exception would spin
>   forever.
>   
>   With this change, the CPU that detects the error but finds the freelist
>   empty will proceed to panic the machine, ending the deadlock.
>   
>   A follow-up to r260457.
>   
>   Reported by:	Ryan Libby 
>   Reviewed by:	jhb@
>   Sponsored by:	Dell EMC Isilon
>   Differential Revision:	https://reviews.freebsd.org/D10536
>
> Modified:
>   head/sys/x86/x86/mca.c

Does anybody want to MFC this one before 11.2?

Thanks,

-harry




From owner-svn-src-all@freebsd.org  Sat Mar 31 11:38:24 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E44CF7A666;
 Sat, 31 Mar 2018 11:38:22 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4879E7F071;
 Sat, 31 Mar 2018 11:38:22 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 41ECF17440;
 Sat, 31 Mar 2018 11:38:22 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VBcMdl014051;
 Sat, 31 Mar 2018 11:38:22 GMT (envelope-from dim@FreeBSD.org)
Received: (from dim@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VBcKHP014025;
 Sat, 31 Mar 2018 11:38:20 GMT (envelope-from dim@FreeBSD.org)
Message-Id: <201803311138.w2VBcKHP014025@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org
 using -f
From: Dimitry Andric 
Date: Sat, 31 Mar 2018 11:38:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331838 - in stable/11: .
 contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray
 contrib/compiler-rt/lib/BlocksRuntime contrib/compiler-rt/lib/asan
 contrib/compiler-rt/l...
X-SVN-Group: stable-11
X-SVN-Commit-Author: dim
X-SVN-Commit-Paths: in stable/11: . contrib/compiler-rt/include/sanitizer
 contrib/compiler-rt/include/xray contrib/compiler-rt/lib/BlocksRuntime
 contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins
 contrib/compi...
X-SVN-Commit-Revision: 331838
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 11:38:24 -0000

Author: dim
Date: Sat Mar 31 11:38:16 2018
New Revision: 331838
URL: https://svnweb.freebsd.org/changeset/base/331838

Log:
  Merge clang, llvm, lld, lldb, compiler-rt and libc++ 6.0.0 release, and
  several follow-up fixes.
  
  MFC r327952:
  
  Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to
  6.0.0 (branches/release_60 r321788).  Upstream has branched for the
  6.0.0 release, which should be in about 6 weeks.  Please report bugs and
  regressions, so we can get them into the release.
  
  Please note that from 3.5.0 onwards, clang, llvm and lldb require C++11
  support to build; see UPDATING for more information.
  
  MFC r328010:
  
  Pull in r322473 from upstream llvm trunk (by Andrei Elovikov):
  
    [LV] Don't call recordVectorLoopValueForInductionCast for
    newly-created IV from a trunc.
  
    Summary:
    This method is supposed to be called for IVs that have casts in their
    use-def chains that are completely ignored after vectorization under
    PSE. However, for truncates of such IVs the same InductionDescriptor
    is used during creation/widening of both original IV based on PHINode
    and new IV based on TruncInst.
  
    This leads to unintended second call to
    recordVectorLoopValueForInductionCast with a VectorLoopVal set to the
    newly created IV for a trunc and causes an assert due to attempt to
    store new information for already existing entry in the map. This is
    wrong and should not be done.
  
    Fixes PR35773.
  
    Reviewers: dorit, Ayal, mssimpso
  
    Reviewed By: dorit
  
    Subscribers: RKSimon, dim, dcaballe, hsaito, llvm-commits, hiraditya
  
    Differential Revision: https://reviews.llvm.org/D41913
  
  This should fix "Vector value already set for part" assertions when
  building the net/iodine and sysutils/daa2iso ports.
  
  Reported by:	jbeich
  PR:		224867, 224868
  
  MFC r328090:
  
  Pull in r322623 from upstream llvm trunk (by Andrew V. Tischenko):
  
    Allow usage of X86-prefixes as separate instrs.
    Differential Revision: https://reviews.llvm.org/D42102
  
  This should fix parse errors when x86 prefixes (such as 'lock' and
  'rep') are followed by various non-mnemonic tokens, e.g. comments, .byte
  directives and labels.
  
  PR:		224669, 225054
  
  MFC r328091:
  
  Revert r327340, as the workaround for rep prefixes followed by .byte
  directives is no longer needed after r328090.
  
  MFC r328141 (by emaste):
  
  lld: Fix for ld.lld does not accept "AT" syntax for declaring LMA region
  
  AT> lma_region expression allows to specify the memory region
  for section load address.
  
  Should fix [upstream LLVM] PR35684.
  
  LLVM review: https://reviews.llvm.org/D41397
  
  Obtained from:	LLVM r322359 by George Rimar
  
  MFC r328143 (by emaste):
  
  lld: Handle parsing AT(ADDR(.foo-bar)).
  
  The problem we had with it is that anything inside an AT is an
  expression, so we failed to parse the section name because of the - in
  it.
  
  Requested by:	royger
  Obtained from:	LLVM r322801 by Rafael Espindola
  
  MFC r328144 (by emaste):
  
  lld: Fix incorrect physical address on self-referencing AT command.
  
  When a section placement (AT) command references the section itself,
  the physical address of the section in the ELF header was calculated
  incorrectly due to alignment happening right after the location
  pointer's value was captured.
  
  The problem was diagnosed and the first version of the patch written
  by Erick Reyes.
  
  Obtained from:	LLVM r322421 by Rafael Espindola
  
  MFC r328145:
  
  Pull in r322016 from upstream llvm trunk (by Sanjay Patel):
  
    [ValueTracking] remove overzealous assert
  
    The test is derived from a failing fuzz test:
    https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5008
  
    Credit to @rksimon for pointing out the problem.
  
  This should fix "Bad flavor while matching min/max" errors when building
  the graphics/libsixel and science/kst2 ports.
  
  Reported by:	jbeich
  PR:		225268, 225269
  
  MFC r328146:
  
  Pull in r322106 from upstream llvm trunk (by Alexey Bataev):
  
    [COST]Fix PR35865: Fix cost model evaluation for shuffle on X86.
  
    Summary:
    If the vector type is transformed to non-vector single type, the
    compile may crash trying to get vector information about non-vector
    type.
  
    Reviewers: RKSimon, spatel, mkuper, hfinkel
  
    Subscribers: llvm-commits
  
    Differential Revision: https://reviews.llvm.org/D41862
  
  This should fix "Not a vector MVT!" errors when building the
  games/dhewm3 port.
  
  Reported by:	jbeich
  PR:		225271
  
  MFC r328286 (by emaste):
  
  lld: Don't mark a shared library as needed because of a lazy symbol.
  
  Obtained from:	LLVM r323221 by Rafael Esp?ndola
  
  MFC r328381:
  
  Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to
  6.0.0 (branches/release_60 r323338).
  
  PR:		224669
  
  MFC r328513:
  
  Pull in r322245 from upstream clang trunk (by Craig Topper):
  
    [X86] Make -mavx512f imply -mfma and -mf16c in the frontend like it
    does in the backend.
  
    Similarly, make -mno-fma and -mno-f16c imply -mno-avx512f.
  
    Withou this  "-mno-sse -mavx512f" ends up with avx512f being enabled
    in the frontend but disabled in the backend.
  
  Reported by:	pawel
  PR:		225488
  
  MFC r328542 (by emaste):
  
  lld: Use lookup instead of find. NFC, just simpler.
  
  Obtained from:	LLVM r323395 by Rafael Espindola
  
  MFC r328543 (by emaste):
  
  lld: Only lookup LMARegion once. NFC.
  
  This is similar to how we handle MemRegion.
  
  Obtained from:	LLVM r323396 by Rafael Espindola
  
  MFC r328544 (by emaste):
  
  lld: Remove MemRegionOffset. NFC.
  
  We can just use a member variable in MemoryRegion.
  
  Obtained from:	LLVM r323399 by Rafael Espindola
  
  MFC r328545 (by emaste):
  
  lld: Simplify. NFC.
  
  Obtained from:	LLVM r323440 by Rafael Espindola
  
  MFC r328546 (by emaste):
  
  lld: Improve LMARegion handling.
  
  This fixes the crash reported at [LLVM] PR36083.
  
  The issue is that we were trying to put all the sections in the same
  PT_LOAD and crashing trying to write past the end of the file.
  
  This also adds accounting for used space in LMARegion, without it all
  3 PT_LOADs would have the same physical address.
  
  Obtained from:	LLVM r323449 by Rafael Espindola
  
  MFC r328547 (by emaste):
  
  lld: Move LMAOffset from the OutputSection to the PhdrEntry. NFC.
  
  If two sections are in the same PT_LOAD, their relatives offsets,
  virtual address and physical addresses are all the same.
  
  [Rafael] initially wanted to have a single global LMAOffset, on the
  assumption that every ELF file was in practiced loaded contiguously in
  both physical and virtual memory.
  
  Unfortunately that is not the case. The linux kernel has:
  
    LOAD           0x200000 0xffffffff81000000 0x0000000001000000 0xced000 0xced000 R E 0x200000
    LOAD           0x1000000 0xffffffff81e00000 0x0000000001e00000 0x15f000 0x15f000 RW  0x200000
    LOAD           0x1200000 0x0000000000000000 0x0000000001f5f000 0x01b198 0x01b198 RW  0x200000
    LOAD           0x137b000 0xffffffff81f7b000 0x0000000001f7b000 0x116000 0x1ec000 RWE 0x200000
  
  The delta for all but the third PT_LOAD is the same:
  0xffffffff80000000. [Rafael] thinks the 3rd one is a hack for implementing
  per cpu data, but we can't break that.
  
  Obtained from:	LLVM r323456 by Rafael Espindola
  
  MFC r328548 (by emaste):
  
  lld: Put the header in the first PT_LOAD even if that PT_LOAD has a LMAExpr
  
  The root problem is that we were creating a PT_LOAD just for the header.
  That was technically valid, but inconvenient: we should not be making
  the ELF discontinuous.
  
  The solution is to allow a section with LMAExpr to be added to a PT_LOAD
  if that PT_LOAD doesn't already have a LMAExpr.
  
  LLVM PR:	36017
  Obtained from:	LLVM r323625 by Rafael Espindola
  
  MFC r328594 (by emaste):
  
  Pull in r322108 from upstream llvm trunk (by Rafael Esp?ndola):
  
    Make one of the emitFill methods non virtual. NFC.
  
    This is just preparatory work to fix [LLVM] PR35858.
  
  MFC r328595 (by emaste):
  
  Pull in r322123 from upstream llvm trunk (by Rafael Esp?ndola):
  
    Don't create MCFillFragment directly.
  
    Instead use higher level APIs that take care of most bookkeeping.
  
  MFC r328596 (by emaste):
  
  Pull in r322131 from upstream llvm trunk (by Rafael Esp?ndola):
  
    Use a MCExpr for the size of MCFillFragment.
  
    This allows the size to be found during ralaxation. This fixes
    [LLVM] pr35858.
  
  Requested by:	royger
  
  MFC r328753:
  
  Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to
  6.0.0 (branches/release_60 r323948).
  
  PR:		224669
  
  MFC r328817:
  
  Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to
  6.0.0 (branches/release_60 r324090).
  
  This introduces retpoline support, with the -mretpoline flag.  The
  upstream initial commit message (r323155 by Chandler Carruth) contains
  quite a bit of explanation.  Quoting:
  
    Introduce the "retpoline" x86 mitigation technique for variant #2 of
    the speculative execution vulnerabilities disclosed today,
    specifically identified by CVE-2017-5715, "Branch Target Injection",
    and is one of the two halves to Spectre.
  
    Summary:
    First, we need to explain the core of the vulnerability. Note that
    this is a very incomplete description, please see the Project Zero
    blog post for details:
    https://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html
  
    The basis for branch target injection is to direct speculative
    execution of the processor to some "gadget" of executable code by
    poisoning the prediction of indirect branches with the address of
    that gadget. The gadget in turn contains an operation that provides a
    side channel for reading data. Most commonly, this will look like a
    load of secret data followed by a branch on the loaded value and then
    a load of some predictable cache line. The attacker then uses timing
    of the processors cache to determine which direction the branch took
    *in the speculative execution*, and in turn what one bit of the
    loaded value was. Due to the nature of these timing side channels and
    the branch predictor on Intel processors, this allows an attacker to
    leak data only accessible to a privileged domain (like the kernel)
    back into an unprivileged domain.
  
    The goal is simple: avoid generating code which contains an indirect
    branch that could have its prediction poisoned by an attacker. In
    many cases, the compiler can simply use directed conditional branches
    and a small search tree. LLVM already has support for lowering
    switches in this way and the first step of this patch is to disable
    jump-table lowering of switches and introduce a pass to rewrite
    explicit indirectbr sequences into a switch over integers.
  
    However, there is no fully general alternative to indirect calls. We
    introduce a new construct we call a "retpoline" to implement indirect
    calls in a non-speculatable way. It can be thought of loosely as a
    trampoline for indirect calls which uses the RET instruction on x86.
    Further, we arrange for a specific call->ret sequence which ensures
    the processor predicts the return to go to a controlled, known
    location. The retpoline then "smashes" the return address pushed onto
    the stack by the call with the desired target of the original
    indirect call. The result is a predicted return to the next
    instruction after a call (which can be used to trap speculative
    execution within an infinite loop) and an actual indirect branch to
    an arbitrary address.
  
    On 64-bit x86 ABIs, this is especially easily done in the compiler by
    using a guaranteed scratch register to pass the target into this
    device.  For 32-bit ABIs there isn't a guaranteed scratch register
    and so several different retpoline variants are introduced to use a
    scratch register if one is available in the calling convention and to
    otherwise use direct stack push/pop sequences to pass the target
    address.
  
    This "retpoline" mitigation is fully described in the following blog
    post: https://support.google.com/faqs/answer/7625886
  
    We also support a target feature that disables emission of the
    retpoline thunk by the compiler to allow for custom thunks if users
    want them.  These are particularly useful in environments like
    kernels that routinely do hot-patching on boot and want to hot-patch
    their thunk to different code sequences. They can write this custom
    thunk and use `-mretpoline-external-thunk` *in addition* to
    `-mretpoline`. In this case, on x86-64 thu thunk names must be:
    ```
      __llvm_external_retpoline_r11
    ```
    or on 32-bit:
    ```
      __llvm_external_retpoline_eax
      __llvm_external_retpoline_ecx
      __llvm_external_retpoline_edx
      __llvm_external_retpoline_push
    ```
    And the target of the retpoline is passed in the named register, or in
    the case of the `push` suffix on the top of the stack via a `pushl`
    instruction.
  
    There is one other important source of indirect branches in x86 ELF
    binaries: the PLT. These patches also include support for LLD to
    generate PLT entries that perform a retpoline-style indirection.
  
    The only other indirect branches remaining that we are aware of are
    from precompiled runtimes (such as crt0.o and similar). The ones we
    have found are not really attackable, and so we have not focused on
    them here, but eventually these runtimes should also be replicated for
    retpoline-ed configurations for completeness.
  
    For kernels or other freestanding or fully static executables, the
    compiler switch `-mretpoline` is sufficient to fully mitigate this
    particular attack. For dynamic executables, you must compile *all*
    libraries with `-mretpoline` and additionally link the dynamic
    executable and all shared libraries with LLD and pass `-z
    retpolineplt` (or use similar functionality from some other linker).
    We strongly recommend also using `-z now` as non-lazy binding allows
    the retpoline-mitigated PLT to be substantially smaller.
  
    When manually apply similar transformations to `-mretpoline` to the
    Linux kernel we observed very small performance hits to applications
    running typic al workloads, and relatively minor hits (approximately
    2%) even for extremely syscall-heavy applications. This is largely
    due to the small number of indirect branches that occur in
    performance sensitive paths of the kernel.
  
    When using these patches on statically linked applications,
    especially C++ applications, you should expect to see a much more
    dramatic performance hit. For microbenchmarks that are switch,
    indirect-, or virtual-call heavy we have seen overheads ranging from
    10% to 50%.
  
    However, real-world workloads exhibit substantially lower performance
    impact. Notably, techniques such as PGO and ThinLTO dramatically
    reduce the impact of hot indirect calls (by speculatively promoting
    them to direct calls) and allow optimized search trees to be used to
    lower switches. If you need to deploy these techniques in C++
    applications, we *strongly* recommend that you ensure all hot call
    targets are statically linked (avoiding PLT indirection) and use both
    PGO and ThinLTO. Well tuned servers using all of these techniques saw
    5% - 10% overhead from the use of retpoline.
  
    We will add detailed documentation covering these components in
    subsequent patches, but wanted to make the core functionality
    available as soon as possible. Happy for more code review, but we'd
    really like to get these patches landed and backported ASAP for
    obvious reasons. We're planning to backport this to both 6.0 and 5.0
    release streams and get a 5.0 release with just this cherry picked
    ASAP for distros and vendors.
  
    This patch is the work of a number of people over the past month:
    Eric, Reid, Rui, and myself. I'm mailing it out as a single commit
    due to the time sensitive nature of landing this and the need to
    backport it. Huge thanks to everyone who helped out here, and
    everyone at Intel who helped out in discussions about how to craft
    this. Also, credit goes to Paul Turner (at Google, but not an LLVM
    contributor) for much of the underlying retpoline design.
  
    Reviewers: echristo, rnk, ruiu, craig.topper, DavidKreitzer
  
    Subscribers: sanjoy, emaste, mcrosier, mgorny, mehdi_amini, hiraditya, llvm-commits
  
    Differential Revision: https://reviews.llvm.org/D41723
  
  PR:		224669
  
  MFC r329033:
  
  Pull in r324594 from upstream clang trunk (by Alexander Ivchenko):
  
    Fix for #31362 - ms_abi is implemented incorrectly for values >=16
    bytes.
  
    Summary:
    This patch is a fix for following issue:
    https://bugs.llvm.org/show_bug.cgi?id=31362 The problem was caused by
    front end lowering C calling conventions without taking into account
    calling conventions enforced by attribute. In this case win64cc was
    no correctly lowered on targets other than Windows.
  
    Reviewed By: rnk (Reid Kleckner)
  
    Differential Revision: https://reviews.llvm.org/D43016
  
    Author: belickim 
  
  This fixes clang 6.0.0 assertions when building the emulators/wine and
  emulators/wine-devel ports, and should also make it use the correct
  Windows calling conventions.  Bump __FreeBSD_version to make the fix
  easy to detect.
  
  PR:		224863
  
  MFC r329223:
  
  Pull in r323998 from upstream clang trunk (by Richard Smith):
  
    PR36157: When injecting an implicit function declaration in C89, find
    the right DeclContext rather than injecting it wherever we happen to
    be.
  
    This avoids creating functions whose DeclContext is a struct or
    similar.
  
  This fixes assertion failures when parsing certain not-completely-valid
  struct declarations.
  
  Reported by:	ae
  PR:		225862
  
  MFC r329410:
  
  Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to
  6.0.0 (branches/release_60 r325330).
  
  PR:		224669
  
  MFC r329983:
  
  Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to
  6.0.0 (branches/release_60 r325932).  This corresponds to 6.0.0 rc3.
  
  PR:		224669
  
  MFC r330384:
  
  Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to
  6.0.0 release (upstream r326565).
  
  Release notes for llvm, clang and lld will be available here soon:
  
  
  
  
  Relnotes:	yes
  PR:		224669
  
  MFC r330686:
  
  Pull in r326882 from upstream llvm trunk (by Sjoerd Meijer):
  
    [ARM] Fix for PR36577
  
    Don't PerformSHLSimplify if the given node is used by a node that
    also uses a constant because we may get stuck in an infinite combine
    loop.
  
    bugzilla: https://bugs.llvm.org/show_bug.cgi?id=36577
  
    Patch by Sam Parker.
  
    Differential Revision: https://reviews.llvm.org/D44097
  
  This fixes a hang when compiling one particular file in java/openjdk8
  for armv6 and armv7.
  
  Reported by:	swills
  PR:		226388
  
  MFC r331065:
  
  Pull in r327638 from upstream llvm trunk (by Matthew Simpson):
  
    [ConstantFolding, InstSimplify] Handle more vector GEPs
  
    This patch addresses some additional cases where the compiler crashes
    upon encountering vector GEPs. This should fix PR36116.
  
    Differential Revision: https://reviews.llvm.org/D44219
    Reference: https://bugs.llvm.org/show_bug.cgi?id=36116
  
  This fixes an assertion when building the emulators/snes9x port.
  
  Reported by:	jbeich
  PR:		225471
  
  MFC r331066:
  
  Pull in r321999 from upstream clang trunk (by Ivan A. Kosarev):
  
    [CodeGen] Fix TBAA info for accesses to members of base classes
  
    Resolves:
    Bug 35724 - regression (r315984): fatal error: error in backend:
    Broken function found (Did not see access type in access path!)
    https://bugs.llvm.org/show_bug.cgi?id=35724
  
    Differential Revision: https://reviews.llvm.org/D41547
  
  This fixes "Did not see access type in access path" fatal errors when
  building the devel/gdb port (version 8.1).
  
  Reported by:	jbeich
  PR:		226658
  
  MFC r331366:
  
  Pull in r327101 from upstream llvm trunk (by Rafael Espindola):
  
    Don't treat .symver as a regular alias definition.
  
    This patch starts simplifying the handling of .symver.
  
    For now it just moves the responsibility for creating an alias down to
    the streamer. With that the asm streamer can pass a .symver unchanged,
    which is nice since gas cannot parse "foo@bar = zed".
  
    In a followup I hope to move the handling down to the writer so that
    we don't need special hacks for avoiding breaking names with @@@ on
    windows.
  
  Pull in r327160 from upstream llvm trunk (by Rafael Espindola):
  
    Delay creating an alias for @@@.
  
    With this we only create an alias for @@@ once we know if it should
    use @ or @@. This avoids last minutes renames and hacks to handle MS
    names.
  
    This only handles the ELF writer. LTO still has issues with @@@
    aliases.
  
  Pull in r327928 from upstream llvm trunk (by Vitaly Buka):
  
    Object: Move attribute calculation into RecordStreamer. NFC
  
    Summary: Preparation for D44274
  
    Reviewers: pcc, espindola
  
    Subscribers: hiraditya
  
    Differential Revision: https://reviews.llvm.org/D44276
  
  Pull in r327930 from upstream llvm trunk (by Vitaly Buka):
  
    Object: Fix handling of @@@ in .symver directive
  
    Summary:
    name@@@nodename is going to be replaced with name@@nodename if symbols is
    defined in the assembled file, or name@nodename if undefined.
    https://sourceware.org/binutils/docs/as/Symver.html
  
    Fixes PR36623
  
    Reviewers: pcc, espindola
  
    Subscribers: mehdi_amini, hiraditya
  
    Differential Revision: https://reviews.llvm.org/D44274
  
  Together, these changes fix handling of @@@ in .symver directives when
  doing Link Time Optimization.
  
  Reported by:	Shawn Webb 
  
  MFC r331731:
  
  Pull in r328738 from upstream lld trunk (by Rafael Espindola):
  
    Strip @VER suffices from the LTO output.
  
    This fixes pr36623.
  
    The problem is that we have to parse versions out of names before LTO
    so that LTO can use that information.
  
    When we get the LTO produced .o files, we replace the previous symbols
    with the LTO produced ones, but they still have @ in their names.
  
    We could just trim the name directly, but calling parseSymbolVersion
    to do it is simpler.
  
  This is a follow-up to r331366, since we discovered that lld could
  append version strings to symbols twice, when using Link Time
  Optimization.

Added:
  stable/11/contrib/compiler-rt/include/sanitizer/hwasan_interface.h
     - copied unchanged from r327952, head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h
  stable/11/contrib/compiler-rt/include/sanitizer/scudo_interface.h
     - copied unchanged from r327952, head/contrib/compiler-rt/include/sanitizer/scudo_interface.h
  stable/11/contrib/compiler-rt/lib/asan/asan_fuchsia.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/asan/asan_fuchsia.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h
  stable/11/contrib/compiler-rt/lib/asan/asan_premap_shadow.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/asan/asan_premap_shadow.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_premap_shadow.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/asan/asan_premap_shadow.h
  stable/11/contrib/compiler-rt/lib/asan/asan_shadow_setup.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/asan/asan_shadow_setup.cc
  stable/11/contrib/compiler-rt/lib/builtins/aarch64/
     - copied from r327952, head/contrib/compiler-rt/lib/builtins/aarch64/
  stable/11/contrib/compiler-rt/lib/hwasan/
     - copied from r327952, head/contrib/compiler-rt/lib/hwasan/
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sancov_begin.S
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sancov_begin.S
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sancov_end.S
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sancov_end.S
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_mips.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_mips.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_getauxval.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_getauxval.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_signal_interceptors.inc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_signal_interceptors.inc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_vector.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_vector.h
  stable/11/contrib/compiler-rt/lib/scudo/scudo_interface_internal.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/scudo/scudo_interface_internal.h
  stable/11/contrib/compiler-rt/lib/scudo/scudo_platform.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/scudo/scudo_platform.h
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tsd.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/scudo/scudo_tsd.h
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.cpp
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.cpp
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.inc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.inc
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.cpp
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.cpp
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.inc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.inc
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.cc
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.cc
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.h
  stable/11/contrib/compiler-rt/lib/ubsan_minimal/
     - copied from r327952, head/contrib/compiler-rt/lib/ubsan_minimal/
  stable/11/contrib/compiler-rt/lib/xray/weak_symbols.txt
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/xray/weak_symbols.txt
  stable/11/contrib/compiler-rt/lib/xray/xray_inmemory_log.h
     - copied unchanged from r327952, head/contrib/compiler-rt/lib/xray/xray_inmemory_log.h
  stable/11/contrib/llvm/include/llvm-c/DebugInfo.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm-c/DebugInfo.h
  stable/11/contrib/llvm/include/llvm/Analysis/CmpInstAnalysis.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Analysis/CmpInstAnalysis.h
  stable/11/contrib/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h
  stable/11/contrib/llvm/include/llvm/Analysis/ValueLattice.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Analysis/ValueLattice.h
  stable/11/contrib/llvm/include/llvm/Analysis/ValueLatticeUtils.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Analysis/ValueLatticeUtils.h
  stable/11/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/ARC.def
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/ARC.def
  stable/11/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def
  stable/11/contrib/llvm/include/llvm/CodeGen/CommandFlags.def
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/CommandFlags.def
  stable/11/contrib/llvm/include/llvm/CodeGen/CostTable.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/CostTable.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
  stable/11/contrib/llvm/include/llvm/CodeGen/LiveIntervals.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/LiveIntervals.h
  stable/11/contrib/llvm/include/llvm/CodeGen/LiveStacks.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/LiveStacks.h
  stable/11/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.def
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.def
  stable/11/contrib/llvm/include/llvm/CodeGen/SDNodeProperties.td
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/SDNodeProperties.td
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetCallingConv.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/TargetCallingConv.h
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetFrameLowering.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/TargetFrameLowering.h
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetInstrInfo.h
     - copied, changed from r327952, head/contrib/llvm/include/llvm/CodeGen/TargetInstrInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetLowering.h
     - copied, changed from r327952, head/contrib/llvm/include/llvm/CodeGen/TargetLowering.h
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFile.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFile.h
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.def
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.def
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.h
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h
     - copied, changed from r327952, head/contrib/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordName.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordName.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIATable.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIATable.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbol.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbol.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
  stable/11/contrib/llvm/include/llvm/FuzzMutate/
     - copied from r327952, head/contrib/llvm/include/llvm/FuzzMutate/
  stable/11/contrib/llvm/include/llvm/IR/DiagnosticHandler.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/IR/DiagnosticHandler.h
  stable/11/contrib/llvm/include/llvm/MC/MCAsmMacro.h
     - copied, changed from r329410, head/contrib/llvm/include/llvm/MC/MCAsmMacro.h
  stable/11/contrib/llvm/include/llvm/MC/MCCodePadder.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/MC/MCCodePadder.h
  stable/11/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.def
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.def
  stable/11/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
  stable/11/contrib/llvm/include/llvm/ProfileData/GCOV.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/ProfileData/GCOV.h
  stable/11/contrib/llvm/include/llvm/Support/AMDGPUKernelDescriptor.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Support/AMDGPUKernelDescriptor.h
  stable/11/contrib/llvm/include/llvm/Support/AMDGPUMetadata.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Support/AMDGPUMetadata.h
  stable/11/contrib/llvm/include/llvm/Support/CodeGenCoverage.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Support/CodeGenCoverage.h
  stable/11/contrib/llvm/include/llvm/Support/X86TargetParser.def
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Support/X86TargetParser.def
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h
  stable/11/contrib/llvm/include/llvm/Transforms/Instrumentation/
     - copied from r327952, head/contrib/llvm/include/llvm/Transforms/Instrumentation/
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/CallPromotionUtils.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Transforms/Utils/CallPromotionUtils.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h
     - copied unchanged from r327952, head/contrib/llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h
  stable/11/contrib/llvm/include/llvm/WindowsManifest/
     - copied from r327952, head/contrib/llvm/include/llvm/WindowsManifest/
  stable/11/contrib/llvm/include/llvm/WindowsResource/
     - copied from r327952, head/contrib/llvm/include/llvm/WindowsResource/
  stable/11/contrib/llvm/lib/Analysis/CmpInstAnalysis.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Analysis/CmpInstAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/OptimizationRemarkEmitter.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Analysis/OptimizationRemarkEmitter.cpp
  stable/11/contrib/llvm/lib/Analysis/ValueLattice.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Analysis/ValueLattice.cpp
  stable/11/contrib/llvm/lib/Analysis/ValueLatticeUtils.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Analysis/ValueLatticeUtils.cpp
  stable/11/contrib/llvm/lib/CodeGen/ExpandMemCmp.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/CodeGen/ExpandMemCmp.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveIntervals.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/CodeGen/LiveIntervals.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveStacks.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/CodeGen/LiveStacks.cpp
  stable/11/contrib/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineOperand.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/CodeGen/MachineOperand.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/RecordName.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/CodeView/RecordName.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumSymbol.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumSymbol.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp
  stable/11/contrib/llvm/lib/FuzzMutate/
     - copied from r327952, head/contrib/llvm/lib/FuzzMutate/
  stable/11/contrib/llvm/lib/IR/DiagnosticHandler.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/IR/DiagnosticHandler.cpp
  stable/11/contrib/llvm/lib/MC/MCCodePadder.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/MC/MCCodePadder.cpp
  stable/11/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypeHashing.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypeHashing.cpp
  stable/11/contrib/llvm/lib/ProfileData/GCOV.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/ProfileData/GCOV.cpp
  stable/11/contrib/llvm/lib/Support/AMDGPUMetadata.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Support/AMDGPUMetadata.cpp
  stable/11/contrib/llvm/lib/Support/CodeGenCoverage.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Support/CodeGenCoverage.cpp
  stable/11/contrib/llvm/lib/Support/KnownBits.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Support/KnownBits.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
  stable/11/contrib/llvm/lib/Target/AArch64/SVEInstrFormats.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AArch64/SVEInstrFormats.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/GCNILPSched.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/GCNILPSched.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/GCNProcessors.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/GCNProcessors.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600Processors.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/R600Processors.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIFixWWMLiveness.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/SIFixWWMLiveness.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp
  stable/11/contrib/llvm/lib/Target/ARC/
     - copied from r327952, head/contrib/llvm/lib/Target/ARC/
  stable/11/contrib/llvm/lib/Target/ARM/ARMSystemRegister.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/ARM/ARMSystemRegister.td
  stable/11/contrib/llvm/lib/Target/ARM/Utils/
     - copied from r327952, head/contrib/llvm/lib/Target/ARM/Utils/
  stable/11/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.cpp
  stable/11/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.h
  stable/11/contrib/llvm/lib/Target/BPF/AsmParser/
     - copied from r327952, head/contrib/llvm/lib/Target/BPF/AsmParser/
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonGatherPacketize.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Hexagon/HexagonGatherPacketize.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
     - copied, changed from r327952, head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV65.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV65.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV65.gen.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV65.gen.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonPatternsV65.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Hexagon/HexagonPatternsV65.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV65.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV65.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/InstPrinter/
     - copied from r327952, head/contrib/llvm/lib/Target/Nios2/InstPrinter/
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.h
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2BaseInfo.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2BaseInfo.h
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2ELFObjectWriter.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2ELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2FixupKinds.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2FixupKinds.h
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.h
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.h
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2TargetStreamer.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2TargetStreamer.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2CallingConv.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2CallingConv.td
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.h
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2ISelDAGToDAG.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2ISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.h
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.h
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2MCInstLower.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2MCInstLower.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.h
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.h
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2Schedule.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2Schedule.td
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.h
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.h
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2TargetStreamer.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/Nios2/Nios2TargetStreamer.h
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCMachineBasicBlockUtils.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/PowerPC/PPCMachineBasicBlockUtils.h
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/AsmParser/
     - copied from r327952, head/contrib/llvm/lib/Target/RISCV/AsmParser/
  stable/11/contrib/llvm/lib/Target/RISCV/Disassembler/
     - copied from r327952, head/contrib/llvm/lib/Target/RISCV/Disassembler/
  stable/11/contrib/llvm/lib/Target/RISCV/InstPrinter/
     - copied from r327952, head/contrib/llvm/lib/Target/RISCV/InstPrinter/
  stable/11/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
  stable/11/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h
  stable/11/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h
  stable/11/contrib/llvm/lib/Target/RISCV/RISCV.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCV.h
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVCallingConv.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVCallingConv.td
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.h
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.h
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVInstrFormatsC.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVInstrFormatsC.td
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.h
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoA.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoA.td
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoC.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoC.td
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoD.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoD.td
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoF.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoF.td
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoM.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoM.td
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.h
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp
     - copied, changed from r327952, head/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86InstrVecCompiler.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/X86/X86InstrVecCompiler.td
  stable/11/contrib/llvm/lib/Target/X86/X86SchedBroadwell.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/X86/X86SchedBroadwell.td
  stable/11/contrib/llvm/lib/Target/X86/X86SchedSkylakeClient.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/X86/X86SchedSkylakeClient.td
  stable/11/contrib/llvm/lib/Target/X86/X86SchedSkylakeServer.td
     - copied unchanged from r327952, head/contrib/llvm/lib/Target/X86/X86SchedSkylakeServer.td
  stable/11/contrib/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp
     - copied, changed from r327952, head/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/DivRemPairs.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Transforms/Scalar/DivRemPairs.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp
  stable/11/contrib/llvm/lib/Transforms/Vectorize/VPlan.cpp
     - copied unchanged from r327952, head/contrib/llvm/lib/Transforms/Vectorize/VPlan.cpp
  stable/11/contrib/llvm/lib/Transforms/Vectorize/VPlan.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Transforms/Vectorize/VPlan.h
  stable/11/contrib/llvm/lib/Transforms/Vectorize/VPlanBuilder.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Transforms/Vectorize/VPlanBuilder.h
  stable/11/contrib/llvm/lib/Transforms/Vectorize/VPlanValue.h
     - copied unchanged from r327952, head/contrib/llvm/lib/Transforms/Vectorize/VPlanValue.h
  stable/11/contrib/llvm/lib/WindowsManifest/
     - copied from r327952, head/contrib/llvm/lib/WindowsManifest/
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DataCollection.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/AST/DataCollection.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/QualTypeNames.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/AST/QualTypeNames.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/StmtDataCollectors.td
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/AST/StmtDataCollectors.td
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDeclContext.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDeclContext.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/BodyFarm.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Analysis/BodyFarm.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/AlignedAllocation.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Basic/AlignedAllocation.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTUKinds.td
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTUKinds.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticError.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticError.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoringKinds.td
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoringKinds.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/SanitizerSpecialCaseList.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Basic/SanitizerSpecialCaseList.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/SyncScope.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Basic/SyncScope.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/X86Target.def
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Basic/X86Target.def
  stable/11/contrib/llvm/tools/clang/include/clang/CrossTU/
     - copied from r327952, head/contrib/llvm/tools/clang/include/clang/CrossTU/
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/VariadicMacroSupport.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Lex/VariadicMacroSupport.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/
     - copied from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Execution.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Execution.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/ASTSelection.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/ASTSelection.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Extract/
     - copied from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Extract/
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringAction.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringAction.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRule.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRule.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRules.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRules.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOption.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOption.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptionVisitor.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptionVisitor.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptions.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptions.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringResultConsumer.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringResultConsumer.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringRuleContext.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringRuleContext.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolName.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolName.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/StandaloneExecution.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/StandaloneExecution.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/ToolExecutorPluginRegistry.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/include/clang/Tooling/ToolExecutorPluginRegistry.h
  stable/11/contrib/llvm/tools/clang/lib/AST/DataCollection.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/AST/DataCollection.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/Linkage.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/AST/Linkage.h
  stable/11/contrib/llvm/tools/clang/lib/AST/QualTypeNames.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/AST/QualTypeNames.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/SanitizerSpecialCaseList.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Basic/SanitizerSpecialCaseList.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/Targets/
     - copied from r327952, head/contrib/llvm/tools/clang/lib/Basic/Targets/
  stable/11/contrib/llvm/tools/clang/lib/Basic/Targets.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Basic/Targets.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/ConstantEmitter.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/CodeGen/ConstantEmitter.h
  stable/11/contrib/llvm/tools/clang/lib/CrossTU/
     - copied from r327952, head/contrib/llvm/tools/clang/lib/CrossTU/
  stable/11/contrib/llvm/tools/clang/lib/Format/FormatInternal.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Format/FormatInternal.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/arm64intr.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/arm64intr.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512bitalgintrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/avx512bitalgintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512vbmi2intrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/avx512vbmi2intrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512vlbitalgintrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/avx512vlbitalgintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512vlvnniintrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/avx512vlvnniintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512vnniintrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/avx512vnniintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqvlintrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqvlintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/cetintrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/cetintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/clwbintrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/clwbintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/gfniintrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/gfniintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/vaesintrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/vaesintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/vpclmulqdqintrin.h
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Headers/vpclmulqdqintrin.h
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/ASTDiff/
     - copied from r327952, head/contrib/llvm/tools/clang/lib/Tooling/ASTDiff/
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Execution.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Tooling/Execution.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/
     - copied from r327952, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RefactoringActions.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RefactoringActions.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/SymbolOccurrences.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/SymbolOccurrences.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/StandaloneExecution.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/lib/Tooling/StandaloneExecution.cpp
  stable/11/contrib/llvm/tools/clang/utils/TableGen/ClangDataCollectorsEmitter.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/clang/utils/TableGen/ClangDataCollectorsEmitter.cpp
  stable/11/contrib/llvm/tools/lld/COFF/MinGW.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lld/COFF/MinGW.cpp
  stable/11/contrib/llvm/tools/lld/COFF/MinGW.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lld/COFF/MinGW.h
  stable/11/contrib/llvm/tools/lld/Common/
     - copied from r327952, head/contrib/llvm/tools/lld/Common/
  stable/11/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp
     - copied, changed from r327952, head/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp
  stable/11/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.h
  stable/11/contrib/llvm/tools/lld/ELF/Bits.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lld/ELF/Bits.h
  stable/11/contrib/llvm/tools/lld/include/lld/Common/
     - copied from r327952, head/contrib/llvm/tools/lld/include/lld/Common/
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointName.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointName.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBProcessInfo.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/include/lldb/API/SBProcessInfo.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointName.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointName.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Core/Architecture.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/include/lldb/Core/Architecture.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Host/TaskPool.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/include/lldb/Host/TaskPool.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Utility/ArchSpec.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/include/lldb/Utility/ArchSpec.h
  stable/11/contrib/llvm/tools/lldb/source/API/SBBreakpointName.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/API/SBBreakpointName.cpp
  stable/11/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.cpp
  stable/11/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.h
  stable/11/contrib/llvm/tools/lldb/source/API/SBProcessInfo.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/API/SBProcessInfo.cpp
  stable/11/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointName.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointName.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/common/TaskPool.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Host/common/TaskPool.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Architecture/
     - copied from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Architecture/
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64le-register-enums.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64le-register-enums.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h
  stable/11/contrib/llvm/tools/lldb/source/Utility/ArchSpec.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Utility/ArchSpec.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/PPC64LE_DWARF_Registers.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Utility/PPC64LE_DWARF_Registers.h
  stable/11/contrib/llvm/tools/lldb/source/Utility/PPC64LE_ehframe_Registers.h
     - copied unchanged from r327952, head/contrib/llvm/tools/lldb/source/Utility/PPC64LE_ehframe_Registers.h
  stable/11/contrib/llvm/tools/llvm-dwarfdump/Statistics.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/llvm-dwarfdump/Statistics.cpp
  stable/11/contrib/llvm/tools/llvm-objcopy/
     - copied from r327952, head/contrib/llvm/tools/llvm-objcopy/
  stable/11/contrib/llvm/tools/llvm-pdbutil/InputFile.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/llvm-pdbutil/InputFile.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/InputFile.h
     - copied unchanged from r327952, head/contrib/llvm/tools/llvm-pdbutil/InputFile.h
  stable/11/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp
  stable/11/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.h
     - copied unchanged from r327952, head/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.h
  stable/11/contrib/llvm/tools/llvm-xray/trie-node.h
     - copied unchanged from r327952, head/contrib/llvm/tools/llvm-xray/trie-node.h
  stable/11/contrib/llvm/tools/llvm-xray/xray-stacks.cc
     - copied unchanged from r327952, head/contrib/llvm/tools/llvm-xray/xray-stacks.cc
  stable/11/contrib/llvm/tools/opt/Debugify.cpp
     - copied unchanged from r327952, head/contrib/llvm/tools/opt/Debugify.cpp
  stable/11/contrib/llvm/utils/TableGen/CodeGenHwModes.cpp
     - copied unchanged from r327952, head/contrib/llvm/utils/TableGen/CodeGenHwModes.cpp
  stable/11/contrib/llvm/utils/TableGen/CodeGenHwModes.h
     - copied unchanged from r327952, head/contrib/llvm/utils/TableGen/CodeGenHwModes.h
  stable/11/contrib/llvm/utils/TableGen/InfoByHwMode.cpp
     - copied unchanged from r327952, head/contrib/llvm/utils/TableGen/InfoByHwMode.cpp
  stable/11/contrib/llvm/utils/TableGen/InfoByHwMode.h
     - copied unchanged from r327952, head/contrib/llvm/utils/TableGen/InfoByHwMode.h
  stable/11/contrib/llvm/utils/TableGen/InstrDocsEmitter.cpp
     - copied unchanged from r327952, head/contrib/llvm/utils/TableGen/InstrDocsEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/SDNodeProperties.cpp
     - copied unchanged from r327952, head/contrib/llvm/utils/TableGen/SDNodeProperties.cpp
  stable/11/contrib/llvm/utils/TableGen/SDNodeProperties.h
     - copied unchanged from r327952, head/contrib/llvm/utils/TableGen/SDNodeProperties.h
  stable/11/contrib/llvm/utils/TableGen/X86FoldTablesEmitter.cpp
     - copied unchanged from r327952, head/contrib/llvm/utils/TableGen/X86FoldTablesEmitter.cpp
  stable/11/lib/clang/include/lld/Common/
     - copied from r327952, head/lib/clang/include/lld/Common/
  stable/11/lib/libclang_rt/tsan/
     - copied from r327952, head/lib/libclang_rt/tsan/
  stable/11/lib/libclang_rt/tsan_cxx/
     - copied from r327952, head/lib/libclang_rt/tsan_cxx/
  stable/11/lib/libclang_rt/ubsan_minimal/
     - copied from r327952, head/lib/libclang_rt/ubsan_minimal/
  stable/11/usr.bin/clang/llvm-objcopy/
     - copied from r327952, head/usr.bin/clang/llvm-objcopy/
  stable/11/usr.bin/clang/llvm-pdbutil/llvm-pdbutil.1
     - copied unchanged from r327952, head/usr.bin/clang/llvm-pdbutil/llvm-pdbutil.1
Replaced:
  stable/11/contrib/llvm/lib/CodeGen/IndirectBrExpandPass.cpp
     - copied unchanged from r328817, head/contrib/llvm/lib/CodeGen/IndirectBrExpandPass.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86RetpolineThunks.cpp
     - copied, changed from r328817, head/contrib/llvm/lib/Target/X86/X86RetpolineThunks.cpp
Deleted:
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tls.h
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tls_android.cpp
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tls_android.inc
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tls_context_android.inc
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tls_context_linux.inc
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tls_linux.cpp
  stable/11/contrib/compiler-rt/lib/scudo/scudo_tls_linux.inc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_vector.h
  stable/11/contrib/llvm/include/llvm/Analysis/OptimizationDiagnosticInfo.h
  stable/11/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs/WebAssembly.def
  stable/11/contrib/llvm/include/llvm/CodeGen/CommandFlags.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelAccessor.h
  stable/11/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
  stable/11/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeName.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordBuilder.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeSerializer.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/MSF/MSFStreamLayout.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStreamBuilder.h
  stable/11/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
  stable/11/contrib/llvm/include/llvm/Support/AMDGPUCodeObjectMetadata.h
  stable/11/contrib/llvm/include/llvm/Support/GCOV.h
  stable/11/contrib/llvm/include/llvm/Target/CostTable.h
  stable/11/contrib/llvm/include/llvm/Target/TargetCallingConv.h
  stable/11/contrib/llvm/include/llvm/Target/TargetFrameLowering.h
  stable/11/contrib/llvm/include/llvm/Target/TargetInstrInfo.h
  stable/11/contrib/llvm/include/llvm/Target/TargetLowering.h
  stable/11/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h
  stable/11/contrib/llvm/include/llvm/Target/TargetOpcodes.def
  stable/11/contrib/llvm/include/llvm/Target/TargetOpcodes.h
  stable/11/contrib/llvm/include/llvm/Target/TargetRegisterInfo.h
  stable/11/contrib/llvm/include/llvm/Target/TargetSubtargetInfo.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/CmpInstAnalysis.h
  stable/11/contrib/llvm/lib/Analysis/OptimizationDiagnosticInfo.cpp
  stable/11/contrib/llvm/lib/Analysis/SparsePropagation.cpp
  stable/11/contrib/llvm/lib/CodeGen/BranchCoalescing.cpp
  stable/11/contrib/llvm/lib/CodeGen/CountingFunctionInserter.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveStackAnalysis.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/TypeName.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/TypeSerializer.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/GSI.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/GSI.h
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp
  stable/11/contrib/llvm/lib/IR/GCOV.cpp
  stable/11/contrib/llvm/lib/Support/AMDGPUCodeObjectMetadata.cpp
  stable/11/contrib/llvm/lib/Support/regcclass.h
  stable/11/contrib/llvm/lib/Support/regcname.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64VectorByElementOpt.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/CIInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIFixControlFlowLiveIntervals.cpp
  stable/11/contrib/llvm/lib/Target/AVR/AVRInstrumentFunctions.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsDerived.td
  stable/11/contrib/llvm/lib/Target/Mips/MicroMips64r6InstrFormats.td
  stable/11/contrib/llvm/lib/Target/Mips/MicroMips64r6InstrInfo.td
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXVector.td
  stable/11/contrib/llvm/lib/Target/PowerPC/p9-instrs.txt
  stable/11/contrib/llvm/lib/Transforms/Utils/CmpInstAnalysis.cpp
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisContext.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Core/QualTypeNames.h
  stable/11/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Bitrig.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Bitrig.h
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Core/QualTypeNames.cpp
  stable/11/contrib/llvm/tools/lld/COFF/Error.cpp
  stable/11/contrib/llvm/tools/lld/COFF/Error.h
  stable/11/contrib/llvm/tools/lld/COFF/Memory.h
  stable/11/contrib/llvm/tools/lld/ELF/Error.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Error.h
  stable/11/contrib/llvm/tools/lld/ELF/Memory.h
  stable/11/contrib/llvm/tools/lld/ELF/Threads.h
  stable/11/contrib/llvm/tools/lld/include/lld/Config/
  stable/11/contrib/llvm/tools/lld/include/lld/Core/LLVM.h
  stable/11/contrib/llvm/tools/lld/include/lld/Core/Reproduce.h
  stable/11/contrib/llvm/tools/lld/include/lld/Core/TargetOptionsCommandFlags.h
  stable/11/contrib/llvm/tools/lld/include/lld/Driver/
  stable/11/contrib/llvm/tools/lld/lib/Config/
  stable/11/contrib/llvm/tools/lld/lib/Core/Reproduce.cpp
  stable/11/contrib/llvm/tools/lld/lib/Core/TargetOptionsCommandFlags.cpp
  stable/11/contrib/llvm/tools/lld/utils/
  stable/11/contrib/llvm/tools/lldb/include/lldb/Core/ArchSpec.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Utility/TaskPool.h
  stable/11/contrib/llvm/tools/lldb/source/Core/ArchSpec.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/CMakeLists.txt
  stable/11/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/CMakeLists.txt
  stable/11/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/CMakeLists.txt
  stable/11/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/CMakeLists.txt
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/OCaml/CMakeLists.txt
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/CMakeLists.txt
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/CMakeLists.txt
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/CMakeLists.txt
  stable/11/contrib/llvm/tools/lldb/source/Plugins/StructuredData/CMakeLists.txt
  stable/11/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/CMakeLists.txt
  stable/11/contrib/llvm/tools/lldb/source/Utility/TaskPool.cpp
  stable/11/contrib/llvm/tools/lldb/tools/intel-mpx/IntelMPXTablePlugin.cpp
  stable/11/contrib/llvm/tools/llvm-xray/xray-record-yaml.h
  stable/11/lib/clang/include/lld/Config/
Modified:
  stable/11/ObsoleteFiles.inc
  stable/11/UPDATING
  stable/11/contrib/compiler-rt/include/sanitizer/allocator_interface.h
  stable/11/contrib/compiler-rt/include/sanitizer/asan_interface.h
  stable/11/contrib/compiler-rt/include/sanitizer/common_interface_defs.h
  stable/11/contrib/compiler-rt/include/sanitizer/coverage_interface.h
  stable/11/contrib/compiler-rt/include/sanitizer/esan_interface.h
  stable/11/contrib/compiler-rt/include/sanitizer/lsan_interface.h
  stable/11/contrib/compiler-rt/include/sanitizer/msan_interface.h
  stable/11/contrib/compiler-rt/include/sanitizer/tsan_interface.h
  stable/11/contrib/compiler-rt/include/xray/xray_interface.h
  stable/11/contrib/compiler-rt/include/xray/xray_log_interface.h
  stable/11/contrib/compiler-rt/include/xray/xray_records.h
  stable/11/contrib/compiler-rt/lib/BlocksRuntime/Block.h
  stable/11/contrib/compiler-rt/lib/BlocksRuntime/Block_private.h
  stable/11/contrib/compiler-rt/lib/asan/asan_activation.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_allocator.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_allocator.h
  stable/11/contrib/compiler-rt/lib/asan/asan_descriptions.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_descriptions.h
  stable/11/contrib/compiler-rt/lib/asan/asan_errors.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_errors.h
  stable/11/contrib/compiler-rt/lib/asan/asan_fake_stack.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_flags.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_flags.inc
  stable/11/contrib/compiler-rt/lib/asan/asan_globals.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_init_version.h
  stable/11/contrib/compiler-rt/lib/asan/asan_interceptors.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_interceptors.h
  stable/11/contrib/compiler-rt/lib/asan/asan_internal.h
  stable/11/contrib/compiler-rt/lib/asan/asan_linux.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_mapping.h
  stable/11/contrib/compiler-rt/lib/asan/asan_memory_profile.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_new_delete.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_poisoning.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_poisoning.h
  stable/11/contrib/compiler-rt/lib/asan/asan_posix.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_report.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_report.h
  stable/11/contrib/compiler-rt/lib/asan/asan_rtl.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_scariness_score.h
  stable/11/contrib/compiler-rt/lib/asan/asan_stack.h
  stable/11/contrib/compiler-rt/lib/asan/asan_thread.cc
  stable/11/contrib/compiler-rt/lib/asan/asan_thread.h
  stable/11/contrib/compiler-rt/lib/asan/asan_win.cc
  stable/11/contrib/compiler-rt/lib/builtins/adddf3.c
  stable/11/contrib/compiler-rt/lib/builtins/addsf3.c
  stable/11/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/aeabi_idivmod.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/aeabi_memcmp.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/aeabi_memcpy.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/aeabi_memmove.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/aeabi_memset.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/aeabi_uidivmod.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/bswapdi2.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/bswapsi2.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/clzdi2.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/clzsi2.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/comparesf2.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/divmodsi4.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/divsi3.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/modsi3.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/udivmodsi4.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/udivsi3.S
  stable/11/contrib/compiler-rt/lib/builtins/arm/umodsi3.S
  stable/11/contrib/compiler-rt/lib/builtins/ashldi3.c
  stable/11/contrib/compiler-rt/lib/builtins/ashrdi3.c
  stable/11/contrib/compiler-rt/lib/builtins/assembly.h
  stable/11/contrib/compiler-rt/lib/builtins/clear_cache.c
  stable/11/contrib/compiler-rt/lib/builtins/comparedf2.c
  stable/11/contrib/compiler-rt/lib/builtins/comparesf2.c
  stable/11/contrib/compiler-rt/lib/builtins/cpu_model.c
  stable/11/contrib/compiler-rt/lib/builtins/divdf3.c
  stable/11/contrib/compiler-rt/lib/builtins/divsf3.c
  stable/11/contrib/compiler-rt/lib/builtins/divsi3.c
  stable/11/contrib/compiler-rt/lib/builtins/emutls.c
  stable/11/contrib/compiler-rt/lib/builtins/enable_execute_stack.c
  stable/11/contrib/compiler-rt/lib/builtins/extendhfsf2.c
  stable/11/contrib/compiler-rt/lib/builtins/extendsfdf2.c
  stable/11/contrib/compiler-rt/lib/builtins/fixdfdi.c
  stable/11/contrib/compiler-rt/lib/builtins/fixdfsi.c
  stable/11/contrib/compiler-rt/lib/builtins/fixsfdi.c
  stable/11/contrib/compiler-rt/lib/builtins/fixsfsi.c
  stable/11/contrib/compiler-rt/lib/builtins/fixunsdfdi.c
  stable/11/contrib/compiler-rt/lib/builtins/fixunsdfsi.c
  stable/11/contrib/compiler-rt/lib/builtins/fixunssfdi.c
  stable/11/contrib/compiler-rt/lib/builtins/fixunssfsi.c
  stable/11/contrib/compiler-rt/lib/builtins/floatdidf.c
  stable/11/contrib/compiler-rt/lib/builtins/floatdisf.c
  stable/11/contrib/compiler-rt/lib/builtins/floatsidf.c
  stable/11/contrib/compiler-rt/lib/builtins/floatsisf.c
  stable/11/contrib/compiler-rt/lib/builtins/floatundidf.c
  stable/11/contrib/compiler-rt/lib/builtins/floatundisf.c
  stable/11/contrib/compiler-rt/lib/builtins/floatunsidf.c
  stable/11/contrib/compiler-rt/lib/builtins/floatunsisf.c
  stable/11/contrib/compiler-rt/lib/builtins/int_endianness.h
  stable/11/contrib/compiler-rt/lib/builtins/int_lib.h
  stable/11/contrib/compiler-rt/lib/builtins/lshrdi3.c
  stable/11/contrib/compiler-rt/lib/builtins/muldf3.c
  stable/11/contrib/compiler-rt/lib/builtins/muldi3.c
  stable/11/contrib/compiler-rt/lib/builtins/mulsf3.c
  stable/11/contrib/compiler-rt/lib/builtins/negdf2.c
  stable/11/contrib/compiler-rt/lib/builtins/negsf2.c
  stable/11/contrib/compiler-rt/lib/builtins/subdf3.c
  stable/11/contrib/compiler-rt/lib/builtins/subsf3.c
  stable/11/contrib/compiler-rt/lib/builtins/truncdfhf2.c
  stable/11/contrib/compiler-rt/lib/builtins/truncdfsf2.c
  stable/11/contrib/compiler-rt/lib/builtins/truncsfhf2.c
  stable/11/contrib/compiler-rt/lib/builtins/udivsi3.c
  stable/11/contrib/compiler-rt/lib/cfi/cfi.cc
  stable/11/contrib/compiler-rt/lib/cfi/cfi_blacklist.txt
  stable/11/contrib/compiler-rt/lib/dfsan/dfsan.cc
  stable/11/contrib/compiler-rt/lib/esan/esan_sideline.h
  stable/11/contrib/compiler-rt/lib/esan/esan_sideline_linux.cpp
  stable/11/contrib/compiler-rt/lib/esan/working_set_posix.cpp
  stable/11/contrib/compiler-rt/lib/interception/interception.h
  stable/11/contrib/compiler-rt/lib/interception/interception_linux.cc
  stable/11/contrib/compiler-rt/lib/interception/interception_linux.h
  stable/11/contrib/compiler-rt/lib/interception/interception_mac.cc
  stable/11/contrib/compiler-rt/lib/interception/interception_mac.h
  stable/11/contrib/compiler-rt/lib/interception/interception_type_test.cc
  stable/11/contrib/compiler-rt/lib/interception/interception_win.cc
  stable/11/contrib/compiler-rt/lib/interception/interception_win.h
  stable/11/contrib/compiler-rt/lib/lsan/lsan.cc
  stable/11/contrib/compiler-rt/lib/lsan/lsan.h
  stable/11/contrib/compiler-rt/lib/lsan/lsan_allocator.h
  stable/11/contrib/compiler-rt/lib/lsan/lsan_common.cc
  stable/11/contrib/compiler-rt/lib/lsan/lsan_common.h
  stable/11/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc
  stable/11/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc
  stable/11/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc
  stable/11/contrib/compiler-rt/lib/lsan/weak_symbols.txt
  stable/11/contrib/compiler-rt/lib/msan/msan.cc
  stable/11/contrib/compiler-rt/lib/msan/msan.h
  stable/11/contrib/compiler-rt/lib/msan/msan_allocator.cc
  stable/11/contrib/compiler-rt/lib/msan/msan_interceptors.cc
  stable/11/contrib/compiler-rt/lib/msan/msan_linux.cc
  stable/11/contrib/compiler-rt/lib/msan/msan_new_delete.cc
  stable/11/contrib/compiler-rt/lib/msan/msan_report.cc
  stable/11/contrib/compiler-rt/lib/profile/GCDAProfiling.c
  stable/11/contrib/compiler-rt/lib/profile/InstrProfData.inc
  stable/11/contrib/compiler-rt/lib/profile/InstrProfiling.c
  stable/11/contrib/compiler-rt/lib/profile/InstrProfilingFile.c
  stable/11/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h
  stable/11/contrib/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c
  stable/11/contrib/compiler-rt/lib/profile/InstrProfilingPlatformOther.c
  stable/11/contrib/compiler-rt/lib/profile/InstrProfilingPort.h
  stable/11/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c
  stable/11/contrib/compiler-rt/lib/profile/InstrProfilingUtil.h
  stable/11/contrib/compiler-rt/lib/profile/InstrProfilingValue.c
  stable/11/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c
  stable/11/contrib/compiler-rt/lib/profile/WindowsMMap.c
  stable/11/contrib/compiler-rt/lib/safestack/safestack.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_interface.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_size_class_map.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_asm.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bvgraph.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interface.inc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_interface.inc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac_libcdep.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mutex.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_freebsd.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_report_decorator.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_x86_64.inc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.cc
  stable/11/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
  stable/11/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp
  stable/11/contrib/compiler-rt/lib/scudo/scudo_allocator.h
  stable/11/contrib/compiler-rt/lib/scudo/scudo_allocator_combined.h
  stable/11/contrib/compiler-rt/lib/scudo/scudo_allocator_secondary.h
  stable/11/contrib/compiler-rt/lib/scudo/scudo_crc32.h
  stable/11/contrib/compiler-rt/lib/scudo/scudo_flags.cpp
  stable/11/contrib/compiler-rt/lib/scudo/scudo_flags.inc
  stable/11/contrib/compiler-rt/lib/scudo/scudo_new_delete.cpp
  stable/11/contrib/compiler-rt/lib/scudo/scudo_utils.cpp
  stable/11/contrib/compiler-rt/lib/scudo/scudo_utils.h
  stable/11/contrib/compiler-rt/lib/stats/stats.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_fd.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.h
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_report.h
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h
  stable/11/contrib/compiler-rt/lib/tsan/rtl/tsan_trace.h
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_checks.inc
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_diag.h
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_diag_standalone.cc
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_flags.cc
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_handlers.h
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_init.cc
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone.cc
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_interface.inc
  stable/11/contrib/compiler-rt/lib/ubsan/ubsan_platform.h
  stable/11/contrib/compiler-rt/lib/xray/xray_buffer_queue.cc
  stable/11/contrib/compiler-rt/lib/xray/xray_buffer_queue.h
  stable/11/contrib/compiler-rt/lib/xray/xray_fdr_log_records.h
  stable/11/contrib/compiler-rt/lib/xray/xray_fdr_logging.cc
  stable/11/contrib/compiler-rt/lib/xray/xray_fdr_logging.h
  stable/11/contrib/compiler-rt/lib/xray/xray_fdr_logging_impl.h
  stable/11/contrib/compiler-rt/lib/xray/xray_flags.h
  stable/11/contrib/compiler-rt/lib/xray/xray_flags.inc
  stable/11/contrib/compiler-rt/lib/xray/xray_init.cc
  stable/11/contrib/compiler-rt/lib/xray/xray_inmemory_log.cc
  stable/11/contrib/compiler-rt/lib/xray/xray_interface.cc
  stable/11/contrib/compiler-rt/lib/xray/xray_interface_internal.h
  stable/11/contrib/compiler-rt/lib/xray/xray_log_interface.cc
  stable/11/contrib/compiler-rt/lib/xray/xray_trampoline_x86_64.S
  stable/11/contrib/compiler-rt/lib/xray/xray_utils.cc
  stable/11/contrib/compiler-rt/lib/xray/xray_x86_64.cc
  stable/11/contrib/libc++/CREDITS.TXT
  stable/11/contrib/libc++/include/__config
  stable/11/contrib/libc++/include/__functional_base
  stable/11/contrib/libc++/include/__libcpp_version
  stable/11/contrib/libc++/include/__locale
  stable/11/contrib/libc++/include/__mutex_base
  stable/11/contrib/libc++/include/__tree
  stable/11/contrib/libc++/include/algorithm
  stable/11/contrib/libc++/include/array
  stable/11/contrib/libc++/include/bitset
  stable/11/contrib/libc++/include/chrono
  stable/11/contrib/libc++/include/cstddef
  stable/11/contrib/libc++/include/deque
  stable/11/contrib/libc++/include/exception
  stable/11/contrib/libc++/include/experimental/algorithm
  stable/11/contrib/libc++/include/experimental/filesystem
  stable/11/contrib/libc++/include/experimental/iterator
  stable/11/contrib/libc++/include/forward_list
  stable/11/contrib/libc++/include/fstream
  stable/11/contrib/libc++/include/functional
  stable/11/contrib/libc++/include/future
  stable/11/contrib/libc++/include/istream
  stable/11/contrib/libc++/include/iterator
  stable/11/contrib/libc++/include/list
  stable/11/contrib/libc++/include/locale
  stable/11/contrib/libc++/include/map
  stable/11/contrib/libc++/include/memory
  stable/11/contrib/libc++/include/mutex
  stable/11/contrib/libc++/include/new
  stable/11/contrib/libc++/include/optional
  stable/11/contrib/libc++/include/ostream
  stable/11/contrib/libc++/include/queue
  stable/11/contrib/libc++/include/random
  stable/11/contrib/libc++/include/ratio
  stable/11/contrib/libc++/include/regex
  stable/11/contrib/libc++/include/scoped_allocator
  stable/11/contrib/libc++/include/set
  stable/11/contrib/libc++/include/sstream
  stable/11/contrib/libc++/include/stack
  stable/11/contrib/libc++/include/streambuf
  stable/11/contrib/libc++/include/string
  stable/11/contrib/libc++/include/string_view
  stable/11/contrib/libc++/include/system_error
  stable/11/contrib/libc++/include/tuple
  stable/11/contrib/libc++/include/type_traits
  stable/11/contrib/libc++/include/typeinfo
  stable/11/contrib/libc++/include/unordered_map
  stable/11/contrib/libc++/include/unordered_set
  stable/11/contrib/libc++/include/utility
  stable/11/contrib/libc++/include/variant
  stable/11/contrib/libc++/include/vector
  stable/11/contrib/libc++/include/wchar.h
  stable/11/contrib/libc++/src/exception.cpp
  stable/11/contrib/libc++/src/experimental/filesystem/directory_iterator.cpp
  stable/11/contrib/libc++/src/experimental/filesystem/operations.cpp
  stable/11/contrib/libc++/src/include/atomic_support.h
  stable/11/contrib/libc++/src/include/config_elast.h
  stable/11/contrib/libc++/src/include/refstring.h
  stable/11/contrib/libc++/src/iostream.cpp
  stable/11/contrib/libc++/src/locale.cpp
  stable/11/contrib/libc++/src/new.cpp
  stable/11/contrib/libc++/src/random.cpp
  stable/11/contrib/libc++/src/strstream.cpp
  stable/11/contrib/libc++/src/support/runtime/exception_fallback.ipp
  stable/11/contrib/libc++/src/support/runtime/exception_msvc.ipp
  stable/11/contrib/libc++/src/support/runtime/exception_pointer_msvc.ipp
  stable/11/contrib/libc++/src/support/runtime/new_handler_fallback.ipp
  stable/11/contrib/libc++/src/system_error.cpp
  stable/11/contrib/libc++/src/typeinfo.cpp
  stable/11/contrib/llvm/include/llvm-c/Core.h
  stable/11/contrib/llvm/include/llvm-c/OrcBindings.h
  stable/11/contrib/llvm/include/llvm-c/Transforms/IPO.h
  stable/11/contrib/llvm/include/llvm-c/Transforms/Scalar.h
  stable/11/contrib/llvm/include/llvm-c/lto.h
  stable/11/contrib/llvm/include/llvm/ADT/APFloat.h
  stable/11/contrib/llvm/include/llvm/ADT/APInt.h
  stable/11/contrib/llvm/include/llvm/ADT/ArrayRef.h
  stable/11/contrib/llvm/include/llvm/ADT/BitVector.h
  stable/11/contrib/llvm/include/llvm/ADT/DenseMap.h
  stable/11/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h
  stable/11/contrib/llvm/include/llvm/ADT/FoldingSet.h
  stable/11/contrib/llvm/include/llvm/ADT/MapVector.h
  stable/11/contrib/llvm/include/llvm/ADT/Optional.h
  stable/11/contrib/llvm/include/llvm/ADT/PointerEmbeddedInt.h
  stable/11/contrib/llvm/include/llvm/ADT/PointerIntPair.h
  stable/11/contrib/llvm/include/llvm/ADT/PointerSumType.h
  stable/11/contrib/llvm/include/llvm/ADT/PointerUnion.h
  stable/11/contrib/llvm/include/llvm/ADT/STLExtras.h
  stable/11/contrib/llvm/include/llvm/ADT/SmallPtrSet.h
  stable/11/contrib/llvm/include/llvm/ADT/SmallVector.h
  stable/11/contrib/llvm/include/llvm/ADT/StringExtras.h
  stable/11/contrib/llvm/include/llvm/ADT/StringMap.h
  stable/11/contrib/llvm/include/llvm/ADT/TinyPtrVector.h
  stable/11/contrib/llvm/include/llvm/ADT/Triple.h
  stable/11/contrib/llvm/include/llvm/ADT/Twine.h
  stable/11/contrib/llvm/include/llvm/ADT/iterator.h
  stable/11/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h
  stable/11/contrib/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h
  stable/11/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h
  stable/11/contrib/llvm/include/llvm/Analysis/AssumptionCache.h
  stable/11/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h
  stable/11/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h
  stable/11/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
  stable/11/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
  stable/11/contrib/llvm/include/llvm/Analysis/CFG.h
  stable/11/contrib/llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h
  stable/11/contrib/llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h
  stable/11/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h
  stable/11/contrib/llvm/include/llvm/Analysis/CallGraph.h
  stable/11/contrib/llvm/include/llvm/Analysis/CallGraphSCCPass.h
  stable/11/contrib/llvm/include/llvm/Analysis/ConstantFolding.h
  stable/11/contrib/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
  stable/11/contrib/llvm/include/llvm/Analysis/DemandedBits.h
  stable/11/contrib/llvm/include/llvm/Analysis/DominanceFrontier.h
  stable/11/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h
  stable/11/contrib/llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h
  stable/11/contrib/llvm/include/llvm/Analysis/IndirectCallSiteVisitor.h
  stable/11/contrib/llvm/include/llvm/Analysis/InlineCost.h
  stable/11/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h
  stable/11/contrib/llvm/include/llvm/Analysis/Interval.h
  stable/11/contrib/llvm/include/llvm/Analysis/IntervalIterator.h
  stable/11/contrib/llvm/include/llvm/Analysis/IntervalPartition.h
  stable/11/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h
  stable/11/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h
  stable/11/contrib/llvm/include/llvm/Analysis/LoopAnalysisManager.h
  stable/11/contrib/llvm/include/llvm/Analysis/LoopInfo.h
  stable/11/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h
  stable/11/contrib/llvm/include/llvm/Analysis/LoopPass.h
  stable/11/contrib/llvm/include/llvm/Analysis/MemoryBuiltins.h
  stable/11/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
  stable/11/contrib/llvm/include/llvm/Analysis/MemoryLocation.h
  stable/11/contrib/llvm/include/llvm/Analysis/MemorySSA.h
  stable/11/contrib/llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h
  stable/11/contrib/llvm/include/llvm/Analysis/PostDominators.h
  stable/11/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h
  stable/11/contrib/llvm/include/llvm/Analysis/PtrUseVisitor.h
  stable/11/contrib/llvm/include/llvm/Analysis/RegionInfo.h
  stable/11/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h
  stable/11/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h
  stable/11/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
  stable/11/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
  stable/11/contrib/llvm/include/llvm/Analysis/ScopedNoAliasAA.h
  stable/11/contrib/llvm/include/llvm/Analysis/SparsePropagation.h
  stable/11/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.def
  stable/11/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.h
  stable/11/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h
  stable/11/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
  stable/11/contrib/llvm/include/llvm/Analysis/Trace.h
  stable/11/contrib/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h
  stable/11/contrib/llvm/include/llvm/Analysis/ValueTracking.h
  stable/11/contrib/llvm/include/llvm/AsmParser/Parser.h
  stable/11/contrib/llvm/include/llvm/BinaryFormat/COFF.h
  stable/11/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def
  stable/11/contrib/llvm/include/llvm/BinaryFormat/Dwarf.h
  stable/11/contrib/llvm/include/llvm/BinaryFormat/ELF.h
  stable/11/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/AMDGPU.def
  stable/11/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/AVR.def
  stable/11/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/RISCV.def
  stable/11/contrib/llvm/include/llvm/BinaryFormat/MachO.h
  stable/11/contrib/llvm/include/llvm/BinaryFormat/Wasm.h
  stable/11/contrib/llvm/include/llvm/Bitcode/BitcodeReader.h
  stable/11/contrib/llvm/include/llvm/Bitcode/BitcodeWriter.h
  stable/11/contrib/llvm/include/llvm/Bitcode/BitstreamReader.h
  stable/11/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h
  stable/11/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h
  stable/11/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h
  stable/11/contrib/llvm/include/llvm/CodeGen/CalcSpillWeights.h
  stable/11/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h
  stable/11/contrib/llvm/include/llvm/CodeGen/DFAPacketizer.h
  stable/11/contrib/llvm/include/llvm/CodeGen/FastISel.h
  stable/11/contrib/llvm/include/llvm/CodeGen/FaultMaps.h
  stable/11/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/GlobalISel/Utils.h
  stable/11/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h
  stable/11/contrib/llvm/include/llvm/CodeGen/IntrinsicLowering.h
  stable/11/contrib/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h
  stable/11/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h
  stable/11/contrib/llvm/include/llvm/CodeGen/LiveRangeEdit.h
  stable/11/contrib/llvm/include/llvm/CodeGen/LiveRegUnits.h
  stable/11/contrib/llvm/include/llvm/CodeGen/LiveVariables.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MIRYamlMapping.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineCombinerPattern.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineDominators.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineFunction.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineInstr.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineInstrBundle.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineJumpTableInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineLoopInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineMemOperand.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineOperand.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachinePostDominators.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineSSAUpdater.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineTraceMetrics.h
  stable/11/contrib/llvm/include/llvm/CodeGen/MachineValueType.h
  stable/11/contrib/llvm/include/llvm/CodeGen/PBQP/Solution.h
  stable/11/contrib/llvm/include/llvm/CodeGen/Passes.h
  stable/11/contrib/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h
  stable/11/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h
  stable/11/contrib/llvm/include/llvm/CodeGen/RegisterClassInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/RegisterPressure.h
  stable/11/contrib/llvm/include/llvm/CodeGen/RegisterUsageInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h
  stable/11/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h
  stable/11/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h
  stable/11/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h
  stable/11/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h
  stable/11/contrib/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h
  stable/11/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h
  stable/11/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
  stable/11/contrib/llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h
  stable/11/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h
  stable/11/contrib/llvm/include/llvm/CodeGen/StackMaps.h
  stable/11/contrib/llvm/include/llvm/CodeGen/TailDuplicator.h
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h
  stable/11/contrib/llvm/include/llvm/CodeGen/TargetSchedule.h
  stable/11/contrib/llvm/include/llvm/CodeGen/ValueTypes.td
  stable/11/contrib/llvm/include/llvm/CodeGen/VirtRegMap.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeView.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewTypes.def
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeCollection.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DIContext.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/MSF/MSFBuilder.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/MSF/MSFCommon.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASession.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h
  stable/11/contrib/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/JITSymbol.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
  stable/11/contrib/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h
  stable/11/contrib/llvm/include/llvm/IR/Attributes.h
  stable/11/contrib/llvm/include/llvm/IR/Attributes.td
  stable/11/contrib/llvm/include/llvm/IR/BasicBlock.h
  stable/11/contrib/llvm/include/llvm/IR/CallSite.h
  stable/11/contrib/llvm/include/llvm/IR/CallingConv.h
  stable/11/contrib/llvm/include/llvm/IR/Constant.h
  stable/11/contrib/llvm/include/llvm/IR/ConstantRange.h
  stable/11/contrib/llvm/include/llvm/IR/DIBuilder.h
  stable/11/contrib/llvm/include/llvm/IR/DataLayout.h
  stable/11/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h
  stable/11/contrib/llvm/include/llvm/IR/DiagnosticInfo.h
  stable/11/contrib/llvm/include/llvm/IR/Dominators.h
  stable/11/contrib/llvm/include/llvm/IR/Function.h
  stable/11/contrib/llvm/include/llvm/IR/GlobalValue.h
  stable/11/contrib/llvm/include/llvm/IR/IRBuilder.h
  stable/11/contrib/llvm/include/llvm/IR/InlineAsm.h
  stable/11/contrib/llvm/include/llvm/IR/InstrTypes.h
  stable/11/contrib/llvm/include/llvm/IR/Instruction.h
  stable/11/contrib/llvm/include/llvm/IR/Instructions.h
  stable/11/contrib/llvm/include/llvm/IR/IntrinsicInst.h
  stable/11/contrib/llvm/include/llvm/IR/Intrinsics.td
  stable/11/contrib/llvm/include/llvm/IR/IntrinsicsAArch64.td
  stable/11/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td
  stable/11/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td
  stable/11/contrib/llvm/include/llvm/IR/IntrinsicsNVVM.td
  stable/11/contrib/llvm/include/llvm/IR/IntrinsicsSystemZ.td
  stable/11/contrib/llvm/include/llvm/IR/IntrinsicsX86.td
  stable/11/contrib/llvm/include/llvm/IR/LLVMContext.h
  stable/11/contrib/llvm/include/llvm/IR/LegacyPassManagers.h
  stable/11/contrib/llvm/include/llvm/IR/MDBuilder.h
  stable/11/contrib/llvm/include/llvm/IR/Metadata.h
  stable/11/contrib/llvm/include/llvm/IR/ModuleSummaryIndex.h
  stable/11/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h
  stable/11/contrib/llvm/include/llvm/IR/Operator.h
  stable/11/contrib/llvm/include/llvm/IR/OptBisect.h
  stable/11/contrib/llvm/include/llvm/IR/PassManager.h
  stable/11/contrib/llvm/include/llvm/IR/PatternMatch.h
  stable/11/contrib/llvm/include/llvm/IR/Type.h
  stable/11/contrib/llvm/include/llvm/IR/Value.def
  stable/11/contrib/llvm/include/llvm/IR/Value.h
  stable/11/contrib/llvm/include/llvm/IR/Verifier.h
  stable/11/contrib/llvm/include/llvm/IRReader/IRReader.h
  stable/11/contrib/llvm/include/llvm/InitializePasses.h
  stable/11/contrib/llvm/include/llvm/LTO/Caching.h
  stable/11/contrib/llvm/include/llvm/LTO/Config.h
  stable/11/contrib/llvm/include/llvm/LTO/LTO.h
  stable/11/contrib/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h
  stable/11/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h
  stable/11/contrib/llvm/include/llvm/LinkAllIR.h
  stable/11/contrib/llvm/include/llvm/LinkAllPasses.h
  stable/11/contrib/llvm/include/llvm/MC/LaneBitmask.h
  stable/11/contrib/llvm/include/llvm/MC/MCAsmBackend.h
  stable/11/contrib/llvm/include/llvm/MC/MCAsmInfo.h
  stable/11/contrib/llvm/include/llvm/MC/MCAssembler.h
  stable/11/contrib/llvm/include/llvm/MC/MCCodeView.h
  stable/11/contrib/llvm/include/llvm/MC/MCContext.h
  stable/11/contrib/llvm/include/llvm/MC/MCDwarf.h
  stable/11/contrib/llvm/include/llvm/MC/MCELFObjectWriter.h
  stable/11/contrib/llvm/include/llvm/MC/MCELFStreamer.h
  stable/11/contrib/llvm/include/llvm/MC/MCExpr.h
  stable/11/contrib/llvm/include/llvm/MC/MCFragment.h
  stable/11/contrib/llvm/include/llvm/MC/MCInst.h
  stable/11/contrib/llvm/include/llvm/MC/MCInstrDesc.h
  stable/11/contrib/llvm/include/llvm/MC/MCMachObjectWriter.h
  stable/11/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h
  stable/11/contrib/llvm/include/llvm/MC/MCObjectStreamer.h
  stable/11/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h
  stable/11/contrib/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
  stable/11/contrib/llvm/include/llvm/MC/MCRegisterInfo.h
  stable/11/contrib/llvm/include/llvm/MC/MCSchedule.h
  stable/11/contrib/llvm/include/llvm/MC/MCSectionWasm.h
  stable/11/contrib/llvm/include/llvm/MC/MCStreamer.h
  stable/11/contrib/llvm/include/llvm/MC/MCSubtargetInfo.h
  stable/11/contrib/llvm/include/llvm/MC/MCSymbolWasm.h
  stable/11/contrib/llvm/include/llvm/MC/MCValue.h
  stable/11/contrib/llvm/include/llvm/MC/MCWasmObjectWriter.h
  stable/11/contrib/llvm/include/llvm/MC/MCWasmStreamer.h
  stable/11/contrib/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h
  stable/11/contrib/llvm/include/llvm/MC/MCWinCOFFStreamer.h
  stable/11/contrib/llvm/include/llvm/MC/MachineLocation.h
  stable/11/contrib/llvm/include/llvm/MC/SubtargetFeature.h
  stable/11/contrib/llvm/include/llvm/Object/Archive.h
  stable/11/contrib/llvm/include/llvm/Object/ArchiveWriter.h
  stable/11/contrib/llvm/include/llvm/Object/Binary.h
  stable/11/contrib/llvm/include/llvm/Object/COFF.h
  stable/11/contrib/llvm/include/llvm/Object/COFFImportFile.h
  stable/11/contrib/llvm/include/llvm/Object/ELF.h
  stable/11/contrib/llvm/include/llvm/Object/ELFObjectFile.h
  stable/11/contrib/llvm/include/llvm/Object/ELFTypes.h
  stable/11/contrib/llvm/include/llvm/Object/IRObjectFile.h
  stable/11/contrib/llvm/include/llvm/Object/IRSymtab.h
  stable/11/contrib/llvm/include/llvm/Object/MachO.h
  stable/11/contrib/llvm/include/llvm/Object/ObjectFile.h
  stable/11/contrib/llvm/include/llvm/Object/RelocVisitor.h
  stable/11/contrib/llvm/include/llvm/Object/StackMapParser.h
  stable/11/contrib/llvm/include/llvm/Object/Wasm.h
  stable/11/contrib/llvm/include/llvm/Object/WindowsResource.h
  stable/11/contrib/llvm/include/llvm/ObjectYAML/COFFYAML.h
  stable/11/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
  stable/11/contrib/llvm/include/llvm/ObjectYAML/ELFYAML.h
  stable/11/contrib/llvm/include/llvm/ObjectYAML/MachOYAML.h
  stable/11/contrib/llvm/include/llvm/ObjectYAML/WasmYAML.h
  stable/11/contrib/llvm/include/llvm/ObjectYAML/YAML.h
  stable/11/contrib/llvm/include/llvm/Option/OptParser.td
  stable/11/contrib/llvm/include/llvm/Option/OptTable.h
  stable/11/contrib/llvm/include/llvm/Pass.h
  stable/11/contrib/llvm/include/llvm/PassAnalysisSupport.h
  stable/11/contrib/llvm/include/llvm/PassInfo.h
  stable/11/contrib/llvm/include/llvm/PassRegistry.h
  stable/11/contrib/llvm/include/llvm/PassSupport.h
  stable/11/contrib/llvm/include/llvm/Passes/PassBuilder.h
  stable/11/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
  stable/11/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
  stable/11/contrib/llvm/include/llvm/ProfileData/InstrProf.h
  stable/11/contrib/llvm/include/llvm/ProfileData/InstrProfData.inc
  stable/11/contrib/llvm/include/llvm/ProfileData/InstrProfReader.h
  stable/11/contrib/llvm/include/llvm/ProfileData/SampleProf.h
  stable/11/contrib/llvm/include/llvm/ProfileData/SampleProfReader.h
  stable/11/contrib/llvm/include/llvm/Support/AArch64TargetParser.def
  stable/11/contrib/llvm/include/llvm/Support/ARMTargetParser.def
  stable/11/contrib/llvm/include/llvm/Support/Allocator.h
  stable/11/contrib/llvm/include/llvm/Support/AtomicOrdering.h
  stable/11/contrib/llvm/include/llvm/Support/BinaryByteStream.h
  stable/11/contrib/llvm/include/llvm/Support/BinaryItemStream.h
  stable/11/contrib/llvm/include/llvm/Support/BinaryStream.h
  stable/11/contrib/llvm/include/llvm/Support/BinaryStreamRef.h
  stable/11/contrib/llvm/include/llvm/Support/CachePruning.h
  stable/11/contrib/llvm/include/llvm/Support/Chrono.h
  stable/11/contrib/llvm/include/llvm/Support/CodeGen.h
  stable/11/contrib/llvm/include/llvm/Support/CodeGenCWrappers.h
  stable/11/contrib/llvm/include/llvm/Support/CommandLine.h
  stable/11/contrib/llvm/include/llvm/Support/ConvertUTF.h
  stable/11/contrib/llvm/include/llvm/Support/DebugCounter.h
  stable/11/contrib/llvm/include/llvm/Support/Error.h
  stable/11/contrib/llvm/include/llvm/Support/FileOutputBuffer.h
  stable/11/contrib/llvm/include/llvm/Support/FileSystem.h
  stable/11/contrib/llvm/include/llvm/Support/FormatVariadic.h
  stable/11/contrib/llvm/include/llvm/Support/FormatVariadicDetails.h
  stable/11/contrib/llvm/include/llvm/Support/GenericDomTree.h
  stable/11/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h
  stable/11/contrib/llvm/include/llvm/Support/Host.h
  stable/11/contrib/llvm/include/llvm/Support/KnownBits.h
  stable/11/contrib/llvm/include/llvm/Support/LEB128.h
  stable/11/contrib/llvm/include/llvm/Support/LockFileManager.h
  stable/11/contrib/llvm/include/llvm/Support/LowLevelTypeImpl.h
  stable/11/contrib/llvm/include/llvm/Support/MathExtras.h
  stable/11/contrib/llvm/include/llvm/Support/Memory.h
  stable/11/contrib/llvm/include/llvm/Support/MemoryBuffer.h
  stable/11/contrib/llvm/include/llvm/Support/Parallel.h
  stable/11/contrib/llvm/include/llvm/Support/PointerLikeTypeTraits.h
  stable/11/contrib/llvm/include/llvm/Support/Printable.h
  stable/11/contrib/llvm/include/llvm/Support/Process.h
  stable/11/contrib/llvm/include/llvm/Support/Program.h
  stable/11/contrib/llvm/include/llvm/Support/ReverseIteration.h
  stable/11/contrib/llvm/include/llvm/Support/ScaledNumber.h
  stable/11/contrib/llvm/include/llvm/Support/SourceMgr.h
  stable/11/contrib/llvm/include/llvm/Support/SpecialCaseList.h
  stable/11/contrib/llvm/include/llvm/Support/TarWriter.h
  stable/11/contrib/llvm/include/llvm/Support/TargetParser.h
  stable/11/contrib/llvm/include/llvm/Support/TargetRegistry.h
  stable/11/contrib/llvm/include/llvm/Support/ThreadPool.h
  stable/11/contrib/llvm/include/llvm/Support/Threading.h
  stable/11/contrib/llvm/include/llvm/Support/ToolOutputFile.h
  stable/11/contrib/llvm/include/llvm/Support/YAMLParser.h
  stable/11/contrib/llvm/include/llvm/Support/YAMLTraits.h
  stable/11/contrib/llvm/include/llvm/Support/raw_ostream.h
  stable/11/contrib/llvm/include/llvm/TableGen/Error.h
  stable/11/contrib/llvm/include/llvm/TableGen/Record.h
  stable/11/contrib/llvm/include/llvm/TableGen/StringMatcher.h
  stable/11/contrib/llvm/include/llvm/Target/GenericOpcodes.td
  stable/11/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
  stable/11/contrib/llvm/include/llvm/Target/Target.td
  stable/11/contrib/llvm/include/llvm/Target/TargetMachine.h
  stable/11/contrib/llvm/include/llvm/Target/TargetOptions.h
  stable/11/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td
  stable/11/contrib/llvm/include/llvm/Testing/Support/Error.h
  stable/11/contrib/llvm/include/llvm/Testing/Support/SupportHelpers.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/ConstantMerge.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/FunctionImport.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/GlobalDCE.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/GlobalOpt.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/GlobalSplit.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/Inliner.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/LowerTypeTests.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/PartialInlining.h
  stable/11/contrib/llvm/include/llvm/Transforms/IPO/SCCP.h
  stable/11/contrib/llvm/include/llvm/Transforms/Instrumentation.h
  stable/11/contrib/llvm/include/llvm/Transforms/PGOInstrumentation.h
  stable/11/contrib/llvm/include/llvm/Transforms/SampleProfile.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/ADCE.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/EarlyCSE.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/GVNExpression.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/JumpThreading.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/LoopDistribute.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/MemCpyOptimizer.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/NewGVN.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/Reassociate.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/SCCP.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/SROA.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
  stable/11/contrib/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/AddDiscriminators.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/Evaluator.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/FunctionComparator.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/Local.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/LowerMemIntrinsics.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/Mem2Reg.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/ModuleUtils.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/SplitModule.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/SymbolRewriter.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h
  stable/11/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h
  stable/11/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
  stable/11/contrib/llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
  stable/11/contrib/llvm/include/llvm/XRay/InstrumentationMap.h
  stable/11/contrib/llvm/include/llvm/XRay/XRayRecord.h
  stable/11/contrib/llvm/include/llvm/XRay/YAMLXRayRecord.h
  stable/11/contrib/llvm/include/llvm/module.modulemap
  stable/11/contrib/llvm/include/llvm/module.modulemap.build
  stable/11/contrib/llvm/lib/Analysis/AliasAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
  stable/11/contrib/llvm/lib/Analysis/AliasSetTracker.cpp
  stable/11/contrib/llvm/lib/Analysis/AssumptionCache.cpp
  stable/11/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/BlockFrequencyInfo.cpp
  stable/11/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
  stable/11/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp
  stable/11/contrib/llvm/lib/Analysis/CFGPrinter.cpp
  stable/11/contrib/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/CFLGraph.h
  stable/11/contrib/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp
  stable/11/contrib/llvm/lib/Analysis/CallGraph.cpp
  stable/11/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp
  stable/11/contrib/llvm/lib/Analysis/CodeMetrics.cpp
  stable/11/contrib/llvm/lib/Analysis/ConstantFolding.cpp
  stable/11/contrib/llvm/lib/Analysis/CostModel.cpp
  stable/11/contrib/llvm/lib/Analysis/DemandedBits.cpp
  stable/11/contrib/llvm/lib/Analysis/DivergenceAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/DominanceFrontier.cpp
  stable/11/contrib/llvm/lib/Analysis/GlobalsModRef.cpp
  stable/11/contrib/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/InlineCost.cpp
  stable/11/contrib/llvm/lib/Analysis/InstructionSimplify.cpp
  stable/11/contrib/llvm/lib/Analysis/Interval.cpp
  stable/11/contrib/llvm/lib/Analysis/IntervalPartition.cpp
  stable/11/contrib/llvm/lib/Analysis/LazyCallGraph.cpp
  stable/11/contrib/llvm/lib/Analysis/LazyValueInfo.cpp
  stable/11/contrib/llvm/lib/Analysis/Lint.cpp
  stable/11/contrib/llvm/lib/Analysis/Loads.cpp
  stable/11/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/LoopAnalysisManager.cpp
  stable/11/contrib/llvm/lib/Analysis/LoopInfo.cpp
  stable/11/contrib/llvm/lib/Analysis/LoopPass.cpp
  stable/11/contrib/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp
  stable/11/contrib/llvm/lib/Analysis/MemDerefPrinter.cpp
  stable/11/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp
  stable/11/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/MemorySSA.cpp
  stable/11/contrib/llvm/lib/Analysis/MemorySSAUpdater.cpp
  stable/11/contrib/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp
  stable/11/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/ObjCARCAnalysisUtils.cpp
  stable/11/contrib/llvm/lib/Analysis/PostDominators.cpp
  stable/11/contrib/llvm/lib/Analysis/ProfileSummaryInfo.cpp
  stable/11/contrib/llvm/lib/Analysis/PtrUseVisitor.cpp
  stable/11/contrib/llvm/lib/Analysis/RegionPass.cpp
  stable/11/contrib/llvm/lib/Analysis/ScalarEvolution.cpp
  stable/11/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp
  stable/11/contrib/llvm/lib/Analysis/ScopedNoAliasAA.cpp
  stable/11/contrib/llvm/lib/Analysis/TargetLibraryInfo.cpp
  stable/11/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp
  stable/11/contrib/llvm/lib/Analysis/Trace.cpp
  stable/11/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp
  stable/11/contrib/llvm/lib/Analysis/ValueTracking.cpp
  stable/11/contrib/llvm/lib/Analysis/VectorUtils.cpp
  stable/11/contrib/llvm/lib/AsmParser/LLLexer.cpp
  stable/11/contrib/llvm/lib/AsmParser/LLParser.cpp
  stable/11/contrib/llvm/lib/AsmParser/LLParser.h
  stable/11/contrib/llvm/lib/AsmParser/LLToken.h
  stable/11/contrib/llvm/lib/AsmParser/Parser.cpp
  stable/11/contrib/llvm/lib/BinaryFormat/Dwarf.cpp
  stable/11/contrib/llvm/lib/BinaryFormat/Magic.cpp
  stable/11/contrib/llvm/lib/Bitcode/Reader/BitReader.cpp
  stable/11/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
  stable/11/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp
  stable/11/contrib/llvm/lib/Bitcode/Reader/ValueList.cpp
  stable/11/contrib/llvm/lib/Bitcode/Reader/ValueList.h
  stable/11/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
  stable/11/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
  stable/11/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.h
  stable/11/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
  stable/11/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h
  stable/11/contrib/llvm/lib/CodeGen/AllocationOrder.cpp
  stable/11/contrib/llvm/lib/CodeGen/AllocationOrder.h
  stable/11/contrib/llvm/lib/CodeGen/Analysis.cpp
  stable/11/contrib/llvm/lib/CodeGen/AntiDepBreaker.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp
  stable/11/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.cpp
  stable/11/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp
  stable/11/contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/BranchFolding.cpp
  stable/11/contrib/llvm/lib/CodeGen/BranchFolding.h
  stable/11/contrib/llvm/lib/CodeGen/BranchRelaxation.cpp
  stable/11/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp
  stable/11/contrib/llvm/lib/CodeGen/CallingConvLower.cpp
  stable/11/contrib/llvm/lib/CodeGen/CodeGen.cpp
  stable/11/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp
  stable/11/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
  stable/11/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.h
  stable/11/contrib/llvm/lib/CodeGen/DFAPacketizer.cpp
  stable/11/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
  stable/11/contrib/llvm/lib/CodeGen/DetectDeadLanes.cpp
  stable/11/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp
  stable/11/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp
  stable/11/contrib/llvm/lib/CodeGen/EdgeBundles.cpp
  stable/11/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp
  stable/11/contrib/llvm/lib/CodeGen/ExpandISelPseudos.cpp
  stable/11/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp
  stable/11/contrib/llvm/lib/CodeGen/ExpandReductions.cpp
  stable/11/contrib/llvm/lib/CodeGen/FEntryInserter.cpp
  stable/11/contrib/llvm/lib/CodeGen/GCRootLowering.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/Localizer.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBank.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalISel/Utils.cpp
  stable/11/contrib/llvm/lib/CodeGen/GlobalMerge.cpp
  stable/11/contrib/llvm/lib/CodeGen/IfConversion.cpp
  stable/11/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp
  stable/11/contrib/llvm/lib/CodeGen/InlineSpiller.cpp
  stable/11/contrib/llvm/lib/CodeGen/InterferenceCache.cpp
  stable/11/contrib/llvm/lib/CodeGen/InterferenceCache.h
  stable/11/contrib/llvm/lib/CodeGen/InterleavedAccessPass.cpp
  stable/11/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp
  stable/11/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp
  stable/11/contrib/llvm/lib/CodeGen/LatencyPriorityQueue.cpp
  stable/11/contrib/llvm/lib/CodeGen/LexicalScopes.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveDebugVariables.h
  stable/11/contrib/llvm/lib/CodeGen/LiveInterval.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveIntervalUnion.cpp
  stable/11/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveRangeCalc.h
  stable/11/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveRangeShrink.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveRegUnits.cpp
  stable/11/contrib/llvm/lib/CodeGen/LiveVariables.cpp
  stable/11/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp
  stable/11/contrib/llvm/lib/CodeGen/LowerEmuTLS.cpp
  stable/11/contrib/llvm/lib/CodeGen/MIRParser/MILexer.cpp
  stable/11/contrib/llvm/lib/CodeGen/MIRParser/MILexer.h
  stable/11/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp
  stable/11/contrib/llvm/lib/CodeGen/MIRParser/MIRParser.cpp
  stable/11/contrib/llvm/lib/CodeGen/MIRPrinter.cpp
  stable/11/contrib/llvm/lib/CodeGen/MIRPrintingPass.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineCSE.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineCombiner.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineDominators.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineFrameInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineFunction.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineInstr.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineInstrBundle.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineLICM.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineOutliner.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachinePipeliner.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineSSAUpdater.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineScheduler.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineSink.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp
  stable/11/contrib/llvm/lib/CodeGen/MachineVerifier.cpp
  stable/11/contrib/llvm/lib/CodeGen/MacroFusion.cpp
  stable/11/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp
  stable/11/contrib/llvm/lib/CodeGen/PHIElimination.cpp
  stable/11/contrib/llvm/lib/CodeGen/ParallelCG.cpp
  stable/11/contrib/llvm/lib/CodeGen/PatchableFunction.cpp
  stable/11/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp
  stable/11/contrib/llvm/lib/CodeGen/PostRAHazardRecognizer.cpp
  stable/11/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp
  stable/11/contrib/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
  stable/11/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp
  stable/11/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp
  stable/11/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegAllocBase.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegAllocBase.h
  stable/11/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegAllocFast.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegUsageInfoCollector.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegUsageInfoPropagate.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegisterClassInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegisterCoalescer.h
  stable/11/contrib/llvm/lib/CodeGen/RegisterPressure.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp
  stable/11/contrib/llvm/lib/CodeGen/RegisterUsageInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/RenameIndependentSubregs.cpp
  stable/11/contrib/llvm/lib/CodeGen/ResetMachineFunctionPass.cpp
  stable/11/contrib/llvm/lib/CodeGen/SafeStack.cpp
  stable/11/contrib/llvm/lib/CodeGen/SafeStackColoring.cpp
  stable/11/contrib/llvm/lib/CodeGen/SafeStackColoring.h
  stable/11/contrib/llvm/lib/CodeGen/SafeStackLayout.cpp
  stable/11/contrib/llvm/lib/CodeGen/SafeStackLayout.h
  stable/11/contrib/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp
  stable/11/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp
  stable/11/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
  stable/11/contrib/llvm/lib/CodeGen/ScheduleDAGPrinter.cpp
  stable/11/contrib/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h
  stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
  stable/11/contrib/llvm/lib/CodeGen/ShadowStackGCLowering.cpp
  stable/11/contrib/llvm/lib/CodeGen/ShrinkWrap.cpp
  stable/11/contrib/llvm/lib/CodeGen/SlotIndexes.cpp
  stable/11/contrib/llvm/lib/CodeGen/SpillPlacement.cpp
  stable/11/contrib/llvm/lib/CodeGen/SpillPlacement.h
  stable/11/contrib/llvm/lib/CodeGen/Spiller.h
  stable/11/contrib/llvm/lib/CodeGen/SplitKit.cpp
  stable/11/contrib/llvm/lib/CodeGen/SplitKit.h
  stable/11/contrib/llvm/lib/CodeGen/StackColoring.cpp
  stable/11/contrib/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp
  stable/11/contrib/llvm/lib/CodeGen/StackMaps.cpp
  stable/11/contrib/llvm/lib/CodeGen/StackProtector.cpp
  stable/11/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp
  stable/11/contrib/llvm/lib/CodeGen/TailDuplication.cpp
  stable/11/contrib/llvm/lib/CodeGen/TailDuplicator.cpp
  stable/11/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp
  stable/11/contrib/llvm/lib/CodeGen/TargetInstrInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp
  stable/11/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
  stable/11/contrib/llvm/lib/CodeGen/TargetOptionsImpl.cpp
  stable/11/contrib/llvm/lib/CodeGen/TargetPassConfig.cpp
  stable/11/contrib/llvm/lib/CodeGen/TargetRegisterInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/TargetSchedule.cpp
  stable/11/contrib/llvm/lib/CodeGen/TargetSubtargetInfo.cpp
  stable/11/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
  stable/11/contrib/llvm/lib/CodeGen/UnreachableBlockElim.cpp
  stable/11/contrib/llvm/lib/CodeGen/VirtRegMap.cpp
  stable/11/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp
  stable/11/contrib/llvm/lib/CodeGen/XRayInstrumentation.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/RecordSerialization.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/SymbolSerializer.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp
  stable/11/contrib/llvm/lib/DebugInfo/CodeView/TypeTableCollection.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp
  stable/11/contrib/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.h
  stable/11/contrib/llvm/lib/DebugInfo/MSF/MSFBuilder.cpp
  stable/11/contrib/llvm/lib/DebugInfo/MSF/MSFCommon.cpp
  stable/11/contrib/llvm/lib/DebugInfo/MSF/MappedBlockStream.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStream.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStream.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/NativeBuiltinSymbol.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTable.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTableBuilder.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/PublicsStream.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/SymbolStream.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/PDB.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp
  stable/11/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp
  stable/11/contrib/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
  stable/11/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
  stable/11/contrib/llvm/lib/ExecutionEngine/Orc/OrcError.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
  stable/11/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
  stable/11/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
  stable/11/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h
  stable/11/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h
  stable/11/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h
  stable/11/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h
  stable/11/contrib/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp
  stable/11/contrib/llvm/lib/ExecutionEngine/TargetSelect.cpp
  stable/11/contrib/llvm/lib/IR/AsmWriter.cpp
  stable/11/contrib/llvm/lib/IR/Attributes.cpp
  stable/11/contrib/llvm/lib/IR/AutoUpgrade.cpp
  stable/11/contrib/llvm/lib/IR/BasicBlock.cpp
  stable/11/contrib/llvm/lib/IR/ConstantFold.cpp
  stable/11/contrib/llvm/lib/IR/ConstantRange.cpp
  stable/11/contrib/llvm/lib/IR/Constants.cpp
  stable/11/contrib/llvm/lib/IR/Core.cpp
  stable/11/contrib/llvm/lib/IR/DIBuilder.cpp
  stable/11/contrib/llvm/lib/IR/DataLayout.cpp
  stable/11/contrib/llvm/lib/IR/DebugInfo.cpp
  stable/11/contrib/llvm/lib/IR/DebugInfoMetadata.cpp
  stable/11/contrib/llvm/lib/IR/DebugLoc.cpp
  stable/11/contrib/llvm/lib/IR/DiagnosticInfo.cpp
  stable/11/contrib/llvm/lib/IR/Dominators.cpp
  stable/11/contrib/llvm/lib/IR/Function.cpp
  stable/11/contrib/llvm/lib/IR/Globals.cpp
  stable/11/contrib/llvm/lib/IR/IRBuilder.cpp
  stable/11/contrib/llvm/lib/IR/IRPrintingPasses.cpp
  stable/11/contrib/llvm/lib/IR/InlineAsm.cpp
  stable/11/contrib/llvm/lib/IR/Instruction.cpp
  stable/11/contrib/llvm/lib/IR/Instructions.cpp
  stable/11/contrib/llvm/lib/IR/IntrinsicInst.cpp
  stable/11/contrib/llvm/lib/IR/LLVMContext.cpp
  stable/11/contrib/llvm/lib/IR/LLVMContextImpl.cpp
  stable/11/contrib/llvm/lib/IR/LLVMContextImpl.h
  stable/11/contrib/llvm/lib/IR/LegacyPassManager.cpp
  stable/11/contrib/llvm/lib/IR/MDBuilder.cpp
  stable/11/contrib/llvm/lib/IR/Metadata.cpp
  stable/11/contrib/llvm/lib/IR/OptBisect.cpp
  stable/11/contrib/llvm/lib/IR/Pass.cpp
  stable/11/contrib/llvm/lib/IR/PassRegistry.cpp
  stable/11/contrib/llvm/lib/IR/SafepointIRVerifier.cpp
  stable/11/contrib/llvm/lib/IR/User.cpp
  stable/11/contrib/llvm/lib/IR/Value.cpp
  stable/11/contrib/llvm/lib/IR/ValueSymbolTable.cpp
  stable/11/contrib/llvm/lib/IR/ValueTypes.cpp
  stable/11/contrib/llvm/lib/IR/Verifier.cpp
  stable/11/contrib/llvm/lib/IRReader/IRReader.cpp
  stable/11/contrib/llvm/lib/LTO/Caching.cpp
  stable/11/contrib/llvm/lib/LTO/LTO.cpp
  stable/11/contrib/llvm/lib/LTO/LTOBackend.cpp
  stable/11/contrib/llvm/lib/LTO/LTOCodeGenerator.cpp
  stable/11/contrib/llvm/lib/LTO/LTOModule.cpp
  stable/11/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp
  stable/11/contrib/llvm/lib/LTO/UpdateCompilerUsed.cpp
  stable/11/contrib/llvm/lib/Linker/IRMover.cpp
  stable/11/contrib/llvm/lib/MC/ELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/MC/MCAsmBackend.cpp
  stable/11/contrib/llvm/lib/MC/MCAsmInfoWasm.cpp
  stable/11/contrib/llvm/lib/MC/MCAsmStreamer.cpp
  stable/11/contrib/llvm/lib/MC/MCAssembler.cpp
  stable/11/contrib/llvm/lib/MC/MCCodeView.cpp
  stable/11/contrib/llvm/lib/MC/MCContext.cpp
  stable/11/contrib/llvm/lib/MC/MCDwarf.cpp
  stable/11/contrib/llvm/lib/MC/MCELFObjectTargetWriter.cpp
  stable/11/contrib/llvm/lib/MC/MCELFStreamer.cpp
  stable/11/contrib/llvm/lib/MC/MCExpr.cpp
  stable/11/contrib/llvm/lib/MC/MCFragment.cpp
  stable/11/contrib/llvm/lib/MC/MCMachOStreamer.cpp
  stable/11/contrib/llvm/lib/MC/MCNullStreamer.cpp
  stable/11/contrib/llvm/lib/MC/MCObjectFileInfo.cpp
  stable/11/contrib/llvm/lib/MC/MCObjectStreamer.cpp
  stable/11/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp
  stable/11/contrib/llvm/lib/MC/MCParser/AsmParser.cpp
  stable/11/contrib/llvm/lib/MC/MCParser/COFFAsmParser.cpp
  stable/11/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp
  stable/11/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp
  stable/11/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp
  stable/11/contrib/llvm/lib/MC/MCParser/MCTargetAsmParser.cpp
  stable/11/contrib/llvm/lib/MC/MCRegisterInfo.cpp
  stable/11/contrib/llvm/lib/MC/MCSectionELF.cpp
  stable/11/contrib/llvm/lib/MC/MCSectionWasm.cpp
  stable/11/contrib/llvm/lib/MC/MCStreamer.cpp
  stable/11/contrib/llvm/lib/MC/MCSubtargetInfo.cpp
  stable/11/contrib/llvm/lib/MC/MCSymbolELF.cpp
  stable/11/contrib/llvm/lib/MC/MCWasmStreamer.cpp
  stable/11/contrib/llvm/lib/MC/MCWin64EH.cpp
  stable/11/contrib/llvm/lib/MC/MCWinCOFFStreamer.cpp
  stable/11/contrib/llvm/lib/MC/MachObjectWriter.cpp
  stable/11/contrib/llvm/lib/MC/StringTableBuilder.cpp
  stable/11/contrib/llvm/lib/MC/WasmObjectWriter.cpp
  stable/11/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Object/Archive.cpp
  stable/11/contrib/llvm/lib/Object/ArchiveWriter.cpp
  stable/11/contrib/llvm/lib/Object/COFFImportFile.cpp
  stable/11/contrib/llvm/lib/Object/COFFModuleDefinition.cpp
  stable/11/contrib/llvm/lib/Object/COFFObjectFile.cpp
  stable/11/contrib/llvm/lib/Object/ELF.cpp
  stable/11/contrib/llvm/lib/Object/ELFObjectFile.cpp
  stable/11/contrib/llvm/lib/Object/IRObjectFile.cpp
  stable/11/contrib/llvm/lib/Object/IRSymtab.cpp
  stable/11/contrib/llvm/lib/Object/MachOObjectFile.cpp
  stable/11/contrib/llvm/lib/Object/ModuleSymbolTable.cpp
  stable/11/contrib/llvm/lib/Object/ObjectFile.cpp
  stable/11/contrib/llvm/lib/Object/RecordStreamer.cpp
  stable/11/contrib/llvm/lib/Object/RecordStreamer.h
  stable/11/contrib/llvm/lib/Object/SymbolicFile.cpp
  stable/11/contrib/llvm/lib/Object/WasmObjectFile.cpp
  stable/11/contrib/llvm/lib/Object/WindowsResource.cpp
  stable/11/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp
  stable/11/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp
  stable/11/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
  stable/11/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
  stable/11/contrib/llvm/lib/ObjectYAML/DWARFEmitter.cpp
  stable/11/contrib/llvm/lib/ObjectYAML/DWARFVisitor.cpp
  stable/11/contrib/llvm/lib/ObjectYAML/ELFYAML.cpp
  stable/11/contrib/llvm/lib/ObjectYAML/MachOYAML.cpp
  stable/11/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp
  stable/11/contrib/llvm/lib/Option/OptTable.cpp
  stable/11/contrib/llvm/lib/Passes/PassBuilder.cpp
  stable/11/contrib/llvm/lib/Passes/PassRegistry.def
  stable/11/contrib/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
  stable/11/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
  stable/11/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp
  stable/11/contrib/llvm/lib/ProfileData/InstrProf.cpp
  stable/11/contrib/llvm/lib/ProfileData/InstrProfReader.cpp
  stable/11/contrib/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp
  stable/11/contrib/llvm/lib/ProfileData/SampleProfReader.cpp
  stable/11/contrib/llvm/lib/ProfileData/SampleProfWriter.cpp
  stable/11/contrib/llvm/lib/Support/APFloat.cpp
  stable/11/contrib/llvm/lib/Support/APInt.cpp
  stable/11/contrib/llvm/lib/Support/ARMAttributeParser.cpp
  stable/11/contrib/llvm/lib/Support/Atomic.cpp
  stable/11/contrib/llvm/lib/Support/BinaryStreamRef.cpp
  stable/11/contrib/llvm/lib/Support/BinaryStreamWriter.cpp
  stable/11/contrib/llvm/lib/Support/BlockFrequency.cpp
  stable/11/contrib/llvm/lib/Support/CachePruning.cpp
  stable/11/contrib/llvm/lib/Support/Chrono.cpp
  stable/11/contrib/llvm/lib/Support/CommandLine.cpp
  stable/11/contrib/llvm/lib/Support/Error.cpp
  stable/11/contrib/llvm/lib/Support/FileOutputBuffer.cpp
  stable/11/contrib/llvm/lib/Support/FoldingSet.cpp
  stable/11/contrib/llvm/lib/Support/FormatVariadic.cpp
  stable/11/contrib/llvm/lib/Support/GlobPattern.cpp
  stable/11/contrib/llvm/lib/Support/GraphWriter.cpp
  stable/11/contrib/llvm/lib/Support/Host.cpp
  stable/11/contrib/llvm/lib/Support/LockFileManager.cpp
  stable/11/contrib/llvm/lib/Support/LowLevelType.cpp
  stable/11/contrib/llvm/lib/Support/MD5.cpp
  stable/11/contrib/llvm/lib/Support/MemoryBuffer.cpp
  stable/11/contrib/llvm/lib/Support/Parallel.cpp
  stable/11/contrib/llvm/lib/Support/Path.cpp
  stable/11/contrib/llvm/lib/Support/Process.cpp
  stable/11/contrib/llvm/lib/Support/Program.cpp
  stable/11/contrib/llvm/lib/Support/RandomNumberGenerator.cpp
  stable/11/contrib/llvm/lib/Support/ScopedPrinter.cpp
  stable/11/contrib/llvm/lib/Support/Signals.cpp
  stable/11/contrib/llvm/lib/Support/SmallPtrSet.cpp
  stable/11/contrib/llvm/lib/Support/SmallVector.cpp
  stable/11/contrib/llvm/lib/Support/SourceMgr.cpp
  stable/11/contrib/llvm/lib/Support/SpecialCaseList.cpp
  stable/11/contrib/llvm/lib/Support/Statistic.cpp
  stable/11/contrib/llvm/lib/Support/StringExtras.cpp
  stable/11/contrib/llvm/lib/Support/StringMap.cpp
  stable/11/contrib/llvm/lib/Support/StringRef.cpp
  stable/11/contrib/llvm/lib/Support/TarWriter.cpp
  stable/11/contrib/llvm/lib/Support/TargetParser.cpp
  stable/11/contrib/llvm/lib/Support/TargetRegistry.cpp
  stable/11/contrib/llvm/lib/Support/ThreadPool.cpp
  stable/11/contrib/llvm/lib/Support/Threading.cpp
  stable/11/contrib/llvm/lib/Support/Timer.cpp
  stable/11/contrib/llvm/lib/Support/ToolOutputFile.cpp
  stable/11/contrib/llvm/lib/Support/Triple.cpp
  stable/11/contrib/llvm/lib/Support/Unix/DynamicLibrary.inc
  stable/11/contrib/llvm/lib/Support/Unix/Memory.inc
  stable/11/contrib/llvm/lib/Support/Unix/Path.inc
  stable/11/contrib/llvm/lib/Support/Unix/Process.inc
  stable/11/contrib/llvm/lib/Support/Unix/Program.inc
  stable/11/contrib/llvm/lib/Support/Unix/Threading.inc
  stable/11/contrib/llvm/lib/Support/Windows/Memory.inc
  stable/11/contrib/llvm/lib/Support/Windows/Path.inc
  stable/11/contrib/llvm/lib/Support/Windows/Process.inc
  stable/11/contrib/llvm/lib/Support/Windows/Program.inc
  stable/11/contrib/llvm/lib/Support/Windows/Signals.inc
  stable/11/contrib/llvm/lib/Support/YAMLTraits.cpp
  stable/11/contrib/llvm/lib/Support/raw_ostream.cpp
  stable/11/contrib/llvm/lib/Support/regcomp.c
  stable/11/contrib/llvm/lib/Support/regex2.h
  stable/11/contrib/llvm/lib/TableGen/Error.cpp
  stable/11/contrib/llvm/lib/TableGen/Main.cpp
  stable/11/contrib/llvm/lib/TableGen/Record.cpp
  stable/11/contrib/llvm/lib/TableGen/StringMatcher.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64GenRegisterBankInfo.def
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64InstrFormats.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64RegisterBanks.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SchedA53.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SchedA57.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SchedCyclone.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkor.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SchedKryo.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SchedM1.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64SystemOperands.td
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
  stable/11/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h
  stable/11/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUPTNote.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/BUFInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/CaymanInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/DSInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/EvergreenInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/FLATInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/GCNMinRegStrategy.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/MIMGInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/Processors.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600ClauseMergePass.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600FrameLowering.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600InstrFormats.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600Instructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600Packetizer.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIDefines.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIInsertSkips.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIInsertWaits.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIInstrFormats.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/SMInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/SOPInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp
  stable/11/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h
  stable/11/contrib/llvm/lib/Target/AMDGPU/VOP1Instructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td
  stable/11/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td
  stable/11/contrib/llvm/lib/Target/ARM/A15SDOptimizer.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARM.h
  stable/11/contrib/llvm/lib/Target/ARM/ARM.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.h
  stable/11/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h
  stable/11/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMCallLowering.h
  stable/11/contrib/llvm/lib/Target/ARM/ARMCallingConv.h
  stable/11/contrib/llvm/lib/Target/ARM/ARMCallingConv.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMComputeBlockSize.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.h
  stable/11/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h
  stable/11/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMISelLowering.h
  stable/11/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMMacroFusion.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMSchedule.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMScheduleA57.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMScheduleR52.td
  stable/11/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMSubtarget.h
  stable/11/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h
  stable/11/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h
  stable/11/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
  stable/11/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
  stable/11/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
  stable/11/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
  stable/11/contrib/llvm/lib/Target/ARM/MLxExpansionPass.cpp
  stable/11/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.h
  stable/11/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.h
  stable/11/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/AVR/AVR.h
  stable/11/contrib/llvm/lib/Target/AVR/AVRAsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp
  stable/11/contrib/llvm/lib/Target/AVR/AVRFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/AVR/AVRFrameLowering.h
  stable/11/contrib/llvm/lib/Target/AVR/AVRISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/AVR/AVRISelLowering.h
  stable/11/contrib/llvm/lib/Target/AVR/AVRInstrInfo.h
  stable/11/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/AVR/AVRRelaxMemOperations.cpp
  stable/11/contrib/llvm/lib/Target/AVR/AVRSubtarget.h
  stable/11/contrib/llvm/lib/Target/AVR/AVRTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/AVR/AVRTargetMachine.h
  stable/11/contrib/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp
  stable/11/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h
  stable/11/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRFixupKinds.h
  stable/11/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.cpp
  stable/11/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.h
  stable/11/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/BPF/BPF.td
  stable/11/contrib/llvm/lib/Target/BPF/BPFAsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/BPF/BPFFrameLowering.h
  stable/11/contrib/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/BPF/BPFISelLowering.h
  stable/11/contrib/llvm/lib/Target/BPF/BPFInstrFormats.td
  stable/11/contrib/llvm/lib/Target/BPF/BPFInstrInfo.h
  stable/11/contrib/llvm/lib/Target/BPF/BPFInstrInfo.td
  stable/11/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.td
  stable/11/contrib/llvm/lib/Target/BPF/BPFSubtarget.cpp
  stable/11/contrib/llvm/lib/Target/BPF/BPFSubtarget.h
  stable/11/contrib/llvm/lib/Target/BPF/BPFTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/BPF/BPFTargetMachine.h
  stable/11/contrib/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp
  stable/11/contrib/llvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.cpp
  stable/11/contrib/llvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.h
  stable/11/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp
  stable/11/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/BitTracker.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/BitTracker.h
  stable/11/contrib/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/Hexagon.h
  stable/11/contrib/llvm/lib/Target/Hexagon/Hexagon.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepMappings.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepOperands.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonFixupHwLoops.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonGenMux.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonIICHVX.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormats.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV60.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV62.gen.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonOperands.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonPeephole.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonPseudo.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonSchedule.td
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h
  stable/11/contrib/llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.h
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.h
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h
  stable/11/contrib/llvm/lib/Target/Hexagon/RDFCopy.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/RDFCopy.h
  stable/11/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/RDFGraph.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/RDFGraph.h
  stable/11/contrib/llvm/lib/Target/Hexagon/RDFLiveness.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/RDFLiveness.h
  stable/11/contrib/llvm/lib/Target/Hexagon/RDFRegisters.cpp
  stable/11/contrib/llvm/lib/Target/Hexagon/RDFRegisters.h
  stable/11/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiFrameLowering.h
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.h
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.h
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiSubtarget.h
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.h
  stable/11/contrib/llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h
  stable/11/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.h
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.h
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.h
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.h
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.h
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.h
  stable/11/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
  stable/11/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
  stable/11/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrFormats.td
  stable/11/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td
  stable/11/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td
  stable/11/contrib/llvm/lib/Target/Mips/MicroMipsInstrFormats.td
  stable/11/contrib/llvm/lib/Target/Mips/MicroMipsInstrInfo.td
  stable/11/contrib/llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp
  stable/11/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.h
  stable/11/contrib/llvm/lib/Target/Mips/Mips16HardFloat.cpp
  stable/11/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.h
  stable/11/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.td
  stable/11/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td
  stable/11/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td
  stable/11/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td
  stable/11/contrib/llvm/lib/Target/Mips/MipsAnalyzeImmediate.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsAnalyzeImmediate.h
  stable/11/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.h
  stable/11/contrib/llvm/lib/Target/Mips/MipsCCState.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsCondMov.td
  stable/11/contrib/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsDSPInstrInfo.td
  stable/11/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsFrameLowering.h
  stable/11/contrib/llvm/lib/Target/Mips/MipsHazardSchedule.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsISelLowering.h
  stable/11/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td
  stable/11/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h
  stable/11/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td
  stable/11/contrib/llvm/lib/Target/Mips/MipsLongBranch.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsMCInstLower.h
  stable/11/contrib/llvm/lib/Target/Mips/MipsMachineFunction.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td
  stable/11/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.h
  stable/11/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.h
  stable/11/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsScheduleGeneric.td
  stable/11/contrib/llvm/lib/Target/Mips/MipsScheduleP5600.td
  stable/11/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsSubtarget.h
  stable/11/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h
  stable/11/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp
  stable/11/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h
  stable/11/contrib/llvm/lib/Target/Mips/Relocation.txt
  stable/11/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTX.td
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.h
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.h
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.h
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXPeephole.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.h
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.h
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXTargetObjectFile.h
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
  stable/11/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h
  stable/11/contrib/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2.h
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2.td
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2InstrFormats.td
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.td
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2TargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/Nios2/Nios2TargetMachine.h
  stable/11/contrib/llvm/lib/Target/Nios2/TargetInfo/Nios2TargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h
  stable/11/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h
  stable/11/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td
  stable/11/contrib/llvm/lib/Target/PowerPC/PPC.h
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCExpandISEL.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCFastISel.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCInstrFormats.td
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.h
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.td
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCScheduleP9.td
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.h
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp
  stable/11/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/RISCV/RISCV.td
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVInstrFormats.td
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.td
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.td
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.h
  stable/11/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/LeonFeatures.td
  stable/11/contrib/llvm/lib/Target/Sparc/LeonPasses.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/LeonPasses.h
  stable/11/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/Sparc/Sparc.td
  stable/11/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.h
  stable/11/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h
  stable/11/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.h
  stable/11/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td
  stable/11/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h
  stable/11/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.h
  stable/11/contrib/llvm/lib/Target/Sparc/SparcTargetObjectFile.cpp
  stable/11/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZ.td
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.h
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.h
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZInstrSystem.td
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZInstrVector.td
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.h
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.h
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
  stable/11/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
  stable/11/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp
  stable/11/contrib/llvm/lib/Target/TargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/TargetMachineC.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h
  stable/11/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssembly.h
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssembly.td
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrAtomics.td
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyStoreResults.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.h
  stable/11/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
  stable/11/contrib/llvm/lib/Target/WebAssembly/known_gcc_test_failures.txt
  stable/11/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp
  stable/11/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h
  stable/11/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
  stable/11/contrib/llvm/lib/Target/X86/AsmParser/X86Operand.h
  stable/11/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
  stable/11/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
  stable/11/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
  stable/11/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h
  stable/11/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp
  stable/11/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp
  stable/11/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.h
  stable/11/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
  stable/11/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
  stable/11/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86.h
  stable/11/contrib/llvm/lib/Target/X86/X86.td
  stable/11/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86AsmPrinter.h
  stable/11/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86CallLowering.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86CallLowering.h
  stable/11/contrib/llvm/lib/Target/X86/X86CallingConv.td
  stable/11/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86EvexToVex.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86ExpandPseudo.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86FastISel.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86FixupBWInsts.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86FrameLowering.h
  stable/11/contrib/llvm/lib/Target/X86/X86GenRegisterBankInfo.def
  stable/11/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86ISelLowering.h
  stable/11/contrib/llvm/lib/Target/X86/X86Instr3DNow.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrAVX512.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrCMovSetCC.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrCompiler.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrControl.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrExtension.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrFMA.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrFPStack.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrFormats.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86InstrInfo.h
  stable/11/contrib/llvm/lib/Target/X86/X86InstrInfo.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrMMX.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrMPX.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrSGX.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrSSE.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrSVM.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrSystem.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrTSX.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrVMX.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstrXOP.td
  stable/11/contrib/llvm/lib/Target/X86/X86InstructionSelector.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86InterleavedAccess.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86IntrinsicsInfo.h
  stable/11/contrib/llvm/lib/Target/X86/X86LegalizerInfo.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86MacroFusion.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86OptimizeLEAs.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86RegisterInfo.h
  stable/11/contrib/llvm/lib/Target/X86/X86RegisterInfo.td
  stable/11/contrib/llvm/lib/Target/X86/X86SchedHaswell.td
  stable/11/contrib/llvm/lib/Target/X86/X86SchedSandyBridge.td
  stable/11/contrib/llvm/lib/Target/X86/X86Schedule.td
  stable/11/contrib/llvm/lib/Target/X86/X86ScheduleAtom.td
  stable/11/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td
  stable/11/contrib/llvm/lib/Target/X86/X86ScheduleSLM.td
  stable/11/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td
  stable/11/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86Subtarget.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86Subtarget.h
  stable/11/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86TargetMachine.h
  stable/11/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86TargetObjectFile.h
  stable/11/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.h
  stable/11/contrib/llvm/lib/Target/X86/X86VZeroUpper.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86WinAllocaExpander.cpp
  stable/11/contrib/llvm/lib/Target/X86/X86WinEHState.cpp
  stable/11/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp
  stable/11/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp
  stable/11/contrib/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp
  stable/11/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp
  stable/11/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.h
  stable/11/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp
  stable/11/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp
  stable/11/contrib/llvm/lib/Target/XCore/XCoreISelLowering.h
  stable/11/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp
  stable/11/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.h
  stable/11/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.cpp
  stable/11/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp
  stable/11/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h
  stable/11/contrib/llvm/lib/Target/XCore/XCoreSubtarget.h
  stable/11/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp
  stable/11/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.h
  stable/11/contrib/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h
  stable/11/contrib/llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
  stable/11/contrib/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
  stable/11/contrib/llvm/lib/Transforms/Coroutines/CoroFrame.cpp
  stable/11/contrib/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
  stable/11/contrib/llvm/lib/Transforms/Coroutines/Coroutines.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/AlwaysInliner.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/FunctionImport.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/GlobalDCE.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/GlobalSplit.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/IPO.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/InlineSimple.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/Inliner.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
  stable/11/contrib/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
  stable/11/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/CFGMST.h
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp
  stable/11/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
  stable/11/contrib/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h
  stable/11/contrib/llvm/lib/Transforms/ObjCARC/BlotMapVector.h
  stable/11/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp
  stable/11/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
  stable/11/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
  stable/11/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp
  stable/11/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h
  stable/11/contrib/llvm/lib/Transforms/ObjCARC/PtrState.cpp
  stable/11/contrib/llvm/lib/Transforms/ObjCARC/PtrState.h
  stable/11/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/BDCE.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/GVN.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/GVNHoist.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/GuardWidening.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LICM.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopDeletion.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopDistribute.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopPredication.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopSink.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/LowerAtomic.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/NaryReassociate.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/SROA.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/Sink.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
  stable/11/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/Evaluator.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/FlattenCFG.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/Local.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/Mem2Reg.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/MetaRenamer.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/ModuleUtils.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/PredicateInfo.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/SplitModule.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/SymbolRewriter.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
  stable/11/contrib/llvm/lib/Transforms/Utils/ValueMapper.cpp
  stable/11/contrib/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
  stable/11/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  stable/11/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
  stable/11/contrib/llvm/lib/Transforms/Vectorize/Vectorize.cpp
  stable/11/contrib/llvm/lib/XRay/InstrumentationMap.cpp
  stable/11/contrib/llvm/lib/XRay/Trace.cpp
  stable/11/contrib/llvm/tools/bugpoint/BugDriver.cpp
  stable/11/contrib/llvm/tools/bugpoint/BugDriver.h
  stable/11/contrib/llvm/tools/bugpoint/CrashDebugger.cpp
  stable/11/contrib/llvm/tools/bugpoint/ExecutionDriver.cpp
  stable/11/contrib/llvm/tools/bugpoint/ExtractFunction.cpp
  stable/11/contrib/llvm/tools/bugpoint/FindBugs.cpp
  stable/11/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp
  stable/11/contrib/llvm/tools/bugpoint/ToolRunner.cpp
  stable/11/contrib/llvm/tools/bugpoint/bugpoint.cpp
  stable/11/contrib/llvm/tools/clang/include/clang-c/Index.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/ASTVector.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/BaseSubobject.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/BuiltinTypes.def
  stable/11/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/CharUnits.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/CommentVisitor.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/Decl.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclContextInternals.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclGroup.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclLookups.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclOpenMP.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclVisitor.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/DependentDiagnostic.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/Expr.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/ExternalASTMerger.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/GlobalDecl.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.def
  stable/11/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/RecordLayout.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/Redeclarable.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/Stmt.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/StmtGraphTraits.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/StmtIterator.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/TemplateName.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/Type.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def
  stable/11/contrib/llvm/tools/clang/include/clang/AST/UnresolvedSet.h
  stable/11/contrib/llvm/tools/clang/include/clang/AST/VTTBuilder.h
  stable/11/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  stable/11/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  stable/11/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersMacros.h
  stable/11/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h
  stable/11/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Registry.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Consumed.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/CallGraph.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/CloneDetection.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h
  stable/11/contrib/llvm/tools/clang/include/clang/Analysis/Support/BumpVector.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/AddressSpaces.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/AllDiagnostics.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/Attr.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/Attributes.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/Builtins.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAArch64.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAMDGPU.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNVPTX.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86_64.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/CharInfo.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/Cuda.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/LLVM.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/Module.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensions.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/OperatorKinds.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/OperatorPrecedence.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/SanitizerBlacklist.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/SourceManagerInternals.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/VirtualFileSystem.h
  stable/11/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td
  stable/11/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenABITypes.h
  stable/11/contrib/llvm/tools/clang/include/clang/CodeGen/ConstantInitFuture.h
  stable/11/contrib/llvm/tools/clang/include/clang/CodeGen/ModuleBuilder.h
  stable/11/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td
  stable/11/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td
  stable/11/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h
  stable/11/contrib/llvm/tools/clang/include/clang/Driver/Distro.h
  stable/11/contrib/llvm/tools/clang/include/clang/Driver/Driver.h
  stable/11/contrib/llvm/tools/clang/include/clang/Driver/Job.h
  stable/11/contrib/llvm/tools/clang/include/clang/Driver/Options.td
  stable/11/contrib/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h
  stable/11/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h
  stable/11/contrib/llvm/tools/clang/include/clang/Driver/XRayArgs.h
  stable/11/contrib/llvm/tools/clang/include/clang/Format/Format.h
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/CommandLineSourceLoc.h
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticBuffer.h
  stable/11/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h
  stable/11/contrib/llvm/tools/clang/include/clang/Index/IndexDataConsumer.h
  stable/11/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearchOptions.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/MacroArgs.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/ModuleLoader.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/MultipleIncludeOpt.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/PTHManager.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorOptions.h
  stable/11/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h
  stable/11/contrib/llvm/tools/clang/include/clang/Parse/ParseAST.h
  stable/11/contrib/llvm/tools/clang/include/clang/Parse/Parser.h
  stable/11/contrib/llvm/tools/clang/include/clang/Parse/RAIIObjectsForParser.h
  stable/11/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h
  stable/11/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h
  stable/11/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteOptions.h
  stable/11/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h
  stable/11/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h
  stable/11/contrib/llvm/tools/clang/include/clang/Sema/Overload.h
  stable/11/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h
  stable/11/contrib/llvm/tools/clang/include/clang/Sema/Scope.h
  stable/11/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h
  stable/11/contrib/llvm/tools/clang/include/clang/Sema/Sema.h
  stable/11/contrib/llvm/tools/clang/include/clang/Sema/SemaInternal.h
  stable/11/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h
  stable/11/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h
  stable/11/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h
  stable/11/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h
  stable/11/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Analyses.def
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h
  stable/11/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/CommonOptionsParser.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Core/Replacement.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/AtomicChange.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/RenamingAction.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h
  stable/11/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h
  stable/11/contrib/llvm/tools/clang/include/clang/module.modulemap
  stable/11/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ASTStructuralEquivalence.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/CXXABI.h
  stable/11/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/CommentSema.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/Decl.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/DeclFriend.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/DeclGroup.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/Expr.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ExprObjC.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ExternalASTMerger.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/Mangle.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/RecordLayout.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/Stmt.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/StmtIterator.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/TemplateName.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/Type.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/VTTBuilder.cpp
  stable/11/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp
  stable/11/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp
  stable/11/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  stable/11/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
  stable/11/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp
  stable/11/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/CallGraph.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/CloneDetection.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/CocoaConventions.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/Consumed.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/ScanfFormatString.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp
  stable/11/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/Cuda.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/Module.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/OperatorPrecedence.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/SanitizerBlacklist.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/Targets/X86.h
  stable/11/contrib/llvm/tools/clang/lib/Basic/Version.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp
  stable/11/contrib/llvm/tools/clang/lib/Basic/XRayLists.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGBuilder.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGCoroutine.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenABITypes.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypeCache.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.h
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp
  stable/11/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/Distro.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/Driver.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/DriverOptions.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/Job.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Ananas.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/CloudABI.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/DragonFly.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/NaCl.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.cpp
  stable/11/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.h
  stable/11/contrib/llvm/tools/clang/lib/Driver/XRayArgs.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/BreakableToken.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/BreakableToken.h
  stable/11/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.h
  stable/11/contrib/llvm/tools/clang/lib/Format/Format.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/FormatToken.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/FormatToken.h
  stable/11/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.h
  stable/11/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.h
  stable/11/contrib/llvm/tools/clang/lib/Format/SortJavaScriptImports.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.h
  stable/11/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.h
  stable/11/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.h
  stable/11/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h
  stable/11/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.h
  stable/11/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.cpp
  stable/11/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.h
  stable/11/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/PrecompiledPreamble.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticBuffer.cpp
  stable/11/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp
  stable/11/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
  stable/11/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_cmath.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_intrinsics.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_math_forward_declares.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_runtime_wrapper.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx2intrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512bwintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512cdintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512dqintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512fintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512vlbwintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512vlcdintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512vldqintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/avx512vlintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/clflushoptintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/cpuid.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/cuda_wrappers/algorithm
  stable/11/contrib/llvm/tools/clang/lib/Headers/cuda_wrappers/new
  stable/11/contrib/llvm/tools/clang/lib/Headers/emmintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/float.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/fma4intrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/fmaintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/immintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/intrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/opencl-c.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/pmmintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/smmintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/stdbool.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/unwind.h
  stable/11/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h
  stable/11/contrib/llvm/tools/clang/lib/Index/CodegenNameGenerator.cpp
  stable/11/contrib/llvm/tools/clang/lib/Index/CommentToXML.cpp
  stable/11/contrib/llvm/tools/clang/lib/Index/IndexBody.cpp
  stable/11/contrib/llvm/tools/clang/lib/Index/IndexDecl.cpp
  stable/11/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp
  stable/11/contrib/llvm/tools/clang/lib/Index/IndexTypeSourceInfo.cpp
  stable/11/contrib/llvm/tools/clang/lib/Index/IndexingAction.cpp
  stable/11/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp
  stable/11/contrib/llvm/tools/clang/lib/Index/USRGeneration.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/PPCaching.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/PTHLexer.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/PreprocessorLexer.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp
  stable/11/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp
  stable/11/contrib/llvm/tools/clang/lib/Parse/Parser.cpp
  stable/11/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/AttributeList.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/Scope.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/Sema.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp
  stable/11/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h
  stable/11/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp
  stable/11/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.h
  stable/11/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp
  stable/11/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp
  stable/11/contrib/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h
  stable/11/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp
  stable/11/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp
  stable/11/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp
  stable/11/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp
  stable/11/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp
  stable/11/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp
  stable/11/contrib/llvm/tools/clang/lib/Serialization/MultiOnDiskHashTable.h
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CloneChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MisusedMovedObjectChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp
  stable/11/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Core/Replacement.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Refactoring/AtomicChange.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp
  stable/11/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp
  stable/11/contrib/llvm/tools/clang/tools/clang-format/ClangFormat.cpp
  stable/11/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp
  stable/11/contrib/llvm/tools/clang/tools/driver/driver.cpp
  stable/11/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp
  stable/11/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp
  stable/11/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp
  stable/11/contrib/llvm/tools/clang/utils/TableGen/TableGenBackends.h
  stable/11/contrib/llvm/tools/llc/llc.cpp
  stable/11/contrib/llvm/tools/lld/.arcconfig
  stable/11/contrib/llvm/tools/lld/CMakeLists.txt
  stable/11/contrib/llvm/tools/lld/CODE_OWNERS.TXT
  stable/11/contrib/llvm/tools/lld/COFF/CMakeLists.txt
  stable/11/contrib/llvm/tools/lld/COFF/Chunks.cpp
  stable/11/contrib/llvm/tools/lld/COFF/Chunks.h
  stable/11/contrib/llvm/tools/lld/COFF/Config.h
  stable/11/contrib/llvm/tools/lld/COFF/DLL.cpp
  stable/11/contrib/llvm/tools/lld/COFF/Driver.cpp
  stable/11/contrib/llvm/tools/lld/COFF/Driver.h
  stable/11/contrib/llvm/tools/lld/COFF/DriverUtils.cpp
  stable/11/contrib/llvm/tools/lld/COFF/ICF.cpp
  stable/11/contrib/llvm/tools/lld/COFF/InputFiles.cpp
  stable/11/contrib/llvm/tools/lld/COFF/InputFiles.h
  stable/11/contrib/llvm/tools/lld/COFF/LTO.cpp
  stable/11/contrib/llvm/tools/lld/COFF/LTO.h
  stable/11/contrib/llvm/tools/lld/COFF/MapFile.cpp
  stable/11/contrib/llvm/tools/lld/COFF/MarkLive.cpp
  stable/11/contrib/llvm/tools/lld/COFF/Options.td
  stable/11/contrib/llvm/tools/lld/COFF/PDB.cpp
  stable/11/contrib/llvm/tools/lld/COFF/PDB.h
  stable/11/contrib/llvm/tools/lld/COFF/Strings.cpp
  stable/11/contrib/llvm/tools/lld/COFF/Strings.h
  stable/11/contrib/llvm/tools/lld/COFF/SymbolTable.cpp
  stable/11/contrib/llvm/tools/lld/COFF/SymbolTable.h
  stable/11/contrib/llvm/tools/lld/COFF/Symbols.cpp
  stable/11/contrib/llvm/tools/lld/COFF/Symbols.h
  stable/11/contrib/llvm/tools/lld/COFF/Writer.cpp
  stable/11/contrib/llvm/tools/lld/COFF/Writer.h
  stable/11/contrib/llvm/tools/lld/ELF/Arch/AArch64.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Arch/AMDGPU.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Arch/AVR.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Arch/Mips.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Arch/PPC.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Arch/PPC64.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Arch/SPARCV9.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Arch/X86.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp
  stable/11/contrib/llvm/tools/lld/ELF/CMakeLists.txt
  stable/11/contrib/llvm/tools/lld/ELF/Config.h
  stable/11/contrib/llvm/tools/lld/ELF/Driver.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Driver.h
  stable/11/contrib/llvm/tools/lld/ELF/DriverUtils.cpp
  stable/11/contrib/llvm/tools/lld/ELF/EhFrame.cpp
  stable/11/contrib/llvm/tools/lld/ELF/EhFrame.h
  stable/11/contrib/llvm/tools/lld/ELF/Filesystem.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Filesystem.h
  stable/11/contrib/llvm/tools/lld/ELF/GdbIndex.cpp
  stable/11/contrib/llvm/tools/lld/ELF/GdbIndex.h
  stable/11/contrib/llvm/tools/lld/ELF/ICF.cpp
  stable/11/contrib/llvm/tools/lld/ELF/InputFiles.cpp
  stable/11/contrib/llvm/tools/lld/ELF/InputFiles.h
  stable/11/contrib/llvm/tools/lld/ELF/InputSection.cpp
  stable/11/contrib/llvm/tools/lld/ELF/InputSection.h
  stable/11/contrib/llvm/tools/lld/ELF/LTO.cpp
  stable/11/contrib/llvm/tools/lld/ELF/LTO.h
  stable/11/contrib/llvm/tools/lld/ELF/LinkerScript.cpp
  stable/11/contrib/llvm/tools/lld/ELF/LinkerScript.h
  stable/11/contrib/llvm/tools/lld/ELF/MapFile.cpp
  stable/11/contrib/llvm/tools/lld/ELF/MapFile.h
  stable/11/contrib/llvm/tools/lld/ELF/MarkLive.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Options.td
  stable/11/contrib/llvm/tools/lld/ELF/OutputSections.cpp
  stable/11/contrib/llvm/tools/lld/ELF/OutputSections.h
  stable/11/contrib/llvm/tools/lld/ELF/Relocations.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Relocations.h
  stable/11/contrib/llvm/tools/lld/ELF/ScriptLexer.cpp
  stable/11/contrib/llvm/tools/lld/ELF/ScriptLexer.h
  stable/11/contrib/llvm/tools/lld/ELF/ScriptParser.cpp
  stable/11/contrib/llvm/tools/lld/ELF/ScriptParser.h
  stable/11/contrib/llvm/tools/lld/ELF/Strings.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Strings.h
  stable/11/contrib/llvm/tools/lld/ELF/SymbolTable.cpp
  stable/11/contrib/llvm/tools/lld/ELF/SymbolTable.h
  stable/11/contrib/llvm/tools/lld/ELF/Symbols.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Symbols.h
  stable/11/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp
  stable/11/contrib/llvm/tools/lld/ELF/SyntheticSections.h
  stable/11/contrib/llvm/tools/lld/ELF/Target.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Target.h
  stable/11/contrib/llvm/tools/lld/ELF/Thunks.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Thunks.h
  stable/11/contrib/llvm/tools/lld/ELF/Writer.cpp
  stable/11/contrib/llvm/tools/lld/ELF/Writer.h
  stable/11/contrib/llvm/tools/lld/FREEBSD-Xlist
  stable/11/contrib/llvm/tools/lld/README.md
  stable/11/contrib/llvm/tools/lld/include/lld/Core/Atom.h
  stable/11/contrib/llvm/tools/lld/include/lld/Core/DefinedAtom.h
  stable/11/contrib/llvm/tools/lld/include/lld/Core/Error.h
  stable/11/contrib/llvm/tools/lld/include/lld/Core/LinkingContext.h
  stable/11/contrib/llvm/tools/lld/include/lld/Core/PassManager.h
  stable/11/contrib/llvm/tools/lld/include/lld/Core/Reader.h
  stable/11/contrib/llvm/tools/lld/include/lld/Core/SymbolTable.h
  stable/11/contrib/llvm/tools/lld/include/lld/Core/Writer.h
  stable/11/contrib/llvm/tools/lld/include/lld/ReaderWriter/YamlContext.h
  stable/11/contrib/llvm/tools/lld/lib/CMakeLists.txt
  stable/11/contrib/llvm/tools/lld/lib/Core/CMakeLists.txt
  stable/11/contrib/llvm/tools/lld/lib/Core/Resolver.cpp
  stable/11/contrib/llvm/tools/lld/lib/Core/SymbolTable.cpp
  stable/11/contrib/llvm/tools/lld/lib/Driver/CMakeLists.txt
  stable/11/contrib/llvm/tools/lld/lib/Driver/DarwinLdDriver.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/CMakeLists.txt
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler.h
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/CMakeLists.txt
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/FlatNamespaceFile.h
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/GOTPass.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFile.h
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ObjCPass.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ShimPass.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/StubsPass.cpp
  stable/11/contrib/llvm/tools/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
  stable/11/contrib/llvm/tools/lld/tools/lld/CMakeLists.txt
  stable/11/contrib/llvm/tools/lld/tools/lld/lld.cpp
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointLocation.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBError.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBStringList.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBStructuredData.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointIDList.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointList.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocation.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Core/Disassembler.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Core/EmulateInstruction.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Core/IOHandler.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Core/MappedHash.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Core/Module.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Core/ModuleSpec.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Core/PluginManager.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Core/RangeMap.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Core/Section.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Expression/DWARFExpression.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionParser.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Expression/IRExecutionUnit.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Host/Config.h.cmake
  stable/11/contrib/llvm/tools/lldb/include/lldb/Host/Host.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Host/PseudoTerminal.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeRegisterContext.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeThreadProtocol.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Interpreter/Args.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupArchitecture.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArch.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpec.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Symbol/ArmUnwindInfo.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerType.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Symbol/DeclVendor.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Symbol/FuncUnwinders.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Symbol/GoASTContext.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Symbol/JavaASTContext.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Symbol/OCamlASTContext.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeSystem.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Target/Process.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Target/ProcessInfo.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Target/Target.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Target/UnwindAssembly.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Utility/DataExtractor.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Utility/FileSpec.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Utility/Log.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Utility/Logging.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Utility/SharingPtr.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Utility/Status.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Utility/StringList.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/Utility/UUID.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/lldb-private-defines.h
  stable/11/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h
  stable/11/contrib/llvm/tools/lldb/source/API/SBBreakpoint.cpp
  stable/11/contrib/llvm/tools/lldb/source/API/SBBreakpointLocation.cpp
  stable/11/contrib/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp
  stable/11/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp
  stable/11/contrib/llvm/tools/lldb/source/API/SBInstruction.cpp
  stable/11/contrib/llvm/tools/lldb/source/API/SBPlatform.cpp
  stable/11/contrib/llvm/tools/lldb/source/API/SBProcess.cpp
  stable/11/contrib/llvm/tools/lldb/source/API/SBTarget.cpp
  stable/11/contrib/llvm/tools/lldb/source/API/SBType.cpp
  stable/11/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp
  stable/11/contrib/llvm/tools/lldb/source/Breakpoint/Breakpoint.cpp
  stable/11/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointID.cpp
  stable/11/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointIDList.cpp
  stable/11/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointList.cpp
  stable/11/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp
  stable/11/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationList.cpp
  stable/11/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointOptions.cpp
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandCompletions.cpp
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.h
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.cpp
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.h
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.h
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.cpp
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.h
  stable/11/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/Address.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/AddressRange.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/Debugger.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/DumpDataExtractor.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/FileSpecList.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/Module.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/ModuleList.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/PluginManager.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/RegisterValue.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/Section.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/Value.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/ValueObjectDynamicValue.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/ValueObjectMemory.cpp
  stable/11/contrib/llvm/tools/lldb/source/Core/ValueObjectVariable.cpp
  stable/11/contrib/llvm/tools/lldb/source/Expression/DWARFExpression.cpp
  stable/11/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp
  stable/11/contrib/llvm/tools/lldb/source/Expression/IRInterpreter.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/common/Host.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/common/PseudoTerminal.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/common/XML.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/posix/HostThreadPosix.cpp
  stable/11/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp
  stable/11/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp
  stable/11/contrib/llvm/tools/lldb/source/Interpreter/Args.cpp
  stable/11/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp
  stable/11/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp
  stable/11/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupArchitecture.cpp
  stable/11/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFormat.cpp
  stable/11/contrib/llvm/tools/lldb/source/Interpreter/OptionValueDictionary.cpp
  stable/11/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp
  stable/11/contrib/llvm/tools/lldb/source/Interpreter/ScriptInterpreter.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulationStateARM.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSArray.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/MachException.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIX.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
  stable/11/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp
  stable/11/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h
  stable/11/contrib/llvm/tools/lldb/source/Symbol/ArmUnwindInfo.cpp
  stable/11/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp
  stable/11/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp
  stable/11/contrib/llvm/tools/lldb/source/Symbol/CompactUnwindInfo.cpp
  stable/11/contrib/llvm/tools/lldb/source/Symbol/CompilerType.cpp
  stable/11/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp
  stable/11/contrib/llvm/tools/lldb/source/Symbol/JavaASTContext.cpp
  stable/11/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp
  stable/11/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp
  stable/11/contrib/llvm/tools/lldb/source/Symbol/Type.cpp
  stable/11/contrib/llvm/tools/lldb/source/Symbol/TypeSystem.cpp
  stable/11/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/PathMappingList.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/Platform.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/Process.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/RegisterContext.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/Target.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/Thread.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInRange.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/ThreadPlanTracer.cpp
  stable/11/contrib/llvm/tools/lldb/source/Target/UnixSignals.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/DataEncoder.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/DataExtractor.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/FileSpec.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/JSON.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/Log.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/Logging.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/SelectHelper.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/Status.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/StructuredData.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/UUID.cpp
  stable/11/contrib/llvm/tools/lldb/source/Utility/UriParser.cpp
  stable/11/contrib/llvm/tools/lldb/source/lldb.cpp
  stable/11/contrib/llvm/tools/lldb/tools/driver/Driver.cpp
  stable/11/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.cpp
  stable/11/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp
  stable/11/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp
  stable/11/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp
  stable/11/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp
  stable/11/contrib/llvm/tools/lli/OrcLazyJIT.h
  stable/11/contrib/llvm/tools/lli/lli.cpp
  stable/11/contrib/llvm/tools/llvm-ar/llvm-ar.cpp
  stable/11/contrib/llvm/tools/llvm-as/llvm-as.cpp
  stable/11/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
  stable/11/contrib/llvm/tools/llvm-cov/CodeCoverage.cpp
  stable/11/contrib/llvm/tools/llvm-cov/CoverageExporterJson.cpp
  stable/11/contrib/llvm/tools/llvm-cov/CoverageFilters.cpp
  stable/11/contrib/llvm/tools/llvm-cov/CoverageFilters.h
  stable/11/contrib/llvm/tools/llvm-cov/CoverageReport.cpp
  stable/11/contrib/llvm/tools/llvm-cov/CoverageReport.h
  stable/11/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp
  stable/11/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.h
  stable/11/contrib/llvm/tools/llvm-cov/CoverageViewOptions.h
  stable/11/contrib/llvm/tools/llvm-cov/SourceCoverageView.cpp
  stable/11/contrib/llvm/tools/llvm-cov/SourceCoverageView.h
  stable/11/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
  stable/11/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.h
  stable/11/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.cpp
  stable/11/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.h
  stable/11/contrib/llvm/tools/llvm-cov/gcov.cpp
  stable/11/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp
  stable/11/contrib/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp
  stable/11/contrib/llvm/tools/llvm-diff/DiffConsumer.cpp
  stable/11/contrib/llvm/tools/llvm-diff/DiffLog.cpp
  stable/11/contrib/llvm/tools/llvm-dis/llvm-dis.cpp
  stable/11/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
  stable/11/contrib/llvm/tools/llvm-extract/llvm-extract.cpp
  stable/11/contrib/llvm/tools/llvm-link/llvm-link.cpp
  stable/11/contrib/llvm/tools/llvm-lto/llvm-lto.cpp
  stable/11/contrib/llvm/tools/llvm-lto2/llvm-lto2.cpp
  stable/11/contrib/llvm/tools/llvm-mc/llvm-mc.cpp
  stable/11/contrib/llvm/tools/llvm-modextract/llvm-modextract.cpp
  stable/11/contrib/llvm/tools/llvm-nm/llvm-nm.cpp
  stable/11/contrib/llvm/tools/llvm-objdump/COFFDump.cpp
  stable/11/contrib/llvm/tools/llvm-objdump/MachODump.cpp
  stable/11/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.h
  stable/11/contrib/llvm/tools/llvm-pdbutil/Diff.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.h
  stable/11/contrib/llvm/tools/llvm-pdbutil/FormatUtil.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/FormatUtil.h
  stable/11/contrib/llvm/tools/llvm-pdbutil/LinePrinter.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/LinePrinter.h
  stable/11/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.h
  stable/11/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/PrettyBuiltinDumper.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/StreamUtil.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/StreamUtil.h
  stable/11/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
  stable/11/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.h
  stable/11/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp
  stable/11/contrib/llvm/tools/llvm-readobj/ARMEHABIPrinter.h
  stable/11/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp
  stable/11/contrib/llvm/tools/llvm-readobj/COFFImportDumper.cpp
  stable/11/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp
  stable/11/contrib/llvm/tools/llvm-readobj/MachODumper.cpp
  stable/11/contrib/llvm/tools/llvm-readobj/ObjDumper.h
  stable/11/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp
  stable/11/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp
  stable/11/contrib/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
  stable/11/contrib/llvm/tools/llvm-stress/llvm-stress.cpp
  stable/11/contrib/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
  stable/11/contrib/llvm/tools/llvm-xray/llvm-xray.cc
  stable/11/contrib/llvm/tools/llvm-xray/xray-account.cc
  stable/11/contrib/llvm/tools/llvm-xray/xray-color-helper.cc
  stable/11/contrib/llvm/tools/llvm-xray/xray-converter.cc
  stable/11/contrib/llvm/tools/llvm-xray/xray-converter.h
  stable/11/contrib/llvm/tools/llvm-xray/xray-extract.cc
  stable/11/contrib/llvm/tools/llvm-xray/xray-graph.cc
  stable/11/contrib/llvm/tools/opt/NewPMDriver.cpp
  stable/11/contrib/llvm/tools/opt/NewPMDriver.h
  stable/11/contrib/llvm/tools/opt/PassPrinters.cpp
  stable/11/contrib/llvm/tools/opt/PassPrinters.h
  stable/11/contrib/llvm/tools/opt/opt.cpp
  stable/11/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/Attributes.cpp
  stable/11/contrib/llvm/utils/TableGen/CallingConvEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
  stable/11/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h
  stable/11/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp
  stable/11/contrib/llvm/utils/TableGen/CodeGenInstruction.h
  stable/11/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h
  stable/11/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp
  stable/11/contrib/llvm/utils/TableGen/CodeGenRegisters.h
  stable/11/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp
  stable/11/contrib/llvm/utils/TableGen/CodeGenSchedule.h
  stable/11/contrib/llvm/utils/TableGen/CodeGenTarget.cpp
  stable/11/contrib/llvm/utils/TableGen/CodeGenTarget.h
  stable/11/contrib/llvm/utils/TableGen/DAGISelEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/DAGISelMatcher.cpp
  stable/11/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp
  stable/11/contrib/llvm/utils/TableGen/DFAPacketizerEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/FastISelEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/OptParserEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/RegisterBankEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/SearchableTableEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/SequenceToOffsetTable.h
  stable/11/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/TableGen.cpp
  stable/11/contrib/llvm/utils/TableGen/TableGenBackends.h
  stable/11/contrib/llvm/utils/TableGen/X86DisassemblerTables.cpp
  stable/11/contrib/llvm/utils/TableGen/X86DisassemblerTables.h
  stable/11/contrib/llvm/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp
  stable/11/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp
  stable/11/contrib/llvm/utils/TableGen/X86RecognizableInstr.h
  stable/11/etc/mtree/BSD.debug.dist
  stable/11/etc/mtree/BSD.usr.dist
  stable/11/lib/clang/freebsd_cc_version.h
  stable/11/lib/clang/headers/Makefile
  stable/11/lib/clang/include/clang/Basic/Version.inc
  stable/11/lib/clang/include/clang/Config/config.h
  stable/11/lib/clang/include/lld/Common/Version.inc
  stable/11/lib/clang/include/lldb/Host/Config.h
  stable/11/lib/clang/include/llvm/Config/config.h
  stable/11/lib/clang/include/llvm/Config/llvm-config.h
  stable/11/lib/clang/include/llvm/Support/VCSRevision.h
  stable/11/lib/clang/libclang/Makefile
  stable/11/lib/clang/liblldb/Makefile
  stable/11/lib/clang/libllvm/Makefile
  stable/11/lib/clang/libllvmminimal/Makefile
  stable/11/lib/libclang_rt/Makefile
  stable/11/lib/libclang_rt/Makefile.inc
  stable/11/lib/libclang_rt/asan/Makefile
  stable/11/lib/libclang_rt/asan_cxx/Makefile
  stable/11/lib/libclang_rt/asan_dynamic/Makefile
  stable/11/lib/libclang_rt/include/Makefile
  stable/11/lib/libclang_rt/profile/Makefile
  stable/11/lib/libclang_rt/safestack/Makefile
  stable/11/lib/libclang_rt/stats/Makefile
  stable/11/lib/libclang_rt/ubsan_standalone/Makefile
  stable/11/lib/libclang_rt/ubsan_standalone_cxx/Makefile
  stable/11/sys/sys/param.h
  stable/11/tools/build/mk/OptionalObsoleteFiles.inc
  stable/11/usr.bin/clang/Makefile
  stable/11/usr.bin/clang/bugpoint/bugpoint.1
  stable/11/usr.bin/clang/clang-tblgen/Makefile
  stable/11/usr.bin/clang/clang/clang.1
  stable/11/usr.bin/clang/llc/llc.1
  stable/11/usr.bin/clang/lld/Makefile
  stable/11/usr.bin/clang/lli/lli.1
  stable/11/usr.bin/clang/llvm-ar/llvm-ar.1
  stable/11/usr.bin/clang/llvm-as/Makefile
  stable/11/usr.bin/clang/llvm-as/llvm-as.1
  stable/11/usr.bin/clang/llvm-bcanalyzer/Makefile
  stable/11/usr.bin/clang/llvm-bcanalyzer/llvm-bcanalyzer.1
  stable/11/usr.bin/clang/llvm-cov/llvm-cov.1
  stable/11/usr.bin/clang/llvm-cxxdump/Makefile
  stable/11/usr.bin/clang/llvm-cxxfilt/Makefile
  stable/11/usr.bin/clang/llvm-diff/Makefile
  stable/11/usr.bin/clang/llvm-diff/llvm-diff.1
  stable/11/usr.bin/clang/llvm-dis/llvm-dis.1
  stable/11/usr.bin/clang/llvm-dwarfdump/Makefile
  stable/11/usr.bin/clang/llvm-dwarfdump/llvm-dwarfdump.1
  stable/11/usr.bin/clang/llvm-extract/llvm-extract.1
  stable/11/usr.bin/clang/llvm-link/Makefile
  stable/11/usr.bin/clang/llvm-link/llvm-link.1
  stable/11/usr.bin/clang/llvm-modextract/Makefile
  stable/11/usr.bin/clang/llvm-nm/llvm-nm.1
  stable/11/usr.bin/clang/llvm-pdbutil/Makefile
  stable/11/usr.bin/clang/llvm-profdata/llvm-profdata.1
  stable/11/usr.bin/clang/llvm-symbolizer/llvm-symbolizer.1
  stable/11/usr.bin/clang/llvm-tblgen/Makefile
  stable/11/usr.bin/clang/opt/opt.1
  stable/11/usr.sbin/acpi/acpidb/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/ObsoleteFiles.inc
==============================================================================
--- stable/11/ObsoleteFiles.inc	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/ObsoleteFiles.inc	Sat Mar 31 11:38:16 2018	(r331838)
@@ -38,6 +38,123 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20180331: new clang import which bumps version from 5.0.1 to 6.0.0.
+OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/allocator_interface.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/asan_interface.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/common_interface_defs.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/coverage_interface.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/dfsan_interface.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/esan_interface.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/linux_syscall_hooks.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/lsan_interface.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/msan_interface.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/tsan_interface.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/tsan_interface_atomic.h
+OLD_DIRS+=usr/lib/clang/5.0.1/include/sanitizer
+OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_builtin_vars.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_cmath.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_complex_builtins.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_intrinsics.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_math_forward_declares.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_runtime_wrapper.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/__stddef_max_align_t.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/__wmmintrin_aes.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/__wmmintrin_pclmul.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/adxintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/altivec.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/ammintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/arm_acle.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/arm_neon.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/armintr.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx2intrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512bwintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512cdintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512dqintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512erintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512fintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512ifmaintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512ifmavlintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512pfintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vbmiintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vbmivlintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vlbwintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vlcdintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vldqintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vlintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vpopcntdqintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/avxintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/bmi2intrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/bmiintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/clflushoptintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/clzerointrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/cpuid.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/emmintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/f16cintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/fma4intrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/fmaintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/fxsrintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/htmintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/htmxlintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/ia32intrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/immintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/lwpintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/lzcntintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/mm3dnow.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/mm_malloc.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/mmintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/module.modulemap
+OLD_FILES+=usr/lib/clang/5.0.1/include/msa.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/mwaitxintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/nmmintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/opencl-c.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/pkuintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/pmmintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/popcntintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/prfchwintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/rdseedintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/rtmintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/s390intrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/shaintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/smmintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/tbmintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/tmmintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/vadefs.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/vecintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/wmmintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/x86intrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/xmmintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/xopintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/xsavecintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/xsaveintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/xsaveoptintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/xsavesintrin.h
+OLD_FILES+=usr/lib/clang/5.0.1/include/xtestintrin.h
+OLD_DIRS+=usr/lib/clang/5.0.1/include
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-i386.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-i386.so
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-preinit-i386.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-x86_64.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-x86_64.so
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan_cxx-i386.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-arm.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-armhf.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-i386.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-x86_64.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.safestack-i386.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.safestack-x86_64.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats-i386.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats-x86_64.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats_client-i386.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats_client-x86_64.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a
+OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a
+OLD_DIRS+=usr/lib/clang/5.0.1/lib/freebsd
+OLD_DIRS+=usr/lib/clang/5.0.1/lib
+OLD_DIRS+=usr/lib/clang/5.0.1
 # 20180213: remove c_rehash(1)
 OLD_FILES+=usr/share/openssl/man/man1/c_rehash.1.gz
 # 20180212: Obsolete forth files

Modified: stable/11/UPDATING
==============================================================================
--- stable/11/UPDATING	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/UPDATING	Sat Mar 31 11:38:16 2018	(r331838)
@@ -16,6 +16,12 @@ from older versions of FreeBSD, try WITHOUT_CLANG and 
 the tip of head, and then rebuild without this option. The bootstrap process
 from older version of current across the gcc/clang cutover is a bit fragile.
 
+20180331:
+	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
+	6.0.0.  Please see the 20141231 entry below for information about
+	prerequisites and upgrading, if you are not already using clang 3.5.0
+	or higher.
+
 20180211:
 	The LOADER_FIREWIRE_SUPPORT build variable as been renamed to
 	WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed
@@ -25,7 +31,6 @@ from older version of current across the gcc/clang cut
 	The geli password typed at boot is now hidden.  To restore the previous
 	behavior, see geli(8) for configuration options.
 
-20180113:
 	The SW_WATCHDOG option is no longer necessary to enable the
 	hardclock-based software watchdog if no hardware watchdog is
 	configured. As before, SW_WATCHDOG will cause the software

Modified: stable/11/contrib/compiler-rt/include/sanitizer/allocator_interface.h
==============================================================================
--- stable/11/contrib/compiler-rt/include/sanitizer/allocator_interface.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/include/sanitizer/allocator_interface.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -32,7 +32,7 @@ extern "C" {
   size_t __sanitizer_get_allocated_size(const volatile void *p);
 
   /* Number of bytes, allocated and not yet freed by the application. */
-  size_t __sanitizer_get_current_allocated_bytes();
+  size_t __sanitizer_get_current_allocated_bytes(void);
 
   /* Number of bytes, mmaped by the allocator to fulfill allocation requests.
      Generally, for request of X bytes, allocator can reserve and add to free
@@ -40,17 +40,17 @@ extern "C" {
      All these chunks count toward the heap size. Currently, allocator never
      releases memory to OS (instead, it just puts freed chunks to free
      lists). */
-  size_t __sanitizer_get_heap_size();
+  size_t __sanitizer_get_heap_size(void);
 
   /* Number of bytes, mmaped by the allocator, which can be used to fulfill
      allocation requests. When a user program frees memory chunk, it can first
      fall into quarantine and will count toward __sanitizer_get_free_bytes()
      later. */
-  size_t __sanitizer_get_free_bytes();
+  size_t __sanitizer_get_free_bytes(void);
 
   /* Number of bytes in unmapped pages, that are released to OS. Currently,
      always returns 0. */
-  size_t __sanitizer_get_unmapped_bytes();
+  size_t __sanitizer_get_unmapped_bytes(void);
 
   /* Malloc hooks that may be optionally provided by user.
      __sanitizer_malloc_hook(ptr, size) is called immediately after
@@ -75,6 +75,13 @@ extern "C" {
   int __sanitizer_install_malloc_and_free_hooks(
       void (*malloc_hook)(const volatile void *, size_t),
       void (*free_hook)(const volatile void *));
+
+  /* Drains allocator quarantines (calling thread's and global ones), returns
+     freed memory back to OS and releases other non-essential internal allocator
+     resources in attempt to reduce process RSS.
+     Currently available with ASan only.
+  */
+  void __sanitizer_purge_allocator(void);
 
 #ifdef __cplusplus
 }  // extern "C"

Modified: stable/11/contrib/compiler-rt/include/sanitizer/asan_interface.h
==============================================================================
--- stable/11/contrib/compiler-rt/include/sanitizer/asan_interface.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/include/sanitizer/asan_interface.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -64,19 +64,19 @@ extern "C" {
 
   // Useful for calling from a debugger to get information about an ASan error.
   // Returns 1 if an error has been (or is being) reported, otherwise returns 0.
-  int __asan_report_present();
+  int __asan_report_present(void);
 
   // Useful for calling from a debugger to get information about an ASan error.
   // If an error has been (or is being) reported, the following functions return
   // the pc, bp, sp, address, access type (0 = read, 1 = write), access size and
   // bug description (e.g. "heap-use-after-free"). Otherwise they return 0.
-  void *__asan_get_report_pc();
-  void *__asan_get_report_bp();
-  void *__asan_get_report_sp();
-  void *__asan_get_report_address();
-  int __asan_get_report_access_type();
-  size_t __asan_get_report_access_size();
-  const char *__asan_get_report_description();
+  void *__asan_get_report_pc(void);
+  void *__asan_get_report_bp(void);
+  void *__asan_get_report_sp(void);
+  void *__asan_get_report_address(void);
+  int __asan_get_report_access_type(void);
+  size_t __asan_get_report_access_size(void);
+  const char *__asan_get_report_description(void);
 
   // Useful for calling from the debugger to get information about a pointer.
   // Returns the category of the given pointer as a constant string.
@@ -118,21 +118,21 @@ extern "C" {
   // User may provide function that would be called right when ASan detects
   // an error. This can be used to notice cases when ASan detects an error, but
   // the program crashes before ASan report is printed.
-  void __asan_on_error();
+  void __asan_on_error(void);
 
   // Prints accumulated stats to stderr. Used for debugging.
-  void __asan_print_accumulated_stats();
+  void __asan_print_accumulated_stats(void);
 
   // This function may be optionally provided by user and should return
   // a string containing ASan runtime options. See asan_flags.h for details.
-  const char* __asan_default_options();
+  const char* __asan_default_options(void);
 
   // The following 2 functions facilitate garbage collection in presence of
   // asan's fake stack.
 
   // Returns an opaque handler to be used later in __asan_addr_is_in_fake_stack.
   // Returns NULL if the current thread does not have a fake stack.
-  void *__asan_get_current_fake_stack();
+  void *__asan_get_current_fake_stack(void);
 
   // If fake_stack is non-NULL and addr belongs to a fake frame in
   // fake_stack, returns the address on real stack that corresponds to
@@ -143,6 +143,10 @@ extern "C" {
   // fake_stack, but the owner thread need to be alive.
   void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg,
                                      void **end);
+
+  // Performs cleanup before a [[noreturn]] function.  Must be called
+  // before things like _exit and execl to avoid false positives on stack.
+  void __asan_handle_no_return(void);
 
 #ifdef __cplusplus
 }  // extern "C"

Modified: stable/11/contrib/compiler-rt/include/sanitizer/common_interface_defs.h
==============================================================================
--- stable/11/contrib/compiler-rt/include/sanitizer/common_interface_defs.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/include/sanitizer/common_interface_defs.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -115,7 +115,7 @@ extern "C" {
       const void *beg, const void *mid, const void *end);
 
   // Print the stack trace leading to this call. Useful for debugging user code.
-  void __sanitizer_print_stack_trace();
+  void __sanitizer_print_stack_trace(void);
 
   // Symbolizes the supplied 'pc' using the format string 'fmt'.
   // Outputs at most 'out_buf_size' bytes into 'out_buf'.

Modified: stable/11/contrib/compiler-rt/include/sanitizer/coverage_interface.h
==============================================================================
--- stable/11/contrib/compiler-rt/include/sanitizer/coverage_interface.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/include/sanitizer/coverage_interface.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -20,10 +20,13 @@ extern "C" {
 #endif
 
   // Record and dump coverage info.
-  void __sanitizer_cov_dump();
+  void __sanitizer_cov_dump(void);
 
-  //  Dump collected coverage info. Sorts pcs by module into individual
-  //  .sancov files.
+  // Clear collected coverage info.
+  void __sanitizer_cov_reset(void);
+
+  // Dump collected coverage info. Sorts pcs by module into individual .sancov
+  // files.
   void __sanitizer_dump_coverage(const uintptr_t *pcs, uintptr_t len);
 
 #ifdef __cplusplus

Modified: stable/11/contrib/compiler-rt/include/sanitizer/esan_interface.h
==============================================================================
--- stable/11/contrib/compiler-rt/include/sanitizer/esan_interface.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/include/sanitizer/esan_interface.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -37,11 +37,11 @@ extern "C" {
 // This function can be called mid-run (or at the end of a run for
 // a server process that doesn't shut down normally) to request that
 // data for that point in the run be reported from the tool.
-void COMPILER_RT_WEAK __esan_report();
+void COMPILER_RT_WEAK __esan_report(void);
 
 // This function returns the number of samples that the esan tool has collected
 // to this point.  This is useful for testing.
-unsigned int COMPILER_RT_WEAK __esan_get_sample_count();
+unsigned int COMPILER_RT_WEAK __esan_get_sample_count(void);
 
 #ifdef __cplusplus
 } // extern "C"

Copied: stable/11/contrib/compiler-rt/include/sanitizer/hwasan_interface.h (from r327952, head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/compiler-rt/include/sanitizer/hwasan_interface.h	Sat Mar 31 11:38:16 2018	(r331838, copy of r327952, head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h)
@@ -0,0 +1,33 @@
+//===-- sanitizer/asan_interface.h ------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file is a part of HWAddressSanitizer.
+//
+// Public interface header.
+//===----------------------------------------------------------------------===//
+#ifndef SANITIZER_HWASAN_INTERFACE_H
+#define SANITIZER_HWASAN_INTERFACE_H
+
+#include 
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+  // This function may be optionally provided by user and should return
+  // a string containing HWASan runtime options. See asan_flags.h for details.
+  const char* __hwasan_default_options(void);
+
+  void __hwasan_enable_allocator_tagging(void);
+  void __hwasan_disable_allocator_tagging(void);
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
+#endif  // SANITIZER_HWASAN_INTERFACE_H

Modified: stable/11/contrib/compiler-rt/include/sanitizer/lsan_interface.h
==============================================================================
--- stable/11/contrib/compiler-rt/include/sanitizer/lsan_interface.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/include/sanitizer/lsan_interface.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -21,8 +21,8 @@ extern "C" {
 #endif
   // Allocations made between calls to __lsan_disable() and __lsan_enable() will
   // be treated as non-leaks. Disable/enable pairs may be nested.
-  void __lsan_disable();
-  void __lsan_enable();
+  void __lsan_disable(void);
+  void __lsan_enable(void);
 
   // The heap object into which p points will be treated as a non-leak.
   void __lsan_ignore_object(const void *p);
@@ -49,7 +49,7 @@ extern "C" {
   // the time of first invocation of this function.
   // By calling this function early during process shutdown, you can instruct
   // LSan to ignore shutdown-only leaks which happen later on.
-  void __lsan_do_leak_check();
+  void __lsan_do_leak_check(void);
 
   // Check for leaks now. Returns zero if no leaks have been found or if leak
   // detection is disabled, non-zero otherwise.
@@ -58,17 +58,23 @@ extern "C" {
   // terminate the process. It does not affect the behavior of
   // __lsan_do_leak_check() or the end-of-process leak check, and is not
   // affected by them.
-  int __lsan_do_recoverable_leak_check();
+  int __lsan_do_recoverable_leak_check(void);
 
   // The user may optionally provide this function to disallow leak checking
   // for the program it is linked into (if the return value is non-zero). This
   // function must be defined as returning a constant value; any behavior beyond
   // that is unsupported.
-  int __lsan_is_turned_off();
+  // To avoid dead stripping, you may need to define this function with
+  // __attribute__((used))
+  int __lsan_is_turned_off(void);
 
+  // This function may be optionally provided by user and should return
+  // a string containing LSan runtime options. See lsan_flags.inc for details.
+  const char *__lsan_default_options(void);
+
   // This function may be optionally provided by the user and should return
   // a string containing LSan suppressions.
-  const char *__lsan_default_suppressions();
+  const char *__lsan_default_suppressions(void);
 #ifdef __cplusplus
 }  // extern "C"
 

Modified: stable/11/contrib/compiler-rt/include/sanitizer/msan_interface.h
==============================================================================
--- stable/11/contrib/compiler-rt/include/sanitizer/msan_interface.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/include/sanitizer/msan_interface.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -31,10 +31,10 @@ extern "C" {
   int __msan_origin_is_descendant_or_same(uint32_t this_id, uint32_t prev_id);
 
   /* Returns non-zero if tracking origins. */
-  int __msan_get_track_origins();
+  int __msan_get_track_origins(void);
 
   /* Returns the origin id of the latest UMR in the calling thread. */
-  uint32_t __msan_get_umr_origin();
+  uint32_t __msan_get_umr_origin(void);
 
   /* Make memory region fully initialized (without changing its contents). */
   void __msan_unpoison(const volatile void *a, size_t size);
@@ -82,7 +82,7 @@ extern "C" {
   void __msan_dump_shadow(const volatile void *x, size_t size);
 
   /* Returns true if running under a dynamic tool (DynamoRio-based). */
-  int  __msan_has_dynamic_component();
+  int  __msan_has_dynamic_component(void);
 
   /* Tell MSan about newly allocated memory (ex.: custom allocator).
      Memory will be marked uninitialized, with origin at the call site. */
@@ -93,7 +93,7 @@ extern "C" {
 
   /* This function may be optionally provided by user and should return
      a string containing Msan runtime options. See msan_flags.h for details. */
-  const char* __msan_default_options();
+  const char* __msan_default_options(void);
 
   /* Deprecated. Call __sanitizer_set_death_callback instead. */
   void __msan_set_death_callback(void (*callback)(void));

Copied: stable/11/contrib/compiler-rt/include/sanitizer/scudo_interface.h (from r327952, head/contrib/compiler-rt/include/sanitizer/scudo_interface.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/compiler-rt/include/sanitizer/scudo_interface.h	Sat Mar 31 11:38:16 2018	(r331838, copy of r327952, head/contrib/compiler-rt/include/sanitizer/scudo_interface.h)
@@ -0,0 +1,34 @@
+//===-- sanitizer/scudo_interface.h -----------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+/// Public Scudo interface header.
+//
+//===----------------------------------------------------------------------===//
+#ifndef SANITIZER_SCUDO_INTERFACE_H_
+#define SANITIZER_SCUDO_INTERFACE_H_
+
+#include 
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+  // This function may be optionally provided by a user and should return
+  // a string containing Scudo runtime options. See scudo_flags.h for details.
+  const char* __scudo_default_options(void);
+
+  // This function allows to set the RSS limit at runtime. This can be either
+  // the hard limit (HardLimit=1) or the soft limit (HardLimit=0). The limit
+  // can be removed by setting LimitMb to 0. This function's parameters should
+  // be fully trusted to avoid security mishaps.
+  void __scudo_set_rss_limit(unsigned long LimitMb, int HardLimit);
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
+#endif  // SANITIZER_SCUDO_INTERFACE_H_

Modified: stable/11/contrib/compiler-rt/include/sanitizer/tsan_interface.h
==============================================================================
--- stable/11/contrib/compiler-rt/include/sanitizer/tsan_interface.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/include/sanitizer/tsan_interface.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -44,6 +44,11 @@ const unsigned __tsan_mutex_linker_init      = 1 << 0;
 const unsigned __tsan_mutex_write_reentrant  = 1 << 1;
 // Mutex is read reentrant.
 const unsigned __tsan_mutex_read_reentrant   = 1 << 2;
+// Mutex does not have static storage duration, and must not be used after
+// its destructor runs.  The opposite of __tsan_mutex_linker_init.
+// If this flag is passed to __tsan_mutex_destroy, then the destruction
+// is ignored unless this flag was previously set on the mutex.
+const unsigned __tsan_mutex_not_static       = 1 << 8;
 
 // Mutex operation flags:
 
@@ -70,6 +75,7 @@ void __tsan_mutex_create(void *addr, unsigned flags);
 // Annotate destruction of a mutex.
 // Supported flags:
 //   - __tsan_mutex_linker_init
+//   - __tsan_mutex_not_static
 void __tsan_mutex_destroy(void *addr, unsigned flags);
 
 // Annotate start of lock operation.

Modified: stable/11/contrib/compiler-rt/include/xray/xray_interface.h
==============================================================================
--- stable/11/contrib/compiler-rt/include/xray/xray_interface.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/include/xray/xray_interface.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -106,6 +106,14 @@ extern uintptr_t __xray_function_address(int32_t FuncI
 /// encounter errors (when there are no instrumented functions, etc.).
 extern size_t __xray_max_function_id();
 
+/// Initialize the required XRay data structures. This is useful in cases where
+/// users want to control precisely when the XRay instrumentation data
+/// structures are initialized, for example when the XRay library is built with
+/// the XRAY_NO_PREINIT preprocessor definition.
+///
+/// Calling __xray_init() more than once is safe across multiple threads.
+extern void __xray_init();
+
 } // end extern "C"
 
 #endif // XRAY_XRAY_INTERFACE_H

Modified: stable/11/contrib/compiler-rt/include/xray/xray_log_interface.h
==============================================================================
--- stable/11/contrib/compiler-rt/include/xray/xray_log_interface.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/include/xray/xray_log_interface.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -128,6 +128,16 @@ enum XRayLogFlushStatus {
   XRAY_LOG_FLUSHED = 2,
 };
 
+/// This enum indicates the installation state of a logging implementation, when
+/// associating a mode to a particular logging implementation through
+/// `__xray_log_register_impl(...)` or through `__xray_log_select_mode(...`.
+enum XRayLogRegisterStatus {
+  XRAY_REGISTRATION_OK = 0,
+  XRAY_DUPLICATE_MODE = 1,
+  XRAY_MODE_NOT_FOUND = 2,
+  XRAY_INCOMPLETE_IMPL = 3,
+};
+
 /// A valid XRay logging implementation MUST provide all of the function
 /// pointers in XRayLogImpl when being installed through `__xray_set_log_impl`.
 /// To be precise, ALL the functions pointers MUST NOT be nullptr.
@@ -159,6 +169,9 @@ struct XRayLogImpl {
   /// always have a handler for function entry and exit events. In case the
   /// implementation wants to support arg1 (or other future extensions to XRay
   /// logging) those MUST be installed by the installed 'log_init' handler.
+  ///
+  /// Because we didn't want to change the ABI of this struct, the arg1 handler
+  /// may be silently overwritten during initialization as well.
   void (*handle_arg0)(int32_t, XRayEntryType);
 
   /// The log implementation provided routine for when __xray_log_flushLog() is
@@ -186,6 +199,34 @@ struct XRayLogImpl {
 /// called while in any other states.
 void __xray_set_log_impl(XRayLogImpl Impl);
 
+/// This function registers a logging implementation against a "mode"
+/// identifier. This allows multiple modes to be registered, and chosen at
+/// runtime using the same mode identifier through
+/// `__xray_log_select_mode(...)`.
+///
+/// We treat the Mode identifier as a null-terminated byte string, as the
+/// identifier used when retrieving the log impl.
+///
+/// Returns:
+///   - XRAY_REGISTRATION_OK on success.
+///   - XRAY_DUPLICATE_MODE when an implementation is already associated with
+///     the provided Mode; does not update the already-registered
+///     implementation.
+XRayLogRegisterStatus __xray_log_register_mode(const char *Mode,
+                                               XRayLogImpl Impl);
+
+/// This function selects the implementation associated with Mode that has been
+/// registered through __xray_log_register_mode(...) and installs that
+/// implementation (as if through calling __xray_set_log_impl(...)). The same
+/// caveats apply to __xray_log_select_mode(...) as with
+/// __xray_log_set_log_impl(...).
+///
+/// Returns:
+///   - XRAY_REGISTRATION_OK on success.
+///   - XRAY_MODE_NOT_FOUND if there is no implementation associated with Mode;
+///     does not update the currently installed implementation.
+XRayLogRegisterStatus __xray_log_select_mode(const char *Mode);
+
 /// This function removes the currently installed implementation. It will also
 /// uninstall any handlers that have been previously installed. It does NOT
 /// unpatch the instrumentation sleds.
@@ -220,10 +261,17 @@ XRayLogFlushStatus __xray_log_flushLog();
 
 namespace __xray {
 
-// Options used by the LLVM XRay FDR implementation.
+/// Options used by the LLVM XRay FDR logging implementation.
 struct FDRLoggingOptions {
   bool ReportErrors = false;
   int Fd = -1;
+};
+
+/// Options used by the LLVM XRay Basic (Naive) logging implementation.
+struct BasicLoggingOptions {
+  int DurationFilterMicros = 0;
+  size_t MaxStackDepth = 0;
+  size_t ThreadBufferSize = 0;
 };
 
 } // namespace __xray

Modified: stable/11/contrib/compiler-rt/include/xray/xray_records.h
==============================================================================
--- stable/11/contrib/compiler-rt/include/xray/xray_records.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/include/xray/xray_records.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -17,6 +17,8 @@
 #ifndef XRAY_XRAY_RECORDS_H
 #define XRAY_XRAY_RECORDS_H
 
+#include 
+
 namespace __xray {
 
 enum FileTypes {
@@ -65,18 +67,23 @@ static_assert(sizeof(XRayFileHeader) == 32, "XRayFileH
 
 enum RecordTypes {
   NORMAL = 0,
+  ARG_PAYLOAD = 1,
 };
 
 struct alignas(32) XRayRecord {
   // This is the type of the record being written. We use 16 bits to allow us to
   // treat this as a discriminant, and so that the first 4 bytes get packed
   // properly. See RecordTypes for more supported types.
-  uint16_t RecordType = 0;
+  uint16_t RecordType = RecordTypes::NORMAL;
 
   // The CPU where the thread is running. We assume number of CPUs <= 256.
   uint8_t CPU = 0;
 
-  // The type of the event. Usually either ENTER = 0 or EXIT = 1.
+  // The type of the event. One of the following:
+  //   ENTER = 0
+  //   EXIT = 1
+  //   TAIL_EXIT = 2
+  //   ENTER_ARG = 3
   uint8_t Type = 0;
 
   // The function ID for the record.
@@ -93,6 +100,32 @@ struct alignas(32) XRayRecord {
 } __attribute__((packed));
 
 static_assert(sizeof(XRayRecord) == 32, "XRayRecord != 32 bytes");
+
+struct alignas(32) XRayArgPayload {
+  // We use the same 16 bits as a discriminant for the records in the log here
+  // too, and so that the first 4 bytes are packed properly.
+  uint16_t RecordType = RecordTypes::ARG_PAYLOAD;
+
+  // Add a few bytes to pad.
+  uint8_t Padding[2] = {};
+
+  // The function ID for the record.
+  int32_t FuncId = 0;
+
+  // The thread ID for the currently running thread.
+  uint32_t TId = 0;
+
+  // Add more padding.
+  uint8_t Padding2[4] = {};
+
+  // The argument payload.
+  uint64_t Arg = 0;
+
+  // The rest of this record ought to be left as padding.
+  uint8_t TailPadding[8] = {};
+} __attribute__((packed));
+
+static_assert(sizeof(XRayArgPayload) == 32, "XRayArgPayload != 32 bytes");
 
 } // namespace __xray
 

Modified: stable/11/contrib/compiler-rt/lib/BlocksRuntime/Block.h
==============================================================================
--- stable/11/contrib/compiler-rt/lib/BlocksRuntime/Block.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/lib/BlocksRuntime/Block.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -27,7 +27,7 @@
 
 #if !defined(BLOCK_EXPORT)
 #   if defined(__cplusplus)
-#       define BLOCK_EXPORT extern "C" 
+#       define BLOCK_EXPORT extern "C"
 #   else
 #       define BLOCK_EXPORT extern
 #   endif

Modified: stable/11/contrib/compiler-rt/lib/BlocksRuntime/Block_private.h
==============================================================================
--- stable/11/contrib/compiler-rt/lib/BlocksRuntime/Block_private.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/lib/BlocksRuntime/Block_private.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -27,7 +27,7 @@
 
 #if !defined(BLOCK_EXPORT)
 #   if defined(__cplusplus)
-#       define BLOCK_EXPORT extern "C" 
+#       define BLOCK_EXPORT extern "C"
 #   else
 #       define BLOCK_EXPORT extern
 #   endif

Modified: stable/11/contrib/compiler-rt/lib/asan/asan_activation.cc
==============================================================================
--- stable/11/contrib/compiler-rt/lib/asan/asan_activation.cc	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/lib/asan/asan_activation.cc	Sat Mar 31 11:38:16 2018	(r331838)
@@ -16,8 +16,10 @@
 #include "asan_allocator.h"
 #include "asan_flags.h"
 #include "asan_internal.h"
+#include "asan_mapping.h"
 #include "asan_poisoning.h"
 #include "asan_stack.h"
+#include "sanitizer_common/sanitizer_common.h"
 #include "sanitizer_common/sanitizer_flags.h"
 
 namespace __asan {
@@ -110,8 +112,9 @@ void AsanDeactivate() {
   AllocatorOptions disabled = asan_deactivated_flags.allocator_options;
   disabled.quarantine_size_mb = 0;
   disabled.thread_local_quarantine_size_kb = 0;
-  disabled.min_redzone = 16;  // Redzone must be at least 16 bytes long.
-  disabled.max_redzone = 16;
+  // Redzone must be at least Max(16, granularity) bytes long.
+  disabled.min_redzone = Max(16, (int)SHADOW_GRANULARITY);
+  disabled.max_redzone = disabled.min_redzone;
   disabled.alloc_dealloc_mismatch = false;
   disabled.may_return_null = true;
   ReInitializeAllocator(disabled);

Modified: stable/11/contrib/compiler-rt/lib/asan/asan_allocator.cc
==============================================================================
--- stable/11/contrib/compiler-rt/lib/asan/asan_allocator.cc	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/lib/asan/asan_allocator.cc	Sat Mar 31 11:38:16 2018	(r331838)
@@ -84,7 +84,10 @@ struct ChunkHeader {
   // This field is used for small sizes. For large sizes it is equal to
   // SizeClassMap::kMaxSize and the actual size is stored in the
   // SecondaryAllocator's metadata.
-  u32 user_requested_size;
+  u32 user_requested_size : 29;
+  // align < 8 -> 0
+  // else      -> log2(min(align, 512)) - 2
+  u32 user_requested_alignment_log : 3;
   u32 alloc_context_id;
 };
 
@@ -271,9 +274,9 @@ struct Allocator {
     atomic_store(&max_redzone, options.max_redzone, memory_order_release);
   }
 
-  void Initialize(const AllocatorOptions &options) {
+  void InitLinkerInitialized(const AllocatorOptions &options) {
     SetAllocatorMayReturnNull(options.may_return_null);
-    allocator.Init(options.release_to_os_interval_ms);
+    allocator.InitLinkerInitialized(options.release_to_os_interval_ms);
     SharedInitCode(options);
   }
 
@@ -351,6 +354,20 @@ struct Allocator {
     return Min(Max(rz_log, RZSize2Log(min_rz)), RZSize2Log(max_rz));
   }
 
+  static uptr ComputeUserRequestedAlignmentLog(uptr user_requested_alignment) {
+    if (user_requested_alignment < 8)
+      return 0;
+    if (user_requested_alignment > 512)
+      user_requested_alignment = 512;
+    return Log2(user_requested_alignment) - 2;
+  }
+
+  static uptr ComputeUserAlignment(uptr user_requested_alignment_log) {
+    if (user_requested_alignment_log == 0)
+      return 0;
+    return 1LL << (user_requested_alignment_log + 2);
+  }
+
   // We have an address between two chunks, and we want to report just one.
   AsanChunk *ChooseChunk(uptr addr, AsanChunk *left_chunk,
                          AsanChunk *right_chunk) {
@@ -385,6 +402,8 @@ struct Allocator {
     Flags &fl = *flags();
     CHECK(stack);
     const uptr min_alignment = SHADOW_GRANULARITY;
+    const uptr user_requested_alignment_log =
+        ComputeUserRequestedAlignmentLog(alignment);
     if (alignment < min_alignment)
       alignment = min_alignment;
     if (size == 0) {
@@ -472,6 +491,7 @@ struct Allocator {
       meta[0] = size;
       meta[1] = chunk_beg;
     }
+    m->user_requested_alignment_log = user_requested_alignment_log;
 
     m->alloc_context_id = StackDepotPut(*stack);
 
@@ -573,8 +593,8 @@ struct Allocator {
     }
   }
 
-  void Deallocate(void *ptr, uptr delete_size, BufferedStackTrace *stack,
-                  AllocType alloc_type) {
+  void Deallocate(void *ptr, uptr delete_size, uptr delete_alignment,
+                  BufferedStackTrace *stack, AllocType alloc_type) {
     uptr p = reinterpret_cast(ptr);
     if (p == 0) return;
 
@@ -601,13 +621,16 @@ struct Allocator {
         ReportAllocTypeMismatch((uptr)ptr, stack, (AllocType)m->alloc_type,
                                 (AllocType)alloc_type);
       }
+    } else {
+      if (flags()->new_delete_type_mismatch &&
+          (alloc_type == FROM_NEW || alloc_type == FROM_NEW_BR) &&
+          ((delete_size && delete_size != m->UsedSize()) ||
+           ComputeUserRequestedAlignmentLog(delete_alignment) !=
+               m->user_requested_alignment_log)) {
+        ReportNewDeleteTypeMismatch(p, delete_size, delete_alignment, stack);
+      }
     }
 
-    if (delete_size && flags()->new_delete_type_mismatch &&
-        delete_size != m->UsedSize()) {
-      ReportNewDeleteSizeMismatch(p, delete_size, stack);
-    }
-
     QuarantineChunk(m, ptr, stack);
   }
 
@@ -631,7 +654,7 @@ struct Allocator {
       // If realloc() races with free(), we may start copying freed memory.
       // However, we will report racy double-free later anyway.
       REAL(memcpy)(new_ptr, old_ptr, memcpy_size);
-      Deallocate(old_ptr, 0, stack, FROM_MALLOC);
+      Deallocate(old_ptr, 0, 0, stack, FROM_MALLOC);
     }
     return new_ptr;
   }
@@ -716,6 +739,22 @@ struct Allocator {
     return AsanChunkView(m1);
   }
 
+  void Purge() {
+    AsanThread *t = GetCurrentThread();
+    if (t) {
+      AsanThreadLocalMallocStorage *ms = &t->malloc_storage();
+      quarantine.DrainAndRecycle(GetQuarantineCache(ms),
+                                 QuarantineCallback(GetAllocatorCache(ms)));
+    }
+    {
+      SpinMutexLock l(&fallback_mutex);
+      quarantine.DrainAndRecycle(&fallback_quarantine_cache,
+                                 QuarantineCallback(&fallback_allocator_cache));
+    }
+
+    allocator.ForceReleaseToOS();
+  }
+
   void PrintStats() {
     allocator.PrintStats();
     quarantine.PrintStats();
@@ -750,6 +789,9 @@ bool AsanChunkView::IsQuarantined() const {
 uptr AsanChunkView::Beg() const { return chunk_->Beg(); }
 uptr AsanChunkView::End() const { return Beg() + UsedSize(); }
 uptr AsanChunkView::UsedSize() const { return chunk_->UsedSize(); }
+u32 AsanChunkView::UserRequestedAlignment() const {
+  return Allocator::ComputeUserAlignment(chunk_->user_requested_alignment_log);
+}
 uptr AsanChunkView::AllocTid() const { return chunk_->alloc_tid; }
 uptr AsanChunkView::FreeTid() const { return chunk_->free_tid; }
 AllocType AsanChunkView::GetAllocType() const {
@@ -775,7 +817,7 @@ StackTrace AsanChunkView::GetFreeStack() const {
 }
 
 void InitializeAllocator(const AllocatorOptions &options) {
-  instance.Initialize(options);
+  instance.InitLinkerInitialized(options);
 }
 
 void ReInitializeAllocator(const AllocatorOptions &options) {
@@ -802,12 +844,12 @@ void PrintInternalAllocatorStats() {
 }
 
 void asan_free(void *ptr, BufferedStackTrace *stack, AllocType alloc_type) {
-  instance.Deallocate(ptr, 0, stack, alloc_type);
+  instance.Deallocate(ptr, 0, 0, stack, alloc_type);
 }
 
-void asan_sized_free(void *ptr, uptr size, BufferedStackTrace *stack,
-                     AllocType alloc_type) {
-  instance.Deallocate(ptr, size, stack, alloc_type);
+void asan_delete(void *ptr, uptr size, uptr alignment,
+                 BufferedStackTrace *stack, AllocType alloc_type) {
+  instance.Deallocate(ptr, size, alignment, stack, alloc_type);
 }
 
 void *asan_malloc(uptr size, BufferedStackTrace *stack) {
@@ -823,7 +865,7 @@ void *asan_realloc(void *p, uptr size, BufferedStackTr
     return SetErrnoOnNull(instance.Allocate(size, 8, stack, FROM_MALLOC, true));
   if (size == 0) {
     if (flags()->allocator_frees_and_returns_null_on_realloc_zero) {
-      instance.Deallocate(p, 0, stack, FROM_MALLOC);
+      instance.Deallocate(p, 0, 0, stack, FROM_MALLOC);
       return nullptr;
     }
     // Allocate a size of 1 if we shouldn't free() on Realloc to 0
@@ -839,6 +881,10 @@ void *asan_valloc(uptr size, BufferedStackTrace *stack
 
 void *asan_pvalloc(uptr size, BufferedStackTrace *stack) {
   uptr PageSize = GetPageSizeCached();
+  if (UNLIKELY(CheckForPvallocOverflow(size, PageSize))) {
+    errno = errno_ENOMEM;
+    return AsanAllocator::FailureHandler::OnBadRequest();
+  }
   // pvalloc(0) should allocate one page.
   size = size ? RoundUpTo(size, PageSize) : PageSize;
   return SetErrnoOnNull(
@@ -1005,6 +1051,10 @@ uptr __sanitizer_get_allocated_size(const void *p) {
     ReportSanitizerGetAllocatedSizeNotOwned(ptr, &stack);
   }
   return allocated_size;
+}
+
+void __sanitizer_purge_allocator() {
+  instance.Purge();
 }
 
 #if !SANITIZER_SUPPORTS_WEAK_HOOKS

Modified: stable/11/contrib/compiler-rt/lib/asan/asan_allocator.h
==============================================================================
--- stable/11/contrib/compiler-rt/lib/asan/asan_allocator.h	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/lib/asan/asan_allocator.h	Sat Mar 31 11:38:16 2018	(r331838)
@@ -58,6 +58,7 @@ class AsanChunkView {
   uptr Beg() const;            // First byte of user memory.
   uptr End() const;            // Last byte of user memory.
   uptr UsedSize() const;       // Size requested by the user.
+  u32 UserRequestedAlignment() const;  // Originally requested alignment.
   uptr AllocTid() const;
   uptr FreeTid() const;
   bool Eq(const AsanChunkView &c) const { return chunk_ == c.chunk_; }
@@ -119,7 +120,11 @@ struct AsanMapUnmapCallback {
 };
 
 #if SANITIZER_CAN_USE_ALLOCATOR64
-# if defined(__powerpc64__)
+# if SANITIZER_FUCHSIA
+const uptr kAllocatorSpace = ~(uptr)0;
+const uptr kAllocatorSize  =  0x40000000000ULL;  // 4T.
+typedef DefaultSizeClassMap SizeClassMap;
+# elif defined(__powerpc64__)
 const uptr kAllocatorSpace =  0xa0000000000ULL;
 const uptr kAllocatorSize  =  0x20000000000ULL;  // 2T.
 typedef DefaultSizeClassMap SizeClassMap;
@@ -193,8 +198,8 @@ struct AsanThreadLocalMallocStorage {
 void *asan_memalign(uptr alignment, uptr size, BufferedStackTrace *stack,
                     AllocType alloc_type);
 void asan_free(void *ptr, BufferedStackTrace *stack, AllocType alloc_type);
-void asan_sized_free(void *ptr, uptr size, BufferedStackTrace *stack,
-                     AllocType alloc_type);
+void asan_delete(void *ptr, uptr size, uptr alignment,
+                 BufferedStackTrace *stack, AllocType alloc_type);
 
 void *asan_malloc(uptr size, BufferedStackTrace *stack);
 void *asan_calloc(uptr nmemb, uptr size, BufferedStackTrace *stack);

Modified: stable/11/contrib/compiler-rt/lib/asan/asan_descriptions.cc
==============================================================================
--- stable/11/contrib/compiler-rt/lib/asan/asan_descriptions.cc	Sat Mar 31 05:17:28 2018	(r331837)
+++ stable/11/contrib/compiler-rt/lib/asan/asan_descriptions.cc	Sat Mar 31 11:38:16 2018	(r331838)
@@ -122,6 +122,7 @@ static void GetAccessToHeapChunkInformation(ChunkAcces
   }
   descr->chunk_begin = chunk.Beg();
   descr->chunk_size = chunk.UsedSize();
+  descr->user_requested_alignment = chunk.UserRequestedAlignment();
   descr->alloc_type = chunk.GetAllocType();
 }
 
@@ -150,7 +151,7 @@ static void PrintHeapChunkAccess(uptr addr, const Chun
   str.append(" %zu-byte region [%p,%p)\n", descr.chunk_size,
              (void *)descr.chunk_begin,
              (void *)(descr.chunk_begin + descr.chunk_size));
-  str.append("%s", d.EndLocation());
+  str.append("%s", d.Default());
   Printf("%s", str.data());
 }
 
@@ -260,7 +261,7 @@ static void PrintAccessAndVarIntersection(const StackV
     // FIXME: we may want to also print the size of the access here,
     // but in case of accesses generated by memset it may be confusing.
     str.append("%s <== Memory access at offset %zd %s this variable%s\n",
-               d.Location(), addr, pos_descr, d.EndLocation());
+               d.Location(), addr, pos_descr, d.Default());
   } else {
     str.append("\n");
   }
@@ -295,7 +296,7 @@ static void DescribeAddressRelativeToGlobal(uptr addr,
              MaybeDemangleGlobalName(g.name));
   PrintGlobalLocation(&str, g);
   str.append("' (0x%zx) of size %zu\n", g.beg, g.size);
-  str.append("%s", d.EndLocation());
+  str.append("%s", d.Default());
   PrintGlobalNameIfASCII(&str, g);
   Printf("%s", str.data());
 }
@@ -335,6 +336,26 @@ void GlobalAddressDescription::Print(const char *bug_t
   }
 }
 
+bool GlobalAddressDescription::PointsInsideTheSameVariable(
+    const GlobalAddressDescription &other) const {
+  if (size == 0 || other.size == 0) return false;
+
+  for (uptr i = 0; i < size; i++) {
+    const __asan_global &a = globals[i];
+    for (uptr j = 0; j < other.size; j++) {
+      const __asan_global &b = other.globals[j];
+      if (a.beg == b.beg &&
+          a.beg <= addr &&
+          b.beg <= other.addr &&
+          (addr + access_size) < (a.beg + a.size) &&
+          (other.addr + other.access_size) < (b.beg + b.size))
+        return true;
+    }
+  }
+
+  return false;
+}
+
 void StackAddressDescription::Print() const {
   Decorator d;
   char tname[128];
@@ -343,10 +364,10 @@ void StackAddressDescription::Print() const {
          ThreadNameWithParenthesis(tid, tname, sizeof(tname)));
 
   if (!frame_descr) {

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@freebsd.org  Sat Mar 31 12:25:58 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 201BAF4FEF9;
 Sat, 31 Mar 2018 12:25:58 +0000 (UTC)
 (envelope-from antoine.brodin.freebsd@gmail.com)
Received: from mail-it0-x22e.google.com (mail-it0-x22e.google.com
 [IPv6:2607:f8b0:4001:c0b::22e])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 9EDC480FC6;
 Sat, 31 Mar 2018 12:25:57 +0000 (UTC)
 (envelope-from antoine.brodin.freebsd@gmail.com)
Received: by mail-it0-x22e.google.com with SMTP id 71-v6so11916649ith.2;
 Sat, 31 Mar 2018 05:25:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to:cc;
 bh=63+s+t2I/BjgmbQfsCGwK3d1UrD2vQV39zLp8Fc4q7o=;
 b=P+sgaSRa5TT3DPZEUu0m1roJz6yh7n8MeYZt558k2hYM4w9KOoibWja12+KJ0uJOSq
 EgNCbzqj7xfkvKWCx9I5FGOtoJWK0HqmXUnkfVi4tkdJW2lTljNgH8/jiJApEgRV0jG5
 ySDUF2dKGrsVlohCF3Pi/bHzjG67U93iTOCY2FkhqjmU9rfNDjNw++KCI4zSDjdy/AdA
 Wx6mpza190jRHVVfc+d2xvvSm28CTrQ38aqvip57ZTb+SDLYZOXsD04nol4WMq4cSNET
 pE+EwCfgUJ5OoRk93Nltyy/1Wp4mMv8Q9Ms4S16jRtX9A7Ya0LneTW4hdnWKjUur5iJV
 p02w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to:cc;
 bh=63+s+t2I/BjgmbQfsCGwK3d1UrD2vQV39zLp8Fc4q7o=;
 b=NmrxUYVzBP2w5ELvVlxUIr2GL1I6THv9EX3PY5ACY6iM3QEfrwqz5tv+7SzWcB9l3k
 W4FPySHPoPfq8/1MhyIs8+8p3txG7QBi91nsvtFn/yecXdkqDoaZzI4RBuq5vtd3yAsD
 YjVgwRVCv65hAcv0B94LAOk89JGgHyNRPkMO8DnDEFXfOfAs8xTFQ9gNujHvtNHHnRQt
 qOoYrwQXQnqsPtHlA5gpFPRKXNhF/FmLJp2wfwPYiQmHg14rVPe5YpRO7AlU3QEJHirm
 5dyvdKq/ESzrhnt7oxAQc0rK3TUi7zpZmFyxiu0qzLmbxFPni+Syr2vr/7xuGrPGguIG
 DBSQ==
X-Gm-Message-State: ALQs6tDCcowTTK8B/jN8rT/PqQjI+p2IXVJXaIDRgECkwQZYZAS3ckfD
 dlCq+FpQQokstBnevOKCwg/KW1WXNyoBbLxLkek=
X-Google-Smtp-Source: AIpwx4+Gri7L4pJhnvlkfAqhSLrEMx/ldifE2Fx4A3B/adJxY8T80Qhu1JdSD2Ecy603Db+Za2EQn2mb1alXbK7FOjg=
X-Received: by 2002:a24:f5c1:: with SMTP id
 k184-v6mr6142007ith.62.1522499156687; 
 Sat, 31 Mar 2018 05:25:56 -0700 (PDT)
MIME-Version: 1.0
Sender: antoine.brodin.freebsd@gmail.com
Received: by 10.107.184.135 with HTTP; Sat, 31 Mar 2018 05:25:56 -0700 (PDT)
In-Reply-To: <201803311138.w2VBcKHP014025@repo.freebsd.org>
References: <201803311138.w2VBcKHP014025@repo.freebsd.org>
From: Antoine Brodin 
Date: Sat, 31 Mar 2018 12:25:56 +0000
X-Google-Sender-Auth: UP4a2tiaoj_5YTSF2GD1t9oprRc
Message-ID: 
Subject: Re: svn commit: r331838 - in stable/11: .
 contrib/compiler-rt/include/sanitizer
 contrib/compiler-rt/include/xray contrib/compiler-rt/lib/BlocksRuntime
 contrib/compiler-rt/lib/asan contrib/compiler-rt/l...
To: Dimitry Andric , re 
Cc: src-committers , svn-src-all@freebsd.org, 
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 12:25:58 -0000

On Sat, Mar 31, 2018 at 11:38 AM, Dimitry Andric  wrote:
> Author: dim
> Date: Sat Mar 31 11:38:16 2018
> New Revision: 331838
> URL: https://svnweb.freebsd.org/changeset/base/331838
>
> Log:
>   Merge clang, llvm, lld, lldb, compiler-rt and libc++ 6.0.0 release, and
>   several follow-up fixes.
...
Index: CompilerInvocation.cpp
===================================================================
--- CompilerInvocation.cpp      (revision 331837)
+++ CompilerInvocation.cpp      (revision 331838)
...
@@ -1690,11 +1765,7 @@
       break;
     case InputKind::CXX:
     case InputKind::ObjCXX:
-      // The PS4 uses C++11 as the default C++ standard.
-      if (T.isPS4())
-        LangStd = LangStandard::lang_gnucxx11;
-      else
-        LangStd = LangStandard::lang_gnucxx98;
+      LangStd = LangStandard::lang_gnucxx14;
       break;
     case InputKind::RenderScript:
       LangStd = LangStandard::lang_c99;
...

Hi,

Is it safe to change the default c++ standard from gnu++98 to gnu++14
in a stable branch?
Around 380 ports are still broken by the gnu++98 -> gnu++14 switch.

Cheers,

Antoine

From owner-svn-src-all@freebsd.org  Sat Mar 31 12:42:10 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 37C20F524B8;
 Sat, 31 Mar 2018 12:42:10 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from tensor.andric.com (tensor.andric.com [87.251.56.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "tensor.andric.com",
 Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id C5A8581A56;
 Sat, 31 Mar 2018 12:42:09 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from coleburn.home.andric.com (coleburn.home.andric.com
 [192.168.0.15])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by tensor.andric.com (Postfix) with ESMTPSA id CE035369FB;
 Sat, 31 Mar 2018 14:42:01 +0200 (CEST)
From: Dimitry Andric 
Message-Id: <68DEEF9A-6290-40AD-B51D-E187593C089F@FreeBSD.org>
Content-Type: multipart/signed;
 boundary="Apple-Mail=_F7837E48-7DD6-4409-834B-4C6989E311A9";
 protocol="application/pgp-signature"; micalg=pgp-sha1
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: svn commit: r331838 - in stable/11: .
 contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray
 contrib/compiler-rt/lib/BlocksRuntime contrib/compiler-rt/lib/asan
 contrib/compiler-rt/l...
Date: Sat, 31 Mar 2018 14:42:01 +0200
In-Reply-To: 
Cc: re , src-committers ,
 svn-src-all@freebsd.org, svn-src-stable@freebsd.org,
 svn-src-stable-11@freebsd.org
To: Antoine Brodin 
References: <201803311138.w2VBcKHP014025@repo.freebsd.org>
 
X-Mailer: Apple Mail (2.3273)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 12:42:10 -0000


--Apple-Mail=_F7837E48-7DD6-4409-834B-4C6989E311A9
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii

On 31 Mar 2018, at 14:25, Antoine Brodin  wrote:
> 
> On Sat, Mar 31, 2018 at 11:38 AM, Dimitry Andric  wrote:
>> Author: dim
>> Date: Sat Mar 31 11:38:16 2018
>> New Revision: 331838
>> URL: https://svnweb.freebsd.org/changeset/base/331838
>> 
>> Log:
>>  Merge clang, llvm, lld, lldb, compiler-rt and libc++ 6.0.0 release, and
>>  several follow-up fixes.
> ...
> Index: CompilerInvocation.cpp
> ===================================================================
> --- CompilerInvocation.cpp      (revision 331837)
> +++ CompilerInvocation.cpp      (revision 331838)
> ...
> @@ -1690,11 +1765,7 @@
>       break;
>     case InputKind::CXX:
>     case InputKind::ObjCXX:
> -      // The PS4 uses C++11 as the default C++ standard.
> -      if (T.isPS4())
> -        LangStd = LangStandard::lang_gnucxx11;
> -      else
> -        LangStd = LangStandard::lang_gnucxx98;
> +      LangStd = LangStandard::lang_gnucxx14;
>       break;
>     case InputKind::RenderScript:
>       LangStd = LangStandard::lang_c99;
> ...
> 
> Hi,
> 
> Is it safe to change the default c++ standard from gnu++98 to gnu++14
> in a stable branch?
> Around 380 ports are still broken by the gnu++98 -> gnu++14 switch.

It's an upstream choice, which also corresponds to what gcc 6 and higher
have been doing for a longer time.  It's been almost 3 months now since
clang 6 landed in head, and if those ports require USE_CXXSTD=gnu++98 to
be fixed, why haven't those already been changed already?

That said, I'll be happy to go over the list and push in patches, if it
is simply to due to lack of maintainer time.

-Dimitry


--Apple-Mail=_F7837E48-7DD6-4409-834B-4C6989E311A9
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.2

iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCWr+CGQAKCRCwXqMKLiCW
oykeAJ9rHbKOL9MItTy/sb6xEqclUAaOzgCgkQJpK15rg2ymy87gvhZNAmCEtmQ=
=ZVDS
-----END PGP SIGNATURE-----

--Apple-Mail=_F7837E48-7DD6-4409-834B-4C6989E311A9--

From owner-svn-src-all@freebsd.org  Sat Mar 31 12:43:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F014F5264B;
 Sat, 31 Mar 2018 12:43:08 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 00E5681BF0;
 Sat, 31 Mar 2018 12:43:08 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EFED717FCB;
 Sat, 31 Mar 2018 12:43:07 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VCh7uo051425;
 Sat, 31 Mar 2018 12:43:07 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VCh7gS051422;
 Sat, 31 Mar 2018 12:43:07 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803311243.w2VCh7gS051422@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Sat, 31 Mar 2018 12:43:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331839 - stable/11/sys/amd64/ia32
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: stable/11/sys/amd64/ia32
X-SVN-Commit-Revision: 331839
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 12:43:08 -0000

Author: kib
Date: Sat Mar 31 12:43:07 2018
New Revision: 331839
URL: https://svnweb.freebsd.org/changeset/base/331839

Log:
  MFC r331486:
  Improve the lcall $7,$0 syscall emulation on amd64.

Modified:
  stable/11/sys/amd64/ia32/ia32_sigtramp.S
  stable/11/sys/amd64/ia32/ia32_syscall.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/amd64/ia32/ia32_sigtramp.S
==============================================================================
--- stable/11/sys/amd64/ia32/ia32_sigtramp.S	Sat Mar 31 11:38:16 2018	(r331838)
+++ stable/11/sys/amd64/ia32/ia32_sigtramp.S	Sat Mar 31 12:43:07 2018	(r331839)
@@ -78,44 +78,23 @@ ia32_osigcode:
 1:
 	jmp	1b
 
-
 /*
- * The lcall $7,$0 emulator cannot use the call gate that does an
- * inter-privilege transition. The reason is that the call gate
- * does not disable interrupts, and, before the swapgs is
- * executed, we would have a window where the ring 0 code is
- * executed with the wrong gsbase.
+ * Our lcall $7,$0 handler remains in user mode (ring 3), since lcalls
+ * don't change the interrupt mask, so if this one went directly to the
+ * kernel then there would be a window with interrupts enabled in kernel
+ * mode, and all interrupt handlers would have to be almost as complicated
+ * as the NMI handler to support this.
  *
- * Instead, set LDT descriptor 0 as code segment, which reflects
- * the lcall $7,$0 back to ring 3 trampoline.  The trampoline sets up
- * the frame for int $0x80.
+ * Instead, convert the lcall to an int0x80 call.  The kernel does most
+ * of the conversion by popping the lcall return values off the user
+ * stack and returning to them instead of to here, except when the
+ * conversion itself fails.  Adjusting the stack here is impossible for
+ * vfork() and harder for other syscalls.
  */
 	ALIGN_TEXT
 lcall_tramp:
-	cmpl	$SYS_vfork,%eax
-	je	1f
-	pushl	%ebp
-	movl	%esp,%ebp
-	pushl	0x24(%ebp) /* arg 6 */
-	pushl	0x20(%ebp)
-	pushl	0x1c(%ebp)
-	pushl	0x18(%ebp)
-	pushl	0x14(%ebp)
-	pushl	0x10(%ebp) /* arg 1 */
-	subl	$4,%esp   /* gap */
 	int	$0x80
-	leavel
-	lretl
-1:
-	/*
-	 * vfork handling is special and relies on the libc stub saving
-	 * the return ip in %ecx.  Also, we assume that the call was done
-	 * with ucode32 selector in %cs.
-	 */
-	int	$0x80
-	movl	$0x33,4(%esp)	/* GUCODE32_SEL | SEL_UPL */
-	movl	%ecx,(%esp)
-	lretl
+1:	jmp	1b
 #endif
 
 	ALIGN_TEXT

Modified: stable/11/sys/amd64/ia32/ia32_syscall.c
==============================================================================
--- stable/11/sys/amd64/ia32/ia32_syscall.c	Sat Mar 31 11:38:16 2018	(r331838)
+++ stable/11/sys/amd64/ia32/ia32_syscall.c	Sat Mar 31 12:43:07 2018	(r331839)
@@ -114,10 +114,38 @@ ia32_fetch_syscall_args(struct thread *td)
 	caddr_t params;
 	u_int32_t args[8], tmp;
 	int error, i;
+#ifdef COMPAT_43
+	u_int32_t eip;
+	int cs;
+#endif
 
 	p = td->td_proc;
 	frame = td->td_frame;
 	sa = &td->td_sa;
+
+#ifdef COMPAT_43
+	if (__predict_false(frame->tf_cs == 7 && frame->tf_rip == 2)) {
+		/*
+		 * In lcall $7,$0 after int $0x80.  Convert the user
+		 * frame to what it would be for a direct int 0x80 instead
+		 * of lcall $7,$0, by popping the lcall return address.
+		 */
+		error = fueword32((void *)frame->tf_rsp, &eip);
+		if (error == -1)
+			return (EFAULT);
+		cs = fuword16((void *)(frame->tf_rsp + sizeof(u_int32_t)));
+		if (cs == -1)
+			return (EFAULT);
+
+		/*
+		 * Unwind in-kernel frame after all stack frame pieces
+		 * were successfully read.
+		 */
+		frame->tf_rip = eip;
+		frame->tf_cs = cs;
+		frame->tf_rsp += 2 * sizeof(u_int32_t);
+	}
+#endif
 
 	params = (caddr_t)frame->tf_rsp + sizeof(u_int32_t);
 	sa->code = frame->tf_rax;

From owner-svn-src-all@freebsd.org  Sat Mar 31 12:44:12 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 844C2F527FB;
 Sat, 31 Mar 2018 12:44:12 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3A61A81D7C;
 Sat, 31 Mar 2018 12:44:12 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1B02817FCC;
 Sat, 31 Mar 2018 12:44:12 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VCiBp7051563;
 Sat, 31 Mar 2018 12:44:11 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VCiBW6051562;
 Sat, 31 Mar 2018 12:44:11 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803311244.w2VCiBW6051562@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Sat, 31 Mar 2018 12:44:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331840 - stable/11/sys/kern
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: stable/11/sys/kern
X-SVN-Commit-Revision: 331840
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 12:44:12 -0000

Author: kib
Date: Sat Mar 31 12:44:11 2018
New Revision: 331840
URL: https://svnweb.freebsd.org/changeset/base/331840

Log:
  MFC r331487:
  In vn_io_fault1(), reduce the scope where pagefaults are disabled.

Modified:
  stable/11/sys/kern/vfs_vnops.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/vfs_vnops.c
==============================================================================
--- stable/11/sys/kern/vfs_vnops.c	Sat Mar 31 12:43:07 2018	(r331839)
+++ stable/11/sys/kern/vfs_vnops.c	Sat Mar 31 12:44:11 2018	(r331840)
@@ -954,23 +954,30 @@ static int
 vn_io_fault_doio(struct vn_io_fault_args *args, struct uio *uio,
     struct thread *td)
 {
+	int error, save;
 
+	error = 0;
+	save = vm_fault_disable_pagefaults();
 	switch (args->kind) {
 	case VN_IO_FAULT_FOP:
-		return ((args->args.fop_args.doio)(args->args.fop_args.fp,
-		    uio, args->cred, args->flags, td));
+		error = (args->args.fop_args.doio)(args->args.fop_args.fp,
+		    uio, args->cred, args->flags, td);
+		break;
 	case VN_IO_FAULT_VOP:
 		if (uio->uio_rw == UIO_READ) {
-			return (VOP_READ(args->args.vop_args.vp, uio,
-			    args->flags, args->cred));
+			error = VOP_READ(args->args.vop_args.vp, uio,
+			    args->flags, args->cred);
 		} else if (uio->uio_rw == UIO_WRITE) {
-			return (VOP_WRITE(args->args.vop_args.vp, uio,
-			    args->flags, args->cred));
+			error = VOP_WRITE(args->args.vop_args.vp, uio,
+			    args->flags, args->cred);
 		}
 		break;
+	default:
+		panic("vn_io_fault_doio: unknown kind of io %d %d",
+		    args->kind, uio->uio_rw);
 	}
-	panic("vn_io_fault_doio: unknown kind of io %d %d", args->kind,
-	    uio->uio_rw);
+	vm_fault_enable_pagefaults(save);
+	return (error);
 }
 
 static int
@@ -1045,7 +1052,7 @@ vn_io_fault1(struct vnode *vp, struct uio *uio, struct
 	vm_offset_t addr, end;
 	size_t len, resid;
 	ssize_t adv;
-	int error, cnt, save, saveheld, prev_td_ma_cnt;
+	int error, cnt, saveheld, prev_td_ma_cnt;
 
 	if (vn_io_fault_prefault) {
 		error = vn_io_fault_prefault_user(uio);
@@ -1071,7 +1078,6 @@ vn_io_fault1(struct vnode *vp, struct uio *uio, struct
 	short_uio.uio_rw = uio->uio_rw;
 	short_uio.uio_td = uio->uio_td;
 
-	save = vm_fault_disable_pagefaults();
 	error = vn_io_fault_doio(args, uio, td);
 	if (error != EFAULT)
 		goto out;
@@ -1142,7 +1148,6 @@ vn_io_fault1(struct vnode *vp, struct uio *uio, struct
 	td->td_ma_cnt = prev_td_ma_cnt;
 	curthread_pflags_restore(saveheld);
 out:
-	vm_fault_enable_pagefaults(save);
 	free(uio_clone, M_IOV);
 	return (error);
 }

From owner-svn-src-all@freebsd.org  Sat Mar 31 12:45:40 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AD7E0F52AFC;
 Sat, 31 Mar 2018 12:45:40 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6349F81F78;
 Sat, 31 Mar 2018 12:45:40 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5E22717FD0;
 Sat, 31 Mar 2018 12:45:40 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VCjeBI051700;
 Sat, 31 Mar 2018 12:45:40 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VCjeLp051699;
 Sat, 31 Mar 2018 12:45:40 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803311245.w2VCjeLp051699@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Sat, 31 Mar 2018 12:45:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331841 - stable/11/sys/vm
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: stable/11/sys/vm
X-SVN-Commit-Revision: 331841
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 12:45:40 -0000

Author: kib
Date: Sat Mar 31 12:45:39 2018
New Revision: 331841
URL: https://svnweb.freebsd.org/changeset/base/331841

Log:
  MFC r331489:
  For vm_zone_stats() sysctl handler, do not drain sbuf calling copyout(9)
  while owning zone lock.

Modified:
  stable/11/sys/vm/uma_core.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/vm/uma_core.c
==============================================================================
--- stable/11/sys/vm/uma_core.c	Sat Mar 31 12:44:11 2018	(r331840)
+++ stable/11/sys/vm/uma_core.c	Sat Mar 31 12:45:39 2018	(r331841)
@@ -3414,7 +3414,7 @@ sysctl_vm_zone_stats(SYSCTL_HANDLER_ARGS)
 {
 	struct uma_stream_header ush;
 	struct uma_type_header uth;
-	struct uma_percpu_stat ups;
+	struct uma_percpu_stat *ups;
 	uma_bucket_t bucket;
 	struct sbuf sbuf;
 	uma_cache_t cache;
@@ -3429,6 +3429,7 @@ sysctl_vm_zone_stats(SYSCTL_HANDLER_ARGS)
 		return (error);
 	sbuf_new_for_sysctl(&sbuf, NULL, 128, req);
 	sbuf_clear_flags(&sbuf, SBUF_INCLUDENUL);
+	ups = malloc((mp_maxid + 1) * sizeof(*ups), M_TEMP, M_WAITOK);
 
 	count = 0;
 	rw_rlock(&uma_rwlock);
@@ -3477,7 +3478,6 @@ sysctl_vm_zone_stats(SYSCTL_HANDLER_ARGS)
 			uth.uth_frees = z->uz_frees;
 			uth.uth_fails = z->uz_fails;
 			uth.uth_sleeps = z->uz_sleeps;
-			(void)sbuf_bcat(&sbuf, &uth, sizeof(uth));
 			/*
 			 * While it is not normally safe to access the cache
 			 * bucket pointers while not on the CPU that owns the
@@ -3486,30 +3486,31 @@ sysctl_vm_zone_stats(SYSCTL_HANDLER_ARGS)
 			 * accept the possible race associated with bucket
 			 * exchange during monitoring.
 			 */
-			for (i = 0; i < (mp_maxid + 1); i++) {
-				bzero(&ups, sizeof(ups));
-				if (kz->uk_flags & UMA_ZFLAG_INTERNAL)
-					goto skip;
-				if (CPU_ABSENT(i))
-					goto skip;
+			for (i = 0; i < mp_maxid + 1; i++) {
+				bzero(&ups[i], sizeof(*ups));
+				if (kz->uk_flags & UMA_ZFLAG_INTERNAL ||
+				    CPU_ABSENT(i))
+					continue;
 				cache = &z->uz_cpu[i];
 				if (cache->uc_allocbucket != NULL)
-					ups.ups_cache_free +=
+					ups[i].ups_cache_free +=
 					    cache->uc_allocbucket->ub_cnt;
 				if (cache->uc_freebucket != NULL)
-					ups.ups_cache_free +=
+					ups[i].ups_cache_free +=
 					    cache->uc_freebucket->ub_cnt;
-				ups.ups_allocs = cache->uc_allocs;
-				ups.ups_frees = cache->uc_frees;
-skip:
-				(void)sbuf_bcat(&sbuf, &ups, sizeof(ups));
+				ups[i].ups_allocs = cache->uc_allocs;
+				ups[i].ups_frees = cache->uc_frees;
 			}
 			ZONE_UNLOCK(z);
+			(void)sbuf_bcat(&sbuf, &uth, sizeof(uth));
+			for (i = 0; i < mp_maxid + 1; i++)
+				(void)sbuf_bcat(&sbuf, &ups[i], sizeof(ups[i]));
 		}
 	}
 	rw_runlock(&uma_rwlock);
 	error = sbuf_finish(&sbuf);
 	sbuf_delete(&sbuf);
+	free(ups, M_TEMP);
 	return (error);
 }
 

From owner-svn-src-all@freebsd.org  Sat Mar 31 13:18:24 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 41ED1F553B4;
 Sat, 31 Mar 2018 13:18:24 +0000 (UTC)
 (envelope-from linimon@lonesome.com)
Received: from mail.soaustin.net (mail.soaustin.net [192.108.105.60])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mail.soaustin.net",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id C7F808317C;
 Sat, 31 Mar 2018 13:18:23 +0000 (UTC)
 (envelope-from linimon@lonesome.com)
Received: from lonesome.com (bones.soaustin.net [192.108.105.22])
 by mail.soaustin.net (Postfix) with ESMTPSA id 77E05EEA;
 Sat, 31 Mar 2018 08:18:20 -0500 (CDT)
Date: Sat, 31 Mar 2018 08:18:19 -0500
From: Mark Linimon 
To: Dimitry Andric 
Cc: Antoine Brodin , svn-src-stable@freebsd.org,
 svn-src-all@freebsd.org,
 src-committers , re ,
 svn-src-stable-11@freebsd.org
Subject: Re: svn commit: r331838 - in stable/11: .
 contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray
 contrib/compiler-rt/lib/BlocksRuntime contrib/compiler-rt/lib/asan
 contrib/compiler-rt/l...
Message-ID: <20180331131818.GA22697@lonesome.com>
References: <201803311138.w2VBcKHP014025@repo.freebsd.org>
 
 <68DEEF9A-6290-40AD-B51D-E187593C089F@FreeBSD.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <68DEEF9A-6290-40AD-B51D-E187593C089F@FreeBSD.org>
User-Agent: Mutt/1.5.23 (2014-03-12)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 13:18:24 -0000

On Sat, Mar 31, 2018 at 02:42:01PM +0200, Dimitry Andric wrote:
> It's been almost 3 months now since clang 6 landed in head, and if
> those ports require USE_CXXSTD=gnu++98 to be fixed, why haven't those
> already been changed already?

Because it takes a lot of time and effort to do it?

This basically torpedoes the work I've been trying to do to catch tier-2
up to tier-1, on 11.  I had been trying to to identify all the problems
that existed beforehand, before starting in on the clang6 ones.  (Many
people have also been contributing to fixing clang6/amd64/current errors,
and I wanted to let the work settle, and not duplicate.)

Finally, if this had gone in just two days later, it would not have
affected the Q2 package builds.  I could have lived with that a lot more
easily.

I am very disappointed in the timing of this change.

mcl

From owner-svn-src-all@freebsd.org  Sat Mar 31 13:19:28 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 721DAF555B3;
 Sat, 31 Mar 2018 13:19:28 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 20B9B833EC;
 Sat, 31 Mar 2018 13:19:28 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1B922184C2;
 Sat, 31 Mar 2018 13:19:28 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VDJRH3067754;
 Sat, 31 Mar 2018 13:19:27 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VDJRGl067747;
 Sat, 31 Mar 2018 13:19:27 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201803311319.w2VDJRGl067747@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov 
Date: Sat, 31 Mar 2018 13:19:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331842 - in stable/11/sys: kern sys vm
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: in stable/11/sys: kern sys vm
X-SVN-Commit-Revision: 331842
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 13:19:28 -0000

Author: kib
Date: Sat Mar 31 13:19:27 2018
New Revision: 331842
URL: https://svnweb.freebsd.org/changeset/base/331842

Log:
  MFC r331490:
  Account the size of the vslock-ed memory by the thread.

Modified:
  stable/11/sys/kern/kern_fork.c
  stable/11/sys/kern/kern_kthread.c
  stable/11/sys/kern/kern_thr.c
  stable/11/sys/kern/subr_trap.c
  stable/11/sys/sys/proc.h
  stable/11/sys/vm/vm_glue.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/kern_fork.c
==============================================================================
--- stable/11/sys/kern/kern_fork.c	Sat Mar 31 12:45:39 2018	(r331841)
+++ stable/11/sys/kern/kern_fork.c	Sat Mar 31 13:19:27 2018	(r331842)
@@ -483,6 +483,7 @@ do_fork(struct thread *td, struct fork_req *fr, struct
 	bzero(&td2->td_startzero,
 	    __rangeof(struct thread, td_startzero, td_endzero));
 	td2->td_sleeptimo = 0;
+	td2->td_vslock_sz = 0;
 	bzero(&td2->td_si, sizeof(td2->td_si));
 
 	bcopy(&td->td_startcopy, &td2->td_startcopy,

Modified: stable/11/sys/kern/kern_kthread.c
==============================================================================
--- stable/11/sys/kern/kern_kthread.c	Sat Mar 31 12:45:39 2018	(r331841)
+++ stable/11/sys/kern/kern_kthread.c	Sat Mar 31 13:19:27 2018	(r331842)
@@ -274,6 +274,7 @@ kthread_add(void (*func)(void *), void *arg, struct pr
 	bzero(&newtd->td_startzero,
 	    __rangeof(struct thread, td_startzero, td_endzero));
 	newtd->td_sleeptimo = 0;
+	newtd->td_vslock_sz = 0;
 	bzero(&newtd->td_si, sizeof(newtd->td_si));
 	bcopy(&oldtd->td_startcopy, &newtd->td_startcopy,
 	    __rangeof(struct thread, td_startcopy, td_endcopy));

Modified: stable/11/sys/kern/kern_thr.c
==============================================================================
--- stable/11/sys/kern/kern_thr.c	Sat Mar 31 12:45:39 2018	(r331841)
+++ stable/11/sys/kern/kern_thr.c	Sat Mar 31 13:19:27 2018	(r331842)
@@ -233,6 +233,7 @@ thread_create(struct thread *td, struct rtprio *rtp,
 	bzero(&newtd->td_startzero,
 	    __rangeof(struct thread, td_startzero, td_endzero));
 	newtd->td_sleeptimo = 0;
+	newtd->td_vslock_sz = 0;
 	bzero(&newtd->td_si, sizeof(newtd->td_si));
 	bcopy(&td->td_startcopy, &newtd->td_startcopy,
 	    __rangeof(struct thread, td_startcopy, td_endcopy));

Modified: stable/11/sys/kern/subr_trap.c
==============================================================================
--- stable/11/sys/kern/subr_trap.c	Sat Mar 31 12:45:39 2018	(r331841)
+++ stable/11/sys/kern/subr_trap.c	Sat Mar 31 13:19:27 2018	(r331842)
@@ -176,6 +176,8 @@ userret(struct thread *td, struct trapframe *frame)
 	    ("userret: Returning with stop signals deferred"));
 	KASSERT(td->td_su == NULL,
 	    ("userret: Returning with SU cleanup request not handled"));
+	KASSERT(td->td_vslock_sz == 0,
+	    ("userret: Returning with vslock-wired space"));
 #ifdef VIMAGE
 	/* Unfortunately td_vnet_lpush needs VNET_DEBUG. */
 	VNET_ASSERT(curvnet == NULL,

Modified: stable/11/sys/sys/proc.h
==============================================================================
--- stable/11/sys/sys/proc.h	Sat Mar 31 12:45:39 2018	(r331841)
+++ stable/11/sys/sys/proc.h	Sat Mar 31 13:19:27 2018	(r331842)
@@ -350,6 +350,7 @@ struct thread {
 					   fork for child tracing. */
 	siginfo_t	td_si;		/* (c) For debugger or core file */
 	void		*td_lkpi_task;	/* LinuxKPI task struct pointer */
+	size_t		td_vslock_sz;	/* (k) amount of vslock-ed space */
 };
 
 struct thread0_storage {

Modified: stable/11/sys/vm/vm_glue.c
==============================================================================
--- stable/11/sys/vm/vm_glue.c	Sat Mar 31 12:45:39 2018	(r331841)
+++ stable/11/sys/vm/vm_glue.c	Sat Mar 31 13:19:27 2018	(r331842)
@@ -198,11 +198,16 @@ vslock(void *addr, size_t len)
 #endif
 	error = vm_map_wire(&curproc->p_vmspace->vm_map, start, end,
 	    VM_MAP_WIRE_SYSTEM | VM_MAP_WIRE_NOHOLES);
+	if (error == KERN_SUCCESS) {
+		curthread->td_vslock_sz += len;
+		return (0);
+	}
+
 	/*
 	 * Return EFAULT on error to match copy{in,out}() behaviour
 	 * rather than returning ENOMEM like mlock() would.
 	 */
-	return (error == KERN_SUCCESS ? 0 : EFAULT);
+	return (EFAULT);
 }
 
 void
@@ -210,6 +215,8 @@ vsunlock(void *addr, size_t len)
 {
 
 	/* Rely on the parameter sanity checks performed by vslock(). */
+	MPASS(curthread->td_vslock_sz >= len);
+	curthread->td_vslock_sz -= len;
 	(void)vm_map_unwire(&curproc->p_vmspace->vm_map,
 	    trunc_page((vm_offset_t)addr), round_page((vm_offset_t)addr + len),
 	    VM_MAP_WIRE_SYSTEM | VM_MAP_WIRE_NOHOLES);

From owner-svn-src-all@freebsd.org  Sat Mar 31 13:53:52 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 64275F5C6AF;
 Sat, 31 Mar 2018 13:53:52 +0000 (UTC)
 (envelope-from linimon@lonesome.com)
Received: from mail.soaustin.net (mail.soaustin.net [192.108.105.60])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mail.soaustin.net",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 0496684BD7;
 Sat, 31 Mar 2018 13:53:51 +0000 (UTC)
 (envelope-from linimon@lonesome.com)
Received: from lonesome.com (bones.soaustin.net [192.108.105.22])
 by mail.soaustin.net (Postfix) with ESMTPSA id 8CF59EEA;
 Sat, 31 Mar 2018 08:53:50 -0500 (CDT)
Date: Sat, 31 Mar 2018 08:53:49 -0500
From: Mark Linimon 
To: Dimitry Andric 
Cc: Antoine Brodin ,
 src-committers , re ,
 svn-src-stable@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable-11@freebsd.org
Subject: Re: svn commit: r331838 - in stable/11: .
 contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray
 contrib/compiler-rt/lib/BlocksRuntime contrib/compiler-rt/lib/asan
 contrib/compiler-rt/l...
Message-ID: <20180331135349.GA22961@lonesome.com>
References: <201803311138.w2VBcKHP014025@repo.freebsd.org>
 
 <68DEEF9A-6290-40AD-B51D-E187593C089F@FreeBSD.org>
 <20180331131818.GA22697@lonesome.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20180331131818.GA22697@lonesome.com>
User-Agent: Mutt/1.5.23 (2014-03-12)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 13:53:52 -0000

fwiw the effect of the introduction of clang6 to armv6 on head on the
cluster, before/after:

     103 failures_armv6_p457578_s327371.txt
     514 failures_armv6_p460069_s328457.txt

I expect stable/11 to follow these statistics.

mcl

From owner-svn-src-all@freebsd.org  Sat Mar 31 14:14:32 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C8D15F63EB4;
 Sat, 31 Mar 2018 14:14:32 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 4AF628584D;
 Sat, 31 Mar 2018 14:14:31 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w2VEEP0r073632;
 Sat, 31 Mar 2018 07:14:25 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w2VEEPOi073631;
 Sat, 31 Mar 2018 07:14:25 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" 
Message-Id: <201803311414.w2VEEPOi073631@pdx.rh.CN85.dnsmgr.net>
Subject: Re: svn commit: r331838 - in stable/11: .
 contrib/compiler-rt/include/sanitizer
 contrib/compiler-rt/include/xray contrib/compiler-rt/lib/BlocksRuntime
 contrib/compiler-rt/lib/asan contrib/compiler-rt/l...
In-Reply-To: <20180331131818.GA22697@lonesome.com>
To: Mark Linimon 
Date: Sat, 31 Mar 2018 07:14:25 -0700 (PDT)
CC: Dimitry Andric , Antoine Brodin ,
 svn-src-stable@FreeBSD.org, svn-src-all@FreeBSD.org,
 src-committers , re ,
 svn-src-stable-11@FreeBSD.org
Reply-To: rgrimes@FreeBSD.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 14:14:33 -0000

> On Sat, Mar 31, 2018 at 02:42:01PM +0200, Dimitry Andric wrote:
> > It's been almost 3 months now since clang 6 landed in head, and if
> > those ports require USE_CXXSTD=gnu++98 to be fixed, why haven't those
> > already been changed already?
> 
> Because it takes a lot of time and effort to do it?
> 
> This basically torpedoes the work I've been trying to do to catch tier-2
> up to tier-1, on 11.  I had been trying to to identify all the problems
> that existed beforehand, before starting in on the clang6 ones.  (Many
> people have also been contributing to fixing clang6/amd64/current errors,
> and I wanted to let the work settle, and not duplicate.)
> 
> Finally, if this had gone in just two days later, it would not have
> affected the Q2 package builds.  I could have lived with that a lot more
> easily.
> 
> I am very disappointed in the timing of this change.

Another example of the projects failure to communicate.
This bad timing could of been avoided if a pre commit
email could of been sent out saying that this was about
to be commited.

We need to let each other know -pre- commit if we are
going to do something with wide impact.

I would consider updating any toolchain item in a stable/
branch to be a wide impact.

Further I would support a request to have this 
backed out and reapplied at a later date.

Regards,
-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-all@freebsd.org  Sat Mar 31 15:04:43 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id EEBBDF67E1D;
 Sat, 31 Mar 2018 15:04:42 +0000 (UTC)
 (envelope-from benno@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 97952873D0;
 Sat, 31 Mar 2018 15:04:42 +0000 (UTC)
 (envelope-from benno@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 925FC1968D;
 Sat, 31 Mar 2018 15:04:42 +0000 (UTC)
 (envelope-from benno@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VF4gTN024788;
 Sat, 31 Mar 2018 15:04:42 GMT (envelope-from benno@FreeBSD.org)
Received: (from benno@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VF4gxR024784;
 Sat, 31 Mar 2018 15:04:42 GMT (envelope-from benno@FreeBSD.org)
Message-Id: <201803311504.w2VF4gxR024784@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: benno set sender to
 benno@FreeBSD.org using -f
From: Benno Rice 
Date: Sat, 31 Mar 2018 15:04:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331843 - in head/usr.sbin/makefs: . cd9660
X-SVN-Group: head
X-SVN-Commit-Author: benno
X-SVN-Commit-Paths: in head/usr.sbin/makefs: . cd9660
X-SVN-Commit-Revision: 331843
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 15:04:43 -0000

Author: benno
Date: Sat Mar 31 15:04:41 2018
New Revision: 331843
URL: https://svnweb.freebsd.org/changeset/base/331843

Log:
  Synchronise with NetBSD's version of EFI handling for El Torito images.
  
  When I implemented my EFI support I failed to check if the upstream version
  of makefs in NetBSD had done the same. Override my version with theirs to
  make it easier to stay in sync with them in the future.
  
  Reviewed by:	imp, mav
  Obtained from:	NetBSD
  MFC after:	1 week
  Sponsored by:	iXsystems, Inc.
  Differential Revision:	https://reviews.freebsd.org/D14913

Modified:
  head/usr.sbin/makefs/cd9660.c
  head/usr.sbin/makefs/cd9660/cd9660_eltorito.c
  head/usr.sbin/makefs/cd9660/cd9660_eltorito.h
  head/usr.sbin/makefs/makefs.8

Modified: head/usr.sbin/makefs/cd9660.c
==============================================================================
--- head/usr.sbin/makefs/cd9660.c	Sat Mar 31 13:19:27 2018	(r331842)
+++ head/usr.sbin/makefs/cd9660.c	Sat Mar 31 15:04:41 2018	(r331843)
@@ -309,6 +309,7 @@ cd9660_prep_opts(fsinfo_t *fsopts)
 		OPT_STR('\0', "no-boot", "No boot support"),
 		OPT_STR('\0', "hard-disk-boot", "Boot from hard disk"),
 		OPT_STR('\0', "boot-load-segment", "Boot load segment"),
+		OPT_STR('\0', "platformid", "Section Header Platform ID"),
 
 		{ .name = NULL }
 	};
@@ -444,7 +445,8 @@ cd9660_parse_opts(const char *option, fsinfo_t *fsopts
 			/* RRIP */
 			cd9660_eltorito_add_boot_option(diskStructure, name, 0);
 			rv = 1;
-		} else if (strcmp(name, "boot-load-segment") == 0) {
+		} else if (strcmp(name, "boot-load-segment") == 0 ||
+		    strcmp(name, "platformid") == 0) {
 			if (buf[0] == '\0') {
 				warnx("Option `%s' doesn't contain a value",
 				    name);

Modified: head/usr.sbin/makefs/cd9660/cd9660_eltorito.c
==============================================================================
--- head/usr.sbin/makefs/cd9660/cd9660_eltorito.c	Sat Mar 31 13:19:27 2018	(r331842)
+++ head/usr.sbin/makefs/cd9660/cd9660_eltorito.c	Sat Mar 31 15:04:41 2018	(r331843)
@@ -1,4 +1,4 @@
-/*	$NetBSD: cd9660_eltorito.c,v 1.17 2011/06/23 02:35:56 enami Exp $	*/
+/*	$NetBSD: cd9660_eltorito.c,v 1.23 2018/03/28 06:48:55 nonaka Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-2-Clause-NetBSD
@@ -47,16 +47,19 @@ __FBSDID("$FreeBSD$");
 #define	ELTORITO_DPRINTF(__x)
 #endif
 
+#include 
+
 static struct boot_catalog_entry *cd9660_init_boot_catalog_entry(void);
 static struct boot_catalog_entry *cd9660_boot_setup_validation_entry(char);
 static struct boot_catalog_entry *cd9660_boot_setup_default_entry(
     struct cd9660_boot_image *);
 static struct boot_catalog_entry *cd9660_boot_setup_section_head(char);
-static struct boot_catalog_entry *cd9660_boot_setup_validation_entry(char);
 #if 0
 static u_char cd9660_boot_get_system_type(struct cd9660_boot_image *);
 #endif
 
+static struct cd9660_boot_image *default_boot_image;
+
 int
 cd9660_add_boot_disk(iso9660_disk *diskStructure, const char *boot_info)
 {
@@ -104,12 +107,9 @@ cd9660_add_boot_disk(iso9660_disk *diskStructure, cons
 	else if (strcmp(sysname, "macppc") == 0 ||
 	         strcmp(sysname, "mac68k") == 0)
 		new_image->system = ET_SYS_MAC;
-	else if (strcmp(sysname, "efi") == 0 ||
-		 strcmp(sysname, "uefi") == 0)
-		new_image->system = ET_SYS_UEFI;
 	else {
 		warnx("boot disk system must be "
-		      "efi, i386, powerpc, macppc, mac68k");
+		      "i386, powerpc, macppc, or mac68k");
 		free(temp);
 		free(new_image);
 		return 0;
@@ -174,9 +174,15 @@ cd9660_add_boot_disk(iso9660_disk *diskStructure, cons
 
 	new_image->serialno = diskStructure->image_serialno++;
 
+	new_image->platform_id = new_image->system;
+
 	/* TODO : Need to do anything about the boot image in the tree? */
 	diskStructure->is_bootable = 1;
 
+	/* First boot image is initial/default entry. */
+	if (default_boot_image == NULL)
+		default_boot_image = new_image;
+
 	return 1;
 }
 
@@ -210,6 +216,13 @@ cd9660_eltorito_add_boot_option(iso9660_disk *diskStru
 			warn("%s: strtoul", __func__);
 			return 0;
 		}
+	} else if (strcmp(option_string, "platformid") == 0) {
+		if (strcmp(value, "efi") == 0)
+			image->platform_id = ET_SYS_EFI;
+		else {
+			warn("%s: unknown platform: %s", __func__, value);
+			return 0;
+		}
 	} else {
 		return 0;
 	}
@@ -232,6 +245,7 @@ cd9660_boot_setup_validation_entry(char sys)
 	size_t i;
 	entry = cd9660_init_boot_catalog_entry();
 
+	entry->entry_type = ET_ENTRY_VE;
 	ve = &entry->entry_data.VE;
 
 	ve->header_id[0] = 1;
@@ -266,6 +280,7 @@ cd9660_boot_setup_default_entry(struct cd9660_boot_ima
 	if (default_entry == NULL)
 		return NULL;
 
+	default_entry->entry_type = ET_ENTRY_IE;
 	ie = &default_entry->entry_data.IE;
 
 	ie->boot_indicator[0] = disk->bootable;
@@ -293,6 +308,7 @@ cd9660_boot_setup_section_head(char platform)
 	if (entry == NULL)
 		return NULL;
 
+	entry->entry_type = ET_ENTRY_SH;
 	sh = &entry->entry_data.SH;
 	/*
 	 * More by default.
@@ -312,6 +328,7 @@ cd9660_boot_setup_section_entry(struct cd9660_boot_ima
 	if ((entry = cd9660_init_boot_catalog_entry()) == NULL)
 		return NULL;
 
+	entry->entry_type = ET_ENTRY_SE;
 	se = &entry->entry_data.SE;
 
 	se->boot_indicator[0] = ET_BOOTABLE;
@@ -344,12 +361,12 @@ cd9660_setup_boot(iso9660_disk *diskStructure, int fir
 	int used_sectors;
 	int num_entries = 0;
 	int catalog_sectors;
-	struct boot_catalog_entry *x86_head, *mac_head, *ppc_head, *uefi_head,
+	struct boot_catalog_entry *x86_head, *mac_head, *ppc_head, *efi_head,
 		*valid_entry, *default_entry, *temp, *head, **headp, *next;
 	struct cd9660_boot_image *tmp_disk;
 
 	headp = NULL;
-	x86_head = mac_head = ppc_head = uefi_head = NULL;
+	x86_head = mac_head = ppc_head = efi_head = NULL;
 
 	/* If there are no boot disks, don't bother building boot information */
 	if (TAILQ_EMPTY(&diskStructure->boot_images))
@@ -393,14 +410,25 @@ cd9660_setup_boot(iso9660_disk *diskStructure, int fir
 	sector = first_sector + catalog_sectors;
 	TAILQ_FOREACH(tmp_disk, &diskStructure->boot_images, image_list) {
 		tmp_disk->sector = sector;
-		sector += tmp_disk->num_sectors;
+		sector += tmp_disk->num_sectors /
+		    (diskStructure->sectorSize / 512);
 	}
 
 	LIST_INSERT_HEAD(&diskStructure->boot_entries, valid_entry, ll_struct);
 
 	/* Step 1b: Initial/default entry */
 	/* TODO : PARAM */
-	tmp_disk = TAILQ_FIRST(&diskStructure->boot_images);
+	if (default_boot_image != NULL) {
+		struct cd9660_boot_image *tcbi;
+		TAILQ_FOREACH(tcbi, &diskStructure->boot_images, image_list) {
+			if (tcbi == default_boot_image) {
+				tmp_disk = tcbi;
+				break;
+			}
+		}
+	}
+	if (tmp_disk == NULL)
+		tmp_disk = TAILQ_FIRST(&diskStructure->boot_images);
 	default_entry = cd9660_boot_setup_default_entry(tmp_disk);
 	if (default_entry == NULL) {
 		warnx("Error: memory allocation failed in cd9660_setup_boot");
@@ -411,14 +439,18 @@ cd9660_setup_boot(iso9660_disk *diskStructure, int fir
 
 	/* Todo: multiple default entries? */
 
-	tmp_disk = TAILQ_NEXT(tmp_disk, image_list);
+	tmp_disk = TAILQ_FIRST(&diskStructure->boot_images);
 
+	head = NULL;
 	temp = default_entry;
 
 	/* If multiple boot images are given : */
-	while (tmp_disk != NULL) {
+	for (; tmp_disk != NULL; tmp_disk = TAILQ_NEXT(tmp_disk, image_list)) {
+		if (tmp_disk == default_boot_image)
+			continue;
+
 		/* Step 2: Section header */
-		switch (tmp_disk->system) {
+		switch (tmp_disk->platform_id) {
 		case ET_SYS_X86:
 			headp = &x86_head;
 			break;
@@ -428,8 +460,8 @@ cd9660_setup_boot(iso9660_disk *diskStructure, int fir
 		case ET_SYS_MAC:
 			headp = &mac_head;
 			break;
-		case ET_SYS_UEFI:
-			headp = &uefi_head;
+		case ET_SYS_EFI:
+			headp = &efi_head;
 			break;
 		default:
 			warnx("%s: internal error: unknown system type",
@@ -439,7 +471,7 @@ cd9660_setup_boot(iso9660_disk *diskStructure, int fir
 
 		if (*headp == NULL) {
 			head =
-			    cd9660_boot_setup_section_head(tmp_disk->system);
+			  cd9660_boot_setup_section_head(tmp_disk->platform_id);
 			if (head == NULL) {
 				warnx("Error: memory allocation failed in "
 				      "cd9660_setup_boot");
@@ -464,7 +496,6 @@ cd9660_setup_boot(iso9660_disk *diskStructure, int fir
 			head = next;
 
 		LIST_INSERT_AFTER(head, temp, ll_struct);
-		tmp_disk = TAILQ_NEXT(tmp_disk, image_list);
 	}
 
 	/* Find the last Section Header entry and mark it as the last. */
@@ -474,8 +505,7 @@ cd9660_setup_boot(iso9660_disk *diskStructure, int fir
 			head = next;
 	}
 	if (head != NULL)
-		head->entry_data.SH.header_indicator[0] =
-		    ET_SECTION_HEADER_LAST;
+		head->entry_data.SH.header_indicator[0] = ET_SECTION_HEADER_LAST;
 
 	/* TODO: Remaining boot disks when implemented */
 
@@ -577,13 +607,13 @@ cd9660_write_apm_partition_entry(FILE *fd, int idx, in
 
 	apm32 = 0;
 	/* pmLgDataStart */
-        fwrite(&apm32, sizeof(apm32), 1, fd);
+	fwrite(&apm32, sizeof(apm32), 1, fd);
 	/* pmDataCnt */ 
 	apm32 = htobe32(nsectors);
-        fwrite(&apm32, sizeof(apm32), 1, fd);
+	fwrite(&apm32, sizeof(apm32), 1, fd);
 	/* pmPartStatus */
 	apm32 = htobe32(part_status);
-        fwrite(&apm32, sizeof(apm32), 1, fd);
+	fwrite(&apm32, sizeof(apm32), 1, fd);
 
 	return 0;
 }
@@ -700,8 +730,9 @@ cd9660_write_boot(iso9660_disk *diskStructure, FILE *f
 			    t->num_sectors * (diskStructure->sectorSize / 512),
 			    512, "CD Boot", "Apple_Bootstrap");
 		}
+
 		/* Write ISO9660 descriptor, enclosing the whole disk */
-                cd9660_write_apm_partition_entry(fd, 2 + apm_partitions,
+		cd9660_write_apm_partition_entry(fd, 2 + apm_partitions,
 		    total_parts, 0, diskStructure->totalSectors *
 		    (diskStructure->sectorSize / 512), 512, "ISO9660",
 		    "CD_ROM_Mode_1");
@@ -709,4 +740,3 @@ cd9660_write_boot(iso9660_disk *diskStructure, FILE *f
 
 	return 0;
 }
-

Modified: head/usr.sbin/makefs/cd9660/cd9660_eltorito.h
==============================================================================
--- head/usr.sbin/makefs/cd9660/cd9660_eltorito.h	Sat Mar 31 13:19:27 2018	(r331842)
+++ head/usr.sbin/makefs/cd9660/cd9660_eltorito.h	Sat Mar 31 15:04:41 2018	(r331843)
@@ -1,4 +1,4 @@
-/*	$NetBSD: cd9660_eltorito.h,v 1.5 2009/07/04 14:31:38 ahoka Exp $	*/
+/*	$NetBSD: cd9660_eltorito.h,v 1.6 2017/01/24 11:22:43 nonaka Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-2-Clause-NetBSD
@@ -44,7 +44,7 @@
 #define	ET_SYS_X86	0
 #define	ET_SYS_PPC	1
 #define	ET_SYS_MAC	2
-#define	ET_SYS_UEFI	0xef
+#define	ET_SYS_EFI	0xef	/* Platform ID at section header entry */
 
 #define ET_BOOT_ENTRY_SIZE 0x20
 
@@ -150,6 +150,7 @@ struct cd9660_boot_image {
 	u_char targetMode;
 	u_char system;
 	u_char bootable;
+	u_char platform_id;		/* for section header entry */
 	/*
 	 * If the boot image exists in the filesystem
 	 * already, this is a pointer to that node. For the sake

Modified: head/usr.sbin/makefs/makefs.8
==============================================================================
--- head/usr.sbin/makefs/makefs.8	Sat Mar 31 13:19:27 2018	(r331842)
+++ head/usr.sbin/makefs/makefs.8	Sat Mar 31 15:04:41 2018	(r331843)
@@ -35,7 +35,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 26, 2017
+.Dd March 30, 2018
 .Dt MAKEFS 8
 .Os
 .Sh NAME
@@ -394,6 +394,8 @@ ElTorito image.
 Do not pad the image (apparently Linux needs the padding).
 .It Sy omit-trailing-period
 Omit trailing periods in filenames.
+.It Sy platformid
+Set platform ID of section header entry of the boot image.
 .It Sy preparer
 Preparer ID of the image.
 .It Sy publisher

From owner-svn-src-all@freebsd.org  Sat Mar 31 15:06:15 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1682CF680E6;
 Sat, 31 Mar 2018 15:06:15 +0000 (UTC)
 (envelope-from melifaro@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B3373875DB;
 Sat, 31 Mar 2018 15:06:14 +0000 (UTC)
 (envelope-from melifaro@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ADF081969F;
 Sat, 31 Mar 2018 15:06:14 +0000 (UTC)
 (envelope-from melifaro@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VF6Ek7024923;
 Sat, 31 Mar 2018 15:06:14 GMT (envelope-from melifaro@FreeBSD.org)
Received: (from melifaro@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VF6EUJ024922;
 Sat, 31 Mar 2018 15:06:14 GMT (envelope-from melifaro@FreeBSD.org)
Message-Id: <201803311506.w2VF6EUJ024922@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: melifaro set sender to
 melifaro@FreeBSD.org using -f
From: "Alexander V. Chernikov" 
Date: Sat, 31 Mar 2018 15:06:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331844 - head/sbin/route
X-SVN-Group: head
X-SVN-Commit-Author: melifaro
X-SVN-Commit-Paths: head/sbin/route
X-SVN-Commit-Revision: 331844
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 15:06:15 -0000

Author: melifaro
Date: Sat Mar 31 15:06:14 2018
New Revision: 331844
URL: https://svnweb.freebsd.org/changeset/base/331844

Log:
  Fix memory leaks in route(8).
  
  Submitted by:	Tom Rix (trix_juniper.net)
  MFC after:	2 weeks
  Differential Revision:	https://reviews.freebsd.org/D9676

Modified:
  head/sbin/route/route.c

Modified: head/sbin/route/route.c
==============================================================================
--- head/sbin/route/route.c	Sat Mar 31 15:04:41 2018	(r331843)
+++ head/sbin/route/route.c	Sat Mar 31 15:06:14 2018	(r331844)
@@ -523,6 +523,7 @@ retry:
 			printf("done\n");
 		}
 	}
+	free(buf);
 	return (error);
 }
 
@@ -1439,6 +1440,7 @@ retry2:
 		rtm = (struct rt_msghdr *)(void *)next;
 		print_rtmsg(rtm, rtm->rtm_msglen);
 	}
+	free(buf);
 }
 
 static void

From owner-svn-src-all@freebsd.org  Sat Mar 31 16:44:10 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5F1D8F6F342;
 Sat, 31 Mar 2018 16:44:10 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from tensor.andric.com (tensor.andric.com [87.251.56.140])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "tensor.andric.com",
 Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id DBA126B81E;
 Sat, 31 Mar 2018 16:44:09 +0000 (UTC) (envelope-from dim@FreeBSD.org)
Received: from coleburn.home.andric.com (coleburn.home.andric.com
 [192.168.0.15])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by tensor.andric.com (Postfix) with ESMTPSA id 2874B36A1B;
 Sat, 31 Mar 2018 18:44:08 +0200 (CEST)
From: Dimitry Andric 
Message-Id: 
Content-Type: multipart/signed;
 boundary="Apple-Mail=_5CF05413-3AED-4E73-AEEA-15B7E14AF7DC";
 protocol="application/pgp-signature"; micalg=pgp-sha1
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: svn commit: r331838 - in stable/11: .
 contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray
 contrib/compiler-rt/lib/BlocksRuntime contrib/compiler-rt/lib/asan
 contrib/compiler-rt/l...
Date: Sat, 31 Mar 2018 18:44:01 +0200
In-Reply-To: <20180331131818.GA22697@lonesome.com>
Cc: Antoine Brodin , svn-src-stable@freebsd.org,
 svn-src-all@freebsd.org, src-committers ,
 re , svn-src-stable-11@freebsd.org
To: Mark Linimon 
References: <201803311138.w2VBcKHP014025@repo.freebsd.org>
 
 <68DEEF9A-6290-40AD-B51D-E187593C089F@FreeBSD.org>
 <20180331131818.GA22697@lonesome.com>
X-Mailer: Apple Mail (2.3273)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 16:44:10 -0000


--Apple-Mail=_5CF05413-3AED-4E73-AEEA-15B7E14AF7DC
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii

On 31 Mar 2018, at 15:18, Mark Linimon  wrote:
> 
> On Sat, Mar 31, 2018 at 02:42:01PM +0200, Dimitry Andric wrote:
>> It's been almost 3 months now since clang 6 landed in head, and if
>> those ports require USE_CXXSTD=gnu++98 to be fixed, why haven't those
>> already been changed already?
> 
> Because it takes a lot of time and effort to do it?

I don't want to belittle anyone's work here, but I am very disappointed
that it apparently takes more than 3 months (half the lifecycle of a
complete upstream llvm release!) to fix broken ports.  Don't maintainers
read their email, or care about their ports?


> This basically torpedoes the work I've been trying to do to catch tier-2
> up to tier-1, on 11.  I had been trying to to identify all the problems
> that existed beforehand, before starting in on the clang6 ones.  (Many
> people have also been contributing to fixing clang6/amd64/current errors,
> and I wanted to let the work settle, and not duplicate.)
> 
> Finally, if this had gone in just two days later, it would not have
> affected the Q2 package builds.  I could have lived with that a lot more
> easily.
> 
> I am very disappointed in the timing of this change.

In fact, I thought this was the perfect timing, so that the quarterlies
are built with clang 6, and it has enough time to settle for the 11.2
slush.  If this was merged later, somebody else would probably have
grumbled that I had "merged it just before slush". :)

-Dimitry


--Apple-Mail=_5CF05413-3AED-4E73-AEEA-15B7E14AF7DC
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.2

iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCWr+60QAKCRCwXqMKLiCW
o96sAJ96lKVKdg/f+kWiSXVItFIahFx3SwCfZgbXte9h5Qnh5Jfs/LPs6vdUYhk=
=ld89
-----END PGP SIGNATURE-----

--Apple-Mail=_5CF05413-3AED-4E73-AEEA-15B7E14AF7DC--

From owner-svn-src-all@freebsd.org  Sat Mar 31 16:58:20 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A238DF7014F
 for ;
 Sat, 31 Mar 2018 16:58:20 +0000 (UTC) (envelope-from pfg@FreeBSD.org)
Received: from sonic316-27.consmr.mail.bf2.yahoo.com
 (sonic316-27.consmr.mail.bf2.yahoo.com [74.6.130.201])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 126726C0E8
 for ; Sat, 31 Mar 2018 16:58:19 +0000 (UTC)
 (envelope-from pfg@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
 t=1522515498; bh=TMpV+AOBhy7b82uU4ZuDvzgeaLo+96wmk6UGNZfLMes=;
 h=Subject:To:Cc:References:From:Date:In-Reply-To:From:Subject;
 b=HjD12M7dS4j5H2RWp+gVQMKbLmreFEYC9OFvlAFdElGG82SlT/XC92z5K1QDm4jNoI33O4hDfb1Gu6xzkYr9PaoKx25j5PdOlDTi2WGdvNaWVeLuoa4ItF72AVbvmE6xEWZpzlINJOikUvxiWtuoBZTz61KA57AkodI6kwfatr6Qg99OBzb2/lvo63Df6AlxqVbneLwv/xPudv8hP5PFt1Wl4dP2+HmDAPNR+AfIp2wHrJ2Y/fwF+PZHwEqIbzZFbxEAybUDTIOOkiKakqr9rNzYinsLLfj0j6ioOyZz3AKmxHLLJiR5jYs8hWoEPnWjkcgEZYvku8H9MjHa6+6L5w==
X-YMail-OSG: kht6YMMVM1mbPq9aIwnM.4.z8AObbu5jOKniDNmaLJ7HP5PbVDaRHD3TfmAWL5D
 Ni40sCdhm7Y9eMQBCsWII_1qiUkQNq.prWVogvyDp4oYROS5QoPfXxcKFVT4EC4JwkNxSQz39VUY
 1l6TiVxqAvaqXvv1WE6Co_H1h6xztG_6Lo0l3zn__NEwrNMDvi3NOVRsC0xIOZWgBpX_GLooWSYI
 fHWkalNh05adfi0X24nkj_9Nsx5zPYRidpNQxs_VTxWhOklDjvz_PCRXX6eCjXHHueJnjNNMAY58
 H_E94uNSZXV3Kim06vFg8KHI8ejxuHEf1EFfWJIdRkhPc78B7whUX5CEROxYY5pwMy0vM16RFisE
 7.Jgnr2faKpPcCf0WGQzjEFVeq94DB9YRaWRGehJoP18qPuPsUcb5nGWpEMHfQ4XeKltoNn5KVt6
 _n7MV87Fk5vrPU9SYRvI32yGifGAOnpFyIbXID35lWJc9z8d8.MY0Oh.tjV6IjkoGjN5xdSpFe83
 w78CbroyYbg--
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic316.consmr.mail.bf2.yahoo.com with HTTP; Sat, 31 Mar 2018 16:58:18 +0000
Received: from 181.52.72.201 (EHLO [192.168.0.6]) ([181.52.72.201])
 by smtp417.mail.bf1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID
 e08d56f35be201b58069f70e579f9493; 
 Sat, 31 Mar 2018 16:58:17 +0000 (UTC)
Subject: Re: svn commit: r331838 - in stable/11: .
 contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray
 contrib/compiler-rt/lib/BlocksRuntime contrib/compiler-rt/lib/asan
 contrib/compiler-rt/l...
To: Dimitry Andric , Mark Linimon 
Cc: Antoine Brodin , svn-src-stable@freebsd.org,
 svn-src-all@freebsd.org, src-committers ,
 re , svn-src-stable-11@freebsd.org
References: <201803311138.w2VBcKHP014025@repo.freebsd.org>
 
 <68DEEF9A-6290-40AD-B51D-E187593C089F@FreeBSD.org>
 <20180331131818.GA22697@lonesome.com>
 
From: Pedro Giffuni 
Message-ID: 
Date: Sat, 31 Mar 2018 11:58:15 -0500
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101
 Thunderbird/52.7.0
MIME-Version: 1.0
In-Reply-To: 
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 16:58:20 -0000



On 03/31/18 11:44, Dimitry Andric wrote:
> On 31 Mar 2018, at 15:18, Mark Linimon  wrote:
>> On Sat, Mar 31, 2018 at 02:42:01PM +0200, Dimitry Andric wrote:
>>> It's been almost 3 months now since clang 6 landed in head, and if
>>> those ports require USE_CXXSTD=gnu++98 to be fixed, why haven't those
>>> already been changed already?
>> Because it takes a lot of time and effort to do it?
> I don't want to belittle anyone's work here, but I am very disappointed
> that it apparently takes more than 3 months (half the lifecycle of a
> complete upstream llvm release!) to fix broken ports.  Don't maintainers
> read their email, or care about their ports?
>
I have been receiving emails for 3 months about a port that broke from 
the clang update and while I care about my ports. I am not running 
current on the machine where I regularly use that port. It is important 
but not urgent.

Thanks to the update I can now start looking a it.

>> This basically torpedoes the work I've been trying to do to catch tier-2
>> up to tier-1, on 11.  I had been trying to to identify all the problems
>> that existed beforehand, before starting in on the clang6 ones.  (Many
>> people have also been contributing to fixing clang6/amd64/current errors,
>> and I wanted to let the work settle, and not duplicate.)
>>
>> Finally, if this had gone in just two days later, it would not have
>> affected the Q2 package builds.  I could have lived with that a lot more
>> easily.
>>
>> I am very disappointed in the timing of this change.
> In fact, I thought this was the perfect timing, so that the quarterlies
> are built with clang 6, and it has enough time to settle for the 11.2
> slush.  If this was merged later, somebody else would probably have
> grumbled that I had "merged it just before slush". :)
>
> -Dimitry
>
Pedro.

From owner-svn-src-all@freebsd.org  Sat Mar 31 17:28:31 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE64BF724F5;
 Sat, 31 Mar 2018 17:28:31 +0000 (UTC)
 (envelope-from avos@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 734286D494;
 Sat, 31 Mar 2018 17:28:31 +0000 (UTC)
 (envelope-from avos@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4DB511AD45;
 Sat, 31 Mar 2018 17:28:31 +0000 (UTC)
 (envelope-from avos@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VHSVfs099380;
 Sat, 31 Mar 2018 17:28:31 GMT (envelope-from avos@FreeBSD.org)
Received: (from avos@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VHSV1b099379;
 Sat, 31 Mar 2018 17:28:31 GMT (envelope-from avos@FreeBSD.org)
Message-Id: <201803311728.w2VHSV1b099379@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: avos set sender to
 avos@FreeBSD.org using -f
From: Andriy Voskoboinyk 
Date: Sat, 31 Mar 2018 17:28:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331847 - stable/11/sys/kern
X-SVN-Group: stable-11
X-SVN-Commit-Author: avos
X-SVN-Commit-Paths: stable/11/sys/kern
X-SVN-Commit-Revision: 331847
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 17:28:32 -0000

Author: avos
Date: Sat Mar 31 17:28:30 2018
New Revision: 331847
URL: https://svnweb.freebsd.org/changeset/base/331847

Log:
  MFC r324673:
  mbuf(9): unbreak m_fragment()
  
  - Fix it by replacing m_cat() with m_prev->m_next = m_new
  (m_cat() will try to append data - as a result, there will be no
  fragmentation).
  - Move some checks out of the loop.
  
  Some variables were renamed (m_final -> m_first, m_new -> m_last)
  
  Was previously tested with D4077.
  
  Differential Revision:	D4090

Modified:
  stable/11/sys/kern/uipc_mbuf.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/uipc_mbuf.c
==============================================================================
--- stable/11/sys/kern/uipc_mbuf.c	Sat Mar 31 16:58:02 2018	(r331846)
+++ stable/11/sys/kern/uipc_mbuf.c	Sat Mar 31 17:28:30 2018	(r331847)
@@ -1439,62 +1439,59 @@ bad:
 struct mbuf *
 m_fragment(struct mbuf *m0, int how, int length)
 {
-	struct mbuf *m_new = NULL, *m_final = NULL;
-	int progress = 0;
+	struct mbuf *m_first, *m_last;
+	int divisor = 255, progress = 0, fraglen;
 
 	if (!(m0->m_flags & M_PKTHDR))
 		return (m0);
 
-	if ((length == 0) || (length < -2))
+	if (length == 0 || length < -2)
 		return (m0);
+	if (length > MCLBYTES)
+		length = MCLBYTES;
+	if (length < 0 && divisor > MCLBYTES)
+		divisor = MCLBYTES;
+	if (length == -1)
+		length = 1 + (arc4random() % divisor);
+	if (length > 0)
+		fraglen = length;
 
 	m_fixhdr(m0); /* Needed sanity check */
 
-	m_final = m_getcl(how, MT_DATA, M_PKTHDR);
-
-	if (m_final == NULL)
+	m_first = m_getcl(how, MT_DATA, M_PKTHDR);
+	if (m_first == NULL)
 		goto nospace;
 
-	if (m_dup_pkthdr(m_final, m0, how) == 0)
+	if (m_dup_pkthdr(m_first, m0, how) == 0)
 		goto nospace;
 
-	m_new = m_final;
+	m_last = m_first;
 
-	if (length == -1)
-		length = 1 + (arc4random() & 255);
-
 	while (progress < m0->m_pkthdr.len) {
-		int fraglen;
-
-		if (length > 0)
-			fraglen = length;
-		else
-			fraglen = 1 + (arc4random() & 255);
+		if (length == -2)
+			fraglen = 1 + (arc4random() % divisor);
 		if (fraglen > m0->m_pkthdr.len - progress)
 			fraglen = m0->m_pkthdr.len - progress;
 
-		if (fraglen > MCLBYTES)
-			fraglen = MCLBYTES;
-
-		if (m_new == NULL) {
-			m_new = m_getcl(how, MT_DATA, 0);
+		if (progress != 0) {
+			struct mbuf *m_new = m_getcl(how, MT_DATA, 0);
 			if (m_new == NULL)
 				goto nospace;
+
+			m_last->m_next = m_new;
+			m_last = m_new;
 		}
 
-		m_copydata(m0, progress, fraglen, mtod(m_new, caddr_t));
+		m_copydata(m0, progress, fraglen, mtod(m_last, caddr_t));
 		progress += fraglen;
-		m_new->m_len = fraglen;
-		if (m_new != m_final)
-			m_cat(m_final, m_new);
-		m_new = NULL;
+		m_last->m_len = fraglen;
 	}
 	m_freem(m0);
-	m0 = m_final;
+	m0 = m_first;
 	return (m0);
 nospace:
-	if (m_final)
-		m_freem(m_final);
+	if (m_first)
+		m_freem(m_first);
 	/* Return the original chain on failure */
 	return (m0);
 }

From owner-svn-src-all@freebsd.org  Sat Mar 31 17:33:44 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D0EAAF72BB6;
 Sat, 31 Mar 2018 17:33:43 +0000 (UTC)
 (envelope-from andriyvos@gmail.com)
Received: from mail-lf0-f41.google.com (mail-lf0-f41.google.com
 [209.85.215.41])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 546E76DA69;
 Sat, 31 Mar 2018 17:33:43 +0000 (UTC)
 (envelope-from andriyvos@gmail.com)
Received: by mail-lf0-f41.google.com with SMTP id t132-v6so16003862lfe.2;
 Sat, 31 Mar 2018 10:33:43 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:to:cc:subject:references:date:mime-version
 :content-transfer-encoding:from:message-id:in-reply-to:user-agent;
 bh=MoeSSxj/1Rvl5UqoMUbezbSEASz5Dzt9qtyxRIDhyMs=;
 b=IZRRZJNw5ULgcfXs/8/OH65NJlB5sJGTsPzeMX/0PXrXBvSUkRyrupmey2/dRbXS5W
 nO8AH89L/giMtOnMtxBSDi02Lo72T0AvDOh0pi7hHeanE7Gv++FvkiSPdFYQPK50H9Qs
 txhinF2yoq2NzcracZKb/dsIZ+LKmbM64uj5Uyv7fRyXH1QvjCoFT0jvgnI+t3FqMnFi
 HPzlnMuaF+kyV3+0+Ev8FehyCvC6+BFcxk0eUgBLWPy5mVLQ6VR7d+1+5rWQtGxziCLA
 +2ENUrC1O3ZU0wXmsjb3K8844MNWCCDOVAsiGQEtvnzG4CCl0vxtlvCUilABfDeF+oFY
 gaPw==
X-Gm-Message-State: ALQs6tD/KVJEuHwm21UvKMRr0zBAFmw7YDuczllwN5gfFN1O5tPr9LFe
 lo/i2EUcLnlKQtn3ISvvuCUerw4P
X-Google-Smtp-Source: AIpwx4+7hqR095oRl0uXVn3oPIjuNajXfwJnLAlYpRNr3ZXmwjMJIuj4xDO9prJiHc/x4+l2fEV69A==
X-Received: by 2002:a19:2c85:: with SMTP id
 s127-v6mr2202004lfs.18.1522517616094; 
 Sat, 31 Mar 2018 10:33:36 -0700 (PDT)
Received: from localhost (46-133-77-179.dialup.umc.net.ua. [46.133.77.179])
 by smtp.gmail.com with ESMTPSA id l24sm1899399ljb.60.2018.03.31.10.33.34
 (version=TLS1 cipher=AES128-SHA bits=128/128);
 Sat, 31 Mar 2018 10:33:35 -0700 (PDT)
Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes
To: "Harry Schmalzbauer" 
Cc: "Bryan Drewery" , svn-src-head@freebsd.org,
 svn-src-all@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r324673 - head/sys/kern
References: <201710162146.v9GLkB6t036842@repo.freebsd.org>
 <5305175e-e8d2-453d-9ba6-0281af1582a9@FreeBSD.org>
  <5ABF5296.3050307@omnilan.de>
Date: Sat, 31 Mar 2018 20:31:11 +0300
MIME-Version: 1.0
Content-Transfer-Encoding: Quoted-Printable
From: "Andriy Voskoboinyk" 
Message-ID: 
In-Reply-To: <5ABF5296.3050307@omnilan.de>
User-Agent: Opera Mail/12.15 (FreeBSD)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 17:33:44 -0000

Sat, 31 Mar 2018 12:19:18 +0300 =D0=B1=D1=83=D0=BB=D0=BE =D0=BD=D0=B0=D0=
=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=BE Harry Schmalzbauer  =

:

>  Bez=C3=BCglich Andriy Voskoboinyk's Nachricht vom 17.10.2017 00:50  =

> (localtime):
>> Tue, 17 Oct 2017 00:53:28 +0300 =D0=B1=D1=83=D0=BB=D0=BE =D0=BD=D0=B0=
=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=BE Bryan Drewery
>> :
>>
>>> On 10/16/2017 2:46 PM, Andriy Voskoboinyk wrote:
>>>> Author: avos
>>>> Date: Mon Oct 16 21:46:11 2017
>>>> New Revision: 324673
>>>> URL: https://svnweb.freebsd.org/changeset/base/324673
>>>>
>>>> Log:
>>>>   mbuf(9): unbreak m_fragment()
>>>
>>> How was it broken
>>
>> Due to m_cat() usage reason (as described below); this part was
>> not changed since function creation in r119644.
>>
>>> and since when?
>>
>> No idea here - probably, it was partially working until m_cat()
>> improvement in r242256.
>>
>> P.S. Just checked with m_fragment(m, M_NOWAIT, -2) placed
>> right before ieee80211_mbuf_defrag() (from D4077) and
>> various m_len printf's before and after - it defragments
>> frames before this change and works as intended after it.
>>
>>>
>>>>
>>>>   - Fix it by replacing m_cat() with m_prev->m_next =3D m_new
>>>>   (m_cat() will try to append data - as a result, there will be no
>>>>   fragmentation).
>>>>   - Move some constants out of the loop.
>>>>
>>>>   Was previously tested with D4077.
>>>>
>>>>   Differential Revision:    https://reviews.freebsd.org/D4090
>
>
> Will r324673 be MFCd before 11.2?
>
> Thanks,
>
> -harry

Done in r331847.

From owner-svn-src-all@freebsd.org  Sat Mar 31 18:22:32 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1981AF75E98;
 Sat, 31 Mar 2018 18:22:32 +0000 (UTC)
 (envelope-from tijl@freebsd.org)
Received: from mailrelay114.isp.belgacom.be (mailrelay114.isp.belgacom.be
 [195.238.20.141])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "relay.skynet.be",
 Issuer "GlobalSign Organization Validation CA - SHA256 - G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 374B96FB21;
 Sat, 31 Mar 2018 18:22:29 +0000 (UTC)
 (envelope-from tijl@freebsd.org)
X-Belgacom-Dynamic: yes
IronPort-PHdr: =?us-ascii?q?9a23=3AD9l1BRzwUtKbbSjXCy+O+j09IxM/srCxBDY+r6Qd?=
 =?us-ascii?q?2uMeIJqq85mqBkHD//Il1AaPAd2Araocw8Pt8InYEVQa5piAtH1QOLdtbDQizf?=
 =?us-ascii?q?ssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1?=
 =?us-ascii?q?JuPoEYLOksi7ze+/94HdbglSmDaxfa55IQmrownWqsQYm5ZpJLwryhvOrHtIeu?=
 =?us-ascii?q?BWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbO?=
 =?us-ascii?q?SxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDtU7s6RSqt4LtqSB/wiS?=
 =?us-ascii?q?cIKTg58H3MisdtiK5XuQ+tqwBjz4LRZoyeKfhwcb7Hfd4CS2RPXthfWTFCDIy+?=
 =?us-ascii?q?YYsAAPYOM+lDoonhpVYCsQeyCRWwCO/xzDJDm3/43bc90+QkCQzIwg0gH9AKsH?=
 =?us-ascii?q?/Jstj1M6ASUfurw6nN1zrDaehW0ir65YjUcxAho/WMUKlwf8rL10YgCR7IgEie?=
 =?us-ascii?q?p4D/ODOVzOsNvnGd4uF9W+yvjGsnpBtwojip3soshJPJiZwLxV/f7iV23Zw5Jd?=
 =?us-ascii?q?qiSE50Z9OvDZhetzmCOoZ1X88uWX9ktSknxrEcp5K3YDYGxI46yxPfZfGKdZWD?=
 =?us-ascii?q?7Aj5W+aLOzh4gWpoeLe4hxmv70et0vb8Vsyo0FZSqSpFj8XMumgN1xPN7siHTe?=
 =?us-ascii?q?Nw/kS71jaL1gDT7/9LIVozlabBN54hw7wwlp4JvUvfGS/2n172g7GTdko+/Oio?=
 =?us-ascii?q?8P7rYrL8pp+TL4N0iwf+PboymsGnAuk0LxICU3aU9OihzrHv41H1TKtQgvErkq?=
 =?us-ascii?q?TUvojWJcEBqa64Bw9V3Jwj6xG6Dzq+zNQYnHsHLFZedRKJlYjmJU/BL+vjDfii?=
 =?us-ascii?q?mVisly1rx//eMr37HprNNmTDkKvmfbtl8E5c1gwzwclE55JOFr4NOfLzVVHru9?=
 =?us-ascii?q?PFFRI5PRa0zPj5B9pmzYMRRHiDAqiDMKPdqVWI/P4gI/GQZI8JvzbwM+Ml5+Do?=
 =?us-ascii?q?jXMggl8dZ7Wm0YINZ3C8GvRrOEuZYWDyjdgfCmgKpRcxQPbtiF2YXj5Zf2yyUL?=
 =?us-ascii?q?4k5jEnFIKmCp/ORpu3gLOdxSu0AppWZmVDClCNDXfoa5uLW+0XaC+JLM9hiCIL?=
 =?us-ascii?q?Wqa6RI86yB6irgj6y6BoLuDM4C0XqYrj1MRp5+3UjRwy8CZ7D96e02GPVGx0kH?=
 =?us-ascii?q?kISCEo069kukxy102P0a9ig/xXRpRv4KZsWx05fbzbz+phF9f0ElbEd82KSn6I?=
 =?us-ascii?q?WNirKwodCNUrzIldTVx6HoCejxLHlwGtBKQYkrWNH9Rg7qPe21DfPctw4U3qkq?=
 =?us-ascii?q?47gA91EYN0KWS6i/snpEDoDInTnhDczv7yeA=3D=3D?=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2AoDAAH0b9a/5nK8VFcHgEGDINCUw5vF?=
 =?us-ascii?q?ROMOowiAQGBczEBXZJTgXouhGEChCQiNRcBAgEBAQEBAQIBaiiCNyQBgkkBBSc?=
 =?us-ascii?q?THCMQCxQECSUPKh4GE4URC69RM4g6giYFiXSDXDSEb4VUApc6CIVRiFJli12JF?=
 =?us-ascii?q?YgNHQE2gVJNMAiCfYIgF44YPTCQBQEB?=
X-IPAS-Result: =?us-ascii?q?A2AoDAAH0b9a/5nK8VFcHgEGDINCUw5vFROMOowiAQGBczE?=
 =?us-ascii?q?BXZJTgXouhGEChCQiNRcBAgEBAQEBAQIBaiiCNyQBgkkBBScTHCMQCxQECSUPK?=
 =?us-ascii?q?h4GE4URC69RM4g6giYFiXSDXDSEb4VUApc6CIVRiFJli12JFYgNHQE2gVJNMAi?=
 =?us-ascii?q?CfYIgF44YPTCQBQEB?=
Received: from 153.202-241-81.adsl-dyn.isp.belgacom.be (HELO
 kalimero.tijl.coosemans.org) ([81.241.202.153])
 by relay.skynet.be with ESMTP; 31 Mar 2018 20:21:19 +0200
Received: from kalimero.tijl.coosemans.org (kalimero.tijl.coosemans.org
 [127.0.0.1])
 by kalimero.tijl.coosemans.org (8.15.2/8.15.2) with ESMTP id w2VILJ04001720;
 Sat, 31 Mar 2018 20:21:19 +0200 (CEST)
 (envelope-from tijl@FreeBSD.org)
Date: Sat, 31 Mar 2018 20:21:18 +0200
From: Tijl Coosemans 
To: Mark Johnston 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: Re: svn commit: r331732 - head/sys/vm
Message-ID: <20180331202118.5401ed2a@kalimero.tijl.coosemans.org>
In-Reply-To: <201803291427.w2TEReA3024929@repo.freebsd.org>
References: <201803291427.w2TEReA3024929@repo.freebsd.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 18:22:32 -0000

On Thu, 29 Mar 2018 14:27:40 +0000 (UTC) Mark Johnston  wrote:
> Author: markj
> Date: Thu Mar 29 14:27:40 2018
> New Revision: 331732
> URL: https://svnweb.freebsd.org/changeset/base/331732
> 
> Log:
>   Fix the background laundering mechanism after r329882.
>   
>   Rather than using the number of inactive queue scans as a metric for
>   how many clean pages are being freed by the page daemon, have the
>   page daemon keep a running counter of the number of pages it has freed,
>   and have the laundry thread use that when computing the background
>   laundering threshold.
>   
>   Reviewed by:	kib
>   Differential Revision:	https://reviews.freebsd.org/D14884
> 
> Modified:
>   head/sys/vm/vm_pageout.c
>   head/sys/vm/vm_pagequeue.h
> 
> Modified: head/sys/vm/vm_pageout.c
> ==============================================================================
> --- head/sys/vm/vm_pageout.c	Thu Mar 29 13:55:23 2018	(r331731)
> +++ head/sys/vm/vm_pageout.c	Thu Mar 29 14:27:40 2018	(r331732)
> @@ -943,8 +943,7 @@ vm_pageout_laundry_worker(void *arg)
>  {
>  	struct vm_domain *vmd;
>  	struct vm_pagequeue *pq;
> -	uint64_t nclean, ndirty;
> -	u_int inactq_scans, last_launder;
> +	uint64_t nclean, ndirty, nfreed;
>  	int domain, last_target, launder, shortfall, shortfall_cycle, target;
>  	bool in_shortfall;
>  
> @@ -958,8 +957,7 @@ vm_pageout_laundry_worker(void *arg)
>  	in_shortfall = false;
>  	shortfall_cycle = 0;
>  	target = 0;
> -	inactq_scans = 0;
> -	last_launder = 0;
> +	nfreed = 0;
>  
>  	/*
>  	 * Calls to these handlers are serialized by the swap syscall lock.
> @@ -1000,7 +998,6 @@ vm_pageout_laundry_worker(void *arg)
>  			target = 0;
>  			goto trybackground;
>  		}
> -		last_launder = inactq_scans;
>  		launder = target / shortfall_cycle--;
>  		goto dolaundry;
>  
> @@ -1009,24 +1006,23 @@ vm_pageout_laundry_worker(void *arg)
>  		 * meet the conditions to perform background laundering:
>  		 *
>  		 * 1. The ratio of dirty to clean inactive pages exceeds the
> -		 *    background laundering threshold and the pagedaemon has
> -		 *    been woken up to reclaim pages since our last
> -		 *    laundering, or
> +		 *    background laundering threshold, or
>  		 * 2. we haven't yet reached the target of the current
>  		 *    background laundering run.
>  		 *
>  		 * The background laundering threshold is not a constant.
>  		 * Instead, it is a slowly growing function of the number of
> -		 * page daemon scans since the last laundering.  Thus, as the
> -		 * ratio of dirty to clean inactive pages grows, the amount of
> -		 * memory pressure required to trigger laundering decreases.
> +		 * clean pages freed by the page daemon since the last
> +		 * background laundering.  Thus, as the ratio of dirty to
> +		 * clean inactive pages grows, the amount of memory pressure
> +		 * required to trigger laundering decreases.
>  		 */
>  trybackground:
>  		nclean = vmd->vmd_free_count +
>  		    vmd->vmd_pagequeues[PQ_INACTIVE].pq_cnt;
>  		ndirty = vmd->vmd_pagequeues[PQ_LAUNDRY].pq_cnt;
> -		if (target == 0 && inactq_scans != last_launder &&
> -		    ndirty * isqrt(inactq_scans - last_launder) >= nclean) {
> +		if (target == 0 && ndirty * isqrt(nfreed /
> +		    (vmd->vmd_free_target - vmd->vmd_free_min)) >= nclean) {

I'm seeing big processes being killed with an "out of swap space" message
even though there's still plenty of swap available.  It seems to be fixed
by making this division round upwards:

		if (target == 0 && ndirty * isqrt((nfreed +
		    (vmd->vmd_free_target - vmd->vmd_free_min) - 1) /
		    (vmd->vmd_free_target - vmd->vmd_free_min)) >= nclean) {

I don't know where this formula comes from, so I don't know if this
change is correct.

From owner-svn-src-all@freebsd.org  Sat Mar 31 18:41:13 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C45DFF770A6;
 Sat, 31 Mar 2018 18:41:13 +0000 (UTC)
 (envelope-from linimon@lonesome.com)
Received: from mail.soaustin.net (mail.soaustin.net [192.108.105.60])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mail.soaustin.net",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6053C70862;
 Sat, 31 Mar 2018 18:41:13 +0000 (UTC)
 (envelope-from linimon@lonesome.com)
Received: from lonesome.com (bones.soaustin.net [192.108.105.22])
 by mail.soaustin.net (Postfix) with ESMTPSA id 0AB52284D;
 Sat, 31 Mar 2018 13:41:11 -0500 (CDT)
Date: Sat, 31 Mar 2018 13:41:09 -0500
From: Mark Linimon 
To: Dimitry Andric 
Cc: Antoine Brodin , svn-src-stable@freebsd.org,
 svn-src-all@freebsd.org,
 src-committers , re ,
 svn-src-stable-11@freebsd.org
Subject: Re: svn commit: r331838 - in stable/11: .
 contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray
 contrib/compiler-rt/lib/BlocksRuntime contrib/compiler-rt/lib/asan
 contrib/compiler-rt/l...
Message-ID: <20180331184109.GA23589@lonesome.com>
References: <201803311138.w2VBcKHP014025@repo.freebsd.org>
 
 <68DEEF9A-6290-40AD-B51D-E187593C089F@FreeBSD.org>
 <20180331131818.GA22697@lonesome.com>
 
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: 
User-Agent: Mutt/1.5.23 (2014-03-12)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 18:41:13 -0000

On Sat, Mar 31, 2018 at 06:44:01PM +0200, Dimitry Andric wrote:
> I am very disappointed that it apparently takes more than 3 months
> (half the lifecycle of a complete upstream llvm release!) to fix
> broken ports.  Don't maintainers read their email, or care about
> their  ports?

  Number of ports with no maintainer: 4625 (16.5%) 

(that number is a bit stale)

Add the number of port maintainers that are no longer active, overwhelmed
"group" maintainers, and the number of maintainers who only run -stable,
and you have a significant number.

Like any task, this needs someone to step up and coordinate so that the
work is getting done.  Thinking that it will automagically happen is
unrealistic.

Please also consider the fact that the _correct_ way to get patches like
this done is to submit them to the upstream (if it still exists) and get
them to incorporate them.  That takes time, as well.

This is an immense codebase, constantly changing.

Now let me add a personal irritation: no one has bothered doing a writeup
on "here's how you fix old broken code that no longer works."  I am neither
a compiler expert nor a C++ expert -- I can sit around and twiddle knobs
and see if that makes things work, but that's not the type of commit I want
to make.  (I have already been trying this with consolekit2, to absolutely
no result.)

> In fact, I thought this was the perfect timing, so that the quarterlies
> are built with clang 6, and it has enough time to settle for the 11.2
> slush.

The quarterlies won't be build from clang 6.  They are always based on the
oldest supported point release per branch.

The folks that will suffer are the users who build their own packages, who
will find a large number of regressions with no warning.  (e.g., there is
nothing in the ports UPDATING file yet.) 

Please see the lld work that emaste has been doing for the type of thing
that makes working on ports a lot more bearable.

tl;dr: this is the type of thing that needs coordination between various
teams.

mcl

From owner-svn-src-all@freebsd.org  Sat Mar 31 19:16:26 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E24CFF79362;
 Sat, 31 Mar 2018 19:16:25 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 8CE7572076;
 Sat, 31 Mar 2018 19:16:25 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 866911BF49;
 Sat, 31 Mar 2018 19:16:25 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VJGPUI058664;
 Sat, 31 Mar 2018 19:16:25 GMT (envelope-from smh@FreeBSD.org)
Received: (from smh@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VJGPcA058663;
 Sat, 31 Mar 2018 19:16:25 GMT (envelope-from smh@FreeBSD.org)
Message-Id: <201803311916.w2VJGPcA058663@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org
 using -f
From: Steven Hartland 
Date: Sat, 31 Mar 2018 19:16:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331848 -
 stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Group: stable-11
X-SVN-Commit-Author: smh
X-SVN-Commit-Paths: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-SVN-Commit-Revision: 331848
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 19:16:26 -0000

Author: smh
Date: Sat Mar 31 19:16:25 2018
New Revision: 331848
URL: https://svnweb.freebsd.org/changeset/base/331848

Log:
  MFC r330950:
  
  Prevent ZFS TRIM breaking VTOC8 partitions
  
  Sponsored by:	Multiplay

Modified:
  stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c	Sat Mar 31 17:28:30 2018	(r331847)
+++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c	Sat Mar 31 19:16:25 2018	(r331848)
@@ -728,7 +728,9 @@ vdev_label_init(vdev_t *vd, uint64_t crtxg, vdev_label
 	}
 
 	/*
-	 * TRIM the whole thing so that we start with a clean slate.
+	 * TRIM the whole thing, excluding the blank space and boot header
+	 * as specified by ZFS On-Disk Specification (section 1.3), so that
+	 * we start with a clean slate.
 	 * It's just an optimization, so we don't care if it fails.
 	 * Don't TRIM if removing so that we don't interfere with zpool
 	 * disaster recovery.
@@ -736,7 +738,8 @@ vdev_label_init(vdev_t *vd, uint64_t crtxg, vdev_label
 	if (zfs_trim_enabled && vdev_trim_on_init && !vd->vdev_notrim && 
 	    (reason == VDEV_LABEL_CREATE || reason == VDEV_LABEL_SPARE ||
 	    reason == VDEV_LABEL_L2CACHE))
-		zio_wait(zio_trim(NULL, spa, vd, 0, vd->vdev_psize));
+		zio_wait(zio_trim(NULL, spa, vd, VDEV_SKIP_SIZE,
+		    vd->vdev_psize - VDEV_SKIP_SIZE));
 
 	/*
 	 * Initialize its label.

From owner-svn-src-all@freebsd.org  Sat Mar 31 19:18:08 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 10C3AF79518;
 Sat, 31 Mar 2018 19:18:08 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B2E4E7227D;
 Sat, 31 Mar 2018 19:18:07 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ADEB81BF4D;
 Sat, 31 Mar 2018 19:18:07 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VJI74X058818;
 Sat, 31 Mar 2018 19:18:07 GMT (envelope-from smh@FreeBSD.org)
Received: (from smh@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VJI7DA058816;
 Sat, 31 Mar 2018 19:18:07 GMT (envelope-from smh@FreeBSD.org)
Message-Id: <201803311918.w2VJI7DA058816@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org
 using -f
From: Steven Hartland 
Date: Sat, 31 Mar 2018 19:18:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331849 - stable/11/sys/dev/mps
X-SVN-Group: stable-11
X-SVN-Commit-Author: smh
X-SVN-Commit-Paths: stable/11/sys/dev/mps
X-SVN-Commit-Revision: 331849
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 19:18:08 -0000

Author: smh
Date: Sat Mar 31 19:18:07 2018
New Revision: 331849
URL: https://svnweb.freebsd.org/changeset/base/331849

Log:
  MFC r330951:
  
  Fix mps deadlock when handling panic
  
  Sponsored by:	Multiplay

Modified:
  stable/11/sys/dev/mps/mps_sas_lsi.c
  stable/11/sys/dev/mps/mpsvar.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/mps/mps_sas_lsi.c
==============================================================================
--- stable/11/sys/dev/mps/mps_sas_lsi.c	Sat Mar 31 19:16:25 2018	(r331848)
+++ stable/11/sys/dev/mps/mps_sas_lsi.c	Sat Mar 31 19:18:07 2018	(r331849)
@@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -124,7 +125,7 @@ int mpssas_get_sas_address_for_sata_disk(struct mps_so
     u64 *sas_address, u16 handle, u32 device_info, u8 *is_SATA_SSD);
 static int mpssas_volume_add(struct mps_softc *sc,
     u16 handle);
-static void mpssas_SSU_to_SATA_devices(struct mps_softc *sc);
+static void mpssas_SSU_to_SATA_devices(struct mps_softc *sc, int howto);
 static void mpssas_stop_unit_done(struct cam_periph *periph,
     union ccb *done_ccb);
 
@@ -1112,7 +1113,7 @@ out:
  * Return nothing.
  */
 static void
-mpssas_SSU_to_SATA_devices(struct mps_softc *sc)
+mpssas_SSU_to_SATA_devices(struct mps_softc *sc, int howto)
 {
 	struct mpssas_softc *sassc = sc->sassc;
 	union ccb *ccb;
@@ -1120,7 +1121,7 @@ mpssas_SSU_to_SATA_devices(struct mps_softc *sc)
 	target_id_t targetid;
 	struct mpssas_target *target;
 	char path_str[64];
-	struct timeval cur_time, start_time;
+	int timeout;
 
 	/*
 	 * For each target, issue a StartStopUnit command to stop the device.
@@ -1183,17 +1184,23 @@ mpssas_SSU_to_SATA_devices(struct mps_softc *sc)
 	}
 
 	/*
-	 * Wait until all of the SSU commands have completed or time has
-	 * expired (60 seconds).  Pause for 100ms each time through.  If any
-	 * command times out, the target will be reset in the SCSI command
-	 * timeout routine.
+	 * Timeout after 60 seconds by default or 10 seconds if howto has
+	 * RB_NOSYNC set which indicates we're likely handling a panic.
 	 */
-	getmicrotime(&start_time);
-	while (sc->SSU_refcount) {
+	timeout = 600;
+	if (howto & RB_NOSYNC)
+		timeout = 100;
+
+	/*
+	 * Wait until all of the SSU commands have completed or timeout has
+	 * expired.  Pause for 100ms each time through.  If any command
+	 * times out, the target will be reset in the SCSI command timeout
+	 * routine.
+	 */
+	while (sc->SSU_refcount > 0) {
 		pause("mpswait", hz/10);
 		
-		getmicrotime(&cur_time);
-		if ((cur_time.tv_sec - start_time.tv_sec) > 60) {
+		if (--timeout == 0) {
 			mps_dprint(sc, MPS_FAULT, "Time has expired waiting "
 			    "for SSU commands to complete.\n");
 			break;
@@ -1235,7 +1242,7 @@ mpssas_stop_unit_done(struct cam_periph *periph, union
  * Return nothing.
  */
 void
-mpssas_ir_shutdown(struct mps_softc *sc)
+mpssas_ir_shutdown(struct mps_softc *sc, int howto)
 {
 	u16 volume_mapping_flags;
 	u16 ioc_pg8_flags = le16toh(sc->ioc_pg8.Flags);
@@ -1340,5 +1347,5 @@ out:
 			}
 		}
 	}
-	mpssas_SSU_to_SATA_devices(sc);
+	mpssas_SSU_to_SATA_devices(sc, howto);
 }

Modified: stable/11/sys/dev/mps/mpsvar.h
==============================================================================
--- stable/11/sys/dev/mps/mpsvar.h	Sat Mar 31 19:16:25 2018	(r331848)
+++ stable/11/sys/dev/mps/mpsvar.h	Sat Mar 31 19:18:07 2018	(r331849)
@@ -722,7 +722,7 @@ int mps_config_get_volume_wwid(struct mps_softc *sc, u
 int mps_config_get_raid_pd_pg0(struct mps_softc *sc,
     Mpi2ConfigReply_t *mpi_reply, Mpi2RaidPhysDiskPage0_t *config_page,
     u32 page_address);
-void mpssas_ir_shutdown(struct mps_softc *sc);
+void mpssas_ir_shutdown(struct mps_softc *sc, int howto);
 
 int mps_reinit(struct mps_softc *sc);
 void mpssas_handle_reinit(struct mps_softc *sc);

From owner-svn-src-all@freebsd.org  Sat Mar 31 19:19:23 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id B814EF796B3;
 Sat, 31 Mar 2018 19:19:23 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6B5D77242B;
 Sat, 31 Mar 2018 19:19:23 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 664821BF51;
 Sat, 31 Mar 2018 19:19:23 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VJJNTq058950;
 Sat, 31 Mar 2018 19:19:23 GMT (envelope-from smh@FreeBSD.org)
Received: (from smh@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VJJNha058949;
 Sat, 31 Mar 2018 19:19:23 GMT (envelope-from smh@FreeBSD.org)
Message-Id: <201803311919.w2VJJNha058949@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org
 using -f
From: Steven Hartland 
Date: Sat, 31 Mar 2018 19:19:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331850 - stable/11/sys/net
X-SVN-Group: stable-11
X-SVN-Commit-Author: smh
X-SVN-Commit-Paths: stable/11/sys/net
X-SVN-Commit-Revision: 331850
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 19:19:23 -0000

Author: smh
Date: Sat Mar 31 19:19:22 2018
New Revision: 331850
URL: https://svnweb.freebsd.org/changeset/base/331850

Log:
  MFC r328321:
  
  Added missing CTLFLAG_VNET to lacp default_strict_mode
  
  Sponsored by:	Multiplay

Modified:
  stable/11/sys/net/ieee8023ad_lacp.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/net/ieee8023ad_lacp.c
==============================================================================
--- stable/11/sys/net/ieee8023ad_lacp.c	Sat Mar 31 19:18:07 2018	(r331849)
+++ stable/11/sys/net/ieee8023ad_lacp.c	Sat Mar 31 19:19:22 2018	(r331850)
@@ -197,8 +197,8 @@ SYSCTL_INT(_net_link_lagg_lacp, OID_AUTO, debug, CTLFL
     &VNET_NAME(lacp_debug), 0, "Enable LACP debug logging (1=debug, 2=trace)");
 
 static VNET_DEFINE(int, lacp_default_strict_mode) = 1;
-SYSCTL_INT(_net_link_lagg_lacp, OID_AUTO, default_strict_mode, CTLFLAG_RWTUN,
-    &VNET_NAME(lacp_default_strict_mode), 0,
+SYSCTL_INT(_net_link_lagg_lacp, OID_AUTO, default_strict_mode,
+    CTLFLAG_RWTUN | CTLFLAG_VNET, &VNET_NAME(lacp_default_strict_mode), 0,
     "LACP strict protocol compliance default");
 
 #define LACP_DPRINTF(a) if (V_lacp_debug & 0x01) { lacp_dprintf a ; }

From owner-svn-src-all@freebsd.org  Sat Mar 31 19:21:58 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6089AF79A92;
 Sat, 31 Mar 2018 19:21:58 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 158FE728E0;
 Sat, 31 Mar 2018 19:21:58 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 109BA1C0AA;
 Sat, 31 Mar 2018 19:21:58 +0000 (UTC) (envelope-from smh@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VJLvw4061562;
 Sat, 31 Mar 2018 19:21:57 GMT (envelope-from smh@FreeBSD.org)
Received: (from smh@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VJLvi2061560;
 Sat, 31 Mar 2018 19:21:57 GMT (envelope-from smh@FreeBSD.org)
Message-Id: <201803311921.w2VJLvi2061560@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: smh set sender to smh@FreeBSD.org
 using -f
From: Steven Hartland 
Date: Sat, 31 Mar 2018 19:21:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r331851 - stable/11/usr.sbin/bsdinstall/scripts
X-SVN-Group: stable-11
X-SVN-Commit-Author: smh
X-SVN-Commit-Paths: stable/11/usr.sbin/bsdinstall/scripts
X-SVN-Commit-Revision: 331851
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 19:21:58 -0000

Author: smh
Date: Sat Mar 31 19:21:57 2018
New Revision: 331851
URL: https://svnweb.freebsd.org/changeset/base/331851

Log:
  MFC r320138:
  
  Fixed bsdinstall location of vfs.zfs.min_auto_ashift
  
  Sponsored by:	Multiplay

Modified:
  stable/11/usr.sbin/bsdinstall/scripts/config
  stable/11/usr.sbin/bsdinstall/scripts/zfsboot
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/bsdinstall/scripts/config
==============================================================================
--- stable/11/usr.sbin/bsdinstall/scripts/config	Sat Mar 31 19:19:22 2018	(r331850)
+++ stable/11/usr.sbin/bsdinstall/scripts/config	Sat Mar 31 19:21:57 2018	(r331851)
@@ -32,7 +32,7 @@
 cat $BSDINSTALL_TMPETC/rc.conf.* >> $BSDINSTALL_TMPETC/rc.conf
 rm $BSDINSTALL_TMPETC/rc.conf.*
 
-cat $BSDINSTALL_CHROOT/etc/sysctl.conf $BSDINSTALL_TMPETC/sysctl.conf.hardening >> $BSDINSTALL_TMPETC/sysctl.conf
+cat $BSDINSTALL_CHROOT/etc/sysctl.conf $BSDINSTALL_TMPETC/sysctl.conf.* >> $BSDINSTALL_TMPETC/sysctl.conf
 rm $BSDINSTALL_TMPETC/sysctl.conf.*
 
 cp $BSDINSTALL_TMPETC/* $BSDINSTALL_CHROOT/etc

Modified: stable/11/usr.sbin/bsdinstall/scripts/zfsboot
==============================================================================
--- stable/11/usr.sbin/bsdinstall/scripts/zfsboot	Sat Mar 31 19:19:22 2018	(r331850)
+++ stable/11/usr.sbin/bsdinstall/scripts/zfsboot	Sat Mar 31 19:21:57 2018	(r331851)
@@ -1446,7 +1446,7 @@ zfs_create_boot()
 	if [ "$ZFSBOOT_FORCE_4K_SECTORS" ]; then
 		f_eval_catch $funcname echo "$ECHO_APPEND" \
 	             'vfs.zfs.min_auto_ashift=12' \
-	             $BSDINSTALL_TMPBOOT/loader.conf.zfs || return $FAILURE
+	             $BSDINSTALL_TMPETC/sysctl.conf.zfs || return $FAILURE
 	fi
 
 	if [ "$ZFSBOOT_SWAP_MIRROR" ]; then

From owner-svn-src-all@freebsd.org  Sat Mar 31 19:39:21 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D3DFDF7AAF6
 for ;
 Sat, 31 Mar 2018 19:39:20 +0000 (UTC)
 (envelope-from steven@multiplay.co.uk)
Received: from mail-wr0-x22c.google.com (mail-wr0-x22c.google.com
 [IPv6:2a00:1450:400c:c0c::22c])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 4C114731FC
 for ; Sat, 31 Mar 2018 19:39:20 +0000 (UTC)
 (envelope-from steven@multiplay.co.uk)
Received: by mail-wr0-x22c.google.com with SMTP id y55so10415182wry.3
 for ; Sat, 31 Mar 2018 12:39:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623;
 h=from:subject:to:cc:references:message-id:date:user-agent
 :mime-version:in-reply-to:content-language;
 bh=Olqr3SH+/fwvOK7YPk07VQFeypuJVlK/6L3mSk8EsaM=;
 b=Fbv7nAZO9nWaqwIQ2lnEDXdrwwIsfIo6SXt6Zedm4iQER8+FHgJwexIXkxb2qwVYPZ
 eYUmbCvOeED4JTTL4NYMtNdUCkUY/EqbWxOk9PbFFVs0647AHHInRIGfCGrEzlAnYime
 By/kJwBzsnZRffnA3E13+heDiHEG3kod0lvJUunj9/FuzXD5OHrLbxnKxK9cThrvHgz4
 TwUf+I7CJGj58pNF8H8gcsqt7rWt7QgUz0u8VUmF/fa1mgw54GEHAEl+Lh9zT88UaB6a
 4lO7+3PUw9yWuo+ekl7j4l6NfGVLkpXKAJKoWagykkpIst8fdVtQ8U+nVzFK4V9rBF7v
 eLrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:subject:to:cc:references:message-id:date
 :user-agent:mime-version:in-reply-to:content-language;
 bh=Olqr3SH+/fwvOK7YPk07VQFeypuJVlK/6L3mSk8EsaM=;
 b=eR1z+E4AtowHYYWOrYjUpapNo9ervyDI41q3TyCLXRGda0BiifqLPYyHqCZ9EbIFgb
 wJvBeQHhkAPREEZOgYxoGQwEylD35g+NB49J6k2CbedWdi0S+OjBOkqEceJTM+i/JoUi
 an1dRfG9maztkEDZgiwcv1BOcRDZ3/GQh4T9WXRZbw8OJPTZH2S7E88Dmlex2QV7zVjU
 4aof2Eo1nW5IxslfKecs7OBYlkKX/FJ6lrsRPD3KQ23zxzmXEMFRigbeQMAlBGsdSNen
 jzu24pa8PB9nMYpDuZgA16+5q+fnUji+kxeFk2BZW6ZuZi/N/ONmogKrtDKPki+iFpec
 uV9A==
X-Gm-Message-State: AElRT7Hf1twJWgRGagVUne/63XRaa1taKxXEvU2iKvh68rn36LIR30zb
 2TLyzvHmMzWDc0bcFTm34IJEUz2txE0=
X-Google-Smtp-Source: AIpwx4/2iMNpZTKRPLb3Ah0bob02LVQ6wa+lkPvmoZDWyIWHWVLJ3AbuzARj2lPYcgT9TYdTI81e7A==
X-Received: by 10.223.157.3 with SMTP id k3mr2686675wre.179.1522525158503;
 Sat, 31 Mar 2018 12:39:18 -0700 (PDT)
Received: from [10.10.1.111] ([185.97.61.1])
 by smtp.gmail.com with ESMTPSA id 134sm11202687wmm.42.2018.03.31.12.39.17
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 31 Mar 2018 12:39:17 -0700 (PDT)
From: Steven Hartland 
X-Google-Original-From: Steven Hartland 
Subject: Re: svn commit: r327559 - in head: . sys/net
To: Slawa Olhovchenkov , Eugene Grosbein 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
References: <201801042005.w04K5liB049411@repo.freebsd.org>
 <5A4E9397.9000308@grosbein.net> <20180105131105.GB5368@zxy.spb.ru>
Message-ID: <4598904f-fab2-a094-3887-6e9c5e6a4cc2@freebsd.org>
Date: Sat, 31 Mar 2018 20:40:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
 Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <20180105131105.GB5368@zxy.spb.ru>
Content-Language: en-US
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Content-Filtered-By: Mailman/MimeDel 2.1.25
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 19:39:21 -0000

On 05/01/2018 13:11, Slawa Olhovchenkov wrote:
> On Fri, Jan 05, 2018 at 03:50:31AM +0700, Eugene Grosbein wrote:
>
>> 05.01.2018 3:05, Steven Hartland wrote:
>>
>>> Author: smh
>>> Date: Thu Jan  4 20:05:47 2018
>>> New Revision: 327559
>>> URL: https://svnweb.freebsd.org/changeset/base/327559
>>>
>>> Log:
>>>    Disabled the use of flowid for lagg by default
>>>    
>>>    Disabled the use of RSS hash from the network card aka flowid for
>>>    lagg(4) interfaces by default as it's currently incompatible with
>>>    the lacp and loadbalance protocols.
>>>    
>>>    The incompatibility is due to the fact that the flowid isn't know
>>>    for the first packet of a new outbound stream which can result in
>>>    the hash calculation method changing and hence a stream being
>>>    incorrectly split across multiple interfaces during normal
>>>    operation.
>>>    
>>>    This can be re-enabled by setting the following in loader.conf:
>>>    net.link.lagg.default_use_flowid="1"
>>>    
>>>    Discussed with: kmacy
>>>    Sponsored by:	Multiplay
>> RSS by definition has meaning to received stream. What is "outbound" stream
>> in this context, why can the hash calculatiom method change and what exactly
>> does it mean "a stream being incorrectly split"?
>>
>> Defaults should not be changed so easily just because they are not optimal
>> for some specific case. Each lagg has its own setting for flowid usage
>> and why one cannot just use "ifconfig lagg0 -use_flowid" for such cases?
> Irrelevant to RSS and etc. flowid distribution in lacp case work very
> bad. This is good and must be MFC (IMHO).
There was no concrete conclusion to this thread and I've not had time to 
look into this more and it's on my open list to MFC to stable/11 in time 
for 11.2.

Even given the drop in performance, I think we should prefer correctness 
over increased performance and given the new default can still be 
overridden in loader.conf I'm looking to MFC this shortly unless I get 
any strong objections with a clear path forward.

     Regards
     Steve

From owner-svn-src-all@freebsd.org  Sat Mar 31 22:03:00 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7D377F546E4;
 Sat, 31 Mar 2018 22:03:00 +0000 (UTC) (envelope-from imp@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 3317F77F23;
 Sat, 31 Mar 2018 22:03:00 +0000 (UTC) (envelope-from imp@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 14CB21DB14;
 Sat, 31 Mar 2018 22:03:00 +0000 (UTC) (envelope-from imp@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VM2xGC047654;
 Sat, 31 Mar 2018 22:02:59 GMT (envelope-from imp@FreeBSD.org)
Received: (from imp@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VM2xHt047650;
 Sat, 31 Mar 2018 22:02:59 GMT (envelope-from imp@FreeBSD.org)
Message-Id: <201803312202.w2VM2xHt047650@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org
 using -f
From: Warner Losh 
Date: Sat, 31 Mar 2018 22:02:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331852 - in head: stand/i386/libfirewire sys/dev/firewire
X-SVN-Group: head
X-SVN-Commit-Author: imp
X-SVN-Commit-Paths: in head: stand/i386/libfirewire sys/dev/firewire
X-SVN-Commit-Revision: 331852
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 22:03:00 -0000

Author: imp
Date: Sat Mar 31 22:02:59 2018
New Revision: 331852
URL: https://svnweb.freebsd.org/changeset/base/331852

Log:
  fwohcireg.h is 99% the same between the boot loader and the
  kernel. Delete it and fix up the 1% difference because there's no need
  for them to be different.

Deleted:
  head/stand/i386/libfirewire/fwohcireg.h
Modified:
  head/stand/i386/libfirewire/firewire.c
  head/stand/i386/libfirewire/fwohci.c
  head/stand/i386/libfirewire/fwohci.h
  head/sys/dev/firewire/fwohcireg.h

Modified: head/stand/i386/libfirewire/firewire.c
==============================================================================
--- head/stand/i386/libfirewire/firewire.c	Sat Mar 31 19:21:57 2018	(r331851)
+++ head/stand/i386/libfirewire/firewire.c	Sat Mar 31 22:02:59 2018	(r331852)
@@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include "fwohci.h"
 #include 
 

Modified: head/stand/i386/libfirewire/fwohci.c
==============================================================================
--- head/stand/i386/libfirewire/fwohci.c	Sat Mar 31 19:21:57 2018	(r331851)
+++ head/stand/i386/libfirewire/fwohci.c	Sat Mar 31 22:02:59 2018	(r331852)
@@ -39,8 +39,9 @@
 #include 
 #include 
 
+#include 
 #include "fwohci.h"
-#include "fwohcireg.h"
+#include 
 #include 
 
 static uint32_t fwphy_wrdata ( struct fwohci_softc *, uint32_t, uint32_t);
@@ -62,12 +63,6 @@ char *linkspeed[] = {
 	"S100", "S200", "S400", "S800",
 	"S1600", "S3200", "undef", "undef"
 };
-
-#define FW_EUI64_BYTE(eui, x) \
-	((((x)<4)?				\
-		((eui)->hi >> (8*(3-(x)))): 	\
-		((eui)->lo >> (8*(7-(x))))	\
-	) & 0xff)
 
 /*
  * Communication with PHY device

Modified: head/stand/i386/libfirewire/fwohci.h
==============================================================================
--- head/stand/i386/libfirewire/fwohci.h	Sat Mar 31 19:21:57 2018	(r331851)
+++ head/stand/i386/libfirewire/fwohci.h	Sat Mar 31 22:02:59 2018	(r331852)
@@ -37,10 +37,6 @@
 #define MAX_OHCI 5
 #define CROMSIZE 0x400
 
-struct fw_eui64 {
-        uint32_t hi, lo;
-};
-
 struct fwohci_softc {
 	uint32_t locator;
 	uint32_t devid;

Modified: head/sys/dev/firewire/fwohcireg.h
==============================================================================
--- head/sys/dev/firewire/fwohcireg.h	Sat Mar 31 19:21:57 2018	(r331851)
+++ head/sys/dev/firewire/fwohcireg.h	Sat Mar 31 22:02:59 2018	(r331852)
@@ -330,6 +330,7 @@ struct ohci_registers {
 	struct ohci_dma dma_irch[0x20];
 };
 
+#ifndef _STANDALONE
 struct fwohcidb_tr {
 	STAILQ_ENTRY(fwohcidb_tr) link;
 	struct fw_xfer *xfer;
@@ -339,6 +340,7 @@ struct fwohcidb_tr {
 	bus_addr_t bus_addr;
 	int dbcnt;
 };
+#endif
 
 /*
  * OHCI info structure.

From owner-svn-src-all@freebsd.org  Sat Mar 31 22:54:37 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9533F5CC90;
 Sat, 31 Mar 2018 22:54:36 +0000 (UTC)
 (envelope-from markjdb@gmail.com)
Received: from mail-io0-x234.google.com (mail-io0-x234.google.com
 [IPv6:2607:f8b0:4001:c06::234])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 6EE4C7ABF9;
 Sat, 31 Mar 2018 22:54:36 +0000 (UTC)
 (envelope-from markjdb@gmail.com)
Received: by mail-io0-x234.google.com with SMTP id m83so14424022ioi.8;
 Sat, 31 Mar 2018 15:54:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:date:from:to:cc:subject:message-id:references:mime-version
 :content-disposition:in-reply-to:user-agent;
 bh=P4l/Wjtvw9z3v+iiZ9Rc/VieHpnq0sm1JTa2GWSSikY=;
 b=WwkoTGgBUcJIMdknbRGb5yCvVmtz5BD4lkAHWGRioaphuigfgev139eJgufVh0DJRx
 HK3l7hpq7oQBdSFwtWpEgXj9Ih3/+E5WAedI9bkAGt/wfYiEi0WxATQOY/pjDl3H+wDL
 FMddNxSpXpCC7NiXAj273wnZqmknco5iKxDeKbH8KPt5aGI9nzw8xI85+W6UMzCj6r83
 DGopkI5IDUYL38yXFuo0rDuTKBUSObbXR/3dhU+sUWF03e0BjSTzBVfvpzUdiHVRpvXu
 VW9S1Qgl6naOy6KTdYLwUsbaFxgbVUIWwNMjR70pOkbUly0FOW+2X9fWSxeH/8+bYcR9
 oGdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:date:from:to:cc:subject:message-id
 :references:mime-version:content-disposition:in-reply-to:user-agent;
 bh=P4l/Wjtvw9z3v+iiZ9Rc/VieHpnq0sm1JTa2GWSSikY=;
 b=jikPnf+TPYsxw+oEIJp1F+TBFmYaUUzBz06dsXNnzu2XB9TlhEXMR3DKC+FR+KlMJC
 xD37IiCX2if7thw/kdbpMZ9ClpWubFRqNrAJ474lzsq47LNBVLtZKigQsJE1NO7BvJcF
 FBD+L5j2vqJybqRWNgMs+qxpkbwBsxcZ82u0CIdKUYYfUG7pawVWyTsHPKKv0oaJcJdg
 uGLTybj7SMS240uFu9L98XQwUqq+8v+qGXoDCQLu1gniJi1DTKFodI3+sJiRSWShcVge
 xz5oISP1n+eUL0JplnJjI+mVH7JnJ08GOm1CiuCt/1hBTb+YlAQXae/Ycz1kSgvxA+90
 vJ5A==
X-Gm-Message-State: AElRT7Hr8lQ/kU7j/KzQvrkC1B8KVt05y3+ErP/XAAtdzDFQD9MHoTYv
 9HBkr9Bmylz6XCQMftz/IIlfPA==
X-Google-Smtp-Source: AIpwx49mrF5PdNUUHXy7tLThiZ7K5UizcWX/t1CwyyKZBHYfLO3rTw2Dzgr27ta/SYcBCXTMg2Rxlw==
X-Received: by 10.107.134.140 with SMTP id q12mr3638866ioi.92.1522536875557;
 Sat, 31 Mar 2018 15:54:35 -0700 (PDT)
Received: from raichu (toroon0560w-lp130-01-174-88-76-83.dsl.bell.ca.
 [174.88.76.83])
 by smtp.gmail.com with ESMTPSA id 134-v6sm3857965itl.34.2018.03.31.15.54.34
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 31 Mar 2018 15:54:34 -0700 (PDT)
Sender: Mark Johnston 
Date: Sat, 31 Mar 2018 18:54:32 -0400
From: Mark Johnston 
To: Tijl Coosemans 
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: Re: svn commit: r331732 - head/sys/vm
Message-ID: <20180331225432.GB1440@raichu>
References: <201803291427.w2TEReA3024929@repo.freebsd.org>
 <20180331202118.5401ed2a@kalimero.tijl.coosemans.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20180331202118.5401ed2a@kalimero.tijl.coosemans.org>
User-Agent: Mutt/1.9.4 (2018-02-28)
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 22:54:37 -0000

On Sat, Mar 31, 2018 at 08:21:18PM +0200, Tijl Coosemans wrote:
> On Thu, 29 Mar 2018 14:27:40 +0000 (UTC) Mark Johnston  wrote:
> > Author: markj
> > Date: Thu Mar 29 14:27:40 2018
> > New Revision: 331732
> > URL: https://svnweb.freebsd.org/changeset/base/331732
> > 
> > Log:
> >   Fix the background laundering mechanism after r329882.
> >   
> >   Rather than using the number of inactive queue scans as a metric for
> >   how many clean pages are being freed by the page daemon, have the
> >   page daemon keep a running counter of the number of pages it has freed,
> >   and have the laundry thread use that when computing the background
> >   laundering threshold.
> > [...]
> 
> I'm seeing big processes being killed with an "out of swap space" message
> even though there's still plenty of swap available.  It seems to be fixed
> by making this division round upwards:
> 
> 		if (target == 0 && ndirty * isqrt((nfreed +
> 		    (vmd->vmd_free_target - vmd->vmd_free_min) - 1) /
> 		    (vmd->vmd_free_target - vmd->vmd_free_min)) >= nclean) {
> 
> I don't know where this formula comes from, so I don't know if this
> change is correct.

Hm, that's somewhat surprising. This code shouldn't be executing in
situations where the OOM kill logic is invoked (i.e., memory pressure
plus a shortage of clean pages in the inactive queue).

How much RAM does the system have? Could you collect "sysctl vm" output
around the time of an OOM kill?

I'm wondering if the higher inactive queue scan frequency after r329882
might be responsible: OOM kills are performed after vm.pageout_oom_seq
back-to-back scans fail to reclaim any pages. Does your problem persist
if you increase the value of that sysctl, say to 60?

From owner-svn-src-all@freebsd.org  Sat Mar 31 23:24:29 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2735DF6527A;
 Sat, 31 Mar 2018 23:24:29 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id CFE3A7BEFA;
 Sat, 31 Mar 2018 23:24:28 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CAE651E80D;
 Sat, 31 Mar 2018 23:24:28 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VNOSmp092467;
 Sat, 31 Mar 2018 23:24:28 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VNOSoK092466;
 Sat, 31 Mar 2018 23:24:28 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201803312324.w2VNOSoK092466@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston 
Date: Sat, 31 Mar 2018 23:24:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331853 - head/sys/sys
X-SVN-Group: head
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: head/sys/sys
X-SVN-Commit-Revision: 331853
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 23:24:29 -0000

Author: markj
Date: Sat Mar 31 23:24:28 2018
New Revision: 331853
URL: https://svnweb.freebsd.org/changeset/base/331853

Log:
  Don't verify td_locks accounting after a panic.
  
  Reported by:	pho
  X-MFC with:	r331738

Modified:
  head/sys/sys/proc.h

Modified: head/sys/sys/proc.h
==============================================================================
--- head/sys/sys/proc.h	Sat Mar 31 22:02:59 2018	(r331852)
+++ head/sys/sys/proc.h	Sat Mar 31 23:24:28 2018	(r331853)
@@ -382,7 +382,8 @@ do {									\
 
 #define	TD_LOCKS_INC(td)	((td)->td_locks++)
 #define	TD_LOCKS_DEC(td) do {						\
-	KASSERT((td)->td_locks > 0, ("thread %p owns no locks", (td)));	\
+	KASSERT(SCHEDULER_STOPPED_TD(td) || (td)->td_locks > 0,		\
+	    ("thread %p owns no locks", (td)));				\
 	(td)->td_locks--;						\
 } while (0)
 #else

From owner-svn-src-all@freebsd.org  Sat Mar 31 23:40:06 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20070F664F8;
 Sat, 31 Mar 2018 23:40:06 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id C6D097C836;
 Sat, 31 Mar 2018 23:40:05 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C1CB11E9D0;
 Sat, 31 Mar 2018 23:40:05 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VNe5Om097845;
 Sat, 31 Mar 2018 23:40:05 GMT (envelope-from kevans@FreeBSD.org)
Received: (from kevans@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VNe5bT097844;
 Sat, 31 Mar 2018 23:40:05 GMT (envelope-from kevans@FreeBSD.org)
Message-Id: <201803312340.w2VNe5bT097844@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kevans set sender to
 kevans@FreeBSD.org using -f
From: Kyle Evans 
Date: Sat, 31 Mar 2018 23:40:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331854 - head/stand/lua
X-SVN-Group: head
X-SVN-Commit-Author: kevans
X-SVN-Commit-Paths: head/stand/lua
X-SVN-Commit-Revision: 331854
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 23:40:06 -0000

Author: kevans
Date: Sat Mar 31 23:40:05 2018
New Revision: 331854
URL: https://svnweb.freebsd.org/changeset/base/331854

Log:
  lualoader: Do case-insensitive comparison of "yes"

Modified:
  head/stand/lua/config.lua

Modified: head/stand/lua/config.lua
==============================================================================
--- head/stand/lua/config.lua	Sat Mar 31 23:24:28 2018	(r331853)
+++ head/stand/lua/config.lua	Sat Mar 31 23:40:05 2018	(r331854)
@@ -205,7 +205,7 @@ local function loadModule(mod, silent)
 	local status = true
 	local pstatus
 	for k, v in pairs(mod) do
-		if v.load == "YES" then
+		if v.load:lower() == "yes" then
 			local str = "load "
 			if v.flags ~= nil then
 				str = str .. v.flags .. " "

From owner-svn-src-all@freebsd.org  Sat Mar 31 23:49:01 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 621ECF66FA9;
 Sat, 31 Mar 2018 23:49:01 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 090957CE6F;
 Sat, 31 Mar 2018 23:49:01 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F03271EB66;
 Sat, 31 Mar 2018 23:49:00 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VNn0gi002907;
 Sat, 31 Mar 2018 23:49:00 GMT (envelope-from kevans@FreeBSD.org)
Received: (from kevans@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VNn0EK002906;
 Sat, 31 Mar 2018 23:49:00 GMT (envelope-from kevans@FreeBSD.org)
Message-Id: <201803312349.w2VNn0EK002906@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kevans set sender to
 kevans@FreeBSD.org using -f
From: Kyle Evans 
Date: Sat, 31 Mar 2018 23:49:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331855 - head/stand/lua
X-SVN-Group: head
X-SVN-Commit-Author: kevans
X-SVN-Commit-Paths: head/stand/lua
X-SVN-Commit-Revision: 331855
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 23:49:01 -0000

Author: kevans
Date: Sat Mar 31 23:49:00 2018
New Revision: 331855
URL: https://svnweb.freebsd.org/changeset/base/331855

Log:
  lualoader: Don't assume that {module}_load is set
  
  The previous iteration of this assumed that {module}_load was set. In the
  old world order of default loader.conf(5), this was probably a safe
  assumption given that we had almost every module explicitly not-loaded in
  it.
  
  In the new world order, this is no longer the case, so one could delete a
  _load line inadvertently while leaving a _name, _type, _flags, _before,
  _after, or _error. This would have caused a confusing Lua error and borked
  module loading.

Modified:
  head/stand/lua/config.lua

Modified: head/stand/lua/config.lua
==============================================================================
--- head/stand/lua/config.lua	Sat Mar 31 23:40:05 2018	(r331854)
+++ head/stand/lua/config.lua	Sat Mar 31 23:49:00 2018	(r331855)
@@ -205,6 +205,9 @@ local function loadModule(mod, silent)
 	local status = true
 	local pstatus
 	for k, v in pairs(mod) do
+		if v.load == nil then
+			goto continue
+		end
 		if v.load:lower() == "yes" then
 			local str = "load "
 			if v.flags ~= nil then
@@ -232,6 +235,7 @@ local function loadModule(mod, silent)
 				end
 				if v.error ~= nil then
 					cli_execute_unparsed(v.error)
+
 				end
 				status = false
 			end
@@ -249,6 +253,7 @@ local function loadModule(mod, silent)
 --				print("Skipping module '". . k .. "'")
 --			end
 		end
+		::continue::
 	end
 
 	return status

From owner-svn-src-all@freebsd.org  Sat Mar 31 23:50:21 2018
Return-Path: 
Delivered-To: svn-src-all@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 17A91F67123;
 Sat, 31 Mar 2018 23:50:21 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id BE3BA7CFEA;
 Sat, 31 Mar 2018 23:50:20 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B85ED1EB6A;
 Sat, 31 Mar 2018 23:50:20 +0000 (UTC)
 (envelope-from kevans@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2VNoKCi003054;
 Sat, 31 Mar 2018 23:50:20 GMT (envelope-from kevans@FreeBSD.org)
Received: (from kevans@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2VNoKVT003053;
 Sat, 31 Mar 2018 23:50:20 GMT (envelope-from kevans@FreeBSD.org)
Message-Id: <201803312350.w2VNoKVT003053@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kevans set sender to
 kevans@FreeBSD.org using -f
From: Kyle Evans 
Date: Sat, 31 Mar 2018 23:50:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Subject: svn commit: r331856 - head/stand/lua
X-SVN-Group: head
X-SVN-Commit-Author: kevans
X-SVN-Commit-Paths: head/stand/lua
X-SVN-Commit-Revision: 331856
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.25
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
 user" and " projects" \)" 
List-Unsubscribe: ,
 
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
 
X-List-Received-Date: Sat, 31 Mar 2018 23:50:21 -0000

Author: kevans
Date: Sat Mar 31 23:50:20 2018
New Revision: 331856
URL: https://svnweb.freebsd.org/changeset/base/331856

Log:
  lualoader: revert whitespace change that snuck in

Modified:
  head/stand/lua/config.lua

Modified: head/stand/lua/config.lua
==============================================================================
--- head/stand/lua/config.lua	Sat Mar 31 23:49:00 2018	(r331855)
+++ head/stand/lua/config.lua	Sat Mar 31 23:50:20 2018	(r331856)
@@ -235,7 +235,6 @@ local function loadModule(mod, silent)
 				end
 				if v.error ~= nil then
 					cli_execute_unparsed(v.error)
-
 				end
 				status = false
 			end