Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Sep 2016 19:44:24 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r305301 - in projects/clang390-import: . lib lib/libc/gen lib/libc/stdio lib/libifc lib/libifconfig lib/libusb lib/msun/tests release/doc/en_US.ISO8859-1/hardware rescue/rescue share/ex...
Message-ID:  <201609021944.u82JiOsk073275@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Fri Sep  2 19:44:23 2016
New Revision: 305301
URL: https://svnweb.freebsd.org/changeset/base/305301

Log:
  Merge ^/head r305220 through r305300.

Added:
  projects/clang390-import/lib/libifconfig/
     - copied from r305300, head/lib/libifconfig/
  projects/clang390-import/share/examples/libifconfig/
     - copied from r305300, head/share/examples/libifconfig/
Deleted:
  projects/clang390-import/lib/libifc/
  projects/clang390-import/share/examples/libifc/
  projects/clang390-import/share/man/man4/digi.4
  projects/clang390-import/sys/dev/cxgbe/cxgbei/cxgbei_ulp2_ddp.c
  projects/clang390-import/sys/dev/cxgbe/cxgbei/cxgbei_ulp2_ddp.h
  projects/clang390-import/sys/modules/digi/
Modified:
  projects/clang390-import/Makefile.inc1
  projects/clang390-import/ObsoleteFiles.inc
  projects/clang390-import/lib/Makefile
  projects/clang390-import/lib/libc/gen/siglist.c
  projects/clang390-import/lib/libc/stdio/fgetwln.c
  projects/clang390-import/lib/libusb/libusb20.c
  projects/clang390-import/lib/msun/tests/ctrig_test.c
  projects/clang390-import/release/doc/en_US.ISO8859-1/hardware/article.xml
  projects/clang390-import/rescue/rescue/Makefile.depend
  projects/clang390-import/share/man/man4/Makefile
  projects/clang390-import/share/man/man9/pci.9
  projects/clang390-import/share/mk/bsd.crunchgen.mk
  projects/clang390-import/share/mk/bsd.libnames.mk
  projects/clang390-import/share/mk/src.libnames.mk
  projects/clang390-import/share/timedef/zh_CN.GB2312.src
  projects/clang390-import/share/timedef/zh_CN.GBK.src
  projects/clang390-import/share/timedef/zh_CN.UTF-8.src
  projects/clang390-import/share/timedef/zh_CN.eucCN.src
  projects/clang390-import/share/timedef/zh_TW.Big5.src
  projects/clang390-import/share/timedef/zh_TW.UTF-8.src
  projects/clang390-import/sys/arm/allwinner/axp81x.c
  projects/clang390-import/sys/arm/allwinner/clk/aw_pll.c
  projects/clang390-import/sys/arm64/arm64/machdep.c
  projects/clang390-import/sys/arm64/include/pcpu.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
  projects/clang390-import/sys/conf/files
  projects/clang390-import/sys/dev/cxgbe/cxgbei/cxgbei.c
  projects/clang390-import/sys/dev/cxgbe/cxgbei/cxgbei.h
  projects/clang390-import/sys/dev/cxgbe/cxgbei/icl_cxgbei.c
  projects/clang390-import/sys/dev/cxgbe/offload.h
  projects/clang390-import/sys/dev/cxgbe/t4_main.c
  projects/clang390-import/sys/dev/cxgbe/t4_sge.c
  projects/clang390-import/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  projects/clang390-import/sys/dev/hyperv/netvsc/hv_rndis_filter.c
  projects/clang390-import/sys/dev/hyperv/netvsc/if_hnreg.h
  projects/clang390-import/sys/dev/hyperv/netvsc/if_hnvar.h
  projects/clang390-import/sys/dev/hyperv/netvsc/ndis.h
  projects/clang390-import/sys/dev/hyperv/utilities/hv_heartbeat.c
  projects/clang390-import/sys/dev/hyperv/utilities/hv_shutdown.c
  projects/clang390-import/sys/dev/hyperv/utilities/hv_timesync.c
  projects/clang390-import/sys/dev/hyperv/utilities/vmbus_icreg.h
  projects/clang390-import/sys/dev/ioat/ioat.c
  projects/clang390-import/sys/dev/syscons/syscons.c
  projects/clang390-import/sys/dev/syscons/syscons.h
  projects/clang390-import/sys/kern/kern_sig.c
  projects/clang390-import/sys/modules/cxgbe/cxgbei/Makefile
  projects/clang390-import/sys/net/rndis.h
  projects/clang390-import/sys/sys/param.h
  projects/clang390-import/targets/pseudo/bootstrap-tools/Makefile
  projects/clang390-import/targets/pseudo/hosttools/Makefile.depend.host
  projects/clang390-import/tools/bsdbox/Makefile.depend
  projects/clang390-import/tools/tools/locale/tools/cldr2def.pl
  projects/clang390-import/usr.bin/w/w.1
  projects/clang390-import/usr.bin/w/w.c
  projects/clang390-import/usr.sbin/cron/cron/cron.h
  projects/clang390-import/usr.sbin/cron/crontab/crontab.c
  projects/clang390-import/usr.sbin/crunch/crunchgen/crunchgen.c
Directory Properties:
  projects/clang390-import/   (props changed)
  projects/clang390-import/sys/cddl/contrib/opensolaris/   (props changed)

Modified: projects/clang390-import/Makefile.inc1
==============================================================================
--- projects/clang390-import/Makefile.inc1	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/Makefile.inc1	Fri Sep  2 19:44:23 2016	(r305301)
@@ -1628,8 +1628,10 @@ _crunchide=	usr.sbin/crunch/crunchide
 
 # r285986 crunchen: use STRIPBIN rather than STRIP
 # 1100113: Support MK_AUTO_OBJ
+# 1200006: META_MODE fixes
 .if ${BOOTSTRAPPING} < 1100078 || \
-    (${MK_AUTO_OBJ} == "yes" && ${BOOTSTRAPPING} < 1100114)
+    (${MK_AUTO_OBJ} == "yes" && ${BOOTSTRAPPING} < 1100114) || \
+    (${MK_META_MODE} == "yes" && ${BOOTSTRAPPING} < 1200006)
 _crunchgen=	usr.sbin/crunch/crunchgen
 .endif
 

