CVS commit: src/sys/arch
Module Name:src Committed By: riastradh Date: Mon Dec 9 04:51:04 UTC 2019 Modified Files: src/sys/arch/arm/sunxi: files.sunxi src/sys/arch/evbarm/conf: GENERIC64 Added Files: src/sys/arch/arm/sunxi: sun8i_crypto.c sun8i_crypto.h Log Message: Draft driver for Allwinner Crypto Engine. Found on, e.g., the Pinebook. Only used for TRNG at the moment, but hooking it up to opencrypto(9) shouldn't be too hard if anyone still cares about that these days. The distribution of the alleged TRNG is very nonuniform distributed seems to alternate between toward runs with exceptionally high fractions of 0 bits and runs with exceptionally high fractions of 1 bits -- initially all my samples were mostly 0's, and then all my samples were mostly 1's, and now I'm seeing more oscillation between these runs. So I've wired it up as RND_TYPE_UNKNOWN, not RND_TYPE_RNG (it will immediately flunk our rngtest and be disabled), and I estimated it to provide at most one bit of entropy per byte of data -- which may still be optimistic. I also added a sysctl node hw.sun8icryptoN.rng to read out 1024-byte samples for analysis, and I left the driver commented out in GENERIC64 for now. (If anyone has contacts at Allwinner who can tell us about how the alleged TRNG is supposed to work, please let me know!) To generate a diff of this commit: cvs rdiff -u -r1.66 -r1.67 src/sys/arch/arm/sunxi/files.sunxi cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/sunxi/sun8i_crypto.c \ src/sys/arch/arm/sunxi/sun8i_crypto.h cvs rdiff -u -r1.115 -r1.116 src/sys/arch/evbarm/conf/GENERIC64 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch
Module Name:src Committed By: riastradh Date: Mon Dec 9 04:51:04 UTC 2019 Modified Files: src/sys/arch/arm/sunxi: files.sunxi src/sys/arch/evbarm/conf: GENERIC64 Added Files: src/sys/arch/arm/sunxi: sun8i_crypto.c sun8i_crypto.h Log Message: Draft driver for Allwinner Crypto Engine. Found on, e.g., the Pinebook. Only used for TRNG at the moment, but hooking it up to opencrypto(9) shouldn't be too hard if anyone still cares about that these days. The distribution of the alleged TRNG is very nonuniform distributed seems to alternate between toward runs with exceptionally high fractions of 0 bits and runs with exceptionally high fractions of 1 bits -- initially all my samples were mostly 0's, and then all my samples were mostly 1's, and now I'm seeing more oscillation between these runs. So I've wired it up as RND_TYPE_UNKNOWN, not RND_TYPE_RNG (it will immediately flunk our rngtest and be disabled), and I estimated it to provide at most one bit of entropy per byte of data -- which may still be optimistic. I also added a sysctl node hw.sun8icryptoN.rng to read out 1024-byte samples for analysis, and I left the driver commented out in GENERIC64 for now. (If anyone has contacts at Allwinner who can tell us about how the alleged TRNG is supposed to work, please let me know!) To generate a diff of this commit: cvs rdiff -u -r1.66 -r1.67 src/sys/arch/arm/sunxi/files.sunxi cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/sunxi/sun8i_crypto.c \ src/sys/arch/arm/sunxi/sun8i_crypto.h cvs rdiff -u -r1.115 -r1.116 src/sys/arch/evbarm/conf/GENERIC64 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/sunxi/files.sunxi diff -u src/sys/arch/arm/sunxi/files.sunxi:1.66 src/sys/arch/arm/sunxi/files.sunxi:1.67 --- src/sys/arch/arm/sunxi/files.sunxi:1.66 Sat Aug 3 13:28:42 2019 +++ src/sys/arch/arm/sunxi/files.sunxi Mon Dec 9 04:51:03 2019 @@ -1,4 +1,4 @@ -# $NetBSD: files.sunxi,v 1.66 2019/08/03 13:28:42 tnn Exp $ +# $NetBSD: files.sunxi,v 1.67 2019/12/09 04:51:03 riastradh Exp $ # # Configuration info for Allwinner sunxi family SoCs # @@ -364,6 +364,11 @@ device sunxihdmiphy: drmkms attach sunxihdmiphy at fdt with sunxi_hdmiphy file arch/arm/sunxi/sunxi_hdmiphy.c sunxi_hdmiphy | sunxi_dwhdmi +# Allwinner Crypto Engine +device sun8icrypto +attach sun8icrypto at fdt with sun8i_crypto +file arch/arm/sunxi/sun8i_crypto.c sun8i_crypto + # SOC parameters defflag opt_soc.h SOC_SUNXI defflag opt_soc.h SOC_SUNXI_MC Index: src/sys/arch/evbarm/conf/GENERIC64 diff -u src/sys/arch/evbarm/conf/GENERIC64:1.115 src/sys/arch/evbarm/conf/GENERIC64:1.116 --- src/sys/arch/evbarm/conf/GENERIC64:1.115 Sun Nov 17 19:51:35 2019 +++ src/sys/arch/evbarm/conf/GENERIC64 Mon Dec 9 04:51:04 2019 @@ -1,5 +1,5 @@ # -# $NetBSD: GENERIC64,v 1.115 2019/11/17 19:51:35 jmcneill Exp $ +# $NetBSD: GENERIC64,v 1.116 2019/12/09 04:51:04 riastradh Exp $ # # GENERIC ARM (aarch64) kernel # @@ -370,6 +370,7 @@ amdccp* at fdt? # AMD Cryptograhic Co amdccp* at acpi? bcmrng* at fdt? # Broadcom BCM283x RNG mesonrng* at fdt? # Amlogic Meson RNG +#sun8icrypto* at fdt? # Allwinner Crypto Engine # RTC plrtc* at fdt? # ARM PrimeCell RTC Added files: Index: src/sys/arch/arm/sunxi/sun8i_crypto.c diff -u /dev/null src/sys/arch/arm/sunxi/sun8i_crypto.c:1.1 --- /dev/null Mon Dec 9 04:51:04 2019 +++ src/sys/arch/arm/sunxi/sun8i_crypto.c Mon Dec 9 04:51:03 2019 @@ -0,0 +1,1349 @@ +/* $NetBSD: sun8i_crypto.c,v 1.1 2019/12/09 04:51:03 riastradh Exp $ */ + +/*- + * Copyright (c) 2019 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Taylor R. Campbell. + * + * 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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,
CVS commit: src/sys/arch/arm/dts
Module Name:src Committed By: riastradh Date: Mon Dec 9 04:40:50 UTC 2019 Modified Files: src/sys/arch/arm/dts: sun50i-a64.dtsi Log Message: Add crypto engine block. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/dts/sun50i-a64.dtsi Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/dts
Module Name:src Committed By: riastradh Date: Mon Dec 9 04:40:50 UTC 2019 Modified Files: src/sys/arch/arm/dts: sun50i-a64.dtsi Log Message: Add crypto engine block. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/dts/sun50i-a64.dtsi Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/dts/sun50i-a64.dtsi diff -u src/sys/arch/arm/dts/sun50i-a64.dtsi:1.13 src/sys/arch/arm/dts/sun50i-a64.dtsi:1.14 --- src/sys/arch/arm/dts/sun50i-a64.dtsi:1.13 Sun Nov 17 17:35:10 2019 +++ src/sys/arch/arm/dts/sun50i-a64.dtsi Mon Dec 9 04:40:50 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: sun50i-a64.dtsi,v 1.13 2019/11/17 17:35:10 jmcneill Exp $ */ +/* $NetBSD: sun50i-a64.dtsi,v 1.14 2019/12/09 04:40:50 riastradh Exp $ */ /*- * Copyright (c) 2017 Jared McNeill @@ -50,6 +50,15 @@ resets = < RST_BUS_THS>; #thermal-sensor-cells = <0>; }; + + crypto: crypto@1c15000 { + compatible = "allwinner,sun50i-a64-crypto"; + reg = <0x01c15000 0x1000>; + interrupts = ; + clocks = < CLK_BUS_CE>, < CLK_CE>; + clock-names = "bus", "mod"; + resets = < RST_BUS_CE>; + }; }; /* PMU interrupt numbers are wrong in mainline dts */
CVS commit: src/sys/uvm/pmap
Module Name:src Committed By: riastradh Date: Mon Dec 9 04:39:58 UTC 2019 Modified Files: src/sys/uvm/pmap: pmap_pvt.c Log Message: Convert pmap_pvt to atomic_load/store. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/uvm/pmap/pmap_pvt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/uvm/pmap/pmap_pvt.c diff -u src/sys/uvm/pmap/pmap_pvt.c:1.4 src/sys/uvm/pmap/pmap_pvt.c:1.5 --- src/sys/uvm/pmap/pmap_pvt.c:1.4 Sat Dec 7 17:56:08 2019 +++ src/sys/uvm/pmap/pmap_pvt.c Mon Dec 9 04:39:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap_pvt.c,v 1.4 2019/12/07 17:56:08 jmcneill Exp $ */ +/* $NetBSD: pmap_pvt.c,v 1.5 2019/12/09 04:39:58 riastradh Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: pmap_pvt.c,v 1.4 2019/12/07 17:56:08 jmcneill Exp $"); +__RCSID("$NetBSD: pmap_pvt.c,v 1.5 2019/12/09 04:39:58 riastradh Exp $"); #include #include @@ -92,8 +92,7 @@ pmap_pv_track(paddr_t start, psize_t siz mutex_enter(_unmanaged.lock); pvt->pvt_next = pv_unmanaged.list; - membar_producer(); - pv_unmanaged.list = pvt; + atomic_store_release(_unmanaged.list, pvt); mutex_exit(_unmanaged.lock); } @@ -119,9 +118,21 @@ pmap_pv_untrack(paddr_t start, psize_t s panic("pmap_pv_untrack: pv-tracking at 0x%"PRIxPADDR ": 0x%"PRIxPSIZE" bytes, not 0x%"PRIxPSIZE" bytes", pvt->pvt_start, pvt->pvt_size, size); - *pvtp = pvt->pvt_next; + + /* + * Remove from list. Readers can safely see the old + * and new states of the list. + */ + atomic_store_relaxed(pvtp, pvt->pvt_next); + + /* Wait for readers who can see the old state to finish. */ pserialize_perform(pv_unmanaged.psz); - pvt->pvt_next = NULL; + + /* + * We now have exclusive access to pvt and can destroy + * it. Poison it to catch bugs. + */ + explicit_memset(>pvt_next, 0x1a, sizeof pvt->pvt_next); goto out; } panic("pmap_pv_untrack: pages not pv-tracked at 0x%"PRIxPADDR @@ -143,8 +154,9 @@ pmap_pv_tracked(paddr_t pa) KASSERT(pa == trunc_page(pa)); s = pserialize_read_enter(); - for (pvt = pv_unmanaged.list; pvt != NULL; pvt = pvt->pvt_next) { - membar_datadep_consumer(); + for (pvt = atomic_load_consume(_unmanaged.list); + pvt != NULL; + pvt = pvt->pvt_next) { if ((pvt->pvt_start <= pa) && ((pa - pvt->pvt_start) < pvt->pvt_size)) break;
CVS commit: src/sys/uvm/pmap
Module Name:src Committed By: riastradh Date: Mon Dec 9 04:39:58 UTC 2019 Modified Files: src/sys/uvm/pmap: pmap_pvt.c Log Message: Convert pmap_pvt to atomic_load/store. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/uvm/pmap/pmap_pvt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/dev/pci
Module Name:src Committed By: msaitoh Date: Mon Dec 9 02:30:30 UTC 2019 Modified Files: src/sys/dev/pci: if_wm.c Log Message: Fix a bug that wm_sgmii_readreg_locked() may return error even if error isn't occured. To generate a diff of this commit: cvs rdiff -u -r1.650 -r1.651 src/sys/dev/pci/if_wm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/pci/if_wm.c diff -u src/sys/dev/pci/if_wm.c:1.650 src/sys/dev/pci/if_wm.c:1.651 --- src/sys/dev/pci/if_wm.c:1.650 Wed Dec 4 09:03:45 2019 +++ src/sys/dev/pci/if_wm.c Mon Dec 9 02:30:30 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_wm.c,v 1.650 2019/12/04 09:03:45 msaitoh Exp $ */ +/* $NetBSD: if_wm.c,v 1.651 2019/12/09 02:30:30 msaitoh Exp $ */ /* * Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc. @@ -82,7 +82,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.650 2019/12/04 09:03:45 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.651 2019/12/09 02:30:30 msaitoh Exp $"); #ifdef _KERNEL_OPT #include "opt_net_mpsafe.h" @@ -11626,7 +11626,7 @@ wm_sgmii_readreg_locked(device_t dev, in { struct wm_softc *sc = device_private(dev); uint32_t i2ccmd; - int i, rv; + int i, rv = 0; i2ccmd = (reg << I2CCMD_REG_ADDR_SHIFT) | (phy << I2CCMD_PHY_ADDR_SHIFT) | I2CCMD_OPCODE_READ;
CVS commit: src/sys/dev/pci
Module Name:src Committed By: msaitoh Date: Mon Dec 9 02:30:30 UTC 2019 Modified Files: src/sys/dev/pci: if_wm.c Log Message: Fix a bug that wm_sgmii_readreg_locked() may return error even if error isn't occured. To generate a diff of this commit: cvs rdiff -u -r1.650 -r1.651 src/sys/dev/pci/if_wm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: sevan Date: Mon Dec 9 00:15:11 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c Log Message: We currently lack a tunable to control ZFS prefetch, so skip the warning and FreeBSD specific instructions on settings. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: sevan Date: Mon Dec 9 00:15:11 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c Log Message: We currently lack a tunable to control ZFS prefetch, so skip the warning and FreeBSD specific instructions on settings. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.15 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.16 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.15 Sun Dec 1 20:26:05 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c Mon Dec 9 00:15:11 2019 @@ -6218,6 +6218,7 @@ arc_init(void) } #ifdef _KERNEL +#ifdef __FreeBSD__ if (TUNABLE_INT_FETCH("vfs.zfs.prefetch_disable", _prefetch_disable)) prefetch_tunable_set = 1; @@ -6239,6 +6240,7 @@ arc_init(void) zfs_prefetch_disable = 1; } #endif +#endif /* Warn about ZFS memory and address space requirements. */ if (((uint64_t)physmem * PAGESIZE) < (256 + 128 + 64) * (1 << 20)) { printf("ZFS WARNING: Recommended minimum RAM size is 512MB; " @@ -6247,9 +6249,11 @@ arc_init(void) if (kmem_size() < 512 * (1 << 20)) { printf("ZFS WARNING: Recommended minimum kmem_size is 512MB; " "expect unstable behavior.\n"); +#ifdef __FreeBSD__ printf(" Consider tuning vm.kmem_size and " "vm.kmem_size_max\n"); printf(" in /boot/loader.conf.\n"); +#endif } #endif }
CVS commit: src/bin/sh
Module Name:src Committed By: kre Date: Mon Dec 9 00:14:30 UTC 2019 Modified Files: src/bin/sh: trap.c Log Message: PR bin/54743 If a builtin command or function is the final command intended to be executed, and is interrupted by a caught signal, the trap handler for that signal was not executed - the shell simply exited (an exit trap handler would still have been run - if there was one the handler for the signal may have been invoked during the execution of the exit trap handler, which, if it happened, is incorrect sequencing). Now, if we're exiting, and there are pending signals, run their handlers just before running the EXIT trap handler, if any. There are almost certainly plenty more issues with traps that need solving. Later, XXX pullup -9 (-8 is too different in this area, and this problem suitably obscure, that we won't bother) (the -7 sh is simply obsolete). To generate a diff of this commit: cvs rdiff -u -r1.52 -r1.53 src/bin/sh/trap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/bin/sh/trap.c diff -u src/bin/sh/trap.c:1.52 src/bin/sh/trap.c:1.53 --- src/bin/sh/trap.c:1.52 Thu Apr 25 03:54:10 2019 +++ src/bin/sh/trap.c Mon Dec 9 00:14:30 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: trap.c,v 1.52 2019/04/25 03:54:10 kre Exp $ */ +/* $NetBSD: trap.c,v 1.53 2019/12/09 00:14:30 kre Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)trap.c 8.5 (Berkeley) 6/5/95"; #else -__RCSID("$NetBSD: trap.c,v 1.52 2019/04/25 03:54:10 kre Exp $"); +__RCSID("$NetBSD: trap.c,v 1.53 2019/12/09 00:14:30 kre Exp $"); #endif #endif /* not lint */ @@ -854,6 +854,12 @@ exitshell_savedstatus(void) } exitstatus = exiting_status; + if (pendingsigs && !setjmp(loc.loc)) { + handler = + + dotrap(); + } + if (!setjmp(loc.loc)) { handler =
CVS commit: src/bin/sh
Module Name:src Committed By: kre Date: Mon Dec 9 00:14:24 UTC 2019 Modified Files: src/bin/sh: eval.c Log Message: PR bin/54743 Having traps set should not enforce a fork for the next command, whatever that command happens to be, only for commands which would normally fork if they weren't the last command expected to be executed (ie: builtins and functions shouldn't be exexuted in a sub-shell merely because a trap is set). As it was (for example) trap 'whatever' SIGANY; wait $anypid was guaranteed to fail the wait, as the subshell it was executed in could not have any children. XXX pullup -9 To generate a diff of this commit: cvs rdiff -u -r1.175 -r1.176 src/bin/sh/eval.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/bin/sh
Module Name:src Committed By: kre Date: Mon Dec 9 00:14:30 UTC 2019 Modified Files: src/bin/sh: trap.c Log Message: PR bin/54743 If a builtin command or function is the final command intended to be executed, and is interrupted by a caught signal, the trap handler for that signal was not executed - the shell simply exited (an exit trap handler would still have been run - if there was one the handler for the signal may have been invoked during the execution of the exit trap handler, which, if it happened, is incorrect sequencing). Now, if we're exiting, and there are pending signals, run their handlers just before running the EXIT trap handler, if any. There are almost certainly plenty more issues with traps that need solving. Later, XXX pullup -9 (-8 is too different in this area, and this problem suitably obscure, that we won't bother) (the -7 sh is simply obsolete). To generate a diff of this commit: cvs rdiff -u -r1.52 -r1.53 src/bin/sh/trap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/bin/sh
Module Name:src Committed By: kre Date: Mon Dec 9 00:14:24 UTC 2019 Modified Files: src/bin/sh: eval.c Log Message: PR bin/54743 Having traps set should not enforce a fork for the next command, whatever that command happens to be, only for commands which would normally fork if they weren't the last command expected to be executed (ie: builtins and functions shouldn't be exexuted in a sub-shell merely because a trap is set). As it was (for example) trap 'whatever' SIGANY; wait $anypid was guaranteed to fail the wait, as the subshell it was executed in could not have any children. XXX pullup -9 To generate a diff of this commit: cvs rdiff -u -r1.175 -r1.176 src/bin/sh/eval.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/bin/sh/eval.c diff -u src/bin/sh/eval.c:1.175 src/bin/sh/eval.c:1.176 --- src/bin/sh/eval.c:1.175 Sat May 4 02:52:55 2019 +++ src/bin/sh/eval.c Mon Dec 9 00:14:24 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: eval.c,v 1.175 2019/05/04 02:52:55 kre Exp $ */ +/* $NetBSD: eval.c,v 1.176 2019/12/09 00:14:24 kre Exp $ */ /*- * Copyright (c) 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)eval.c 8.9 (Berkeley) 6/8/95"; #else -__RCSID("$NetBSD: eval.c,v 1.175 2019/05/04 02:52:55 kre Exp $"); +__RCSID("$NetBSD: eval.c,v 1.176 2019/12/09 00:14:24 kre Exp $"); #endif #endif /* not lint */ @@ -1061,13 +1061,18 @@ evalcommand(union node *cmd, int flgs, s free_traps(); /* Fork off a child process if necessary. */ - if (cmd->ncmd.backgnd || (have_traps() && (flags & EV_EXIT) != 0) - || ((cmdentry.cmdtype == CMDNORMAL || cmdentry.cmdtype == CMDUNKNOWN) - && (flags & EV_EXIT) == 0) - || ((flags & EV_BACKCMD) != 0 && - ((cmdentry.cmdtype != CMDBUILTIN && cmdentry.cmdtype != CMDSPLBLTIN) - || cmdentry.u.bltin == dotcmd - || cmdentry.u.bltin == evalcmd))) { + if (cmd->ncmd.backgnd + || ((cmdentry.cmdtype == CMDNORMAL || cmdentry.cmdtype == CMDUNKNOWN) + && (have_traps() || (flags & EV_EXIT) == 0)) +#ifdef notyet /* EV_BACKCMD is never set currently */ + /* this will need more work if/when it gets used */ + || ((flags & EV_BACKCMD) != 0 + && (cmdentry.cmdtype != CMDBUILTIN + && cmdentry.cmdtype != CMDSPLBLTIN) + || cmdentry.u.bltin == dotcmd + || cmdentry.u.bltin == evalcmd) +#endif + ) { INTOFF; jp = makejob(cmd, 1); mode = cmd->ncmd.backgnd;
CVS commit: src/etc/rc.d
Module Name:src Committed By: sevan Date: Mon Dec 9 00:11:32 UTC 2019 Modified Files: src/etc/rc.d: zfs Log Message: This script just makes sure that the ZFS module loads and unloads, mountall script takes care of mounting filesystems. Don't try to unmount all file systems before unloading the ZFS module, leave that to the operator in preperation or the mountall script to take care of. Module will of course fail to unload then if file systems are still mounted. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/etc/rc.d/zfs Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/etc/rc.d
Module Name:src Committed By: sevan Date: Mon Dec 9 00:11:32 UTC 2019 Modified Files: src/etc/rc.d: zfs Log Message: This script just makes sure that the ZFS module loads and unloads, mountall script takes care of mounting filesystems. Don't try to unmount all file systems before unloading the ZFS module, leave that to the operator in preperation or the mountall script to take care of. Module will of course fail to unload then if file systems are still mounted. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/etc/rc.d/zfs Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/etc/rc.d/zfs diff -u src/etc/rc.d/zfs:1.4 src/etc/rc.d/zfs:1.5 --- src/etc/rc.d/zfs:1.4 Sun Dec 8 00:58:16 2019 +++ src/etc/rc.d/zfs Mon Dec 9 00:11:32 2019 @@ -1,6 +1,6 @@ #!/bin/sh # -# $NetBSD: zfs,v 1.4 2019/12/08 00:58:16 sevan Exp $ +# $NetBSD: zfs,v 1.5 2019/12/09 00:11:32 sevan Exp $ # # PROVIDE: zfs @@ -29,7 +29,6 @@ zfs_start() zfs_stop() { if [ -x /sbin/zfs ]; then - zfs unmount -a modunload zfs fi return 0;
CVS commit: src/libexec/ld.elf_so/arch/powerpc
Module Name:src Committed By: uwe Date: Sun Dec 8 23:49:16 UTC 2019 Modified Files: src/libexec/ld.elf_so/arch/powerpc: ppc_reloc.c Log Message: Use existing lo() and hi() macros. Same object code is generated. To generate a diff of this commit: cvs rdiff -u -r1.59 -r1.60 src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c diff -u src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c:1.59 src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c:1.60 --- src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c:1.59 Sun Dec 8 22:57:51 2019 +++ src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c Sun Dec 8 23:49:16 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ppc_reloc.c,v 1.59 2019/12/08 22:57:51 uwe Exp $ */ +/* $NetBSD: ppc_reloc.c,v 1.60 2019/12/08 23:49:16 uwe Exp $ */ /*- * Copyright (C) 1998 Tsubai Masanari @@ -30,7 +30,7 @@ #include #ifndef lint -__RCSID("$NetBSD: ppc_reloc.c,v 1.59 2019/12/08 22:57:51 uwe Exp $"); +__RCSID("$NetBSD: ppc_reloc.c,v 1.60 2019/12/08 23:49:16 uwe Exp $"); #endif /* not lint */ #include @@ -246,7 +246,7 @@ _rtld_relocate_nonplt_objects(Obj_Entry tmp = (Elf_Addr)(defobj->relocbase + def->st_value + rela->r_addend); - uint16_t tmp16 = (uint16_t)(tmp & 0x); + uint16_t tmp16 = lo(tmp); uint16_t *where16 = (uint16_t *)where; if (*where16 != tmp16) @@ -262,10 +262,10 @@ _rtld_relocate_nonplt_objects(Obj_Entry tmp = (Elf_Addr)(defobj->relocbase + def->st_value + rela->r_addend); - uint16_t tmp16 = (uint16_t)((tmp >> 16) & 0x); + uint16_t tmp16 = hi(tmp); if (ELF_R_TYPE(rela->r_info) == R_TYPE(ADDR16_HA) - && (tmp & 0x8000)) -++tmp16; + && (tmp & __ha16)) +++tmp16; /* adjust to ha(tmp) */ uint16_t *where16 = (uint16_t *)where; if (*where16 != tmp16)
CVS commit: src/libexec/ld.elf_so/arch/powerpc
Module Name:src Committed By: uwe Date: Sun Dec 8 23:49:16 UTC 2019 Modified Files: src/libexec/ld.elf_so/arch/powerpc: ppc_reloc.c Log Message: Use existing lo() and hi() macros. Same object code is generated. To generate a diff of this commit: cvs rdiff -u -r1.59 -r1.60 src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/libexec/ld.elf_so/arch/powerpc
Module Name:src Committed By: uwe Date: Sun Dec 8 22:57:51 UTC 2019 Modified Files: src/libexec/ld.elf_so/arch/powerpc: ppc_reloc.c Log Message: Resolve ADDR16_LO, ADDR16_HI, and ADDR16_HA relocs. Recent GNU ld does not resolve them statically if the reloc is in a writable section and the symbol is not already referenced from text. To generate a diff of this commit: cvs rdiff -u -r1.58 -r1.59 src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c diff -u src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c:1.58 src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c:1.59 --- src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c:1.58 Sun Dec 30 03:23:46 2018 +++ src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c Sun Dec 8 22:57:51 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ppc_reloc.c,v 1.58 2018/12/30 03:23:46 christos Exp $ */ +/* $NetBSD: ppc_reloc.c,v 1.59 2019/12/08 22:57:51 uwe Exp $ */ /*- * Copyright (C) 1998 Tsubai Masanari @@ -30,7 +30,7 @@ #include #ifndef lint -__RCSID("$NetBSD: ppc_reloc.c,v 1.58 2018/12/30 03:23:46 christos Exp $"); +__RCSID("$NetBSD: ppc_reloc.c,v 1.59 2019/12/08 22:57:51 uwe Exp $"); #endif /* not lint */ #include @@ -197,6 +197,9 @@ _rtld_relocate_nonplt_objects(Obj_Entry case R_TYPE(ADDR32): /* S + A */ #endif case R_TYPE(GLOB_DAT): /* S + A */ + case R_TYPE(ADDR16_LO): + case R_TYPE(ADDR16_HI): + case R_TYPE(ADDR16_HA): case R_TYPE(DTPMOD): case R_TYPE(DTPREL): case R_TYPE(TPREL): @@ -234,6 +237,50 @@ _rtld_relocate_nonplt_objects(Obj_Entry obj->path, (void *)*where, defobj->path)); break; + /* + * Recent GNU ld does not resolve ADDR16_{LO,HI,HA} if + * the reloc is in a writable section and the symbol + * is not already referenced from text. + */ + case R_TYPE(ADDR16_LO): { + tmp = (Elf_Addr)(defobj->relocbase + def->st_value + + rela->r_addend); + + uint16_t tmp16 = (uint16_t)(tmp & 0x); + + uint16_t *where16 = (uint16_t *)where; + if (*where16 != tmp16) +*where16 = tmp16; + rdbg(("ADDR16_LO %s in %s --> #lo(%p) = 0x%x in %s", + obj->strtab + obj->symtab[symnum].st_name, + obj->path, (void *)tmp, tmp16, defobj->path)); + break; + } + + case R_TYPE(ADDR16_HI): + case R_TYPE(ADDR16_HA): { + tmp = (Elf_Addr)(defobj->relocbase + def->st_value + + rela->r_addend); + + uint16_t tmp16 = (uint16_t)((tmp >> 16) & 0x); + if (ELF_R_TYPE(rela->r_info) == R_TYPE(ADDR16_HA) + && (tmp & 0x8000)) +++tmp16; + + uint16_t *where16 = (uint16_t *)where; + if (*where16 != tmp16) +*where16 = tmp16; + rdbg(("ADDR16_H%c %s in %s --> #h%c(%p) = 0x%x in %s", + (ELF_R_TYPE(rela->r_info) == R_TYPE(ADDR16_HI) + ? 'I' : 'A'), + obj->strtab + obj->symtab[symnum].st_name, + obj->path, + (ELF_R_TYPE(rela->r_info) == R_TYPE(ADDR16_HI) + ? 'i' : 'a'), + (void *)tmp, tmp16, defobj->path)); + break; + } + case R_TYPE(RELATIVE): /* B + A */ *where = (Elf_Addr)(obj->relocbase + rela->r_addend); rdbg(("RELATIVE in %s --> %p", obj->path,
CVS commit: src/libexec/ld.elf_so/arch/powerpc
Module Name:src Committed By: uwe Date: Sun Dec 8 22:57:51 UTC 2019 Modified Files: src/libexec/ld.elf_so/arch/powerpc: ppc_reloc.c Log Message: Resolve ADDR16_LO, ADDR16_HI, and ADDR16_HA relocs. Recent GNU ld does not resolve them statically if the reloc is in a writable section and the symbol is not already referenced from text. To generate a diff of this commit: cvs rdiff -u -r1.58 -r1.59 src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/libexec/ld.elf_so
Module Name:src Committed By: uwe Date: Sun Dec 8 22:41:42 UTC 2019 Modified Files: src/libexec/ld.elf_so: xprintf.c Log Message: Fix typo in a comment. To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/libexec/ld.elf_so/xprintf.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/libexec/ld.elf_so/xprintf.c diff -u src/libexec/ld.elf_so/xprintf.c:1.21 src/libexec/ld.elf_so/xprintf.c:1.22 --- src/libexec/ld.elf_so/xprintf.c:1.21 Thu Dec 16 22:52:32 2010 +++ src/libexec/ld.elf_so/xprintf.c Sun Dec 8 22:41:42 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: xprintf.c,v 1.21 2010/12/16 22:52:32 joerg Exp $ */ +/* $NetBSD: xprintf.c,v 1.22 2019/12/08 22:41:42 uwe Exp $ */ /* * Copyright 1996 Matt Thomas @@ -29,7 +29,7 @@ #include #ifndef lint -__RCSID("$NetBSD: xprintf.c,v 1.21 2010/12/16 22:52:32 joerg Exp $"); +__RCSID("$NetBSD: xprintf.c,v 1.22 2019/12/08 22:41:42 uwe Exp $"); #endif /* not lint */ #include @@ -49,7 +49,7 @@ __RCSID("$NetBSD: xprintf.c,v 1.21 2010/ * Non-mallocing printf, for use by malloc and rtld itself. * This avoids putting in most of stdio. * - * deals withs formats %x, %p, %s, and %d. + * deals with formats %x, %p, %s, and %d. */ size_t xvsnprintf(char *buf, size_t buflen, const char *fmt, va_list ap)
CVS commit: src/libexec/ld.elf_so
Module Name:src Committed By: uwe Date: Sun Dec 8 22:41:42 UTC 2019 Modified Files: src/libexec/ld.elf_so: xprintf.c Log Message: Fix typo in a comment. To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/libexec/ld.elf_so/xprintf.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/libexec/ld.elf_so
Module Name:src Committed By: uwe Date: Sun Dec 8 22:35:27 UTC 2019 Modified Files: src/libexec/ld.elf_so: rtld.c Log Message: _rtld_relro - fix debug printf format for a size_t argument To generate a diff of this commit: cvs rdiff -u -r1.200 -r1.201 src/libexec/ld.elf_so/rtld.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/libexec/ld.elf_so/rtld.c diff -u src/libexec/ld.elf_so/rtld.c:1.200 src/libexec/ld.elf_so/rtld.c:1.201 --- src/libexec/ld.elf_so/rtld.c:1.200 Fri Oct 4 01:57:53 2019 +++ src/libexec/ld.elf_so/rtld.c Sun Dec 8 22:35:27 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: rtld.c,v 1.200 2019/10/04 01:57:53 christos Exp $ */ +/* $NetBSD: rtld.c,v 1.201 2019/12/08 22:35:27 uwe Exp $ */ /* * Copyright 1996 John D. Polstra. @@ -40,7 +40,7 @@ #include #ifndef lint -__RCSID("$NetBSD: rtld.c,v 1.200 2019/10/04 01:57:53 christos Exp $"); +__RCSID("$NetBSD: rtld.c,v 1.201 2019/12/08 22:35:27 uwe Exp $"); #endif /* not lint */ #include @@ -1776,7 +1776,7 @@ _rtld_relro(const Obj_Entry *obj, bool w if (wantmain != (obj ==_rtld_objmain)) return 0; - dbg(("RELRO %s %p %lx\n", obj->path, obj->relro_page, obj->relro_size)); + dbg(("RELRO %s %p %zx\n", obj->path, obj->relro_page, obj->relro_size)); if (mprotect(obj->relro_page, obj->relro_size, PROT_READ) == -1) { _rtld_error("%s: Cannot enforce relro " "protection: %s", obj->path, xstrerror(errno));
CVS commit: src/libexec/ld.elf_so
Module Name:src Committed By: uwe Date: Sun Dec 8 22:35:27 UTC 2019 Modified Files: src/libexec/ld.elf_so: rtld.c Log Message: _rtld_relro - fix debug printf format for a size_t argument To generate a diff of this commit: cvs rdiff -u -r1.200 -r1.201 src/libexec/ld.elf_so/rtld.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/powerpc/include
Module Name:src Committed By: uwe Date: Sun Dec 8 21:46:03 UTC 2019 Modified Files: src/sys/arch/powerpc/include: elf_machdep.h Log Message: Fix typo in the definition of #ha() in a comment. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/powerpc/include/elf_machdep.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/powerpc/include/elf_machdep.h diff -u src/sys/arch/powerpc/include/elf_machdep.h:1.15 src/sys/arch/powerpc/include/elf_machdep.h:1.16 --- src/sys/arch/powerpc/include/elf_machdep.h:1.15 Mon Nov 6 19:20:54 2017 +++ src/sys/arch/powerpc/include/elf_machdep.h Sun Dec 8 21:46:03 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: elf_machdep.h,v 1.15 2017/11/06 19:20:54 christos Exp $ */ +/* $NetBSD: elf_machdep.h,v 1.16 2019/12/08 21:46:03 uwe Exp $ */ #ifndef _POWERPC_ELF_MACHDEP_H_ #define _POWERPC_ELF_MACHDEP_H_ @@ -71,7 +71,7 @@ // // #lo(x) = (x & 0x) // #hi(x) = ((x >> 16) & 0x) -// #ha(x) = (((x >> 16) + ((x & 0x8) == 0x8000)) & 0x) +// #ha(x) = (((x >> 16) + ((x & 0x8000) == 0x8000)) & 0x) // #higher(x) = ((x >> 32) & 0x) // #highera(x) = //(((x >> 32) + ((x & 0x8000) == 0x8000)) & 0x)
CVS commit: src/sys/arch/powerpc/include
Module Name:src Committed By: uwe Date: Sun Dec 8 21:46:03 UTC 2019 Modified Files: src/sys/arch/powerpc/include: elf_machdep.h Log Message: Fix typo in the definition of #ha() in a comment. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/powerpc/include/elf_machdep.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/macppc/conf
Module Name:src Committed By: scole Date: Sun Dec 8 21:30:00 UTC 2019 Modified Files: src/sys/arch/macppc/conf: INSTALL_601 Log Message: add platinumfb To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/macppc/conf/INSTALL_601 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/macppc/conf/INSTALL_601 diff -u src/sys/arch/macppc/conf/INSTALL_601:1.2 src/sys/arch/macppc/conf/INSTALL_601:1.3 --- src/sys/arch/macppc/conf/INSTALL_601:1.2 Mon Jan 7 01:44:59 2019 +++ src/sys/arch/macppc/conf/INSTALL_601 Sun Dec 8 21:30:00 2019 @@ -1,4 +1,4 @@ -# $NetBSD: INSTALL_601,v 1.2 2019/01/07 01:44:59 scole Exp $ +# $NetBSD: INSTALL_601,v 1.3 2019/12/08 21:30:00 scole Exp $ # # config file for INSTALL # @@ -84,7 +84,7 @@ ahc* at pci? dev ? function ? # Adaptec # untested with OF 1.0.5 # this will take over the console if output-device is set to 'screen' or # 'platinum'. It will provide a NetBSD console, but still won't work with OF -#platinumfb0 at mainbus? +platinumfb0 at mainbus? #gffb* at pci? function ? # NVIDIA GeForce2 MX #machfb* at pci? function ? # ATI Mach 64, Rage, Rage Pro
CVS commit: src/sys/arch/macppc/conf
Module Name:src Committed By: scole Date: Sun Dec 8 21:30:00 UTC 2019 Modified Files: src/sys/arch/macppc/conf: INSTALL_601 Log Message: add platinumfb To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/macppc/conf/INSTALL_601 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch
Module Name:src Committed By: ad Date: Sun Dec 8 20:42:49 UTC 2019 Modified Files: src/sys/arch/x86/include: pmap.h src/sys/arch/x86/x86: pmap.c svs.c src/sys/arch/xen/x86: xen_pmap.c Log Message: Merge x86 pmap changes from yamt-pagecache: - Deal better with the multi-level pmap object locking kludge. - Handle uvm_pagealloc() being able to block. To generate a diff of this commit: cvs rdiff -u -r1.105 -r1.106 src/sys/arch/x86/include/pmap.h cvs rdiff -u -r1.342 -r1.343 src/sys/arch/x86/x86/pmap.c cvs rdiff -u -r1.30 -r1.31 src/sys/arch/x86/x86/svs.c cvs rdiff -u -r1.32 -r1.33 src/sys/arch/xen/x86/xen_pmap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch
Module Name:src Committed By: ad Date: Sun Dec 8 20:42:49 UTC 2019 Modified Files: src/sys/arch/x86/include: pmap.h src/sys/arch/x86/x86: pmap.c svs.c src/sys/arch/xen/x86: xen_pmap.c Log Message: Merge x86 pmap changes from yamt-pagecache: - Deal better with the multi-level pmap object locking kludge. - Handle uvm_pagealloc() being able to block. To generate a diff of this commit: cvs rdiff -u -r1.105 -r1.106 src/sys/arch/x86/include/pmap.h cvs rdiff -u -r1.342 -r1.343 src/sys/arch/x86/x86/pmap.c cvs rdiff -u -r1.30 -r1.31 src/sys/arch/x86/x86/svs.c cvs rdiff -u -r1.32 -r1.33 src/sys/arch/xen/x86/xen_pmap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/x86/include/pmap.h diff -u src/sys/arch/x86/include/pmap.h:1.105 src/sys/arch/x86/include/pmap.h:1.106 --- src/sys/arch/x86/include/pmap.h:1.105 Thu Nov 14 16:23:52 2019 +++ src/sys/arch/x86/include/pmap.h Sun Dec 8 20:42:48 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.105 2019/11/14 16:23:52 maxv Exp $ */ +/* $NetBSD: pmap.h,v 1.106 2019/12/08 20:42:48 ad Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -249,8 +249,7 @@ extern struct pool_cache pmap_pdp_cache; struct pmap { struct uvm_object pm_obj[PTP_LEVELS-1]; /* objects for lvl >= 1) */ -#define pm_lock pm_obj[0].vmobjlock - kmutex_t pm_obj_lock[PTP_LEVELS-1]; /* locks for pm_objs */ + kmutex_t pm_lock; /* locks for pm_objs */ LIST_ENTRY(pmap) pm_list; /* list (lck by pm_list lock) */ pd_entry_t *pm_pdir; /* VA of PD (lck by object lock) */ paddr_t pm_pdirpa[PDP_SIZE]; /* PA of PDs (read-only after create) */ Index: src/sys/arch/x86/x86/pmap.c diff -u src/sys/arch/x86/x86/pmap.c:1.342 src/sys/arch/x86/x86/pmap.c:1.343 --- src/sys/arch/x86/x86/pmap.c:1.342 Tue Dec 3 15:20:59 2019 +++ src/sys/arch/x86/x86/pmap.c Sun Dec 8 20:42:48 2019 @@ -1,7 +1,7 @@ -/* $NetBSD: pmap.c,v 1.342 2019/12/03 15:20:59 riastradh Exp $ */ +/* $NetBSD: pmap.c,v 1.343 2019/12/08 20:42:48 ad Exp $ */ /* - * Copyright (c) 2008, 2010, 2016, 2017 The NetBSD Foundation, Inc. + * Copyright (c) 2008, 2010, 2016, 2017, 2019 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation @@ -130,7 +130,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.342 2019/12/03 15:20:59 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.343 2019/12/08 20:42:48 ad Exp $"); #include "opt_user_ldt.h" #include "opt_lockdebug.h" @@ -261,24 +261,6 @@ struct pcpu_area *pcpuarea __read_mostly static vaddr_t pmap_maxkvaddr; /* - * XXX kludge: dummy locking to make KASSERTs in uvm_page.c comfortable. - * actual locking is done by pm_lock. - */ -#if defined(DIAGNOSTIC) -#define PMAP_SUBOBJ_LOCK(pm, idx) \ - KASSERT(mutex_owned((pm)->pm_lock)); \ - if ((idx) != 0) \ - mutex_enter((pm)->pm_obj[(idx)].vmobjlock) -#define PMAP_SUBOBJ_UNLOCK(pm, idx) \ - KASSERT(mutex_owned((pm)->pm_lock)); \ - if ((idx) != 0) \ - mutex_exit((pm)->pm_obj[(idx)].vmobjlock) -#else /* defined(DIAGNOSTIC) */ -#define PMAP_SUBOBJ_LOCK(pm, idx) /* nothing */ -#define PMAP_SUBOBJ_UNLOCK(pm, idx) /* nothing */ -#endif /* defined(DIAGNOSTIC) */ - -/* * Misc. event counters. */ struct evcnt pmap_iobmp_evcnt; @@ -475,8 +457,8 @@ static void pmap_init_lapic(void); static void pmap_remap_largepages(void); #endif -static struct vm_page *pmap_get_ptp(struct pmap *, vaddr_t, -pd_entry_t * const *, int); +static int pmap_get_ptp(struct pmap *, vaddr_t, +pd_entry_t * const *, int, struct vm_page **); static struct vm_page *pmap_find_ptp(struct pmap *, vaddr_t, paddr_t, int); static void pmap_freepage(struct pmap *, struct vm_page *, int); static void pmap_free_ptp(struct pmap *, struct vm_page *, vaddr_t, @@ -502,7 +484,7 @@ pmap_stats_update(struct pmap *pmap, int atomic_add_long(>pm_stats.resident_count, resid_diff); atomic_add_long(>pm_stats.wired_count, wired_diff); } else { - KASSERT(mutex_owned(pmap->pm_lock)); + KASSERT(mutex_owned(>pm_lock)); pmap->pm_stats.resident_count += resid_diff; pmap->pm_stats.wired_count += wired_diff; } @@ -640,13 +622,13 @@ pmap_map_ptes(struct pmap *pmap, struct l = curlwp; retry: - mutex_enter(pmap->pm_lock); + mutex_enter(>pm_lock); ci = curcpu(); curpmap = ci->ci_pmap; if (vm_map_pmap(>l_proc->p_vmspace->vm_map) == pmap) { /* Our own pmap so just load it: easy. */ if (__predict_false(ci->ci_want_pmapload)) { - mutex_exit(pmap->pm_lock); + mutex_exit(>pm_lock); pmap_load(); goto retry; } @@ -670,6 +652,7 @@ pmap_map_ptes(struct pmap *pmap, struct kcpuset_atomic_clear(curpmap->pm_kernel_cpus, cid); ci->ci_pmap = pmap; ci->ci_tlbstate = TLBSTATE_VALID; + ci->ci_want_pmapload = 0; kcpuset_atomic_set(pmap->pm_cpus, cid); kcpuset_atomic_set(pmap->pm_kernel_cpus, cid);
CVS commit: src/sys/kern
Module Name:src Committed By: ad Date: Sun Dec 8 20:35:23 UTC 2019 Modified Files: src/sys/kern: vfs_bio.c Log Message: For safety, cv_broadcast(>b_busy) in more places where the buffer is changing identity or moving from one vnode list to another. To generate a diff of this commit: cvs rdiff -u -r1.281 -r1.282 src/sys/kern/vfs_bio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/vfs_bio.c diff -u src/sys/kern/vfs_bio.c:1.281 src/sys/kern/vfs_bio.c:1.282 --- src/sys/kern/vfs_bio.c:1.281 Sun Dec 8 19:49:25 2019 +++ src/sys/kern/vfs_bio.c Sun Dec 8 20:35:23 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_bio.c,v 1.281 2019/12/08 19:49:25 ad Exp $ */ +/* $NetBSD: vfs_bio.c,v 1.282 2019/12/08 20:35:23 ad Exp $ */ /*- * Copyright (c) 2007, 2008, 2009, 2019 The NetBSD Foundation, Inc. @@ -123,7 +123,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: vfs_bio.c,v 1.281 2019/12/08 19:49:25 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_bio.c,v 1.282 2019/12/08 20:35:23 ad Exp $"); #ifdef _KERNEL_OPT #include "opt_bufcache.h" @@ -896,6 +896,8 @@ bwrite(buf_t *bp) mutex_enter(bp->b_objlock); CLR(bp->b_oflags, BO_DONE | BO_DELWRI); reassignbuf(bp, bp->b_vp); + /* Wake anyone trying to busy the buffer via vnode's lists. */ + cv_broadcast(>b_busy); mutex_exit(_lock); } else { curlwp->l_ru.ru_oublock++; @@ -988,6 +990,8 @@ bdwrite(buf_t *bp) SET(bp->b_oflags, BO_DELWRI); curlwp->l_ru.ru_oublock++; reassignbuf(bp, bp->b_vp); + /* Wake anyone trying to busy the buffer via vnode's lists. */ + cv_broadcast(>b_busy); mutex_exit(_lock); } else { mutex_enter(bp->b_objlock); @@ -1411,6 +1415,9 @@ getnewbuf(int slpflag, int slptimeo, int /* Buffer is no longer on free lists. */ SET(bp->b_cflags, BC_BUSY); + + /* Wake anyone trying to lock the old identity. */ + cv_broadcast(>b_busy); } else { /* * XXX: !from_bufq should be removed.
CVS commit: src/sys/kern
Module Name:src Committed By: ad Date: Sun Dec 8 20:35:23 UTC 2019 Modified Files: src/sys/kern: vfs_bio.c Log Message: For safety, cv_broadcast(>b_busy) in more places where the buffer is changing identity or moving from one vnode list to another. To generate a diff of this commit: cvs rdiff -u -r1.281 -r1.282 src/sys/kern/vfs_bio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch
Module Name:src Committed By: ad Date: Sun Dec 8 20:00:56 UTC 2019 Modified Files: src/sys/arch/amd64/amd64: lock_stubs.S src/sys/arch/i386/i386: lock_stubs.S Log Message: After lots of testing I'm not convinced of the benefit to the tweak I made to rw_enter(), so undo it to return to baseline. To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 src/sys/arch/amd64/amd64/lock_stubs.S cvs rdiff -u -r1.31 -r1.32 src/sys/arch/i386/i386/lock_stubs.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch
Module Name:src Committed By: ad Date: Sun Dec 8 20:00:56 UTC 2019 Modified Files: src/sys/arch/amd64/amd64: lock_stubs.S src/sys/arch/i386/i386: lock_stubs.S Log Message: After lots of testing I'm not convinced of the benefit to the tweak I made to rw_enter(), so undo it to return to baseline. To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 src/sys/arch/amd64/amd64/lock_stubs.S cvs rdiff -u -r1.31 -r1.32 src/sys/arch/i386/i386/lock_stubs.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/amd64/amd64/lock_stubs.S diff -u src/sys/arch/amd64/amd64/lock_stubs.S:1.34 src/sys/arch/amd64/amd64/lock_stubs.S:1.35 --- src/sys/arch/amd64/amd64/lock_stubs.S:1.34 Sat Nov 23 16:36:38 2019 +++ src/sys/arch/amd64/amd64/lock_stubs.S Sun Dec 8 20:00:56 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: lock_stubs.S,v 1.34 2019/11/23 16:36:38 ad Exp $ */ +/* $NetBSD: lock_stubs.S,v 1.35 2019/12/08 20:00:56 ad Exp $ */ /* * Copyright (c) 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -191,15 +191,13 @@ END(mutex_spin_exit) * Acquire one hold on a RW lock. */ ENTRY(rw_enter) - xorl %eax, %eax - testl %esi, %esi /* RW_READER = 0 */ + cmpl $RW_READER, %esi jne 2f /* - * Reader, and no existing readers on the lock: this is a most - * common case. Instead of reading from the lock word, use cmpxchg - * and get the cache line into the EXCLUSIVE state to begin with. + * Reader: this is the most common case. */ + movq (%rdi), %rax 0: testb $(RW_WRITE_LOCKED|RW_WRITE_WANTED), %al jnz 3f @@ -215,6 +213,7 @@ ENTRY(rw_enter) * Writer: if the compare-and-set fails, don't bother retrying. */ 2: movq CPUVAR(CURLWP), %rcx + xorq %rax, %rax orq $RW_WRITE_LOCKED, %rcx LOCK cmpxchgq %rcx, (%rdi) @@ -269,15 +268,13 @@ END(rw_exit) * Try to acquire one hold on a RW lock. */ ENTRY(rw_tryenter) - xorl %eax, %eax - testl %esi, %esi /* RW_READER = 0 */ + cmpl $RW_READER, %esi jne 2f /* - * Reader, and no existing readers on the lock: this is a most - * common case. Instead of reading from the lock word, use cmpxchg - * and get the cache line into the EXCLUSIVE state to begin with. + * Reader: this is the most common case. */ + movq (%rdi), %rax 0: testb $(RW_WRITE_LOCKED|RW_WRITE_WANTED), %al jnz 4f @@ -294,6 +291,7 @@ ENTRY(rw_tryenter) * Writer: if the compare-and-set fails, don't bother retrying. */ 2: movq CPUVAR(CURLWP), %rcx + xorq %rax, %rax orq $RW_WRITE_LOCKED, %rcx LOCK cmpxchgq %rcx, (%rdi) Index: src/sys/arch/i386/i386/lock_stubs.S diff -u src/sys/arch/i386/i386/lock_stubs.S:1.31 src/sys/arch/i386/i386/lock_stubs.S:1.32 --- src/sys/arch/i386/i386/lock_stubs.S:1.31 Sat Nov 23 16:36:38 2019 +++ src/sys/arch/i386/i386/lock_stubs.S Sun Dec 8 20:00:56 2019 @@ -1,7 +1,7 @@ -/* $NetBSD: lock_stubs.S,v 1.31 2019/11/23 16:36:38 ad Exp $ */ +/* $NetBSD: lock_stubs.S,v 1.32 2019/12/08 20:00:56 ad Exp $ */ /*- - * Copyright (c) 2006, 2007, 2008, 2009, 2019 The NetBSD Foundation, Inc. + * Copyright (c) 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation @@ -35,7 +35,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: lock_stubs.S,v 1.31 2019/11/23 16:36:38 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lock_stubs.S,v 1.32 2019/12/08 20:00:56 ad Exp $"); #include "opt_lockdebug.h" @@ -104,15 +104,13 @@ END(mutex_exit) */ ENTRY(rw_enter) movl 4(%esp), %edx - xorl %eax, %eax cmpl $RW_READER, 8(%esp) jne 2f /* - * Reader, and no existing readers on the lock: this is a most - * common case. Instead of reading from the lock word, use cmpxchg - * and get the cache line into the EXCLUSIVE state to begin with. + * Reader */ + movl (%edx), %eax 0: testb $(RW_WRITE_LOCKED|RW_WRITE_WANTED), %al jnz 3f @@ -127,7 +125,7 @@ ENTRY(rw_enter) /* * Writer */ -2: +2: xorl %eax, %eax movl %fs:CPU_INFO_CURLWP(%eax), %ecx orl $RW_WRITE_LOCKED, %ecx LOCK(3) @@ -188,15 +186,13 @@ END(rw_exit) */ ENTRY(rw_tryenter) movl 4(%esp), %edx - xorl %eax, %eax cmpl $RW_READER, 8(%esp) jne 2f /* - * Reader, and no existing readers on the lock: this is a most - * common case. Instead of reading from the lock word, use cmpxchg - * and get the cache line into the EXCLUSIVE state to begin with. + * Reader */ + movl (%edx), %eax 0: testb $(RW_WRITE_LOCKED|RW_WRITE_WANTED), %al jnz 4f @@ -213,6 +209,7 @@ ENTRY(rw_tryenter) * Writer */ 2: + xorl %eax, %eax movl %fs:CPU_INFO_CURLWP(%eax), %ecx orl $RW_WRITE_LOCKED, %ecx LOCK(13)
CVS commit: src/sys
Module Name:src Committed By: ad Date: Sun Dec 8 19:52:37 UTC 2019 Modified Files: src/sys/dev/qbus: ts.c src/sys/kern: kern_physio.c src/sys/ufs/lfs: lfs_segment.c Log Message: Revert previous. No performance gain worth the potential headaches with buffers in these contexts. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/dev/qbus/ts.c cvs rdiff -u -r1.96 -r1.97 src/sys/kern/kern_physio.c cvs rdiff -u -r1.279 -r1.280 src/sys/ufs/lfs/lfs_segment.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/qbus/ts.c diff -u src/sys/dev/qbus/ts.c:1.32 src/sys/dev/qbus/ts.c:1.33 --- src/sys/dev/qbus/ts.c:1.32 Sun Dec 8 19:23:51 2019 +++ src/sys/dev/qbus/ts.c Sun Dec 8 19:52:37 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ts.c,v 1.32 2019/12/08 19:23:51 ad Exp $ */ +/* $NetBSD: ts.c,v 1.33 2019/12/08 19:52:37 ad Exp $ */ /*- * Copyright (c) 1991 The Regents of the University of California. @@ -66,7 +66,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ts.c,v 1.32 2019/12/08 19:23:51 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ts.c,v 1.33 2019/12/08 19:52:37 ad Exp $"); #undef TSDEBUG @@ -390,7 +390,7 @@ tscommand(struct ts_softc *sc, dev_t dev return; biowait(bp); mutex_enter(_lock); - cv_signal(>b_busy); + cv_broadcast(>b_busy); bp->b_cflags = 0; mutex_exit(_lock); } Index: src/sys/kern/kern_physio.c diff -u src/sys/kern/kern_physio.c:1.96 src/sys/kern/kern_physio.c:1.97 --- src/sys/kern/kern_physio.c:1.96 Sun Dec 8 19:23:51 2019 +++ src/sys/kern/kern_physio.c Sun Dec 8 19:52:37 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_physio.c,v 1.96 2019/12/08 19:23:51 ad Exp $ */ +/* $NetBSD: kern_physio.c,v 1.97 2019/12/08 19:52:37 ad Exp $ */ /*- * Copyright (c) 1982, 1986, 1990, 1993 @@ -71,7 +71,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: kern_physio.c,v 1.96 2019/12/08 19:23:51 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_physio.c,v 1.97 2019/12/08 19:52:37 ad Exp $"); #include #include @@ -432,7 +432,7 @@ done_locked: obp->b_cflags &= ~(BC_BUSY | BC_WANTED); obp->b_flags &= ~(B_PHYS | B_RAW); obp->b_iodone = NULL; - cv_signal(>b_busy); + cv_broadcast(>b_busy); mutex_exit(_lock); } Index: src/sys/ufs/lfs/lfs_segment.c diff -u src/sys/ufs/lfs/lfs_segment.c:1.279 src/sys/ufs/lfs/lfs_segment.c:1.280 --- src/sys/ufs/lfs/lfs_segment.c:1.279 Sun Dec 8 19:24:26 2019 +++ src/sys/ufs/lfs/lfs_segment.c Sun Dec 8 19:52:37 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_segment.c,v 1.279 2019/12/08 19:24:26 ad Exp $ */ +/* $NetBSD: lfs_segment.c,v 1.280 2019/12/08 19:52:37 ad Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.279 2019/12/08 19:24:26 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.280 2019/12/08 19:52:37 ad Exp $"); #ifdef DEBUG # define vndebug(vp, str) do { \ @@ -2197,7 +2197,7 @@ lfs_writeseg(struct lfs *fs, struct segm if (unbusybp != NULL) { unbusybp->b_cflags &= ~BC_BUSY; if (unbusybp->b_cflags & BC_WANTED) -cv_signal(>b_busy); +cv_broadcast(>b_busy); } } mutex_exit(_lock);
CVS commit: src/sys
Module Name:src Committed By: ad Date: Sun Dec 8 19:52:37 UTC 2019 Modified Files: src/sys/dev/qbus: ts.c src/sys/kern: kern_physio.c src/sys/ufs/lfs: lfs_segment.c Log Message: Revert previous. No performance gain worth the potential headaches with buffers in these contexts. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/dev/qbus/ts.c cvs rdiff -u -r1.96 -r1.97 src/sys/kern/kern_physio.c cvs rdiff -u -r1.279 -r1.280 src/sys/ufs/lfs/lfs_segment.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/kern
Module Name:src Committed By: ad Date: Sun Dec 8 19:49:25 UTC 2019 Modified Files: src/sys/kern: vfs_bio.c Log Message: Adjustment to previous: if we're going to toss the buffer, then wake everybody. To generate a diff of this commit: cvs rdiff -u -r1.280 -r1.281 src/sys/kern/vfs_bio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/vfs_bio.c diff -u src/sys/kern/vfs_bio.c:1.280 src/sys/kern/vfs_bio.c:1.281 --- src/sys/kern/vfs_bio.c:1.280 Sun Dec 8 19:26:05 2019 +++ src/sys/kern/vfs_bio.c Sun Dec 8 19:49:25 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_bio.c,v 1.280 2019/12/08 19:26:05 ad Exp $ */ +/* $NetBSD: vfs_bio.c,v 1.281 2019/12/08 19:49:25 ad Exp $ */ /*- * Copyright (c) 2007, 2008, 2009, 2019 The NetBSD Foundation, Inc. @@ -123,7 +123,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: vfs_bio.c,v 1.280 2019/12/08 19:26:05 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_bio.c,v 1.281 2019/12/08 19:49:25 ad Exp $"); #ifdef _KERNEL_OPT #include "opt_bufcache.h" @@ -1107,7 +1107,8 @@ brelsel(buf_t *bp, int set) KASSERT(bp->b_objlock == _lock); mutex_exit(bp->b_objlock); } - + /* We want to dispose of the buffer, so wake everybody. */ + cv_broadcast(>b_busy); if (bp->b_bufsize <= 0) /* no data */ goto already_queued;
CVS commit: src/sys/kern
Module Name:src Committed By: ad Date: Sun Dec 8 19:49:25 UTC 2019 Modified Files: src/sys/kern: vfs_bio.c Log Message: Adjustment to previous: if we're going to toss the buffer, then wake everybody. To generate a diff of this commit: cvs rdiff -u -r1.280 -r1.281 src/sys/kern/vfs_bio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/kern
Module Name:src Committed By: ad Date: Sun Dec 8 19:26:05 UTC 2019 Modified Files: src/sys/kern: vfs_bio.c Log Message: - Avoid thundering herd: cv_broadcast(>b_busy) -> cv_signal(>b_busy) - Sprinkle __cacheline_aligned. To generate a diff of this commit: cvs rdiff -u -r1.279 -r1.280 src/sys/kern/vfs_bio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/vfs_bio.c diff -u src/sys/kern/vfs_bio.c:1.279 src/sys/kern/vfs_bio.c:1.280 --- src/sys/kern/vfs_bio.c:1.279 Mon Aug 26 10:24:39 2019 +++ src/sys/kern/vfs_bio.c Sun Dec 8 19:26:05 2019 @@ -1,7 +1,7 @@ -/* $NetBSD: vfs_bio.c,v 1.279 2019/08/26 10:24:39 msaitoh Exp $ */ +/* $NetBSD: vfs_bio.c,v 1.280 2019/12/08 19:26:05 ad Exp $ */ /*- - * Copyright (c) 2007, 2008, 2009 The NetBSD Foundation, Inc. + * Copyright (c) 2007, 2008, 2009, 2019 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation @@ -123,7 +123,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: vfs_bio.c,v 1.279 2019/08/26 10:24:39 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_bio.c,v 1.280 2019/12/08 19:26:05 ad Exp $"); #ifdef _KERNEL_OPT #include "opt_bufcache.h" @@ -184,7 +184,7 @@ struct bqueue { uint64_t bq_bytes; buf_t *bq_marker; }; -static struct bqueue bufqueues[BQUEUES]; +static struct bqueue bufqueues[BQUEUES] __cacheline_aligned; /* Function prototypes */ static void buf_setwm(void); @@ -237,8 +237,8 @@ static kcondvar_t needbuffer_cv; /* * Buffer queue lock. */ -kmutex_t bufcache_lock; -kmutex_t buffer_lock; +kmutex_t bufcache_lock __cacheline_aligned; +kmutex_t buffer_lock __cacheline_aligned; /* Software ISR for completed transfers. */ static void *biodone_sih; @@ -1140,7 +1140,7 @@ already_queued: /* Unlock the buffer. */ CLR(bp->b_cflags, BC_AGE|BC_BUSY|BC_NOCACHE); CLR(bp->b_flags, B_ASYNC); - cv_broadcast(>b_busy); + cv_signal(>b_busy); if (bp->b_bufsize <= 0) brele(bp);
CVS commit: src/sys/kern
Module Name:src Committed By: ad Date: Sun Dec 8 19:26:05 UTC 2019 Modified Files: src/sys/kern: vfs_bio.c Log Message: - Avoid thundering herd: cv_broadcast(>b_busy) -> cv_signal(>b_busy) - Sprinkle __cacheline_aligned. To generate a diff of this commit: cvs rdiff -u -r1.279 -r1.280 src/sys/kern/vfs_bio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/ufs/lfs
Module Name:src Committed By: ad Date: Sun Dec 8 19:24:26 UTC 2019 Modified Files: src/sys/ufs/lfs: lfs_segment.c Log Message: Avoid thundering herd: cv_broadcast(>b_busy) -> cv_signal(>b_busy) To generate a diff of this commit: cvs rdiff -u -r1.278 -r1.279 src/sys/ufs/lfs/lfs_segment.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/ufs/lfs
Module Name:src Committed By: ad Date: Sun Dec 8 19:24:26 UTC 2019 Modified Files: src/sys/ufs/lfs: lfs_segment.c Log Message: Avoid thundering herd: cv_broadcast(>b_busy) -> cv_signal(>b_busy) To generate a diff of this commit: cvs rdiff -u -r1.278 -r1.279 src/sys/ufs/lfs/lfs_segment.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/ufs/lfs/lfs_segment.c diff -u src/sys/ufs/lfs/lfs_segment.c:1.278 src/sys/ufs/lfs/lfs_segment.c:1.279 --- src/sys/ufs/lfs/lfs_segment.c:1.278 Mon Sep 3 16:29:37 2018 +++ src/sys/ufs/lfs/lfs_segment.c Sun Dec 8 19:24:26 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_segment.c,v 1.278 2018/09/03 16:29:37 riastradh Exp $ */ +/* $NetBSD: lfs_segment.c,v 1.279 2019/12/08 19:24:26 ad Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.278 2018/09/03 16:29:37 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.279 2019/12/08 19:24:26 ad Exp $"); #ifdef DEBUG # define vndebug(vp, str) do { \ @@ -2197,7 +2197,7 @@ lfs_writeseg(struct lfs *fs, struct segm if (unbusybp != NULL) { unbusybp->b_cflags &= ~BC_BUSY; if (unbusybp->b_cflags & BC_WANTED) -cv_broadcast(>b_busy); +cv_signal(>b_busy); } } mutex_exit(_lock);
CVS commit: src/sys
Module Name:src Committed By: ad Date: Sun Dec 8 19:23:51 UTC 2019 Modified Files: src/sys/dev/qbus: ts.c src/sys/kern: kern_physio.c Log Message: Avoid thundering herd: cv_broadcast(>b_busy) -> cv_signal(>b_busy) To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/dev/qbus/ts.c cvs rdiff -u -r1.95 -r1.96 src/sys/kern/kern_physio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/qbus/ts.c diff -u src/sys/dev/qbus/ts.c:1.31 src/sys/dev/qbus/ts.c:1.32 --- src/sys/dev/qbus/ts.c:1.31 Fri Jul 25 08:10:38 2014 +++ src/sys/dev/qbus/ts.c Sun Dec 8 19:23:51 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ts.c,v 1.31 2014/07/25 08:10:38 dholland Exp $ */ +/* $NetBSD: ts.c,v 1.32 2019/12/08 19:23:51 ad Exp $ */ /*- * Copyright (c) 1991 The Regents of the University of California. @@ -66,7 +66,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ts.c,v 1.31 2014/07/25 08:10:38 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ts.c,v 1.32 2019/12/08 19:23:51 ad Exp $"); #undef TSDEBUG @@ -390,7 +390,7 @@ tscommand(struct ts_softc *sc, dev_t dev return; biowait(bp); mutex_enter(_lock); - cv_broadcast(>b_busy); + cv_signal(>b_busy); bp->b_cflags = 0; mutex_exit(_lock); } Index: src/sys/kern/kern_physio.c diff -u src/sys/kern/kern_physio.c:1.95 src/sys/kern/kern_physio.c:1.96 --- src/sys/kern/kern_physio.c:1.95 Thu Apr 4 12:26:45 2019 +++ src/sys/kern/kern_physio.c Sun Dec 8 19:23:51 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_physio.c,v 1.95 2019/04/04 12:26:45 mlelstv Exp $ */ +/* $NetBSD: kern_physio.c,v 1.96 2019/12/08 19:23:51 ad Exp $ */ /*- * Copyright (c) 1982, 1986, 1990, 1993 @@ -71,7 +71,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: kern_physio.c,v 1.95 2019/04/04 12:26:45 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_physio.c,v 1.96 2019/12/08 19:23:51 ad Exp $"); #include #include @@ -432,7 +432,7 @@ done_locked: obp->b_cflags &= ~(BC_BUSY | BC_WANTED); obp->b_flags &= ~(B_PHYS | B_RAW); obp->b_iodone = NULL; - cv_broadcast(>b_busy); + cv_signal(>b_busy); mutex_exit(_lock); }
CVS commit: src/sys
Module Name:src Committed By: ad Date: Sun Dec 8 19:23:51 UTC 2019 Modified Files: src/sys/dev/qbus: ts.c src/sys/kern: kern_physio.c Log Message: Avoid thundering herd: cv_broadcast(>b_busy) -> cv_signal(>b_busy) To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/dev/qbus/ts.c cvs rdiff -u -r1.95 -r1.96 src/sys/kern/kern_physio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/sunxi
Module Name:src Committed By: jmcneill Date: Sun Dec 8 18:13:24 UTC 2019 Modified Files: src/sys/arch/arm/sunxi: sun50i_a64_ccu.c Log Message: Add SUNXI_CCU_NM_ROUND_DOWN to CE clock, fix pll parents to use 2X outputs To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/sunxi/sun50i_a64_ccu.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/sunxi/sun50i_a64_ccu.c diff -u src/sys/arch/arm/sunxi/sun50i_a64_ccu.c:1.21 src/sys/arch/arm/sunxi/sun50i_a64_ccu.c:1.22 --- src/sys/arch/arm/sunxi/sun50i_a64_ccu.c:1.21 Sun Dec 8 00:12:20 2019 +++ src/sys/arch/arm/sunxi/sun50i_a64_ccu.c Sun Dec 8 18:13:24 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: sun50i_a64_ccu.c,v 1.21 2019/12/08 00:12:20 jmcneill Exp $ */ +/* $NetBSD: sun50i_a64_ccu.c,v 1.22 2019/12/08 18:13:24 jmcneill Exp $ */ /*- * Copyright (c) 2017 Jared McNeill @@ -28,7 +28,7 @@ #include -__KERNEL_RCSID(1, "$NetBSD: sun50i_a64_ccu.c,v 1.21 2019/12/08 00:12:20 jmcneill Exp $"); +__KERNEL_RCSID(1, "$NetBSD: sun50i_a64_ccu.c,v 1.22 2019/12/08 18:13:24 jmcneill Exp $"); #include #include @@ -157,7 +157,7 @@ static const char *ahb1_parents[] = { "l static const char *ahb2_parents[] = { "ahb1", "pll_periph0" }; static const char *apb1_parents[] = { "ahb1" }; static const char *apb2_parents[] = { "losc", "hosc", "pll_periph0" }; -static const char *ce_parents[] = { "hosc", "pll_periph0", "pll_periph1", NULL }; +static const char *ce_parents[] = { "hosc", "pll_periph0_2x", "pll_periph1_2x" }; static const char *mmc_parents[] = { "hosc", "pll_periph0_2x", "pll_periph1_2x" }; static const char *ths_parents[] = { "hosc", NULL, NULL, NULL }; static const char *de_parents[] = { "pll_periph0_2x", "pll_de" }; @@ -405,7 +405,7 @@ static struct sunxi_ccu_clk sun50i_a64_c __BITS(3,0), /* m */ __BITS(25,24), /* sel */ __BIT(31), /* enable */ - SUNXI_CCU_NM_POWER_OF_TWO), + SUNXI_CCU_NM_POWER_OF_TWO|SUNXI_CCU_NM_ROUND_DOWN), SUNXI_CCU_DIV_GATE(A64_CLK_THS, "ths", ths_parents, THS_CLK_REG, /* reg */
CVS commit: src/sys/arch/arm/sunxi
Module Name:src Committed By: jmcneill Date: Sun Dec 8 18:13:24 UTC 2019 Modified Files: src/sys/arch/arm/sunxi: sun50i_a64_ccu.c Log Message: Add SUNXI_CCU_NM_ROUND_DOWN to CE clock, fix pll parents to use 2X outputs To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/sunxi/sun50i_a64_ccu.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/tests/lib/libutil
Module Name:src Committed By: christos Date: Sun Dec 8 17:37:16 UTC 2019 Modified Files: src/tests/lib/libutil: t_snprintb.c Log Message: Adjust tests for 0 hex values printing 0 instead of 0x0 To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/tests/lib/libutil/t_snprintb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/tests/lib/libutil/t_snprintb.c diff -u src/tests/lib/libutil/t_snprintb.c:1.7 src/tests/lib/libutil/t_snprintb.c:1.8 --- src/tests/lib/libutil/t_snprintb.c:1.7 Fri Dec 6 14:28:11 2019 +++ src/tests/lib/libutil/t_snprintb.c Sun Dec 8 12:37:16 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: t_snprintb.c,v 1.7 2019/12/06 19:28:11 christos Exp $ */ +/* $NetBSD: t_snprintb.c,v 1.8 2019/12/08 17:37:16 christos Exp $ */ /* * Copyright (c) 2002, 2004, 2008, 2010 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2008, 2010\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_snprintb.c,v 1.7 2019/12/06 19:28:11 christos Exp $"); +__RCSID("$NetBSD: t_snprintb.c,v 1.8 2019/12/08 17:37:16 christos Exp $"); #include #include @@ -39,16 +39,17 @@ __RCSID("$NetBSD: t_snprintb.c,v 1.7 201 #include static void -h_snprintb(const char *fmt, uint64_t val, const char *res) +h_snprintb(const char *fmt, uint64_t val, const char *expected) { - char buf[1024]; - int len, slen; + char actual[1024]; + int len, rlen; - len = snprintb(buf, sizeof(buf), fmt, val); - slen = (int) strlen(res); + len = snprintb(actual, sizeof(actual), fmt, val); + rlen = (int)strlen(actual); - ATF_REQUIRE_STREQ(res, buf); - ATF_REQUIRE_EQ(len, slen); + ATF_REQUIRE_STREQ_MSG(expected, actual, "format=%s val=%" PRIu64, + fmt, val); + ATF_REQUIRE_EQ_MSG(rlen, len, "expected=%d actual=%d", rlen, len); } ATF_TC(snprintb); @@ -59,7 +60,7 @@ ATF_TC_HEAD(snprintb, tc) ATF_TC_BODY(snprintb, tc) { h_snprintb("\10\2BITTWO\1BITONE", 3, "03"); - h_snprintb("\177\20b\0A\0\0", 0, "0x0"); + h_snprintb("\177\20b\0A\0\0", 0, "0"); h_snprintb("\177\20b\05NOTBOOT\0b\06FPP\0b\013SDVMA\0b\015VIDEO\0" "b\020LORES\0b\021FPA\0b\022DIAG\0b\016CACHE\0" @@ -101,15 +102,27 @@ ATF_TC_BODY(snprintb, tc) static void h_snprintb_m(const char *fmt, uint64_t val, int line_max, const char *res, - int res_len) + int rlen) { char buf[1024]; int len; len = snprintb_m(buf, sizeof(buf), fmt, val, line_max); - ATF_REQUIRE_EQ(len, res_len); - ATF_REQUIRE_EQ(0, memcmp(res, buf, res_len + 1)); + const char *expected = res; + char *actual = buf; + int l = 0; + for (size_t i = 0; l < rlen; i++) { + l = (int)strlen(actual); + if (l == 0) + break; + ATF_REQUIRE_STREQ_MSG(expected, actual, + "%zu: fmt=%s val=%" PRIu64, i, fmt, val); + actual += l; + expected += l; + } + + ATF_REQUIRE_EQ_MSG(rlen, len, "expected=%d actual=%d", rlen, len); } ATF_TC(snprintb_m); @@ -124,19 +137,19 @@ ATF_TC_BODY(snprintb_m, tc) "b\x1fMSB\0\0", 0x800f0701, 33, - "0x800f0701\0" + "0x800f0701\0" "0x800f0701\0\0", - 62); + 60); h_snprintb_m("\177\020b\0LSB\0b\1_BITONE\0f\4\4NIBBLE2\0" "f\x10\4BURST\0=\4FOUR\0=\xfSIXTEEN\0" "b\x1fMSB\0\0", 0x800f0701, 32, - "0x800f0701\0" + "0x800f0701\0" "0x800f0701\0" "0x800f0701\0\0", - 74); + 72); } ATF_TP_ADD_TCS(tp)
CVS commit: src/tests/lib/libutil
Module Name:src Committed By: christos Date: Sun Dec 8 17:37:16 UTC 2019 Modified Files: src/tests/lib/libutil: t_snprintb.c Log Message: Adjust tests for 0 hex values printing 0 instead of 0x0 To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/tests/lib/libutil/t_snprintb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src
Module Name:src Committed By: martin Date: Sun Dec 8 15:54:35 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: arc.c src/external/cddl/osnet/dist/uts/common/os [netbsd-9]: fm.c src/share/mk [netbsd-9]: bsd.own.mk Log Message: Pull up following revision(s) (requested by jmcneill in ticket #515): external/cddl/osnet/dist/uts/common/fs/zfs/arc.c: revision 1.15 share/mk/bsd.own.mk: revision 1.1167 external/cddl/osnet/dist/uts/common/os/fm.c: revision 1.2 Provide a default ptob() implementation Need sys/atomic.h on NetBSD Enable ZFS support on aarch64 To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.14.2.1 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c cvs rdiff -u -r1.1 -r1.1.2.1 src/external/cddl/osnet/dist/uts/common/os/fm.c cvs rdiff -u -r1.1149.2.1 -r1.1149.2.2 src/share/mk/bsd.own.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.14 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.14.2.1 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.14 Sun May 26 10:21:00 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c Sun Dec 8 15:54:34 2019 @@ -280,6 +280,9 @@ int arc_procfd; #ifndef btop #define btop(x) ((x) / PAGE_SIZE) #endif +#ifndef ptob +#define ptob(x) ((x) * PAGE_SIZE) +#endif //#define needfree (uvmexp.free < uvmexp.freetarg ? uvmexp.freetarg : 0) #define buf_init arc_buf_init #define freemem uvmexp.free Index: src/external/cddl/osnet/dist/uts/common/os/fm.c diff -u src/external/cddl/osnet/dist/uts/common/os/fm.c:1.1 src/external/cddl/osnet/dist/uts/common/os/fm.c:1.1.2.1 --- src/external/cddl/osnet/dist/uts/common/os/fm.c:1.1 Mon Jun 24 08:27:20 2019 +++ src/external/cddl/osnet/dist/uts/common/os/fm.c Sun Dec 8 15:54:34 2019 @@ -65,6 +65,7 @@ #include #include #ifdef __NetBSD__ +#include #include #else #include Index: src/share/mk/bsd.own.mk diff -u src/share/mk/bsd.own.mk:1.1149.2.1 src/share/mk/bsd.own.mk:1.1149.2.2 --- src/share/mk/bsd.own.mk:1.1149.2.1 Sun Sep 1 10:40:00 2019 +++ src/share/mk/bsd.own.mk Sun Dec 8 15:54:34 2019 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.own.mk,v 1.1149.2.1 2019/09/01 10:40:00 martin Exp $ +# $NetBSD: bsd.own.mk,v 1.1149.2.2 2019/12/08 15:54:34 martin Exp $ # This needs to be before bsd.init.mk .if defined(BSD_MK_COMPAT_FILE) @@ -998,9 +998,9 @@ SOFTFLOAT_BITS= 32 .endif # -# We want to build zfs only for amd64 by default for now. +# We want to build zfs only for amd64 and aarch64 by default for now. # -.if ${MACHINE} == "amd64" +.if ${MACHINE} == "amd64" || ${MACHINE_ARCH} == "aarch64" MKZFS?= yes .endif
CVS commit: [netbsd-9] src
Module Name:src Committed By: martin Date: Sun Dec 8 15:54:35 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: arc.c src/external/cddl/osnet/dist/uts/common/os [netbsd-9]: fm.c src/share/mk [netbsd-9]: bsd.own.mk Log Message: Pull up following revision(s) (requested by jmcneill in ticket #515): external/cddl/osnet/dist/uts/common/fs/zfs/arc.c: revision 1.15 share/mk/bsd.own.mk: revision 1.1167 external/cddl/osnet/dist/uts/common/os/fm.c: revision 1.2 Provide a default ptob() implementation Need sys/atomic.h on NetBSD Enable ZFS support on aarch64 To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.14.2.1 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c cvs rdiff -u -r1.1 -r1.1.2.1 src/external/cddl/osnet/dist/uts/common/os/fm.c cvs rdiff -u -r1.1149.2.1 -r1.1149.2.2 src/share/mk/bsd.own.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/doc
Module Name:src Committed By: pgoyette Date: Sun Dec 8 15:51:50 UTC 2019 Modified Files: src/doc: TODO.modules Log Message: Add another issue that I just remembered, from the time working on the [pgoyette-compat] branch, regarding inability to get some XEN-related modules to build. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/doc/TODO.modules Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/doc/TODO.modules diff -u src/doc/TODO.modules:1.20 src/doc/TODO.modules:1.21 --- src/doc/TODO.modules:1.20 Sun Sep 29 00:57:11 2019 +++ src/doc/TODO.modules Sun Dec 8 15:51:49 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: TODO.modules,v 1.20 2019/09/29 00:57:11 pgoyette Exp $ */ +/* $NetBSD: TODO.modules,v 1.21 2019/12/08 15:51:49 pgoyette Exp $ */ Some notes on the limitations of our current (as of 7.99.35) module subsystem. This list was triggered by an Email exchange between @@ -228,3 +228,11 @@ christos and pgoyette. have any way to identify which module is needed for which image (ie, we can't determine that an image needs compat_linux vs some other module). + +24. Details are no longer remembered, but there are some issues with +building xen-variant modules (on amd4, and likely i386). In some +cases, wrong headers are included (because a XEN-related #define +is missing), but even if you add the definition some headers get +included in the wrong order. On particular fallout from this is +the inability to have a compat version of x86_64 cpu-microcode +module.
CVS commit: src/doc
Module Name:src Committed By: pgoyette Date: Sun Dec 8 15:51:50 UTC 2019 Modified Files: src/doc: TODO.modules Log Message: Add another issue that I just remembered, from the time working on the [pgoyette-compat] branch, regarding inability to get some XEN-related modules to build. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/doc/TODO.modules Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/usr.sbin/sysinst
Module Name:src Committed By: martin Date: Sun Dec 8 15:09:33 UTC 2019 Modified Files: src/usr.sbin/sysinst: bsddisklabel.c Log Message: PR install/54745: fix confusion about absolut and NetBSD-partition relative offsets. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/usr.sbin/sysinst/bsddisklabel.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/usr.sbin/sysinst/bsddisklabel.c diff -u src/usr.sbin/sysinst/bsddisklabel.c:1.31 src/usr.sbin/sysinst/bsddisklabel.c:1.32 --- src/usr.sbin/sysinst/bsddisklabel.c:1.31 Wed Nov 13 18:57:26 2019 +++ src/usr.sbin/sysinst/bsddisklabel.c Sun Dec 8 15:09:33 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: bsddisklabel.c,v 1.31 2019/11/13 18:57:26 martin Exp $ */ +/* $NetBSD: bsddisklabel.c,v 1.32 2019/12/08 15:09:33 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -1342,7 +1342,8 @@ apply_settings_to_partitions(struct pm_d /* * Now add new inner partitions (and cloned partitions) */ - for (i = 0; i < wanted->num && from < wanted->parts->disk_size; i++) { + for (i = 0; i < wanted->num && from < + (wanted->parts->disk_size + wanted->parts->disk_start); i++) { struct part_usage_info *want = >infos[i]; if (want->cur_part_id != NO_PART)
CVS commit: src/usr.sbin/sysinst
Module Name:src Committed By: martin Date: Sun Dec 8 15:09:33 UTC 2019 Modified Files: src/usr.sbin/sysinst: bsddisklabel.c Log Message: PR install/54745: fix confusion about absolut and NetBSD-partition relative offsets. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/usr.sbin/sysinst/bsddisklabel.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/doc
Module Name:src Committed By: martin Date: Sun Dec 8 15:05:44 UTC 2019 Modified Files: src/doc [netbsd-9]: CHANGES-9.0 Log Message: Tickets #494, #495, #497 - #518 To generate a diff of this commit: cvs rdiff -u -r1.1.2.130 -r1.1.2.131 src/doc/CHANGES-9.0 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/doc/CHANGES-9.0 diff -u src/doc/CHANGES-9.0:1.1.2.130 src/doc/CHANGES-9.0:1.1.2.131 --- src/doc/CHANGES-9.0:1.1.2.130 Thu Dec 5 10:29:13 2019 +++ src/doc/CHANGES-9.0 Sun Dec 8 15:05:44 2019 @@ -1,4 +1,4 @@ -# $NetBSD: CHANGES-9.0,v 1.1.2.130 2019/12/05 10:29:13 martin Exp $ +# $NetBSD: CHANGES-9.0,v 1.1.2.131 2019/12/08 15:05:44 martin Exp $ A complete list of changes from the initial NetBSD 9.0 branch on 2019-07-30 until the 9.0 release: @@ -6640,3 +6640,170 @@ doc/CHANGES (edited manually) distrib/cdrom/NetBSD-9.0.mk 1.1 Add config cloned from -current (for macppc ppc 601 support) + +sys/arch/powerpc/oea/ofw_autoconf.c 1.24 + + Add a hack for qemu/macppc. OF_finddevice calls will crash + depending on the boot loader and kernel being used. + This patch allows using -prom-env qemu_boot_hack=y to disable + the lookup. + [joerg, ticket #494] + +distrib/notes/sparc/contents 1.26 + + Fix KRUPS kernel name. + [uwe, ticket #495] + +sys/arch/arm/ti/am3_prcm.c 1.11 +sys/arch/arm/ti/ti_sdhc.c 1.4,1.5 + + Fix mmc and timer indexes. + Fix inverted ti,needs-special-hs-handling property logic and + enable EDMA support. + Support 1-bit mode and force all xfers to bounce + to workaround a transfer error issue for now. + [jmcneill, ticket #497] + +sys/arch/arm/rockchip/rk3399_pcie.c 1.7 + + Do not crash if the optional vpcie3v3-supply property is missing + or the regulator can not be found. + [jmcneill, ticket #498] + +sys/arch/arm/ti/am3_prcm.c 1.12 +sys/arch/arm/ti/files.ti 1.21 +sys/arch/arm/ti/ti_wdt.c 1.1 +sys/arch/evbarm/conf/GENERIC 1.68 + + Add TI OMAP watchdog timer driver. + [jmcneill, ticket #499] + +usr.bin/calendar/calendars/calendar.birthday 1.30-1.35 +usr.bin/calendar/calendars/calendar.computer 1.8,1.9 +usr.bin/calendar/calendars/calendar.music 1.20 +usr.bin/calendar/calendars/calendar.netbsd 1.41-1.43 +usr.bin/calendar/calendars/calendar.usholiday 1.9 + + Various calendar updates. + [sevan, ticket #500] + +games/fortune/datfiles/fortunes 1.83-1.86 +games/fortune/datfiles/netbsd 1.29 + + Various additions. + [sevan, ticket #501] + +sys/arch/x86/include/genfb_machdep.h 1.4 +sys/arch/x86/x86/genfb_machdep.c 1.15 +sys/arch/x86/x86/hyperv.c 1.5 + + Prevent panic when attaching genfb if using a serial console + with Hyper-V Gen.2. + [nonaka, ticket #502] + +sys/stand/efiboot/Makefile.efiboot 1.9 +sys/stand/efiboot/efiacpi.c 1.5 +sys/stand/efiboot/smbios.c 1.1 +sys/stand/efiboot/smbios.h 1.1 +sys/stand/efiboot/version 1.13 + + Use SMBIOS system vendor and product strings to create a "model" + string for the root node in the fabricated ACPI device tree. + [jmcneill, ticket #503] + +share/man/man4/rnd.41.25-1.28 + + Update man page to reflect switch from CTR_DRBG to Hash_DRBG. + Update NIST SP800-90A reference. Various small fixes. + [riastradh, ticket #504] + +common/lib/libc/hash/murmurhash/murmurhash.c 1.7 +common/lib/libc/hash/murmurhash/murmurhash.c 1.8 +sys/arch/amd64/include/param.h 1.31 +sys/arch/i386/include/param.h 1.85 +sys/sys/param.h 1.610 + + New macro ALIGNED_POINTER_LOAD. + Fix byte order bug in murmurhash and pacify sanitizers. + [riastradh, ticket #505] + +lib/libc/gdtoa/Makefile.inc 1.11 +lib/libc/gdtoa/gdtoa_fltrnds.h 1.2 +lib/libc/gdtoa/gdtoaimp.h 1.15,1.17 + + Honour the floating-point rounding mode in floating-point formatting. + [riastradh, ticket #506] + +lib/libm/arch/aarch64/fenv.c 1.5,1.6 + + Fix fesetenv, feupdateenv, and feraiseexcept. + [riastradh, ticket #507] + +distrib/sets/lists/comp/mi 1.2294 +share/man/man9/Makefile1.443 +share/man/man9/atomic_loadstore.9 1.1,1.2 +sys/sys/atomic.h1.18 + + New atomic load/store operations for the kernel, intended + to match C11 semantics. + [riastradh, ticket #508] + +sys/arch/arm/imx/if_enet.c 1.29 + + Set the multicast filter properly. + [ryo, ticket #509] + +sys/arch/arm/arm32/fault.c 1.109 + + PR/54720: if a Thumb-32 bit instruction is located on a page boundariy, + also need to consider the pc + 2 address. + [ryo, ticket #510] + +distrib/utils/embedded/conf/evbarm.conf 1.34 + + Remove the pretty much useless 128MB swap partition from the arm + images. + [jmcneill, ticket #511] + +share/mk/bsd.kmodule.mk1.63 + + Build aarch64 modules without fp or simd instructions. + [jmcneill, ticket #512] + +sys/arch/aarch64/aarch64/kobj_machdep.c 1.3 + + Flush insn / data caches after loading modules. + [jmcneill, ticket #513] + +external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c 1.13 + + zfs: avoid crash when creating a zpool on ld(4). +
CVS commit: [netbsd-9] src/doc
Module Name:src Committed By: martin Date: Sun Dec 8 15:05:44 UTC 2019 Modified Files: src/doc [netbsd-9]: CHANGES-9.0 Log Message: Tickets #494, #495, #497 - #518 To generate a diff of this commit: cvs rdiff -u -r1.1.2.130 -r1.1.2.131 src/doc/CHANGES-9.0 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] xsrc/external/mit/MesaLib/dist/src
Module Name:xsrc Committed By: martin Date: Sun Dec 8 15:00:33 UTC 2019 Modified Files: xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/dri [netbsd-9]: dri_sw_winsys.c xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib [netbsd-9]: xlib_sw_winsys.c xsrc/external/mit/MesaLib/dist/src/mesa/drivers/x11 [netbsd-9]: xm_buffer.c Log Message: Pull up following revision(s) (requested by maya in ticket #518): external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c: revision 1.2 external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c: revision 1.2 external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c: revision 1.2 >From 02c3dad0f3b4d26e0faa5cc51d06bc50d693dcdc Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 9 Oct 2019 12:05:16 -0600 Subject: [PATCH] Call shmget() with permission 0600 instead of 0777 A security advisory (TALOS-2019-0857/CVE-2019-5068) found that creating shared memory regions with permission mode 0777 could allow any user to access that memory. Several Mesa drivers use shared- memory XImages to implement back buffers for improved performance. This path changes the shmget() calls to use 0600 (user r/w). Tested with legacy Xlib driver and llvmpipe. Cc: mesa-sta...@lists.freedesktop.org Reviewed-by: Kristian H. Kristensen To generate a diff of this commit: cvs rdiff -u -r1.1.1.3 -r1.1.1.3.2.1 \ xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c cvs rdiff -u -r1.1.1.3 -r1.1.1.3.2.1 \ xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c cvs rdiff -u -r1.1.1.7 -r1.1.1.7.2.1 \ xsrc/external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] xsrc/external/mit/MesaLib/dist/src
Module Name:xsrc Committed By: martin Date: Sun Dec 8 15:00:33 UTC 2019 Modified Files: xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/dri [netbsd-9]: dri_sw_winsys.c xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib [netbsd-9]: xlib_sw_winsys.c xsrc/external/mit/MesaLib/dist/src/mesa/drivers/x11 [netbsd-9]: xm_buffer.c Log Message: Pull up following revision(s) (requested by maya in ticket #518): external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c: revision 1.2 external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c: revision 1.2 external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c: revision 1.2 >From 02c3dad0f3b4d26e0faa5cc51d06bc50d693dcdc Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 9 Oct 2019 12:05:16 -0600 Subject: [PATCH] Call shmget() with permission 0600 instead of 0777 A security advisory (TALOS-2019-0857/CVE-2019-5068) found that creating shared memory regions with permission mode 0777 could allow any user to access that memory. Several Mesa drivers use shared- memory XImages to implement back buffers for improved performance. This path changes the shmget() calls to use 0600 (user r/w). Tested with legacy Xlib driver and llvmpipe. Cc: mesa-sta...@lists.freedesktop.org Reviewed-by: Kristian H. Kristensen To generate a diff of this commit: cvs rdiff -u -r1.1.1.3 -r1.1.1.3.2.1 \ xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c cvs rdiff -u -r1.1.1.3 -r1.1.1.3.2.1 \ xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c cvs rdiff -u -r1.1.1.7 -r1.1.1.7.2.1 \ xsrc/external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c diff -u xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c:1.1.1.3 xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c:1.1.1.3.2.1 --- xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c:1.1.1.3 Sun Mar 10 03:42:41 2019 +++ xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/dri/dri_sw_winsys.c Sun Dec 8 15:00:33 2019 @@ -93,7 +93,8 @@ alloc_shm(struct dri_sw_displaytarget *d { char *addr; - dri_sw_dt->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT|0777); + /* 0600 = user read+write */ + dri_sw_dt->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT | 0600); if (dri_sw_dt->shmid < 0) return NULL; Index: xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c diff -u xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c:1.1.1.3 xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c:1.1.1.3.2.1 --- xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c:1.1.1.3 Sun Mar 10 03:42:41 2019 +++ xsrc/external/mit/MesaLib/dist/src/gallium/winsys/sw/xlib/xlib_sw_winsys.c Sun Dec 8 15:00:33 2019 @@ -126,7 +126,8 @@ alloc_shm(struct xlib_displaytarget *buf shminfo->shmid = -1; shminfo->shmaddr = (char *) -1; - shminfo->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT|0777); + /* 0600 = user read+write */ + shminfo->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT | 0600); if (shminfo->shmid < 0) { return NULL; } Index: xsrc/external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c diff -u xsrc/external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c:1.1.1.7 xsrc/external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c:1.1.1.7.2.1 --- xsrc/external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c:1.1.1.7 Sun Mar 10 03:42:37 2019 +++ xsrc/external/mit/MesaLib/dist/src/mesa/drivers/x11/xm_buffer.c Sun Dec 8 15:00:33 2019 @@ -89,8 +89,9 @@ alloc_back_shm_ximage(XMesaBuffer b, GLu return GL_FALSE; } + /* 0600 = user read+write */ b->shminfo.shmid = shmget(IPC_PRIVATE, b->backxrb->ximage->bytes_per_line - * b->backxrb->ximage->height, IPC_CREAT|0777); + * b->backxrb->ximage->height, IPC_CREAT | 0600); if (b->shminfo.shmid < 0) { _mesa_warning(NULL, "shmget failed while allocating back buffer.\n"); XDestroyImage(b->backxrb->ximage);
CVS commit: src/sys/dev/dm
Module Name:src Committed By: tkusumi Date: Sun Dec 8 14:59:42 UTC 2019 Modified Files: src/sys/dev/dm: dm.h dm_target_error.c dm_target_mirror.c dm_target_snapshot.c dm_target_zero.c Log Message: dm: Add dummy target ->sync()/->secsize() to prevent panic on modload(8) dm_target_insert() has assertions to ensure targets implement all handlers. Adding dummy ones at least prevents panic on modload(8). To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/dev/dm/dm.h cvs rdiff -u -r1.17 -r1.18 src/sys/dev/dm/dm_target_error.c cvs rdiff -u -r1.16 -r1.17 src/sys/dev/dm/dm_target_mirror.c cvs rdiff -u -r1.28 -r1.29 src/sys/dev/dm/dm_target_snapshot.c cvs rdiff -u -r1.19 -r1.20 src/sys/dev/dm/dm_target_zero.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/dev/dm
Module Name:src Committed By: tkusumi Date: Sun Dec 8 14:59:42 UTC 2019 Modified Files: src/sys/dev/dm: dm.h dm_target_error.c dm_target_mirror.c dm_target_snapshot.c dm_target_zero.c Log Message: dm: Add dummy target ->sync()/->secsize() to prevent panic on modload(8) dm_target_insert() has assertions to ensure targets implement all handlers. Adding dummy ones at least prevents panic on modload(8). To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/dev/dm/dm.h cvs rdiff -u -r1.17 -r1.18 src/sys/dev/dm/dm_target_error.c cvs rdiff -u -r1.16 -r1.17 src/sys/dev/dm/dm_target_mirror.c cvs rdiff -u -r1.28 -r1.29 src/sys/dev/dm/dm_target_snapshot.c cvs rdiff -u -r1.19 -r1.20 src/sys/dev/dm/dm_target_zero.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/dm/dm.h diff -u src/sys/dev/dm/dm.h:1.37 src/sys/dev/dm/dm.h:1.38 --- src/sys/dev/dm/dm.h:1.37 Sun Dec 8 10:50:21 2019 +++ src/sys/dev/dm/dm.h Sun Dec 8 14:59:42 2019 @@ -1,4 +1,4 @@ -/*$NetBSD: dm.h,v 1.37 2019/12/08 10:50:21 tkusumi Exp $ */ +/*$NetBSD: dm.h,v 1.38 2019/12/08 14:59:42 tkusumi Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -293,6 +293,13 @@ int dm_pdev_destroy(void); int dm_pdev_init(void); dm_pdev_t* dm_pdev_insert(const char *); +/* XXX dummy */ +static __inline int +dm_target_dummy_secsize(dm_table_entry_t *table_en, unsigned *secsizep) +{ + return 0; +} + #endif /*_KERNEL*/ #endif /*_DM_DEV_H_*/ Index: src/sys/dev/dm/dm_target_error.c diff -u src/sys/dev/dm/dm_target_error.c:1.17 src/sys/dev/dm/dm_target_error.c:1.18 --- src/sys/dev/dm/dm_target_error.c:1.17 Sun Dec 8 04:41:02 2019 +++ src/sys/dev/dm/dm_target_error.c Sun Dec 8 14:59:42 2019 @@ -1,4 +1,4 @@ -/*$NetBSD: dm_target_error.c,v 1.17 2019/12/08 04:41:02 tkusumi Exp $ */ +/*$NetBSD: dm_target_error.c,v 1.18 2019/12/08 14:59:42 tkusumi Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include -__KERNEL_RCSID(0, "$NetBSD: dm_target_error.c,v 1.17 2019/12/08 04:41:02 tkusumi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dm_target_error.c,v 1.18 2019/12/08 14:59:42 tkusumi Exp $"); /* * This file implements initial version of device-mapper error target. @@ -88,6 +88,7 @@ dm_target_error_modcmd(modcmd_t cmd, voi dmt->deps = _target_error_deps; dmt->destroy = _target_error_destroy; dmt->upcall = _target_error_upcall; + dmt->secsize = dm_target_dummy_secsize; r = dm_target_insert(dmt); Index: src/sys/dev/dm/dm_target_mirror.c diff -u src/sys/dev/dm/dm_target_mirror.c:1.16 src/sys/dev/dm/dm_target_mirror.c:1.17 --- src/sys/dev/dm/dm_target_mirror.c:1.16 Sun Dec 8 10:50:21 2019 +++ src/sys/dev/dm/dm_target_mirror.c Sun Dec 8 14:59:42 2019 @@ -1,4 +1,4 @@ -/*$NetBSD: dm_target_mirror.c,v 1.16 2019/12/08 10:50:21 tkusumi Exp $*/ +/*$NetBSD: dm_target_mirror.c,v 1.17 2019/12/08 14:59:42 tkusumi Exp $*/ /* * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include -__KERNEL_RCSID(0, "$NetBSD: dm_target_mirror.c,v 1.16 2019/12/08 10:50:21 tkusumi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dm_target_mirror.c,v 1.17 2019/12/08 14:59:42 tkusumi Exp $"); /* * This file implements initial version of device-mapper mirror target. @@ -100,6 +100,7 @@ dm_target_mirror_modcmd(modcmd_t cmd, vo dmt->deps = _target_mirror_deps; dmt->destroy = _target_mirror_destroy; dmt->upcall = _target_mirror_upcall; + dmt->secsize = dm_target_dummy_secsize; r = dm_target_insert(dmt); Index: src/sys/dev/dm/dm_target_snapshot.c diff -u src/sys/dev/dm/dm_target_snapshot.c:1.28 src/sys/dev/dm/dm_target_snapshot.c:1.29 --- src/sys/dev/dm/dm_target_snapshot.c:1.28 Sun Dec 8 10:50:21 2019 +++ src/sys/dev/dm/dm_target_snapshot.c Sun Dec 8 14:59:42 2019 @@ -1,4 +1,4 @@ -/*$NetBSD: dm_target_snapshot.c,v 1.28 2019/12/08 10:50:21 tkusumi Exp $ */ +/*$NetBSD: dm_target_snapshot.c,v 1.29 2019/12/08 14:59:42 tkusumi Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include -__KERNEL_RCSID(0, "$NetBSD: dm_target_snapshot.c,v 1.28 2019/12/08 10:50:21 tkusumi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dm_target_snapshot.c,v 1.29 2019/12/08 14:59:42 tkusumi Exp $"); /* * 1. Suspend my_data to temporarily stop any I/O while the snapshot is being @@ -90,6 +90,7 @@ __KERNEL_RCSID(0, "$NetBSD: dm_target_sn int dm_target_snapshot_init(dm_table_entry_t *, char *); char *dm_target_snapshot_status(void *); int dm_target_snapshot_strategy(dm_table_entry_t *, struct buf *); +int dm_target_snapshot_sync(dm_table_entry_t *); int dm_target_snapshot_deps(dm_table_entry_t *, prop_array_t); int dm_target_snapshot_destroy(dm_table_entry_t
CVS commit: [netbsd-9] src/sys/arch/emips/ebus
Module Name:src Committed By: martin Date: Sun Dec 8 14:43:16 UTC 2019 Modified Files: src/sys/arch/emips/ebus [netbsd-9]: ace_ebus.c flash_ebus.c Log Message: Pull up following revision(s) (requested by bouyer in ticket #517): sys/arch/emips/ebus/flash_ebus.c: revision 1.21 sys/arch/emips/ebus/ace_ebus.c: revision 1.21 Drop advertisement clause from my licenses To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.20.20.1 src/sys/arch/emips/ebus/ace_ebus.c cvs rdiff -u -r1.20 -r1.20.8.1 src/sys/arch/emips/ebus/flash_ebus.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/sys/arch/emips/ebus
Module Name:src Committed By: martin Date: Sun Dec 8 14:43:16 UTC 2019 Modified Files: src/sys/arch/emips/ebus [netbsd-9]: ace_ebus.c flash_ebus.c Log Message: Pull up following revision(s) (requested by bouyer in ticket #517): sys/arch/emips/ebus/flash_ebus.c: revision 1.21 sys/arch/emips/ebus/ace_ebus.c: revision 1.21 Drop advertisement clause from my licenses To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.20.20.1 src/sys/arch/emips/ebus/ace_ebus.c cvs rdiff -u -r1.20 -r1.20.8.1 src/sys/arch/emips/ebus/flash_ebus.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/emips/ebus/ace_ebus.c diff -u src/sys/arch/emips/ebus/ace_ebus.c:1.20 src/sys/arch/emips/ebus/ace_ebus.c:1.20.20.1 --- src/sys/arch/emips/ebus/ace_ebus.c:1.20 Sun Nov 20 03:30:11 2016 +++ src/sys/arch/emips/ebus/ace_ebus.c Sun Dec 8 14:43:16 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ace_ebus.c,v 1.20 2016/11/20 03:30:11 pgoyette Exp $ */ +/* $NetBSD: ace_ebus.c,v 1.20.20.1 2019/12/08 14:43:16 martin Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ace_ebus.c,v 1.20 2016/11/20 03:30:11 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ace_ebus.c,v 1.20.20.1 2019/12/08 14:43:16 martin Exp $"); #include #include @@ -1473,11 +1473,6 @@ sysace_send_config(struct ace_softc *sc, * 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. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Manuel Bouyer. - * 4. 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 Index: src/sys/arch/emips/ebus/flash_ebus.c diff -u src/sys/arch/emips/ebus/flash_ebus.c:1.20 src/sys/arch/emips/ebus/flash_ebus.c:1.20.8.1 --- src/sys/arch/emips/ebus/flash_ebus.c:1.20 Sun Mar 4 21:41:48 2018 +++ src/sys/arch/emips/ebus/flash_ebus.c Sun Dec 8 14:43:16 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: flash_ebus.c,v 1.20 2018/03/04 21:41:48 mrg Exp $ */ +/* $NetBSD: flash_ebus.c,v 1.20.8.1 2019/12/08 14:43:16 martin Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: flash_ebus.c,v 1.20 2018/03/04 21:41:48 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: flash_ebus.c,v 1.20.8.1 2019/12/08 14:43:16 martin Exp $"); /* Driver for the Intel 28F320/640/128 (J3A150) StrataFlash memory device * Extended to include the Intel JS28F256P30T95. @@ -1313,11 +1313,6 @@ static int eflash_write_at (struct eflas * 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. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Manuel Bouyer. - * 4. 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
CVS commit: [netbsd-9] src/etc/rc.d
Module Name:src Committed By: martin Date: Sun Dec 8 14:42:02 UTC 2019 Modified Files: src/etc/rc.d [netbsd-9]: zfs Log Message: Pull up following revision(s) (requested by jmcneill in ticket #516): etc/rc.d/zfs: revision 1.2 etc/rc.d/zfs: revision 1.3 Attempt to load the zfs module even if /etc/zfs/zpool.cache is absent. The module needs to be loaded to create a pool in the first place, and autoloading won't work after the fact won't work at securelevel=1. Add missing rcvar=$name To generate a diff of this commit: cvs rdiff -u -r1.1.2.2 -r1.1.2.3 src/etc/rc.d/zfs Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/etc/rc.d/zfs diff -u src/etc/rc.d/zfs:1.1.2.2 src/etc/rc.d/zfs:1.1.2.3 --- src/etc/rc.d/zfs:1.1.2.2 Fri Sep 27 09:18:37 2019 +++ src/etc/rc.d/zfs Sun Dec 8 14:42:01 2019 @@ -1,6 +1,6 @@ #!/bin/sh # -# $NetBSD: zfs,v 1.1.2.2 2019/09/27 09:18:37 martin Exp $ +# $NetBSD: zfs,v 1.1.2.3 2019/12/08 14:42:01 martin Exp $ # # PROVIDE: zfs @@ -10,12 +10,13 @@ $_rc_subr_loaded . /etc/rc.subr name="zfs" +rcvar=$name start_cmd="zfs_start" stop_cmd="zfs_stop" zfs_start() { - if [ -x /sbin/zfs -a -f /etc/zfs/zpool.cache ]; then + if [ -x /sbin/zfs ]; then # Get ZFS module loaded (and thereby, zvols created). /sbin/zfs list > /dev/null 2>&1 if [ $? -ne 0 ]; then
CVS commit: [netbsd-9] src/etc/rc.d
Module Name:src Committed By: martin Date: Sun Dec 8 14:42:02 UTC 2019 Modified Files: src/etc/rc.d [netbsd-9]: zfs Log Message: Pull up following revision(s) (requested by jmcneill in ticket #516): etc/rc.d/zfs: revision 1.2 etc/rc.d/zfs: revision 1.3 Attempt to load the zfs module even if /etc/zfs/zpool.cache is absent. The module needs to be loaded to create a pool in the first place, and autoloading won't work after the fact won't work at securelevel=1. Add missing rcvar=$name To generate a diff of this commit: cvs rdiff -u -r1.1.2.2 -r1.1.2.3 src/etc/rc.d/zfs Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: martin Date: Sun Dec 8 14:39:07 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: vdev_disk.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #514): external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c: revision 1.13 Initialize b_dev before passing buf to d_minphys (ldminphys needs this) To generate a diff of this commit: cvs rdiff -u -r1.11.2.1 -r1.11.2.2 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: martin Date: Sun Dec 8 14:39:07 UTC 2019 Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs [netbsd-9]: vdev_disk.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #514): external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c: revision 1.13 Initialize b_dev before passing buf to d_minphys (ldminphys needs this) To generate a diff of this commit: cvs rdiff -u -r1.11.2.1 -r1.11.2.2 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.1 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.2 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.1 Tue Aug 20 11:44:14 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Sun Dec 8 14:39:07 2019 @@ -244,6 +244,7 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi } else { pdk = NULL; } + buf.b_dev = vp->v_rdev; } if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys) (*pdk->dk_driver->d_minphys)();
CVS commit: [netbsd-9] src/sys/arch/aarch64/aarch64
Module Name:src Committed By: martin Date: Sun Dec 8 14:37:29 UTC 2019 Modified Files: src/sys/arch/aarch64/aarch64 [netbsd-9]: kobj_machdep.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #513): sys/arch/aarch64/aarch64/kobj_machdep.c: revision 1.3 Flush insn / data caches after loading modules To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.2.8.1 src/sys/arch/aarch64/aarch64/kobj_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/sys/arch/aarch64/aarch64
Module Name:src Committed By: martin Date: Sun Dec 8 14:37:29 UTC 2019 Modified Files: src/sys/arch/aarch64/aarch64 [netbsd-9]: kobj_machdep.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #513): sys/arch/aarch64/aarch64/kobj_machdep.c: revision 1.3 Flush insn / data caches after loading modules To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.2.8.1 src/sys/arch/aarch64/aarch64/kobj_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/aarch64/aarch64/kobj_machdep.c diff -u src/sys/arch/aarch64/aarch64/kobj_machdep.c:1.2 src/sys/arch/aarch64/aarch64/kobj_machdep.c:1.2.8.1 --- src/sys/arch/aarch64/aarch64/kobj_machdep.c:1.2 Sun Aug 19 20:02:22 2018 +++ src/sys/arch/aarch64/aarch64/kobj_machdep.c Sun Dec 8 14:37:29 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: kobj_machdep.c,v 1.2 2018/08/19 20:02:22 ryo Exp $ */ +/* $NetBSD: kobj_machdep.c,v 1.2.8.1 2019/12/08 14:37:29 martin Exp $ */ /* * Copyright (c) 2018 Ryo Shimizu @@ -27,19 +27,21 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: kobj_machdep.c,v 1.2 2018/08/19 20:02:22 ryo Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kobj_machdep.c,v 1.2.8.1 2019/12/08 14:37:29 martin Exp $"); #define ELFSIZE ARCH_ELFSIZE #include "opt_ddb.h" #include +#include #include #include #include #include #include #include +#include #include @@ -357,8 +359,26 @@ kobj_reloc(kobj_t ko, uintptr_t relocbas return 0; } +static void +kobj_idcache_wbinv_all(void) +{ + cpu_idcache_wbinv_all(); +} + int kobj_machdep(kobj_t ko, void *base, size_t size, bool load) { + uint64_t where; + + if (load) { + if (cold) { + kobj_idcache_wbinv_all(); + } else { + where = xc_broadcast(0, + (xcfunc_t)kobj_idcache_wbinv_all, NULL, NULL); + xc_wait(where); + } + } + return 0; }
CVS commit: [netbsd-9] src/share/mk
Module Name:src Committed By: martin Date: Sun Dec 8 14:36:21 UTC 2019 Modified Files: src/share/mk [netbsd-9]: bsd.kmodule.mk Log Message: Pull up following revision(s) (requested by jmcneill in ticket #512): share/mk/bsd.kmodule.mk: revision 1.63 Build aarch64 modules without fp or simd instructions. To generate a diff of this commit: cvs rdiff -u -r1.62 -r1.62.2.1 src/share/mk/bsd.kmodule.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/share/mk/bsd.kmodule.mk diff -u src/share/mk/bsd.kmodule.mk:1.62 src/share/mk/bsd.kmodule.mk:1.62.2.1 --- src/share/mk/bsd.kmodule.mk:1.62 Fri Jul 5 08:28:16 2019 +++ src/share/mk/bsd.kmodule.mk Sun Dec 8 14:36:21 2019 @@ -1,4 +1,4 @@ -# $NetBSD: bsd.kmodule.mk,v 1.62 2019/07/05 08:28:16 hannken Exp $ +# $NetBSD: bsd.kmodule.mk,v 1.62.2.1 2019/12/08 14:36:21 martin Exp $ # We are not building this with PIE MKPIE=no @@ -42,7 +42,9 @@ CFLAGS+= -fno-strict-aliasing -Wno-point # The real solution to this involves generating trampolines for those # relocations inside the loader and removing this workaround, as the # resulting code would be much faster. -.if ${MACHINE_CPU} == "arm" +.if ${MACHINE_CPU} == "aarch64" +CFLAGS+= -march=armv8-a+nofp+nosimd +.elif ${MACHINE_CPU} == "arm" CFLAGS+= -fno-common -fno-unwind-tables .elif ${MACHINE_CPU} == "hppa" CFLAGS+= -mlong-calls
CVS commit: [netbsd-9] src/share/mk
Module Name:src Committed By: martin Date: Sun Dec 8 14:36:21 UTC 2019 Modified Files: src/share/mk [netbsd-9]: bsd.kmodule.mk Log Message: Pull up following revision(s) (requested by jmcneill in ticket #512): share/mk/bsd.kmodule.mk: revision 1.63 Build aarch64 modules without fp or simd instructions. To generate a diff of this commit: cvs rdiff -u -r1.62 -r1.62.2.1 src/share/mk/bsd.kmodule.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/distrib/utils/embedded/conf
Module Name:src Committed By: martin Date: Sun Dec 8 14:35:10 UTC 2019 Modified Files: src/distrib/utils/embedded/conf [netbsd-9]: evbarm.conf Log Message: Pull up following revision(s) (requested by jmcneill in ticket #511): distrib/utils/embedded/conf/evbarm.conf: revision 1.34 Remove the pretty much useless 128MB swap partition from the arm images. To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.33.2.1 src/distrib/utils/embedded/conf/evbarm.conf Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/distrib/utils/embedded/conf/evbarm.conf diff -u src/distrib/utils/embedded/conf/evbarm.conf:1.33 src/distrib/utils/embedded/conf/evbarm.conf:1.33.2.1 --- src/distrib/utils/embedded/conf/evbarm.conf:1.33 Tue Jun 11 10:50:57 2019 +++ src/distrib/utils/embedded/conf/evbarm.conf Sun Dec 8 14:35:10 2019 @@ -1,15 +1,14 @@ -# $NetBSD: evbarm.conf,v 1.33 2019/06/11 10:50:57 mrg Exp $ +# $NetBSD: evbarm.conf,v 1.33.2.1 2019/12/08 14:35:10 martin Exp $ # evbarm shared config # image=$HOME/${board}.img MACHINE=evbarm -swap=256 extra=48 # spare space init=32 boot=$((192 - ${init})) -ffsoffset=$(( (${init} + ${boot} + ${swap}) / 2 ))m +ffsoffset=$(( (${init} + ${boot}) / 2 ))m size=0 # autocompute msdosid=12 @@ -20,14 +19,12 @@ make_label_evbarm() { # compute all sizes in terms of sectors local totalsize=$(( ${newsize} * 1024 * 2 / 512 )) - local swapsize=$(( ${swap} * 1024 )) local bootsize=$(( ${boot} * 1024 )) local bootoffset=$(( ${init} * 1024 )) - local swapoffset=$(( ${bootoffset} + ${bootsize} )) - local asize=$(( ${totalsize} - ${swapsize} - ${bootsize} - ${bootoffset} )) - local aoffset=$(( ${swapoffset} + ${swapsize} )) + local asize=$(( ${totalsize} - ${bootsize} - ${bootoffset} )) + local aoffset=$(( ${bootoffset} + ${bootsize} )) local bps=512 local spt=32 @@ -57,7 +54,6 @@ drivedata: 0 8 partitions: # size offsetfstype [fsize bsize cpg/sgs] a: ${asize} ${aoffset}4.2BSD ${fsize} ${bsize} 0 # - b: ${swapsize} ${swapoffset} swap # c: ${totalsize} 0 unused 0 0 # e: ${bootsize} ${bootoffset} MSDOS# EOF @@ -68,7 +64,6 @@ make_fstab_evbarm_normal() { # NetBSD /etc/fstab # See /usr/share/examples/fstab/ for more examples. ROOT.a / ffs rw,noatime 1 1 -ROOT.b none swap sw 0 0 ROOT.e /boot msdos rw 1 1 kernfs /kern kernfs rw ptyfs /dev/pts ptyfs rw @@ -85,7 +80,6 @@ make_fstab_evbarm_minwrites() { # NetBSD /etc/fstab # See /usr/share/examples/fstab/ for more examples. ROOT.a / ffs rw,log,noatime,nodevmtime 1 1 -ROOT.b none swap sw 0 0 ROOT.e /boot msdos rw 1 1 kernfs /kern kernfs rw ptyfs /dev/pts ptyfs rw @@ -137,6 +131,8 @@ dev_exists() { rc_configured=YES hostname=${board} +no_swap=YES +savecore=NO sshd=YES dhcpcd=YES ntpd=YES
CVS commit: [netbsd-9] src/distrib/utils/embedded/conf
Module Name:src Committed By: martin Date: Sun Dec 8 14:35:10 UTC 2019 Modified Files: src/distrib/utils/embedded/conf [netbsd-9]: evbarm.conf Log Message: Pull up following revision(s) (requested by jmcneill in ticket #511): distrib/utils/embedded/conf/evbarm.conf: revision 1.34 Remove the pretty much useless 128MB swap partition from the arm images. To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.33.2.1 src/distrib/utils/embedded/conf/evbarm.conf Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/sys/arch/arm/arm32
Module Name:src Committed By: martin Date: Sun Dec 8 14:31:58 UTC 2019 Modified Files: src/sys/arch/arm/arm32 [netbsd-9]: fault.c Log Message: Pull up following revision(s) (requested by ryo in ticket #510): sys/arch/arm/arm32/fault.c: revision 1.109 if Thumb-32 bit instruction located on a page boundariy, also need to consider the pc + 2 address. Fix PR/54720. more detail and PoC are descrived in the PR. To generate a diff of this commit: cvs rdiff -u -r1.108 -r1.108.4.1 src/sys/arch/arm/arm32/fault.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/arm32/fault.c diff -u src/sys/arch/arm/arm32/fault.c:1.108 src/sys/arch/arm/arm32/fault.c:1.108.4.1 --- src/sys/arch/arm/arm32/fault.c:1.108 Sat Apr 6 03:06:25 2019 +++ src/sys/arch/arm/arm32/fault.c Sun Dec 8 14:31:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: fault.c,v 1.108 2019/04/06 03:06:25 thorpej Exp $ */ +/* $NetBSD: fault.c,v 1.108.4.1 2019/12/08 14:31:57 martin Exp $ */ /* * Copyright 2003 Wasabi Systems, Inc. @@ -81,7 +81,7 @@ #include "opt_kgdb.h" #include -__KERNEL_RCSID(0, "$NetBSD: fault.c,v 1.108 2019/04/06 03:06:25 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fault.c,v 1.108.4.1 2019/12/08 14:31:57 martin Exp $"); #include #include @@ -838,6 +838,9 @@ prefetch_abort_handler(trapframe_t *tf) UVMHIST_LOG(maphist, " (pc=0x%jx, l=0x%#jx, tf=0x%#jx)", fault_pc, (uintptr_t)l, (uintptr_t)tf, 0); +#ifdef THUMB_CODE + recheck: +#endif /* Ok validate the address, can only execute in USER space */ if (__predict_false(fault_pc >= VM_MAXUSER_ADDRESS || (fault_pc < VM_MIN_ADDRESS && vector_page == ARM_VECTORS_LOW))) { @@ -897,6 +900,18 @@ do_trapsignal: call_trapsignal(l, tf, ); out: + +#ifdef THUMB_CODE +#define THUMB_32BIT(hi) (((hi) & 0xe000) == 0xe000 && ((hi) & 0x1800)) + /* thumb-32 instruction was located on page boundary? */ + if ((tf->tf_spsr & PSR_T_bit) && + ((fault_pc & PAGE_MASK) == (PAGE_SIZE - THUMB_INSN_SIZE)) && + THUMB_32BIT(*(uint16_t *)tf->tf_pc)) { + fault_pc = tf->tf_pc + THUMB_INSN_SIZE; + goto recheck; + } +#endif /* THUMB_CODE */ + KASSERT(!TRAP_USERMODE(tf) || VALID_R15_PSR(tf->tf_pc, tf->tf_spsr)); userret(l); }
CVS commit: [netbsd-9] src/sys/arch/arm/arm32
Module Name:src Committed By: martin Date: Sun Dec 8 14:31:58 UTC 2019 Modified Files: src/sys/arch/arm/arm32 [netbsd-9]: fault.c Log Message: Pull up following revision(s) (requested by ryo in ticket #510): sys/arch/arm/arm32/fault.c: revision 1.109 if Thumb-32 bit instruction located on a page boundariy, also need to consider the pc + 2 address. Fix PR/54720. more detail and PoC are descrived in the PR. To generate a diff of this commit: cvs rdiff -u -r1.108 -r1.108.4.1 src/sys/arch/arm/arm32/fault.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/sys/arch/arm/imx
Module Name:src Committed By: martin Date: Sun Dec 8 14:29:37 UTC 2019 Modified Files: src/sys/arch/arm/imx [netbsd-9]: if_enet.c Log Message: Pull up following revision(s) (requested by ryo in ticket #509): sys/arch/arm/imx/if_enet.c: revision 1.29 set the multicast filter properly. don't always IFF_ALLMULTI if multicast is configured. fix the handling of GAUR and GALR. To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.25.2.1 src/sys/arch/arm/imx/if_enet.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/imx/if_enet.c diff -u src/sys/arch/arm/imx/if_enet.c:1.25 src/sys/arch/arm/imx/if_enet.c:1.25.2.1 --- src/sys/arch/arm/imx/if_enet.c:1.25 Tue Jul 30 06:26:31 2019 +++ src/sys/arch/arm/imx/if_enet.c Sun Dec 8 14:29:36 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: if_enet.c,v 1.25 2019/07/30 06:26:31 hkenken Exp $ */ +/* $NetBSD: if_enet.c,v 1.25.2.1 2019/12/08 14:29:36 martin Exp $ */ /* * Copyright (c) 2014 Ryo Shimizu @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_enet.c,v 1.25 2019/07/30 06:26:31 hkenken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_enet.c,v 1.25.2.1 2019/12/08 14:29:36 martin Exp $"); #include "vlan.h" @@ -714,15 +714,14 @@ enet_setmulti(struct enet_softc *sc) struct ifnet *ifp = >ec_if; struct ether_multi *enm; struct ether_multistep step; - int promisc; - uint32_t crc; + uint32_t crc, hashidx; uint32_t gaddr[2]; - promisc = 0; - if ((ifp->if_flags & IFF_PROMISC) || ec->ec_multicnt > 0) { - ifp->if_flags |= IFF_ALLMULTI; - if (ifp->if_flags & IFF_PROMISC) - promisc = 1; + if (ifp->if_flags & IFF_PROMISC) { + /* receive all unicast packet */ + ENET_REG_WRITE(sc, ENET_IAUR, 0x); + ENET_REG_WRITE(sc, ENET_IALR, 0x); + /* receive all multicast packet */ gaddr[0] = gaddr[1] = 0x; } else { gaddr[0] = gaddr[1] = 0; @@ -730,25 +729,38 @@ enet_setmulti(struct enet_softc *sc) ETHER_LOCK(ec); ETHER_FIRST_MULTI(step, ec, enm); while (enm != NULL) { + if (memcmp(enm->enm_addrlo, enm->enm_addrhi, + ETHER_ADDR_LEN)) { +/* + * if specified by range, give up setting hash, + * and fallback to allmulti. + */ +gaddr[0] = gaddr[1] = 0x; +break; + } + crc = ether_crc32_le(enm->enm_addrlo, ETHER_ADDR_LEN); - gaddr[crc >> 31] |= 1 << ((crc >> 26) & 0x1f); + hashidx = __SHIFTOUT(crc, __BITS(30,26)); + gaddr[__SHIFTOUT(crc, __BIT(31))] |= __BIT(hashidx); + ETHER_NEXT_MULTI(step, enm); } ETHER_UNLOCK(ec); - } - - ENET_REG_WRITE(sc, ENET_GAUR, gaddr[0]); - ENET_REG_WRITE(sc, ENET_GALR, gaddr[1]); - if (promisc) { - /* match all packet */ - ENET_REG_WRITE(sc, ENET_IAUR, 0x); - ENET_REG_WRITE(sc, ENET_IALR, 0x); - } else { - /* don't match any packet */ + /* dont't receive any unicast packet (except own address) */ ENET_REG_WRITE(sc, ENET_IAUR, 0); ENET_REG_WRITE(sc, ENET_IALR, 0); } + + if (gaddr[0] == 0x && gaddr[1] == 0x) + ifp->if_flags |= IFF_ALLMULTI; + else + ifp->if_flags &= ~IFF_ALLMULTI; + + /* receive multicast packets according to multicast filter */ + ENET_REG_WRITE(sc, ENET_GAUR, gaddr[1]); + ENET_REG_WRITE(sc, ENET_GALR, gaddr[0]); + } static void
CVS commit: [netbsd-9] src/sys/arch/arm/imx
Module Name:src Committed By: martin Date: Sun Dec 8 14:29:37 UTC 2019 Modified Files: src/sys/arch/arm/imx [netbsd-9]: if_enet.c Log Message: Pull up following revision(s) (requested by ryo in ticket #509): sys/arch/arm/imx/if_enet.c: revision 1.29 set the multicast filter properly. don't always IFF_ALLMULTI if multicast is configured. fix the handling of GAUR and GALR. To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.25.2.1 src/sys/arch/arm/imx/if_enet.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src
Module Name:src Committed By: martin Date: Sun Dec 8 14:26:39 UTC 2019 Modified Files: src/distrib/sets/lists/comp [netbsd-9]: mi src/share/man/man9 [netbsd-9]: Makefile src/sys/sys [netbsd-9]: atomic.h Added Files: src/share/man/man9 [netbsd-9]: atomic_loadstore.9 Log Message: Pull up following revision(s) (requested by riastradh in ticket #508): distrib/sets/lists/comp/mi: revision 1.2294 share/man/man9/Makefile: revision 1.443 sys/sys/atomic.h: revision 1.18 share/man/man9/atomic_loadstore.9: revision 1.1 share/man/man9/atomic_loadstore.9: revision 1.2 New atomic load/store operations for the kernel. Guarantee no fusing and no tearing, and can optionally impose ordering relative to other memory operations. Unordered: - atomic_load_relaxed - atomic_store_relaxed Ordered: - atomic_load_acquire - atomic_load_consume - atomic_store_release These are intended to match C11 semantics, and can be defined in terms of the C11 atomic API when ready. Document relation to atomic_ops(3) and membar_ops(3). To generate a diff of this commit: cvs rdiff -u -r1.2278.2.4 -r1.2278.2.5 src/distrib/sets/lists/comp/mi cvs rdiff -u -r1.437.2.2 -r1.437.2.3 src/share/man/man9/Makefile cvs rdiff -u -r0 -r1.5.2.2 src/share/man/man9/atomic_loadstore.9 cvs rdiff -u -r1.13 -r1.13.22.1 src/sys/sys/atomic.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/distrib/sets/lists/comp/mi diff -u src/distrib/sets/lists/comp/mi:1.2278.2.4 src/distrib/sets/lists/comp/mi:1.2278.2.5 --- src/distrib/sets/lists/comp/mi:1.2278.2.4 Sun Sep 1 13:00:37 2019 +++ src/distrib/sets/lists/comp/mi Sun Dec 8 14:26:38 2019 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.2278.2.4 2019/09/01 13:00:37 martin Exp $ +# $NetBSD: mi,v 1.2278.2.5 2019/12/08 14:26:38 martin Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. ./etc/mtree/set.compcomp-sys-root @@ -10670,6 +10670,12 @@ ./usr/share/man/cat9/arp_ifinit.0 comp-sys-catman .cat ./usr/share/man/cat9/arpintr.0 comp-sys-catman .cat ./usr/share/man/cat9/arpresolve.0 comp-sys-catman .cat +./usr/share/man/cat9/atomic_load_acquire.0 comp-sys-catman .cat +./usr/share/man/cat9/atomic_load_consume.0 comp-sys-catman .cat +./usr/share/man/cat9/atomic_load_relaxed.0 comp-sys-catman .cat +./usr/share/man/cat9/atomic_loadstore.0 comp-sys-catman .cat +./usr/share/man/cat9/atomic_store_relaxed.0 comp-sys-catman .cat +./usr/share/man/cat9/atomic_store_release.0 comp-sys-catman .cat ./usr/share/man/cat9/atop.0 comp-sys-catman .cat ./usr/share/man/cat9/audio.0 comp-sys-catman .cat ./usr/share/man/cat9/audio_system.0 comp-sys-catman obsolete @@ -18610,6 +18616,12 @@ ./usr/share/man/html9/arp_ifinit.html comp-sys-htmlman html ./usr/share/man/html9/arpintr.html comp-sys-htmlman html ./usr/share/man/html9/arpresolve.html comp-sys-htmlman html +./usr/share/man/html9/atomic_load_acquire.html comp-sys-htmlman html +./usr/share/man/html9/atomic_load_consume.html comp-sys-htmlman html +./usr/share/man/html9/atomic_load_relaxed.html comp-sys-htmlman html +./usr/share/man/html9/atomic_loadstore.html comp-sys-htmlman html +./usr/share/man/html9/atomic_store_relaxed.html comp-sys-htmlman html +./usr/share/man/html9/atomic_store_release.html comp-sys-htmlman html ./usr/share/man/html9/atop.html comp-sys-htmlman html ./usr/share/man/html9/audio.html comp-sys-htmlman html ./usr/share/man/html9/audio_system.html comp-sys-htmlman obsolete @@ -26653,6 +26665,12 @@ ./usr/share/man/man9/arp_ifinit.9 comp-sys-man .man ./usr/share/man/man9/arpintr.9 comp-sys-man .man ./usr/share/man/man9/arpresolve.9 comp-sys-man .man +./usr/share/man/man9/atomic_load_acquire.9 comp-sys-man .man +./usr/share/man/man9/atomic_load_consume.9 comp-sys-man .man +./usr/share/man/man9/atomic_load_relaxed.9 comp-sys-man .man +./usr/share/man/man9/atomic_loadstore.9 comp-sys-man .man +./usr/share/man/man9/atomic_store_relaxed.9 comp-sys-man .man +./usr/share/man/man9/atomic_store_release.9 comp-sys-man .man ./usr/share/man/man9/atop.9 comp-sys-man .man ./usr/share/man/man9/audio.9 comp-sys-man .man ./usr/share/man/man9/audio_system.9 comp-sys-man obsolete Index: src/share/man/man9/Makefile diff -u src/share/man/man9/Makefile:1.437.2.2 src/share/man/man9/Makefile:1.437.2.3 --- src/share/man/man9/Makefile:1.437.2.2 Sun Sep 1 19:31:43 2019 +++ src/share/man/man9/Makefile Sun Dec 8 14:26:38 2019 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.437.2.2 2019/09/01 19:31:43 martin Exp $ +# $NetBSD: Makefile,v 1.437.2.3 2019/12/08 14:26:38 martin Exp $ # Makefile for section 9 (kernel function and variable) manual pages. @@ -67,6 +67,13 @@ MAN= accept_filter.9 accf_data.9 accf_ht wsbell.9 wscons.9 wsdisplay.9 wsfont.9 wskbd.9 wsmouse.9 \ xcall.9 +MAN+= atomic_loadstore.9
CVS commit: [netbsd-9] src
Module Name:src Committed By: martin Date: Sun Dec 8 14:26:39 UTC 2019 Modified Files: src/distrib/sets/lists/comp [netbsd-9]: mi src/share/man/man9 [netbsd-9]: Makefile src/sys/sys [netbsd-9]: atomic.h Added Files: src/share/man/man9 [netbsd-9]: atomic_loadstore.9 Log Message: Pull up following revision(s) (requested by riastradh in ticket #508): distrib/sets/lists/comp/mi: revision 1.2294 share/man/man9/Makefile: revision 1.443 sys/sys/atomic.h: revision 1.18 share/man/man9/atomic_loadstore.9: revision 1.1 share/man/man9/atomic_loadstore.9: revision 1.2 New atomic load/store operations for the kernel. Guarantee no fusing and no tearing, and can optionally impose ordering relative to other memory operations. Unordered: - atomic_load_relaxed - atomic_store_relaxed Ordered: - atomic_load_acquire - atomic_load_consume - atomic_store_release These are intended to match C11 semantics, and can be defined in terms of the C11 atomic API when ready. Document relation to atomic_ops(3) and membar_ops(3). To generate a diff of this commit: cvs rdiff -u -r1.2278.2.4 -r1.2278.2.5 src/distrib/sets/lists/comp/mi cvs rdiff -u -r1.437.2.2 -r1.437.2.3 src/share/man/man9/Makefile cvs rdiff -u -r0 -r1.5.2.2 src/share/man/man9/atomic_loadstore.9 cvs rdiff -u -r1.13 -r1.13.22.1 src/sys/sys/atomic.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/lib/libm/arch/aarch64
Module Name:src Committed By: martin Date: Sun Dec 8 13:37:46 UTC 2019 Modified Files: src/lib/libm/arch/aarch64 [netbsd-9]: fenv.c Log Message: Pull up following revision(s) (requested by riastradh in ticket #507): lib/libm/arch/aarch64/fenv.c: revision 1.5 lib/libm/arch/aarch64/fenv.c: revision 1.6 Fix fesetenv and feupdateenv. - fesetenv is supposed to set the stored rounding mode (and stored trap settings, but they have no effect on any ARMv8 I know). - feupdateenv is supposed to re-raise the exceptions that were raised in the environment when it was called. XXX atf test XXX pullup-9 Fix feraiseexcept. - Don't touch the trap flags (though on all ARMv8 I know they have no effect anyway). - Don't clear any existing raised exception flags; just add to them. XXX atf test XXX pullup-9 To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.4.2.1 src/lib/libm/arch/aarch64/fenv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/lib/libm/arch/aarch64/fenv.c diff -u src/lib/libm/arch/aarch64/fenv.c:1.4 src/lib/libm/arch/aarch64/fenv.c:1.4.2.1 --- src/lib/libm/arch/aarch64/fenv.c:1.4 Wed Nov 7 06:47:38 2018 +++ src/lib/libm/arch/aarch64/fenv.c Sun Dec 8 13:37:46 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: fenv.c,v 1.4 2018/11/07 06:47:38 riastradh Exp $ */ +/* $NetBSD: fenv.c,v 1.4.2.1 2019/12/08 13:37:46 martin Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__RCSID("$NetBSD: fenv.c,v 1.4 2018/11/07 06:47:38 riastradh Exp $"); +__RCSID("$NetBSD: fenv.c,v 1.4.2.1 2019/12/08 13:37:46 martin Exp $"); #include "namespace.h" @@ -107,11 +107,9 @@ feraiseexcept(int excepts) _DIAGASSERT((except & ~FE_ALL_EXCEPT) == 0); #endif unsigned int fpsr = reg_fpsr_read(); - fpsr = (fpsr & ~FPSR_CSUM) | __SHIFTIN(excepts, FPSR_CSUM); + excepts &= FE_ALL_EXCEPT; /* paranoia */ + fpsr |= __SHIFTIN(excepts, FPSR_CSUM); reg_fpsr_write(fpsr); - unsigned int fpcr = reg_fpcr_read(); - fpcr = (fpcr & ~FPCR_ESUM) | __SHIFTIN(excepts, FPCR_ESUM); - reg_fpcr_write(fpcr); return 0; } @@ -213,6 +211,7 @@ int fesetenv(const fenv_t *envp) { reg_fpsr_write(envp->__fpsr); + reg_fpcr_write(envp->__fpcr); return 0; } @@ -225,11 +224,10 @@ fesetenv(const fenv_t *envp) int feupdateenv(const fenv_t *envp) { -#ifndef lint - _DIAGASSERT(envp != NULL); -#endif - reg_fpsr_write(envp->__fpsr); - reg_fpcr_write(envp->__fpcr); + int except = fetestexcept(FE_ALL_EXCEPT); + + fesetenv(envp); + feraiseexcept(except); /* Success */ return 0;
CVS commit: [netbsd-9] src/lib/libm/arch/aarch64
Module Name:src Committed By: martin Date: Sun Dec 8 13:37:46 UTC 2019 Modified Files: src/lib/libm/arch/aarch64 [netbsd-9]: fenv.c Log Message: Pull up following revision(s) (requested by riastradh in ticket #507): lib/libm/arch/aarch64/fenv.c: revision 1.5 lib/libm/arch/aarch64/fenv.c: revision 1.6 Fix fesetenv and feupdateenv. - fesetenv is supposed to set the stored rounding mode (and stored trap settings, but they have no effect on any ARMv8 I know). - feupdateenv is supposed to re-raise the exceptions that were raised in the environment when it was called. XXX atf test XXX pullup-9 Fix feraiseexcept. - Don't touch the trap flags (though on all ARMv8 I know they have no effect anyway). - Don't clear any existing raised exception flags; just add to them. XXX atf test XXX pullup-9 To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.4.2.1 src/lib/libm/arch/aarch64/fenv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/lib/libc/gdtoa
Module Name:src Committed By: martin Date: Sun Dec 8 13:35:51 UTC 2019 Modified Files: src/lib/libc/gdtoa [netbsd-9]: Makefile.inc gdtoa_fltrnds.h gdtoaimp.h Log Message: Pull up following revision(s) (requested by riastradh in ticket #506): lib/libc/gdtoa/Makefile.inc: revision 1.11 lib/libc/gdtoa/gdtoa_fltrnds.h: revision 1.2 lib/libc/gdtoa/gdtoaimp.h: revision 1.15 lib/libc/gdtoa/gdtoaimp.h: revision 1.17 Honour the floating-point rounding mode in floating-point formatting. C99, Sec. 7.19.6.1 `The fprintf function', paragraph 13, p. 281: (Recommended practice) For e, E, f, F, g, and G conversions, if the number of significant decimal digits is at most DECIMAL_DIG, then the result should be correctly rounded. If the number of significant decimal digits is more than DECIMAL_DIG but the source value is exactly representable with DECIMAL_DIG digits, then the result should be an exact representation with trailing zeros. Otherwise, the source value is bounded by two adjacent decimal strings L < U, both having DECIMAL_DIG significant idgits; the value of the resultant decimal string D should satisfy L <= D <= U, _with the extra stipulation that the error should have a correct sign for the current rounding direction_. [emphasis added] The gdtoa code base already supports respecting the floating-point rounding mode, as long as we compile it with Honor_FLT_ROUNDS defined. However, for this to work, fegetround must be available in libc, which it is not currently -- the fenv logic is in libm. Fortunately, we don't have to move all of fenv from libm to libc -- programs that do not link against libm don't have fesetround, so the rounding mode is always the default (barring asm shenanigans that bypass the API -- tough). So use a weak reference to fegetround; by default, assume FE_TONEAREST if it is not defined. Mark the libc fegetround weak reference unused. Not all .c files that include gdtoaimp.h use it, which makes clang unhappy. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.10.28.1 src/lib/libc/gdtoa/Makefile.inc cvs rdiff -u -r1.1.1.1 -r1.1.1.1.46.1 src/lib/libc/gdtoa/gdtoa_fltrnds.h cvs rdiff -u -r1.14 -r1.14.30.1 src/lib/libc/gdtoa/gdtoaimp.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/lib/libc/gdtoa/Makefile.inc diff -u src/lib/libc/gdtoa/Makefile.inc:1.10 src/lib/libc/gdtoa/Makefile.inc:1.10.28.1 --- src/lib/libc/gdtoa/Makefile.inc:1.10 Thu Jan 16 20:31:42 2014 +++ src/lib/libc/gdtoa/Makefile.inc Sun Dec 8 13:35:51 2019 @@ -1,10 +1,14 @@ -# $NetBSD: Makefile.inc,v 1.10 2014/01/16 20:31:42 christos Exp $ +# $NetBSD: Makefile.inc,v 1.10.28.1 2019/12/08 13:35:51 martin Exp $ # gdtoa sources .PATH: ${.CURDIR}/gdtoa CPPFLAGS+=-I${.CURDIR}/gdtoa -I${.CURDIR}/locale +.if ${MACHINE_ARCH} == "vax" CPPFLAGS+=-DNO_FENV_H +.else +CPPFLAGS+=-DHonor_FLT_ROUNDS +.endif # machine-dependent directory must provide the following: # arith.h gd_qnan.h Index: src/lib/libc/gdtoa/gdtoa_fltrnds.h diff -u src/lib/libc/gdtoa/gdtoa_fltrnds.h:1.1.1.1 src/lib/libc/gdtoa/gdtoa_fltrnds.h:1.1.1.1.46.1 --- src/lib/libc/gdtoa/gdtoa_fltrnds.h:1.1.1.1 Sat Mar 19 16:26:37 2011 +++ src/lib/libc/gdtoa/gdtoa_fltrnds.h Sun Dec 8 13:35:51 2019 @@ -1,4 +1,5 @@ - FPI *fpi, fpi1; + CONST FPI *fpi; + FPI fpi1; int Rounding; #ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */ Rounding = Flt_Rounds; Index: src/lib/libc/gdtoa/gdtoaimp.h diff -u src/lib/libc/gdtoa/gdtoaimp.h:1.14 src/lib/libc/gdtoa/gdtoaimp.h:1.14.30.1 --- src/lib/libc/gdtoa/gdtoaimp.h:1.14 Fri Apr 19 10:41:53 2013 +++ src/lib/libc/gdtoa/gdtoaimp.h Sun Dec 8 13:35:51 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: gdtoaimp.h,v 1.14 2013/04/19 10:41:53 joerg Exp $ */ +/* $NetBSD: gdtoaimp.h,v 1.14.30.1 2019/12/08 13:35:51 martin Exp $ */ / @@ -200,6 +200,10 @@ THIS SOFTWARE. #include "gd_qnan.h" #ifdef Honor_FLT_ROUNDS #include +__unused __weakref_visible int __libc_fegetround_ref(void) + __weak_reference(fegetround); +#define fegetround() \ + (__libc_fegetround_ref ? __libc_fegetround_ref() : FE_TONEAREST) #endif #ifdef DEBUG
CVS commit: [netbsd-9] src/lib/libc/gdtoa
Module Name:src Committed By: martin Date: Sun Dec 8 13:35:51 UTC 2019 Modified Files: src/lib/libc/gdtoa [netbsd-9]: Makefile.inc gdtoa_fltrnds.h gdtoaimp.h Log Message: Pull up following revision(s) (requested by riastradh in ticket #506): lib/libc/gdtoa/Makefile.inc: revision 1.11 lib/libc/gdtoa/gdtoa_fltrnds.h: revision 1.2 lib/libc/gdtoa/gdtoaimp.h: revision 1.15 lib/libc/gdtoa/gdtoaimp.h: revision 1.17 Honour the floating-point rounding mode in floating-point formatting. C99, Sec. 7.19.6.1 `The fprintf function', paragraph 13, p. 281: (Recommended practice) For e, E, f, F, g, and G conversions, if the number of significant decimal digits is at most DECIMAL_DIG, then the result should be correctly rounded. If the number of significant decimal digits is more than DECIMAL_DIG but the source value is exactly representable with DECIMAL_DIG digits, then the result should be an exact representation with trailing zeros. Otherwise, the source value is bounded by two adjacent decimal strings L < U, both having DECIMAL_DIG significant idgits; the value of the resultant decimal string D should satisfy L <= D <= U, _with the extra stipulation that the error should have a correct sign for the current rounding direction_. [emphasis added] The gdtoa code base already supports respecting the floating-point rounding mode, as long as we compile it with Honor_FLT_ROUNDS defined. However, for this to work, fegetround must be available in libc, which it is not currently -- the fenv logic is in libm. Fortunately, we don't have to move all of fenv from libm to libc -- programs that do not link against libm don't have fesetround, so the rounding mode is always the default (barring asm shenanigans that bypass the API -- tough). So use a weak reference to fegetround; by default, assume FE_TONEAREST if it is not defined. Mark the libc fegetround weak reference unused. Not all .c files that include gdtoaimp.h use it, which makes clang unhappy. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.10.28.1 src/lib/libc/gdtoa/Makefile.inc cvs rdiff -u -r1.1.1.1 -r1.1.1.1.46.1 src/lib/libc/gdtoa/gdtoa_fltrnds.h cvs rdiff -u -r1.14 -r1.14.30.1 src/lib/libc/gdtoa/gdtoaimp.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src
Module Name:src Committed By: martin Date: Sun Dec 8 13:23:23 UTC 2019 Modified Files: src/common/lib/libc/hash/murmurhash [netbsd-9]: murmurhash.c src/sys/arch/amd64/include [netbsd-9]: param.h src/sys/arch/i386/include [netbsd-9]: param.h src/sys/sys [netbsd-9]: param.h Log Message: Pull up following revision(s) (requested by riastradh in ticket #505): common/lib/libc/hash/murmurhash/murmurhash.c: revision 1.7 common/lib/libc/hash/murmurhash/murmurhash.c: revision 1.8 sys/sys/param.h: revision 1.610 sys/arch/amd64/include/param.h: revision 1.31 sys/arch/i386/include/param.h: revision 1.85 New macro ALIGNED_POINTER_LOAD. To be used with ALIGNED_POINTER(p,t) instead of writing *(const t *)p directly. This way, on machines without strict alignment, we can use memcpy to pacify sanitizers, while getting the same compiled code in the end with a single (say) MOV instruction. Fix byte order bug in murmurhash and pacify sanitizers. add now required includes for memcpy prototypes analogue to other hash functions (fix the build) To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.6.28.1 \ src/common/lib/libc/hash/murmurhash/murmurhash.c cvs rdiff -u -r1.30 -r1.30.4.1 src/sys/arch/amd64/include/param.h cvs rdiff -u -r1.84 -r1.84.4.1 src/sys/arch/i386/include/param.h cvs rdiff -u -r1.599.2.2 -r1.599.2.3 src/sys/sys/param.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src
Module Name:src Committed By: martin Date: Sun Dec 8 13:23:23 UTC 2019 Modified Files: src/common/lib/libc/hash/murmurhash [netbsd-9]: murmurhash.c src/sys/arch/amd64/include [netbsd-9]: param.h src/sys/arch/i386/include [netbsd-9]: param.h src/sys/sys [netbsd-9]: param.h Log Message: Pull up following revision(s) (requested by riastradh in ticket #505): common/lib/libc/hash/murmurhash/murmurhash.c: revision 1.7 common/lib/libc/hash/murmurhash/murmurhash.c: revision 1.8 sys/sys/param.h: revision 1.610 sys/arch/amd64/include/param.h: revision 1.31 sys/arch/i386/include/param.h: revision 1.85 New macro ALIGNED_POINTER_LOAD. To be used with ALIGNED_POINTER(p,t) instead of writing *(const t *)p directly. This way, on machines without strict alignment, we can use memcpy to pacify sanitizers, while getting the same compiled code in the end with a single (say) MOV instruction. Fix byte order bug in murmurhash and pacify sanitizers. add now required includes for memcpy prototypes analogue to other hash functions (fix the build) To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.6.28.1 \ src/common/lib/libc/hash/murmurhash/murmurhash.c cvs rdiff -u -r1.30 -r1.30.4.1 src/sys/arch/amd64/include/param.h cvs rdiff -u -r1.84 -r1.84.4.1 src/sys/arch/i386/include/param.h cvs rdiff -u -r1.599.2.2 -r1.599.2.3 src/sys/sys/param.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/common/lib/libc/hash/murmurhash/murmurhash.c diff -u src/common/lib/libc/hash/murmurhash/murmurhash.c:1.6 src/common/lib/libc/hash/murmurhash/murmurhash.c:1.6.28.1 --- src/common/lib/libc/hash/murmurhash/murmurhash.c:1.6 Sat Oct 26 21:06:38 2013 +++ src/common/lib/libc/hash/murmurhash/murmurhash.c Sun Dec 8 13:23:23 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: murmurhash.c,v 1.6 2013/10/26 21:06:38 rmind Exp $ */ +/* $NetBSD: murmurhash.c,v 1.6.28.1 2019/12/08 13:23:23 martin Exp $ */ /* * MurmurHash2 -- from the original code: @@ -14,15 +14,19 @@ #include #if defined(_KERNEL) || defined(_STANDALONE) -__KERNEL_RCSID(0, "$NetBSD: murmurhash.c,v 1.6 2013/10/26 21:06:38 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: murmurhash.c,v 1.6.28.1 2019/12/08 13:23:23 martin Exp $"); + +#include #else #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: murmurhash.c,v 1.6 2013/10/26 21:06:38 rmind Exp $"); +__RCSID("$NetBSD: murmurhash.c,v 1.6.28.1 2019/12/08 13:23:23 martin Exp $"); #endif /* LIBC_SCCS and not lint */ #include "namespace.h" +#include + #endif #include @@ -51,7 +55,10 @@ murmurhash2(const void *key, size_t len, if (__predict_true(ALIGNED_POINTER(key, uint32_t))) { while (len >= sizeof(uint32_t)) { - uint32_t k = *(const uint32_t *)data; + uint32_t k; + + ALIGNED_POINTER_LOAD(, data, uint32_t); + k = htole32(k); k *= m; k ^= k >> r; Index: src/sys/arch/amd64/include/param.h diff -u src/sys/arch/amd64/include/param.h:1.30 src/sys/arch/amd64/include/param.h:1.30.4.1 --- src/sys/arch/amd64/include/param.h:1.30 Sat Mar 16 11:50:48 2019 +++ src/sys/arch/amd64/include/param.h Sun Dec 8 13:23:23 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: param.h,v 1.30 2019/03/16 11:50:48 rin Exp $ */ +/* $NetBSD: param.h,v 1.30.4.1 2019/12/08 13:23:23 martin Exp $ */ #ifdef __x86_64__ @@ -21,7 +21,8 @@ #define MACHINE_ARCH "x86_64" #define MID_MACHINE MID_X86_64 -#define ALIGNED_POINTER(p,t) 1 +#define ALIGNED_POINTER(p,t) 1 +#define ALIGNED_POINTER_LOAD(q,p,t) memcpy((q), (p), sizeof(t)) /* * Align stack as required by AMD64 System V ABI. This is because Index: src/sys/arch/i386/include/param.h diff -u src/sys/arch/i386/include/param.h:1.84 src/sys/arch/i386/include/param.h:1.84.4.1 --- src/sys/arch/i386/include/param.h:1.84 Mon Jan 7 22:00:31 2019 +++ src/sys/arch/i386/include/param.h Sun Dec 8 13:23:23 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: param.h,v 1.84 2019/01/07 22:00:31 jdolecek Exp $ */ +/* $NetBSD: param.h,v 1.84.4.1 2019/12/08 13:23:23 martin Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -58,7 +58,8 @@ #define MACHINE_ARCH "i386" #define MID_MACHINE MID_I386 -#define ALIGNED_POINTER(p,t) 1 +#define ALIGNED_POINTER(p,t) 1 +#define ALIGNED_POINTER_LOAD(q,p,t) memcpy((q), (p), sizeof(t)) #define PGSHIFT 12 /* LOG2(NBPG) */ #define NBPG (1 << PGSHIFT) /* bytes/page */ Index: src/sys/sys/param.h diff -u src/sys/sys/param.h:1.599.2.2 src/sys/sys/param.h:1.599.2.3 --- src/sys/sys/param.h:1.599.2.2 Wed Nov 27 14:34:31 2019 +++ src/sys/sys/param.h Sun Dec 8 13:23:23 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: param.h,v 1.599.2.2 2019/11/27 14:34:31 martin Exp $ */ +/* $NetBSD: param.h,v 1.599.2.3 2019/12/08 13:23:23 martin Exp $ */ /*- * Copyright (c) 1982, 1986, 1989, 1993 @@ -253,9 +253,22 @@ * any desired pointer type. * * ALIGNED_POINTER is a boolean macro
Re: CVS commit: src/sys/kern
On Sun, Dec 08, 2019 at 12:58:20PM +0100, Maxime Villard wrote: > kMSan has special constraints which, in this specific case, come down to: each > function called from a KCOV instrumentation callback must be a static inline > tagged with __nomsan. > > This was not the case with the updated in_interrupt(), but also still isn't > the > case with the lwp_getspecific() call, which will have to be dropped. This does not sound like a good reason to introduce MD code in sys/kern to me. Could should not be made worse to deal with sanitizer restrictions. Are there any alternatives? Martin
CVS commit: src/sys/sys
Module Name:src Committed By: mlelstv Date: Sun Dec 8 13:19:59 UTC 2019 Modified Files: src/sys/sys: param.h Log Message: Welcome 9.99.21. dk_lookup() has been replaced. To generate a diff of this commit: cvs rdiff -u -r1.621 -r1.622 src/sys/sys/param.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/sys/param.h diff -u src/sys/sys/param.h:1.621 src/sys/sys/param.h:1.622 --- src/sys/sys/param.h:1.621 Fri Dec 6 21:07:07 2019 +++ src/sys/sys/param.h Sun Dec 8 13:19:59 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: param.h,v 1.621 2019/12/06 21:07:07 ad Exp $ */ +/* $NetBSD: param.h,v 1.622 2019/12/08 13:19:59 mlelstv Exp $ */ /*- * Copyright (c) 1982, 1986, 1989, 1993 @@ -67,7 +67,7 @@ * 2.99.9 (299000900) */ -#define __NetBSD_Version__ 999002000 /* NetBSD 9.99.20 */ +#define __NetBSD_Version__ 999002100 /* NetBSD 9.99.21 */ #define __NetBSD_Prereq__(M,m,p) (M) * 1) + \ (m) * 100) + (p) * 100) <= __NetBSD_Version__)
CVS commit: src/sys/sys
Module Name:src Committed By: mlelstv Date: Sun Dec 8 13:19:59 UTC 2019 Modified Files: src/sys/sys: param.h Log Message: Welcome 9.99.21. dk_lookup() has been replaced. To generate a diff of this commit: cvs rdiff -u -r1.621 -r1.622 src/sys/sys/param.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Re: CVS commit: src/sys/kern
Le 08/12/2019 à 00:51, Kamil Rytarowski a écrit : On 08.12.2019 00:35, matthew green wrote: Module Name:src Committed By: kamil Date: Sat Dec 7 19:50:34 UTC 2019 Modified Files: src/sys/kern: subr_kcov.c Log Message: Revert the in_interrupt() change to use again the x86 specific code This is prerequisite for kMSan and upcoming kernel changes. Discussed with why is this? what is the problem? kMSan has special constraints which, in this specific case, come down to: each function called from a KCOV instrumentation callback must be a static inline tagged with __nomsan. This was not the case with the updated in_interrupt(), but also still isn't the case with the lwp_getspecific() call, which will have to be dropped.
CVS commit: [netbsd-9] src/share/man/man4
Module Name:src Committed By: martin Date: Sun Dec 8 13:16:53 UTC 2019 Modified Files: src/share/man/man4 [netbsd-9]: rnd.4 Log Message: Pull up following revision(s) (requested by riastradh in ticket #504): share/man/man4/rnd.4: revision 1.26 share/man/man4/rnd.4: revision 1.27 share/man/man4/rnd.4: revision 1.28 share/man/man4/rnd.4: revision 1.25 Update man page to reflect switch from CTR_DRBG to Hash_DRBG. Replace slightly wrong rant by shorter and slightly less long rant. (If X and Y in Z/2Z are independent, then so are X and X+Y. What was I thinking.) Update NIST SP800-90A reference. New sentence, new line. Use \(em. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.24.14.1 src/share/man/man4/rnd.4 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/share/man/man4/rnd.4 diff -u src/share/man/man4/rnd.4:1.24 src/share/man/man4/rnd.4:1.24.14.1 --- src/share/man/man4/rnd.4:1.24 Wed Jan 18 22:38:00 2017 +++ src/share/man/man4/rnd.4 Sun Dec 8 13:16:53 2019 @@ -1,4 +1,4 @@ -.\" $NetBSD: rnd.4,v 1.24 2017/01/18 22:38:00 abhinav Exp $ +.\" $NetBSD: rnd.4,v 1.24.14.1 2019/12/08 13:16:53 martin Exp $ .\" .\" Copyright (c) 2014 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd November 16, 2014 +.Dd September 3, 2019 .Dt RND 4 .Os .Sh NAME @@ -187,8 +187,8 @@ quantum computers. Systems with nonvolatile storage should store a secret from .Pa /dev/urandom on disk during installation or shutdown, and feed it back during boot, -so that the work the operating system has done to gather entropy -- -including the work its operator may have done to flip a coin! -- can be +so that the work the operating system has done to gather entropy \(em +including the work its operator may have done to flip a coin! \(em can be saved from one boot to the next, and so that newly installed systems are not vulnerable to generating cryptographic keys predictably. .Pp @@ -205,7 +205,7 @@ in which is enabled by default; see .Xr rc.conf 5 . .Sh LIMITATIONS -Some people worry about recovery from state compromise -- that is, +Some people worry about recovery from state compromise \(em that is, ensuring that even if an attacker sees the entire state of the operating system, then the attacker will be unable to predict any new future outputs as long as the operating system gathers fresh entropy @@ -404,9 +404,9 @@ When a user process opens or .Pa /dev/urandom and first reads from it, the kernel draws from the entropy pool to seed -a cryptographic pseudorandom number generator, the NIST CTR_DRBG -(counter-mode deterministic random bit generator) with AES-128 as the -block cipher, and uses that to generate data. +a cryptographic pseudorandom number generator, the NIST Hash_DRBG +(hash-based deterministic random bit generator) with SHA-256 as the +hash function, and uses that to generate data. .Pp To draw a seed from the entropy pool, the kernel .Bl -bullet -offset abcd -compact @@ -489,10 +489,10 @@ Never blocks. .%A Elaine Barker .%A John Kelsey .%T Recommendation for Random Number Generation Using Deterministic Random Bit Generators -.%D January 2012 +.%D June 2015 .%I National Institute of Standards and Technology -.%O NIST Special Publication 800-90A -.%U http://csrc.nist.gov/publications/nistpubs/800-90A/SP800-90A.pdf +.%O NIST Special Publication 800-90A, Revision 1 +.%U https://csrc.nist.gov/publications/detail/sp/800-90a/rev-1/final .Re .Rs .%A Daniel J. Bernstein @@ -551,59 +551,33 @@ Unfortunately, no amount of software eng .Sh ENTROPY ACCOUNTING The entropy accounting described here is not grounded in any cryptography theory. -It is done because it was always done, and because it gives people a -warm fuzzy feeling about information theory. +.Sq Entropy estimation +doesn't mean much: the kernel hypothesizes an extremely simple-minded +parametric model for all entropy sources which bears little relation to +any physical processes, implicitly fits parameters from data, and +accounts for the entropy of the fitted model. .Pp -The folklore is that every -.Fa n Ns -bit -output of -.Fa /dev/random -is not merely indistinguishable from uniform random to a -computationally bounded attacker, but information-theoretically is -independent and has -.Fa n -bits of entropy even to a computationally -.Em unbounded -attacker -- that is, an attacker who can recover AES keys, compute -SHA-1 preimages, etc. -This property is not provided, nor was it ever provided in any -implementation of -.Fa /dev/random -known to the author. -.Pp -This property would require that, after each read, the system discard -all measurements from hardware in the entropy pool and begin anew. -All work done to make the system unpredictable
CVS commit: [netbsd-9] src/share/man/man4
Module Name:src Committed By: martin Date: Sun Dec 8 13:16:53 UTC 2019 Modified Files: src/share/man/man4 [netbsd-9]: rnd.4 Log Message: Pull up following revision(s) (requested by riastradh in ticket #504): share/man/man4/rnd.4: revision 1.26 share/man/man4/rnd.4: revision 1.27 share/man/man4/rnd.4: revision 1.28 share/man/man4/rnd.4: revision 1.25 Update man page to reflect switch from CTR_DRBG to Hash_DRBG. Replace slightly wrong rant by shorter and slightly less long rant. (If X and Y in Z/2Z are independent, then so are X and X+Y. What was I thinking.) Update NIST SP800-90A reference. New sentence, new line. Use \(em. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.24.14.1 src/share/man/man4/rnd.4 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/sys/stand/efiboot
Module Name:src Committed By: martin Date: Sun Dec 8 13:13:06 UTC 2019 Modified Files: src/sys/stand/efiboot [netbsd-9]: Makefile.efiboot efiacpi.c version Added Files: src/sys/stand/efiboot [netbsd-9]: smbios.c smbios.h Log Message: Pull up following revision(s) (requested by jmcneill in ticket #503): sys/stand/efiboot/Makefile.efiboot: revision 1.9 sys/stand/efiboot/efiacpi.c: revision 1.5 sys/stand/efiboot/version: revision 1.13 sys/stand/efiboot/smbios.h: revision 1.1 sys/stand/efiboot/smbios.c: revision 1.1 Use SMBIOS system vendor and product strings to create a "model" string for the root node in the fabricated ACPI device tree, when possible. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.8.2.1 src/sys/stand/efiboot/Makefile.efiboot cvs rdiff -u -r1.3.6.1 -r1.3.6.2 src/sys/stand/efiboot/efiacpi.c cvs rdiff -u -r0 -r1.1.2.2 src/sys/stand/efiboot/smbios.c \ src/sys/stand/efiboot/smbios.h cvs rdiff -u -r1.11.2.1 -r1.11.2.2 src/sys/stand/efiboot/version Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/stand/efiboot/Makefile.efiboot diff -u src/sys/stand/efiboot/Makefile.efiboot:1.8 src/sys/stand/efiboot/Makefile.efiboot:1.8.2.1 --- src/sys/stand/efiboot/Makefile.efiboot:1.8 Sun Jul 21 17:01:39 2019 +++ src/sys/stand/efiboot/Makefile.efiboot Sun Dec 8 13:13:06 2019 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.efiboot,v 1.8 2019/07/21 17:01:39 rin Exp $ +# $NetBSD: Makefile.efiboot,v 1.8.2.1 2019/12/08 13:13:06 martin Exp $ S= ${.CURDIR}/../../.. @@ -22,7 +22,7 @@ AFLAGS.start.S= ${${ACTIVE_CC} == "clang .PATH: ${EFIDIR}/gnuefi SOURCES= crt0-efi-${GNUEFIARCH}.S reloc_${GNUEFIARCH}.c SOURCES+= boot.c conf.c console.c dev_net.c devopen.c exec.c panic.c prompt.c -SOURCES+= efiboot.c efichar.c efidev.c efienv.c efigetsecs.c efifdt.c efifile.c efiblock.c efinet.c efipxe.c efiacpi.c +SOURCES+= efiboot.c efichar.c efidev.c efienv.c efigetsecs.c efifdt.c efifile.c efiblock.c efinet.c efipxe.c efiacpi.c smbios.c .PATH: ${S}/external/bsd/libfdt/dist CPPFLAGS+= -I${S}/external/bsd/libfdt/dist Index: src/sys/stand/efiboot/efiacpi.c diff -u src/sys/stand/efiboot/efiacpi.c:1.3.6.1 src/sys/stand/efiboot/efiacpi.c:1.3.6.2 --- src/sys/stand/efiboot/efiacpi.c:1.3.6.1 Sun Aug 4 11:37:56 2019 +++ src/sys/stand/efiboot/efiacpi.c Sun Dec 8 13:13:06 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: efiacpi.c,v 1.3.6.1 2019/08/04 11:37:56 martin Exp $ */ +/* $NetBSD: efiacpi.c,v 1.3.6.2 2019/12/08 13:13:06 martin Exp $ */ /*- * Copyright (c) 2018 The NetBSD Foundation, Inc. @@ -32,6 +32,7 @@ #include "efiboot.h" #include "efiacpi.h" #include "efifdt.h" +#include "smbios.h" #include @@ -77,6 +78,39 @@ efi_acpi_show(void) printf("\n"); } +static char model_buf[128]; + +static const char * +efi_acpi_get_model(void) +{ + struct smbtable smbios; + struct smbios_sys *psys; + const char *s; + char *buf; + + memset(model_buf, 0, sizeof(model_buf)); + + if (smbios3_table != NULL) { + smbios_init(smbios3_table); + + buf = model_buf; + smbios.cookie = 0; + if (smbios_find_table(SMBIOS_TYPE_SYSTEM, )) { + psys = smbios.tblhdr; + if ((s = smbios_get_string(, psys->vendor, buf, 64)) != NULL) { +buf += strlen(s); +*buf++ = ' '; + } + smbios_get_string(, psys->product, buf, 64); + } + } + + if (model_buf[0] == '\0') + strcpy(model_buf, "ACPI"); + + return model_buf; +} + int efi_acpi_create_fdt(void) { @@ -94,8 +128,10 @@ efi_acpi_create_fdt(void) if (error) return EIO; + const char *model = efi_acpi_get_model(); + fdt_setprop_string(fdt, fdt_path_offset(fdt, "/"), "compatible", "netbsd,generic-acpi"); - fdt_setprop_string(fdt, fdt_path_offset(fdt, "/"), "model", "ACPI"); + fdt_setprop_string(fdt, fdt_path_offset(fdt, "/"), "model", model); fdt_setprop_cell(fdt, fdt_path_offset(fdt, "/"), "#address-cells", 2); fdt_setprop_cell(fdt, fdt_path_offset(fdt, "/"), "#size-cells", 2); Index: src/sys/stand/efiboot/version diff -u src/sys/stand/efiboot/version:1.11.2.1 src/sys/stand/efiboot/version:1.11.2.2 --- src/sys/stand/efiboot/version:1.11.2.1 Sun Aug 4 11:37:56 2019 +++ src/sys/stand/efiboot/version Sun Dec 8 13:13:06 2019 @@ -1,4 +1,4 @@ -$NetBSD: version,v 1.11.2.1 2019/08/04 11:37:56 martin Exp $ +$NetBSD: version,v 1.11.2.2 2019/12/08 13:13:06 martin Exp $ NOTE ANY CHANGES YOU MAKE TO THE EFI BOOTLOADER HERE. The format of this file is important - make sure the entries are appended on end, last item @@ -16,3 +16,4 @@ is taken as the current. 1.9: Add support for efiboot.plist and loading device tree overlays. 1.10: Add support for EFI GOP framebuffers in ACPI mode. 1.11: Add full UEFI memory map to /chosen node. +1.12: Derive ACPI model string from SMBIOS. Added files: Index: src/sys/stand/efiboot/smbios.c diff -u /dev/null src/sys/stand/efiboot/smbios.c:1.1.2.2 --- /dev/null Sun Dec 8
CVS commit: [netbsd-9] src/sys/stand/efiboot
Module Name:src Committed By: martin Date: Sun Dec 8 13:13:06 UTC 2019 Modified Files: src/sys/stand/efiboot [netbsd-9]: Makefile.efiboot efiacpi.c version Added Files: src/sys/stand/efiboot [netbsd-9]: smbios.c smbios.h Log Message: Pull up following revision(s) (requested by jmcneill in ticket #503): sys/stand/efiboot/Makefile.efiboot: revision 1.9 sys/stand/efiboot/efiacpi.c: revision 1.5 sys/stand/efiboot/version: revision 1.13 sys/stand/efiboot/smbios.h: revision 1.1 sys/stand/efiboot/smbios.c: revision 1.1 Use SMBIOS system vendor and product strings to create a "model" string for the root node in the fabricated ACPI device tree, when possible. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.8.2.1 src/sys/stand/efiboot/Makefile.efiboot cvs rdiff -u -r1.3.6.1 -r1.3.6.2 src/sys/stand/efiboot/efiacpi.c cvs rdiff -u -r0 -r1.1.2.2 src/sys/stand/efiboot/smbios.c \ src/sys/stand/efiboot/smbios.h cvs rdiff -u -r1.11.2.1 -r1.11.2.2 src/sys/stand/efiboot/version Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/sys/arch/x86
Module Name:src Committed By: martin Date: Sun Dec 8 13:09:28 UTC 2019 Modified Files: src/sys/arch/x86/include [netbsd-9]: genfb_machdep.h src/sys/arch/x86/x86 [netbsd-9]: genfb_machdep.c hyperv.c Log Message: Pull up following revision(s) (requested by nonaka in ticket #502): sys/arch/x86/x86/hyperv.c: revision 1.5 sys/arch/x86/include/genfb_machdep.h: revision 1.4 sys/arch/x86/x86/genfb_machdep.c: revision 1.15 Prevent panic when attaching genfb if using a serial console with Hyper-V Gen.2. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.3.60.1 src/sys/arch/x86/include/genfb_machdep.h cvs rdiff -u -r1.13 -r1.13.2.1 src/sys/arch/x86/x86/genfb_machdep.c cvs rdiff -u -r1.4 -r1.4.4.1 src/sys/arch/x86/x86/hyperv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/sys/arch/x86
Module Name:src Committed By: martin Date: Sun Dec 8 13:09:28 UTC 2019 Modified Files: src/sys/arch/x86/include [netbsd-9]: genfb_machdep.h src/sys/arch/x86/x86 [netbsd-9]: genfb_machdep.c hyperv.c Log Message: Pull up following revision(s) (requested by nonaka in ticket #502): sys/arch/x86/x86/hyperv.c: revision 1.5 sys/arch/x86/include/genfb_machdep.h: revision 1.4 sys/arch/x86/x86/genfb_machdep.c: revision 1.15 Prevent panic when attaching genfb if using a serial console with Hyper-V Gen.2. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.3.60.1 src/sys/arch/x86/include/genfb_machdep.h cvs rdiff -u -r1.13 -r1.13.2.1 src/sys/arch/x86/x86/genfb_machdep.c cvs rdiff -u -r1.4 -r1.4.4.1 src/sys/arch/x86/x86/hyperv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/x86/include/genfb_machdep.h diff -u src/sys/arch/x86/include/genfb_machdep.h:1.3 src/sys/arch/x86/include/genfb_machdep.h:1.3.60.1 --- src/sys/arch/x86/include/genfb_machdep.h:1.3 Wed Feb 9 13:24:23 2011 +++ src/sys/arch/x86/include/genfb_machdep.h Sun Dec 8 13:09:28 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: genfb_machdep.h,v 1.3 2011/02/09 13:24:23 jmcneill Exp $ */ +/* $NetBSD: genfb_machdep.h,v 1.3.60.1 2019/12/08 13:09:28 martin Exp $ */ /*- * Copyright (c) 2009 Jared D. McNeill @@ -29,6 +29,7 @@ #ifndef _X86_GENFB_MACHDEP_H #define _X86_GENFB_MACHDEP_H +int x86_genfb_init(void); int x86_genfb_cnattach(void); void x86_genfb_mtrr_init(uint64_t, uint32_t); void x86_genfb_set_console_dev(device_t); Index: src/sys/arch/x86/x86/genfb_machdep.c diff -u src/sys/arch/x86/x86/genfb_machdep.c:1.13 src/sys/arch/x86/x86/genfb_machdep.c:1.13.2.1 --- src/sys/arch/x86/x86/genfb_machdep.c:1.13 Sun May 19 07:43:17 2019 +++ src/sys/arch/x86/x86/genfb_machdep.c Sun Dec 8 13:09:28 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: genfb_machdep.c,v 1.13 2019/05/19 07:43:17 mlelstv Exp $ */ +/* $NetBSD: genfb_machdep.c,v 1.13.2.1 2019/12/08 13:09:28 martin Exp $ */ /*- * Copyright (c) 2009 Jared D. McNeill @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: genfb_machdep.c,v 1.13 2019/05/19 07:43:17 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: genfb_machdep.c,v 1.13.2.1 2019/12/08 13:09:28 martin Exp $"); #include "opt_mtrr.h" @@ -136,23 +136,19 @@ x86_genfb_mtrr_init(uint64_t physaddr, u } int -x86_genfb_cnattach(void) +x86_genfb_init(void) { - static int ncalls = 0; + static int inited, attached; struct rasops_info *ri = _genfb_console_screen.scr_ri; const struct btinfo_framebuffer *fbinfo; bus_space_tag_t t = x86_bus_space_mem; bus_space_handle_t h; void *bits; - long defattr; int err; - /* XXX jmcneill - * Defer console initialization until UVM is initialized - */ - ++ncalls; - if (ncalls < 3) - return -1; + if (inited) + return attached; + inited = 1; memset(_genfb_console_screen, 0, sizeof(x86_genfb_console_screen)); @@ -206,6 +202,27 @@ x86_genfb_cnattach(void) x86_genfb_stdscreen.textops = >ri_ops; x86_genfb_stdscreen.capabilities = ri->ri_caps; + attached = 1; + return 1; +} + +int +x86_genfb_cnattach(void) +{ + static int ncalls = 0; + struct rasops_info *ri = _genfb_console_screen.scr_ri; + long defattr; + + /* XXX jmcneill + * Defer console initialization until UVM is initialized + */ + ++ncalls; + if (ncalls < 3) + return -1; + + if (!x86_genfb_init()) + return 0; + ri->ri_ops.allocattr(ri, 0, 0, 0, ); wsdisplay_preattach(_genfb_stdscreen, ri, 0, 0, defattr); @@ -213,6 +230,12 @@ x86_genfb_cnattach(void) } #else /* NWSDISPLAY > 0 && NGENFB > 0 */ int +x86_genfb_init(void) +{ + return 0; +} + +int x86_genfb_cnattach(void) { return 0; Index: src/sys/arch/x86/x86/hyperv.c diff -u src/sys/arch/x86/x86/hyperv.c:1.4 src/sys/arch/x86/x86/hyperv.c:1.4.4.1 --- src/sys/arch/x86/x86/hyperv.c:1.4 Mon Jun 3 09:51:04 2019 +++ src/sys/arch/x86/x86/hyperv.c Sun Dec 8 13:09:28 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: hyperv.c,v 1.4 2019/06/03 09:51:04 nonaka Exp $ */ +/* $NetBSD: hyperv.c,v 1.4.4.1 2019/12/08 13:09:28 martin Exp $ */ /*- * Copyright (c) 2009-2012,2016-2017 Microsoft Corp. @@ -33,7 +33,7 @@ */ #include #ifdef __KERNEL_RCSID -__KERNEL_RCSID(0, "$NetBSD: hyperv.c,v 1.4 2019/06/03 09:51:04 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hyperv.c,v 1.4.4.1 2019/12/08 13:09:28 martin Exp $"); #endif #ifdef __FBSDID __FBSDID("$FreeBSD: head/sys/dev/hyperv/vmbus/hyperv.c 331757 2018-03-30 02:25:12Z emaste $"); @@ -70,7 +70,7 @@ __FBSDID("$FreeBSD: head/sys/dev/hyperv/ #include #include -#include +#include #include #include @@ -1103,6 +1103,9 @@ device_hyperv_register(device_t dev, voi sizeof(*aa->aa_type)) == 0) { prop_dictionary_t dict = device_properties(dev); + /* Initialize genfb for serial console */ + x86_genfb_init(); + /* * framebuffer drivers other than genfb can work
CVS commit: [netbsd-9] src/games/fortune/datfiles
Module Name:src Committed By: martin Date: Sun Dec 8 13:06:37 UTC 2019 Modified Files: src/games/fortune/datfiles [netbsd-9]: fortunes netbsd Log Message: Pull up following revision(s) (requested by sevan in ticket #501): games/fortune/datfiles/fortunes: revision 1.83 games/fortune/datfiles/fortunes: revision 1.84 games/fortune/datfiles/fortunes: revision 1.85 games/fortune/datfiles/fortunes: revision 1.86 games/fortune/datfiles/netbsd: revision 1.29 Donnie Darko Chris' happiest moment http://bbc.co.uk/programmes/b09b1zbb Definition of austerity by Alexei Sayle on Radio 4 https://web.archive.org/web/20190916192807/https://www.bbc.co.uk/sounds/play/m0008bbc https://twitter.com/sei6r/status/1182433546331279360 Introspection. From "Surely You're Joking, Mr. Feynman!" To generate a diff of this commit: cvs rdiff -u -r1.82 -r1.82.2.1 src/games/fortune/datfiles/fortunes cvs rdiff -u -r1.28 -r1.28.14.1 src/games/fortune/datfiles/netbsd Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/games/fortune/datfiles
Module Name:src Committed By: martin Date: Sun Dec 8 13:06:37 UTC 2019 Modified Files: src/games/fortune/datfiles [netbsd-9]: fortunes netbsd Log Message: Pull up following revision(s) (requested by sevan in ticket #501): games/fortune/datfiles/fortunes: revision 1.83 games/fortune/datfiles/fortunes: revision 1.84 games/fortune/datfiles/fortunes: revision 1.85 games/fortune/datfiles/fortunes: revision 1.86 games/fortune/datfiles/netbsd: revision 1.29 Donnie Darko Chris' happiest moment http://bbc.co.uk/programmes/b09b1zbb Definition of austerity by Alexei Sayle on Radio 4 https://web.archive.org/web/20190916192807/https://www.bbc.co.uk/sounds/play/m0008bbc https://twitter.com/sei6r/status/1182433546331279360 Introspection. From "Surely You're Joking, Mr. Feynman!" To generate a diff of this commit: cvs rdiff -u -r1.82 -r1.82.2.1 src/games/fortune/datfiles/fortunes cvs rdiff -u -r1.28 -r1.28.14.1 src/games/fortune/datfiles/netbsd Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/games/fortune/datfiles/fortunes diff -u src/games/fortune/datfiles/fortunes:1.82 src/games/fortune/datfiles/fortunes:1.82.2.1 --- src/games/fortune/datfiles/fortunes:1.82 Fri Jul 26 07:41:22 2019 +++ src/games/fortune/datfiles/fortunes Sun Dec 8 13:06:37 2019 @@ -16271,3 +16271,21 @@ that was instantly responsive to every a you derive from that? -- Douglas Engelbart, Fall Joint Computer Conference, December 9th, 1968 +% +They made me do it +% +It was the first thing that I formed a really powerful bond with. +It was some sort of mental love missile and I just lit the touch paper and +fired myself into it, at oblivious speed, and it exploded, and sparkled and it +was totally beautiful. + -- Chris Packham and the kestrel +% +Austerity is the idea that the global financial crash of 2008 was caused by +there being too many libraries in Wolverhampton. + -- Alexei Sayle +% +I wonder why. I wonder why. +I wonder why I wonder. +I wonder why I wonder why +I wonder why I wonder! + -- Richard P. Feynman, "Always Trying to Escape" Index: src/games/fortune/datfiles/netbsd diff -u src/games/fortune/datfiles/netbsd:1.28 src/games/fortune/datfiles/netbsd:1.28.14.1 --- src/games/fortune/datfiles/netbsd:1.28 Sun Apr 16 20:08:59 2017 +++ src/games/fortune/datfiles/netbsd Sun Dec 8 13:06:37 2019 @@ -552,3 +552,6 @@ NetBSD: Dead on Target -- Gimpy % NetBSD JIHBED +% +It's my happy place. + -- zmh
CVS commit: [netbsd-9] src/usr.bin/calendar/calendars
Module Name:src Committed By: martin Date: Sun Dec 8 13:01:10 UTC 2019 Modified Files: src/usr.bin/calendar/calendars [netbsd-9]: calendar.birthday calendar.computer calendar.music calendar.netbsd calendar.usholiday Log Message: Pull up following revision(s) (requested by sevan in ticket #500): usr.bin/calendar/calendars/calendar.music: revision 1.20 usr.bin/calendar/calendars/calendar.computer: revision 1.8 usr.bin/calendar/calendars/calendar.computer: revision 1.9 usr.bin/calendar/calendars/calendar.usholiday: revision 1.9 usr.bin/calendar/calendars/calendar.birthday: revision 1.30 usr.bin/calendar/calendars/calendar.birthday: revision 1.31 usr.bin/calendar/calendars/calendar.birthday: revision 1.32 usr.bin/calendar/calendars/calendar.birthday: revision 1.33 usr.bin/calendar/calendars/calendar.birthday: revision 1.34 usr.bin/calendar/calendars/calendar.birthday: revision 1.35 usr.bin/calendar/calendars/calendar.netbsd: revision 1.41 usr.bin/calendar/calendars/calendar.netbsd: revision 1.42 usr.bin/calendar/calendars/calendar.netbsd: revision 1.43 Add Danny Cohen https://www.nytimes.com/2019/08/16/obituaries/danny-cohen-who-helped-set-the-stage-for-a-digital-era-dies-at-81.html Add 8.1 release sort We use spaces, not tabs here Add Alan Perlis Add SICP https://twitter.com/mit_csail/status/1164226910035087360 Add Ted Nelson's birthday Belatedly update several entries that move from year to year. Add Aaron Swartz and Steve Jobs Add Grace Hopper and Richard Feynman Sort To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.29.2.1 \ src/usr.bin/calendar/calendars/calendar.birthday cvs rdiff -u -r1.7 -r1.7.2.1 src/usr.bin/calendar/calendars/calendar.computer cvs rdiff -u -r1.19 -r1.19.2.1 src/usr.bin/calendar/calendars/calendar.music cvs rdiff -u -r1.40 -r1.40.2.1 src/usr.bin/calendar/calendars/calendar.netbsd cvs rdiff -u -r1.8 -r1.8.4.1 \ src/usr.bin/calendar/calendars/calendar.usholiday Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/usr.bin/calendar/calendars/calendar.birthday diff -u src/usr.bin/calendar/calendars/calendar.birthday:1.29 src/usr.bin/calendar/calendars/calendar.birthday:1.29.2.1 --- src/usr.bin/calendar/calendars/calendar.birthday:1.29 Sun Jul 14 10:43:01 2019 +++ src/usr.bin/calendar/calendars/calendar.birthday Sun Dec 8 13:01:10 2019 @@ -1,6 +1,7 @@ +01/01 Grace Brewster Murray Hopper died in Arlington, Virginia, 1992 +01/01 Heinz Zemanek born in Vienna, Austria, 1920 01/01 J.D. Salinger born, 1919 01/01 Paul Revere born in Boston, 1735 -01/01 Heinz Zemanek born in Vienna, Austria, 1920 01/02 Isaac Asimov born in Petrovichi, Russian SFSR (now Russia), 1920 01/04 George Washington Carver born in Missouri, 1864 01/04 Jakob Grimm born, 1785 @@ -8,6 +9,7 @@ 01/05 DeWitt B. Brace born, 1859, inventor of spectrophotometer 01/08 Stephen Hawking born in Oxford, England, 1942 01/10 Ethan Allen born, 1738 +01/11 Aaron Hillel Swartz died in Brooklyn, New York, 2013 01/11 Alexander Hamilton born in Nevis, British West Indies, 1757? 01/12 "Long" John Baldry born in London, 1941 01/13 Horatio Alger born, 1834 @@ -20,8 +22,8 @@ 01/19 Robert Edward Lee born in Stratford Estate, Virginia, 1807 01/20 Buzz Aldrin born, 1930 01/20 George Burns born, 1898 -01/21 Vladimir Lenin died, 1924 01/21 Thomas Jonathan "Stonewall" Jackson born in Clarksburg, VA, 1824 +01/21 Vladimir Lenin died, 1924 01/22 Sir Francis Bacon born, 1561 01/23 Ernst Abbe born, 1840, formulated diffraction theory 01/23 Humphrey Bogart born in New York City, 1899 @@ -37,6 +39,7 @@ 02/03 Gertrude Stein born, 1874 02/05 Alex Harvey (SAHB) born in Glasgow, Scotland, 1935 02/06 King George VI of UK dies; his daughter becomes Elizabeth II, 1952 +02/07 Alay Jay Perlis died in New Haven, Connecticut, 1990 02/07 Sinclair Lewis born, 1885 02/08 Friedleib F. Runge born, 1795, father of paper chromatography 02/08 John von Neumann died, 1957 @@ -49,6 +52,7 @@ 02/12 Abraham Lincoln born, 1809 02/12 Charles Darwin born in Shrewsbury, England, 1809 02/15 Galileo Galilei born in Pisa, Italy, 1564 +02/15 Richard Philips Feynman died in Los Angeles, California, 1988 02/15 Susan B. Anthony born, 1820 02/16 Pierre Bouguer born, 1698, founder of photometry 02/17 Frederick Eugene Ives born, 1856, pioneer of halftone @@ -61,6 +65,7 @@ 02/22 George Washington born, 1732 02/22 Pierre Jules Cesar Janssen born, 1838, found hydrogen in the sun 02/23 W.E.B. DuBois born, 1868 +02/24 Steven Paul Jobs was born in San Francisco, California, 1955 02/24 Winslow Homer born, 1836 02/25 George Harrison born in Liverpool, England, 1943 02/25 Renoir born, 1841 @@ -75,17 +80,17 @@ 03/07 Sir John Frederick William Herschel born, 1792, astronomer 03/08 Alvan Clark born, 1804, astronomer
CVS commit: [netbsd-9] src/usr.bin/calendar/calendars
Module Name:src Committed By: martin Date: Sun Dec 8 13:01:10 UTC 2019 Modified Files: src/usr.bin/calendar/calendars [netbsd-9]: calendar.birthday calendar.computer calendar.music calendar.netbsd calendar.usholiday Log Message: Pull up following revision(s) (requested by sevan in ticket #500): usr.bin/calendar/calendars/calendar.music: revision 1.20 usr.bin/calendar/calendars/calendar.computer: revision 1.8 usr.bin/calendar/calendars/calendar.computer: revision 1.9 usr.bin/calendar/calendars/calendar.usholiday: revision 1.9 usr.bin/calendar/calendars/calendar.birthday: revision 1.30 usr.bin/calendar/calendars/calendar.birthday: revision 1.31 usr.bin/calendar/calendars/calendar.birthday: revision 1.32 usr.bin/calendar/calendars/calendar.birthday: revision 1.33 usr.bin/calendar/calendars/calendar.birthday: revision 1.34 usr.bin/calendar/calendars/calendar.birthday: revision 1.35 usr.bin/calendar/calendars/calendar.netbsd: revision 1.41 usr.bin/calendar/calendars/calendar.netbsd: revision 1.42 usr.bin/calendar/calendars/calendar.netbsd: revision 1.43 Add Danny Cohen https://www.nytimes.com/2019/08/16/obituaries/danny-cohen-who-helped-set-the-stage-for-a-digital-era-dies-at-81.html Add 8.1 release sort We use spaces, not tabs here Add Alan Perlis Add SICP https://twitter.com/mit_csail/status/1164226910035087360 Add Ted Nelson's birthday Belatedly update several entries that move from year to year. Add Aaron Swartz and Steve Jobs Add Grace Hopper and Richard Feynman Sort To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.29.2.1 \ src/usr.bin/calendar/calendars/calendar.birthday cvs rdiff -u -r1.7 -r1.7.2.1 src/usr.bin/calendar/calendars/calendar.computer cvs rdiff -u -r1.19 -r1.19.2.1 src/usr.bin/calendar/calendars/calendar.music cvs rdiff -u -r1.40 -r1.40.2.1 src/usr.bin/calendar/calendars/calendar.netbsd cvs rdiff -u -r1.8 -r1.8.4.1 \ src/usr.bin/calendar/calendars/calendar.usholiday Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/sys/arch
Module Name:src Committed By: martin Date: Sun Dec 8 12:57:21 UTC 2019 Modified Files: src/sys/arch/arm/ti [netbsd-9]: am3_prcm.c files.ti src/sys/arch/evbarm/conf [netbsd-9]: GENERIC Added Files: src/sys/arch/arm/ti [netbsd-9]: ti_wdt.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #499): sys/arch/arm/ti/ti_wdt.c: revision 1.1 sys/arch/arm/ti/am3_prcm.c: revision 1.12 sys/arch/arm/ti/files.ti: revision 1.21 sys/arch/evbarm/conf/GENERIC: revision 1.68 Add TI OMAP watchdog timer driver. Add tiwdt To generate a diff of this commit: cvs rdiff -u -r1.1.10.2 -r1.1.10.3 src/sys/arch/arm/ti/am3_prcm.c cvs rdiff -u -r1.4.4.1 -r1.4.4.2 src/sys/arch/arm/ti/files.ti cvs rdiff -u -r0 -r1.1.2.2 src/sys/arch/arm/ti/ti_wdt.c cvs rdiff -u -r1.48.2.4 -r1.48.2.5 src/sys/arch/evbarm/conf/GENERIC Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [netbsd-9] src/sys/arch
Module Name:src Committed By: martin Date: Sun Dec 8 12:57:21 UTC 2019 Modified Files: src/sys/arch/arm/ti [netbsd-9]: am3_prcm.c files.ti src/sys/arch/evbarm/conf [netbsd-9]: GENERIC Added Files: src/sys/arch/arm/ti [netbsd-9]: ti_wdt.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #499): sys/arch/arm/ti/ti_wdt.c: revision 1.1 sys/arch/arm/ti/am3_prcm.c: revision 1.12 sys/arch/arm/ti/files.ti: revision 1.21 sys/arch/evbarm/conf/GENERIC: revision 1.68 Add TI OMAP watchdog timer driver. Add tiwdt To generate a diff of this commit: cvs rdiff -u -r1.1.10.2 -r1.1.10.3 src/sys/arch/arm/ti/am3_prcm.c cvs rdiff -u -r1.4.4.1 -r1.4.4.2 src/sys/arch/arm/ti/files.ti cvs rdiff -u -r0 -r1.1.2.2 src/sys/arch/arm/ti/ti_wdt.c cvs rdiff -u -r1.48.2.4 -r1.48.2.5 src/sys/arch/evbarm/conf/GENERIC Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/ti/am3_prcm.c diff -u src/sys/arch/arm/ti/am3_prcm.c:1.1.10.2 src/sys/arch/arm/ti/am3_prcm.c:1.1.10.3 --- src/sys/arch/arm/ti/am3_prcm.c:1.1.10.2 Sun Dec 8 12:54:10 2019 +++ src/sys/arch/arm/ti/am3_prcm.c Sun Dec 8 12:57:21 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: am3_prcm.c,v 1.1.10.2 2019/12/08 12:54:10 martin Exp $ */ +/* $NetBSD: am3_prcm.c,v 1.1.10.3 2019/12/08 12:57:21 martin Exp $ */ /*- * Copyright (c) 2017 Jared McNeill @@ -28,7 +28,7 @@ #include -__KERNEL_RCSID(1, "$NetBSD: am3_prcm.c,v 1.1.10.2 2019/12/08 12:54:10 martin Exp $"); +__KERNEL_RCSID(1, "$NetBSD: am3_prcm.c,v 1.1.10.3 2019/12/08 12:57:21 martin Exp $"); #include #include @@ -169,6 +169,8 @@ static struct ti_prcm_clk am3_prcm_clks[ AM3_PRCM_HWMOD_PER("timer6", 0xf0, "FIXED_24MHZ"), AM3_PRCM_HWMOD_PER("timer7", 0x7c, "FIXED_24MHZ"), + AM3_PRCM_HWMOD_WKUP("wd_timer2", 0xd4, "FIXED_32K"), + AM3_PRCM_HWMOD_PER("mmc1", 0x3c, "MMC_CLK"), AM3_PRCM_HWMOD_PER("mmc2", 0xf4, "MMC_CLK"), AM3_PRCM_HWMOD_PER("mmc3", 0xf8, "MMC_CLK"), Index: src/sys/arch/arm/ti/files.ti diff -u src/sys/arch/arm/ti/files.ti:1.4.4.1 src/sys/arch/arm/ti/files.ti:1.4.4.2 --- src/sys/arch/arm/ti/files.ti:1.4.4.1 Wed Nov 27 13:46:44 2019 +++ src/sys/arch/arm/ti/files.ti Sun Dec 8 12:57:21 2019 @@ -1,4 +1,4 @@ -# $NetBSD: files.ti,v 1.4.4.1 2019/11/27 13:46:44 martin Exp $ +# $NetBSD: files.ti,v 1.4.4.2 2019/12/08 12:57:21 martin Exp $ # file arch/arm/ti/ti_cpufreq.c soc_ti @@ -131,6 +131,11 @@ device omapnand: nandbus attach omapnand at fdt file arch/arm/ti/omap2_nand.c omapnand +# Watchdog timer +device tiwdt: sysmon_wdog +attach tiwdt at fdt with ti_wdt +file arch/arm/ti/ti_wdt.c ti_wdt + # SOC parameters defflag opt_soc.h SOC_TI defflag opt_soc.h SOC_AM33XX: SOC_TI Index: src/sys/arch/evbarm/conf/GENERIC diff -u src/sys/arch/evbarm/conf/GENERIC:1.48.2.4 src/sys/arch/evbarm/conf/GENERIC:1.48.2.5 --- src/sys/arch/evbarm/conf/GENERIC:1.48.2.4 Wed Nov 27 13:46:44 2019 +++ src/sys/arch/evbarm/conf/GENERIC Sun Dec 8 12:57:21 2019 @@ -1,5 +1,5 @@ # -# $NetBSD: GENERIC,v 1.48.2.4 2019/11/27 13:46:44 martin Exp $ +# $NetBSD: GENERIC,v 1.48.2.5 2019/12/08 12:57:21 martin Exp $ # # GENERIC ARM (aarch32) kernel # @@ -399,10 +399,11 @@ sunxihstimer* at fdt? # Allwinner Hig tegratimer* at fdt? # Timers # Watchdog +bcmpmwdog* at fdt? # Broadcom BCM283x watchdog dwcwdt* at fdt? # DesignWare watchdog mesonwdt* at fdt? # Amlogic Meson watchdog sunxiwdt* at fdt? # Allwinner watchdog -bcmpmwdog* at fdt? # Broadcom BCM283x watchdog +tiwdt* at fdt? # TI OMAP watchdog # Interrupt controller gic* at fdt? pass 1 # ARM GIC Added files: Index: src/sys/arch/arm/ti/ti_wdt.c diff -u /dev/null src/sys/arch/arm/ti/ti_wdt.c:1.1.2.2 --- /dev/null Sun Dec 8 12:57:21 2019 +++ src/sys/arch/arm/ti/ti_wdt.c Sun Dec 8 12:57:21 2019 @@ -0,0 +1,259 @@ +/* $NetBSD: ti_wdt.c,v 1.1.2.2 2019/12/08 12:57:21 martin Exp $ */ + +/*- + * Copyright (c) 2019 Jared McNeill + * 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 ``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,