CVS commit: src/sys/miscfs/procfs
Module Name:src Committed By: riastradh Date: Wed Apr 29 07:18:24 UTC 2020 Modified Files: src/sys/miscfs/procfs: procfs.h Log Message: Put forward declaration a little further forward to unbreak build. To generate a diff of this commit: cvs rdiff -u -r1.79 -r1.80 src/sys/miscfs/procfs/procfs.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/miscfs/procfs/procfs.h diff -u src/sys/miscfs/procfs/procfs.h:1.79 src/sys/miscfs/procfs/procfs.h:1.80 --- src/sys/miscfs/procfs/procfs.h:1.79 Wed Apr 29 01:56:54 2020 +++ src/sys/miscfs/procfs/procfs.h Wed Apr 29 07:18:24 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: procfs.h,v 1.79 2020/04/29 01:56:54 thorpej Exp $ */ +/* $NetBSD: procfs.h,v 1.80 2020/04/29 07:18:24 riastradh Exp $ */ /* * Copyright (c) 1993 @@ -209,11 +209,12 @@ struct vfs_namemap { int vfs_getuserstr(struct uio *, char *, int *); const vfs_namemap_t *vfs_findname(const vfs_namemap_t *, const char *, int); +struct mount; + struct proc *procfs_proc_find(struct mount *, pid_t); bool procfs_use_linux_compat(struct mount *); int procfs_proc_lock(struct mount *, int, struct proc **, int); void procfs_proc_unlock(struct proc *); -struct mount; int procfs_allocvp(struct mount *, struct vnode **, pid_t, pfstype, int); int procfs_donote(struct lwp *, struct proc *, struct pfsnode *, struct uio *);
CVS commit: src/sys/dev/hdaudio
Module Name:src Committed By: nia Date: Wed Apr 29 07:24:53 UTC 2020 Modified Files: src/sys/dev/hdaudio: hdaudiodevs Log Message: hdaudiodevs: Add Realtek ALC292 To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/dev/hdaudio/hdaudiodevs 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/hdaudio/hdaudiodevs diff -u src/sys/dev/hdaudio/hdaudiodevs:1.4 src/sys/dev/hdaudio/hdaudiodevs:1.5 --- src/sys/dev/hdaudio/hdaudiodevs:1.4 Tue Apr 28 21:48:11 2020 +++ src/sys/dev/hdaudio/hdaudiodevs Wed Apr 29 07:24:53 2020 @@ -1,4 +1,4 @@ -$NetBSD: hdaudiodevs,v 1.4 2020/04/28 21:48:11 jmcneill Exp $ +$NetBSD: hdaudiodevs,v 1.5 2020/04/29 07:24:53 nia Exp $ /* * Copyright (c) 2010 Jared D. McNeill @@ -77,6 +77,7 @@ product REALTEK ALC270 0x0270 ALC270 product REALTEK ALC272 0x0272 ALC272 product REALTEK ALC275 0x0275 ALC275 product REALTEK ALC280 0x0280 ALC280 +product REALTEK ALC292 0x0292 ALC292 product REALTEK ALC293 0x0293 ALC293 product REALTEK ALC660_VD 0x0660 ALC660-VD product REALTEK ALC662 0x0662 ALC662
CVS commit: src/sys/dev/hdaudio
Module Name:src Committed By: nia Date: Wed Apr 29 07:36:22 UTC 2020 Modified Files: src/sys/dev/hdaudio: hdaudiodevs.h hdaudiodevs_data.h Log Message: hdaudiodevs: regen To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/dev/hdaudio/hdaudiodevs.h \ src/sys/dev/hdaudio/hdaudiodevs_data.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/dev/hdaudio/hdaudiodevs.h diff -u src/sys/dev/hdaudio/hdaudiodevs.h:1.4 src/sys/dev/hdaudio/hdaudiodevs.h:1.5 --- src/sys/dev/hdaudio/hdaudiodevs.h:1.4 Tue Apr 28 21:48:20 2020 +++ src/sys/dev/hdaudio/hdaudiodevs.h Wed Apr 29 07:36:22 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs.h,v 1.4 2020/04/28 21:48:20 jmcneill Exp $ */ +/* $NetBSD: hdaudiodevs.h,v 1.5 2020/04/29 07:36:22 nia Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.4 2020/04/28 21:48:11 jmcneill Exp + * NetBSD: hdaudiodevs,v 1.5 2020/04/29 07:24:53 nia Exp */ /* @@ -84,6 +84,7 @@ #define HDAUDIO_PRODUCT_REALTEK_ALC272 0x0272 /* ALC272 */ #define HDAUDIO_PRODUCT_REALTEK_ALC275 0x0275 /* ALC275 */ #define HDAUDIO_PRODUCT_REALTEK_ALC280 0x0280 /* ALC280 */ +#define HDAUDIO_PRODUCT_REALTEK_ALC292 0x0292 /* ALC292 */ #define HDAUDIO_PRODUCT_REALTEK_ALC293 0x0293 /* ALC293 */ #define HDAUDIO_PRODUCT_REALTEK_ALC660_VD 0x0660 /* ALC660-VD */ #define HDAUDIO_PRODUCT_REALTEK_ALC662 0x0662 /* ALC662 */ Index: src/sys/dev/hdaudio/hdaudiodevs_data.h diff -u src/sys/dev/hdaudio/hdaudiodevs_data.h:1.4 src/sys/dev/hdaudio/hdaudiodevs_data.h:1.5 --- src/sys/dev/hdaudio/hdaudiodevs_data.h:1.4 Tue Apr 28 21:48:20 2020 +++ src/sys/dev/hdaudio/hdaudiodevs_data.h Wed Apr 29 07:36:22 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs_data.h,v 1.4 2020/04/28 21:48:20 jmcneill Exp $ */ +/* $NetBSD: hdaudiodevs_data.h,v 1.5 2020/04/29 07:36:22 nia Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.4 2020/04/28 21:48:11 jmcneill Exp + * NetBSD: hdaudiodevs,v 1.5 2020/04/29 07:24:53 nia Exp */ /* @@ -102,322 +102,324 @@ static const uint16_t hdaudio_products[] 230, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC280, 237, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC293, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC292, 244, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC660_VD, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC293, 251, 0, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC660_VD, + 258, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC662, - 261, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC663, 268, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC670, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC663, 275, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC670, 282, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861_VD, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861, 289, 0, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861_VD, + 296, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC880, - 299, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC882, 306, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC883, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC882, 313, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC885, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC883, 320, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC887, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC885, 327, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC888, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC887, 334, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC889, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC888, 341, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC892, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC889, 348, 0, - HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1708, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC892, 355, 0, + HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1708, + 362, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1709, - 355, 0, + 362, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT170A, - 355, 0, + 362, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT170B, - 355, 0, + 362, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1709_10CH_0, - 362, 369, 0, + 369, 376, 0, HDAUDIO_VENDOR_
CVS commit: src/sys/dev/usb
Module Name:src Committed By: nia Date: Wed Apr 29 08:05:10 UTC 2020 Modified Files: src/sys/dev/usb: usbdevs Log Message: usbdevs: more Intel Integrated Rate Matching Hub IDs To generate a diff of this commit: cvs rdiff -u -r1.781 -r1.782 src/sys/dev/usb/usbdevs 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/usb/usbdevs diff -u src/sys/dev/usb/usbdevs:1.781 src/sys/dev/usb/usbdevs:1.782 --- src/sys/dev/usb/usbdevs:1.781 Sun Apr 12 01:10:54 2020 +++ src/sys/dev/usb/usbdevs Wed Apr 29 08:05:10 2020 @@ -1,4 +1,4 @@ -$NetBSD: usbdevs,v 1.781 2020/04/12 01:10:54 simonb Exp $ +$NetBSD: usbdevs,v 1.782 2020/04/29 08:05:10 nia Exp $ /*- * Copyright (c) 1998-2004 The NetBSD Foundation, Inc. @@ -1929,6 +1929,12 @@ product INTEL TESTBOARD 0x9890 82930 te product INTEL2 RMH 0x0020 Rate Matching Hub product INTEL2 RMH2 0x0024 Rate Matching Hub +product INTEL2 RMH3 0x8000 Rate Matching Hub +product INTEL2 RMH4 0x8001 Rate Matching Hub +product INTEL2 RMH5 0x8002 Rate Matching Hub +product INTEL2 RMH6 0x8008 Rate Matching Hub +product INTEL2 RMH7 0x8009 Rate Matching Hub +product INTEL2 RMH8 0x800a Rate Matching Hub product INTEL2 N_6235_BT 0x07da Advanced-N 6235 Combo Bluetooth /* Intersil products */
CVS commit: src/sys/dev/usb
Module Name:src Committed By: nia Date: Wed Apr 29 08:06:03 UTC 2020 Modified Files: src/sys/dev/usb: usbdevs.h usbdevs_data.h Log Message: usbdevs: regen To generate a diff of this commit: cvs rdiff -u -r1.771 -r1.772 src/sys/dev/usb/usbdevs.h \ src/sys/dev/usb/usbdevs_data.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/dev/usb/usbdevs.h diff -u src/sys/dev/usb/usbdevs.h:1.771 src/sys/dev/usb/usbdevs.h:1.772 --- src/sys/dev/usb/usbdevs.h:1.771 Sun Apr 12 01:11:56 2020 +++ src/sys/dev/usb/usbdevs.h Wed Apr 29 08:06:03 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: usbdevs.h,v 1.771 2020/04/12 01:11:56 simonb Exp $ */ +/* $NetBSD: usbdevs.h,v 1.772 2020/04/29 08:06:03 nia Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: usbdevs,v 1.781 2020/04/12 01:10:54 simonb Exp + * NetBSD: usbdevs,v 1.782 2020/04/29 08:05:10 nia Exp */ /*- @@ -1936,6 +1936,12 @@ #define USB_PRODUCT_INTEL2_RMH 0x0020 /* Rate Matching Hub */ #define USB_PRODUCT_INTEL2_RMH2 0x0024 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH3 0x8000 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH4 0x8001 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH5 0x8002 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH6 0x8008 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH7 0x8009 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH8 0x800a /* Rate Matching Hub */ #define USB_PRODUCT_INTEL2_N_6235_BT 0x07da /* Advanced-N 6235 Combo Bluetooth */ /* Intersil products */ Index: src/sys/dev/usb/usbdevs_data.h diff -u src/sys/dev/usb/usbdevs_data.h:1.771 src/sys/dev/usb/usbdevs_data.h:1.772 --- src/sys/dev/usb/usbdevs_data.h:1.771 Sun Apr 12 01:11:56 2020 +++ src/sys/dev/usb/usbdevs_data.h Wed Apr 29 08:06:03 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: usbdevs_data.h,v 1.771 2020/04/12 01:11:56 simonb Exp $ */ +/* $NetBSD: usbdevs_data.h,v 1.772 2020/04/29 08:06:03 nia Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: usbdevs,v 1.781 2020/04/12 01:10:54 simonb Exp + * NetBSD: usbdevs,v 1.782 2020/04/29 08:05:10 nia Exp */ /*- @@ -2509,6 +2509,18 @@ static const uint16_t usb_products[] = { 12049, 12054, 5850, 0, USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH2, 12049, 12054, 5850, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH3, + 12049, 12054, 5850, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH4, + 12049, 12054, 5850, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH5, + 12049, 12054, 5850, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH6, + 12049, 12054, 5850, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH7, + 12049, 12054, 5850, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH8, + 12049, 12054, 5850, 0, USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_N_6235_BT, 12063, 12074, 12079, 4905, 0, USB_VENDOR_INTERSIL, USB_PRODUCT_INTERSIL_PRISM_GT, @@ -5782,7 +5794,7 @@ static const char usb_words[] = { "." "120g\0" /* 1 refs @ 5836 */ "121g\0" /* 1 refs @ 5841 */ "Kbd\0" /* 3 refs @ 5846 */ - "Hub\0" /* 30 refs @ 5850 */ + "Hub\0" /* 36 refs @ 5850 */ "MacAlly\0" /* 1 refs @ 5854 */ "AU9814\0" /* 1 refs @ 5862 */ "MicroConnectors/StrongMan\0" /* 1 refs @ 5869 */ @@ -6602,8 +6614,8 @@ static const char usb_words[] = { "." "2011B\0" /* 1 refs @ 12032 */ "82930\0" /* 1 refs @ 12038 */ "test\0" /* 2 refs @ 12044 */ - "Rate\0" /* 2 refs @ 12049 */ - "Matching\0" /* 2 refs @ 12054 */ + "Rate\0" /* 8 refs @ 12049 */ + "Matching\0" /* 8 refs @ 12054 */ "Advanced-N\0" /* 1 refs @ 12063 */ "6235\0" /* 1 refs @ 12074 */ "Combo\0" /* 2 refs @ 12079 */
CVS commit: src/sbin/mount_qemufwcfg
Module Name:src Committed By: gson Date: Wed Apr 29 09:54:43 UTC 2020 Modified Files: src/sbin/mount_qemufwcfg: mount_qemufwcfg.8 Log Message: Remove references to "special", as mount_qemufwcfg(8) does not actually take such an argument. Discussed with jmcneill. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sbin/mount_qemufwcfg/mount_qemufwcfg.8 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sbin/mount_qemufwcfg/mount_qemufwcfg.8 diff -u src/sbin/mount_qemufwcfg/mount_qemufwcfg.8:1.2 src/sbin/mount_qemufwcfg/mount_qemufwcfg.8:1.3 --- src/sbin/mount_qemufwcfg/mount_qemufwcfg.8:1.2 Tue Nov 28 11:55:30 2017 +++ src/sbin/mount_qemufwcfg/mount_qemufwcfg.8 Wed Apr 29 09:54:43 2020 @@ -1,4 +1,4 @@ -.\" $NetBSD: mount_qemufwcfg.8,v 1.2 2017/11/28 11:55:30 wiz Exp $ +.\" $NetBSD: mount_qemufwcfg.8,v 1.3 2020/04/29 09:54:43 gson Exp $ .\" .\" Copyright (c) 2017 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -24,7 +24,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd November 28, 2017 +.Dd April 29, 2020 .Dt MOUNT_QEMUFWCFG 8 .Os .Sh NAME @@ -38,18 +38,16 @@ .Op Fl m Ar file-mode .Op Fl u Ar uid .Op Ar fuse-options -.Ar special node +.Ar node .Sh DESCRIPTION The .Nm command provides the QEMU fw_cfg configuration files in a file system tree at point .Ar node . -Both -.Ar special -and +The directory specified by .Ar node -are converted to absolute paths before use. +is converted to an absolute path before use. .Pp The options are as follows: .Bl -tag -width Ds
CVS commit: src/external/gpl3/gdb/lib/libgdb
Module Name:src Committed By: rin Date: Wed Apr 29 11:04:58 UTC 2020 Modified Files: src/external/gpl3/gdb/lib/libgdb: Makefile Log Message: PR toolchain/54820 PR toolchain/54877 GCC 8.4 miscompiles dwarf2expr.c with -O2 or -O1 for earmv7hf{,eb}, which results in crashes described in the PRs. No upstream fixes up to now. So, let us disable optimization for this file. Note that this affects only earmv7hf{,eb} as far as I can see. Crashes do not occur neither for earmv6hf{,eb} nor earmv7{,eb}. To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/external/gpl3/gdb/lib/libgdb/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/external/gpl3/gdb/lib/libgdb/Makefile diff -u src/external/gpl3/gdb/lib/libgdb/Makefile:1.21 src/external/gpl3/gdb/lib/libgdb/Makefile:1.22 --- src/external/gpl3/gdb/lib/libgdb/Makefile:1.21 Fri Jul 12 22:45:07 2019 +++ src/external/gpl3/gdb/lib/libgdb/Makefile Wed Apr 29 11:04:58 2020 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.21 2019/07/12 22:45:07 christos Exp $ +# $NetBSD: Makefile,v 1.22 2020/04/29 11:04:58 rin Exp $ NOCTF= HOSTPROG_CXX= 1 @@ -58,6 +58,14 @@ ada-exp.c: ada-lex.c COPTS.dwarf2-frame.c+=-O1 .endif +.if defined(HAVE_GCC) && ${HAVE_GCC} >= 8 && ${ACTIVE_CC} == "gcc" +.if !empty(MACHINE_ARCH:Mearmv7hf*) +# GCC 8.4 miscompiles this with -O2 or -O1 for earmv7hf{,eb}. +# Neither earmv6hf{,eb} nor earmv7{,eb} are affected. +COPTS.dwarf2expr.c+=-O0 +.endif +.endif + # These are generated by implicit rules and are not easy to generate CLEANDIRFILES+= \ ada-exp.c ada-lex.c \
CVS commit: src/doc
Module Name:src Committed By: rin Date: Wed Apr 29 11:08:40 UTC 2020 Modified Files: src/doc: HACKS Log Message: PR toolchain/54820 PR toolchain/54877 earmv7hf{,eb}: compile gdb/dwarf2expr.c with -O0 for GCC8 http://cvsweb.netbsd.org/bsdweb.cgi/src/external/gpl3/gdb/lib/libgdb/Makefile#rev1.22 To generate a diff of this commit: cvs rdiff -u -r1.201 -r1.202 src/doc/HACKS Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/doc/HACKS diff -u src/doc/HACKS:1.201 src/doc/HACKS:1.202 --- src/doc/HACKS:1.201 Sun Apr 12 17:49:00 2020 +++ src/doc/HACKS Wed Apr 29 11:08:40 2020 @@ -1,4 +1,4 @@ -# $NetBSD: HACKS,v 1.201 2020/04/12 17:49:00 leot Exp $ +# $NetBSD: HACKS,v 1.202 2020/04/29 11:08:40 rin Exp $ # # This file is intended to document workarounds for currently unsolved # (mostly) compiler bugs. @@ -975,3 +975,14 @@ descr Disable optimization on tc.c, loge /dist/llvm/include/llvm/CodeGen/MachineFrameInfo.h", line 495, \ function "__int64_t llvm::MachineFrameInfo::getObjectOffset(int) const" kcah + +port earmv7hf* +hack compile gdb/dwarf2expr.c with -O0 for GCC8 (toolchain/54820 and 54877) +cdate Wed Apr 29 11:04:58 UTC 2020 +who rin +file src/external/gpl3/gdb/lib/libgdb/Makefile: 1.22 +descr GCC 8.4 miscompiles dwarf2expr.c with -O2 or -O1, which results in + crashes with 'gdb_exception_RETURN_MASK_ERROR'. Note that this occurs + only for earmv7hf{,eb} as far as I can see. Neither earmv6hf{,eb} nor + earmv7{,eb} (softfloat) are affected. +kcah
CVS commit: [netbsd-9] src/sys/dev/pckbport
Module Name:src Committed By: martin Date: Wed Apr 29 13:25:42 UTC 2020 Modified Files: src/sys/dev/pckbport [netbsd-9]: synaptics.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #865): sys/dev/pckbport/synaptics.c: revision 1.66 pms_synaptics_enable: no need to send PMS_DEV_ENABLE here because pms_enable does this for us. Seems to resolve issues with my trackpoint not working immediately after starting X on ThinkPad X260. To generate a diff of this commit: cvs rdiff -u -r1.50.2.4 -r1.50.2.5 src/sys/dev/pckbport/synaptics.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/pckbport/synaptics.c diff -u src/sys/dev/pckbport/synaptics.c:1.50.2.4 src/sys/dev/pckbport/synaptics.c:1.50.2.5 --- src/sys/dev/pckbport/synaptics.c:1.50.2.4 Tue Apr 28 16:22:15 2020 +++ src/sys/dev/pckbport/synaptics.c Wed Apr 29 13:25:42 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: synaptics.c,v 1.50.2.4 2020/04/28 16:22:15 martin Exp $ */ +/* $NetBSD: synaptics.c,v 1.50.2.5 2020/04/29 13:25:42 martin Exp $ */ /* * Copyright (c) 2005, Steve C. Woodford @@ -48,7 +48,7 @@ #include "opt_pms.h" #include -__KERNEL_RCSID(0, "$NetBSD: synaptics.c,v 1.50.2.4 2020/04/28 16:22:15 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: synaptics.c,v 1.50.2.5 2020/04/29 13:25:42 martin Exp $"); #include #include @@ -484,8 +484,6 @@ pms_synaptics_enable(void *vsc) (sc->flags & SYN_FLAG_HAS_ADV_GESTURE_MODE)) synaptics_special_write(psc, SYNAPTICS_WRITE_DELUXE_3, 0x3); - synaptics_poll_cmd(psc, PMS_DEV_ENABLE, 0); - sc->up_down = 0; sc->prev_fingers = 0; sc->gesture_start_x = sc->gesture_start_y = 0;
CVS commit: [netbsd-9] src/sys/dev/acpi
Module Name:src Committed By: martin Date: Wed Apr 29 13:33:36 UTC 2020 Modified Files: src/sys/dev/acpi [netbsd-9]: acpi_ec.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #866): sys/dev/acpi/acpi_ec.c: revision 1.82 kern/55206: acpibat reporting broken by acpi_ec.c r1.81 Assume byte instead of qword alignment of the buffer passed to the EC space handler. To generate a diff of this commit: cvs rdiff -u -r1.75.20.2 -r1.75.20.3 src/sys/dev/acpi/acpi_ec.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/acpi/acpi_ec.c diff -u src/sys/dev/acpi/acpi_ec.c:1.75.20.2 src/sys/dev/acpi/acpi_ec.c:1.75.20.3 --- src/sys/dev/acpi/acpi_ec.c:1.75.20.2 Sun Apr 12 08:48:56 2020 +++ src/sys/dev/acpi/acpi_ec.c Wed Apr 29 13:33:35 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi_ec.c,v 1.75.20.2 2020/04/12 08:48:56 martin Exp $ */ +/* $NetBSD: acpi_ec.c,v 1.75.20.3 2020/04/29 13:33:35 martin Exp $ */ /*- * Copyright (c) 2007 Joerg Sonnenberger . @@ -59,7 +59,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: acpi_ec.c,v 1.75.20.2 2020/04/12 08:48:56 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi_ec.c,v 1.75.20.3 2020/04/29 13:33:35 martin Exp $"); #include #include @@ -659,32 +659,30 @@ acpiec_space_handler(uint32_t func, ACPI { device_t dv; ACPI_STATUS rv; - uint8_t addr, reg; + uint8_t addr, *buf; unsigned int i; - if (paddr > 0xff || width % 8 != 0 || width > sizeof(ACPI_INTEGER)*8 || + if (paddr > 0xff || width % 8 != 0 || value == NULL || arg == NULL || paddr + width / 8 > 0x100) return AE_BAD_PARAMETER; addr = paddr; dv = arg; + buf = (uint8_t *)value; rv = AE_OK; switch (func) { case ACPI_READ: - *value = 0; - for (i = 0; i < width; i += 8, ++addr) { - rv = acpiec_read(dv, addr, ®); + for (i = 0; i < width; i += 8, ++addr, ++buf) { + rv = acpiec_read(dv, addr, buf); if (rv != AE_OK) break; - *value |= (ACPI_INTEGER)reg << i; } break; case ACPI_WRITE: - for (i = 0; i < width; i += 8, ++addr) { - reg = (*value >> i) & 0xff; - rv = acpiec_write(dv, addr, reg); + for (i = 0; i < width; i += 8, ++addr, ++buf) { + rv = acpiec_write(dv, addr, *buf); if (rv != AE_OK) break; }
CVS commit: [netbsd-9] src/sys/dev/acpi
Module Name:src Committed By: martin Date: Wed Apr 29 13:36:57 UTC 2020 Modified Files: src/sys/dev/acpi [netbsd-9]: acpi_display.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #867): sys/dev/acpi/acpi_display.c: revision 1.17 Demote "unknown output device" message from error to debug, and change the wording to reflect what is really happening -- the display output is not connected. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.16.16.1 src/sys/dev/acpi/acpi_display.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/acpi/acpi_display.c diff -u src/sys/dev/acpi/acpi_display.c:1.16 src/sys/dev/acpi/acpi_display.c:1.16.16.1 --- src/sys/dev/acpi/acpi_display.c:1.16 Thu Jun 1 02:45:09 2017 +++ src/sys/dev/acpi/acpi_display.c Wed Apr 29 13:36:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi_display.c,v 1.16 2017/06/01 02:45:09 chs Exp $ */ +/* $NetBSD: acpi_display.c,v 1.16.16.1 2020/04/29 13:36:57 martin Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -66,7 +66,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: acpi_display.c,v 1.16 2017/06/01 02:45:09 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi_display.c,v 1.16.16.1 2020/04/29 13:36:57 martin Exp $"); #include #include @@ -1549,8 +1549,8 @@ acpidisp_vga_bind_outdevs(struct acpidis } } if (i == oi->oi_dev_count) - aprint_error_dev(asc->sc_dev, - "unknown output device %s\n", + aprint_debug_dev(asc->sc_dev, + "output device %s not connected\n", device_xname(osc->sc_dev)); } }
CVS commit: [netbsd-9] src/sys/arch
Module Name:src Committed By: martin Date: Wed Apr 29 13:39:23 UTC 2020 Modified Files: src/sys/arch/amd64/amd64 [netbsd-9]: machdep.c src/sys/arch/x86/x86 [netbsd-9]: pmap.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #868): sys/arch/x86/x86/pmap.c: revision 1.384 sys/arch/amd64/amd64/machdep.c: revision 1.349 Detect PAT on the boot processor before cpu0 attaches so the early genfb attach code can map the framebuffer with write combining. To generate a diff of this commit: cvs rdiff -u -r1.335 -r1.335.2.1 src/sys/arch/amd64/amd64/machdep.c cvs rdiff -u -r1.334 -r1.334.2.1 src/sys/arch/x86/x86/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/amd64/amd64/machdep.c diff -u src/sys/arch/amd64/amd64/machdep.c:1.335 src/sys/arch/amd64/amd64/machdep.c:1.335.2.1 --- src/sys/arch/amd64/amd64/machdep.c:1.335 Wed Jul 24 16:36:47 2019 +++ src/sys/arch/amd64/amd64/machdep.c Wed Apr 29 13:39:23 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.335 2019/07/24 16:36:47 bouyer Exp $ */ +/* $NetBSD: machdep.c,v 1.335.2.1 2020/04/29 13:39:23 martin Exp $ */ /* * Copyright (c) 1996, 1997, 1998, 2000, 2006, 2007, 2008, 2011 @@ -110,7 +110,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.335 2019/07/24 16:36:47 bouyer Exp $"); +__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.335.2.1 2020/04/29 13:39:23 martin Exp $"); #include "opt_modular.h" #include "opt_user_ldt.h" @@ -1714,6 +1714,8 @@ init_x86_64(paddr_t first_avail) x86_bus_space_init(); #endif + pat_init(&cpu_info_primary); + consinit(); /* XXX SHOULD NOT BE DONE HERE */ /* Index: src/sys/arch/x86/x86/pmap.c diff -u src/sys/arch/x86/x86/pmap.c:1.334 src/sys/arch/x86/x86/pmap.c:1.334.2.1 --- src/sys/arch/x86/x86/pmap.c:1.334 Sat Jun 1 08:12:26 2019 +++ src/sys/arch/x86/x86/pmap.c Wed Apr 29 13:39:23 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.334 2019/06/01 08:12:26 maxv Exp $ */ +/* $NetBSD: pmap.c,v 1.334.2.1 2020/04/29 13:39:23 martin Exp $ */ /* * Copyright (c) 2008, 2010, 2016, 2017 The NetBSD Foundation, Inc. @@ -130,7 +130,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.334 2019/06/01 08:12:26 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.334.2.1 2020/04/29 13:39:23 martin Exp $"); #include "opt_user_ldt.h" #include "opt_lockdebug.h" @@ -818,7 +818,6 @@ pat_init(struct cpu_info *ci) wrmsr(MSR_CR_PAT, pat); cpu_pat_enabled = true; - aprint_debug_dev(ci->ci_dev, "PAT enabled\n"); } static pt_entry_t
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Wed Apr 29 13:42:21 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudiodevs Log Message: Pull up following revision(s) (requested by jmcneill in ticket #869): sys/dev/hdaudio/hdaudiodevs: revision 1.4 Add Realtek ALC293 To generate a diff of this commit: cvs rdiff -u -r1.2.26.1 -r1.2.26.2 src/sys/dev/hdaudio/hdaudiodevs 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/hdaudio/hdaudiodevs diff -u src/sys/dev/hdaudio/hdaudiodevs:1.2.26.1 src/sys/dev/hdaudio/hdaudiodevs:1.2.26.2 --- src/sys/dev/hdaudio/hdaudiodevs:1.2.26.1 Mon Jan 27 07:09:31 2020 +++ src/sys/dev/hdaudio/hdaudiodevs Wed Apr 29 13:42:21 2020 @@ -1,4 +1,4 @@ -$NetBSD: hdaudiodevs,v 1.2.26.1 2020/01/27 07:09:31 martin Exp $ +$NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp $ /* * Copyright (c) 2010 Jared D. McNeill @@ -77,6 +77,7 @@ product REALTEK ALC270 0x0270 ALC270 product REALTEK ALC272 0x0272 ALC272 product REALTEK ALC275 0x0275 ALC275 product REALTEK ALC280 0x0280 ALC280 +product REALTEK ALC293 0x0293 ALC293 product REALTEK ALC660_VD 0x0660 ALC660-VD product REALTEK ALC662 0x0662 ALC662 product REALTEK ALC663 0x0663 ALC663
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Wed Apr 29 13:43:42 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudiodevs.h hdaudiodevs_data.h Log Message: Regen for ticket #869 To generate a diff of this commit: cvs rdiff -u -r1.2.26.1 -r1.2.26.2 src/sys/dev/hdaudio/hdaudiodevs.h \ src/sys/dev/hdaudio/hdaudiodevs_data.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/dev/hdaudio/hdaudiodevs.h diff -u src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.1 src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.2 --- src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.1 Mon Jan 27 07:10:17 2020 +++ src/sys/dev/hdaudio/hdaudiodevs.h Wed Apr 29 13:43:42 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs.h,v 1.2.26.1 2020/01/27 07:10:17 martin Exp $ */ +/* $NetBSD: hdaudiodevs.h,v 1.2.26.2 2020/04/29 13:43:42 martin Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.2.26.1 2020/01/27 07:09:31 martin Exp + * NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp */ /* @@ -84,6 +84,7 @@ #define HDAUDIO_PRODUCT_REALTEK_ALC272 0x0272 /* ALC272 */ #define HDAUDIO_PRODUCT_REALTEK_ALC275 0x0275 /* ALC275 */ #define HDAUDIO_PRODUCT_REALTEK_ALC280 0x0280 /* ALC280 */ +#define HDAUDIO_PRODUCT_REALTEK_ALC293 0x0293 /* ALC293 */ #define HDAUDIO_PRODUCT_REALTEK_ALC660_VD 0x0660 /* ALC660-VD */ #define HDAUDIO_PRODUCT_REALTEK_ALC662 0x0662 /* ALC662 */ #define HDAUDIO_PRODUCT_REALTEK_ALC663 0x0663 /* ALC663 */ Index: src/sys/dev/hdaudio/hdaudiodevs_data.h diff -u src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.1 src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.2 --- src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.1 Mon Jan 27 07:10:17 2020 +++ src/sys/dev/hdaudio/hdaudiodevs_data.h Wed Apr 29 13:43:42 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs_data.h,v 1.2.26.1 2020/01/27 07:10:17 martin Exp $ */ +/* $NetBSD: hdaudiodevs_data.h,v 1.2.26.2 2020/04/29 13:43:42 martin Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.2.26.1 2020/01/27 07:09:31 martin Exp + * NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp */ /* @@ -102,320 +102,322 @@ static const uint16_t hdaudio_products[] 230, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC280, 237, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC660_VD, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC293, 244, 0, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC660_VD, + 251, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC662, - 254, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC663, 261, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC670, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC663, 268, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC670, 275, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861_VD, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861, 282, 0, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861_VD, + 289, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC880, - 292, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC882, 299, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC883, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC882, 306, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC885, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC883, 313, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC887, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC885, 320, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC888, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC887, 327, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC889, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC888, 334, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC892, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC889, 341, 0, - HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1708, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC892, 348, 0, + HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1708, + 355, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1709, - 348, 0, + 355, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT170A, - 348, 0, + 355, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT170B, - 348, 0, + 355, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1709_10CH_0, - 355, 362, 0, + 362, 369, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1709
CVS commit: [netbsd-9] src/external/cddl/osnet/dist/uts/common/fs/zfs
Module Name:src Committed By: martin Date: Wed Apr 29 13:45:38 UTC 2020 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 riastradh in ticket #870): external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c: revision 1.16 Set up more of a fake struct buf, for ldminphys. Fixes: arm64# zpool create rpool ld4 [ 198.4376097] panic: Trap: Data Abort (EL1): Translation Fault L1 with read access for 0178: pc c017acf4: opcode f940bc00: ldr x0, [x0,#376] [ 198.4694793] fp c00073026660 ldminphys() at c017acf4 netbsd:ldminphys+0x34 [ 198.4792624] fp c00073026680 vdev_disk_open.part.4() at c13d4c4c zfs:vdev_disk_open.part.4+0x37c [ 198.4792624] fp c000730268d0 vdev_open() at c13d2530 zfs:vdev_open+0x68 [ 198.4792624] fp c00073026920 vdev_open_children() at c13d2958 zfs:vdev_open_children+0x40 [ 198.4792624] fp c00073026950 vdev_root_open() at c13dad48 zfs:vdev_root_open+0x30 XXX pullup-9 To generate a diff of this commit: cvs rdiff -u -r1.11.2.3 -r1.11.2.4 \ 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.3 src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.4 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c:1.11.2.3 Sat Mar 21 15:18:57 2020 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c Wed Apr 29 13:45:38 2020 @@ -228,7 +228,10 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi dvd->vd_maxphys = (pdk ? disk_maxphys(pdk) : MACHINE_MAXPHYS); */ { - struct buf buf = { .b_bcount = MAXPHYS }; + struct buf buf = { + .b_dev = vp->v_rdev, + .b_bcount = MAXPHYS, + }; if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys) (*pdk->dk_driver->d_minphys)(&buf); dvd->vd_maxphys = buf.b_bcount;
CVS commit: [netbsd-9] src
Module Name:src Committed By: martin Date: Wed Apr 29 13:47:52 UTC 2020 Modified Files: src/external/cddl/osnet/sys/sys [netbsd-9]: cred.h src/sys/sys [netbsd-9]: kauth.h Log Message: Pull up following revision(s) (requested by riastradh in ticket #871): external/cddl/osnet/sys/sys/cred.h: revision 1.7 sys/sys/kauth.h: revision 1.84 Fix crgetgroups shim. - Don't use a static buffer for the result. - kauth_cred_getgroups refuses to return more than the actual number of groups, so passing NGROUPS_MAX generally doesn't work. To avoid patching zfs, just expose struct kauth_cred::cr_groups directly, with __KAUTH_PRIVATE. Unclear why the official API only exposes it via memcpy or copyout anyway. This makes unprivileged zfs operations work, by anyone with access to /dev/zfs (which is conventionally mode 777, and which we should maybe set it to by default; zfs has its own ACL system, zfs allow). To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.6.2.1 src/external/cddl/osnet/sys/sys/cred.h cvs rdiff -u -r1.82 -r1.82.4.1 src/sys/sys/kauth.h 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/sys/sys/cred.h diff -u src/external/cddl/osnet/sys/sys/cred.h:1.6 src/external/cddl/osnet/sys/sys/cred.h:1.6.2.1 --- src/external/cddl/osnet/sys/sys/cred.h:1.6 Wed Feb 6 17:56:57 2019 +++ src/external/cddl/osnet/sys/sys/cred.h Wed Apr 29 13:47:51 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cred.h,v 1.6 2019/02/06 17:56:57 christos Exp $ */ +/* $NetBSD: cred.h,v 1.6.2.1 2020/04/29 13:47:51 martin Exp $ */ /*- * Copyright (c) 2007 Pawel Jakub Dawidek @@ -31,6 +31,11 @@ #ifndef _OPENSOLARIS_SYS_CRED_H_ #define _OPENSOLARIS_SYS_CRED_H_ +#ifdef _KERNEL +/* Needed for access to cr_groups. */ +#define __KAUTH_PRIVATE +#endif + #include #include @@ -57,22 +62,11 @@ extern kauth_cred_t cred0; kauth_cred_setegid(cr, g), \ kauth_cred_setsvuid(cr, u), \ kauth_cred_setsvgid(cr, g), 0) +#define crgetgroups(cr) ((cr)->cr_groups) #define crsetgroups(cr, gc, ga) \ kauth_cred_setgroups(cr, ga, gc, 0, UIO_SYSSPACE) #define crgetsid(cr, i) (NULL) -static __inline gid_t * -crgetgroups(cred_t *cr) -{ - static gid_t gids[NGROUPS_MAX]; - - memset(gids, 0, sizeof(gids)); - if (kauth_cred_getgroups(cr, gids, NGROUPS_MAX, UIO_SYSSPACE) != 0) - return NULL; - - return gids; -} - static __inline int groupmember(gid_t gid, cred_t *cr) { Index: src/sys/sys/kauth.h diff -u src/sys/sys/kauth.h:1.82 src/sys/sys/kauth.h:1.82.4.1 --- src/sys/sys/kauth.h:1.82 Wed Apr 10 18:49:04 2019 +++ src/sys/sys/kauth.h Wed Apr 29 13:47:51 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: kauth.h,v 1.82 2019/04/10 18:49:04 maxv Exp $ */ +/* $NetBSD: kauth.h,v 1.82.4.1 2020/04/29 13:47:51 martin Exp $ */ /*- * Copyright (c) 2005, 2006 Elad Efrat @@ -55,7 +55,11 @@ typedef int (*kauth_scope_callback_t)(ka typedef struct kauth_key *kauth_key_t; #ifdef __KAUTH_PRIVATE /* For the debugger */ -/* + +#include +#include + +/* * Credentials. * * A subset of this structure is used in kvm(3) (src/lib/libkvm/kvm_proc.c) @@ -84,6 +88,7 @@ struct kauth_cred { gid_t cr_groups[NGROUPS]; /* group memberships */ specificdata_reference cr_sd; /* specific data */ }; + #endif /*
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Wed Apr 29 13:50:38 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudiodevs Log Message: Pull up following revision(s) (requested by nia in ticket #872): sys/dev/hdaudio/hdaudiodevs: revision 1.5 hdaudiodevs: Add Realtek ALC292 To generate a diff of this commit: cvs rdiff -u -r1.2.26.2 -r1.2.26.3 src/sys/dev/hdaudio/hdaudiodevs 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/hdaudio/hdaudiodevs diff -u src/sys/dev/hdaudio/hdaudiodevs:1.2.26.2 src/sys/dev/hdaudio/hdaudiodevs:1.2.26.3 --- src/sys/dev/hdaudio/hdaudiodevs:1.2.26.2 Wed Apr 29 13:42:21 2020 +++ src/sys/dev/hdaudio/hdaudiodevs Wed Apr 29 13:50:38 2020 @@ -1,4 +1,4 @@ -$NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp $ +$NetBSD: hdaudiodevs,v 1.2.26.3 2020/04/29 13:50:38 martin Exp $ /* * Copyright (c) 2010 Jared D. McNeill @@ -77,6 +77,7 @@ product REALTEK ALC270 0x0270 ALC270 product REALTEK ALC272 0x0272 ALC272 product REALTEK ALC275 0x0275 ALC275 product REALTEK ALC280 0x0280 ALC280 +product REALTEK ALC292 0x0292 ALC292 product REALTEK ALC293 0x0293 ALC293 product REALTEK ALC660_VD 0x0660 ALC660-VD product REALTEK ALC662 0x0662 ALC662
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Wed Apr 29 13:51:09 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudiodevs.h hdaudiodevs_data.h Log Message: Regen for ticket #872 To generate a diff of this commit: cvs rdiff -u -r1.2.26.2 -r1.2.26.3 src/sys/dev/hdaudio/hdaudiodevs.h \ src/sys/dev/hdaudio/hdaudiodevs_data.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/dev/hdaudio/hdaudiodevs.h diff -u src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.2 src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.3 --- src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.2 Wed Apr 29 13:43:42 2020 +++ src/sys/dev/hdaudio/hdaudiodevs.h Wed Apr 29 13:51:09 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs.h,v 1.2.26.2 2020/04/29 13:43:42 martin Exp $ */ +/* $NetBSD: hdaudiodevs.h,v 1.2.26.3 2020/04/29 13:51:09 martin Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp + * NetBSD: hdaudiodevs,v 1.2.26.3 2020/04/29 13:50:38 martin Exp */ /* @@ -84,6 +84,7 @@ #define HDAUDIO_PRODUCT_REALTEK_ALC272 0x0272 /* ALC272 */ #define HDAUDIO_PRODUCT_REALTEK_ALC275 0x0275 /* ALC275 */ #define HDAUDIO_PRODUCT_REALTEK_ALC280 0x0280 /* ALC280 */ +#define HDAUDIO_PRODUCT_REALTEK_ALC292 0x0292 /* ALC292 */ #define HDAUDIO_PRODUCT_REALTEK_ALC293 0x0293 /* ALC293 */ #define HDAUDIO_PRODUCT_REALTEK_ALC660_VD 0x0660 /* ALC660-VD */ #define HDAUDIO_PRODUCT_REALTEK_ALC662 0x0662 /* ALC662 */ Index: src/sys/dev/hdaudio/hdaudiodevs_data.h diff -u src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.2 src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.3 --- src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.2 Wed Apr 29 13:43:42 2020 +++ src/sys/dev/hdaudio/hdaudiodevs_data.h Wed Apr 29 13:51:09 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs_data.h,v 1.2.26.2 2020/04/29 13:43:42 martin Exp $ */ +/* $NetBSD: hdaudiodevs_data.h,v 1.2.26.3 2020/04/29 13:51:09 martin Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp + * NetBSD: hdaudiodevs,v 1.2.26.3 2020/04/29 13:50:38 martin Exp */ /* @@ -102,322 +102,324 @@ static const uint16_t hdaudio_products[] 230, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC280, 237, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC293, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC292, 244, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC660_VD, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC293, 251, 0, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC660_VD, + 258, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC662, - 261, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC663, 268, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC670, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC663, 275, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC670, 282, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861_VD, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861, 289, 0, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861_VD, + 296, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC880, - 299, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC882, 306, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC883, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC882, 313, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC885, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC883, 320, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC887, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC885, 327, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC888, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC887, 334, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC889, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC888, 341, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC892, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC889, 348, 0, - HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1708, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC892, 355, 0, + HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1708, + 362, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1709, - 355, 0, + 362, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT170A, - 355, 0, + 362, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT170B, - 355, 0, + 362, 0, HDAUDIO_VENDOR_VIATECH
CVS commit: [netbsd-9] src/sys/dev/usb
Module Name:src Committed By: martin Date: Wed Apr 29 13:53:51 UTC 2020 Modified Files: src/sys/dev/usb [netbsd-9]: usbdevs Log Message: Pull up following revision(s) (requested by nia in ticket #873): sys/dev/usb/usbdevs: revision 1.782 usbdevs: more Intel Integrated Rate Matching Hub IDs To generate a diff of this commit: cvs rdiff -u -r1.770.4.5 -r1.770.4.6 src/sys/dev/usb/usbdevs 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/usb/usbdevs diff -u src/sys/dev/usb/usbdevs:1.770.4.5 src/sys/dev/usb/usbdevs:1.770.4.6 --- src/sys/dev/usb/usbdevs:1.770.4.5 Fri Apr 24 17:28:21 2020 +++ src/sys/dev/usb/usbdevs Wed Apr 29 13:53:51 2020 @@ -1,4 +1,4 @@ -$NetBSD: usbdevs,v 1.770.4.5 2020/04/24 17:28:21 martin Exp $ +$NetBSD: usbdevs,v 1.770.4.6 2020/04/29 13:53:51 martin Exp $ /*- * Copyright (c) 1998-2004 The NetBSD Foundation, Inc. @@ -1923,6 +1923,12 @@ product INTEL TESTBOARD 0x9890 82930 te product INTEL2 RMH 0x0020 Rate Matching Hub product INTEL2 RMH2 0x0024 Rate Matching Hub +product INTEL2 RMH3 0x8000 Rate Matching Hub +product INTEL2 RMH4 0x8001 Rate Matching Hub +product INTEL2 RMH5 0x8002 Rate Matching Hub +product INTEL2 RMH6 0x8008 Rate Matching Hub +product INTEL2 RMH7 0x8009 Rate Matching Hub +product INTEL2 RMH8 0x800a Rate Matching Hub product INTEL2 N_6235_BT 0x07da Advanced-N 6235 Combo Bluetooth /* Intersil products */
CVS commit: [netbsd-9] src/sys/dev/usb
Module Name:src Committed By: martin Date: Wed Apr 29 13:54:49 UTC 2020 Modified Files: src/sys/dev/usb [netbsd-9]: usbdevs.h usbdevs_data.h Log Message: Regen for ticket #873 To generate a diff of this commit: cvs rdiff -u -r1.760.4.5 -r1.760.4.6 src/sys/dev/usb/usbdevs.h \ src/sys/dev/usb/usbdevs_data.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/dev/usb/usbdevs.h diff -u src/sys/dev/usb/usbdevs.h:1.760.4.5 src/sys/dev/usb/usbdevs.h:1.760.4.6 --- src/sys/dev/usb/usbdevs.h:1.760.4.5 Fri Apr 24 17:29:15 2020 +++ src/sys/dev/usb/usbdevs.h Wed Apr 29 13:54:48 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: usbdevs.h,v 1.760.4.5 2020/04/24 17:29:15 martin Exp $ */ +/* $NetBSD: usbdevs.h,v 1.760.4.6 2020/04/29 13:54:48 martin Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: usbdevs,v 1.770.4.5 2020/04/24 17:28:21 martin Exp + * NetBSD: usbdevs,v 1.770.4.6 2020/04/29 13:53:51 martin Exp */ /*- @@ -1930,6 +1930,12 @@ #define USB_PRODUCT_INTEL2_RMH 0x0020 /* Rate Matching Hub */ #define USB_PRODUCT_INTEL2_RMH2 0x0024 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH3 0x8000 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH4 0x8001 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH5 0x8002 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH6 0x8008 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH7 0x8009 /* Rate Matching Hub */ +#define USB_PRODUCT_INTEL2_RMH8 0x800a /* Rate Matching Hub */ #define USB_PRODUCT_INTEL2_N_6235_BT 0x07da /* Advanced-N 6235 Combo Bluetooth */ /* Intersil products */ Index: src/sys/dev/usb/usbdevs_data.h diff -u src/sys/dev/usb/usbdevs_data.h:1.760.4.5 src/sys/dev/usb/usbdevs_data.h:1.760.4.6 --- src/sys/dev/usb/usbdevs_data.h:1.760.4.5 Fri Apr 24 17:29:15 2020 +++ src/sys/dev/usb/usbdevs_data.h Wed Apr 29 13:54:48 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: usbdevs_data.h,v 1.760.4.5 2020/04/24 17:29:15 martin Exp $ */ +/* $NetBSD: usbdevs_data.h,v 1.760.4.6 2020/04/29 13:54:48 martin Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: usbdevs,v 1.770.4.5 2020/04/24 17:28:21 martin Exp + * NetBSD: usbdevs,v 1.770.4.6 2020/04/29 13:53:51 martin Exp */ /*- @@ -2502,6 +2502,18 @@ static const uint16_t usb_products[] = { 12007, 12012, 5842, 0, USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH2, 12007, 12012, 5842, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH3, + 12007, 12012, 5842, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH4, + 12007, 12012, 5842, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH5, + 12007, 12012, 5842, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH6, + 12007, 12012, 5842, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH7, + 12007, 12012, 5842, 0, + USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_RMH8, + 12007, 12012, 5842, 0, USB_VENDOR_INTEL2, USB_PRODUCT_INTEL2_N_6235_BT, 12021, 12032, 12037, 4897, 0, USB_VENDOR_INTERSIL, USB_PRODUCT_INTERSIL_PRISM_GT, @@ -5764,7 +5776,7 @@ static const char usb_words[] = { "." "120g\0" /* 1 refs @ 5828 */ "121g\0" /* 1 refs @ 5833 */ "Kbd\0" /* 3 refs @ 5838 */ - "Hub\0" /* 30 refs @ 5842 */ + "Hub\0" /* 36 refs @ 5842 */ "MacAlly\0" /* 1 refs @ 5846 */ "AU9814\0" /* 1 refs @ 5854 */ "MicroConnectors/StrongMan\0" /* 1 refs @ 5861 */ @@ -6581,8 +6593,8 @@ static const char usb_words[] = { "." "2011B\0" /* 1 refs @ 11990 */ "82930\0" /* 1 refs @ 11996 */ "test\0" /* 2 refs @ 12002 */ - "Rate\0" /* 2 refs @ 12007 */ - "Matching\0" /* 2 refs @ 12012 */ + "Rate\0" /* 8 refs @ 12007 */ + "Matching\0" /* 8 refs @ 12012 */ "Advanced-N\0" /* 1 refs @ 12021 */ "6235\0" /* 1 refs @ 12032 */ "Combo\0" /* 2 refs @ 12037 */
CVS commit: [netbsd-9] src/doc
Module Name:src Committed By: martin Date: Wed Apr 29 13:56:12 UTC 2020 Modified Files: src/doc [netbsd-9]: CHANGES-9.1 Log Message: Tickets #865 - #873 To generate a diff of this commit: cvs rdiff -u -r1.1.2.46 -r1.1.2.47 src/doc/CHANGES-9.1 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.1 diff -u src/doc/CHANGES-9.1:1.1.2.46 src/doc/CHANGES-9.1:1.1.2.47 --- src/doc/CHANGES-9.1:1.1.2.46 Tue Apr 28 18:13:49 2020 +++ src/doc/CHANGES-9.1 Wed Apr 29 13:56:12 2020 @@ -1,4 +1,4 @@ -# $NetBSD: CHANGES-9.1,v 1.1.2.46 2020/04/28 18:13:49 martin Exp $ +# $NetBSD: CHANGES-9.1,v 1.1.2.47 2020/04/29 13:56:12 martin Exp $ A complete list of changes from the NetBSD 9.0 release to the NetBSD 9.1 release: @@ -2300,3 +2300,63 @@ share/misc/inter.phone1.32 Fix some polish entries. [sevan, ticket #862] +sys/dev/pckbport/synaptics.c 1.66 + + pms(4): synaptics: fix mouse lockup at X startup. + [jmcneill, ticket #865] + +sys/dev/acpi/acpi_ec.c1.82 + + kern/55206: fix alignment of buffer passed to the EC. + [jmcneill, ticket #866] + +sys/dev/acpi/acpi_display.c 1.17 + + acpi: display: remove unnecessary error prints in dmesg. + [jmcneill, ticket #867] + +sys/arch/amd64/amd64/machdep.c 1.349 +sys/arch/x86/x86/pmap.c1.384 + + amd64: speed up early console framebuffer. + [jmcneill, ticket #868] + +sys/dev/hdaudio/hdaudiodevs 1.4 +sys/dev/hdaudio/hdaudiodevs.h (regen) +sys/dev/hdaudio/hdaudiodevs_data.h (regen) + + Add Realtek ALC293. + [jmcneill, ticket #869] + +external/cddl/osnet/dist/uts/common/fs/zfs/vdev_disk.c 1.16 + + Fix zfs call to minphys. + [riastradh, ticket #870] + +external/cddl/osnet/sys/sys/cred.h 1.7 +sys/sys/kauth.h 1.84 + + Fix crash in zfs access control. + [riastradh, ticket #871] + +sys/dev/hdaudio/hdaudiodevs 1.5 +sys/dev/hdaudio/hdaudiodevs.h (regen) +sys/dev/hdaudio/hdaudiodevs_data.h (regen) + + hdaudiodevs: Add Realtek ALC292 + [nia, ticket #872] + +sys/dev/usb/usbdevs1.782 +sys/dev/usb/usbdevs.h(regen) +sys/dev/usb/usbdevs_data.h (regen) + + usbdevs: more Intel Integrated Rate Matching Hub IDs. + [nia, ticket #873] + +sys/dev/usb/usbdevs1.782 +sys/dev/usb/usbdevs.h(regen) +sys/dev/usb/usbdevs_data.h (regen) + + usbdevs: more Intel Integrated Rate Matching Hub IDs. + [nia, ticket #873] +
CVS commit: src/sys/dev/pci
Module Name:src Committed By: jakllsch Date: Wed Apr 29 18:52:03 UTC 2020 Modified Files: src/sys/dev/pci: if_msk.c if_mskvar.h Log Message: msk(4): don't keep array of pointers to each ring descriptor With 512 descriptors each in 2 rings this saves 4KiB (LP32) or 8KiB (LP64) per interface. To generate a diff of this commit: cvs rdiff -u -r1.103 -r1.104 src/sys/dev/pci/if_msk.c cvs rdiff -u -r1.23 -r1.24 src/sys/dev/pci/if_mskvar.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/dev/pci/if_msk.c diff -u src/sys/dev/pci/if_msk.c:1.103 src/sys/dev/pci/if_msk.c:1.104 --- src/sys/dev/pci/if_msk.c:1.103 Tue Apr 28 17:26:01 2020 +++ src/sys/dev/pci/if_msk.c Wed Apr 29 18:52:03 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_msk.c,v 1.103 2020/04/28 17:26:01 jakllsch Exp $ */ +/* $NetBSD: if_msk.c,v 1.104 2020/04/29 18:52:03 jakllsch Exp $ */ /* $OpenBSD: if_msk.c,v 1.79 2009/10/15 17:54:56 deraadt Exp $ */ /* @@ -52,7 +52,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_msk.c,v 1.103 2020/04/28 17:26:01 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_msk.c,v 1.104 2020/04/29 18:52:03 jakllsch Exp $"); #include #include @@ -418,14 +418,9 @@ msk_init_rx_ring(struct sk_if_softc *sc_ struct msk_chain_data *cd = &sc_if->sk_cdata; struct msk_ring_data *rd = sc_if->sk_rdata; struct msk_rx_desc *r; - int i; memset(rd->sk_rx_ring, 0, sizeof(struct msk_rx_desc) * MSK_RX_RING_CNT); - for (i = 0; i < MSK_RX_RING_CNT; i++) { - cd->sk_rx_chain[i].sk_le = &rd->sk_rx_ring[i]; - } - sc_if->sk_cdata.sk_rx_prod = 0; sc_if->sk_cdata.sk_rx_cons = 0; sc_if->sk_cdata.sk_rx_cnt = 0; @@ -453,14 +448,9 @@ msk_init_tx_ring(struct sk_if_softc *sc_ struct msk_chain_data *cd = &sc_if->sk_cdata; struct msk_ring_data *rd = sc_if->sk_rdata; struct msk_tx_desc *t; - int i; memset(rd->sk_tx_ring, 0, sizeof(struct msk_tx_desc) * MSK_TX_RING_CNT); - for (i = 0; i < MSK_TX_RING_CNT; i++) { - cd->sk_tx_chain[i].sk_le = &rd->sk_tx_ring[i]; - } - sc_if->sk_cdata.sk_tx_prod = 0; sc_if->sk_cdata.sk_tx_cons = 0; sc_if->sk_cdata.sk_tx_cnt = 0; @@ -515,7 +505,7 @@ msk_newbuf(struct sk_if_softc *sc_if, bu if (sc_if->sk_cdata.sk_rx_hiaddr != MSK_ADDR_HI(addr)) { c = &sc_if->sk_cdata.sk_rx_chain[sc_if->sk_cdata.sk_rx_prod]; - r = c->sk_le; + r = &sc_if->sk_rdata->sk_rx_ring[sc_if->sk_cdata.sk_rx_prod]; c->sk_mbuf = NULL; r->sk_addr = htole32(MSK_ADDR_HI(addr)); r->sk_len = 0; @@ -535,7 +525,7 @@ msk_newbuf(struct sk_if_softc *sc_if, bu } c = &sc_if->sk_cdata.sk_rx_chain[sc_if->sk_cdata.sk_rx_prod]; - r = c->sk_le; + r = &sc_if->sk_rdata->sk_rx_ring[sc_if->sk_cdata.sk_rx_prod]; c->sk_mbuf = m_new; r->sk_addr = htole32(MSK_ADDR_LO(addr)); r->sk_len = htole16(SK_JLEN); Index: src/sys/dev/pci/if_mskvar.h diff -u src/sys/dev/pci/if_mskvar.h:1.23 src/sys/dev/pci/if_mskvar.h:1.24 --- src/sys/dev/pci/if_mskvar.h:1.23 Sun Apr 26 16:14:14 2020 +++ src/sys/dev/pci/if_mskvar.h Wed Apr 29 18:52:03 2020 @@ -1,5 +1,5 @@ /* $OpenBSD: if_mskvar.h,v 1.3 2006/12/28 16:34:42 kettenis Exp $ */ -/* $NetBSD: if_mskvar.h,v 1.23 2020/04/26 16:14:14 jakllsch Exp $ */ +/* $NetBSD: if_mskvar.h,v 1.24 2020/04/29 18:52:03 jakllsch Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -89,7 +89,6 @@ struct sk_jpool_entry { }; struct sk_chain { - void *sk_le; struct mbuf *sk_mbuf; };
CVS commit: src/sys/dev/pci
Module Name:src Committed By: jakllsch Date: Wed Apr 29 20:03:52 UTC 2020 Modified Files: src/sys/dev/pci: if_msk.c if_mskvar.h Log Message: msk(4): Simply keep a ring of (tx) dmamaps, rather than a linked list To generate a diff of this commit: cvs rdiff -u -r1.104 -r1.105 src/sys/dev/pci/if_msk.c cvs rdiff -u -r1.24 -r1.25 src/sys/dev/pci/if_mskvar.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/dev/pci/if_msk.c diff -u src/sys/dev/pci/if_msk.c:1.104 src/sys/dev/pci/if_msk.c:1.105 --- src/sys/dev/pci/if_msk.c:1.104 Wed Apr 29 18:52:03 2020 +++ src/sys/dev/pci/if_msk.c Wed Apr 29 20:03:52 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_msk.c,v 1.104 2020/04/29 18:52:03 jakllsch Exp $ */ +/* $NetBSD: if_msk.c,v 1.105 2020/04/29 20:03:52 jakllsch Exp $ */ /* $OpenBSD: if_msk.c,v 1.79 2009/10/15 17:54:56 deraadt Exp $ */ /* @@ -52,7 +52,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_msk.c,v 1.104 2020/04/29 18:52:03 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_msk.c,v 1.105 2020/04/29 20:03:52 jakllsch Exp $"); #include #include @@ -1099,7 +1099,6 @@ msk_attach(device_t parent, device_t sel struct sk_softc *sc = device_private(parent); struct skc_attach_args *sa = aux; bus_dmamap_t dmamap; - struct sk_txmap_entry *entry; struct ifnet *ifp; struct mii_data * const mii = &sc_if->sk_mii; void *kva; @@ -1177,7 +1176,6 @@ msk_attach(device_t parent, device_t sel goto fail_3; } - SIMPLEQ_INIT(&sc_if->sk_txmap_head); for (i = 0; i < MSK_TX_RING_CNT; i++) { sc_if->sk_cdata.sk_tx_chain[i].sk_mbuf = NULL; @@ -1188,9 +1186,7 @@ msk_attach(device_t parent, device_t sel goto fail_3; } - entry = malloc(sizeof(*entry), M_DEVBUF, M_WAITOK); - entry->dmamap = dmamap; - SIMPLEQ_INSERT_HEAD(&sc_if->sk_txmap_head, entry, link); + sc_if->sk_cdata.sk_tx_chain[i].sk_dmamap = dmamap; } sc_if->sk_rdata = (struct msk_ring_data *)kva; @@ -1294,18 +1290,17 @@ msk_detach(device_t self, int flags) { struct sk_if_softc *sc_if = device_private(self); struct sk_softc *sc = sc_if->sk_softc; - struct sk_txmap_entry *entry; struct ifnet *ifp = &sc_if->sk_ethercom.ec_if; + int i; if (sc->sk_if[sc_if->sk_port] == NULL) return 0; msk_stop(ifp, 1); - while ((entry = SIMPLEQ_FIRST(&sc_if->sk_txmap_head))) { - SIMPLEQ_REMOVE_HEAD(&sc_if->sk_txmap_head, link); - bus_dmamap_destroy(sc->sc_dmatag, entry->dmamap); - free(entry, M_DEVBUF); + for (i = 0; i < MSK_TX_RING_CNT; i++) { + bus_dmamap_destroy(sc->sc_dmatag, + sc_if->sk_cdata.sk_tx_chain[i].sk_dmamap); } if (--sc->rnd_attached == 0) @@ -1786,18 +1781,12 @@ msk_encap(struct sk_if_softc *sc_if, str uint32_t frag, cur, hiaddr, old_hiaddr, total; uint32_t entries = 0; size_t i; - struct sk_txmap_entry *entry; bus_dmamap_t txmap; bus_addr_t addr; DPRINTFN(2, ("msk_encap\n")); - entry = SIMPLEQ_FIRST(&sc_if->sk_txmap_head); - if (entry == NULL) { - DPRINTFN(2, ("msk_encap: no txmap available\n")); - return ENOBUFS; - } - txmap = entry->dmamap; + txmap = sc_if->sk_cdata.sk_tx_chain[*txidx].sk_dmamap; cur = frag = *txidx; @@ -1880,10 +1869,11 @@ msk_encap(struct sk_if_softc *sc_if, str } KASSERTMSG(entries == total, "entries %u total %u", entries, total); + sc_if->sk_cdata.sk_tx_chain[*txidx].sk_dmamap = + sc_if->sk_cdata.sk_tx_chain[cur].sk_dmamap; sc_if->sk_cdata.sk_tx_chain[cur].sk_mbuf = m_head; - SIMPLEQ_REMOVE_HEAD(&sc_if->sk_txmap_head, link); + sc_if->sk_cdata.sk_tx_chain[cur].sk_dmamap = txmap; - sc_if->sk_cdata.sk_tx_map[cur] = entry; sc_if->sk_rdata->sk_tx_ring[cur].sk_ctl |= SK_Y2_TXCTL_LASTFRAG; /* Sync descriptors before handing to chip */ @@ -2087,7 +2077,7 @@ msk_txeof(struct sk_if_softc *sc_if) struct msk_tx_desc *cur_tx; struct ifnet *ifp = &sc_if->sk_ethercom.ec_if; uint32_t idx, reg, sk_ctl; - struct sk_txmap_entry *entry; + bus_dmamap_t dmamap; DPRINTFN(2, ("msk_txeof\n")); @@ -2114,15 +2104,12 @@ msk_txeof(struct sk_if_softc *sc_if) if (sk_ctl & SK_Y2_TXCTL_LASTFRAG) if_statinc(ifp, if_opackets); if (sc_if->sk_cdata.sk_tx_chain[idx].sk_mbuf != NULL) { - entry = sc_if->sk_cdata.sk_tx_map[idx]; + dmamap = sc_if->sk_cdata.sk_tx_chain[idx].sk_dmamap; - bus_dmamap_sync(sc->sc_dmatag, entry->dmamap, 0, - entry->dmamap->dm_mapsize, BUS_DMASYNC_POSTWRITE); + bus_dmamap_sync(sc->sc_dmatag, dmamap, 0, + dmamap->dm_mapsize, BUS_DMASYNC_POSTWRITE); - bus_dmamap_unload(sc->sc_dmatag, entry->dmamap); - SIMPLEQ_INSERT_TAIL(&sc_if->sk_txmap_head, entry, - link); - sc_if->sk_cdata.sk_tx_map[idx] = NULL; + bus_dmamap_unload(sc->sc_dmatag, dmamap); m_freem(sc_if->sk_cdata.sk_tx_chain[idx].sk_mbuf); sc_if->sk_cdata.sk_tx_chain[idx].sk_mbuf = NULL; } @@ -2611,7 +2598,7 @@ msk_stop(struct ifnet *ifp, int disable) { struct sk_if_softc *sc_if = ifp->if_softc; struct s
CVS commit: src/games/fortune/strfile
Module Name:src Committed By: nia Date: Wed Apr 29 20:45:05 UTC 2020 Modified Files: src/games/fortune/strfile: strfile.c Log Message: strfile: Check that input/output filenames don't exceed the buffer size To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/games/fortune/strfile/strfile.c 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/strfile/strfile.c diff -u src/games/fortune/strfile/strfile.c:1.38 src/games/fortune/strfile/strfile.c:1.39 --- src/games/fortune/strfile/strfile.c:1.38 Thu Sep 19 00:34:00 2013 +++ src/games/fortune/strfile/strfile.c Wed Apr 29 20:45:05 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: strfile.c,v 1.38 2013/09/19 00:34:00 uwe Exp $ */ +/* $NetBSD: strfile.c,v 1.39 2020/04/29 20:45:05 nia Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -47,7 +47,7 @@ __COPYRIGHT("@(#) Copyright (c) 1989, 19 #if 0 static char sccsid[] = "@(#)strfile.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: strfile.c,v 1.38 2013/09/19 00:34:00 uwe Exp $"); +__RCSID("$NetBSD: strfile.c,v 1.39 2020/04/29 20:45:05 nia Exp $"); #endif #endif /* not lint */ #endif /* __NetBSD__ */ @@ -267,6 +267,7 @@ getargs(int argc, char **argv) int ch; extern int optind; extern char *optarg; + size_t len; while ((ch = getopt(argc, argv, "c:iorsx")) != -1) switch(ch) { @@ -300,14 +301,25 @@ getargs(int argc, char **argv) if (*argv) { Infile = *argv; - if (*++argv) - (void) strcpy(Outfile, *argv); + if (*++argv) { + len = strlen(*argv); + if (len >= sizeof(Outfile)) { +puts("Bad output filename"); +usage(); + } + (void) memcpy(Outfile, *argv, len + 1); + } } if (!Infile) { puts("No input file name"); usage(); } if (*Outfile == '\0') { + len = strlen(Infile) + sizeof(".dat"); + if (len > sizeof(Outfile)) { + puts("Bad input filename"); + usage(); + } (void) strcpy(Outfile, Infile); (void) strcat(Outfile, ".dat"); }
CVS commit: src/games/fortune/unstr
Module Name:src Committed By: nia Date: Wed Apr 29 21:00:42 UTC 2020 Modified Files: src/games/fortune/unstr: unstr.c Log Message: unstr: Check that the input filename fits in the buffer. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/games/fortune/unstr/unstr.c 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/unstr/unstr.c diff -u src/games/fortune/unstr/unstr.c:1.14 src/games/fortune/unstr/unstr.c:1.15 --- src/games/fortune/unstr/unstr.c:1.14 Tue Jun 19 05:46:08 2012 +++ src/games/fortune/unstr/unstr.c Wed Apr 29 21:00:42 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: unstr.c,v 1.14 2012/06/19 05:46:08 dholland Exp $ */ +/* $NetBSD: unstr.c,v 1.15 2020/04/29 21:00:42 nia Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -42,7 +42,7 @@ __COPYRIGHT("@(#) Copyright (c) 1991, 19 #if 0 static char sccsid[] = "@(#)unstr.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: unstr.c,v 1.14 2012/06/19 05:46:08 dholland Exp $"); +__RCSID("$NetBSD: unstr.c,v 1.15 2020/04/29 21:00:42 nia Exp $"); #endif #endif /* not lint */ @@ -114,7 +114,7 @@ main(int ac __unused, char **av) void getargs(char *av[]) { - if (!*++av) { + if (!*++av || (strlen(*av) + sizeof(".dat")) > sizeof(Datafile)) { (void) fprintf(stderr, "usage: unstr datafile\n"); exit(1); }
CVS commit: src/sys/arch/x86/x86
Module Name:src Committed By: ad Date: Wed Apr 29 22:03:10 UTC 2020 Modified Files: src/sys/arch/x86/x86: cpu.c Log Message: Back out HPET delay & TSC changes to rule them out as the cause for recent hangs during boot etc. To generate a diff of this commit: cvs rdiff -u -r1.187 -r1.188 src/sys/arch/x86/x86/cpu.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/x86/cpu.c diff -u src/sys/arch/x86/x86/cpu.c:1.187 src/sys/arch/x86/x86/cpu.c:1.188 --- src/sys/arch/x86/x86/cpu.c:1.187 Sat Apr 25 15:26:18 2020 +++ src/sys/arch/x86/x86/cpu.c Wed Apr 29 22:03:09 2020 @@ -1,7 +1,7 @@ -/* $NetBSD: cpu.c,v 1.187 2020/04/25 15:26:18 bouyer Exp $ */ +/* $NetBSD: cpu.c,v 1.188 2020/04/29 22:03:09 ad Exp $ */ /* - * Copyright (c) 2000-2020 NetBSD Foundation, Inc. + * Copyright (c) 2000-2012 NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation @@ -62,7 +62,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.187 2020/04/25 15:26:18 bouyer Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.188 2020/04/29 22:03:09 ad Exp $"); #include "opt_ddb.h" #include "opt_mpbios.h" /* for MPDEBUG */ @@ -73,7 +73,6 @@ __KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.18 #include "lapic.h" #include "ioapic.h" #include "acpica.h" -#include "hpet.h" #include #include @@ -120,7 +119,6 @@ __KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.18 #endif #include -#include #include #include @@ -204,8 +202,6 @@ static vaddr_t cmos_data_mapping; #endif struct cpu_info *cpu_starting; -int (*cpu_nullop_ptr)(void *) = nullop; - #ifdef MULTIPROCESSOR void cpu_hatch(void *); static void cpu_boot_secondary(struct cpu_info *ci); @@ -437,11 +433,8 @@ cpu_attach(device_t parent, device_t sel * must be done to allow booting other processors. */ if (!again) { - /* Make sure DELAY() (likely i8254_delay()) is initialized. */ - DELAY(1); - - /* Basic init. */ atomic_or_32(&ci->ci_flags, CPUF_PRESENT | CPUF_PRIMARY); + /* Basic init. */ cpu_intr_init(ci); cpu_get_tsc_freq(ci); cpu_init(ci); @@ -458,6 +451,8 @@ cpu_attach(device_t parent, device_t sel lapic_calibrate_timer(ci); } #endif + /* Make sure DELAY() is initialized. */ + DELAY(1); kcsan_cpu_init(ci); again = true; } @@ -723,6 +718,7 @@ cpu_init(struct cpu_info *ci) if (ci != &cpu_info_primary) { /* Synchronize TSC */ + wbinvd(); atomic_or_32(&ci->ci_flags, CPUF_RUNNING); tsc_sync_ap(ci); } else { @@ -738,14 +734,6 @@ cpu_boot_secondary_processors(void) kcpuset_t *cpus; u_long i; -#if NHPET > 0 - /* Use HPET delay, and re-calibrate TSC on boot CPU using HPET. */ - if (hpet_delay_p() && x86_delay == i8254_delay) { - delay_func = x86_delay = hpet_delay; - cpu_get_tsc_freq(curcpu()); - } -#endif - /* Now that we know the number of CPUs, patch the text segment. */ x86_patch(false); @@ -854,6 +842,7 @@ cpu_start_secondary(struct cpu_info *ci) */ psl = x86_read_psl(); x86_disable_intr(); + wbinvd(); tsc_sync_bp(ci); x86_write_psl(psl); } @@ -884,6 +873,7 @@ cpu_boot_secondary(struct cpu_info *ci) drift = ci->ci_data.cpu_cc_skew; psl = x86_read_psl(); x86_disable_intr(); + wbinvd(); tsc_sync_bp(ci); x86_write_psl(psl); drift -= ci->ci_data.cpu_cc_skew; @@ -929,6 +919,7 @@ cpu_hatch(void *v) * Synchronize the TSC for the first time. Note that interrupts are * off at this point. */ + wbinvd(); atomic_or_32(&ci->ci_flags, CPUF_PRESENT); tsc_sync_ap(ci); @@ -1319,8 +1310,7 @@ cpu_shutdown(device_t dv, int how) void cpu_get_tsc_freq(struct cpu_info *ci) { - uint64_t freq = 0, t0, t1; - int64_t overhead; + uint64_t freq = 0, last_tsc; if (cpu_hascounter()) freq = cpu_tsc_freq_cpuid(ci); @@ -1329,31 +1319,11 @@ cpu_get_tsc_freq(struct cpu_info *ci) /* Use TSC frequency taken from CPUID. */ ci->ci_data.cpu_cc_freq = freq; } else { - /* - * Work out the approximate overhead involved below. - * Discard the result of the first go around the loop. - */ - overhead = 0; - for (int i = 0; i <= 8; i++) { - __insn_barrier(); - t0 = cpu_counter_serializing(); - (*cpu_nullop_ptr)(NULL); - t1 = cpu_counter_serializing(); - __insn_barrier(); - if (i > 0) { -overhead += (t1 - t0); - } - } - overhead >>= 3; - - /* Now warm up x86_delay() and do the calibration. */ - x86_delay(1); - __insn_barrier(); - t0 = cpu_counter_serializing(); + /* Calibrate TSC frequency. */ + last_tsc = cpu_counter_serializing(); x86_delay(10); - t1 = cpu_counter_serializing(); - __insn_barrier(); - ci->ci_data.cpu_cc_freq = (t1 - t0 - overhead) * 10; + ci->ci_data.cpu_cc_freq = + (cpu_counter_serializing() - last_tsc) * 10; } }
CVS commit: src/share/misc
Module Name:src Committed By: rtr Date: Wed Apr 29 22:17:38 UTC 2020 Modified Files: src/share/misc: acronyms.comp Log Message: LSO large send offload To generate a diff of this commit: cvs rdiff -u -r1.301 -r1.302 src/share/misc/acronyms.comp Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/share/misc/acronyms.comp diff -u src/share/misc/acronyms.comp:1.301 src/share/misc/acronyms.comp:1.302 --- src/share/misc/acronyms.comp:1.301 Mon Apr 27 09:10:45 2020 +++ src/share/misc/acronyms.comp Wed Apr 29 22:17:38 2020 @@ -1,4 +1,4 @@ -$NetBSD: acronyms.comp,v 1.301 2020/04/27 09:10:45 plunky Exp $ +$NetBSD: acronyms.comp,v 1.302 2020/04/29 22:17:38 rtr Exp $ 3WHS three-way handshake 8VSB 8-state vestigial side band modulation AA anti-aliasing @@ -882,6 +882,7 @@ LSL load segment limit LSM log structured merge LSN Large Scale NAT LSN log sequence number +LSO large send offload LSR label switch router LTCC low temperature co-fired ceramic LTO linear tape-open
CVS commit: src
Module Name:src Committed By: rillig Date: Wed Apr 29 23:15:22 UTC 2020 Modified Files: src/distrib/sets/lists/tests: mi src/usr.bin/make/unit-tests: Makefile Added Files: src/usr.bin/make/unit-tests: cond-late.exp cond-late.mk Log Message: usr.bin/make: add test case for lazy conditions To generate a diff of this commit: cvs rdiff -u -r1.837 -r1.838 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.54 -r1.55 src/usr.bin/make/unit-tests/Makefile cvs rdiff -u -r0 -r1.1 src/usr.bin/make/unit-tests/cond-late.exp \ src/usr.bin/make/unit-tests/cond-late.mk 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/tests/mi diff -u src/distrib/sets/lists/tests/mi:1.837 src/distrib/sets/lists/tests/mi:1.838 --- src/distrib/sets/lists/tests/mi:1.837 Sun Apr 26 18:53:32 2020 +++ src/distrib/sets/lists/tests/mi Wed Apr 29 23:15:22 2020 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.837 2020/04/26 18:53:32 thorpej Exp $ +# $NetBSD: mi,v 1.838 2020/04/29 23:15:22 rillig Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -4462,6 +4462,8 @@ ./usr/tests/usr.bin/make/unit-tests/Makefile tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/comment.exp tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/comment.mk tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/make/unit-tests/cond-late.exp tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/make/unit-tests/cond-late.mk tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/cond1.exp tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/cond1.mk tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/cond2.exp tests-usr.bin-tests compattestfile,atf Index: src/usr.bin/make/unit-tests/Makefile diff -u src/usr.bin/make/unit-tests/Makefile:1.54 src/usr.bin/make/unit-tests/Makefile:1.55 --- src/usr.bin/make/unit-tests/Makefile:1.54 Sat Nov 30 00:38:51 2019 +++ src/usr.bin/make/unit-tests/Makefile Wed Apr 29 23:15:21 2020 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.54 2019/11/30 00:38:51 rillig Exp $ +# $NetBSD: Makefile,v 1.55 2020/04/29 23:15:21 rillig Exp $ # # Unit tests for make(1) # The main targets are: @@ -22,6 +22,7 @@ UNIT_TESTS:= ${.PARSEDIR} # Keep the list sorted. TESTNAMES= \ comment \ + cond-late \ cond1 \ cond2 \ error \ Added files: Index: src/usr.bin/make/unit-tests/cond-late.exp diff -u /dev/null src/usr.bin/make/unit-tests/cond-late.exp:1.1 --- /dev/null Wed Apr 29 23:15:22 2020 +++ src/usr.bin/make/unit-tests/cond-late.exp Wed Apr 29 23:15:21 2020 @@ -0,0 +1,2 @@ +yes +no Index: src/usr.bin/make/unit-tests/cond-late.mk diff -u /dev/null src/usr.bin/make/unit-tests/cond-late.mk:1.1 --- /dev/null Wed Apr 29 23:15:22 2020 +++ src/usr.bin/make/unit-tests/cond-late.mk Wed Apr 29 23:15:21 2020 @@ -0,0 +1,23 @@ +# $NetBSD: cond-late.mk,v 1.1 2020/04/29 23:15:21 rillig Exp $ +# +# Using the :? modifier, variable expressions can contain conditional +# expressions that are evaluated late. Any variables appearing in these +# conditions are expanded before parsing the condition. This is +# different from many other places. +# +# Because of this, variables that are used in these lazy conditions +# should not contain double-quotes, or the parser will probably fail. +# +# They should also not contain operators like == or <, since these are +# actually interpreted as these operators. This is demonstrated below. +# +# If the order of evaluation were to change to first parse the condition +# and then expand the variables, the output would change from the +# current "yes no" to "yes yes", since both variables are non-empty. + +COND.true= "yes" == "yes" +COND.false= "yes" != "yes" + +all: + @echo ${ ${COND.true} :?yes:no} + @echo ${ ${COND.false} :?yes:no}
CVS commit: src/sys/dev/pci
Module Name:src Committed By: sevan Date: Thu Apr 30 00:32:16 UTC 2020 Modified Files: src/sys/dev/pci: if_rge.c Log Message: Sync with r1.3 from OpenBSD "Use correct bit mask to promptly exit rge_set_phy_power() and rge_exit_oob() timeout loops. Spotted by CID 1491296 and 1491309." To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/dev/pci/if_rge.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_rge.c diff -u src/sys/dev/pci/if_rge.c:1.9 src/sys/dev/pci/if_rge.c:1.10 --- src/sys/dev/pci/if_rge.c:1.9 Sat Feb 29 21:27:19 2020 +++ src/sys/dev/pci/if_rge.c Thu Apr 30 00:32:16 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_rge.c,v 1.9 2020/02/29 21:27:19 thorpej Exp $ */ +/* $NetBSD: if_rge.c,v 1.10 2020/04/30 00:32:16 sevan Exp $ */ /* $OpenBSD: if_rge.c,v 1.2 2020/01/02 09:00:45 kevlo Exp $ */ /* @@ -18,7 +18,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_rge.c,v 1.9 2020/02/29 21:27:19 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_rge.c,v 1.10 2020/04/30 00:32:16 sevan Exp $"); /* #include "vlan.h" Sevan */ @@ -1448,7 +1448,7 @@ rge_set_phy_power(struct rge_softc *sc, rge_write_phy(sc, 0, MII_BMCR, BMCR_AUTOEN); for (i = 0; i < RGE_TIMEOUT; i++) { - if ((rge_read_phy_ocp(sc, 0xa420) & 0x0080) == 3) + if ((rge_read_phy_ocp(sc, 0xa420) & 0x0007) == 3) break; DELAY(1000); } @@ -1889,7 +1889,7 @@ rge_exit_oob(struct rge_softc *sc) if (rge_read_mac_ocp(sc, 0xd42c) & 0x0100) { for (i = 0; i < RGE_TIMEOUT; i++) { - if ((rge_read_phy_ocp(sc, 0xa420) & 0x0080) == 2) + if ((rge_read_phy_ocp(sc, 0xa420) & 0x0007) == 2) break; DELAY(1000); }
CVS commit: src/sys/modules/examples
Module Name:src Committed By: christos Date: Thu Apr 30 00:48:10 UTC 2020 Modified Files: src/sys/modules/examples: Makefile README src/sys/modules/examples/ping: ping.c Added Files: src/sys/modules/examples/pollpal: Makefile cmd_pollpal.c pollpal.c Log Message: New kernel example module written by Ayushi Sharma To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/modules/examples/Makefile cvs rdiff -u -r1.14 -r1.15 src/sys/modules/examples/README cvs rdiff -u -r1.3 -r1.4 src/sys/modules/examples/ping/ping.c cvs rdiff -u -r0 -r1.1 src/sys/modules/examples/pollpal/Makefile \ src/sys/modules/examples/pollpal/cmd_pollpal.c \ src/sys/modules/examples/pollpal/pollpal.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/modules/examples/Makefile diff -u src/sys/modules/examples/Makefile:1.10 src/sys/modules/examples/Makefile:1.11 --- src/sys/modules/examples/Makefile:1.10 Sat Apr 4 17:15:04 2020 +++ src/sys/modules/examples/Makefile Wed Apr 29 20:48:10 2020 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.10 2020/04/04 21:15:04 kamil Exp $ +# $NetBSD: Makefile,v 1.11 2020/04/30 00:48:10 christos Exp $ .include @@ -12,6 +12,7 @@ SUBDIR+= mapper # Needs an additional SUBDIR+= panic_string # Crashes the system SUBDIR+= ping # Needs an additional helper program SUBDIR+= ping_block # Needs an additional helper program +SUBDIR+= pollpal # Needs an additional helper program SUBDIR+= properties SUBDIR+= readhappy SUBDIR+= readhappy_mpsafe # Contains an additional helper program Index: src/sys/modules/examples/README diff -u src/sys/modules/examples/README:1.14 src/sys/modules/examples/README:1.15 --- src/sys/modules/examples/README:1.14 Sat Apr 4 17:15:04 2020 +++ src/sys/modules/examples/README Wed Apr 29 20:48:10 2020 @@ -1,4 +1,4 @@ - $NetBSD: README,v 1.14 2020/04/04 21:15:04 kamil Exp $ + $NetBSD: README,v 1.15 2020/04/30 00:48:10 christos Exp $ Kernel Developer's Manual @@ -17,6 +17,7 @@ DESCRIPTION * ping- basic ioctl(9) * ping_block - basic ioctl(9) with a block device * properties - handle incoming properties during the module load + * pollpal - implementation of basic poll(9) using palindrome * readhappy - basic implementation of read(9) with happy numbers * readhappy_mpsafe- demonstrates how to make a module MPSAFE * sysctl - demonstrates adding a sysctl handle dynamically @@ -82,5 +83,8 @@ HISTORY The current_time module first appeared in NetBSD 10.0 and was authored by Apurva Nandan. + The pollpall module first appeared in NetBSD 10.0 and was authored by + Ayushi Sharma. + AUTHORS This document was written by Kamil Rytarowski. Index: src/sys/modules/examples/ping/ping.c diff -u src/sys/modules/examples/ping/ping.c:1.3 src/sys/modules/examples/ping/ping.c:1.4 --- src/sys/modules/examples/ping/ping.c:1.3 Wed Feb 5 09:10:46 2020 +++ src/sys/modules/examples/ping/ping.c Wed Apr 29 20:48:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ping.c,v 1.3 2020/02/05 14:10:46 pgoyette Exp $ */ +/* $NetBSD: ping.c,v 1.4 2020/04/30 00:48:10 christos Exp $ */ /*- * Copyright (c) 2015 The NetBSD Foundation, Inc. @@ -27,13 +27,15 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ping.c,v 1.3 2020/02/05 14:10:46 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ping.c,v 1.4 2020/04/30 00:48:10 christos Exp $"); +#define DDB #include #include #include #include #include +#include #include "ping.h" @@ -99,6 +101,7 @@ ping_ioctl(dev_t self __unused, u_long c switch(cmd) { case CMD_PING: printf("ping: pong!\n"); + Debugger(); return 0; default: return ENOTTY; Added files: Index: src/sys/modules/examples/pollpal/Makefile diff -u /dev/null src/sys/modules/examples/pollpal/Makefile:1.1 --- /dev/null Wed Apr 29 20:48:10 2020 +++ src/sys/modules/examples/pollpal/Makefile Wed Apr 29 20:48:10 2020 @@ -0,0 +1,18 @@ +# $NetBSD: Makefile,v 1.1 2020/04/30 00:48:10 christos Exp $ + +.include "../Makefile.inc" + +#S?= /usr/src/sys + +KMOD= pollpal +SRCS= pollpal.c + +.include + +# To make use of this module, you'll need to separately build the +# cmd_pollpall program, with a Makefile similar to +# +# MKMAN= NO +# PROG= cmd_pollpal +# .include + Index: src/sys/modules/examples/pollpal/cmd_pollpal.c diff -u /dev/null src/sys/modules/examples/pollpal/cmd_pollpal.c:1.1 --- /dev/null Wed Apr 29 20:48:10 2020 +++ src/sys/modules/examples/pollpal/cmd_pollpal.c Wed Apr 29 20:48:10 2020 @@ -0,0 +1,130 @@ +/* $NetBSD: cmd_pollpal.c,v 1.1 2020/04/30 00:48:10 christos Exp $ */ + +/*- + * Copyright (c) 2020 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following c
CVS commit: src/sys/dev/pci
Module Name:src Committed By: jakllsch Date: Thu Apr 30 01:52:09 UTC 2020 Modified Files: src/sys/dev/pci: if_msk.c Log Message: msk(4): rework rx descriptor loading to support multiple segments This paves the way to replace the driver-internal jumbo frame rx buffer with other recieve buffers (for example MCLGET/MEXTMALLOC) in the future. To generate a diff of this commit: cvs rdiff -u -r1.105 -r1.106 src/sys/dev/pci/if_msk.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_msk.c diff -u src/sys/dev/pci/if_msk.c:1.105 src/sys/dev/pci/if_msk.c:1.106 --- src/sys/dev/pci/if_msk.c:1.105 Wed Apr 29 20:03:52 2020 +++ src/sys/dev/pci/if_msk.c Thu Apr 30 01:52:08 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_msk.c,v 1.105 2020/04/29 20:03:52 jakllsch Exp $ */ +/* $NetBSD: if_msk.c,v 1.106 2020/04/30 01:52:08 jakllsch Exp $ */ /* $OpenBSD: if_msk.c,v 1.79 2009/10/15 17:54:56 deraadt Exp $ */ /* @@ -52,7 +52,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_msk.c,v 1.105 2020/04/29 20:03:52 jakllsch Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_msk.c,v 1.106 2020/04/30 01:52:08 jakllsch Exp $"); #include #include @@ -113,7 +113,7 @@ static int msk_init(struct ifnet *); static void msk_init_yukon(struct sk_if_softc *); static void msk_stop(struct ifnet *, int); static void msk_watchdog(struct ifnet *); -static int msk_newbuf(struct sk_if_softc *, bus_dmamap_t); +static int msk_newbuf(struct sk_if_softc *); static int msk_alloc_jumbo_mem(struct sk_if_softc *); static void *msk_jalloc(struct sk_if_softc *); static void msk_jfree(struct mbuf *, void *, size_t, void *); @@ -472,13 +472,18 @@ msk_init_tx_ring(struct sk_if_softc *sc_ } static int -msk_newbuf(struct sk_if_softc *sc_if, bus_dmamap_t dmamap) +msk_newbuf(struct sk_if_softc *sc_if) { + struct sk_softc *sc = sc_if->sk_softc; struct mbuf *m_new = NULL; struct sk_chain *c; struct msk_rx_desc *r; void *buf = NULL; bus_addr_t addr; + bus_dmamap_t rxmap; + size_t i; + uint32_t rxidx, frag, cur, hiaddr, old_hiaddr, total; + uint32_t entries = 0; MGETHDR(m_new, M_DONTWAIT, MT_DATA); if (m_new == NULL) @@ -499,44 +504,99 @@ msk_newbuf(struct sk_if_softc *sc_if, bu m_adj(m_new, ETHER_ALIGN); - addr = dmamap->dm_segs[0].ds_addr + - ((vaddr_t)m_new->m_data - - (vaddr_t)sc_if->sk_cdata.sk_jumbo_buf); - - if (sc_if->sk_cdata.sk_rx_hiaddr != MSK_ADDR_HI(addr)) { - c = &sc_if->sk_cdata.sk_rx_chain[sc_if->sk_cdata.sk_rx_prod]; - r = &sc_if->sk_rdata->sk_rx_ring[sc_if->sk_cdata.sk_rx_prod]; - c->sk_mbuf = NULL; - r->sk_addr = htole32(MSK_ADDR_HI(addr)); - r->sk_len = 0; - r->sk_ctl = 0; - r->sk_opcode = SK_Y2_BMUOPC_ADDR64 | SK_Y2_RXOPC_OWN; - sc_if->sk_cdata.sk_rx_hiaddr = MSK_ADDR_HI(addr); + rxidx = frag = cur = sc_if->sk_cdata.sk_rx_prod; + rxmap = sc_if->sk_cdata.sk_rx_chain[rxidx].sk_dmamap; - MSK_CDRXSYNC(sc_if, sc_if->sk_cdata.sk_rx_prod, - BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREREAD); + if (bus_dmamap_load_mbuf(sc->sc_dmatag, rxmap, m_new, BUS_DMA_NOWAIT)) { + DPRINTFN(2, ("msk_newbuf: dmamap_load failed\n")); + m_freem(m_new); + return ENOBUFS; + } - SK_INC(sc_if->sk_cdata.sk_rx_prod, MSK_RX_RING_CNT); - sc_if->sk_cdata.sk_rx_cnt++; + /* Count how many rx descriptors needed. */ + hiaddr = sc_if->sk_cdata.sk_rx_hiaddr; + for (total = i = 0; i < rxmap->dm_nsegs; i++) { + if (hiaddr != MSK_ADDR_HI(rxmap->dm_segs[i].ds_addr)) { + hiaddr = MSK_ADDR_HI(rxmap->dm_segs[i].ds_addr); + total++; + } + total++; + } - DPRINTFN(10, ("%s: rx ADDR64: %#x\n", - sc_if->sk_ethercom.ec_if.if_xname, - (unsigned)MSK_ADDR_HI(addr))); + if (total > MSK_RX_RING_CNT - sc_if->sk_cdata.sk_rx_cnt - 1) { + DPRINTFN(2, ("msk_newbuf: too few descriptors free\n")); + bus_dmamap_unload(sc->sc_dmatag, rxmap); + m_freem(m_new); + return ENOBUFS; } - c = &sc_if->sk_cdata.sk_rx_chain[sc_if->sk_cdata.sk_rx_prod]; - r = &sc_if->sk_rdata->sk_rx_ring[sc_if->sk_cdata.sk_rx_prod]; - c->sk_mbuf = m_new; - r->sk_addr = htole32(MSK_ADDR_LO(addr)); - r->sk_len = htole16(SK_JLEN); - r->sk_ctl = 0; - r->sk_opcode = SK_Y2_RXOPC_PACKET | SK_Y2_RXOPC_OWN; + DPRINTFN(2, ("msk_newbuf: dm_nsegs=%d total desc=%u\n", + rxmap->dm_nsegs, total)); - MSK_CDRXSYNC(sc_if, sc_if->sk_cdata.sk_rx_prod, + /* Sync the DMA map. */ + bus_dmamap_sync(sc->sc_dmatag, rxmap, 0, rxmap->dm_mapsize, + BUS_DMASYNC_PREREAD); + + old_hiaddr = sc_if->sk_cdata.sk_rx_hiaddr; + for (i = 0; i < rxmap->dm_nsegs; i++) { + addr = rxmap->dm_segs[i].ds_addr; + DPRINTFN(2, ("msk_newbuf: addr %llx\n", + (unsigned long long)addr)); + hiaddr = MSK_ADDR_HI(addr); + + if (sc_if->sk_cdata.sk_rx_hiaddr != hiaddr) { + c = &sc_if->sk_cdata.sk_rx_chain[frag]; + c->sk_mbuf = NULL; + r = &sc_if->sk_rdata->sk_rx_ring[frag]; + r->sk_addr = htole32(hiaddr); + r->sk_len = 0; + r->sk_ctl = 0; + if (i == 0) +r
CVS commit: src/sys/dev/pci
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:24:15 UTC 2020 Modified Files: src/sys/dev/pci: amdpm.c hifn7751.c ubsec.c Log Message: Don't attach rndsource until it's actually ready to run. To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/dev/pci/amdpm.c cvs rdiff -u -r1.65 -r1.66 src/sys/dev/pci/hifn7751.c cvs rdiff -u -r1.48 -r1.49 src/sys/dev/pci/ubsec.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/amdpm.c diff -u src/sys/dev/pci/amdpm.c:1.39 src/sys/dev/pci/amdpm.c:1.40 --- src/sys/dev/pci/amdpm.c:1.39 Mon Apr 13 16:33:25 2015 +++ src/sys/dev/pci/amdpm.c Thu Apr 30 03:24:15 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: amdpm.c,v 1.39 2015/04/13 16:33:25 riastradh Exp $ */ +/* $NetBSD: amdpm.c,v 1.40 2020/04/30 03:24:15 riastradh Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: amdpm.c,v 1.39 2015/04/13 16:33:25 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: amdpm.c,v 1.40 2020/04/30 03:24:15 riastradh Exp $"); #include "opt_amdpm.h" @@ -191,11 +191,6 @@ amdpm_attach(device_t parent, device_t s "random number generator enabled (apprx. %dms)\n", i); callout_init(&sc->sc_rnd_ch, CALLOUT_MPSAFE); - rndsource_setcb(&sc->sc_rnd_source, - amdpm_rnd_get, sc); - rnd_attach_source(&sc->sc_rnd_source, - device_xname(self), RND_TYPE_RNG, - RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB); #ifdef AMDPM_RND_COUNTERS evcnt_attach_dynamic(&sc->sc_rnd_hits, EVCNT_TYPE_MISC, NULL, device_xname(self), "rnd hits"); @@ -207,6 +202,11 @@ amdpm_attach(device_t parent, device_t s "rnd data"); } #endif + rndsource_setcb(&sc->sc_rnd_source, + amdpm_rnd_get, sc); + rnd_attach_source(&sc->sc_rnd_source, + device_xname(self), RND_TYPE_RNG, + RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB); sc->sc_rnd_need = RND_POOLBITS / NBBY; amdpm_rnd_callout(sc); } Index: src/sys/dev/pci/hifn7751.c diff -u src/sys/dev/pci/hifn7751.c:1.65 src/sys/dev/pci/hifn7751.c:1.66 --- src/sys/dev/pci/hifn7751.c:1.65 Sat Feb 29 16:36:25 2020 +++ src/sys/dev/pci/hifn7751.c Thu Apr 30 03:24:15 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: hifn7751.c,v 1.65 2020/02/29 16:36:25 mlelstv Exp $ */ +/* $NetBSD: hifn7751.c,v 1.66 2020/04/30 03:24:15 riastradh Exp $ */ /* $FreeBSD: hifn7751.c,v 1.5.2.7 2003/10/08 23:52:00 sam Exp $ */ /* $OpenBSD: hifn7751.c,v 1.140 2003/08/01 17:55:54 deraadt Exp $ */ @@ -48,7 +48,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: hifn7751.c,v 1.65 2020/02/29 16:36:25 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hifn7751.c,v 1.66 2020/04/30 03:24:15 riastradh Exp $"); #include #include @@ -595,13 +595,6 @@ hifn_init_pubrng(struct hifn_softc *sc) */ DELAY(4000); -#ifdef __NetBSD__ - rndsource_setcb(&sc->sc_rnd_source, hifn_rng_get, sc); - rnd_attach_source(&sc->sc_rnd_source, device_xname(sc->sc_dv), - RND_TYPE_RNG, - RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB); -#endif - if (hz >= 100) sc->sc_rnghz = hz / 100; else @@ -611,6 +604,13 @@ hifn_init_pubrng(struct hifn_softc *sc) #else /* !__OpenBSD__ */ callout_init(&sc->sc_rngto, CALLOUT_MPSAFE); #endif /* !__OpenBSD__ */ + +#ifdef __NetBSD__ + rndsource_setcb(&sc->sc_rnd_source, hifn_rng_get, sc); + rnd_attach_source(&sc->sc_rnd_source, device_xname(sc->sc_dv), + RND_TYPE_RNG, + RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB); +#endif } /* Enable public key engine, if available */ Index: src/sys/dev/pci/ubsec.c diff -u src/sys/dev/pci/ubsec.c:1.48 src/sys/dev/pci/ubsec.c:1.49 --- src/sys/dev/pci/ubsec.c:1.48 Mon Mar 16 21:20:09 2020 +++ src/sys/dev/pci/ubsec.c Thu Apr 30 03:24:15 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ubsec.c,v 1.48 2020/03/16 21:20:09 pgoyette Exp $ */ +/* $NetBSD: ubsec.c,v 1.49 2020/04/30 03:24:15 riastradh Exp $ */ /* $FreeBSD: src/sys/dev/ubsec/ubsec.c,v 1.6.2.6 2003/01/23 21:06:43 sam Exp $ */ /* $OpenBSD: ubsec.c,v 1.143 2009/03/27 13:31:30 reyk Exp$ */ @@ -35,7 +35,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ubsec.c,v 1.48 2020/03/16 21:20:09 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ubsec.c,v 1.49 2020/04/30 03:24:15 riastradh Exp $"); #undef UBSEC_DEBUG @@ -501,11 +501,6 @@ ubsec_attach(device_t parent, device_t s ubsec_dma_free(sc, &sc->sc_rng.rng_q.q_mcr); goto skip_rng; } - - rndsource_setcb(&sc->sc_rnd_source, ubsec_rng_get, sc); - rnd_attach_source(&sc->sc_rnd_source, device_xname(sc->sc_dev), - RND_TYPE_RNG, - RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB); if (hz >= 100) sc->sc_rnghz = hz / 100; else @@ -516,8 +511,15 @@ ubsec_attach(device_t parent, device_t s #else callout_init(&sc->sc_rngto, 0); callout_setfunc(&sc->sc_rngto, ubsec_rng, sc); +#endif + rndsource_setcb(&sc->sc_rnd_source, ubsec_rng_get, sc); + rnd_attach_source(&sc->sc_
CVS commit: src/sys/dev/usb
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:24:28 UTC 2020 Modified Files: src/sys/dev/usb: ualea.c Log Message: Turn XXX comment into KASSERT. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/dev/usb/ualea.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/usb/ualea.c diff -u src/sys/dev/usb/ualea.c:1.9 src/sys/dev/usb/ualea.c:1.10 --- src/sys/dev/usb/ualea.c:1.9 Sun Jan 21 13:57:12 2018 +++ src/sys/dev/usb/ualea.c Thu Apr 30 03:24:28 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ualea.c,v 1.9 2018/01/21 13:57:12 skrll Exp $ */ +/* $NetBSD: ualea.c,v 1.10 2020/04/30 03:24:28 riastradh Exp $ */ /*- * Copyright (c) 2017 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ualea.c,v 1.9 2018/01/21 13:57:12 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ualea.c,v 1.10 2020/04/30 03:24:28 riastradh Exp $"); #include #include @@ -198,12 +198,9 @@ ualea_xfer(struct ualea_softc *sc) return; /* Issue xfer or complain if we can't. */ - /* - * XXX Does USBD_NORMAL_COMPLETION (= 0) make sense here? The - * xfer can't complete synchronously because of the lock. - */ status = usbd_transfer(sc->sc_xfer); - if (status && status != USBD_IN_PROGRESS) { + KASSERT(status != USBD_NORMAL_COMPLETION); /* asynchronous xfer */ + if (status != USBD_IN_PROGRESS) { aprint_error_dev(sc->sc_dev, "failed to issue xfer: %d\n", status); /* We failed -- let someone else have a go. */
CVS commit: src/sbin/rndctl
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:24:48 UTC 2020 Modified Files: src/sbin/rndctl: rndctl.c Log Message: Accept both byte orders for random seed in `rndctl -L'. The file format was defined with a machine-dependent 32-bit integer field (the estimated number of bits of entropy in the process that generated it). Take whichever byte order gives a number that is reasonable, i.e. lower than the number of bits in the buffer. Continue to have `rndctl -S' generate it in machine-dependent byte order for now, so that if you roll back to an older rndctl(8) then `rndctl -L' on the same machine will still be able to load it with the right entropy estimate. In a future revision, perhaps we can change it to be little-endian. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sbin/rndctl/rndctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sbin/rndctl/rndctl.c diff -u src/sbin/rndctl/rndctl.c:1.31 src/sbin/rndctl/rndctl.c:1.32 --- src/sbin/rndctl/rndctl.c:1.31 Fri Dec 6 14:43:18 2019 +++ src/sbin/rndctl/rndctl.c Thu Apr 30 03:24:48 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: rndctl.c,v 1.31 2019/12/06 14:43:18 riastradh Exp $ */ +/* $NetBSD: rndctl.c,v 1.32 2020/04/30 03:24:48 riastradh Exp $ */ /*- * Copyright (c) 1997 Michael Graff. @@ -33,13 +33,14 @@ #include #ifndef lint -__RCSID("$NetBSD: rndctl.c,v 1.31 2019/12/06 14:43:18 riastradh Exp $"); +__RCSID("$NetBSD: rndctl.c,v 1.32 2020/04/30 03:24:48 riastradh Exp $"); #endif #include #include #include +#include #include #include @@ -192,9 +193,8 @@ do_save(const char *filename, const void MIN(sizeof(rs.data), UINT32_MAX/NBBY)*NBBY); /* - * Compute the checksum on the 32-bit entropy count, in host - * byte order (XXX this means it is not portable across - * different-endian platforms!), followed by the seed data. + * Compute the checksum on the 32-bit entropy count, followed + * by the seed data. */ SHA1Init(&s); SHA1Update(&s, (const uint8_t *)&rs.entropy, sizeof(rs.entropy)); @@ -309,6 +309,17 @@ do_load(const char *filename) rs.entropy = 0; } + /* + * If the entropy is insensibly large, try byte-swapping. + * Otherwise assume the file is corrupted and act as though it + * has zero entropy. + */ + if (howmany(rs.entropy, NBBY) > sizeof(rs.data)) { + rs.entropy = bswap32(rs.entropy); + if (howmany(rs.entropy, NBBY) > sizeof(rs.data)) + rs.entropy = 0; + } + /* Format the ioctl request. */ rd.len = MIN(sizeof(rd.data), sizeof(rs.data)); rd.entropy = rs.entropy;
CVS commit: src/sbin/rndctl
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:27:15 UTC 2020 Modified Files: src/sbin/rndctl: rndctl.c Log Message: Sort includes. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sbin/rndctl/rndctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sbin/rndctl/rndctl.c diff -u src/sbin/rndctl/rndctl.c:1.32 src/sbin/rndctl/rndctl.c:1.33 --- src/sbin/rndctl/rndctl.c:1.32 Thu Apr 30 03:24:48 2020 +++ src/sbin/rndctl/rndctl.c Thu Apr 30 03:27:15 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: rndctl.c,v 1.32 2020/04/30 03:24:48 riastradh Exp $ */ +/* $NetBSD: rndctl.c,v 1.33 2020/04/30 03:27:15 riastradh Exp $ */ /*- * Copyright (c) 1997 Michael Graff. @@ -28,30 +28,28 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ -#include -#include -#include +#include #ifndef lint -__RCSID("$NetBSD: rndctl.c,v 1.32 2020/04/30 03:24:48 riastradh Exp $"); +__RCSID("$NetBSD: rndctl.c,v 1.33 2020/04/30 03:27:15 riastradh Exp $"); #endif - -#include -#include #include +#include #include +#include #include #include -#include -#include -#include -#include -#include #include +#include +#include #include +#include +#include +#include #include +#include typedef struct { const char *a_name;
CVS commit: src/sys/arch
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:29:20 UTC 2020 Modified Files: src/sys/arch/amd64/amd64: machdep.c src/sys/arch/i386/i386: machdep.c src/sys/arch/x86/include: cpu_rng.h src/sys/arch/x86/x86: cpu_rng.c pmap.c Log Message: Simplify Intel RDRAND/RDSEED and VIA C3 RNG API. Push it all into MD x86 code to keep it simpler, until we have other examples on other CPUs. Simplify RDSEED-to-RDRAND fallback. Eliminate cpu_earlyrng in favour of just using entropy_extract, which is available early now. To generate a diff of this commit: cvs rdiff -u -r1.349 -r1.350 src/sys/arch/amd64/amd64/machdep.c cvs rdiff -u -r1.827 -r1.828 src/sys/arch/i386/i386/machdep.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/x86/include/cpu_rng.h cvs rdiff -u -r1.10 -r1.11 src/sys/arch/x86/x86/cpu_rng.c cvs rdiff -u -r1.384 -r1.385 src/sys/arch/x86/x86/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/amd64/amd64/machdep.c diff -u src/sys/arch/amd64/amd64/machdep.c:1.349 src/sys/arch/amd64/amd64/machdep.c:1.350 --- src/sys/arch/amd64/amd64/machdep.c:1.349 Tue Apr 28 21:35:35 2020 +++ src/sys/arch/amd64/amd64/machdep.c Thu Apr 30 03:29:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.349 2020/04/28 21:35:35 jmcneill Exp $ */ +/* $NetBSD: machdep.c,v 1.350 2020/04/30 03:29:19 riastradh Exp $ */ /* * Copyright (c) 1996, 1997, 1998, 2000, 2006, 2007, 2008, 2011 @@ -110,7 +110,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.349 2020/04/28 21:35:35 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.350 2020/04/30 03:29:19 riastradh Exp $"); #include "opt_modular.h" #include "opt_user_ldt.h" @@ -167,6 +167,7 @@ __KERNEL_RCSID(0, "$NetBSD: machdep.c,v #include #include +#include #include #include #include @@ -1682,6 +1683,7 @@ init_x86_64(paddr_t first_avail) uvm_lwp_setuarea(&lwp0, lwp0uarea); cpu_probe(&cpu_info_primary); + cpu_rng_init(); #ifdef SVS svs_init(); #endif Index: src/sys/arch/i386/i386/machdep.c diff -u src/sys/arch/i386/i386/machdep.c:1.827 src/sys/arch/i386/i386/machdep.c:1.828 --- src/sys/arch/i386/i386/machdep.c:1.827 Sat Apr 25 15:26:17 2020 +++ src/sys/arch/i386/i386/machdep.c Thu Apr 30 03:29:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.827 2020/04/25 15:26:17 bouyer Exp $ */ +/* $NetBSD: machdep.c,v 1.828 2020/04/30 03:29:19 riastradh Exp $ */ /* * Copyright (c) 1996, 1997, 1998, 2000, 2004, 2006, 2008, 2009, 2017 @@ -67,7 +67,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.827 2020/04/25 15:26:17 bouyer Exp $"); +__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.828 2020/04/30 03:29:19 riastradh Exp $"); #include "opt_beep.h" #include "opt_compat_freebsd.h" @@ -122,6 +122,7 @@ __KERNEL_RCSID(0, "$NetBSD: machdep.c,v #include #include +#include #include #include #include @@ -1142,6 +1143,7 @@ init386(paddr_t first_avail) uvm_lwp_setuarea(&lwp0, lwp0uarea); cpu_probe(&cpu_info_primary); + cpu_rng_init(); cpu_init_msrs(&cpu_info_primary, true); #ifndef XEN cpu_speculation_init(&cpu_info_primary); Index: src/sys/arch/x86/include/cpu_rng.h diff -u src/sys/arch/x86/include/cpu_rng.h:1.2 src/sys/arch/x86/include/cpu_rng.h:1.3 --- src/sys/arch/x86/include/cpu_rng.h:1.2 Sat Jul 21 06:09:13 2018 +++ src/sys/arch/x86/include/cpu_rng.h Thu Apr 30 03:29:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu_rng.h,v 1.2 2018/07/21 06:09:13 maxv Exp $ */ +/* $NetBSD: cpu_rng.h,v 1.3 2020/04/30 03:29:19 riastradh Exp $ */ #ifndef _X86_CPU_RNG_H_ #define _X86_CPU_RNG_H_ @@ -32,12 +32,6 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include - -typedef uint64_t cpu_rng_t; - -bool cpu_rng_init(void); -size_t cpu_rng(cpu_rng_t *); -void cpu_earlyrng(void *, size_t); +void cpu_rng_init(void); #endif /* _X86_CPU_RNG_H_ */ Index: src/sys/arch/x86/x86/cpu_rng.c diff -u src/sys/arch/x86/x86/cpu_rng.c:1.10 src/sys/arch/x86/x86/cpu_rng.c:1.11 --- src/sys/arch/x86/x86/cpu_rng.c:1.10 Fri Nov 1 15:01:27 2019 +++ src/sys/arch/x86/x86/cpu_rng.c Thu Apr 30 03:29:20 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu_rng.c,v 1.10 2019/11/01 15:01:27 taca Exp $ */ +/* $NetBSD: cpu_rng.c,v 1.11 2020/04/30 03:29:20 riastradh Exp $ */ /*- * Copyright (c) 2015 The NetBSD Foundation, Inc. @@ -33,11 +33,24 @@ * The VIA RNG code in this file is inspired by Jason Wright and * Theo de Raadt's OpenBSD version but has been rewritten in light of * comments from Henric Jungheim on the t...@openbsd.org mailing list. + * + * For reference on Intel RDRAND/RDSEED, see the Intel Digital Random + * Number Generator Software Implementation Guide (`Intel DRNG SIG'), + * Revision 2.1, October 17, 2018. + * https://software.intel.com/sites/default/files/managed/98/4a/DRNG_Software_Implementation_Guide_2.1.pdf + * + * For reference on AMD RDRAND/RDSEED, which are designed to be + * compatible with Intel
CVS commit: src/sys/crypto/cprng_fast
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:29:45 UTC 2020 Modified Files: src/sys/crypto/cprng_fast: cprng_fast.c Log Message: Count cprng_fast reseed events. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/crypto/cprng_fast/cprng_fast.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/crypto/cprng_fast/cprng_fast.c diff -u src/sys/crypto/cprng_fast/cprng_fast.c:1.14 src/sys/crypto/cprng_fast/cprng_fast.c:1.15 --- src/sys/crypto/cprng_fast/cprng_fast.c:1.14 Thu Apr 30 03:29:35 2020 +++ src/sys/crypto/cprng_fast/cprng_fast.c Thu Apr 30 03:29:45 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cprng_fast.c,v 1.14 2020/04/30 03:29:35 riastradh Exp $ */ +/* $NetBSD: cprng_fast.c,v 1.15 2020/04/30 03:29:45 riastradh Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: cprng_fast.c,v 1.14 2020/04/30 03:29:35 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cprng_fast.c,v 1.15 2020/04/30 03:29:45 riastradh Exp $"); #include #include @@ -38,7 +38,9 @@ __KERNEL_RCSID(0, "$NetBSD: cprng_fast.c #include #include #include +#include #include +#include #include /* ChaCha core */ @@ -198,6 +200,7 @@ struct cprng_fast { uint32_t buffer[crypto_core_OUTPUTWORDS]; uint32_t key[crypto_core_KEYWORDS]; uint32_t nonce[crypto_core_INPUTWORDS]; + struct evcnt *reseed_evcnt; unsigned epoch; }; @@ -221,14 +224,14 @@ cprng_fast_init(void) { crypto_core_selftest(); - cprng_fast_percpu = percpu_alloc(sizeof(struct cprng_fast)); - percpu_foreach(cprng_fast_percpu, &cprng_fast_init_cpu, NULL); + cprng_fast_percpu = percpu_create(sizeof(struct cprng_fast), + cprng_fast_init_cpu, NULL, NULL); cprng_fast_softint = softint_establish(SOFTINT_SERIAL|SOFTINT_MPSAFE, &cprng_fast_intr, NULL); } static void -cprng_fast_init_cpu(void *p, void *arg __unused, struct cpu_info *ci __unused) +cprng_fast_init_cpu(void *p, void *arg __unused, struct cpu_info *ci) { struct cprng_fast *const cprng = p; uint8_t seed[CPRNG_FAST_SEED_BYTES]; @@ -237,6 +240,11 @@ cprng_fast_init_cpu(void *p, void *arg _ cprng_strong(kern_cprng, seed, sizeof seed, 0); cprng_fast_seed(cprng, seed); (void)explicit_memset(seed, 0, sizeof seed); + + cprng->reseed_evcnt = kmem_alloc(sizeof(*cprng->reseed_evcnt), + KM_SLEEP); + evcnt_attach_dynamic(cprng->reseed_evcnt, EVCNT_TYPE_MISC, NULL, + ci->ci_cpuname, "cprng_fast reseed"); } static inline int @@ -285,6 +293,7 @@ cprng_fast_intr(void *cookie __unused) s = splvm(); cprng_fast_seed(cprng, seed); cprng->epoch = epoch; + cprng->reseed_evcnt->ev_count++; splx(s); percpu_putref(cprng_fast_percpu);
CVS commit: src/sys
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:30:11 UTC 2020 Modified Files: src/sys/arch/x86/x86: cpu_rng.c src/sys/compat/common: rndpseudo_50.c src/sys/compat/netbsd32: netbsd32_compat_50.c netbsd32_rndpseudo_50.c src/sys/netinet: sctp_pcb.c Log Message: Omit needless #include . To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/arch/x86/x86/cpu_rng.c cvs rdiff -u -r1.6 -r1.7 src/sys/compat/common/rndpseudo_50.c cvs rdiff -u -r1.48 -r1.49 src/sys/compat/netbsd32/netbsd32_compat_50.c cvs rdiff -u -r1.4 -r1.5 src/sys/compat/netbsd32/netbsd32_rndpseudo_50.c cvs rdiff -u -r1.20 -r1.21 src/sys/netinet/sctp_pcb.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/x86/cpu_rng.c diff -u src/sys/arch/x86/x86/cpu_rng.c:1.11 src/sys/arch/x86/x86/cpu_rng.c:1.12 --- src/sys/arch/x86/x86/cpu_rng.c:1.11 Thu Apr 30 03:29:20 2020 +++ src/sys/arch/x86/x86/cpu_rng.c Thu Apr 30 03:30:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu_rng.c,v 1.11 2020/04/30 03:29:20 riastradh Exp $ */ +/* $NetBSD: cpu_rng.c,v 1.12 2020/04/30 03:30:10 riastradh Exp $ */ /*- * Copyright (c) 2015 The NetBSD Foundation, Inc. @@ -48,7 +48,6 @@ #include #include #include -#include #include #include #include Index: src/sys/compat/common/rndpseudo_50.c diff -u src/sys/compat/common/rndpseudo_50.c:1.6 src/sys/compat/common/rndpseudo_50.c:1.7 --- src/sys/compat/common/rndpseudo_50.c:1.6 Thu Dec 12 02:15:42 2019 +++ src/sys/compat/common/rndpseudo_50.c Thu Apr 30 03:30:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: rndpseudo_50.c,v 1.6 2019/12/12 02:15:42 pgoyette Exp $ */ +/* $NetBSD: rndpseudo_50.c,v 1.7 2020/04/30 03:30:10 riastradh Exp $ */ /*- * Copyright (c) 1997-2011 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: rndpseudo_50.c,v 1.6 2019/12/12 02:15:42 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rndpseudo_50.c,v 1.7 2020/04/30 03:30:10 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -38,8 +38,6 @@ __KERNEL_RCSID(0, "$NetBSD: rndpseudo_50 #include #include - -#include #include #include Index: src/sys/compat/netbsd32/netbsd32_compat_50.c diff -u src/sys/compat/netbsd32/netbsd32_compat_50.c:1.48 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.49 --- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.48 Sun Mar 15 12:46:02 2020 +++ src/sys/compat/netbsd32/netbsd32_compat_50.c Thu Apr 30 03:30:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_50.c,v 1.48 2020/03/15 12:46:02 pgoyette Exp $ */ +/* $NetBSD: netbsd32_compat_50.c,v 1.49 2020/04/30 03:30:10 riastradh Exp $ */ /*- * Copyright (c) 2008, 2020 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.48 2020/03/15 12:46:02 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.49 2020/04/30 03:30:10 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -62,7 +62,6 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_com #include #include #include -#include #include #include Index: src/sys/compat/netbsd32/netbsd32_rndpseudo_50.c diff -u src/sys/compat/netbsd32/netbsd32_rndpseudo_50.c:1.4 src/sys/compat/netbsd32/netbsd32_rndpseudo_50.c:1.5 --- src/sys/compat/netbsd32/netbsd32_rndpseudo_50.c:1.4 Thu Sep 26 01:32:09 2019 +++ src/sys/compat/netbsd32/netbsd32_rndpseudo_50.c Thu Apr 30 03:30:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_rndpseudo_50.c,v 1.4 2019/09/26 01:32:09 christos Exp $ */ +/* $NetBSD: netbsd32_rndpseudo_50.c,v 1.5 2020/04/30 03:30:10 riastradh Exp $ */ /*- * Copyright (c) 1997-2011 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: netbsd32_rndpseudo_50.c,v 1.4 2019/09/26 01:32:09 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_rndpseudo_50.c,v 1.5 2020/04/30 03:30:10 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -40,8 +40,6 @@ __KERNEL_RCSID(0, "$NetBSD: netbsd32_rnd #include #include -#include - #include #include Index: src/sys/netinet/sctp_pcb.c diff -u src/sys/netinet/sctp_pcb.c:1.20 src/sys/netinet/sctp_pcb.c:1.21 --- src/sys/netinet/sctp_pcb.c:1.20 Sun Jan 19 20:51:13 2020 +++ src/sys/netinet/sctp_pcb.c Thu Apr 30 03:30:10 2020 @@ -1,5 +1,5 @@ /* $KAME: sctp_pcb.c,v 1.39 2005/06/16 18:29:25 jinmei Exp $ */ -/* $NetBSD: sctp_pcb.c,v 1.20 2020/01/19 20:51:13 riastradh Exp $ */ +/* $NetBSD: sctp_pcb.c,v 1.21 2020/04/30 03:30:10 riastradh Exp $ */ /* * Copyright (c) 2001, 2002, 2003, 2004 Cisco Systems, Inc. @@ -33,7 +33,7 @@ * SUCH DAMAGE. */ #include -__KERNEL_RCSID(0, "$NetBSD: sctp_pcb.c,v 1.20 2020/01/19 20:51:13 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sctp_pcb.c,v 1.21 2020/04/30 03:30:10 riastradh Exp $"); #ifdef _KERNEL
CVS commit: src/sys/net
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:29:55 UTC 2020 Modified Files: src/sys/net: if_ethersubr.c Log Message: Convert ether_input from rnd_initial_entropy to entropy_epoch(). To generate a diff of this commit: cvs rdiff -u -r1.283 -r1.284 src/sys/net/if_ethersubr.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/net/if_ethersubr.c diff -u src/sys/net/if_ethersubr.c:1.283 src/sys/net/if_ethersubr.c:1.284 --- src/sys/net/if_ethersubr.c:1.283 Sun Mar 15 23:14:41 2020 +++ src/sys/net/if_ethersubr.c Thu Apr 30 03:29:55 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ethersubr.c,v 1.283 2020/03/15 23:14:41 thorpej Exp $ */ +/* $NetBSD: if_ethersubr.c,v 1.284 2020/04/30 03:29:55 riastradh Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_ethersubr.c,v 1.283 2020/03/15 23:14:41 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ethersubr.c,v 1.284 2020/04/30 03:29:55 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -85,7 +85,7 @@ __KERNEL_RCSID(0, "$NetBSD: if_ethersubr #include #include #include -#include +#include #include #include #include @@ -603,7 +603,8 @@ ether_input(struct ifnet *ifp, struct mb etype = ntohs(eh->ether_type); ehlen = sizeof(*eh); - if (__predict_false(earlypkts < 100 || !rnd_initial_entropy)) { + if (__predict_false(earlypkts < 100 || + entropy_epoch() == (unsigned)-1)) { rnd_add_data(NULL, eh, ehlen, 0); earlypkts++; }
CVS commit: src/sys/crypto/cprng_fast
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:29:35 UTC 2020 Modified Files: src/sys/crypto/cprng_fast: cprng_fast.c Log Message: Adapt cprng_fast to use entropy_epoch(), not rnd_initial_entropy. This way it has an opportunity to be reseeded after boot. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/crypto/cprng_fast/cprng_fast.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/crypto/cprng_fast/cprng_fast.c diff -u src/sys/crypto/cprng_fast/cprng_fast.c:1.13 src/sys/crypto/cprng_fast/cprng_fast.c:1.14 --- src/sys/crypto/cprng_fast/cprng_fast.c:1.13 Mon Apr 13 22:43:41 2015 +++ src/sys/crypto/cprng_fast/cprng_fast.c Thu Apr 30 03:29:35 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cprng_fast.c,v 1.13 2015/04/13 22:43:41 riastradh Exp $ */ +/* $NetBSD: cprng_fast.c,v 1.14 2020/04/30 03:29:35 riastradh Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,16 +30,16 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: cprng_fast.c,v 1.13 2015/04/13 22:43:41 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cprng_fast.c,v 1.14 2020/04/30 03:29:35 riastradh Exp $"); #include #include #include #include #include +#include #include #include -#include /* rnd_initial_entropy */ /* ChaCha core */ @@ -198,7 +198,7 @@ struct cprng_fast { uint32_t buffer[crypto_core_OUTPUTWORDS]; uint32_t key[crypto_core_KEYWORDS]; uint32_t nonce[crypto_core_INPUTWORDS]; - bool have_initial; + unsigned epoch; }; __CTASSERT(sizeof ((struct cprng_fast *)0)->key == CPRNG_FAST_SEED_BYTES); @@ -233,9 +233,9 @@ cprng_fast_init_cpu(void *p, void *arg _ struct cprng_fast *const cprng = p; uint8_t seed[CPRNG_FAST_SEED_BYTES]; + cprng->epoch = entropy_epoch(); cprng_strong(kern_cprng, seed, sizeof seed, 0); cprng_fast_seed(cprng, seed); - cprng->have_initial = rnd_initial_entropy; (void)explicit_memset(seed, 0, sizeof seed); } @@ -248,7 +248,7 @@ cprng_fast_get(struct cprng_fast **cprng *cprngp = cprng = percpu_getref(cprng_fast_percpu); s = splvm(); - if (__predict_false(!cprng->have_initial)) + if (__predict_false(cprng->epoch != entropy_epoch())) cprng_fast_schedule_reseed(cprng); return s; @@ -274,6 +274,7 @@ cprng_fast_schedule_reseed(struct cprng_ static void cprng_fast_intr(void *cookie __unused) { + unsigned epoch = entropy_epoch(); struct cprng_fast *cprng; uint8_t seed[CPRNG_FAST_SEED_BYTES]; int s; @@ -283,7 +284,7 @@ cprng_fast_intr(void *cookie __unused) cprng = percpu_getref(cprng_fast_percpu); s = splvm(); cprng_fast_seed(cprng, seed); - cprng->have_initial = rnd_initial_entropy; + cprng->epoch = epoch; splx(s); percpu_putref(cprng_fast_percpu);
CVS commit: src/sys
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:40:54 UTC 2020 Modified Files: src/sys/arch/arm/amlogic: meson_rng.c src/sys/arch/arm/broadcom: bcm2835_rng.c src/sys/arch/arm/nvidia: tegra124_car.c tegra210_car.c src/sys/arch/arm/omap: am335x_trng.c src/sys/arch/arm/sunxi: sun8i_crypto.c src/sys/arch/arm/ti: ti_rng.c src/sys/arch/mips/ingenic: ingenic_rng.c src/sys/arch/x86/x86: cpu_rng.c src/sys/dev/ic: amdccp.c rng200.c src/sys/dev/pci: amdpm.c hifn7751.c ubsec.c viornd.c src/sys/dev/usb: ualea.c src/sys/rump/librump/rumpkern: hyperentropy.c Removed Files: src/sys/sys: rndpool.h Log Message: rnd_attach_source calls the callback itself now. No need for every driver to explicitly call it to prime the pool. Eliminate now-unused . To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/amlogic/meson_rng.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/broadcom/bcm2835_rng.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/nvidia/tegra124_car.c cvs rdiff -u -r1.25 -r1.26 src/sys/arch/arm/nvidia/tegra210_car.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/omap/am335x_trng.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/sunxi/sun8i_crypto.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/ti/ti_rng.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/mips/ingenic/ingenic_rng.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/x86/x86/cpu_rng.c cvs rdiff -u -r1.1 -r1.2 src/sys/dev/ic/amdccp.c src/sys/dev/ic/rng200.c cvs rdiff -u -r1.40 -r1.41 src/sys/dev/pci/amdpm.c cvs rdiff -u -r1.66 -r1.67 src/sys/dev/pci/hifn7751.c cvs rdiff -u -r1.49 -r1.50 src/sys/dev/pci/ubsec.c cvs rdiff -u -r1.12 -r1.13 src/sys/dev/pci/viornd.c cvs rdiff -u -r1.10 -r1.11 src/sys/dev/usb/ualea.c cvs rdiff -u -r1.15 -r1.16 src/sys/rump/librump/rumpkern/hyperentropy.c cvs rdiff -u -r1.4 -r0 src/sys/sys/rndpool.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/arm/amlogic/meson_rng.c diff -u src/sys/arch/arm/amlogic/meson_rng.c:1.2 src/sys/arch/arm/amlogic/meson_rng.c:1.3 --- src/sys/arch/arm/amlogic/meson_rng.c:1.2 Sun Apr 21 14:13:55 2019 +++ src/sys/arch/arm/amlogic/meson_rng.c Thu Apr 30 03:40:52 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: meson_rng.c,v 1.2 2019/04/21 14:13:55 jmcneill Exp $ */ +/* $NetBSD: meson_rng.c,v 1.3 2020/04/30 03:40:52 riastradh Exp $ */ /*- * Copyright (c) 2015-2019 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: meson_rng.c,v 1.2 2019/04/21 14:13:55 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: meson_rng.c,v 1.3 2020/04/30 03:40:52 riastradh Exp $"); #include #include @@ -35,7 +35,6 @@ __KERNEL_RCSID(0, "$NetBSD: meson_rng.c, #include #include #include -#include #include #include @@ -107,8 +106,6 @@ meson_rng_attach(device_t parent, device rndsource_setcb(&sc->sc_rndsource, meson_rng_get, sc); rnd_attach_source(&sc->sc_rndsource, device_xname(self), RND_TYPE_RNG, RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB); - - meson_rng_get(RND_POOLBITS / NBBY, sc); } static void Index: src/sys/arch/arm/broadcom/bcm2835_rng.c diff -u src/sys/arch/arm/broadcom/bcm2835_rng.c:1.13 src/sys/arch/arm/broadcom/bcm2835_rng.c:1.14 --- src/sys/arch/arm/broadcom/bcm2835_rng.c:1.13 Sun Dec 10 21:38:26 2017 +++ src/sys/arch/arm/broadcom/bcm2835_rng.c Thu Apr 30 03:40:52 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_rng.c,v 1.13 2017/12/10 21:38:26 skrll Exp $ */ +/* $NetBSD: bcm2835_rng.c,v 1.14 2020/04/30 03:40:52 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,14 +30,13 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_rng.c,v 1.13 2017/12/10 21:38:26 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_rng.c,v 1.14 2020/04/30 03:40:52 riastradh Exp $"); #include #include #include #include #include -#include #include #include @@ -122,9 +121,6 @@ bcmrng_attach(device_t parent, device_t rndsource_setcb(&sc->sc_rndsource, &bcmrng_get, sc); rnd_attach_source(&sc->sc_rndsource, device_xname(self), RND_TYPE_RNG, RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB); - - /* get some initial entropy ASAP */ - bcmrng_get(RND_POOLBITS / NBBY, sc); } static void Index: src/sys/arch/arm/nvidia/tegra124_car.c diff -u src/sys/arch/arm/nvidia/tegra124_car.c:1.19 src/sys/arch/arm/nvidia/tegra124_car.c:1.20 --- src/sys/arch/arm/nvidia/tegra124_car.c:1.19 Sun Oct 13 06:11:31 2019 +++ src/sys/arch/arm/nvidia/tegra124_car.c Thu Apr 30 03:40:52 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra124_car.c,v 1.19 2019/10/13 06:11:31 skrll Exp $ */ +/* $NetBSD: tegra124_car.c,v 1.20 2020/04/30 03:40:52 riastradh Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.19 2019/10/13 06:11:31 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.20 202
CVS commit: src/sys/dev/pci
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:41:31 UTC 2020 Modified Files: src/sys/dev/pci: if_wm.c Log Message: Revert "- rnd_add_*() call must be serialized. Unserialized accesses broke the" It is no longer necessary to serialize calls to rnd_add_data, so we can use the same rndsource for every queue. This also reverts some unrelated changes that were mixed in: 1. WM_NRXDESC was made unsigned 2. The specific samples were changed. (1) will be redone in a separate commit. (2) was buggy (wrote `=' where `|=' was meant) and is not needed; it's fine to do rnd_add_data in a thread or softint too, not just in a hard interrupt handler. To generate a diff of this commit: cvs rdiff -u -r1.674 -r1.675 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.674 src/sys/dev/pci/if_wm.c:1.675 --- src/sys/dev/pci/if_wm.c:1.674 Thu Apr 9 06:55:51 2020 +++ src/sys/dev/pci/if_wm.c Thu Apr 30 03:41:31 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_wm.c,v 1.674 2020/04/09 06:55:51 jdolecek Exp $ */ +/* $NetBSD: if_wm.c,v 1.675 2020/04/30 03:41:31 riastradh Exp $ */ /* * Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc. @@ -82,7 +82,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.674 2020/04/09 06:55:51 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.675 2020/04/30 03:41:31 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_net_mpsafe.h" @@ -239,7 +239,7 @@ static int wm_watchdog_timeout = WM_WATC * packet. We allocate 256 receive descriptors, each with a 2k * buffer (MCLBYTES), which gives us room for 50 jumbo packets. */ -#define WM_NRXDESC 256U +#define WM_NRXDESC 256 #define WM_NRXDESC_MASK (WM_NRXDESC - 1) #define WM_NEXTRX(x) (((x) + 1) & WM_NRXDESC_MASK) #define WM_PREVRX(x) (((x) - 1) & WM_NRXDESC_MASK) @@ -472,7 +472,6 @@ struct wm_queue { bool wmq_txrx_use_workqueue; struct work wmq_cookie; void *wmq_si; - krndsource_t rnd_source; /* random source */ }; struct wm_phyop { @@ -608,6 +607,8 @@ struct wm_softc { int sc_mchash_type; /* multicast filter offset */ + krndsource_t rnd_source; /* random source */ + struct if_percpuq *sc_ipq; /* softint-based input queues */ kmutex_t *sc_core_lock; /* lock for softc operations */ @@ -3041,6 +3042,8 @@ alloc_retry: ether_ifattach(ifp, enaddr); ether_set_ifflags_cb(&sc->sc_ethercom, wm_ifflags_cb); if_register(ifp); + rnd_attach_source(&sc->rnd_source, xname, RND_TYPE_NET, + RND_FLAG_DEFAULT); #ifdef WM_EVENT_COUNTERS /* Attach event counters. */ @@ -3101,6 +3104,8 @@ wm_detach(device_t self, int flags __unu evcnt_detach(&sc->sc_ev_rx_macctl); #endif /* WM_EVENT_COUNTERS */ + rnd_detach_source(&sc->rnd_source); + /* Tell the firmware about the release */ WM_CORE_LOCK(sc); wm_release_manageability(sc); @@ -6998,15 +7003,6 @@ wm_alloc_txrx_queues(struct wm_softc *sc if (error) goto fail_2; - for (i = 0; i < sc->sc_nqueues; i++) { - char rndname[16]; - - snprintf(rndname, sizeof(rndname), "%sTXRX%d", - device_xname(sc->sc_dev), i); - rnd_attach_source(&sc->sc_queue[i].rnd_source, rndname, - RND_TYPE_NET, RND_FLAG_DEFAULT); - } - return 0; fail_2: @@ -7042,9 +7038,6 @@ wm_free_txrx_queues(struct wm_softc *sc) { int i; - for (i = 0; i < sc->sc_nqueues; i++) - rnd_detach_source(&sc->sc_queue[i].rnd_source); - for (i = 0; i < sc->sc_nqueues; i++) { struct wm_rxqueue *rxq = &sc->sc_queue[i].wmq_rxq; @@ -8720,6 +8713,9 @@ wm_txeof(struct wm_txqueue *txq, u_int l DPRINTF(WM_DEBUG_TX, ("%s: TX: txsdirty -> %d\n", device_xname(sc->sc_dev), i)); + if (count != 0) + rnd_add_uint32(&sc->rnd_source, count); + /* * If there are no more pending transmissions, cancel the watchdog * timer. @@ -9133,6 +9129,9 @@ wm_rxeof(struct wm_rxqueue *rxq, u_int l break; } + if (count != 0) + rnd_add_uint32(&sc->rnd_source, count); + DPRINTF(WM_DEBUG_RX, ("%s: RX: rxptr -> %d\n", device_xname(sc->sc_dev), i)); @@ -9610,8 +9609,6 @@ wm_intr_legacy(void *arg) * So, we can call wm_rxeof() in interrupt context. */ wm_rxeof(rxq, UINT_MAX); - /* Fill lower bits with RX index. See below for the upper. */ - rndval |= rxq->rxq_ptr & WM_NRXDESC_MASK; mutex_exit(rxq->rxq_lock); mutex_enter(txq->txq_lock); @@ -9630,8 +9627,6 @@ wm_intr_legacy(void *arg) } #endif wm_txeof(txq, UINT_MAX); - /* Fill upper bits with TX index. See above for the lower. */ - rndval = txq->txq_next * WM_NRXDESC; mutex_exit(txq->txq_lock); WM_CORE_LOCK(sc); @@ -9658,7 +9653,7 @@ wm_intr_legacy(void *arg) } } - rnd_add_uint32(&sc->sc_queue[0].rnd_source, rndval); + rnd_add_uint32(&sc->rnd_source, rndval); if (handled) { /* Try to get more packets going. */ @@ -9716,7 +9711,6 @@ wm_txrxintr_msix(void *arg) struct
CVS commit: src/sys/dev/pci
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:42:11 UTC 2020 Modified Files: src/sys/dev/pci: if_wm.c Log Message: Make WM_NRXDESC unsigned. To generate a diff of this commit: cvs rdiff -u -r1.675 -r1.676 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.675 src/sys/dev/pci/if_wm.c:1.676 --- src/sys/dev/pci/if_wm.c:1.675 Thu Apr 30 03:41:31 2020 +++ src/sys/dev/pci/if_wm.c Thu Apr 30 03:42:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_wm.c,v 1.675 2020/04/30 03:41:31 riastradh Exp $ */ +/* $NetBSD: if_wm.c,v 1.676 2020/04/30 03:42:10 riastradh Exp $ */ /* * Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc. @@ -82,7 +82,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.675 2020/04/30 03:41:31 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.676 2020/04/30 03:42:10 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_net_mpsafe.h" @@ -239,7 +239,7 @@ static int wm_watchdog_timeout = WM_WATC * packet. We allocate 256 receive descriptors, each with a 2k * buffer (MCLBYTES), which gives us room for 50 jumbo packets. */ -#define WM_NRXDESC 256 +#define WM_NRXDESC 256U #define WM_NRXDESC_MASK (WM_NRXDESC - 1) #define WM_NEXTRX(x) (((x) + 1) & WM_NRXDESC_MASK) #define WM_PREVRX(x) (((x) - 1) & WM_NRXDESC_MASK)
CVS commit: src/sys/rump/librump/rumpkern
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:41:20 UTC 2020 Modified Files: src/sys/rump/librump/rumpkern: hyperentropy.c Log Message: No need for a lock around rnd_add_data any more. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/rump/librump/rumpkern/hyperentropy.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/rump/librump/rumpkern/hyperentropy.c diff -u src/sys/rump/librump/rumpkern/hyperentropy.c:1.16 src/sys/rump/librump/rumpkern/hyperentropy.c:1.17 --- src/sys/rump/librump/rumpkern/hyperentropy.c:1.16 Thu Apr 30 03:40:53 2020 +++ src/sys/rump/librump/rumpkern/hyperentropy.c Thu Apr 30 03:41:20 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: hyperentropy.c,v 1.16 2020/04/30 03:40:53 riastradh Exp $ */ +/* $NetBSD: hyperentropy.c,v 1.17 2020/04/30 03:41:20 riastradh Exp $ */ /* * Copyright (c) 2014 Antti Kantee. All Rights Reserved. @@ -26,18 +26,16 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: hyperentropy.c,v 1.16 2020/04/30 03:40:53 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hyperentropy.c,v 1.17 2020/04/30 03:41:20 riastradh Exp $"); #include #include -#include #include #include #include -static kmutex_t rndsrc_lock; static krndsource_t rndsrc; static void @@ -56,9 +54,7 @@ feedrandom(size_t bytes, void *cookie __ n += MIN(nread, bytes - n); } if (n) { - mutex_enter(&rndsrc_lock); rnd_add_data_sync(&rndsrc, rnddata, n, NBBY*n); - mutex_exit(&rndsrc_lock); } kmem_intr_free(rnddata, bytes); } @@ -67,8 +63,6 @@ void rump_hyperentropy_init(void) { - mutex_init(&rndsrc_lock, MUTEX_DEFAULT, IPL_VM); - rndsource_setcb(&rndsrc, &feedrandom, NULL); rnd_attach_source(&rndsrc, "rump_hyperent", RND_TYPE_VM, RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
CVS commit: src/sys/kern
Module Name:src Committed By: riastradh Date: Thu Apr 30 03:42:23 UTC 2020 Modified Files: src/sys/kern: kern_entropy.c Log Message: Accept both byte orders for random seed in the kernel. The file format was defined with a machine-dependent 32-bit integer field (the estimated number of bits of entropy in the process that generated it). Fortunately we have a checksum to verify the order. This way you can use `rndctl -S' on a little-endian machine to generate a seed when installing NetBSD on a big-endian machine, and the kernel will accept it on boot. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/kern/kern_entropy.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/kern_entropy.c diff -u src/sys/kern/kern_entropy.c:1.1 src/sys/kern/kern_entropy.c:1.2 --- src/sys/kern/kern_entropy.c:1.1 Thu Apr 30 03:28:18 2020 +++ src/sys/kern/kern_entropy.c Thu Apr 30 03:42:23 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_entropy.c,v 1.1 2020/04/30 03:28:18 riastradh Exp $ */ +/* $NetBSD: kern_entropy.c,v 1.2 2020/04/30 03:42:23 riastradh Exp $ */ /*- * Copyright (c) 2019 The NetBSD Foundation, Inc. @@ -77,7 +77,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: kern_entropy.c,v 1.1 2020/04/30 03:28:18 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_entropy.c,v 1.2 2020/04/30 03:42:23 riastradh Exp $"); #include #include @@ -514,8 +514,6 @@ entropy_seed(rndsave_t *seed) * but ignore the entropy estimate -- the file may have been * incompletely written with garbage, which is harmless to add * but may not be as unpredictable as alleged. - * - * XXX There is a byte order dependency here... */ SHA1Init(&ctx); SHA1Update(&ctx, (const void *)&seed->entropy, sizeof(seed->entropy)); @@ -526,9 +524,20 @@ entropy_seed(rndsave_t *seed) printf("entropy: invalid seed checksum\n"); seed->entropy = 0; } - explicit_memset(&ctx, 0, sizeof &ctx); + explicit_memset(&ctx, 0, sizeof ctx); explicit_memset(digest, 0, sizeof digest); + /* + * If the entropy is insensibly large, try byte-swapping. + * Otherwise assume the file is corrupted and act as though it + * has zero entropy. + */ + if (howmany(seed->entropy, NBBY) > sizeof(seed->data)) { + seed->entropy = bswap32(seed->entropy); + if (howmany(seed->entropy, NBBY) > sizeof(seed->data)) + seed->entropy = 0; + } + /* Make sure the seed source is attached. */ attach_seed_rndsource();
CVS commit: src
Module Name:src Committed By: thorpej Date: Thu Apr 30 04:18:07 UTC 2020 Modified Files: src/sys/uvm: uvm_map.c src/tests/lib/libc/sys: t_futex_ops.c Log Message: - In uvm_voaddr_acquire(), take an extra hold on the anon lock obj. - In uvm_voaddr_release(), if the anon ref count drops to 0, call uvm_anfree() rather than uvm_anon_release(). Unconditionally drop the anon lock, and release the extra hold on the anon lock obj. Fixes a panic that occurs if the backing store for a futex backed by an anon memory location is unmapped while a thread is waiting in the futex. Add a test case that reproduced the panic to verify that it's fixed. To generate a diff of this commit: cvs rdiff -u -r1.381 -r1.382 src/sys/uvm/uvm_map.c cvs rdiff -u -r1.2 -r1.3 src/tests/lib/libc/sys/t_futex_ops.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/uvm_map.c diff -u src/sys/uvm/uvm_map.c:1.381 src/sys/uvm/uvm_map.c:1.382 --- src/sys/uvm/uvm_map.c:1.381 Sun Apr 19 08:59:53 2020 +++ src/sys/uvm/uvm_map.c Thu Apr 30 04:18:07 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_map.c,v 1.381 2020/04/19 08:59:53 skrll Exp $ */ +/* $NetBSD: uvm_map.c,v 1.382 2020/04/30 04:18:07 thorpej Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -66,7 +66,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: uvm_map.c,v 1.381 2020/04/19 08:59:53 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_map.c,v 1.382 2020/04/30 04:18:07 thorpej Exp $"); #include "opt_ddb.h" #include "opt_pax.h" @@ -4934,6 +4934,7 @@ uvm_voaddr_acquire(struct vm_map * const if (anon) { found_anon: KASSERT(anon->an_lock == entry->aref.ar_amap->am_lock); anon->an_ref++; + rw_obj_hold(anon->an_lock); KASSERT(anon->an_ref != 0); voaddr->type = UVM_VOADDR_TYPE_ANON; voaddr->anon = anon; @@ -4987,16 +4988,16 @@ uvm_voaddr_release(struct uvm_voaddr * c } case UVM_VOADDR_TYPE_ANON: { struct vm_anon * const anon = voaddr->anon; + krwlock_t *lock; KASSERT(anon != NULL); - rw_enter(anon->an_lock, RW_WRITER); + rw_enter((lock = anon->an_lock), RW_WRITER); KASSERT(anon->an_ref > 0); - anon->an_ref--; - if (anon->an_ref == 0) { - uvm_anon_release(anon); - } else { - rw_exit(anon->an_lock); + if (--anon->an_ref == 0) { + uvm_anfree(anon); } + rw_exit(lock); + rw_obj_free(lock); break; } default: Index: src/tests/lib/libc/sys/t_futex_ops.c diff -u src/tests/lib/libc/sys/t_futex_ops.c:1.2 src/tests/lib/libc/sys/t_futex_ops.c:1.3 --- src/tests/lib/libc/sys/t_futex_ops.c:1.2 Tue Apr 28 17:27:03 2020 +++ src/tests/lib/libc/sys/t_futex_ops.c Thu Apr 30 04:18:07 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: t_futex_ops.c,v 1.2 2020/04/28 17:27:03 riastradh Exp $ */ +/* $NetBSD: t_futex_ops.c,v 1.3 2020/04/30 04:18:07 thorpej Exp $ */ /*- * Copyright (c) 2019, 2020 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ #include __COPYRIGHT("@(#) Copyright (c) 2019, 2020\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_futex_ops.c,v 1.2 2020/04/28 17:27:03 riastradh Exp $"); +__RCSID("$NetBSD: t_futex_ops.c,v 1.3 2020/04/30 04:18:07 thorpej Exp $"); #include #include @@ -39,6 +39,7 @@ __RCSID("$NetBSD: t_futex_ops.c,v 1.2 20 #include #include #include +#include #include #include #include @@ -166,12 +167,15 @@ simple_test_waiter_lwp(void *arg) d->threadid = _lwp_self(); + membar_producer(); atomic_inc_uint(&nlwps_running); membar_sync(); if (__futex(d->futex_ptr, d->wait_op | d->op_flags, d->block_val, NULL, NULL, 0, d->bitset) == -1) { d->futex_error = errno; + membar_sync(); + atomic_dec_uint(&nlwps_running); _lwp_exit(); } else { d->futex_error = 0; @@ -1262,6 +1266,74 @@ ATF_TC_BODY(futex_wait_timeout_deadline_ /*/ +static void +sig_noop(int sig __unused) +{ +} + +static void (*old_act)(int) = SIG_DFL; + +static void +do_futex_wait_evil_unmapped(int map_flags) +{ + int i; + + create_bs(map_flags); + + old_act = signal(SIGUSR1, sig_noop); + ATF_REQUIRE(old_act != SIG_ERR); + + setup_lwp_context(&lwp_data[0], simple_test_waiter_lwp); + lwp_data[0].op_flags = 0; + lwp_data[0].futex_error = -1; + lwp_data[0].futex_ptr = &bs_addr[0]; + lwp_data[0].block_val = 0; + lwp_data[0].bitset = 0; + lwp_data[0].wait_op = FUTEX_WAIT; + ATF_REQUIRE(_lwp_create(&lwp_data[0].context, 0, +&lwp_data[0].lwpid) == 0); + + for (i = 0; i < 5; i++) { + membar_sync(); + if (nlwps_running == 1) + break; + sleep(1); + } + membar_sync(); + ATF_REQUIRE_EQ_MSG(nlwps_running, 1, "waiters failed to start"); + + /* Ensure it's blocked. */ + ATF_REQUIRE(lwp_data[0].futex_error == -1); + + /* Rudely unmap the backing store. */ + cleanup_bs(); + + /* Signal the waiter so that it leaves the futex. */ + ATF_REQUIRE(_lwp_kill(lwp_data[0].
CVS commit: src/sys/dev
Module Name:src Committed By: riastradh Date: Thu Apr 30 04:26:29 UTC 2020 Modified Files: src/sys/dev: random.c Log Message: Missed a spot -- need to use atomic_*. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/dev/random.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/random.c diff -u src/sys/dev/random.c:1.1 src/sys/dev/random.c:1.2 --- src/sys/dev/random.c:1.1 Thu Apr 30 03:28:18 2020 +++ src/sys/dev/random.c Thu Apr 30 04:26:29 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: random.c,v 1.1 2020/04/30 03:28:18 riastradh Exp $ */ +/* $NetBSD: random.c,v 1.2 2020/04/30 04:26:29 riastradh Exp $ */ /*- * Copyright (c) 2019 The NetBSD Foundation, Inc. @@ -47,10 +47,11 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: random.c,v 1.1 2020/04/30 03:28:18 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: random.c,v 1.2 2020/04/30 04:26:29 riastradh Exp $"); #include #include +#include #include #include #include
CVS commit: src/sys/arch/hppa/hppa
Module Name:src Committed By: skrll Date: Thu Apr 30 06:16:47 UTC 2020 Modified Files: src/sys/arch/hppa/hppa: pmap.c Log Message: Convert pmap_check_alias into a function that resolves any aliases issues to deal with the locking around entering a mapping of the same page with and alias issue in the same pmap (pmap lock already held in pmap_enter) This has the added benefit of only flushing the troublesome mappings. The locking could be simplified further here and an PV list iterator function with callback is probably useful. To generate a diff of this commit: cvs rdiff -u -r1.111 -r1.112 src/sys/arch/hppa/hppa/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/hppa/hppa/pmap.c diff -u src/sys/arch/hppa/hppa/pmap.c:1.111 src/sys/arch/hppa/hppa/pmap.c:1.112 --- src/sys/arch/hppa/hppa/pmap.c:1.111 Thu Apr 16 09:51:56 2020 +++ src/sys/arch/hppa/hppa/pmap.c Thu Apr 30 06:16:47 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.111 2020/04/16 09:51:56 skrll Exp $ */ +/* $NetBSD: pmap.c,v 1.112 2020/04/30 06:16:47 skrll Exp $ */ /*- * Copyright (c) 2001, 2002, 2020 The NetBSD Foundation, Inc. @@ -65,7 +65,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.111 2020/04/16 09:51:56 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.112 2020/04/30 06:16:47 skrll Exp $"); #include "opt_cputype.h" @@ -184,7 +184,8 @@ static inline void pmap_pv_unlock(const static inline bool pmap_pv_locked(const struct vm_page_md *md); static inline void pmap_flush_page(struct vm_page *, bool); -static int pmap_check_alias(struct vm_page *, vaddr_t, pt_entry_t); +static void pmap_resolve_alias(struct vm_page *, struct pmap *, vaddr_t, +pt_entry_t); static void pmap_syncicache_page(struct vm_page *, pmap_t, vaddr_t); static void pmap_page_physload(paddr_t, paddr_t); @@ -537,17 +538,126 @@ pmap_dump_pv(paddr_t pa) } #endif -static int -pmap_check_alias(struct vm_page *pg, vaddr_t va, pt_entry_t pte) +static void +pmap_resolve_alias(struct vm_page *pg, struct pmap *pm, vaddr_t va, +pt_entry_t pte) { - struct vm_page_md * const md = VM_PAGE_TO_MD(pg); - struct pv_entry *pve; - int ret = 0; UVMHIST_FUNC(__func__); - UVMHIST_CALLARGS(maphist, "pg %#jx va %#jx pte %#jx", (uintptr_t)pg, - va, pte, 0); + UVMHIST_CALLARGS(maphist, "pg %#jx pm %#jx va %#jx pte %#jx", + (uintptr_t)pg, (uintptr_t)pm, va, pte); + + struct vm_page_md * const md = VM_PAGE_TO_MD(pg); + struct pv_entry *pve, *npve, **pvp; + + restart: + pmap_pv_lock(md); + pvp = &md->pvh_list; + for (pve = md->pvh_list; pve; pve = npve) { + const pmap_t ppm = pve->pv_pmap; + const vaddr_t pva = pve->pv_va & PV_VAMASK; + + UVMHIST_LOG(maphist, "... pm %#jx va %#jx", (uintptr_t)ppm, + pva, 0, 0); + + npve = pve->pv_next; + + volatile pt_entry_t *pde; + pt_entry_t ppte; + if (pve->pv_va & PV_KENTER) { + /* Get the pte for this mapping */ + pde = pmap_pde_get(ppm->pm_pdir, pva); + ppte = pmap_pte_get(pde, pva); + } else { + /* + * We have to seamlessly get a hold on the pmap's lock + * while holding the PV head lock, to know that the + * mapping is still in place and we can operate on it. + * If that can't be had, drop the PV head lock, wait + * for the pmap's lock to become available, and then + * try again. + */ + UVMHIST_LOG(maphist, "... pm %#jx va %#jx... checking", + (uintptr_t)ppm, pva, 0, 0); + bool locked = true; + if (pm != ppm) { +pmap_reference(ppm); +locked = pmap_trylock(ppm); + } + + if (!locked) { +pmap_pv_unlock(md); +pmap_lock(ppm); +/* nothing */ +pmap_unlock(ppm); +pmap_destroy(ppm); + +UVMHIST_LOG(maphist, "... failed lock", 0, 0, 0, +0); +goto restart; + } + pde = pmap_pde_get(ppm->pm_pdir, pva); + ppte = pmap_pte_get(pde, pva); + + md->pvh_attrs |= pmap_pvh_attrs(ppte); + } + + const bool writeable = + ((pte | ppte) & PTE_PROT(TLB_WRITE)) != 0; + + if ((va & HPPA_PGAOFF) != (pva & HPPA_PGAOFF) && writeable) { + UVMHIST_LOG(maphist, + "aliased writeable mapping %#jx:%#jx", + ppm->pm_space, pva, 0, 0); + + pmap_pte_flush(ppm, pva, ppte); + if (ppte & PTE_PROT(TLB_WIRED)) +ppm->pm_stats.wired_count--; + ppm->pm_stats.resident_count--; + + if (pve->pv_va & PV_KENTER) { +/* + * This is an unmanaged mapping, it must be + * preserved. Move it back on the list and + * advance the end-of-list pointer. + */ +*pvp = pve; +pvp = &pve->pv_next; + } else { +pmap_pte_set(pde, pva, 0); + +/* Remove pve from list */ +*pvp = npve; + +pmap_pv_unlock(md); +pmap_pv_free(pve); +if (pm != ppm) { + pmap_unlock(ppm); + pmap_destroy(ppm); + +} +UVMHIST_LOG(maphist, "... removed", 0, +0, 0, 0); +goto restart; + } + } else { + UVMHIST_LOG(maphist, "not aliased writeable mapping"