svn commit: r307896 - in user/alc/PQ_LAUNDRY: contrib/bsnmp/lib lib/libc/powerpc/gen lib/libnetbsd lib/libnetbsd/sys release/tools share/mk sys/amd64/amd64 sys/arm/allwinner sys/arm/conf sys/boot/e...

Alan Cox alc at FreeBSD.org
Tue Oct 25 03:34:29 UTC 2016


Author: alc
Date: Tue Oct 25 03:34:24 2016
New Revision: 307896
URL: https://svnweb.freebsd.org/changeset/base/307896

Log:
  MFH r307894

Added:
  user/alc/PQ_LAUNDRY/sys/boot/forth/efi.4th
     - copied unchanged from r307894, head/sys/boot/forth/efi.4th
Deleted:
  user/alc/PQ_LAUNDRY/sys/boot/ficl/efi.c
Modified:
  user/alc/PQ_LAUNDRY/contrib/bsnmp/lib/snmp.c
  user/alc/PQ_LAUNDRY/lib/libc/powerpc/gen/Makefile.inc
  user/alc/PQ_LAUNDRY/lib/libnetbsd/sys/cdefs.h
  user/alc/PQ_LAUNDRY/lib/libnetbsd/util.c
  user/alc/PQ_LAUNDRY/release/tools/arm.subr
  user/alc/PQ_LAUNDRY/share/mk/bsd.compiler.mk
  user/alc/PQ_LAUNDRY/sys/amd64/amd64/trap.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_rsb.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_thermal.c
  user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner
  user/alc/PQ_LAUNDRY/sys/arm/conf/GENERIC
  user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/Makefile
  user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/env.c
  user/alc/PQ_LAUNDRY/sys/boot/efi/loader/main.c
  user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm/olimex-a20-som-evb.dts
  user/alc/PQ_LAUNDRY/sys/boot/ficl/loader.c
  user/alc/PQ_LAUNDRY/sys/boot/forth/Makefile.inc
  user/alc/PQ_LAUNDRY/sys/boot/forth/loader.4th
  user/alc/PQ_LAUNDRY/sys/contrib/rdma/krping/krping.c
  user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_sge.c
  user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  user/alc/PQ_LAUNDRY/sys/i386/i386/trap.c
  user/alc/PQ_LAUNDRY/sys/kern/subr_prf.c
  user/alc/PQ_LAUNDRY/sys/netinet/ip_output.c
  user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_tables.c
  user/alc/PQ_LAUNDRY/sys/x86/include/x86_var.h
  user/alc/PQ_LAUNDRY/sys/x86/x86/cpu_machdep.c
  user/alc/PQ_LAUNDRY/sys/x86/x86/mp_x86.c
  user/alc/PQ_LAUNDRY/usr.sbin/mountd/mountd.8
  user/alc/PQ_LAUNDRY/usr.sbin/mountd/mountd.c
Directory Properties:
  user/alc/PQ_LAUNDRY/   (props changed)

