CVS commit: src/sys/arch/arm/sunxi

2017-09-09 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Sep  9 11:58:34 UTC 2017

Modified Files:
src/sys/arch/arm/sunxi: sunxi_usbphy.c

Log Message:
Add PHY init for OTG ports in host mode.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/sunxi/sunxi_usbphy.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/sunxi/sunxi_usbphy.c
diff -u src/sys/arch/arm/sunxi/sunxi_usbphy.c:1.7 src/sys/arch/arm/sunxi/sunxi_usbphy.c:1.8
--- src/sys/arch/arm/sunxi/sunxi_usbphy.c:1.7	Thu Sep  7 10:30:46 2017
+++ src/sys/arch/arm/sunxi/sunxi_usbphy.c	Sat Sep  9 11:58:34 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_usbphy.c,v 1.7 2017/09/07 10:30:46 jmcneill Exp $ */
+/* $NetBSD: sunxi_usbphy.c,v 1.8 2017/09/09 11:58:34 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared McNeill 
@@ -28,7 +28,7 @@
 
 #include 
 
-__KERNEL_RCSID(0, "$NetBSD: sunxi_usbphy.c,v 1.7 2017/09/07 10:30:46 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_usbphy.c,v 1.8 2017/09/09 11:58:34 jmcneill Exp $");
 
 #include 
 #include 
@@ -39,14 +39,34 @@ __KERNEL_RCSID(0, "$NetBSD: sunxi_usbphy
 
 #include 
 
-#define	OTG_PHY_CFG		0x20
-#define	 OTG_PHY_ROUTE_OTG	__BIT(0)
-
-#define	HCI_ICR			0x00
-#define	 HCI_AHB_INCR8		__BIT(10)
-#define	 HCI_AHB_INCR4		__BIT(9)
-#define	 HCI_AHB_INCRX_ALIGN	__BIT(8)
-#define	 HCI_ULPI_BYPASS	__BIT(0)
+/* PHY control registers */
+#define	PHYCTL_ICR		0x00
+#define	 PHYCTL_ICR_ID_PULLUP	__BIT(17)
+#define	 PHYCTL_ICR_DPDM_PULLUP	__BIT(16)
+#define	 PHYCTL_ICR_FORCE_ID	__BITS(15,14)
+#define	  PHYCTL_ICR_FORCE_ID_LOW	2
+#define	  PHYCTL_ICR_FORCE_ID_HIGH	3
+#define	 PHYCTL_ICR_FORCE_VBUS	__BITS(13,12)
+#define	  PHYCTL_ICR_FORCE_VBUS_LOW	2
+#define	  PHYCTL_ICR_FORCE_VBUS_HIGH	3
+#define	PHYCTL_A10		0x04
+#define	PHYCTL_A33		0x10
+#define	 PHYCTL_ADDR		__BITS(15,8)
+#define	 PHYCTL_DATA		__BIT(7)
+#define	PHYCTL_OTG_CFG		0x20
+#define	 PHYCTL_OTG_ROUTE_OTG	__BIT(0)
+
+/* PHY registers */
+#define	PHY_RES45_CAL_EN	0x0c
+#define	PHY_TX_AMPLITUDE_TUNE	0x20
+#define	PHY_DISCON_TH_SEL	0x2a
+
+/* PMU registers */
+#define	PMU_CFG			0x00
+#define	 AHB_INCR8		__BIT(10)
+#define	 AHB_INCR4		__BIT(9)
+#define	 AHB_INCRX_ALIGN	__BIT(8)
+#define	 ULPI_BYPASS		__BIT(0)
 #define	PMU_UNK_H3		0x10
 #define	 PMU_UNK_H3_CLR		__BIT(1)
 
@@ -89,16 +109,68 @@ struct sunxi_usbphy_softc {
 	struct fdtbus_gpio_pin	*sc_gpio_vbus_det;
 };
 
-#define	USBPHY_READ(sc, id, reg)			\
+#define	PHYCTL_READ(sc, reg)\
+	bus_space_read_4((sc)->sc_bst,			\
+	(sc)->sc_bsh_phy_ctrl, (reg))
+#define	PHYCTL_WRITE(sc, reg, val)			\
+	bus_space_write_4((sc)->sc_bst,			\
+	(sc)->sc_bsh_phy_ctrl, (reg), (val))
+#define	PMU_READ(sc, id, reg)			\
 	bus_space_read_4((sc)->sc_bst,			\
 	(sc)->sc_phys[(id)].phy_bsh, (reg))
-#define	USBPHY_WRITE(sc, id, reg, val)			\
+#define	PMU_WRITE(sc, id, reg, val)			\
 	bus_space_write_4((sc)->sc_bst,			\
 	(sc)->sc_phys[(id)].phy_bsh, (reg), (val))
 
 CFATTACH_DECL_NEW(sunxi_usbphy, sizeof(struct sunxi_usbphy_softc),
 	sunxi_usbphy_match, sunxi_usbphy_attach, NULL, NULL);
 