Modified: projects/clang390-import/ObsoleteFiles.inc
==============================================================================
--- projects/clang390-import/ObsoleteFiles.inc	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/ObsoleteFiles.inc	Fri Sep  2 19:44:23 2016	(r305301)
@@ -38,6 +38,8 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20160901: Remove digi(4)
+OLD_FILES+=usr/share/man/man4/digi.4.gz
 # 20160819: Remove ie(4)
 OLD_FILES+=usr/share/man/man4/i386/ie.4.gz
 # 20160819: Remove spic(4)

Modified: projects/clang390-import/lib/Makefile
==============================================================================
--- projects/clang390-import/lib/Makefile	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/lib/Makefile	Fri Sep  2 19:44:23 2016	(r305301)
@@ -60,7 +60,7 @@ SUBDIR=	${SUBDIR_BOOTSTRAP} \
 	${_libgssapi} \
 	${_librpcsec_gss} \
 	${_libiconv_modules} \
-	libifc \
+	libifconfig \
 	libipsec \
 	libjail \
 	libkiconv \

Modified: projects/clang390-import/lib/libc/gen/siglist.c
==============================================================================
--- projects/clang390-import/lib/libc/gen/siglist.c	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/lib/libc/gen/siglist.c	Fri Sep  2 19:44:23 2016	(r305301)
@@ -36,72 +36,72 @@ __FBSDID("$FreeBSD$");
 #include <signal.h>
 
 const char *const sys_signame[NSIG] = {
-	"Signal 0",
-	"HUP",				/* SIGHUP */
-	"INT",				/* SIGINT */
-	"QUIT",				/* SIGQUIT */
-	"ILL",				/* SIGILL */
-	"TRAP",				/* SIGTRAP */
-	"ABRT",				/* SIGABRT */
-	"EMT",				/* SIGEMT */
-	"FPE",				/* SIGFPE */
-	"KILL",				/* SIGKILL */
-	"BUS",				/* SIGBUS */
-	"SEGV",				/* SIGSEGV */
-	"SYS",				/* SIGSYS */
-	"PIPE",				/* SIGPIPE */
-	"ALRM",				/* SIGALRM */
-	"TERM",				/* SIGTERM */
-	"URG",				/* SIGURG */
-	"STOP",				/* SIGSTOP */
-	"TSTP",				/* SIGTSTP */
-	"CONT",				/* SIGCONT */
-	"CHLD",				/* SIGCHLD */
-	"TTIN",				/* SIGTTIN */
-	"TTOU",				/* SIGTTOU */
-	"IO",				/* SIGIO */
-	"XCPU",				/* SIGXCPU */
-	"XFSZ",				/* SIGXFSZ */
-	"VTALRM",			/* SIGVTALRM */
-	"PROF",				/* SIGPROF */
-	"WINCH",			/* SIGWINCH */
-	"INFO",				/* SIGINFO */
-	"USR1",				/* SIGUSR1 */
-	"USR2"				/* SIGUSR2 */
+	[0] =		"Signal 0",
+	[SIGHUP] =	"HUP",
+	[SIGINT] =	"INT",
+	[SIGQUIT] =	"QUIT",
+	[SIGILL] =	"ILL",
+	[SIGTRAP] =	"TRAP",
+	[SIGABRT] =	"ABRT",
+	[SIGEMT] =	"EMT",
+	[SIGFPE] =	"FPE",
+	[SIGKILL] =	"KILL",
+	[SIGBUS] =	"BUS",
+	[SIGSEGV] =	"SEGV",
+	[SIGSYS] =	"SYS",
+	[SIGPIPE] =	"PIPE",
+	[SIGALRM] =	"ALRM",
+	[SIGTERM] =	"TERM",
+	[SIGURG] =	"URG",
+	[SIGSTOP] =	"STOP",
+	[SIGTSTP] =	"TSTP",
+	[SIGCONT] =	"CONT",
+	[SIGCHLD] =	"CHLD",
+	[SIGTTIN] =	"TTIN",
+	[SIGTTOU] =	"TTOU",
+	[SIGIO] =	"IO",
+	[SIGXCPU] =	"XCPU",
+	[SIGXFSZ] =	"XFSZ",
+	[SIGVTALRM] =	"VTALRM",
+	[SIGPROF] =	"PROF",
+	[SIGWINCH] =	"WINCH",
+	[SIGINFO] =	"INFO",
+	[SIGUSR1] =	"USR1",
+	[SIGUSR2] =	"USR2",
 };
 
 const char *const sys_siglist[NSIG] = {
-	"Signal 0",
-	"Hangup",			/* SIGHUP */
-	"Interrupt",			/* SIGINT */
-	"Quit",				/* SIGQUIT */
-	"Illegal instruction",		/* SIGILL */
-	"Trace/BPT trap",		/* SIGTRAP */
-	"Abort trap",			/* SIGABRT */
-	"EMT trap",			/* SIGEMT */
-	"Floating point exception",	/* SIGFPE */
-	"Killed",			/* SIGKILL */
-	"Bus error",			/* SIGBUS */
-	"Segmentation fault",		/* SIGSEGV */
-	"Bad system call",		/* SIGSYS */
-	"Broken pipe",			/* SIGPIPE */
-	"Alarm clock",			/* SIGALRM */
-	"Terminated",			/* SIGTERM */
-	"Urgent I/O condition",		/* SIGURG */
-	"Suspended (signal)",		/* SIGSTOP */
-	"Suspended",			/* SIGTSTP */
-	"Continued",			/* SIGCONT */
-	"Child exited",			/* SIGCHLD */
-	"Stopped (tty input)",		/* SIGTTIN */
-	"Stopped (tty output)",		/* SIGTTOU */
-	"I/O possible",			/* SIGIO */
-	"Cputime limit exceeded",	/* SIGXCPU */
-	"Filesize limit exceeded",	/* SIGXFSZ */
-	"Virtual timer expired",	/* SIGVTALRM */
-	"Profiling timer expired",	/* SIGPROF */
-	"Window size changes",		/* SIGWINCH */
-	"Information request",		/* SIGINFO */
-	"User defined signal 1",	/* SIGUSR1 */
-	"User defined signal 2"		/* SIGUSR2 */
+	[0] =		"Signal 0",
+	[SIGHUP] =	"Hangup",
+	[SIGINT] =	"Interrupt",
+	[SIGQUIT] =	"Quit",
+	[SIGILL] =	"Illegal instruction",
+	[SIGTRAP] =	"Trace/BPT trap",
+	[SIGABRT] =	"Abort trap",
+	[SIGEMT] =	"EMT trap",
+	[SIGFPE] =	"Floating point exception",
+	[SIGKILL] =	"Killed",
+	[SIGBUS] =	"Bus error",
+	[SIGSEGV] =	"Segmentation fault",
+	[SIGSYS] =	"Bad system call",
+	[SIGPIPE] =	"Broken pipe",
+	[SIGALRM] =	"Alarm clock",
+	[SIGTERM] =	"Terminated",
+	[SIGURG] =	"Urgent I/O condition",
+	[SIGSTOP] =	"Suspended (signal)",
+	[SIGTSTP] =	"Suspended",
+	[SIGCONT] =	"Continued",
+	[SIGCHLD] =	"Child exited",
+	[SIGTTIN] =	"Stopped (tty input)",
+	[SIGTTOU] =	"Stopped (tty output)",
+	[SIGIO] =	"I/O possible",
+	[SIGXCPU] =	"Cputime limit exceeded",
+	[SIGXFSZ] =	"Filesize limit exceeded",
+	[SIGVTALRM] =	"Virtual timer expired",
+	[SIGPROF] =	"Profiling timer expired",
+	[SIGWINCH] =	"Window size changes",
+	[SIGINFO] =	"Information request",
+	[SIGUSR1] =	"User defined signal 1",
+	[SIGUSR2] =	"User defined signal 2",
 };
 const int sys_nsig = sizeof(sys_siglist) / sizeof(sys_siglist[0]);