Modified: user/alc/PQ_LAUNDRY/contrib/bsnmp/lib/snmp.c
==============================================================================
--- user/alc/PQ_LAUNDRY/contrib/bsnmp/lib/snmp.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/contrib/bsnmp/lib/snmp.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -288,7 +288,7 @@ parse_secparams(struct asn_buf *b, struc
 	memset(buf, 0, 256);
 	tb.asn_ptr = buf;
 	tb.asn_len = 256;
-	u_int len;
+	u_int len = 256;
 
 	if (asn_get_octetstring(b, buf, &len) != ASN_ERR_OK) {
 		snmp_error("cannot parse usm header");

Modified: user/alc/PQ_LAUNDRY/lib/libc/powerpc/gen/Makefile.inc
==============================================================================
--- user/alc/PQ_LAUNDRY/lib/libc/powerpc/gen/Makefile.inc	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/lib/libc/powerpc/gen/Makefile.inc	Tue Oct 25 03:34:24 2016	(r307896)
@@ -1,6 +1,6 @@
 # $FreeBSD$
 
-.include "${LIBC_SRC}/powerpc/gen/Makefile.common"
+.include "${LIBC_SRCTOP}/powerpc/gen/Makefile.common"
 
 SRCS += fabs.S flt_rounds.c fpgetmask.c fpgetround.c \
 	fpgetsticky.c fpsetmask.c fpsetround.c \

Modified: user/alc/PQ_LAUNDRY/lib/libnetbsd/sys/cdefs.h
==============================================================================
--- user/alc/PQ_LAUNDRY/lib/libnetbsd/sys/cdefs.h	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/lib/libnetbsd/sys/cdefs.h	Tue Oct 25 03:34:24 2016	(r307896)
@@ -35,11 +35,13 @@
 
 #include_next <sys/cdefs.h>
 
+#ifndef __dead
 #ifdef __dead2
 #define __dead __dead2
 #else
 #define __dead
 #endif
+#endif /* !__dead */
 
 /*
  * The __CONCAT macro is used to concatenate parts of symbol names, e.g.

Modified: user/alc/PQ_LAUNDRY/lib/libnetbsd/util.c
==============================================================================
--- user/alc/PQ_LAUNDRY/lib/libnetbsd/util.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/lib/libnetbsd/util.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -36,7 +36,8 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#include <util.h>
+
+#include "util.h"
 
 char *
 flags_to_string(u_long flags, const char *def)

Modified: user/alc/PQ_LAUNDRY/release/tools/arm.subr
==============================================================================
--- user/alc/PQ_LAUNDRY/release/tools/arm.subr	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/release/tools/arm.subr	Tue Oct 25 03:34:24 2016	(r307896)
@@ -88,7 +88,6 @@ arm_create_user() {
 		-c 'FreeBSD User' -d '/home/freebsd' -s '/bin/csh'
 	chroot ${CHROOTDIR} /usr/sbin/pw -R ${DESTDIR} \
 		usermod root -w yes
-	chroot ${CHROOTDIR} ln -s /home ${DESTDIR}/usr/home
 
 	return 0
 }

Modified: user/alc/PQ_LAUNDRY/share/mk/bsd.compiler.mk
==============================================================================
--- user/alc/PQ_LAUNDRY/share/mk/bsd.compiler.mk	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/share/mk/bsd.compiler.mk	Tue Oct 25 03:34:24 2016	(r307896)
@@ -147,7 +147,7 @@ ${X_}COMPILER_TYPE:=	clang
 ${X_}COMPILER_TYPE:=	gcc
 . elif ${_v:M\(GCC\)}
 ${X_}COMPILER_TYPE:=	gcc
-. elif ${_v:Mclang}
+. elif ${_v:Mclang} || ${_v:M(clang-*.*.*)}
 ${X_}COMPILER_TYPE:=	clang
 . else
 .error Unable to determine compiler type for ${cc}=${${cc}}.  Consider setting ${X_}COMPILER_TYPE.

Modified: user/alc/PQ_LAUNDRY/sys/amd64/amd64/trap.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/amd64/amd64/trap.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/amd64/amd64/trap.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -144,9 +144,6 @@ static char *trap_msg[] = {
 	"DTrace pid return trap",		/* 32 T_DTRACE_RET */
 };
 
-static int panic_on_nmi = 1;
-SYSCTL_INT(_machdep, OID_AUTO, panic_on_nmi, CTLFLAG_RWTUN,
-	&panic_on_nmi, 0, "Panic on NMI");
 static int prot_fault_translation;
 SYSCTL_INT(_machdep, OID_AUTO, prot_fault_translation, CTLFLAG_RWTUN,
     &prot_fault_translation, 0,
@@ -372,7 +369,7 @@ trap(struct trapframe *frame)
 
 #ifdef DEV_ISA
 		case T_NMI:
-			nmi_handle_intr(type, frame, true);
+			nmi_handle_intr(type, frame);
 			break;
 #endif /* DEV_ISA */
 
@@ -544,10 +541,8 @@ trap(struct trapframe *frame)
 
 #ifdef DEV_ISA
 		case T_NMI:
-			if (nmi_handle_intr(type, frame, false) ||
-			    !panic_on_nmi)
-				goto out;
-			/* FALLTHROUGH */
+			nmi_handle_intr(type, frame);
+			goto out;
 #endif /* DEV_ISA */
 		}
 

Modified: user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_rsb.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_rsb.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_rsb.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -27,7 +27,7 @@
  */
 
 /*
- * Allwinner RSB (Reduced Serial Bus)
+ * Allwinner RSB (Reduced Serial Bus) and P2WI (Push-Pull Two Wire Interface)
  */
 
 #include <sys/cdefs.h>
@@ -92,8 +92,12 @@ __FBSDID("$FreeBSD$");
 #define	RSB_ADDR_PMIC_SECONDARY	0x745
 #define	RSB_ADDR_PERIPH_IC	0xe89
 
+#define	A31_P2WI	1
+#define	A23_RSB		2
+
 static struct ofw_compat_data compat_data[] = {
-	{ "allwinner,sun8i-a23-rsb",		1 },
+	{ "allwinner,sun6i-a31-p2wi",		A31_P2WI },
+	{ "allwinner,sun8i-a23-rsb",		A23_RSB },
 	{ NULL,					0 }
 };
 
@@ -131,6 +135,7 @@ struct rsb_softc {
 	int		busy;
 	uint32_t	status;
 	uint16_t	cur_addr;
+	int		type;
 
 	struct iic_msg	*msg;
 };
@@ -270,8 +275,8 @@ rsb_transfer(device_t dev, struct iic_ms
 	sc = device_get_softc(dev);
 
 	/*
-	 * RSB is not really an I2C or SMBus controller, so there are some
-	 * restrictions imposed by the driver.
+	 * P2WI and RSB are not really I2C or SMBus controllers, so there are
+	 * some restrictions imposed by the driver.
 	 *
 	 * Transfers must contain exactly two messages. The first is always
 	 * a write, containing a single data byte offset. Data will either
@@ -284,34 +289,36 @@ rsb_transfer(device_t dev, struct iic_ms
 	    msgs[0].len != 1 || msgs[1].len > RSB_MAXLEN)
 		return (EINVAL);
 
-	/* The controller can read or write 1, 2, or 4 bytes at a time. */
-	if ((msgs[1].flags & IIC_M_RD) != 0) {
-		switch (msgs[1].len) {
-		case 1:
-			cmd = CMD_RD8;
-			break;
-		case 2:
-			cmd = CMD_RD16;
-			break;
-		case 4:
-			cmd = CMD_RD32;
-			break;
-		default:
-			return (EINVAL);
-		}
-	} else {
-		switch (msgs[1].len) {
-		case 1:
-			cmd = CMD_WR8;
-			break;
-		case 2:
-			cmd = CMD_WR16;
-			break;
-		case 4:	
-			cmd = CMD_WR32;
-			break;
-		default:
-			return (EINVAL);
+	/* The RSB controller can read or write 1, 2, or 4 bytes at a time. */
+	if (sc->type == A23_RSB) {
+		if ((msgs[1].flags & IIC_M_RD) != 0) {
+			switch (msgs[1].len) {
+			case 1:
+				cmd = CMD_RD8;
+				break;
+			case 2:
+				cmd = CMD_RD16;
+				break;
+			case 4:
+				cmd = CMD_RD32;
+				break;
+			default:
+				return (EINVAL);
+			}
+		} else {
+			switch (msgs[1].len) {
+			case 1:
+				cmd = CMD_WR8;
+				break;
+			case 2:
+				cmd = CMD_WR16;
+				break;
+			case 4:
+				cmd = CMD_WR32;
+				break;
+			default:
+				return (EINVAL);
+			}
 		}
 	}
 
@@ -322,13 +329,15 @@ rsb_transfer(device_t dev, struct iic_ms
 	sc->status = 0;
 
 	/* Select current run-time address if necessary */
-	device_addr = msgs[0].slave >> 1;
-	if (sc->cur_addr != device_addr) {
-		error = rsb_set_rta(dev, device_addr);
-		if (error != 0)
-			goto done;
-		sc->cur_addr = device_addr;
-		sc->status = 0;
+	if (sc->type == A23_RSB) {
+		device_addr = msgs[0].slave >> 1;
+		if (sc->cur_addr != device_addr) {
+			error = rsb_set_rta(dev, device_addr);
+			if (error != 0)
+				goto done;
+			sc->cur_addr = device_addr;
+			sc->status = 0;
+		}
 	}
 
 	/* Clear interrupt status */
@@ -344,8 +353,9 @@ rsb_transfer(device_t dev, struct iic_ms
 		RSB_WRITE(sc, RSB_DATA0, data[0]);
 	}
 
-	/* Set command type */
-	RSB_WRITE(sc, RSB_CMD, cmd);
+	/* Set command type for RSB */
+	if (sc->type == A23_RSB)
+		RSB_WRITE(sc, RSB_CMD, cmd);
 
 	/* Program data length register and transfer direction */
 	dlen = msgs[0].len - 1;
@@ -379,10 +389,17 @@ rsb_probe(device_t dev)
 	if (!ofw_bus_status_okay(dev))
 		return (ENXIO);
 
-	if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
+	switch (ofw_bus_search_compatible(dev, compat_data)->ocd_data) {
+	case A23_RSB:
+		device_set_desc(dev, "Allwinner RSB");
+		break;
+	case A31_P2WI:
+		device_set_desc(dev, "Allwinner P2WI");
+		break;
+	default:
 		return (ENXIO);
+	}
 
-	device_set_desc(dev, "Allwinner RSB");
 	return (BUS_PROBE_DEFAULT);
 }
 
@@ -395,6 +412,8 @@ rsb_attach(device_t dev)
 	sc = device_get_softc(dev);
 	mtx_init(&sc->mtx, device_get_nameunit(dev), "rsb", MTX_DEF);
 
+	sc->type = ofw_bus_search_compatible(dev, compat_data)->ocd_data;
+
 	if (clk_get_by_ofw_index(dev, 0, 0, &sc->clk) == 0) {
 		error = clk_enable(sc->clk);
 		if (error != 0) {

Modified: user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_thermal.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_thermal.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_thermal.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/reboot.h>
 #include <sys/module.h>
 #include <sys/cpu.h>
+#include <sys/taskqueue.h>
 #include <machine/bus.h>
 
 #include <dev/ofw/ofw_bus.h>
@@ -249,6 +250,7 @@ struct aw_thermal_softc {
 	struct resource			*res[2];
 	struct aw_thermal_config	*conf;
 
+	struct task			cf_task;
 	int				throttle;
 	int				min_freq;
 	struct cf_level			levels[MAX_CF_LEVELS];
@@ -390,6 +392,16 @@ aw_thermal_throttle(struct aw_thermal_so
 }
 
 static void
+aw_thermal_cf_task(void *arg, int pending)
+{
+	struct aw_thermal_softc *sc;
+
+	sc = arg;
+
+	aw_thermal_throttle(sc, 1);
+}
+
+static void
 aw_thermal_cf_pre_change(void *arg, const struct cf_level *level, int *status)
 {
 	struct aw_thermal_softc *sc;
@@ -430,7 +442,7 @@ aw_thermal_intr(void *arg)
 	}
 
 	if ((ints & ALARM_INT_ALL) != 0)
-		aw_thermal_throttle(sc, 1);
+		taskqueue_enqueue(taskqueue_thread, &sc->cf_task);
 }
 
 static int
@@ -461,6 +473,7 @@ aw_thermal_attach(device_t dev)
 	ih = NULL;
 
 	sc->conf = THS_CONF(dev);
+	TASK_INIT(&sc->cf_task, 0, aw_thermal_cf_task, sc);
 
 	if (bus_alloc_resources(dev, aw_thermal_spec, sc->res) != 0) {
 		device_printf(dev, "cannot allocate resources for device\n");

Modified: user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/arm/allwinner/files.allwinner	Tue Oct 25 03:34:24 2016	(r307896)
@@ -12,7 +12,7 @@ arm/allwinner/a10_mmc.c			optional	mmc
 arm/allwinner/a10_sramc.c		standard
 arm/allwinner/aw_nmi.c			optional	intrng
 arm/allwinner/aw_if_dwc.c		optional	dwc
-arm/allwinner/aw_rsb.c			optional	rsb
+arm/allwinner/aw_rsb.c			optional	rsb | p2wi
 arm/allwinner/aw_rtc.c			standard
 arm/allwinner/aw_ts.c			standard
 arm/allwinner/aw_wdog.c			standard

Modified: user/alc/PQ_LAUNDRY/sys/arm/conf/GENERIC
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/arm/conf/GENERIC	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/arm/conf/GENERIC	Tue Oct 25 03:34:24 2016	(r307896)
@@ -106,11 +106,13 @@ device		psci
 device		iicbus
 device		iic
 device		twsi
-device		rsb
+device		rsb			# Allwinner Reduced Serial Bus
+device		p2wi			# Allwinner Push-Pull Two Wire
 device		axp209			# AXP209 Power Management Unit
 device		axp81x			# AXP813/818 Power Management Unit
 device		bcm2835_bsc
 device		icee
+device		sy8106a			# SY8106A Buck Regulator
 
 # GPIO
 device		gpio

Modified: user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/Makefile
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/Makefile	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/Makefile	Tue Oct 25 03:34:24 2016	(r307896)
@@ -26,6 +26,7 @@ CFLAGS+=	-msoft-float -mgeneral-regs-onl
 .if ${MACHINE_ARCH} == "amd64"
 CFLAGS+= -fPIC -mno-red-zone
 .endif
+CFLAGS+= -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/${MACHINE}
 CFLAGS+= -I${.CURDIR}/../include
 CFLAGS+= -I${.CURDIR}/../include/${MACHINE}
 CFLAGS+= -I${.CURDIR}/../../../../lib/libstand

Modified: user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/env.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/env.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/boot/efi/libefi/env.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -26,8 +26,15 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include <stand.h>
+#include <string.h>
 #include <efi.h>
 #include <efilib.h>
+#include <uuid.h>
+#include "bootstrap.h"
+#include "ficl.h"
+
+int efi_variable_support = 1;
 
 /*
  * Simple wrappers to the underlying UEFI functions.
@@ -53,3 +60,175 @@ efi_set_variable(CHAR16 *variable_name, 
 {
 	return RS->SetVariable(variable_name, vendor_guid, attributes, data_size, data);
 }
+
+/*
+ *		FreeBSD's loader interaction words and extras
+ *
+ * 		efi-setenv  ( value n name n guid n attr -- 0 | -1)
+ * 		efi-getenv  ( guid n addr n -- addr' n' | -1 )
+ * 		efi-unsetenv ( name n guid n'' -- )
+ */
+
+/*
+ * efi-setenv
+ * 		efi-setenv  ( value n name n guid n attr -- 0 | -1)
+ *
+ * Set environment variables using the SetVariable EFI runtime service.
+ *
+ * Value and guid are passed through in binary form (so guid needs to be
+ * converted to binary form from its string form). Name is converted from
+ * ASCII to CHAR16. Since ficl doesn't have support for internationalization,
+ * there's no native CHAR16 interface provided.
+ *
+ * attr is an int in the bitmask of the following attributes for this variable.
+ *
+ *	1	Non volatile
+ *	2	Boot service access
+ *	4	Run time access
+ * (corresponding to the same bits in the UEFI spec).
+ */
+void
+ficlEfiSetenv(FICL_VM *pVM)
+{
+#ifndef TESTMAIN
+	char	*value = NULL, *guid = NULL;
+	CHAR16	*name = NULL;
+	int	i;
+#endif
+	char	*namep, *valuep, *guidp;
+	int	names, values, guids, attr;
+	int	status;
+	uuid_t	u;
+	uint32_t ustatus;
+
+#if FICL_ROBUST > 1
+	vmCheckStack(pVM, 6, 0);
+#endif
+	attr = stackPopINT(pVM->pStack);
+	guids = stackPopINT(pVM->pStack);
+	guidp = (char*)stackPopPtr(pVM->pStack);
+	names = stackPopINT(pVM->pStack);
+	namep = (char*)stackPopPtr(pVM->pStack);
+	values = stackPopINT(pVM->pStack);
+	valuep = (char*)stackPopPtr(pVM->pStack);
+
+#ifndef TESTMAIN
+	guid = (char*)ficlMalloc(guids);
+	if (guid != NULL)
+		vmThrowErr(pVM, "Error: out of memory");
+	memcpy(guid, guidp, guids);
+	uuid_from_string(guid, &u, &ustatus);
+	if (ustatus != uuid_s_ok) {
+		stackPushINT(pVM->pStack, -1);
+		goto out;
+	}
+
+	name = (CHAR16 *)ficlMalloc((names + 1) * sizeof(CHAR16));
+	if (name == NULL)
+		vmThrowErr(pVM, "Error: out of memory");
+	for (i = 0; i < names; i++)
+		name[i] = namep[i];
+	name[names] = (CHAR16)0;
+
+	value = (char*)ficlMalloc(values + 1);
+	if (value != NULL)
+		vmThrowErr(pVM, "Error: out of memory");
+	memcpy(value, valuep, values);
+
+	status = efi_set_variable(name, (EFI_GUID *)&u, attr, values, value);
+	if (status == EFI_SUCCESS)
+		stackPushINT(pVM->pStack, 0);
+	else
+		stackPushINT(pVM->pStack, -1);
+out:
+	ficlFree(name);
+	ficlFree(value);
+	ficlFree(guid);
+#endif
+
+	return;
+}
+
+void
+ficlEfiGetenv(FICL_VM *pVM)
+{
+#ifndef TESTMAIN
+	char	*name, *value;
+#endif
+	char	*namep;
+	int	names;
+
+#if FICL_ROBUST > 1
+	vmCheckStack(pVM, 2, 2);
+#endif
+	names = stackPopINT(pVM->pStack);
+	namep = (char*) stackPopPtr(pVM->pStack);
+
+#ifndef TESTMAIN
+	name = (char*) ficlMalloc(names+1);
+	if (!name)
+		vmThrowErr(pVM, "Error: out of memory");
+	strncpy(name, namep, names);
+	name[names] = '\0';
+
+	value = getenv(name);
+	ficlFree(name);
+
+	if(value != NULL) {
+		stackPushPtr(pVM->pStack, value);
+		stackPushINT(pVM->pStack, strlen(value));
+	} else
+#endif
+		stackPushINT(pVM->pStack, -1);
+
+	return;
+}
+
+void
+ficlEfiUnsetenv(FICL_VM *pVM)
+{
+#ifndef TESTMAIN
+	char	*name;
+#endif
+	char	*namep;
+	int	names;
+
+#if FICL_ROBUST > 1
+	vmCheckStack(pVM, 2, 0);
+#endif
+	names = stackPopINT(pVM->pStack);
+	namep = (char*) stackPopPtr(pVM->pStack);
+
+#ifndef TESTMAIN
+	name = (char*) ficlMalloc(names+1);
+	if (!name)
+		vmThrowErr(pVM, "Error: out of memory");
+	strncpy(name, namep, names);
+	name[names] = '\0';
+
+	unsetenv(name);
+	ficlFree(name);
+#endif
+
+	return;
+}
+
+/**************************************************************************
+** Add FreeBSD UEFI platform extensions into the system dictionary
+**************************************************************************/
+void ficlEfiCompilePlatform(FICL_SYSTEM *pSys)
+{
+    FICL_DICT *dp = pSys->dp;
+    assert (dp);
+
+    dictAppendWord(dp, "efi-setenv",    ficlEfiSetenv,	    FW_DEFAULT);
+    dictAppendWord(dp, "efi-getenv",    ficlEfiGetenv,	    FW_DEFAULT);
+    dictAppendWord(dp, "efi-unsetenv",  ficlEfiUnsetenv,    FW_DEFAULT);
+
+    /* Would like to export the EFI version, but this will do for now */
+    ficlSetEnv(pSys, "efi-boot", 1);
+
+    return;
+}
+
+FICL_COMPILE_SET(ficlEfiCompilePlatform);

Modified: user/alc/PQ_LAUNDRY/sys/boot/efi/loader/main.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/boot/efi/loader/main.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/boot/efi/loader/main.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -55,6 +55,10 @@ extern char bootprog_rev[];
 extern char bootprog_date[];
 extern char bootprog_maker[];
 
+/* Force a reference to bring in EFI support from the library */
+extern int efi_variable_support;
+int *dummy1 = &efi_variable_support;
+
 struct arch_switch archsw;	/* MI/MD interface boundary */
 
 EFI_GUID acpi = ACPI_TABLE_GUID;
@@ -906,8 +910,8 @@ command_efi_show(int argc, char *argv[])
 		return (rv);
 	}
 
-	if (argc != 0) {
-		printf("Too many args\n");
+	if (argc > 0) {
+		printf("Too many args %d\n", argc);
 		pager_close();
 		return (CMD_ERROR);
 	}

Modified: user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm/olimex-a20-som-evb.dts
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm/olimex-a20-som-evb.dts	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/boot/fdt/dts/arm/olimex-a20-som-evb.dts	Tue Oct 25 03:34:24 2016	(r307896)
@@ -41,3 +41,7 @@
 		};
 	};
 };
+
+&cpu0 {
+	cpu-supply = <&reg_dcdc2>;
+};

Modified: user/alc/PQ_LAUNDRY/sys/boot/ficl/loader.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/boot/ficl/loader.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/boot/ficl/loader.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -824,9 +824,8 @@ void ficlCompilePlatform(FICL_SYSTEM *pS
     dictAppendWord(dp, "uuid-from-string", ficlUuidFromString, FW_DEFAULT);
     dictAppendWord(dp, "uuid-to-string", ficlUuidToString, FW_DEFAULT);
 
-    SET_FOREACH(fnpp, Xficl_compile_set) {
+    SET_FOREACH(fnpp, Xficl_compile_set)
 	(*fnpp)(pSys);
-    }
 
 #if defined(PC98)
     ficlSetEnv(pSys, "arch-pc98",         FICL_TRUE);

Modified: user/alc/PQ_LAUNDRY/sys/boot/forth/Makefile.inc
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/boot/forth/Makefile.inc	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/boot/forth/Makefile.inc	Tue Oct 25 03:34:24 2016	(r307896)
@@ -6,6 +6,7 @@ FILES+=	brand-fbsd.4th
 FILES+=	check-password.4th
 FILES+=	color.4th
 FILES+=	delay.4th
+FILES+=	efi.4th
 FILES+=	frames.4th
 FILES+=	loader.4th
 FILES+=	loader.conf

Copied: user/alc/PQ_LAUNDRY/sys/boot/forth/efi.4th (from r307894, head/sys/boot/forth/efi.4th)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/alc/PQ_LAUNDRY/sys/boot/forth/efi.4th	Tue Oct 25 03:34:24 2016	(r307896, copy of r307894, head/sys/boot/forth/efi.4th)
@@ -0,0 +1,30 @@
+\ Copyright (c) 2016 Netflix, Inc
+\ All rights reserved.
+\
+\ Redistribution and use in source and binary forms, with or without
+\ modification, are permitted provided that the following conditions
+\ are met:
+\ 1. Redistributions of source code must retain the above copyright
+\    notice, this list of conditions and the following disclaimer.
+\ 2. Redistributions in binary form must reproduce the above copyright
+\    notice, this list of conditions and the following disclaimer in the
+\    documentation and/or other materials provided with the distribution.
+\
+\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+\ ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+\ SUCH DAMAGE.
+\
+\ $FreeBSD$
+
+only forth definitions
+
+\ Place holder for more functions
+.( EFI boot environment) cr

Modified: user/alc/PQ_LAUNDRY/sys/boot/forth/loader.4th
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/boot/forth/loader.4th	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/boot/forth/loader.4th	Tue Oct 25 03:34:24 2016	(r307896)
@@ -46,6 +46,9 @@ include /boot/support.4th
 include /boot/color.4th
 include /boot/delay.4th
 include /boot/check-password.4th
+s" efi-boot" environment? [if] [if]
+	include /boot/efi.4th
+[then] [then]
 
 only forth definitions
 

Modified: user/alc/PQ_LAUNDRY/sys/contrib/rdma/krping/krping.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/contrib/rdma/krping/krping.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/contrib/rdma/krping/krping.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -548,11 +548,11 @@ static int krping_setup_buffers(struct k
 
 	DEBUG_LOG(cb, "krping_setup_buffers called on cb %p\n", cb);
 
-	cb->recv_dma_addr = dma_map_single(cb->pd->device->dma_device, 
+	cb->recv_dma_addr = ib_dma_map_single(cb->pd->device, 
 				   &cb->recv_buf, 
 				   sizeof(cb->recv_buf), DMA_BIDIRECTIONAL);
 	pci_unmap_addr_set(cb, recv_mapping, cb->recv_dma_addr);
-	cb->send_dma_addr = dma_map_single(cb->pd->device->dma_device, 
+	cb->send_dma_addr = ib_dma_map_single(cb->pd->device, 
 					   &cb->send_buf, sizeof(cb->send_buf),
 					   DMA_BIDIRECTIONAL);
 	pci_unmap_addr_set(cb, send_mapping, cb->send_dma_addr);
@@ -606,7 +606,7 @@ static int krping_setup_buffers(struct k
 		goto bail;
 	}
 
-	cb->rdma_dma_addr = dma_map_single(cb->pd->device->dma_device, 
+	cb->rdma_dma_addr = ib_dma_map_single(cb->pd->device, 
 			       cb->rdma_buf, cb->size, 
 			       DMA_BIDIRECTIONAL);
 	pci_unmap_addr_set(cb, rdma_mapping, cb->rdma_dma_addr);
@@ -676,7 +676,7 @@ static int krping_setup_buffers(struct k
 			goto bail;
 		}
 
-		cb->start_dma_addr = dma_map_single(cb->pd->device->dma_device, 
+		cb->start_dma_addr = ib_dma_map_single(cb->pd->device, 
 						   cb->start_buf, cb->size, 
 						   DMA_BIDIRECTIONAL);
 		pci_unmap_addr_set(cb, start_mapping, cb->start_dma_addr);
@@ -1707,7 +1707,7 @@ static void krping_fr_test5(struct krpin
 			goto err2;
 		}
 		DEBUG_LOG(cb, "%s buf[%u] %p\n", __func__, scnt, buf[scnt]);
-		dma_addr[scnt] = dma_map_single(cb->pd->device->dma_device,
+		dma_addr[scnt] = ib_dma_map_single(cb->pd->device,
 						   buf[scnt], cb->size,
 						   DMA_BIDIRECTIONAL);
 		if (dma_mapping_error(cb->pd->device->dma_device,
@@ -2032,7 +2032,7 @@ static void krping_fr_test6(struct krpin
 			goto err2;
 		}
 		DEBUG_LOG(cb, "%s buf[%u] %p\n", __func__, scnt, buf[scnt]);
-		dma_addr[scnt] = dma_map_single(cb->pd->device->dma_device,
+		dma_addr[scnt] = ib_dma_map_single(cb->pd->device,
 						   buf[scnt], cb->size,
 						   DMA_BIDIRECTIONAL);
 		if (dma_mapping_error(cb->pd->device->dma_device,

Modified: user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_sge.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_sge.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_sge.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -2110,24 +2110,6 @@ m_advance(struct mbuf **pm, int *poffset
 	return ((void *)p);
 }
 
-static inline int
-same_paddr(char *a, char *b)
-{
-
-	if (a == b)
-		return (1);
-	else if (a != NULL && b != NULL) {
-		vm_offset_t x = (vm_offset_t)a;
-		vm_offset_t y = (vm_offset_t)b;
-
-		if ((x & PAGE_MASK) == (y & PAGE_MASK) &&
-		    pmap_kextract(x) == pmap_kextract(y))
-			return (1);
-	}
-
-	return (0);
-}
-
 /*
  * Can deal with empty mbufs in the chain that have m_len = 0, but the chain
  * must have at least one mbuf that's not empty.
@@ -2135,24 +2117,25 @@ same_paddr(char *a, char *b)
 static inline int
 count_mbuf_nsegs(struct mbuf *m)
 {
-	char *prev_end, *start;
+	vm_paddr_t lastb, next;
+	vm_offset_t va;
 	int len, nsegs;
 
 	MPASS(m != NULL);
 
 	nsegs = 0;
-	prev_end = NULL;
+	lastb = 0;
 	for (; m; m = m->m_next) {
 
 		len = m->m_len;
 		if (__predict_false(len == 0))
 			continue;
-		start = mtod(m, char *);
-
-		nsegs += sglist_count(start, len);
-		if (same_paddr(prev_end, start))
+		va = mtod(m, vm_offset_t);
+		next = pmap_kextract(va);
+		nsegs += sglist_count(m->m_data, len);
+		if (lastb + 1 == next)
 			nsegs--;
-		prev_end = start + len;
+		lastb = pmap_kextract(va + len - 1);
 	}
 
 	MPASS(nsegs > 0);

Modified: user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -789,6 +789,7 @@ netvsc_attach(device_t dev)
 	 * Setup the ifnet for this interface.
 	 */
 
+	ifp->if_baudrate = IF_Gbps(10);
 	ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
 	ifp->if_ioctl = hn_ioctl;
 	ifp->if_init = hn_init;

Modified: user/alc/PQ_LAUNDRY/sys/i386/i386/trap.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/i386/i386/trap.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/i386/i386/trap.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -158,14 +158,6 @@ static char *trap_msg[] = {
 int has_f00f_bug = 0;		/* Initialized so that it can be patched. */
 #endif
 
-#ifdef KDB
-static int kdb_on_nmi = 1;
-SYSCTL_INT(_machdep, OID_AUTO, kdb_on_nmi, CTLFLAG_RWTUN,
-	&kdb_on_nmi, 0, "Go to KDB on NMI");
-#endif
-static int panic_on_nmi = 1;
-SYSCTL_INT(_machdep, OID_AUTO, panic_on_nmi, CTLFLAG_RWTUN,
-	&panic_on_nmi, 0, "Panic on NMI");
 static int prot_fault_translation = 0;
 SYSCTL_INT(_machdep, OID_AUTO, prot_fault_translation, CTLFLAG_RW,
 	&prot_fault_translation, 0, "Select signal to deliver on protection fault");
@@ -467,7 +459,7 @@ user_trctrap_out:
 			}
 			goto userout;
 #else /* !POWERFAIL_NMI */
-			nmi_handle_intr(type, frame, true);
+			nmi_handle_intr(type, frame);
 			break;
 #endif /* POWERFAIL_NMI */
 #endif /* DEV_ISA */
@@ -716,10 +708,8 @@ kernel_trctrap:
 			}
 			goto out;
 #else /* !POWERFAIL_NMI */
-			if (nmi_handle_intr(type, frame, false) ||
-			    !panic_on_nmi)
-				goto out;
-			/* FALLTHROUGH */
+			nmi_handle_intr(type, frame);
+			goto out;
 #endif /* POWERFAIL_NMI */
 #endif /* DEV_ISA */
 		}

Modified: user/alc/PQ_LAUNDRY/sys/kern/subr_prf.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/kern/subr_prf.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/kern/subr_prf.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -72,7 +72,11 @@ __FBSDID("$FreeBSD$");
  * Note that stdarg.h and the ANSI style va_start macro is used for both
  * ANSI and traditional C compilers.
  */
+#ifdef _KERNEL
 #include <machine/stdarg.h>
+#else
+#include <stdarg.h>
+#endif
 
 #ifdef _KERNEL
 

Modified: user/alc/PQ_LAUNDRY/sys/netinet/ip_output.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/netinet/ip_output.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/netinet/ip_output.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -350,7 +350,8 @@ again:
 		have_ia_ref = 1;
 		ifp = ia->ia_ifp;
 		ip->ip_ttl = 1;
-		isbroadcast = in_ifaddr_broadcast(dst->sin_addr, ia);
+		isbroadcast = ifp->if_flags & IFF_BROADCAST ?
+		    in_ifaddr_broadcast(dst->sin_addr, ia) : 0;
 	} else if (IN_MULTICAST(ntohl(ip->ip_dst.s_addr)) &&
 	    imo != NULL && imo->imo_multicast_ifp != NULL) {
 		/*
@@ -403,8 +404,10 @@ again:
 			gw = (struct sockaddr_in *)rte->rt_gateway;
 		if (rte->rt_flags & RTF_HOST)
 			isbroadcast = (rte->rt_flags & RTF_BROADCAST);
-		else
+		else if (ifp->if_flags & IFF_BROADCAST)
 			isbroadcast = in_ifaddr_broadcast(gw->sin_addr, ia);
+		else
+			isbroadcast = 0;
 	}
 
 	/*

Modified: user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_tables.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_tables.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/ufs/ffs/ffs_tables.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -33,6 +33,7 @@
 __FBSDID("$FreeBSD$");
 
 #include <sys/param.h>
+#include <sys/types.h>
 #include <ufs/ufs/dinode.h>
 #include <ufs/ffs/fs.h>
 

Modified: user/alc/PQ_LAUNDRY/sys/x86/include/x86_var.h
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/x86/include/x86_var.h	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/x86/include/x86_var.h	Tue Oct 25 03:34:24 2016	(r307896)
@@ -108,10 +108,9 @@ bool	fix_cpuid(void);
 void	fillw(int /*u_short*/ pat, void *base, size_t cnt);
 int	is_physical_memory(vm_paddr_t addr);
 int	isa_nmi(int cd);
-bool	nmi_call_kdb(u_int cpu, u_int type, struct trapframe *frame,
-	    bool panic);
-bool	nmi_call_kdb_smp(u_int type, struct trapframe *frame, bool panic);
-int	nmi_handle_intr(u_int type, struct trapframe *frame, bool panic);
+void	nmi_call_kdb(u_int cpu, u_int type, struct trapframe *frame);
+void	nmi_call_kdb_smp(u_int type, struct trapframe *frame);
+void	nmi_handle_intr(u_int type, struct trapframe *frame);
 void	pagecopy(void *from, void *to);
 void	printcpuinfo(void);
 int	user_dbreg_trap(void);

Modified: user/alc/PQ_LAUNDRY/sys/x86/x86/cpu_machdep.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/x86/x86/cpu_machdep.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/x86/x86/cpu_machdep.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -524,6 +524,10 @@ idle_sysctl(SYSCTL_HANDLER_ARGS)
 SYSCTL_PROC(_machdep, OID_AUTO, idle, CTLTYPE_STRING | CTLFLAG_RW, 0, 0,
     idle_sysctl, "A", "currently selected idle function");
 
+static int panic_on_nmi = 1;
+SYSCTL_INT(_machdep, OID_AUTO, panic_on_nmi, CTLFLAG_RWTUN,
+    &panic_on_nmi, 0,
+    "Panic on NMI");
 int nmi_is_broadcast = 1;
 SYSCTL_INT(_machdep, OID_AUTO, nmi_is_broadcast, CTLFLAG_RWTUN,
     &nmi_is_broadcast, 0,
@@ -536,8 +540,8 @@ SYSCTL_INT(_machdep, OID_AUTO, kdb_on_nm
 #endif
 
 #ifdef DEV_ISA
-bool
-nmi_call_kdb(u_int cpu, u_int type, struct trapframe *frame, bool do_panic)
+void
+nmi_call_kdb(u_int cpu, u_int type, struct trapframe *frame)
 {
 
 	/* machine/parity/power fail/"kitchen sink" faults */
@@ -549,26 +553,25 @@ nmi_call_kdb(u_int cpu, u_int type, stru
 		if (kdb_on_nmi) {
 			printf ("NMI/cpu%d ... going to debugger\n", cpu);
 			kdb_trap(type, 0, frame);
-			return (true);
 		}
-	} else
 #endif /* KDB */
-	if (do_panic)
+	} else if (panic_on_nmi) {
 		panic("NMI indicates hardware failure");
-	return (false);
+	}
 }
 #endif
 
-int
-nmi_handle_intr(u_int type, struct trapframe *frame, bool panic)
+void
+nmi_handle_intr(u_int type, struct trapframe *frame)
 {
 
 #ifdef DEV_ISA
 #ifdef SMP
-	if (nmi_is_broadcast)
-		return (nmi_call_kdb_smp(type, frame, panic));
-	else
+	if (nmi_is_broadcast) {
+		nmi_call_kdb_smp(type, frame);
+		return;
+	}
 #endif
-		return (nmi_call_kdb(0, type, frame, panic));
+	nmi_call_kdb(0, type, frame);
 #endif
 }

Modified: user/alc/PQ_LAUNDRY/sys/x86/x86/mp_x86.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/x86/x86/mp_x86.c	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/sys/x86/x86/mp_x86.c	Tue Oct 25 03:34:24 2016	(r307896)
@@ -1216,18 +1216,17 @@ ipi_nmi_handler(void)
 #ifdef DEV_ISA
 int nmi_kdb_lock;
 
-bool
-nmi_call_kdb_smp(u_int type, struct trapframe *frame, bool do_panic)
+void
+nmi_call_kdb_smp(u_int type, struct trapframe *frame)
 {
 	int cpu;
-	bool call_post, ret;
+	bool call_post;
 
 	cpu = PCPU_GET(cpuid);
 	if (atomic_cmpset_acq_int(&nmi_kdb_lock, 0, 1)) {
-		ret = nmi_call_kdb(cpu, type, frame, do_panic);
+		nmi_call_kdb(cpu, type, frame);
 		call_post = false;
 	} else {
-		ret = true;
 		savectx(&stoppcbs[cpu]);
 		CPU_SET_ATOMIC(cpu, &stopped_cpus);
 		while (!atomic_cmpset_acq_int(&nmi_kdb_lock, 0, 1))
@@ -1237,7 +1236,6 @@ nmi_call_kdb_smp(u_int type, struct trap
 	atomic_store_rel_int(&nmi_kdb_lock, 0);
 	if (call_post)
 		cpustop_handler_post(cpu);
-	return (ret);
 }
 #endif
 
@@ -1351,7 +1349,7 @@ invlcache_handler(void)
 	 * Reading the generation here allows greater parallelism
 	 * since wbinvd is a serializing instruction.  Without the
 	 * temporary, we'd wait for wbinvd to complete, then the read
-	 * would execute, then the dependent write, whuch must then
+	 * would execute, then the dependent write, which must then
 	 * complete before return from interrupt.
 	 */
 	generation = smp_tlb_generation;

Modified: user/alc/PQ_LAUNDRY/usr.sbin/mountd/mountd.8
==============================================================================
--- user/alc/PQ_LAUNDRY/usr.sbin/mountd/mountd.8	Tue Oct 25 03:26:00 2016	(r307895)
+++ user/alc/PQ_LAUNDRY/usr.sbin/mountd/mountd.8	Tue Oct 25 03:34:24 2016	(r307896)
@@ -28,7 +28,7 @@
 .\"     @(#)mountd.8	8.4 (Berkeley) 4/28/95
 .\" $FreeBSD$
 .\"
-.Dd October 14, 2012
+.Dd October 24, 2016
 .Dt MOUNTD 8
 .Os

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


More information about the svn-src-user mailing list