+static void
+sunxi_usbphy_write(struct sunxi_usbphy_softc *sc,
+struct sunxi_usbphy *phy, u_int bit_addr, u_int bits,
+u_int len)
+{
+	const uint32_t usbc_mask = __BIT(phy->phy_index * 2);;
+	bus_size_t reg;
+	uint32_t val;
+
+	switch (sc->sc_type) {
+	case USBPHY_A13:
+	case USBPHY_A31:
+		reg = PHYCTL_A10;
+		break;
+	case USBPHY_H3:
+	case USBPHY_A64:
+		reg = PHYCTL_A33;
+		break;
+	default:
+		panic("unsupported phy type");
+	}
+
+	if (reg == PHYCTL_A33)
+		PHYCTL_WRITE(sc, reg, 0);
+
+	for (; len > 0; bit_addr++, bits >>= 1, len--) {
+		val = PHYCTL_READ(sc, reg);
+		val &= ~PHYCTL_ADDR;
+		val |= __SHIFTIN(bit_addr, PHYCTL_ADDR);
+		PHYCTL_WRITE(sc, reg, val);
+
+		val = PHYCTL_READ(sc, reg);
+		val &= ~PHYCTL_DATA;
+		val |= __SHIFTIN(bits & 1, PHYCTL_DATA);
+		PHYCTL_WRITE(sc, reg, val);
+
+		PHYCTL_READ(sc, reg);
+		val |= usbc_mask;
+		PHYCTL_WRITE(sc, reg, val);
+
+		PHYCTL_READ(sc, reg);
+		val &= ~usbc_mask;
+		PHYCTL_WRITE(sc, reg, val);
+	}
+}
+
 static bool
 sunxi_usbphy_vbus_detect(struct sunxi_usbphy_softc *sc)
 {
@@ -132,29 +204,83 @@ sunxi_usbphy_enable(device_t dev, void *
 {
 	struct sunxi_usbphy_softc * const sc = device_private(dev);
 	struct sunxi_usbphy * const phy = priv;
+	u_int disc_thresh;
+	bool phy0_reroute;
 	uint32_t val;
 
-	if (phy->phy_index > 0) {
-		/* Enable passby */
-		val = USBPHY_READ(sc, phy->phy_index, HCI_ICR);
-		val |= HCI_ULPI_BYPASS;
-		val |= HCI_AHB_INCR8;
-		val |= HCI_AHB_INCR4;
-		val |= HCI_AHB_INCRX_ALIGN;
-		USBPHY_WRITE(sc, phy->phy_index, HCI_ICR, val);
+	switch (sc->sc_type) {
+	case USBPHY_A13:
+		disc_thresh = 0x2;
+		phy0_reroute = false;
+		break;
+	case USBPHY_A31:
+		disc_thresh = 0x3;
+		phy0_reroute = false;
+		break;
+	case USBPHY_A64:
+	case USBPHY_H3:
+		disc_thresh = 0x3;
+		phy0_reroute = true;
+		break;
+	}
+

CVS commit: src/sys/arch/arm/sunxi

2017-09-09 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Sep  9 12:01:04 UTC 2017

Modified Files:
src/sys/arch/arm/sunxi: files.sunxi
Added Files:
src/sys/arch/arm/sunxi: sunxi_musb.c

Log Message:
Add support for USB OTG controllers in "host" mode.


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/sunxi/files.sunxi
cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/sunxi/sunxi_musb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/sunxi/files.sunxi
diff -u src/sys/arch/arm/sunxi/files.sunxi:1.22 src/sys/arch/arm/sunxi/files.sunxi:1.23
--- src/sys/arch/arm/sunxi/files.sunxi:1.22	Thu Sep  7 01:07:04 2017
+++ src/sys/arch/arm/sunxi/files.sunxi	Sat Sep  9 12:01:04 2017
@@ -1,4 +1,4 @@
-#	$NetBSD: files.sunxi,v 1.22 2017/09/07 01:07:04 jmcneill Exp $
+#	$NetBSD: files.sunxi,v 1.23 2017/09/09 12:01:04 jmcneill Exp $
 #
 # Configuration info for Allwinner sunxi family SoCs
 #
@@ -159,6 +159,10 @@ device	sunxits: wsmousedev, tpcalib
 attach	sunxits at fdt with sunxi_ts
 file	arch/arm/sunxi/sunxi_ts.c		sunxi_ts
 
+# USB OTG
+attach	motg at fdt with sunxi_musb
+file	arch/arm/sunxi/sunxi_musb.c		sunxi_musb
+
 # SOC parameters
 defflag	opt_soc.h			SOC_SUNXI
 defflag	opt_soc.h			SOC_SUN5I: SOC_SUNXI

Added files:

Index: src/sys/arch/arm/sunxi/sunxi_musb.c
diff -u /dev/null src/sys/arch/arm/sunxi/sunxi_musb.c:1.1
--- /dev/null	Sat Sep  9 12:01:04 2017
+++ src/sys/arch/arm/sunxi/sunxi_musb.c	Sat Sep  9 12:01:04 2017
@@ -0,0 +1,195 @@
+/* $NetBSD: sunxi_musb.c,v 1.1 2017/09/09 12:01:04 jmcneill Exp $ */
+
+/*-
+ * Copyright (c) 2017 Jared McNeill 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include 
+__KERNEL_RCSID(0, "$NetBSD: sunxi_musb.c,v 1.1 2017/09/09 12:01:04 jmcneill Exp $");
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+#define	MUSB2_REG_AWIN_VEND0	0x43
+#define	MUSB2_REG_INTTX		0x44
+#define	MUSB2_REG_INTRX		0x46
+#define	MUSB2_REG_INTUSB	0x4c
+
+static int	sunxi_musb_match(device_t, cfdata_t, void *);
+static void	sunxi_musb_attach(device_t, device_t, void *);
+
+CFATTACH_DECL_NEW(sunxi_musb, sizeof(struct motg_softc),
+	sunxi_musb_match, sunxi_musb_attach, NULL, NULL);
+
+static const struct of_compat_data compat_data[] = {
+	{ "allwinner,sun4i-a10-musb",		5 },
+	{ "allwinner,sun6i-a13-musb",		5 },
+	{ "allwinner,sun8i-h3-musb",		4 },
+	{ "allwinner,sun8i-a33-musb",		5 },
+	{ NULL }
+};
+
+static int
+sunxi_musb_intr(void *priv)
+{
+	struct motg_softc * const sc = priv;
+	uint16_t inttx, intrx;
+	uint8_t intusb;
+
+	mutex_enter(&sc->sc_intr_lock);
+
+	intusb = bus_space_read_1(sc->sc_iot, sc->sc_ioh, MUSB2_REG_INTUSB);
+	inttx = bus_space_read_2(sc->sc_iot, sc->sc_ioh, MUSB2_REG_INTTX);
+	intrx = bus_space_read_2(sc->sc_iot, sc->sc_ioh, MUSB2_REG_INTRX);
+	if (!intusb && !inttx && !intrx) {
+		mutex_exit(&sc->sc_intr_lock);
+		return 0;
+	}
+
+	if (intusb)
+		bus_space_write_1(sc->sc_iot, sc->sc_ioh, MUSB2_REG_INTUSB, intusb);
+	if (inttx)
+		bus_space_write_2(sc->sc_iot, sc->sc_ioh, MUSB2_REG_INTTX, inttx);
+	if (intrx)
+		bus_space_write_2(sc->sc_iot, sc->sc_ioh, MUSB2_REG_INTRX, intrx);
+
+	motg_intr(sc, intrx, inttx, intusb);
+
+	mutex_exit(&sc->sc_intr_lock);
+
+	return 1;
+}
+
+static void
+sunxi_musb_poll(void *priv)
+{
+	sunxi_musb_intr(priv);
+}
+
+static int
+sunxi_musb_match(device_t parent, cfdata_t cf, void *aux)
+{
+	struct fdt_attach_args * const faa = aux;
+
+	return of_match_compat_data(faa->faa_phandle, compat_data);
+}
+
+static void
+sunxi_musb_attach(device_t parent, device_t self, void *aux)
+{
+	struct mo

CVS commit: src/sys/arch/evbarm/conf

2017-09-09 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Sep  9 12:02:58 UTC 2017

Modified Files:
src/sys/arch/evbarm/conf: SUNXI

Log Message:
add motg


To generate a diff of this commit:
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/evbarm/conf/SUNXI

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/evbarm/conf/SUNXI
diff -u src/sys/arch/evbarm/conf/SUNXI:1.28 src/sys/arch/evbarm/conf/SUNXI:1.29
--- src/sys/arch/evbarm/conf/SUNXI:1.28	Thu Sep  7 21:22:51 2017
+++ src/sys/arch/evbarm/conf/SUNXI	Sat Sep  9 12:02:57 2017
@@ -1,5 +1,5 @@
 #
-#	$NetBSD: SUNXI,v 1.28 2017/09/07 21:22:51 jmcneill Exp $
+#	$NetBSD: SUNXI,v 1.29 2017/09/09 12:02:57 jmcneill Exp $
 #
 #	Allwinner sunxi family
 #
@@ -197,8 +197,11 @@ pseudo-device	wsmux
 sunxiusbphy*	at fdt?	pass 9		# USB PHY
 ehci*		at fdt?			# EHCI
 ohci*		at fdt?			# OHCI
+motg*		at fdt?			# USB OTG
+options 	MOTG_ALLWINNER		# XXX this should be a driver flag
 usb*		at ehci?
 usb*		at ohci?
+usb*		at motg?
 
 include "dev/usb/usbdevices.config"
 midi*		at midibus?



CVS commit: src/sys/arch/arm/dts

2017-09-09 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Sep  9 12:05:29 UTC 2017

Modified Files:
src/sys/arch/arm/dts: sun50i-a64-pine64-plus.dts sun50i-a64.dtsi

Log Message:
Enable USB-OTG-EHCI and USB-OTG-OHCI controllers on Pine64+.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/dts/sun50i-a64-pine64-plus.dts
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/dts/sun50i-a64.dtsi

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/dts/sun50i-a64-pine64-plus.dts
diff -u src/sys/arch/arm/dts/sun50i-a64-pine64-plus.dts:1.1 src/sys/arch/arm/dts/sun50i-a64-pine64-plus.dts:1.2
--- src/sys/arch/arm/dts/sun50i-a64-pine64-plus.dts:1.1	Thu Sep  7 21:37:56 2017
+++ src/sys/arch/arm/dts/sun50i-a64-pine64-plus.dts	Sat Sep  9 12:05:28 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: sun50i-a64-pine64-plus.dts,v 1.1 2017/09/07 21:37:56 jmcneill Exp $ */
+/* $NetBSD: sun50i-a64-pine64-plus.dts,v 1.2 2017/09/09 12:05:28 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared McNeill 
@@ -41,3 +41,11 @@
 		reg = <1>;
 	};
 };
+
+&ehci0 {
+	status = "okay";
+};
+
+&ohci0 {
+	status = "okay";
+};

Index: src/sys/arch/arm/dts/sun50i-a64.dtsi
diff -u src/sys/arch/arm/dts/sun50i-a64.dtsi:1.2 src/sys/arch/arm/dts/sun50i-a64.dtsi:1.3
--- src/sys/arch/arm/dts/sun50i-a64.dtsi:1.2	Thu Sep  7 21:46:42 2017
+++ src/sys/arch/arm/dts/sun50i-a64.dtsi	Sat Sep  9 12:05:28 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: sun50i-a64.dtsi,v 1.2 2017/09/07 21:46:42 jmcneill Exp $ */
+/* $NetBSD: sun50i-a64.dtsi,v 1.3 2017/09/09 12:05:28 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared McNeill 
@@ -75,3 +75,33 @@
 		drive-strength = <40>;
 	};
 };
+
+/ {
+	soc {
+		ehci0: usb@01c1a000 {
+			compatible = "allwinner,sun50i-a64-ehci", "generic-ehci";
+			reg = <0x01c1a000 0x100>;
+			interrupts = ;
+			clocks = <&ccu CLK_BUS_OHCI0>,
+ <&ccu CLK_BUS_EHCI0>,
+ <&ccu CLK_USB_OHCI0>;
+			resets = <&ccu RST_BUS_OHCI0>,
+ <&ccu RST_BUS_EHCI0>;
+			phys = <&usbphy 0>;
+			phy-names = "usb";
+			status = "disabled";
+		};
+
+		ohci0: usb@01c1a400 {
+			compatible = "allwinner,sun50i-a64-ohci", "generic-ohci";
+			reg = <0x01c1a400 0x100>;
+			interrupts = ;
+			clocks = <&ccu CLK_BUS_OHCI0>,
+ <&ccu CLK_USB_OHCI0>;
+			resets = <&ccu RST_BUS_OHCI0>;
+			phys = <&usbphy 0>;
+			phy-names = "usb";
+			status = "disabled";
+		};
+	};
+};



CVS commit: src/lib/libc/stdlib

2017-09-09 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Sat Sep  9 12:28:19 UTC 2017

Modified Files:
src/lib/libc/stdlib: ptsname.3

Log Message:
Correct the documentatin of ptsname_r(3)

This function returns "int" not "char *": errno on failure, 0 on success.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/lib/libc/stdlib/ptsname.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/stdlib/ptsname.3
diff -u src/lib/libc/stdlib/ptsname.3:1.10 src/lib/libc/stdlib/ptsname.3:1.11
--- src/lib/libc/stdlib/ptsname.3:1.10	Mon Jul  3 21:32:50 2017
+++ src/lib/libc/stdlib/ptsname.3	Sat Sep  9 12:28:19 2017
@@ -1,4 +1,4 @@
-.\" $NetBSD: ptsname.3,v 1.10 2017/07/03 21:32:50 wiz Exp $
+.\" $NetBSD: ptsname.3,v 1.11 2017/09/09 12:28:19 kamil Exp $
 .\"
 .\" Copyright (c) 2004 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -27,7 +27,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd January 7, 2014
+.Dd September 9, 2017
 .Dt PTSNAME 3
 .Os
 .Sh NAME
@@ -40,7 +40,7 @@
 .In stdlib.h
 .Ft char *
 .Fn ptsname "int masterfd"
-.Ft char *
+.Ft int
 .Fn ptsname_r "int masterfd" "char *buf" "size_t buflen"
 .Sh DESCRIPTION
 The



CVS commit: src/sys/arch/arm/cortex

2017-09-09 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Sep  9 13:14:30 UTC 2017

Modified Files:
src/sys/arch/arm/cortex: gtmr.c

Log Message:
gtmr_intr: If the ISTATUS bit is 0, timer condition is not met. In this
case, just return 0.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/cortex/gtmr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/cortex/gtmr.c
diff -u src/sys/arch/arm/cortex/gtmr.c:1.19 src/sys/arch/arm/cortex/gtmr.c:1.20
--- src/sys/arch/arm/cortex/gtmr.c:1.19	Thu Aug 24 13:06:23 2017
+++ src/sys/arch/arm/cortex/gtmr.c	Sat Sep  9 13:14:30 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: gtmr.c,v 1.19 2017/08/24 13:06:23 jmcneill Exp $	*/
+/*	$NetBSD: gtmr.c,v 1.20 2017/09/09 13:14:30 jmcneill Exp $	*/
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: gtmr.c,v 1.19 2017/08/24 13:06:23 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gtmr.c,v 1.20 2017/09/09 13:14:30 jmcneill Exp $");
 
 #include 
 #include 
@@ -292,6 +292,10 @@ gtmr_intr(void *arg)
 
 	arm_isb();
 
+	const uint32_t ctl = armreg_cntv_ctl_read();
+	if ((ctl & ARM_CNTCTL_ISTATUS) == 0)
+		return 0;
+
 	const uint64_t now = armreg_cntv_ct_read();
 	uint64_t delta = now - ci->ci_lastintr;
 



CVS commit: src/usr.bin/sys_info

2017-09-09 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Sep  9 14:12:09 UTC 2017

Modified Files:
src/usr.bin/sys_info: sys_info.sh

Log Message:
add dtc (Device Tree Compiler) version info


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/usr.bin/sys_info/sys_info.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/sys_info/sys_info.sh
diff -u src/usr.bin/sys_info/sys_info.sh:1.13 src/usr.bin/sys_info/sys_info.sh:1.14
--- src/usr.bin/sys_info/sys_info.sh:1.13	Sun Aug 27 20:40:22 2017
+++ src/usr.bin/sys_info/sys_info.sh	Sat Sep  9 14:12:09 2017
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# $NetBSD: sys_info.sh,v 1.13 2017/08/27 20:40:22 wiz Exp $
+# $NetBSD: sys_info.sh,v 1.14 2017/09/09 14:12:09 jmcneill Exp $
 
 # Copyright (c) 2016 Alistair Crooks 
 # All rights reserved.
@@ -26,7 +26,7 @@
 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
 
-SYS_INFO_VERSION=20170824
+SYS_INFO_VERSION=20170909
 
 PATH=$(sysctl -n user.cs_path)
 export PATH
@@ -133,6 +133,9 @@ getversion() {
 	dhcpcd)
 		run  "dhcpcd --version | sed -e 's/ /-/g' -e 1q"
 		$all || return 0 ;&
+	dtc)
+		run "dtc --version | sed 's/Version: DTC /dtc-/'"
+		$all || return 0 ;&
 	ftpd)
 		run "strings -a /usr/libexec/ftpd | awk '\$1 == \"NetBSD-ftpd\" { print \"ftpd-\" \$2 }'"
 		$all || return 0 ;&



CVS commit: src/sys/kern

2017-09-09 Thread Joerg Sonnenberger
Module Name:src
Committed By:   joerg
Date:   Sat Sep  9 14:41:20 UTC 2017

Modified Files:
src/sys/kern: uipc_domain.c

Log Message:
Fix a race between sysctl_unpcblist and closef.


To generate a diff of this commit:
cvs rdiff -u -r1.99 -r1.100 src/sys/kern/uipc_domain.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/uipc_domain.c
diff -u src/sys/kern/uipc_domain.c:1.99 src/sys/kern/uipc_domain.c:1.100
--- src/sys/kern/uipc_domain.c:1.99	Wed Jul  5 17:54:46 2017
+++ src/sys/kern/uipc_domain.c	Sat Sep  9 14:41:19 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: uipc_domain.c,v 1.99 2017/07/05 17:54:46 christos Exp $	*/
+/*	$NetBSD: uipc_domain.c,v 1.100 2017/09/09 14:41:19 joerg Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -32,7 +32,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: uipc_domain.c,v 1.99 2017/07/05 17:54:46 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uipc_domain.c,v 1.100 2017/09/09 14:41:19 joerg Exp $");
 
 #include 
 #include 
@@ -575,6 +575,16 @@ sysctl_unpcblist(SYSCTLFN_ARGS)
 			continue;
 		if (len >= elem_size && elem_count > 0) {
 			mutex_enter(&fp->f_lock);
+			/*
+			 * Do not add references, if the count reached 0.
+			 * Since the check above has been performed without
+			 * locking, it must be rechecked here as a concurrent
+			 * closef could have reduced it.
+			 */
+			if (fp->f_count == 0) {
+mutex_exit(&fp->f_lock);
+continue;
+			}
 			fp->f_count++;
 			mutex_exit(&fp->f_lock);
 			LIST_INSERT_AFTER(fp, dfp, f_list);



CVS commit: [netbsd-6] src/sys/compat/linux32/arch/amd64

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:53:36 UTC 2017

Modified Files:
src/sys/compat/linux32/arch/amd64 [netbsd-6]: linux32_machdep.c

Log Message:
Pull up following revision(s) (requested by maxv in ticket #1502):
sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.39
Fix a ring0 escalation vulnerability in compat_linux32 where the
index of %cs is controlled by userland, making it easy to trigger
the page fault and get kernel privileges.


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.29.10.1 \
src/sys/compat/linux32/arch/amd64/linux32_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/linux32/arch/amd64/linux32_machdep.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.29 src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.29.10.1
--- src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.29	Fri Mar  4 22:25:31 2011
+++ src/sys/compat/linux32/arch/amd64/linux32_machdep.c	Sat Sep  9 16:53:36 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_machdep.c,v 1.29 2011/03/04 22:25:31 joerg Exp $ */
+/*	$NetBSD: linux32_machdep.c,v 1.29.10.1 2017/09/09 16:53:36 snj Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -31,7 +31,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.29 2011/03/04 22:25:31 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.29.10.1 2017/09/09 16:53:36 snj Exp $");
 
 #include 
 #include 
@@ -428,8 +428,9 @@ linux32_restore_sigcontext(struct lwp *l
 	/*
 	 * Check for security violations.
 	 */
-	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0 ||
-	!USERMODE(scp->sc_cs, scp->sc_eflags))
+	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0)
+		return EINVAL;
+	if (!VALID_USER_CSEL32(scp->sc_cs))
 		return EINVAL;
 
 	if (scp->sc_fs != 0 && !VALID_USER_DSEL32(scp->sc_fs) &&



CVS commit: [netbsd-6-0] src/sys/compat/linux32/arch/amd64

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:53:33 UTC 2017

Modified Files:
src/sys/compat/linux32/arch/amd64 [netbsd-6-0]: linux32_machdep.c

Log Message:
Pull up following revision(s) (requested by maxv in ticket #1502):
sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.39
Fix a ring0 escalation vulnerability in compat_linux32 where the
index of %cs is controlled by userland, making it easy to trigger
the page fault and get kernel privileges.


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.29.14.1 \
src/sys/compat/linux32/arch/amd64/linux32_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/linux32/arch/amd64/linux32_machdep.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.29 src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.29.14.1
--- src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.29	Fri Mar  4 22:25:31 2011
+++ src/sys/compat/linux32/arch/amd64/linux32_machdep.c	Sat Sep  9 16:53:33 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_machdep.c,v 1.29 2011/03/04 22:25:31 joerg Exp $ */
+/*	$NetBSD: linux32_machdep.c,v 1.29.14.1 2017/09/09 16:53:33 snj Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -31,7 +31,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.29 2011/03/04 22:25:31 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.29.14.1 2017/09/09 16:53:33 snj Exp $");
 
 #include 
 #include 
@@ -428,8 +428,9 @@ linux32_restore_sigcontext(struct lwp *l
 	/*
 	 * Check for security violations.
 	 */
-	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0 ||
-	!USERMODE(scp->sc_cs, scp->sc_eflags))
+	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0)
+		return EINVAL;
+	if (!VALID_USER_CSEL32(scp->sc_cs))
 		return EINVAL;
 
 	if (scp->sc_fs != 0 && !VALID_USER_DSEL32(scp->sc_fs) &&



CVS commit: [netbsd-6-0] src/doc

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:53:55 UTC 2017

Modified Files:
src/doc [netbsd-6-0]: CHANGES-6.0.7

Log Message:
1502


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.115 -r1.1.2.116 src/doc/CHANGES-6.0.7

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-6.0.7
diff -u src/doc/CHANGES-6.0.7:1.1.2.115 src/doc/CHANGES-6.0.7:1.1.2.116
--- src/doc/CHANGES-6.0.7:1.1.2.115	Mon Sep  4 16:04:06 2017
+++ src/doc/CHANGES-6.0.7	Sat Sep  9 16:53:55 2017
@@ -1,4 +1,4 @@
-# $NetBSD: CHANGES-6.0.7,v 1.1.2.115 2017/09/04 16:04:06 snj Exp $
+# $NetBSD: CHANGES-6.0.7,v 1.1.2.116 2017/09/09 16:53:55 snj Exp $
 
 A complete list of changes from the NetBSD 6.0.6 release to the NetBSD 6.0.7
 release:
@@ -15132,3 +15132,11 @@ sys/arch/sparc64/sparc64/compat_13_machd
 	in %pstate and get kernel privileges on the hardware.
 	[maxv, ticket #1501]
 
+sys/compat/linux32/arch/amd64/linux32_machdep.c	1.39
+
+
+	Fix a ring0 escalation vulnerability in compat_linux32 where the
+	index of %cs is controlled by userland, making it easy to trigger
+	the page fault and get kernel privileges.
+	[maxv, ticket #1502]
+



CVS commit: [netbsd-6-1] src/sys/compat/linux32/arch/amd64

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:53:35 UTC 2017

Modified Files:
src/sys/compat/linux32/arch/amd64 [netbsd-6-1]: linux32_machdep.c

Log Message:
Pull up following revision(s) (requested by maxv in ticket #1502):
sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.39
Fix a ring0 escalation vulnerability in compat_linux32 where the
index of %cs is controlled by userland, making it easy to trigger
the page fault and get kernel privileges.


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.29.16.1 \
src/sys/compat/linux32/arch/amd64/linux32_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/linux32/arch/amd64/linux32_machdep.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.29 src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.29.16.1
--- src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.29	Fri Mar  4 22:25:31 2011
+++ src/sys/compat/linux32/arch/amd64/linux32_machdep.c	Sat Sep  9 16:53:34 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_machdep.c,v 1.29 2011/03/04 22:25:31 joerg Exp $ */
+/*	$NetBSD: linux32_machdep.c,v 1.29.16.1 2017/09/09 16:53:34 snj Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -31,7 +31,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.29 2011/03/04 22:25:31 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.29.16.1 2017/09/09 16:53:34 snj Exp $");
 
 #include 
 #include 
@@ -428,8 +428,9 @@ linux32_restore_sigcontext(struct lwp *l
 	/*
 	 * Check for security violations.
 	 */
-	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0 ||
-	!USERMODE(scp->sc_cs, scp->sc_eflags))
+	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0)
+		return EINVAL;
+	if (!VALID_USER_CSEL32(scp->sc_cs))
 		return EINVAL;
 
 	if (scp->sc_fs != 0 && !VALID_USER_DSEL32(scp->sc_fs) &&



CVS commit: [netbsd-6-1] src/doc

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:54:15 UTC 2017

Modified Files:
src/doc [netbsd-6-1]: CHANGES-6.1.6

Log Message:
1502


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.112 -r1.1.2.113 src/doc/CHANGES-6.1.6

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-6.1.6
diff -u src/doc/CHANGES-6.1.6:1.1.2.112 src/doc/CHANGES-6.1.6:1.1.2.113
--- src/doc/CHANGES-6.1.6:1.1.2.112	Mon Sep  4 16:04:59 2017
+++ src/doc/CHANGES-6.1.6	Sat Sep  9 16:54:15 2017
@@ -1,4 +1,4 @@
-# $NetBSD: CHANGES-6.1.6,v 1.1.2.112 2017/09/04 16:04:59 snj Exp $
+# $NetBSD: CHANGES-6.1.6,v 1.1.2.113 2017/09/09 16:54:15 snj Exp $
 
 A complete list of changes from the NetBSD 6.1.5 release to the NetBSD 6.1.6
 release:
@@ -14805,3 +14805,11 @@ sys/arch/sparc64/sparc64/compat_13_machd
 	in %pstate and get kernel privileges on the hardware.
 	[maxv, ticket #1501]
 
+sys/compat/linux32/arch/amd64/linux32_machdep.c	1.39
+
+
+	Fix a ring0 escalation vulnerability in compat_linux32 where the
+	index of %cs is controlled by userland, making it easy to trigger
+	the page fault and get kernel privileges.
+	[maxv, ticket #1502]
+



CVS commit: [netbsd-6] src/doc

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:54:40 UTC 2017

Modified Files:
src/doc [netbsd-6]: CHANGES-6.2

Log Message:
1502


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.308 -r1.1.2.309 src/doc/CHANGES-6.2

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-6.2
diff -u src/doc/CHANGES-6.2:1.1.2.308 src/doc/CHANGES-6.2:1.1.2.309
--- src/doc/CHANGES-6.2:1.1.2.308	Mon Sep  4 16:05:39 2017
+++ src/doc/CHANGES-6.2	Sat Sep  9 16:54:40 2017
@@ -1,4 +1,4 @@
-# $NetBSD: CHANGES-6.2,v 1.1.2.308 2017/09/04 16:05:39 snj Exp $
+# $NetBSD: CHANGES-6.2,v 1.1.2.309 2017/09/09 16:54:40 snj Exp $
 
 A complete list of changes from the 6.1 release until the 6.2 release:
 
@@ -20900,3 +20900,11 @@ sys/arch/sparc64/sparc64/compat_13_machd
 	in %pstate and get kernel privileges on the hardware.
 	[maxv, ticket #1501]
 
+sys/compat/linux32/arch/amd64/linux32_machdep.c	1.39
+
+
+	Fix a ring0 escalation vulnerability in compat_linux32 where the
+	index of %cs is controlled by userland, making it easy to trigger
+	the page fault and get kernel privileges.
+	[maxv, ticket #1502]
+



CVS commit: [netbsd-7] src/sys/compat/linux32/arch/amd64

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:57:38 UTC 2017

Modified Files:
src/sys/compat/linux32/arch/amd64 [netbsd-7]: linux32_machdep.c

Log Message:
Pull up following revision(s) (requested by maxv in ticket #1507):
sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.39
Fix a ring0 escalation vulnerability in compat_linux32 where the
index of %cs is controlled by userland, making it easy to trigger
the page fault and get kernel privileges.


To generate a diff of this commit:
cvs rdiff -u -r1.36 -r1.36.4.1 \
src/sys/compat/linux32/arch/amd64/linux32_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/linux32/arch/amd64/linux32_machdep.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.36 src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.36.4.1
--- src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.36	Wed Feb 19 21:45:01 2014
+++ src/sys/compat/linux32/arch/amd64/linux32_machdep.c	Sat Sep  9 16:57:37 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_machdep.c,v 1.36 2014/02/19 21:45:01 dsl Exp $ */
+/*	$NetBSD: linux32_machdep.c,v 1.36.4.1 2017/09/09 16:57:37 snj Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -31,7 +31,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.36 2014/02/19 21:45:01 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.36.4.1 2017/09/09 16:57:37 snj Exp $");
 
 #include 
 #include 
@@ -417,8 +417,9 @@ linux32_restore_sigcontext(struct lwp *l
 	/*
 	 * Check for security violations.
 	 */
-	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0 ||
-	!USERMODE(scp->sc_cs, scp->sc_eflags))
+	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0)
+		return EINVAL;
+	if (!VALID_USER_CSEL32(scp->sc_cs))
 		return EINVAL;
 
 	if (scp->sc_fs != 0 && !VALID_USER_DSEL32(scp->sc_fs) &&



CVS commit: [netbsd-7-0] src/sys/compat/linux32/arch/amd64

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:57:34 UTC 2017

Modified Files:
src/sys/compat/linux32/arch/amd64 [netbsd-7-0]: linux32_machdep.c

Log Message:
Pull up following revision(s) (requested by maxv in ticket #1507):
sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.39
Fix a ring0 escalation vulnerability in compat_linux32 where the
index of %cs is controlled by userland, making it easy to trigger
the page fault and get kernel privileges.


To generate a diff of this commit:
cvs rdiff -u -r1.36 -r1.36.8.1 \
src/sys/compat/linux32/arch/amd64/linux32_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/linux32/arch/amd64/linux32_machdep.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.36 src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.36.8.1
--- src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.36	Wed Feb 19 21:45:01 2014
+++ src/sys/compat/linux32/arch/amd64/linux32_machdep.c	Sat Sep  9 16:57:34 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_machdep.c,v 1.36 2014/02/19 21:45:01 dsl Exp $ */
+/*	$NetBSD: linux32_machdep.c,v 1.36.8.1 2017/09/09 16:57:34 snj Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -31,7 +31,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.36 2014/02/19 21:45:01 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.36.8.1 2017/09/09 16:57:34 snj Exp $");
 
 #include 
 #include 
@@ -417,8 +417,9 @@ linux32_restore_sigcontext(struct lwp *l
 	/*
 	 * Check for security violations.
 	 */
-	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0 ||
-	!USERMODE(scp->sc_cs, scp->sc_eflags))
+	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0)
+		return EINVAL;
+	if (!VALID_USER_CSEL32(scp->sc_cs))
 		return EINVAL;
 
 	if (scp->sc_fs != 0 && !VALID_USER_DSEL32(scp->sc_fs) &&



CVS commit: [netbsd-7-1] src/sys/compat/linux32/arch/amd64

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:57:36 UTC 2017

Modified Files:
src/sys/compat/linux32/arch/amd64 [netbsd-7-1]: linux32_machdep.c

Log Message:
Pull up following revision(s) (requested by maxv in ticket #1507):
sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.39
Fix a ring0 escalation vulnerability in compat_linux32 where the
index of %cs is controlled by userland, making it easy to trigger
the page fault and get kernel privileges.


To generate a diff of this commit:
cvs rdiff -u -r1.36 -r1.36.14.1 \
src/sys/compat/linux32/arch/amd64/linux32_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/linux32/arch/amd64/linux32_machdep.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.36 src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.36.14.1
--- src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.36	Wed Feb 19 21:45:01 2014
+++ src/sys/compat/linux32/arch/amd64/linux32_machdep.c	Sat Sep  9 16:57:36 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_machdep.c,v 1.36 2014/02/19 21:45:01 dsl Exp $ */
+/*	$NetBSD: linux32_machdep.c,v 1.36.14.1 2017/09/09 16:57:36 snj Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -31,7 +31,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.36 2014/02/19 21:45:01 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.36.14.1 2017/09/09 16:57:36 snj Exp $");
 
 #include 
 #include 
@@ -417,8 +417,9 @@ linux32_restore_sigcontext(struct lwp *l
 	/*
 	 * Check for security violations.
 	 */
-	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0 ||
-	!USERMODE(scp->sc_cs, scp->sc_eflags))
+	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0)
+		return EINVAL;
+	if (!VALID_USER_CSEL32(scp->sc_cs))
 		return EINVAL;
 
 	if (scp->sc_fs != 0 && !VALID_USER_DSEL32(scp->sc_fs) &&



CVS commit: [netbsd-7] src/doc

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:57:48 UTC 2017

Modified Files:
src/doc [netbsd-7]: CHANGES-7.2

Log Message:
1507


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.44 -r1.1.2.45 src/doc/CHANGES-7.2

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-7.2
diff -u src/doc/CHANGES-7.2:1.1.2.44 src/doc/CHANGES-7.2:1.1.2.45
--- src/doc/CHANGES-7.2:1.1.2.44	Mon Sep  4 16:09:34 2017
+++ src/doc/CHANGES-7.2	Sat Sep  9 16:57:48 2017
@@ -1,4 +1,4 @@
-# $NetBSD: CHANGES-7.2,v 1.1.2.44 2017/09/04 16:09:34 snj Exp $
+# $NetBSD: CHANGES-7.2,v 1.1.2.45 2017/09/09 16:57:48 snj Exp $
 
 A complete list of changes from the NetBSD 7.1 release to the NetBSD 7.2
 release:
@@ -4630,3 +4630,10 @@ sys/arch/sparc64/sparc64/compat_13_machd
 	in %pstate and get kernel privileges on the hardware.
 	[maxv, ticket #1504]
 
+sys/compat/linux32/arch/amd64/linux32_machdep.c	1.39
+
+	Fix a ring0 escalation vulnerability in compat_linux32 where the
+	index of %cs is controlled by userland, making it easy to trigger
+	the page fault and get kernel privileges.
+	[maxv, ticket #1507]
+



CVS commit: [netbsd-7-1] src/doc

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:57:58 UTC 2017

Modified Files:
src/doc [netbsd-7-1]: CHANGES-7.1.1

Log Message:
1507


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.30 -r1.1.2.31 src/doc/CHANGES-7.1.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-7.1.1
diff -u src/doc/CHANGES-7.1.1:1.1.2.30 src/doc/CHANGES-7.1.1:1.1.2.31
--- src/doc/CHANGES-7.1.1:1.1.2.30	Mon Sep  4 16:08:52 2017
+++ src/doc/CHANGES-7.1.1	Sat Sep  9 16:57:58 2017
@@ -1,4 +1,4 @@
-# $NetBSD: CHANGES-7.1.1,v 1.1.2.30 2017/09/04 16:08:52 snj Exp $
+# $NetBSD: CHANGES-7.1.1,v 1.1.2.31 2017/09/09 16:57:58 snj Exp $
 
 A complete list of changes from the NetBSD 7.1 release to the NetBSD 7.1.1
 release:
@@ -3639,3 +3639,10 @@ sys/arch/sparc64/sparc64/compat_13_machd
 	in %pstate and get kernel privileges on the hardware.
 	[maxv, ticket #1504]
 
+sys/compat/linux32/arch/amd64/linux32_machdep.c	1.39
+
+	Fix a ring0 escalation vulnerability in compat_linux32 where the
+	index of %cs is controlled by userland, making it easy to trigger
+	the page fault and get kernel privileges.
+	[maxv, ticket #1507]
+



CVS commit: [netbsd-7-0] src/doc

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 16:58:10 UTC 2017

Modified Files:
src/doc [netbsd-7-0]: CHANGES-7.0.3

Log Message:
1507


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.62 -r1.1.2.63 src/doc/CHANGES-7.0.3

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-7.0.3
diff -u src/doc/CHANGES-7.0.3:1.1.2.62 src/doc/CHANGES-7.0.3:1.1.2.63
--- src/doc/CHANGES-7.0.3:1.1.2.62	Mon Sep  4 16:07:50 2017
+++ src/doc/CHANGES-7.0.3	Sat Sep  9 16:58:10 2017
@@ -1,4 +1,4 @@
-# $NetBSD: CHANGES-7.0.3,v 1.1.2.62 2017/09/04 16:07:50 snj Exp $
+# $NetBSD: CHANGES-7.0.3,v 1.1.2.63 2017/09/09 16:58:10 snj Exp $
 
 A complete list of changes from the NetBSD 7.0.2 release to the NetBSD 7.0.3
 release:
@@ -4941,3 +4941,10 @@ sys/arch/sparc64/sparc64/compat_13_machd
 	in %pstate and get kernel privileges on the hardware.
 	[maxv, ticket #1504]
 
+sys/compat/linux32/arch/amd64/linux32_machdep.c	1.39
+
+	Fix a ring0 escalation vulnerability in compat_linux32 where the
+	index of %cs is controlled by userland, making it easy to trigger
+	the page fault and get kernel privileges.
+	[maxv, ticket #1507]
+



CVS commit: [netbsd-8] src/sys/compat/linux32/arch/amd64

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 17:01:23 UTC 2017

Modified Files:
src/sys/compat/linux32/arch/amd64 [netbsd-8]: linux32_machdep.c

Log Message:
Pull up following revision(s) (requested by maxv in ticket #270):
sys/compat/linux32/arch/amd64/linux32_machdep.c: revision 1.39
Fix a ring0 escalation vulnerability in compat_linux32 where the
index of %cs is controlled by userland, making it easy to trigger
the page fault and get kernel privileges.


To generate a diff of this commit:
cvs rdiff -u -r1.38 -r1.38.6.1 \
src/sys/compat/linux32/arch/amd64/linux32_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/linux32/arch/amd64/linux32_machdep.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.38 src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.38.6.1
--- src/sys/compat/linux32/arch/amd64/linux32_machdep.c:1.38	Sun Feb  5 08:52:11 2017
+++ src/sys/compat/linux32/arch/amd64/linux32_machdep.c	Sat Sep  9 17:01:23 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_machdep.c,v 1.38 2017/02/05 08:52:11 maxv Exp $ */
+/*	$NetBSD: linux32_machdep.c,v 1.38.6.1 2017/09/09 17:01:23 snj Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -31,7 +31,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.38 2017/02/05 08:52:11 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_machdep.c,v 1.38.6.1 2017/09/09 17:01:23 snj Exp $");
 
 #include 
 #include 
@@ -417,8 +417,9 @@ linux32_restore_sigcontext(struct lwp *l
 	/*
 	 * Check for security violations.
 	 */
-	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0 ||
-	!USERMODE(scp->sc_cs, scp->sc_eflags))
+	if (((scp->sc_eflags ^ tf->tf_rflags) & PSL_USERSTATIC) != 0)
+		return EINVAL;
+	if (!VALID_USER_CSEL32(scp->sc_cs))
 		return EINVAL;
 
 	if (scp->sc_fs != 0 && !VALID_USER_DSEL32(scp->sc_fs) &&



CVS commit: [netbsd-8] src/sys/arch

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 17:29:41 UTC 2017

Modified Files:
src/sys/arch/amd64/conf [netbsd-8]: ALL
src/sys/arch/i386/conf [netbsd-8]: ALL
src/sys/arch/i386/i386 [netbsd-8]: i386_trap.S locore.S
src/sys/arch/x86/x86 [netbsd-8]: sys_machdep.c

Log Message:
Pull up following revision(s) (requested by maxv in ticket #258):
sys/arch/amd64/conf/ALL: 1.68
sys/arch/i386/conf/ALL: 1.428
sys/arch/i386/i386/i386_trap.S: 1.12
sys/arch/i386/i386/locore.S: 1.149-1.150
sys/arch/x86/x86/sys_machdep.c: 1.38
Remove undocumented hack.
--
Switch to the temporary stack right away when booted via multiboot. GRUB
happens to give a correct stack, but it is not guaranteed by the spec. This
temporary stack will be reset later, which is fine.
Fixes PR/50245.
--
Pfff, use %ss and not %ds. The latter is controlled by userland, the former
contains the kernel value (flat); FreeBSD fixed this too a few weeks ago.
As I said earlier, this dtrace code is complete bullshit.
--
Don't allow userland to create 286/386 call gates anymore - they are not
used by Wine. While here, don't allow it to overwrite the static entries
either, don't allow unknown entry types, remove LDT_DEBUG, and style.


To generate a diff of this commit:
cvs rdiff -u -r1.59 -r1.59.2.1 src/sys/arch/amd64/conf/ALL
cvs rdiff -u -r1.419.2.1 -r1.419.2.2 src/sys/arch/i386/conf/ALL
cvs rdiff -u -r1.6.6.1 -r1.6.6.2 src/sys/arch/i386/i386/i386_trap.S
cvs rdiff -u -r1.145.6.1 -r1.145.6.2 src/sys/arch/i386/i386/locore.S
cvs rdiff -u -r1.35.6.1 -r1.35.6.2 src/sys/arch/x86/x86/sys_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/amd64/conf/ALL
diff -u src/sys/arch/amd64/conf/ALL:1.59 src/sys/arch/amd64/conf/ALL:1.59.2.1
--- src/sys/arch/amd64/conf/ALL:1.59	Sat May 27 22:53:29 2017
+++ src/sys/arch/amd64/conf/ALL	Sat Sep  9 17:29:40 2017
@@ -1,4 +1,4 @@
-# $NetBSD: ALL,v 1.59 2017/05/27 22:53:29 bouyer Exp $
+# $NetBSD: ALL,v 1.59.2.1 2017/09/09 17:29:40 snj Exp $
 # From NetBSD: GENERIC,v 1.787 2006/10/01 18:37:54 bouyer Exp
 #
 # ALL machine description file
@@ -17,7 +17,7 @@ include 	"arch/amd64/conf/std.amd64"
 
 options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
 
-#ident		"ALL-$Revision: 1.59 $"
+#ident		"ALL-$Revision: 1.59.2.1 $"
 
 maxusers	64		# estimated number of users
 
@@ -2076,7 +2076,6 @@ options KSYMS_DEBUG
 options KUE_DEBUG
 options LANA_DEBUG
 options LCD_DEBUG
-options LDT_DEBUG
 options LEDEBUG
 options LE_DEBUG
 options LIFDEBUG

Index: src/sys/arch/i386/conf/ALL
diff -u src/sys/arch/i386/conf/ALL:1.419.2.1 src/sys/arch/i386/conf/ALL:1.419.2.2
--- src/sys/arch/i386/conf/ALL:1.419.2.1	Thu Aug 31 08:41:33 2017
+++ src/sys/arch/i386/conf/ALL	Sat Sep  9 17:29:40 2017
@@ -1,4 +1,4 @@
-# $NetBSD: ALL,v 1.419.2.1 2017/08/31 08:41:33 bouyer Exp $
+# $NetBSD: ALL,v 1.419.2.2 2017/09/09 17:29:40 snj Exp $
 # From NetBSD: GENERIC,v 1.787 2006/10/01 18:37:54 bouyer Exp
 #
 # ALL machine description file
@@ -17,7 +17,7 @@ include 	"arch/i386/conf/std.i386"
 
 options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
 
-#ident		"ALL-$Revision: 1.419.2.1 $"
+#ident		"ALL-$Revision: 1.419.2.2 $"
 
 maxusers	64		# estimated number of users
 
@@ -2230,7 +2230,6 @@ options KSYMS_DEBUG
 options KUE_DEBUG
 options LANA_DEBUG
 options LCD_DEBUG
-options LDT_DEBUG
 options LEDEBUG
 options LE_DEBUG
 options LIFDEBUG

Index: src/sys/arch/i386/i386/i386_trap.S
diff -u src/sys/arch/i386/i386/i386_trap.S:1.6.6.1 src/sys/arch/i386/i386/i386_trap.S:1.6.6.2
--- src/sys/arch/i386/i386/i386_trap.S:1.6.6.1	Tue Aug  1 23:18:30 2017
+++ src/sys/arch/i386/i386/i386_trap.S	Sat Sep  9 17:29:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: i386_trap.S,v 1.6.6.1 2017/08/01 23:18:30 snj Exp $	*/
+/*	$NetBSD: i386_trap.S,v 1.6.6.2 2017/09/09 17:29:40 snj Exp $	*/
 
 /*
  * Copyright 2002 (c) Wasabi Systems, Inc.
@@ -66,7 +66,7 @@
 
 #if 0
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i386_trap.S,v 1.6.6.1 2017/08/01 23:18:30 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i386_trap.S,v 1.6.6.2 2017/09/09 17:29:40 snj Exp $");
 #endif
 
 /*
@@ -139,7 +139,7 @@ IDTVEC_END(trap05)
 	SUPERALIGN_TEXT
 IDTVEC(trap06)
 	/* Check if there is no DTrace hook registered. */
-	cmpl	$0,dtrace_invop_jump_addr
+	cmpl	$0,%ss:dtrace_invop_jump_addr
 	je	norm_ill
 
 	/* Check if this is a user fault. */

Index: src/sys/arch/i386/i386/locore.S
diff -u src/sys/arch/i386/i386/locore.S:1.145.6.1 src/sys/arch/i386/i386/locore.S:1.145.6.2
--- src/sys/arch/i386/i386/locore.S:1.145.6.1	Wed Jul  5 19:59:29 2017
+++ src/sys/arch/i386/i386/locore.S	Sat Sep  9 17:29:40 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.S,v 1.145.6.1 2017/07/05 19:59:29 snj Exp $	*/
+/*	$NetBSD: locore.S,v 1.145.6.2 2017/09/09 17:29:40 snj Exp $	*/
 
 /*
  * Copyright-o-rama!
@@ -128,7 +128,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBS

CVS commit: [netbsd-8] src/doc

2017-09-09 Thread Soren Jacobsen
Module Name:src
Committed By:   snj
Date:   Sat Sep  9 17:38:24 UTC 2017

Modified Files:
src/doc [netbsd-8]: CHANGES-8.0

Log Message:
258, 270


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.56 -r1.1.2.57 src/doc/CHANGES-8.0

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/doc/CHANGES-8.0
diff -u src/doc/CHANGES-8.0:1.1.2.56 src/doc/CHANGES-8.0:1.1.2.57
--- src/doc/CHANGES-8.0:1.1.2.56	Mon Sep  4 20:47:59 2017
+++ src/doc/CHANGES-8.0	Sat Sep  9 17:38:24 2017
@@ -1,4 +1,4 @@
-# $NetBSD: CHANGES-8.0,v 1.1.2.56 2017/09/04 20:47:59 snj Exp $
+# $NetBSD: CHANGES-8.0,v 1.1.2.57 2017/09/09 17:38:24 snj Exp $
 
 A complete list of changes from the initial NetBSD 8.0 branch on 2017-06-04
 until the 8.0 release:
@@ -5787,3 +5787,22 @@ sys/compat/linux/arch/amd64/linux_machde
 	reduce the diff with SMAP.
 	[maxv, ticket #257]
 
+sys/compat/linux32/arch/amd64/linux32_machdep.c	1.39
+
+	Fix a ring0 escalation vulnerability in compat_linux32 where the
+	index of %cs is controlled by userland, making it easy to trigger
+	the page fault and get kernel privileges.
+	[maxv, ticket #270]
+
+sys/arch/amd64/conf/ALL1.68
+sys/arch/i386/conf/ALL1.428
+sys/arch/i386/i386/i386_trap.S			1.12
+sys/arch/i386/i386/locore.S			1.149-1.150
+sys/arch/x86/x86/sys_machdep.c			1.38
+
+	i386:
+	- use a proper stack for multiboot
+	- use %ss instead of %ds in trap06
+	- reject call gates in the LDT, and remove LDT_DEBUG
+	[maxv, ticket #258]
+



CVS commit: src/lib/libc/gen

2017-09-09 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Sat Sep  9 18:00:40 UTC 2017

Modified Files:
src/lib/libc/gen: devname.3

Log Message:
Document devname_r(3) in devname(3).

Improve clarity of devname(3) mentioning that it returns a pointer to the
buffer pointer. This approach is not thread-safe and not reentrant.

Not that devname(3) does not set errno on failure and document it as a bug.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/lib/libc/gen/devname.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/gen/devname.3
diff -u src/lib/libc/gen/devname.3:1.12 src/lib/libc/gen/devname.3:1.13
--- src/lib/libc/gen/devname.3:1.12	Sun Jun  3 21:42:46 2012
+++ src/lib/libc/gen/devname.3	Sat Sep  9 18:00:39 2017
@@ -1,4 +1,4 @@
-.\"	$NetBSD: devname.3,v 1.12 2012/06/03 21:42:46 joerg Exp $
+.\"	$NetBSD: devname.3,v 1.13 2017/09/09 18:00:39 kamil Exp $
 .\"
 .\" Copyright (c) 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -29,11 +29,12 @@
 .\"
 .\" @(#)devname.3	8.2 (Berkeley) 4/29/95
 .\"
-.Dd June 3, 2012
+.Dd September 9, 2017
 .Dt DEVNAME 3
 .Os
 .Sh NAME
-.Nm devname
+.Nm devname ,
+.Nm devname_r
 .Nd get device name
 .Sh LIBRARY
 .Lb libc
@@ -42,10 +43,12 @@
 .In sys/stat.h
 .Ft char *
 .Fn devname "dev_t dev" "mode_t type"
+.Ft int
+.Fn devname_r "dev_t dev" "mode_t type" "char *path" "size_t len"
 .Sh DESCRIPTION
 The
 .Fn devname
-function returns a pointer to the name of the block or character
+function returns a pointer to the static buffer with the name of the block or character
 device in
 .Dq Pa /dev
 with a device number of
@@ -58,9 +61,49 @@ available,
 .Dv NULL
 is returned.
 .Pp
+The
+.Fn devname_r
+function is a reentrand and thread-safe version of
+.Fn devname .
+This function returns the device name by copying it into the
+.Fa path
+argument with up to
+.Fa len
+characters.
+The
+.Fa path
+argument is always nul-terminated.
+.Pp
 The traditional display for applications when no device is
 found is the string
 .Dq ?? .
+.Sh RETURN VALUES
+If successful,
+.Fn devname
+returns a pointer to a nul-terminated string containing the name of the device.
+If an error occurs
+.Fa devname
+will return
+.Dv NULL .
+.Pp
+If successful,
+.Fn devname_r
+places a nul-terminated string containing the name of the device and returns 0.
+If error occurs
+.Fn devname_r
+will return error number indicating what went wrong.
+.Sh ERRORS
+The
+.Fn devname
+and
+.Fn devname_r
+functions my fail if:
+.Bl -tag -width Er
+.It Bq Er ENOENT
+the corresponding device does not exist
+.It Bq Er ERANGE
+the passed buffer length is too short
+.El
 .Sh FILES
 .Bl -tag -width /var/run/dev.cdb -compact
 .It Pa /var/run/dev.cdb
@@ -74,3 +117,12 @@ The
 .Nm devname
 function call appeared in
 .Bx 4.4 .
+.Pp
+The
+.Fn devname_r
+function first appeared in
+.Nx 6.0 .
+.Sh BUGS
+The
+.Fn devname
+function does not set errno on failure.



CVS commit: src

2017-09-09 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Sat Sep  9 18:18:28 UTC 2017

Modified Files:
src/distrib/sets/lists/comp: mi
src/lib/libc/gen: Makefile.inc

Log Message:
Install new man-page devname_r(3).

This is a link to devname(3).


To generate a diff of this commit:
cvs rdiff -u -r1.2145 -r1.2146 src/distrib/sets/lists/comp/mi
cvs rdiff -u -r1.199 -r1.200 src/lib/libc/gen/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/comp/mi
diff -u src/distrib/sets/lists/comp/mi:1.2145 src/distrib/sets/lists/comp/mi:1.2146
--- src/distrib/sets/lists/comp/mi:1.2145	Sat Aug 12 08:21:30 2017
+++ src/distrib/sets/lists/comp/mi	Sat Sep  9 18:18:27 2017
@@ -1,4 +1,4 @@
-#	$NetBSD: mi,v 1.2145 2017/08/12 08:21:30 maxv Exp $
+#	$NetBSD: mi,v 1.2146 2017/09/09 18:18:27 kamil Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 ./etc/mtree/set.compcomp-sys-root
@@ -5977,6 +5977,7 @@
 ./usr/share/man/cat3/des_string_to_key.0	comp-c-catman		.cat
 ./usr/share/man/cat3/des_xcbc_encrypt.0		comp-c-catman		.cat
 ./usr/share/man/cat3/devname.0			comp-c-catman		.cat
+./usr/share/man/cat3/devname_r.0		comp-c-catman		.cat
 ./usr/share/man/cat3/dgettext.0			comp-c-catman		.cat
 ./usr/share/man/cat3/dh.0			comp-obsolete		obsolete
 ./usr/share/man/cat3/difftime.0			comp-c-catman		.cat
@@ -13565,6 +13566,7 @@
 ./usr/share/man/html3/des_string_to_key.html	comp-c-htmlman		html
 ./usr/share/man/html3/des_xcbc_encrypt.html	comp-c-htmlman		html
 ./usr/share/man/html3/devname.html		comp-c-htmlman		html
+./usr/share/man/html3/devname_r.html		comp-c-htmlman		html
 ./usr/share/man/html3/dgettext.html		comp-c-htmlman		html
 ./usr/share/man/html3/difftime.html		comp-c-htmlman		html
 ./usr/share/man/html3/dir.html			comp-c-htmlman		html
@@ -21060,6 +21062,7 @@
 ./usr/share/man/man3/des_string_to_key.3	comp-c-man		.man
 ./usr/share/man/man3/des_xcbc_encrypt.3		comp-c-man		.man
 ./usr/share/man/man3/devname.3			comp-c-man		.man
+./usr/share/man/man3/devname_r.3		comp-c-man		.man
 ./usr/share/man/man3/dgettext.3			comp-c-man		.man
 ./usr/share/man/man3/dh.3			comp-obsolete		obsolete
 ./usr/share/man/man3/difftime.3			comp-c-man		.man

Index: src/lib/libc/gen/Makefile.inc
diff -u src/lib/libc/gen/Makefile.inc:1.199 src/lib/libc/gen/Makefile.inc:1.200
--- src/lib/libc/gen/Makefile.inc:1.199	Tue May  9 11:14:16 2017
+++ src/lib/libc/gen/Makefile.inc	Sat Sep  9 18:18:28 2017
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.199 2017/05/09 11:14:16 kre Exp $
+#	$NetBSD: Makefile.inc,v 1.200 2017/09/09 18:18:28 kamil Exp $
 #	from: @(#)Makefile.inc	8.6 (Berkeley) 5/4/95
 
 # gen sources
@@ -90,6 +90,7 @@ MLINKS+=bswap.3 bswap16.3 bswap.3 bswap3
 MLINKS+=cpuset.3 cpuset_create.3 cpuset.3 cpuset_destroy.3 \
 	cpuset.3 cpuset_zero.3 cpuset.3 cpuset_set.3 cpuset.3 cpuset_clr.3 \
 	cpuset.3 cpuset_isset.3 cpuset.3 cpuset_size.3
+MLINKS+=devname.3 devname_r.3
 MLINKS+=directory.3 closedir.3 directory.3 dirfd.3 directory.3 opendir.3 \
 	directory.3 readdir.3 directory.3 readdir_r.3 directory.3 \
 	rewinddir.3 directory.3 seekdir.3 directory.3 telldir.3 \



CVS commit: src/lib/libc/gen

2017-09-09 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Sat Sep  9 18:45:04 UTC 2017

Modified Files:
src/lib/libc/gen: devname.3

Log Message:
Remove the BUGS section from devname(3)

devname(3) does not report type of error on purpose.

Suggested by 


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/lib/libc/gen/devname.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/gen/devname.3
diff -u src/lib/libc/gen/devname.3:1.13 src/lib/libc/gen/devname.3:1.14
--- src/lib/libc/gen/devname.3:1.13	Sat Sep  9 18:00:39 2017
+++ src/lib/libc/gen/devname.3	Sat Sep  9 18:45:04 2017
@@ -1,4 +1,4 @@
-.\"	$NetBSD: devname.3,v 1.13 2017/09/09 18:00:39 kamil Exp $
+.\"	$NetBSD: devname.3,v 1.14 2017/09/09 18:45:04 kamil Exp $
 .\"
 .\" Copyright (c) 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -94,10 +94,8 @@ If error occurs
 will return error number indicating what went wrong.
 .Sh ERRORS
 The
-.Fn devname
-and
 .Fn devname_r
-functions my fail if:
+function my fail if:
 .Bl -tag -width Er
 .It Bq Er ENOENT
 the corresponding device does not exist
@@ -122,7 +120,3 @@ The
 .Fn devname_r
 function first appeared in
 .Nx 6.0 .
-.Sh BUGS
-The
-.Fn devname
-function does not set errno on failure.



CVS commit: src/usr.sbin/veriexecgen

2017-09-09 Thread Sevan Janiyan
Module Name:src
Committed By:   sevan
Date:   Sat Sep  9 21:27:23 UTC 2017

Modified Files:
src/usr.sbin/veriexecgen: veriexecgen.8 veriexecgen.c

Log Message:
Remove the ability to generate a signature database with the hash algorithms
MD5, SHA1 & RMD160 which are either broken or on their way to being broken.

Discussed on tech-security
http://mail-index.netbsd.org/tech-security/2017/08/21/msg000936.html

ok riastradh


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/usr.sbin/veriexecgen/veriexecgen.8 \
src/usr.sbin/veriexecgen/veriexecgen.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/veriexecgen/veriexecgen.8
diff -u src/usr.sbin/veriexecgen/veriexecgen.8:1.17 src/usr.sbin/veriexecgen/veriexecgen.8:1.18
--- src/usr.sbin/veriexecgen/veriexecgen.8:1.17	Thu Apr 28 11:24:28 2011
+++ src/usr.sbin/veriexecgen/veriexecgen.8	Sat Sep  9 21:27:23 2017
@@ -1,4 +1,4 @@
-.\" $NetBSD: veriexecgen.8,v 1.17 2011/04/28 11:24:28 wiz Exp $
+.\" $NetBSD: veriexecgen.8,v 1.18 2017/09/09 21:27:23 sevan Exp $
 .\"
 .\" Copyright (c) 2006 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -27,7 +27,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd February 18, 2008
+.Dd September 9, 2017
 .Dt VERIEXECGEN 8
 .Os
 .Sh NAME
@@ -102,13 +102,9 @@ Use
 .Ar algorithm
 for the fingerprints.
 Must be one of
-.Dq md5 ,
-.Dq sha1 ,
 .Dq sha256 ,
 .Dq sha384 ,
 .Dq sha512 ,
-or
-.Dq rmd160 .
 .It Fl v
 Verbose mode.
 Print messages describing what operations are being done.
@@ -147,11 +143,11 @@ appending to the default fingerprint dat
 .Pp
 Fingerprint files in
 .Pa /path/to/somewhere using
-.Dq rmd160
+.Dq sha512
 as the hashing algorithm, saving to
 .Pa /etc/somewhere.fp :
 .Bd -literal -offset indent
-# veriexecgen -d /path/to/somewhere -t rmd160 -o /etc/somewhere.fp
+# veriexecgen -d /path/to/somewhere -t sha512 -o /etc/somewhere.fp
 .Ed
 .Sh SEE ALSO
 .Xr veriexec 4 ,
Index: src/usr.sbin/veriexecgen/veriexecgen.c
diff -u src/usr.sbin/veriexecgen/veriexecgen.c:1.17 src/usr.sbin/veriexecgen/veriexecgen.c:1.18
--- src/usr.sbin/veriexecgen/veriexecgen.c:1.17	Fri Aug 21 04:09:41 2009
+++ src/usr.sbin/veriexecgen/veriexecgen.c	Sat Sep  9 21:27:23 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: veriexecgen.c,v 1.17 2009/08/21 04:09:41 elad Exp $ */
+/* $NetBSD: veriexecgen.c,v 1.18 2017/09/09 21:27:23 sevan Exp $ */
 
 /*-
  * Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
 
 #ifndef lint
 #ifdef __RCSID
-__RCSID("$NetBSD: veriexecgen.c,v 1.17 2009/08/21 04:09:41 elad Exp $");
+__RCSID("$NetBSD: veriexecgen.c,v 1.18 2017/09/09 21:27:23 sevan Exp $");
 #endif
 #endif /* not lint */
 
@@ -57,10 +57,7 @@ __RCSID("$NetBSD: veriexecgen.c,v 1.17 2
 #include 
 #include 
 
-#include 
-#include 
 #include 
-#include 
 
 #define IS_EXEC(mode) ((mode) & (S_IXUSR | S_IXGRP | S_IXOTH))
 
@@ -100,12 +97,9 @@ TAILQ_HEAD(, fentry) fehead;
 
 /* define the possible hash algorithms */
 static hash_t	 hashes[] = {
-	{ "MD5", MD5File },
-	{ "SHA1", SHA1File },
 	{ "SHA256", SHA256_File },
 	{ "SHA384", SHA384_File },
 	{ "SHA512", SHA512_File },
-	{ "RMD160", RMD160File },
 	{ NULL, NULL },
 };
 



CVS commit: src/doc

2017-09-09 Thread Sevan Janiyan
Module Name:src
Committed By:   sevan
Date:   Sat Sep  9 21:34:07 UTC 2017

Modified Files:
src/doc: CHANGES

Log Message:
Note veriexecgen change


To generate a diff of this commit:
cvs rdiff -u -r1.2311 -r1.2312 src/doc/CHANGES

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
diff -u src/doc/CHANGES:1.2311 src/doc/CHANGES:1.2312
--- src/doc/CHANGES:1.2311	Fri Sep  8 14:01:46 2017
+++ src/doc/CHANGES	Sat Sep  9 21:34:07 2017
@@ -1,4 +1,4 @@
-# LIST OF CHANGES FROM LAST RELEASE:			<$Revision: 1.2311 $>
+# LIST OF CHANGES FROM LAST RELEASE:			<$Revision: 1.2312 $>
 #
 #
 # [Note: This file does not mention every change made to the NetBSD source tree.
@@ -55,3 +55,4 @@ Changes from NetBSD 8.0 to NetBSD 9.0:
 		bypass adapters. [msaitoh 20170830]
 	file(1): Upgraded to 5.32. [christos 20170908]
 	tcpdump(8): Import 4.9.2. [christos 20170908]
+	veriexecgen(8): drop support for MD5, SHA1, RMD160. [sevan 20170909]



CVS commit: src/lib/libpthread

2017-09-09 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Sat Sep  9 23:21:45 UTC 2017

Modified Files:
src/lib/libpthread: pthread_types.h

Log Message:
Support  on C89 compilers

Clang 5.0.0(svn) reports warnings on  for C99 constructs
when used with strict -std=c89.

Restrict designated initializers usage to C99 or newer code.
C89 and C++ will share the same code without extension of designated
initializers.

PR 52285


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 src/lib/libpthread/pthread_types.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libpthread/pthread_types.h
diff -u src/lib/libpthread/pthread_types.h:1.22 src/lib/libpthread/pthread_types.h:1.23
--- src/lib/libpthread/pthread_types.h:1.22	Wed Jul 20 21:02:04 2016
+++ src/lib/libpthread/pthread_types.h	Sat Sep  9 23:21:45 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_types.h,v 1.22 2016/07/20 21:02:04 christos Exp $	*/
+/*	$NetBSD: pthread_types.h,v 1.23 2017/09/09 23:21:45 kamil Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2008 The NetBSD Foundation, Inc.
@@ -114,10 +114,10 @@ struct	__pthread_mutex_st {
 	__pthread_spin_t ptm_errorcheck;
 #ifdef __CPU_SIMPLE_LOCK_PAD
 	uint8_t		ptm_pad1[3];
-#ifdef __cplusplus
-#define _PTHREAD_MUTEX_PAD(a)	{ 0, 0, 0 },
-#else
+#if (__STDC_VERSION__ - 0) >= 199901L
 #define _PTHREAD_MUTEX_PAD(a)	.a = { 0, 0, 0 },
+#else
+#define _PTHREAD_MUTEX_PAD(a)	{ 0, 0, 0 },
 #endif
 #else
 #define _PTHREAD_MUTEX_PAD(a)
@@ -138,12 +138,12 @@ struct	__pthread_mutex_st {
 #define	_PT_MUTEX_MAGIC	0x0003
 #define	_PT_MUTEX_DEAD	0xDEAD0003
 
-#ifdef __cplusplus
-#define _PTHREAD_MUTEX_INI(a, b) b
-#define _PTHREAD_MUTEX_UNI(a) { 0 }
-#else
+#if (__STDC_VERSION__ - 0) >= 199901L
 #define _PTHREAD_MUTEX_INI(a, b) .a = b
 #define _PTHREAD_MUTEX_UNI(a) .a = 0
+#else
+#define _PTHREAD_MUTEX_INI(a, b) b
+#define _PTHREAD_MUTEX_UNI(a) { 0 }
 #endif
 
 #define _PTHREAD_MUTEX_INITIALIZER {	\



CVS commit: src/usr.sbin/iostat

2017-09-09 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Sat Sep  9 23:51:58 UTC 2017

Modified Files:
src/usr.sbin/iostat: iostat.c

Log Message:
two minor fixes for -x and -y mode:
- the header is only 1 line not 2, account for this when calculating
  when to display the next header.
- when ndrives > 1, don't display the header every time, but only when
  the previous one disappears.

now i don't feel the need to run "iostat -x wd0 1 & iostat -c wd1 1"
to get less repeated header output on my display.


To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.66 src/usr.sbin/iostat/iostat.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/iostat/iostat.c
diff -u src/usr.sbin/iostat/iostat.c:1.65 src/usr.sbin/iostat/iostat.c:1.66
--- src/usr.sbin/iostat/iostat.c:1.65	Tue Jul  4 21:19:33 2017
+++ src/usr.sbin/iostat/iostat.c	Sat Sep  9 23:51:58 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: iostat.c,v 1.65 2017/07/04 21:19:33 mlelstv Exp $	*/
+/*	$NetBSD: iostat.c,v 1.66 2017/09/09 23:51:58 mrg Exp $	*/
 
 /*
  * Copyright (c) 1996 John M. Vinopal
@@ -71,7 +71,7 @@ __COPYRIGHT("@(#) Copyright (c) 1986, 19
 #if 0
 static char sccsid[] = "@(#)iostat.c	8.3 (Berkeley) 4/28/95";
 #else
-__RCSID("$NetBSD: iostat.c,v 1.65 2017/07/04 21:19:33 mlelstv Exp $");
+__RCSID("$NetBSD: iostat.c,v 1.66 2017/09/09 23:51:58 mrg Exp $");
 #endif
 #endif /* not lint */
 
@@ -129,7 +129,7 @@ static int selectdrives(int, char *[]);
 int
 main(int argc, char *argv[])
 {
-	int ch, hdrcnt, ndrives, lines;
+	int ch, hdrcnt, hdroffset, ndrives, lines;
 	struct timespec	tv;
 	struct ttysize ts;
 
@@ -210,10 +210,13 @@ main(int argc, char *argv[])
 		if (todo == 0)
 			errx(1, "no drives");
 	}
-	if (ISSET(todo, SHOW_STATS_X | SHOW_STATS_Y))
+	if (ISSET(todo, SHOW_STATS_X | SHOW_STATS_Y)) {
 		lines = ndrives;
-	else
+		hdroffset = 3;
+	} else {
 		lines = 1;
+		hdroffset = 4;
+	}
 
 	tv.tv_sec = interval;
 	tv.tv_nsec = 0;
@@ -222,10 +225,10 @@ main(int argc, char *argv[])
 	(void)signal(SIGCONT, sig_header);
 
 	for (hdrcnt = 1;;) {
-		if (do_header || lines > 1 || (hdrcnt -= lines) <= 0) {
+		if (do_header || (hdrcnt -= lines) <= 0) {
 			do_header = 0;
 			header();
-			hdrcnt = winlines - 4;
+			hdrcnt = winlines - hdroffset;
 		}
 
 		if (!ISSET(todo, SHOW_TOTALS)) {



CVS commit: src/lib/libc/gen

2017-09-09 Thread Robert Elz
Module Name:src
Committed By:   kre
Date:   Sun Sep 10 00:49:40 UTC 2017

Modified Files:
src/lib/libc/gen: devname.3

Log Message:
Fix a typo, and some wording improvements.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/lib/libc/gen/devname.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/gen/devname.3
diff -u src/lib/libc/gen/devname.3:1.14 src/lib/libc/gen/devname.3:1.15
--- src/lib/libc/gen/devname.3:1.14	Sat Sep  9 18:45:04 2017
+++ src/lib/libc/gen/devname.3	Sun Sep 10 00:49:40 2017
@@ -1,4 +1,4 @@
-.\"	$NetBSD: devname.3,v 1.14 2017/09/09 18:45:04 kamil Exp $
+.\"	$NetBSD: devname.3,v 1.15 2017/09/10 00:49:40 kre Exp $
 .\"
 .\" Copyright (c) 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -48,8 +48,8 @@
 .Sh DESCRIPTION
 The
 .Fn devname
-function returns a pointer to the static buffer with the name of the block or character
-device in
+function returns a pointer to the static buffer with the name of the
+block or character device in
 .Dq Pa /dev
 with a device number of
 .Fa dev ,
@@ -63,7 +63,7 @@ is returned.
 .Pp
 The
 .Fn devname_r
-function is a reentrand and thread-safe version of
+function is a reentrant and thread-safe version of
 .Fn devname .
 This function returns the device name by copying it into the
 .Fa path
@@ -88,10 +88,15 @@ will return
 .Pp
 If successful,
 .Fn devname_r
-places a nul-terminated string containing the name of the device and returns 0.
-If error occurs
+places a nul-terminated string containing the name of the device in
+the buffer pointed to by
+.Ar path
+and returns 0.
+If an error occurs
 .Fn devname_r
-will return error number indicating what went wrong.
+will return an error number from
+.In sys/errno.h
+indicating what went wrong.
 .Sh ERRORS
 The
 .Fn devname_r