Modified: projects/clang390-import/lib/libc/stdio/fgetwln.c
==============================================================================
--- projects/clang390-import/lib/libc/stdio/fgetwln.c	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/lib/libc/stdio/fgetwln.c	Fri Sep  2 19:44:23 2016	(r305301)
@@ -47,11 +47,16 @@ fgetwln_l(FILE * __restrict fp, size_t *
 {
 	wint_t wc;
 	size_t len;
+	int savserr;
+
 	FIX_LOCALE(locale);
 
 	FLOCKFILE(fp);
 	ORIENT(fp, 1);
 
+	savserr = fp->_flags & __SERR;
+	fp->_flags &= ~__SERR;
+
 	len = 0;
 	while ((wc = __fgetwc(fp, locale)) != WEOF) {
 #define	GROW	512
@@ -64,7 +69,12 @@ fgetwln_l(FILE * __restrict fp, size_t *
 		if (wc == L'\n')
 			break;
 	}
-	if (len == 0 || (wc == WEOF && !__sfeof(fp)))
+	/* fgetwc(3) may set both __SEOF and __SERR at once. */
+	if (__sferror(fp))
+		goto error;
+
+	fp->_flags |= savserr;
+	if (len == 0)
 		goto error;
 
 	FUNLOCKFILE(fp);

Modified: projects/clang390-import/lib/libusb/libusb20.c
==============================================================================
--- projects/clang390-import/lib/libusb/libusb20.c	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/lib/libusb/libusb20.c	Fri Sep  2 19:44:23 2016	(r305301)
@@ -176,6 +176,12 @@ libusb20_tr_open_stream(struct libusb20_
 		return (LIBUSB20_ERROR_BUSY);
 	if (MaxFrameCount & LIBUSB20_MAX_FRAME_PRE_SCALE) {
 		MaxFrameCount &= ~LIBUSB20_MAX_FRAME_PRE_SCALE;
+		/*
+		 * The kernel can setup 8 times more frames when
+		 * pre-scaling ISOCHRONOUS transfers. Make sure the
+		 * length and pointer buffers are big enough:
+		 */
+		MaxFrameCount *= 8;
 		pre_scale = 1;
 	} else {
 		pre_scale = 0;
@@ -200,8 +206,13 @@ libusb20_tr_open_stream(struct libusb20_
 	}
 	memset(xfer->ppBuffer, 0, size);
 
-	error = xfer->pdev->methods->tr_open(xfer, MaxBufSize,
-	    MaxFrameCount, ep_no, stream_id, pre_scale);
+	if (pre_scale) {
+		error = xfer->pdev->methods->tr_open(xfer, MaxBufSize,
+		    MaxFrameCount / 8, ep_no, stream_id, 1);
+	} else {
+		error = xfer->pdev->methods->tr_open(xfer, MaxBufSize,
+		    MaxFrameCount, ep_no, stream_id, 0);
+	}
 
 	if (error) {
 		free(xfer->ppBuffer);

Modified: projects/clang390-import/lib/msun/tests/ctrig_test.c
==============================================================================
--- projects/clang390-import/lib/msun/tests/ctrig_test.c	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/lib/msun/tests/ctrig_test.c	Fri Sep  2 19:44:23 2016	(r305301)
@@ -427,7 +427,6 @@ test_large(void)
 	test_odd_tol(ctanh, z,
 		     CMPLXL(1.0, 8.95257245135025991216632140458264468e-309L),
 		     DBL_ULP());
-#if !defined(__i386__)
 	z = CMPLXL(30, 0x1p1023L);
 	test_odd_tol(ctanh, z,
 		     CMPLXL(1.0, -1.62994325413993477997492170229268382e-26L),
@@ -437,7 +436,6 @@ test_large(void)
 		     CMPLXL(0.878606311888306869546254022621986509L,
 			    -0.225462792499754505792678258169527424L),
 		     DBL_ULP());
-#endif
 
 	z = CMPLXL(710.6, 0.78539816339744830961566084581987572L);
 	test_odd_tol(csinh, z,
@@ -475,8 +473,12 @@ main(int argc, char *argv[])
 	test_small();
 	printf("ok 5 - ctrig small\n");
 
+#if defined(__i386__)
+	printf("ok 6 # SKIP ctrig large # fails on i386 because of bug 205446\n");
+#else
 	test_large();
 	printf("ok 6 - ctrig large\n");
+#endif
 
 	return (0);
 }

Modified: projects/clang390-import/release/doc/en_US.ISO8859-1/hardware/article.xml
==============================================================================
--- projects/clang390-import/release/doc/en_US.ISO8859-1/hardware/article.xml	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/release/doc/en_US.ISO8859-1/hardware/article.xml	Fri Sep  2 19:44:23 2016	(r305301)
@@ -1098,9 +1098,6 @@
 
       <para>[&arch.i386;] STB 4 port card using shared IRQ</para>
 
-      <para>[&arch.i386;] DigiBoard intelligent serial cards (digi
-	driver)</para>
-
       <para>[&arch.amd64;, &arch.i386;] PCI-Based multi-port serial
 	boards (&man.puc.4; driver)</para>
 

Modified: projects/clang390-import/rescue/rescue/Makefile.depend
==============================================================================
--- projects/clang390-import/rescue/rescue/Makefile.depend	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/rescue/rescue/Makefile.depend	Fri Sep  2 19:44:23 2016	(r305301)
@@ -52,6 +52,7 @@ DIRDEPS = \
 	usr.bin/lex/lib \
 	usr.bin/yacc.host \
 	usr.sbin/crunch/crunchgen.host \
+	usr.sbin/crunch/crunchide.host \
 
 
 .include <dirdeps.mk>

Modified: projects/clang390-import/share/man/man4/Makefile
==============================================================================
--- projects/clang390-import/share/man/man4/Makefile	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/share/man/man4/Makefile	Fri Sep  2 19:44:23 2016	(r305301)
@@ -122,7 +122,6 @@ MAN=	aac.4 \
 	ddb.4 \
 	de.4 \
 	devctl.4 \
-	digi.4 \
 	disc.4 \
 	divert.4 \
 	${_dpms.4} \

Modified: projects/clang390-import/share/man/man9/pci.9
==============================================================================
--- projects/clang390-import/share/man/man9/pci.9	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/share/man/man9/pci.9	Fri Sep  2 19:44:23 2016	(r305301)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd August 3, 2016
+.Dd September 1, 2016
 .Dt PCI 9
 .Os
 .Sh NAME
@@ -910,11 +910,6 @@ with one in the new distribution.
 The
 .Fn pci_remap_msix
 function will fail if this condition is not met.
-.Sh IMPLEMENTATION NOTES
-The
-.Vt pci_addr_t
-type varies according to the size of the PCI bus address
-space on the target architecture.
 .Sh SEE ALSO
 .Xr pci 4 ,
 .Xr pciconf 8 ,

Modified: projects/clang390-import/share/mk/bsd.crunchgen.mk
==============================================================================
--- projects/clang390-import/share/mk/bsd.crunchgen.mk	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/share/mk/bsd.crunchgen.mk	Fri Sep  2 19:44:23 2016	(r305301)
@@ -112,6 +112,7 @@ CRUNCHENV+= MK_TESTS=no \
 	    _RECURSING_CRUNCH=1
 .ORDER: ${OUTPUTS} objs
 ${OUTPUTS:[1]}: .META
+${OUTPUTS:[2..-1]}: .NOMETA
 ${OUTPUTS}: ${CONF}
 	MAKE=${MAKE} ${CRUNCHENV:NMK_AUTO_OBJ=*} MAKEOBJDIRPREFIX=${CRUNCHOBJS} \
 	    MK_AUTO_OBJ=${MK_AUTO_OBJ} \
@@ -122,11 +123,13 @@ ${OUTPUTS}: ${CONF}
 
 # These 2 targets cannot use .MAKE since they depend on the generated
 # ${OUTMK} above.
-${PROG}: ${OUTPUTS} objs .META
+${PROG}: ${OUTPUTS} objs .NOMETA .PHONY
 	${CRUNCHENV} \
 	    CC="${CC} ${CFLAGS} ${LDFLAGS}" \
 	    CXX="${CXX} ${CXXFLAGS} ${LDFLAGS}" \
-	    ${MAKE} .MAKE.MODE=normal -f ${OUTMK} exe
+	    ${MAKE} .MAKE.MODE="${.MAKE.MODE} curdirOk=yes" \
+	    .MAKE.META.IGNORE_PATHS="${.MAKE.META.IGNORE_PATHS}" \
+	    -f ${OUTMK} exe
 
 objs: ${OUTMK} .META
 	${CRUNCHENV} MAKEOBJDIRPREFIX=${CRUNCHOBJS} \
@@ -166,3 +169,5 @@ clean:
 	fi
 
 META_XTRAS+=	${find ${CRUNCHOBJS}${SRCTOP} -name '*.meta' 2>/dev/null || true:L:sh}
+META_XTRAS+=	${echo ${CRUNCHOBJS}/*.lo.meta 2>/dev/null || true:L:sh}
+META_XTRAS+=	${PROG}.meta

Modified: projects/clang390-import/share/mk/bsd.libnames.mk
==============================================================================
--- projects/clang390-import/share/mk/bsd.libnames.mk	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/share/mk/bsd.libnames.mk	Fri Sep  2 19:44:23 2016	(r305301)
@@ -82,7 +82,7 @@ LIBIBMAD?=	${DESTDIR}${LIBDIR}/libibmad.
 LIBIBSDP?=	${DESTDIR}${LIBDIR}/libibsdp.a
 LIBIBUMAD?=	${DESTDIR}${LIBDIR}/libibumad.a
 LIBIBVERBS?=	${DESTDIR}${LIBDIR}/libibverbs.a
-LIBIFC?=	${DESTDIR}${LIBDIR}/libifc.a
+LIBIFCONFIG?=	${DESTDIR}${LIBDIR}/libifconfig.a
 LIBIPSEC?=	${DESTDIR}${LIBDIR}/libipsec.a
 LIBJAIL?=	${DESTDIR}${LIBDIR}/libjail.a
 LIBKADM5CLNT?=	${DESTDIR}${LIBDIR}/libkadm5clnt.a

Modified: projects/clang390-import/share/mk/src.libnames.mk
==============================================================================
--- projects/clang390-import/share/mk/src.libnames.mk	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/share/mk/src.libnames.mk	Fri Sep  2 19:44:23 2016	(r305301)
@@ -105,7 +105,7 @@ _LIBRARIES=	\
 		heimntlm \
 		heimsqlite \
 		hx509 \
-		ifc \
+		ifconfig \
 		ipsec \
 		jail \
 		kadm5clnt \

Modified: projects/clang390-import/share/timedef/zh_CN.GB2312.src
==============================================================================
--- projects/clang390-import/share/timedef/zh_CN.GB2312.src	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/share/timedef/zh_CN.GB2312.src	Fri Sep  2 19:44:23 2016	(r305301)
@@ -4,18 +4,18 @@
 # -----------------------------------------------------------------------------
 #
 # Short month names
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
+!!#1TB
+!!#2TB
+!!#3TB
+!!#4TB
+!!#5TB
+!!#6TB
+!!#7TB
+!!#8TB
+!!#9TB
+#1#0TB
+#1#1TB
+#1#2TB
 #
 # Long month names (as in a date)
 一月
@@ -63,7 +63,7 @@
 下午
 #
 # date_fmt
-%Y年%b月%e日 %A %X %Z
+%Y年%_m月%e日 %A %X %Z
 #
 # Long month names (without case ending)
 一月

Modified: projects/clang390-import/share/timedef/zh_CN.GBK.src
==============================================================================
--- projects/clang390-import/share/timedef/zh_CN.GBK.src	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/share/timedef/zh_CN.GBK.src	Fri Sep  2 19:44:23 2016	(r305301)
@@ -4,18 +4,18 @@
 # -----------------------------------------------------------------------------
 #
 # Short month names
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
+ 1月
+ 2月
+ 3月
+ 4月
+ 5月
+ 6月
+ 7月
+ 8月
+ 9月
+10月
+11月
+12月
 #
 # Long month names (as in a date)
 一月
@@ -63,7 +63,7 @@
 下午
 #
 # date_fmt
-%Y年%b月%e日 %A %X %Z
+%Y年%_m月%e日 %A %X %Z
 #
 # Long month names (without case ending)
 一月

Modified: projects/clang390-import/share/timedef/zh_CN.UTF-8.src
==============================================================================
Binary file (source and/or target). No diff available.

Modified: projects/clang390-import/share/timedef/zh_CN.eucCN.src
==============================================================================
--- projects/clang390-import/share/timedef/zh_CN.eucCN.src	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/share/timedef/zh_CN.eucCN.src	Fri Sep  2 19:44:23 2016	(r305301)
@@ -4,18 +4,18 @@
 # -----------------------------------------------------------------------------
 #
 # Short month names
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
+ 1月
+ 2月
+ 3月
+ 4月
+ 5月
+ 6月
+ 7月
+ 8月
+ 9月
+10月
+11月
+12月
 #
 # Long month names (as in a date)
 一月
@@ -63,7 +63,7 @@
 下午
 #
 # date_fmt
-%Y年%b月%e日 %A %X %Z
+%Y年%_m月%e日 %A %X %Z
 #
 # Long month names (without case ending)
 一月

Modified: projects/clang390-import/share/timedef/zh_TW.Big5.src
==============================================================================
--- projects/clang390-import/share/timedef/zh_TW.Big5.src	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/share/timedef/zh_TW.Big5.src	Fri Sep  2 19:44:23 2016	(r305301)
@@ -4,18 +4,18 @@
 # -----------------------------------------------------------------------------
 #
 # Short month names
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
+る
+⒈る
+⒉る
+⒊る
+⒋る
+⒌る
+⒍る
+⒎る
+⒏る
+る
+る
+⒈る
 #
 # Long month names (as in a date)
 1る
@@ -63,7 +63,7 @@
 と
 #
 # date_fmt
-%Y%bる%eら %A %X %Z
+%Y%_mる%eら %A %X %Z
 #
 # Long month names (without case ending)
 1る

Modified: projects/clang390-import/share/timedef/zh_TW.UTF-8.src
==============================================================================
--- projects/clang390-import/share/timedef/zh_TW.UTF-8.src	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/share/timedef/zh_TW.UTF-8.src	Fri Sep  2 19:44:23 2016	(r305301)
@@ -4,18 +4,18 @@
 # -----------------------------------------------------------------------------
 #
 # Short month names
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
+ 1鏈
+ 2鏈
+ 3鏈
+ 4鏈
+ 5鏈
+ 6鏈
+ 7鏈
+ 8鏈
+ 9鏈
+10鏈
+11鏈
+12鏈
 #
 # Long month names (as in a date)
 1鏈
@@ -63,7 +63,7 @@
 涓嬪崍
 #
 # date_fmt
-%Y骞%b鏈%e鏃 %A %X %Z
+%Y骞%_m鏈%e鏃 %A %X %Z
 #
 # Long month names (without case ending)
 1鏈

Modified: projects/clang390-import/sys/arm/allwinner/axp81x.c
==============================================================================
--- projects/clang390-import/sys/arm/allwinner/axp81x.c	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/sys/arm/allwinner/axp81x.c	Fri Sep  2 19:44:23 2016	(r305301)
@@ -61,8 +61,13 @@ __FBSDID("$FreeBSD$");
 MALLOC_DEFINE(M_AXP81X_REG, "AXP81x regulator", "AXP81x power regulator");
 
 #define	AXP_ICTYPE		0x03
+#define	AXP_POWERCTL1		0x10
+#define	 AXP_POWERCTL1_DCDC2	(1 << 1)
 #define	AXP_POWERCTL2		0x12
 #define	 AXP_POWERCTL2_DC1SW	(1 << 7)
+#define	AXP_VOLTCTL_DCDC2	0x21
+#define	 AXP_VOLTCTL_STATUS	(1 << 7)
+#define	 AXP_VOLTCTL_MASK	0x7f
 #define	AXP_POWERBAT		0x32
 #define	 AXP_POWERBAT_SHUTDOWN	(1 << 7)
 #define	AXP_IRQEN1		0x40
@@ -109,10 +114,18 @@ struct axp81x_regdef {
 	char			*supply_name;
 	uint8_t			enable_reg;
 	uint8_t			enable_mask;
+	uint8_t			voltage_reg;
+	int			voltage_min;
+	int			voltage_max;
+	int			voltage_step1;
+	int			voltage_nstep1;
+	int			voltage_step2;
+	int			voltage_nstep2;
 };
 
 enum axp81x_reg_id {
-	AXP81X_REG_ID_DC1SW
+	AXP81X_REG_ID_DC1SW,
+	AXP81X_REG_ID_DCDC2,
 };
 
 static struct axp81x_regdef axp81x_regdefs[] = {
@@ -122,6 +135,19 @@ static struct axp81x_regdef axp81x_regde
 		.enable_reg = AXP_POWERCTL2,
 		.enable_mask = AXP_POWERCTL2_DC1SW,
 	},
+	{
+		.id = AXP81X_REG_ID_DCDC2,
+		.name = "dcdc2",
+		.enable_reg = AXP_POWERCTL1,
+		.enable_mask = AXP_POWERCTL1_DCDC2,
+		.voltage_reg = AXP_VOLTCTL_DCDC2,
+		.voltage_min = 500,
+		.voltage_max = 1300,
+		.voltage_step1 = 10,
+		.voltage_nstep1 = 70,
+		.voltage_step2 = 20,
+		.voltage_nstep2 = 5,
+	},
 };
 
 struct axp81x_softc;
@@ -218,17 +244,82 @@ axp81x_regnode_enable(struct regnode *re
 	return (0);
 }
 
+static void
+axp81x_regnode_reg_to_voltage(struct axp81x_reg_sc *sc, uint8_t val, int *uv)
+{
+	if (val < sc->def->voltage_nstep1)
+		*uv = sc->def->voltage_min + val * sc->def->voltage_step1;
+	else
+		*uv = sc->def->voltage_min +
+		    (sc->def->voltage_nstep1 * sc->def->voltage_step1) +
+		    ((val - sc->def->voltage_nstep1) * sc->def->voltage_step2);
+	*uv *= 1000;
+}
+
+static int
+axp81x_regnode_voltage_to_reg(struct axp81x_reg_sc *sc, int min_uvolt,
+    int max_uvolt, uint8_t *val)
+{
+	uint8_t nval;
+	int nstep, uvolt;
+
+	nval = 0;
+	uvolt = sc->def->voltage_min * 1000;
+
+	for (nstep = 0; nstep < sc->def->voltage_nstep1 && uvolt < min_uvolt;
+	     nstep++) {
+		++nval;
+		uvolt += (sc->def->voltage_step1 * 1000);
+	}
+	for (nstep = 0; nstep < sc->def->voltage_nstep2 && uvolt < min_uvolt;
+	     nstep++) {
+		++nval;
+		uvolt += (sc->def->voltage_step2 * 1000);
+	}
+	if (uvolt > max_uvolt)
+		return (EINVAL);
+
+	*val = nval;
+	return (0);
+}
+
 static int
 axp81x_regnode_set_voltage(struct regnode *regnode, int min_uvolt,
     int max_uvolt, int *udelay)
 {
-	return (ENXIO);
+	struct axp81x_reg_sc *sc;
+	uint8_t val;
+
+	sc = regnode_get_softc(regnode);
+
+	if (!sc->def->voltage_step1 || !sc->def->voltage_step2)
+		return (ENXIO);
+
+	if (axp81x_regnode_voltage_to_reg(sc, min_uvolt, max_uvolt, &val) != 0)
+		return (ERANGE);
+
+	axp81x_write(sc->base_dev, sc->def->voltage_reg, val);
+
+	*udelay = 0;
+
+	return (0);
 }
 
 static int
 axp81x_regnode_get_voltage(struct regnode *regnode, int *uvolt)
 {
-	return (ENXIO);
+	struct axp81x_reg_sc *sc;
+	uint8_t val;
+
+	sc = regnode_get_softc(regnode);
+
+	if (!sc->def->voltage_step1 || !sc->def->voltage_step2)
+		return (ENXIO);
+
+	axp81x_read(sc->base_dev, sc->def->voltage_reg, &val, 1);
+	axp81x_regnode_reg_to_voltage(sc, val & AXP_VOLTCTL_MASK, uvolt);
+
+	return (0);
 }
 
 static regnode_method_t axp81x_regnode_methods[] = {
@@ -519,6 +610,10 @@ axp81x_reg_attach(device_t dev, phandle_
 
 	memset(&initdef, 0, sizeof(initdef));
 	regulator_parse_ofw_stdparam(dev, node, &initdef);
+	if (initdef.std_param.min_uvolt == 0)
+		initdef.std_param.min_uvolt = def->voltage_min * 1000;
+	if (initdef.std_param.max_uvolt == 0)
+		initdef.std_param.max_uvolt = def->voltage_max * 1000;
 	initdef.id = def->id;
 	initdef.ofw_node = node;
 	regnode = regnode_create(dev, &axp81x_regnode_class, &initdef);

Modified: projects/clang390-import/sys/arm/allwinner/clk/aw_pll.c
==============================================================================
--- projects/clang390-import/sys/arm/allwinner/clk/aw_pll.c	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/sys/arm/allwinner/clk/aw_pll.c	Fri Sep  2 19:44:23 2016	(r305301)
@@ -110,14 +110,14 @@ __FBSDID("$FreeBSD$");
 #define	A13_PLL2_PRE_DIV		(0x1f << 0)
 #define	A13_PLL2_PRE_DIV_SHIFT		0
 
+#define	A23_PLL1_FACTOR_P		(0x3 << 16)
+#define	A23_PLL1_FACTOR_P_SHIFT		16
 #define	A23_PLL1_FACTOR_N		(0x1f << 8)
 #define	A23_PLL1_FACTOR_N_SHIFT		8
 #define	A23_PLL1_FACTOR_K		(0x3 << 4)
 #define	A23_PLL1_FACTOR_K_SHIFT		4
 #define	A23_PLL1_FACTOR_M		(0x3 << 0)
 #define	A23_PLL1_FACTOR_M_SHIFT		0
-#define	A23_PLL1_FACTOR_P		(0x3 << 16)
-#define	A23_PLL1_FACTOR_P_SHIFT		16
 
 #define	A31_PLL1_LOCK			(1 << 28)
 #define	A31_PLL1_CPU_SIGMA_DELTA_EN	(1 << 24)
@@ -171,6 +171,24 @@ __FBSDID("$FreeBSD$");
 #define	CLKID_A31_PLL6			0
 #define	CLKID_A31_PLL6_X2		1
 
+struct aw_pll_factor {
+	unsigned int		n;
+	unsigned int		k;
+	unsigned int		m;
+	unsigned int		p;
+	uint64_t		freq;
+};
+#define	PLLFACTOR(_n, _k, _m, _p, _freq)	\
+	{ .n = (_n), .k = (_k), .m = (_m), .p = (_p), .freq = (_freq) }
+
+static struct aw_pll_factor aw_a23_pll1_factors[] = {
+	PLLFACTOR(16, 0, 0, 0, 408000000),
+	PLLFACTOR(26, 0, 0, 0, 648000000),
+	PLLFACTOR(16, 1, 0, 0, 816000000),
+	PLLFACTOR(20, 1, 0, 0, 1008000000),
+	PLLFACTOR(24, 1, 0, 0, 1200000000),
+};
+
 enum aw_pll_type {
 	AWPLL_A10_PLL1 = 1,
 	AWPLL_A10_PLL2,
@@ -557,6 +575,39 @@ a13_pll2_set_freq(struct aw_pll_sc *sc, 
 }
 
 static int
+a23_pll1_set_freq(struct aw_pll_sc *sc, uint64_t fin, uint64_t *fout,
+    int flags)
+{
+	struct aw_pll_factor *f;
+	uint32_t val;
+	int n;
+
+	f = NULL;
+	for (n = 0; n < nitems(aw_a23_pll1_factors); n++) {
+		if (aw_a23_pll1_factors[n].freq == *fout) {
+			f = &aw_a23_pll1_factors[n];
+			break;
+		}
+	}
+	if (f == NULL)
+		return (EINVAL);
+
+	DEVICE_LOCK(sc);
+	PLL_READ(sc, &val);
+	val &= ~(A23_PLL1_FACTOR_N|A23_PLL1_FACTOR_K|A23_PLL1_FACTOR_M|
+		 A23_PLL1_FACTOR_P);
+	val |= (f->n << A23_PLL1_FACTOR_N_SHIFT);
+	val |= (f->k << A23_PLL1_FACTOR_K_SHIFT);
+	val |= (f->m << A23_PLL1_FACTOR_M_SHIFT);
+	val |= (f->p << A23_PLL1_FACTOR_P_SHIFT);
+	PLL_WRITE(sc, val);
+	DEVICE_UNLOCK(sc);
+
+	return (0);
+	
+}
+
+static int
 a23_pll1_recalc(struct aw_pll_sc *sc, uint64_t *freq)
 {
 	uint32_t val, m, n, k, p;
@@ -719,7 +770,7 @@ static struct aw_pll_funcs aw_pll_func[]
 	PLL(AWPLL_A10_PLL5, a10_pll5_recalc, NULL, NULL),
 	PLL(AWPLL_A10_PLL6, a10_pll6_recalc, a10_pll6_set_freq, a10_pll6_init),
 	PLL(AWPLL_A13_PLL2, a13_pll2_recalc, a13_pll2_set_freq, NULL),
-	PLL(AWPLL_A23_PLL1, a23_pll1_recalc, NULL, NULL),
+	PLL(AWPLL_A23_PLL1, a23_pll1_recalc, a23_pll1_set_freq, NULL),
 	PLL(AWPLL_A31_PLL1, a31_pll1_recalc, NULL, NULL),
 	PLL(AWPLL_A31_PLL6, a31_pll6_recalc, NULL, a31_pll6_init),
 	PLL(AWPLL_A80_PLL4, a80_pll4_recalc, NULL, NULL),

Modified: projects/clang390-import/sys/arm64/arm64/machdep.c
==============================================================================
--- projects/clang390-import/sys/arm64/arm64/machdep.c	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/sys/arm64/arm64/machdep.c	Fri Sep  2 19:44:23 2016	(r305301)
@@ -416,8 +416,17 @@ cpu_flush_dcache(void *ptr, size_t len)
 int
 cpu_est_clockrate(int cpu_id, uint64_t *rate)
 {
+	struct pcpu *pc;
 
-	panic("ARM64TODO: cpu_est_clockrate");
+	pc = pcpu_find(cpu_id);
+	if (pc == NULL || rate == NULL)
+		return (EINVAL);
+
+	if (pc->pc_clock == 0)
+		return (EOPNOTSUPP);
+
+	*rate = pc->pc_clock;
+	return (0);
 }
 
 void

Modified: projects/clang390-import/sys/arm64/include/pcpu.h
==============================================================================
--- projects/clang390-import/sys/arm64/include/pcpu.h	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/sys/arm64/include/pcpu.h	Fri Sep  2 19:44:23 2016	(r305301)
@@ -38,7 +38,8 @@
 #define	PCPU_MD_FIELDS							\
 	u_int	pc_acpi_id;	/* ACPI CPU id */		\
 	u_int	pc_midr;	/* stored MIDR value */	\
-	char __pad[121]
+	uint64_t pc_clock;						\
+	char __pad[113]
 
 #ifdef _KERNEL
 

Modified: projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
==============================================================================
--- projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c	Fri Sep  2 19:44:23 2016	(r305301)
@@ -791,11 +791,17 @@ dmu_objset_create_impl(spa_t *spa, dsl_d
 
 		/*
 		 * Determine the number of levels necessary for the meta-dnode
-		 * to contain DN_MAX_OBJECT dnodes.
+		 * to contain DN_MAX_OBJECT dnodes.  Note that in order to
+		 * ensure that we do not overflow 64 bits, there has to be
+		 * a nlevels that gives us a number of blocks > DN_MAX_OBJECT
+		 * but < 2^64.  Therefore,
+		 * (mdn->dn_indblkshift - SPA_BLKPTRSHIFT) (10) must be
+		 * less than (64 - log2(DN_MAX_OBJECT)) (16).
 		 */
-		while ((uint64_t)mdn->dn_nblkptr << (mdn->dn_datablkshift +
+		while ((uint64_t)mdn->dn_nblkptr <<
+		    (mdn->dn_datablkshift - DNODE_SHIFT +
 		    (levels - 1) * (mdn->dn_indblkshift - SPA_BLKPTRSHIFT)) <
-		    DN_MAX_OBJECT * sizeof (dnode_phys_t))
+		    DN_MAX_OBJECT)
 			levels++;
 
 		mdn->dn_next_nlevels[tx->tx_txg & TXG_MASK] =

Modified: projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
==============================================================================
--- projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Fri Sep  2 19:28:24 2016	(r305300)
+++ projects/clang390-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Fri Sep  2 19:44:23 2016	(r305301)
@@ -151,6 +151,8 @@ const zio_taskq_info_t zio_taskqs[ZIO_TY
 	{ ZTI_ONE,	ZTI_NULL,	ZTI_ONE,	ZTI_NULL }, /* IOCTL */
 };
 
+static sysevent_t *spa_event_create(spa_t *spa, vdev_t *vd, const char *name);
+static void spa_event_post(sysevent_t *ev);
 static void spa_sync_version(void *arg, dmu_tx_t *tx);
 static void spa_sync_props(void *arg, dmu_tx_t *tx);
 static boolean_t spa_has_active_shared_spare(spa_t *spa);
@@ -5738,6 +5740,7 @@ int
 spa_vdev_remove(spa_t *spa, uint64_t guid, boolean_t unspare)
 {
 	vdev_t *vd;
+	sysevent_t *ev = NULL;
 	metaslab_group_t *mg;
 	nvlist_t **spares, **l2cache, *nv;
 	uint64_t txg = 0;
@@ -5761,6 +5764,9 @@ spa_vdev_remove(spa_t *spa, uint64_t gui
 		 * in this pool.
 		 */
 		if (vd == NULL || unspare) {
+			if (vd == NULL)
+				vd = spa_lookup_by_guid(spa, guid, B_TRUE);
+			ev = spa_event_create(spa, vd, ESC_ZFS_VDEV_REMOVE_AUX);
 			spa_vdev_remove_aux(spa->spa_spares.sav_config,
 			    ZPOOL_CONFIG_SPARES, spares, nspares, nv);
 			spa_load_spares(spa);
@@ -5768,7 +5774,6 @@ spa_vdev_remove(spa_t *spa, uint64_t gui
 		} else {
 			error = SET_ERROR(EBUSY);
 		}
-		spa_event_notify(spa, vd, ESC_ZFS_VDEV_REMOVE_AUX);
 	} else if (spa->spa_l2cache.sav_vdevs != NULL &&
 	    nvlist_lookup_nvlist_array(spa->spa_l2cache.sav_config,
 	    ZPOOL_CONFIG_L2CACHE, &l2cache, &nl2cache) == 0 &&
@@ -5776,11 +5781,12 @@ spa_vdev_remove(spa_t *spa, uint64_t gui
 		/*
 		 * Cache devices can always be removed.
 		 */
+		vd = spa_lookup_by_guid(spa, guid, B_TRUE);
+		ev = spa_event_create(spa, vd, ESC_ZFS_VDEV_REMOVE_AUX);
 		spa_vdev_remove_aux(spa->spa_l2cache.sav_config,
 		    ZPOOL_CONFIG_L2CACHE, l2cache, nl2cache, nv);
 		spa_load_l2cache(spa);
 		spa->spa_l2cache.sav_sync = B_TRUE;
-		spa_event_notify(spa, vd, ESC_ZFS_VDEV_REMOVE_AUX);
 	} else if (vd != NULL && vd->vdev_islog) {
 		ASSERT(!locked);
 		ASSERT(vd == vd->vdev_top);
@@ -5817,9 +5823,9 @@ spa_vdev_remove(spa_t *spa, uint64_t gui
 		/*
 		 * Clean up the vdev namespace.
 		 */
+		ev = spa_event_create(spa, vd, ESC_ZFS_VDEV_REMOVE_DEV);
 		spa_vdev_remove_from_namespace(spa, vd);
 
-		spa_event_notify(spa, vd, ESC_ZFS_VDEV_REMOVE_DEV);
 	} else if (vd != NULL) {
 		/*
 		 * Normal vdevs cannot be removed (yet).
@@ -5835,6 +5841,9 @@ spa_vdev_remove(spa_t *spa, uint64_t gui
 	if (!locked)
 		error = spa_vdev_exit(spa, NULL, txg, error);
 
+	if (ev)
+		spa_event_post(ev);
+
 	return (error);
 }
 
@@ -7229,24 +7238,17 @@ spa_has_active_shared_spare(spa_t *spa)
 	return (B_FALSE);
 }
 
-/*
- * Post a sysevent corresponding to the given event.  The 'name' must be one of
- * the event definitions in sys/sysevent/eventdefs.h.  The payload will be
- * filled in from the spa and (optionally) the vdev.  This doesn't do anything
- * in the userland libzpool, as we don't want consumers to misinterpret ztest
- * or zdb as real changes.
- */
-void
-spa_event_notify(spa_t *spa, vdev_t *vd, const char *name)
+static sysevent_t *
+spa_event_create(spa_t *spa, vdev_t *vd, const char *name)
 {
+	sysevent_t		*ev = NULL;
 #ifdef _KERNEL
-	sysevent_t		*ev;
 	sysevent_attr_list_t	*attr = NULL;
 	sysevent_value_t	value;
-	sysevent_id_t		eid;
 
 	ev = sysevent_alloc(EC_ZFS, (char *)name, SUNW_KERN_PUB "zfs",
 	    SE_SLEEP);
+	ASSERT(ev != NULL);
 
 	value.value_type = SE_DATA_TYPE_STRING;
 	value.value.sv_string = spa_name(spa);
@@ -7278,11 +7280,34 @@ spa_event_notify(spa_t *spa, vdev_t *vd,
 		goto done;
 	attr = NULL;
 
-	(void) log_sysevent(ev, SE_SLEEP, &eid);
-
 done:
 	if (attr)
 		sysevent_free_attr(attr);

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201609021944.u82JiOsk073275>