svn commit: r325423 - in projects/runtime-coverage: . contrib/llvm/lib/Support/Unix etc/autofs etc/rc.d lib/libc/stdlib lib/libc/sys lib/libcasper/libcasper lib/libcasper/services/cap_dns lib/libca...

Ngie Cooper ngie at FreeBSD.org
Sun Nov 5 04:08:05 UTC 2017


Author: ngie
Date: Sun Nov  5 04:08:00 2017
New Revision: 325423
URL: https://svnweb.freebsd.org/changeset/base/325423

Log:
  MFhead at r325422

Added:
  projects/runtime-coverage/etc/autofs/include_nis
     - copied unchanged from r325422, head/etc/autofs/include_nis
  projects/runtime-coverage/sys/powerpc/mpc85xx/fsl_sata.c
     - copied unchanged from r325422, head/sys/powerpc/mpc85xx/fsl_sata.c
  projects/runtime-coverage/sys/powerpc/mpc85xx/fsl_sata.h
     - copied unchanged from r325422, head/sys/powerpc/mpc85xx/fsl_sata.h
Modified:
  projects/runtime-coverage/Makefile
  projects/runtime-coverage/Makefile.inc1
  projects/runtime-coverage/Makefile.libcompat
  projects/runtime-coverage/ObsoleteFiles.inc
  projects/runtime-coverage/contrib/llvm/lib/Support/Unix/Path.inc
  projects/runtime-coverage/etc/autofs/Makefile
  projects/runtime-coverage/etc/rc.d/automount
  projects/runtime-coverage/etc/rc.d/automountd
  projects/runtime-coverage/etc/rc.d/autounmountd
  projects/runtime-coverage/lib/libc/stdlib/quick_exit.3
  projects/runtime-coverage/lib/libc/stdlib/quick_exit.c
  projects/runtime-coverage/lib/libc/sys/posix_fallocate.2
  projects/runtime-coverage/lib/libcasper/libcasper/Makefile
  projects/runtime-coverage/lib/libcasper/services/cap_dns/Makefile
  projects/runtime-coverage/lib/libcasper/services/cap_grp/Makefile
  projects/runtime-coverage/lib/libcasper/services/cap_pwd/Makefile
  projects/runtime-coverage/lib/libcasper/services/cap_random/Makefile
  projects/runtime-coverage/lib/libcasper/services/cap_sysctl/Makefile
  projects/runtime-coverage/share/man/man9/Makefile
  projects/runtime-coverage/share/mk/auto.obj.mk
  projects/runtime-coverage/share/mk/bsd.dep.mk
  projects/runtime-coverage/share/mk/bsd.init.mk
  projects/runtime-coverage/share/mk/bsd.obj.mk
  projects/runtime-coverage/share/mk/src.sys.obj.mk
  projects/runtime-coverage/share/mk/suite.test.mk
  projects/runtime-coverage/share/mk/sys.mk
  projects/runtime-coverage/sys/amd64/amd64/genassym.c
  projects/runtime-coverage/sys/arm/allwinner/if_awg.c
  projects/runtime-coverage/sys/conf/files.powerpc
  projects/runtime-coverage/sys/i386/i386/genassym.c
  projects/runtime-coverage/sys/i386/i386/swtch.s
  projects/runtime-coverage/sys/kern/imgact_shell.c
  projects/runtime-coverage/sys/kern/kern_umtx.c
  projects/runtime-coverage/targets/pseudo/bootstrap-tools/Makefile
  projects/runtime-coverage/usr.sbin/ctld/login.c
Directory Properties:
  projects/runtime-coverage/   (props changed)
  projects/runtime-coverage/contrib/llvm/   (props changed)

Modified: projects/runtime-coverage/Makefile
==============================================================================
--- projects/runtime-coverage/Makefile	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/Makefile	Sun Nov  5 04:08:00 2017	(r325423)
@@ -209,7 +209,7 @@ WANT_MAKE_VERSION= 20160604
 # 20160220 - support .dinclude for FAST_DEPEND.
 WANT_MAKE_VERSION= 20160220
 .endif
-MYMAKE=		${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}/${WANT_MAKE}
+MYMAKE=		${OBJROOT}make.${MACHINE}/${WANT_MAKE}
 .if defined(.PARSEDIR)
 HAVE_MAKE=	bmake
 .else
@@ -407,10 +407,13 @@ upgrade_checks: .PHONY
 # headers, libraries and tools.  Also, allow the location of
 # the system bsdmake-like utility to be overridden.
 #
-MMAKEENV=	MAKEOBJDIRPREFIX=${MYMAKE:H} \
+MMAKEENV=	\
 		DESTDIR= \
 		INSTALL="sh ${.CURDIR}/tools/install.sh"
 MMAKE=		${MMAKEENV} ${MAKE} \
+		OBJTOP=${MYMAKE:H}/obj \
+		OBJROOT='$${OBJTOP}/' \
+		MAKEOBJDIRPREFIX= \
 		MAN= -DNO_SHARED \
 		-DNO_CPU_CFLAGS -DNO_WERROR \
 		-DNO_SUBDIR \

Modified: projects/runtime-coverage/Makefile.inc1
==============================================================================
--- projects/runtime-coverage/Makefile.inc1	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/Makefile.inc1	Sun Nov  5 04:08:00 2017	(r325423)
@@ -523,6 +523,7 @@ BMAKEENV=	INSTALL="sh ${.CURDIR}/tools/install.sh" \
 BSARGS= 	DESTDIR= \
 		OBJTOP='${WORLDTMP}/obj-tools' \
 		OBJROOT='$${OBJTOP}/' \
+		MAKEOBJDIRPREFIX= \
 		BOOTSTRAPPING=${OSRELDATE} \
 		BWPHASE=${.TARGET:C,^_,,} \
 		SSP_CFLAGS= \
@@ -566,6 +567,7 @@ KTMAKE=		TOOLS_PREFIX=${WORLDTMP} \
 		DESTDIR= \
 		OBJTOP='${WORLDTMP}/obj-kernel-tools' \
 		OBJROOT='$${OBJTOP}/' \
+		MAKEOBJDIRPREFIX= \
 		BOOTSTRAPPING=${OSRELDATE} \
 		SSP_CFLAGS= \
 		MK_COVERAGE=no MK_HTML=no -DNO_LINT MK_MAN=no \

Modified: projects/runtime-coverage/Makefile.libcompat
==============================================================================
--- projects/runtime-coverage/Makefile.libcompat	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/Makefile.libcompat	Sun Nov  5 04:08:00 2017	(r325423)
@@ -108,8 +108,6 @@ LIBCOMPATCXXFLAGS+=	-isystem ${LIBCOMPATTMP}/usr/inclu
 
 # Yes, the flags are redundant.
 LIBCOMPATWMAKEENV+= \
-		OBJTOP=${LIBCOMPAT_OBJTOP} \
-		OBJROOT='$${OBJTOP}/' \
 		INSTALL="sh ${.CURDIR}/tools/install.sh" \
 		PATH=${TMPPATH} \
 		SYSROOT=${LIBCOMPATTMP} \
@@ -130,6 +128,9 @@ LIBCOMPATWMAKEFLAGS+= CC="${XCC} ${LIBCOMPATCFLAGS}" \
 		-DNO_LINT \
 		MK_TESTS=no
 LIBCOMPATWMAKE+=	${LIBCOMPATWMAKEENV} ${MAKE} ${LIBCOMPATWMAKEFLAGS} \
+			OBJTOP=${LIBCOMPAT_OBJTOP} \
+			OBJROOT='$${OBJTOP}/' \
+			MAKEOBJDIRPREFIX= \
 			MK_MAN=no MK_HTML=no
 LIBCOMPATIMAKE+=	${LIBCOMPATWMAKE:NINSTALL=*:NDESTDIR=*} \
 			MK_TOOLCHAIN=no ${IMAKE_INSTALL} \
@@ -186,9 +187,10 @@ build${libcompat}: .PHONY
 	${_+_}cd ${.CURDIR}/${_dir}; \
 	    WORLDTMP=${WORLDTMP} \
 	    MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}" \
+	    ${MAKE} SSP_CFLAGS= DESTDIR= \
 	    OBJTOP=${LIBCOMPAT_OBJTOP} \
 	    OBJROOT='$${OBJTOP}/' \
-	    ${MAKE} SSP_CFLAGS= DESTDIR= \
+	    MAKEOBJDIRPREFIX= \
 	    DIRPRFX=${_dir}/ -DNO_LINT -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no \
 	    build-tools
 .endfor

Modified: projects/runtime-coverage/ObsoleteFiles.inc
==============================================================================
--- projects/runtime-coverage/ObsoleteFiles.inc	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/ObsoleteFiles.inc	Sun Nov  5 04:08:00 2017	(r325423)
@@ -38,6 +38,21 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20171104: libcap_random should be in /lib not in /usr/lib
+OLD_LIBS+=usr/lib/libcap_random.so.0
+# 20171104: Casper can work only as shared library
+OLD_FILES+=usr/lib/libcasper.a
+OLD_FILES+=usr/lib/libcasper_p.a
+OLD_FILES+=usr/lib/libcap_dns.a
+OLD_FILES+=usr/lib/libcap_dns_p.a
+OLD_FILES+=usr/lib/libcap_grp.a
+OLD_FILES+=usr/lib/libcap_grp_p.a
+OLD_FILES+=usr/lib/libcap_pwd.a
+OLD_FILES+=usr/lib/libcap_pwd_p.a
+OLD_FILES+=usr/lib/libcap_random.a
+OLD_FILES+=usr/lib/libcap_random_p.a
+OLD_FILES+=usr/lib/libcap_sysctl.a
+OLD_FILES+=usr/lib/libcap_sysctl_p.a
 # 20171031: Removal of obsolete man files
 OLD_FILES+=usr/share/man/man7/adding_user.7.gz
 # 20171031: Disconnected libpathconv tests

Modified: projects/runtime-coverage/contrib/llvm/lib/Support/Unix/Path.inc
==============================================================================
--- projects/runtime-coverage/contrib/llvm/lib/Support/Unix/Path.inc	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/contrib/llvm/lib/Support/Unix/Path.inc	Sun Nov  5 04:08:00 2017	(r325423)
@@ -427,7 +427,7 @@ std::error_code resize_file(int FD, uint64_t Size) {
   // If we have posix_fallocate use it. Unlike ftruncate it always allocates
   // space, so we get an error if the disk is full.
   if (int Err = ::posix_fallocate(FD, 0, Size)) {
-    if (Err != EOPNOTSUPP)
+    if (Err != EINVAL && Err != EOPNOTSUPP)
       return std::error_code(Err, std::generic_category());
   }
 #endif

Modified: projects/runtime-coverage/etc/autofs/Makefile
==============================================================================
--- projects/runtime-coverage/etc/autofs/Makefile	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/etc/autofs/Makefile	Sun Nov  5 04:08:00 2017	(r325423)
@@ -1,6 +1,6 @@
 # $FreeBSD$
 
-FILES=		include_ldap special_hosts special_media special_noauto special_null
+FILES=		include_ldap include_nis special_hosts special_media special_noauto special_null
 
 NO_OBJ=
 FILESDIR=	/etc/autofs

Copied: projects/runtime-coverage/etc/autofs/include_nis (from r325422, head/etc/autofs/include_nis)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/runtime-coverage/etc/autofs/include_nis	Sun Nov  5 04:08:00 2017	(r325423, copy of r325422, head/etc/autofs/include_nis)
@@ -0,0 +1,180 @@
+#!/usr/bin/awk -f
+#-
+# Copyright (c) 2017 G. Paul Ziemba
+# 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$
+#
+
+#
+# /etc/autofs/include_nis
+#
+# automountd Directory Services script for NIS
+#
+# SYNOPSIS
+#       include_nis <mapname>
+#
+#       include_nis <mapname> <key>
+#
+# DESCRIPTION
+#
+#       This script provides a Directory Services map for automountd
+#       based on NIS. Please see auto_master(5) for general information.
+#
+#       The first form, with one argument, emits the entire named NIS map.
+#       The second form, with two arguments, emits the map entry for the
+#       key given in the second argument. 
+#
+#       This script attempts to determine the names and IP addresses
+#       of the local host. Map entries matching the local host are
+#       rewritten to specify nullfs mounts (instead of the default
+#       NFS) to reduce access overhead in the kernel.
+#
+#	If a map entry contains multiple location fields, it is not changed.
+#
+
+
+# Populate list of names and IP addrs thet mean "this host"
+# into myhostnames array
+BEGIN {
+    #
+    # Set self hostnames
+    #
+
+    "hostname -s" | getline;
+    myhostnames[$0] = 1;
+
+    "hostname -f" | getline;
+    myhostnames[$0] = 1;
+
+    myhostnames["localhost"] = 1
+
+    "hostname -f" | getline;
+    localdomain=$0
+    myhostnames["localhost."localdomain] = 1
+
+    while ("ifconfig" | getline) {
+	if ($1 == "inet") {
+	    myhostnames[$2] = 1;
+	}
+    }
+
+    # debug
+#            print "--- hostname list start ----"
+#            for (i in myhostnames) {
+#                print i
+#            }
+#            print "--- hostname list end ----"
+
+    if (ARGC == 2) {
+	# mapname only
+	while ("ypcat -k " ARGV[1] | getline) {
+	    proc_mapline(1)
+	}
+    }
+    if (ARGC == 3) {
+	# mapname and keyname
+	while ("ypmatch " ARGV[2] " " ARGV[1] | getline) {
+	    proc_mapline(0)
+	}
+    }
+    exit 0
+}
+
+function is_self(hostname)
+{
+    if (myhostnames[hostname]) {
+	return 1
+    }
+    return 0
+}
+
+#
+# Lines are of the form [key] [-opts] location1 [... locationN]
+#
+# indicate index of key field with first positional parameter
+# 1 means keyfield is the first field
+# 0 means keyfield is not present
+#
+function proc_mapline(keyfield)
+{
+    optionsfield = 0
+    locationfield = 0
+    locationcount = 0
+
+    for (i=keyfield+1; i <= NF; ++i) {
+	if (!optionsfield) {
+	    if ($i ~ /^-/) {
+		# the first options field found on the line
+		optionsfield = i;
+		continue
+	    }
+	}
+	# Assumption: location contains colon (":")
+	if (optionsfield && ($i ~ /:/) && ($i !~ /^-/)) {
+	    ++locationcount
+	    if (!locationfield) {
+		# the first location field found on the line
+		locationfield = i
+	    }
+	}
+    }
+
+    #
+    # If location not found, do not modify.
+    #
+    # If there is more than one location, do not modify. Rationale:
+    # Options are applied to all locations. We ca not have "nullfs"
+    # for only some locations and "nfs" for others for a given
+    # map key (i.e., a line). The usual reason for multiple
+    # locations is for redundancy using replicated volumes on
+    # multiple hosts, so multiple hosts imply fstype=nfs (the
+    # FreeBSD default for automounter maps).
+    #
+    # Hypothetically there could be a map entry with multiple
+    # locations all with host parts matching "me". In that case,
+    # it would be safe to rewrite the locations and specify
+    # nullfs, but the code does not handle this case.
+    #
+    if (locationcount == 1) {
+	#
+	# We have a line with exactly one location field
+	#
+	# Assumption: location has no more than one colon (":")
+	#
+	n=split($locationfield,location,":")
+	if (is_self(location[1])) {
+	    $locationfield = ":" location[2]
+	    if (optionsfield) {
+		# append to existing options
+		$optionsfield = $optionsfield ",fstype=nullfs"
+	    } else {
+		# sneak in ahead of location
+		$locationfield = "-fstype=nullfs " $locationfield
+	    }
+	}
+    }
+
+    print
+}

Modified: projects/runtime-coverage/etc/rc.d/automount
==============================================================================
--- projects/runtime-coverage/etc/rc.d/automount	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/etc/rc.d/automount	Sun Nov  5 04:08:00 2017	(r325423)
@@ -5,6 +5,7 @@
 
 # PROVIDE: automount
 # REQUIRE: nfsclient automountd
+# BEFORE: DAEMON
 # KEYWORD: nojail shutdown
 
 . /etc/rc.subr

Modified: projects/runtime-coverage/etc/rc.d/automountd
==============================================================================
--- projects/runtime-coverage/etc/rc.d/automountd	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/etc/rc.d/automountd	Sun Nov  5 04:08:00 2017	(r325423)
@@ -4,7 +4,8 @@
 #
 
 # PROVIDE: automountd
-# REQUIRE: DAEMON
+# REQUIRE: rpcbind ypset nfsclient FILESYSTEMS ldconfig
+# BEFORE: DAEMON
 # KEYWORD: nojail
 
 . /etc/rc.subr

Modified: projects/runtime-coverage/etc/rc.d/autounmountd
==============================================================================
--- projects/runtime-coverage/etc/rc.d/autounmountd	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/etc/rc.d/autounmountd	Sun Nov  5 04:08:00 2017	(r325423)
@@ -4,7 +4,8 @@
 #
 
 # PROVIDE: autounmountd
-# REQUIRE: DAEMON
+# REQUIRE: FILESYSTEMS
+# BEFORE: DAEMON
 # KEYWORD: nojail
 
 . /etc/rc.subr

Modified: projects/runtime-coverage/lib/libc/stdlib/quick_exit.3
==============================================================================
--- projects/runtime-coverage/lib/libc/stdlib/quick_exit.3	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/lib/libc/stdlib/quick_exit.3	Sun Nov  5 04:08:00 2017	(r325423)
@@ -24,7 +24,7 @@
 .\"
 .\"  $FreeBSD$
 .\"
-.Dd December 13, 2014
+.Dd November 4, 2017
 .Dt QUICK_EXIT 3
 .Os
 .Sh NAME
@@ -44,6 +44,17 @@ with
 .Xr at_quick_exit 3
 but not any C++ destructors or cleanup code registered with
 .Xr atexit 3 .
+The
+.Xr stdio 3
+file buffers are not flushed.
+.Pp
+The function
+.Fn quick_exit
+is
+.Em async-signal safe
+when the functions registered with
+.Xr at_quick_exit 3
+are.
 .Sh RETURN VALUES
 The
 .Fn quick_exit

Modified: projects/runtime-coverage/lib/libc/stdlib/quick_exit.c
==============================================================================
--- projects/runtime-coverage/lib/libc/stdlib/quick_exit.c	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/lib/libc/stdlib/quick_exit.c	Sun Nov  5 04:08:00 2017	(r325423)
@@ -26,6 +26,8 @@
  * $FreeBSD$
  */
 
+#include <sys/types.h>
+#include <machine/atomic.h>
 #include <stdlib.h>
 #include <pthread.h>
 
@@ -60,6 +62,7 @@ at_quick_exit(void (*func)(void))
 	h->cleanup = func;
 	pthread_mutex_lock(&atexit_mutex);
 	h->next = handlers;
+	__compiler_membar();
 	handlers = h;
 	pthread_mutex_unlock(&atexit_mutex);
 	return (0);
@@ -74,7 +77,9 @@ quick_exit(int status)
 	 * XXX: The C++ spec requires us to call std::terminate if there is an
 	 * exception here.
 	 */
-	for (h = handlers; NULL != h; h = h->next)
+	for (h = handlers; NULL != h; h = h->next) {
+		__compiler_membar();
 		h->cleanup();
+	}
 	_Exit(status);
 }

Modified: projects/runtime-coverage/lib/libc/sys/posix_fallocate.2
==============================================================================
--- projects/runtime-coverage/lib/libc/sys/posix_fallocate.2	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/lib/libc/sys/posix_fallocate.2	Sun Nov  5 04:08:00 2017	(r325423)
@@ -28,7 +28,7 @@
 .\"     @(#)open.2	8.2 (Berkeley) 11/16/93
 .\" $FreeBSD$
 .\"
-.Dd October 12, 2017
+.Dd November 4, 2017
 .Dt POSIX_FALLOCATE 2
 .Os
 .Sh NAME
@@ -106,9 +106,10 @@ A signal was caught during execution.
 .It Bq Er EINVAL
 The
 .Fa len
-argument was less than or equal to zero or the
+argument was less than or equal to zero, the
 .Fa offset
-argument was less than zero.
+argument was less than zero,
+or the operation is not supported by the file system.
 .It Bq Er EIO
 An I/O error occurred while reading from or writing to a file system.
 .It Bq Er ENODEV

Modified: projects/runtime-coverage/lib/libcasper/libcasper/Makefile
==============================================================================
--- projects/runtime-coverage/lib/libcasper/libcasper/Makefile	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/lib/libcasper/libcasper/Makefile	Sun Nov  5 04:08:00 2017	(r325423)
@@ -1,14 +1,14 @@
 # $FreeBSD$
 
+SHLIBDIR?=	/lib
+
 .include <src.opts.mk>
 
 PACKAGE=${LIB}
 
-SHLIB_MAJOR=	0
-SHLIBDIR?=	/lib
-
 .if ${MK_CASPER} != "no"
-LIB=	casper
+SHLIB=	casper
+SHLIB_MAJOR=	0
 
 SRCS=	libcasper.c
 SRCS+=	libcasper_impl.c

Modified: projects/runtime-coverage/lib/libcasper/services/cap_dns/Makefile
==============================================================================
--- projects/runtime-coverage/lib/libcasper/services/cap_dns/Makefile	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/lib/libcasper/services/cap_dns/Makefile	Sun Nov  5 04:08:00 2017	(r325423)
@@ -10,7 +10,7 @@ SHLIB_MAJOR=	0
 INCSDIR?=	${INCLUDEDIR}/casper
 
 .if ${MK_CASPER} != "no"
-LIB=	cap_dns
+SHLIB=	cap_dns
 
 SRCS=	cap_dns.c
 .endif

Modified: projects/runtime-coverage/lib/libcasper/services/cap_grp/Makefile
==============================================================================
--- projects/runtime-coverage/lib/libcasper/services/cap_grp/Makefile	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/lib/libcasper/services/cap_grp/Makefile	Sun Nov  5 04:08:00 2017	(r325423)
@@ -10,7 +10,7 @@ SHLIB_MAJOR=	0
 INCSDIR?=	${INCLUDEDIR}/casper
 
 .if ${MK_CASPER} != "no"
-LIB=	cap_grp
+SHLIB=	cap_grp
 
 SRCS=	cap_grp.c
 .endif

Modified: projects/runtime-coverage/lib/libcasper/services/cap_pwd/Makefile
==============================================================================
--- projects/runtime-coverage/lib/libcasper/services/cap_pwd/Makefile	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/lib/libcasper/services/cap_pwd/Makefile	Sun Nov  5 04:08:00 2017	(r325423)
@@ -10,7 +10,7 @@ SHLIB_MAJOR=	0
 INCSDIR?=	${INCLUDEDIR}/casper
 
 .if ${MK_CASPER} != "no"
-LIB=	cap_pwd
+SHLIB=	cap_pwd
 
 SRCS=	cap_pwd.c
 .endif

Modified: projects/runtime-coverage/lib/libcasper/services/cap_random/Makefile
==============================================================================
--- projects/runtime-coverage/lib/libcasper/services/cap_random/Makefile	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/lib/libcasper/services/cap_random/Makefile	Sun Nov  5 04:08:00 2017	(r325423)
@@ -1,15 +1,16 @@
 # $FreeBSD$
 
+SHLIBDIR?=	/lib/casper
+
 .include <src.opts.mk>
 
 PACKAGE=libcasper
 
 SHLIB_MAJOR=	0
-SHLIBDIR?=	/lib/casper
 INCSDIR?=	${INCLUDEDIR}/casper
 
 .if ${MK_CASPER} != "no"
-LIB=	cap_random
+SHLIB=	cap_random
 
 SRCS=	cap_random.c
 .endif

Modified: projects/runtime-coverage/lib/libcasper/services/cap_sysctl/Makefile
==============================================================================
--- projects/runtime-coverage/lib/libcasper/services/cap_sysctl/Makefile	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/lib/libcasper/services/cap_sysctl/Makefile	Sun Nov  5 04:08:00 2017	(r325423)
@@ -10,7 +10,7 @@ SHLIB_MAJOR=	0
 INCSDIR?=	${INCLUDEDIR}/casper
 
 .if ${MK_CASPER} != "no"
-LIB=	cap_sysctl
+SHLIB=	cap_sysctl
 
 SRCS=	cap_sysctl.c
 .endif

Modified: projects/runtime-coverage/share/man/man9/Makefile
==============================================================================
--- projects/runtime-coverage/share/man/man9/Makefile	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/share/man/man9/Makefile	Sun Nov  5 04:08:00 2017	(r325423)
@@ -760,7 +760,8 @@ MLINKS+=devstat.9 devicestat.9 \
 	devstat.9 devstat_end_transaction.9 \
 	devstat.9 devstat_remove_entry.9 \
 	devstat.9 devstat_start_transaction.9
-MLINKS+=disk.9 disk_alloc.9 \
+MLINKS+=disk.9 disk_add_alias.9 \
+	disk.9 disk_alloc.9 \
 	disk.9 disk_create.9 \
 	disk.9 disk_destroy.9 \
 	disk.9 disk_gone.9 \

Modified: projects/runtime-coverage/share/mk/auto.obj.mk
==============================================================================
--- projects/runtime-coverage/share/mk/auto.obj.mk	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/share/mk/auto.obj.mk	Sun Nov  5 04:08:00 2017	(r325423)
@@ -61,11 +61,17 @@ __objdir_made != echo ${__objdir}/; umask ${OBJDIR_UMA
 .endif
 # This causes make to use the specified directory as .OBJDIR
 .OBJDIR: ${__objdir}
-.if ${.OBJDIR:tA} != ${__objdir:tA} && ${__objdir_made:Uno:M${__objdir}/*} != ""
+.if ${.OBJDIR:tA} != ${__objdir:tA}
+# we did not get what we want - do we care?
+.if ${__objdir_made:Uno:M${__objdir}/*} != ""
 # watch out for __objdir being relative path
 .if !(${__objdir:M/*} == "" && ${.OBJDIR:tA} == ${${.CURDIR}/${__objdir}:L:tA})
 .error could not use ${__objdir}: .OBJDIR=${.OBJDIR}
 .endif
+.endif
+# apparently we can live with it
+# make sure we know what we have
+.OBJDIR: ${.CURDIR}
 .endif
 .endif
 .endif

Modified: projects/runtime-coverage/share/mk/bsd.dep.mk
==============================================================================
--- projects/runtime-coverage/share/mk/bsd.dep.mk	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/share/mk/bsd.dep.mk	Sun Nov  5 04:08:00 2017	(r325423)
@@ -327,6 +327,10 @@ cleandepend:
 .endif
 .ORDER: cleandepend all
 .ORDER: cleandepend depend
+.if ${MK_AUTO_OBJ} == "yes"
+.ORDER: cleanobj depend
+.ORDER: cleandir depend
+.endif
 
 .if !target(checkdpadd) && (defined(DPADD) || defined(LDADD))
 _LDADD_FROM_DPADD=	${DPADD:R:T:C;^lib(.*)$;-l\1;g}

Modified: projects/runtime-coverage/share/mk/bsd.init.mk
==============================================================================
--- projects/runtime-coverage/share/mk/bsd.init.mk	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/share/mk/bsd.init.mk	Sun Nov  5 04:08:00 2017	(r325423)
@@ -10,6 +10,14 @@
 __<bsd.init.mk>__:
 .include <bsd.opts.mk>
 .-include "local.init.mk"
+
+.if ${MK_AUTO_OBJ} == "yes"
+# This is also done in bsd.obj.mk
+.if defined(NO_OBJ)
+.OBJDIR: ${.CURDIR}
+.endif
+.endif
+
 .if exists(${.CURDIR}/../Makefile.inc)
 .include "${.CURDIR}/../Makefile.inc"
 .endif
@@ -56,7 +64,8 @@ _SKIP_BUILD=	not building at level 0
     ${.TARGETS:M*install*} == ${.TARGETS} || \
     ${.TARGETS:Mclean*} == ${.TARGETS} || \
     ${.TARGETS:Mdestroy*} == ${.TARGETS} || \
-    make(obj) || make(analyze) || make(print-dir)
+    ${.TARGETS:Mobj} == ${.TARGETS} || \
+    make(analyze) || make(print-dir)
 # Skip building, but don't show a warning.
 _SKIP_BUILD=
 .endif

Modified: projects/runtime-coverage/share/mk/bsd.obj.mk
==============================================================================
--- projects/runtime-coverage/share/mk/bsd.obj.mk	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/share/mk/bsd.obj.mk	Sun Nov  5 04:08:00 2017	(r325423)
@@ -47,6 +47,7 @@ __<bsd.obj.mk>__:
 objwarn:
 obj:
 CANONICALOBJDIR= ${.OBJDIR}
+# This is also done in bsd.init.mk
 .if defined(NO_OBJ)
 # but this makefile does not want it!
 .OBJDIR: ${.CURDIR}
@@ -84,6 +85,11 @@ OBJTOP?= ${MAKEOBJDIR}
 CANONICALOBJDIR:=/usr/obj${.CURDIR}
 .endif
 
+.if defined(SRCTOP) && \
+    (${CANONICALOBJDIR} == /${RELDIR} || ${.OBJDIR} == /${RELDIR})
+.error .OBJDIR incorrectly set to /${RELDIR}
+.endif
+
 OBJTOP?= ${.OBJDIR:S,${.CURDIR},,}${SRCTOP}
 
 #
@@ -158,7 +164,8 @@ whereobj:
 .endif
 
 # Same check in bsd.progs.mk
-.if ${CANONICALOBJDIR} != ${.CURDIR} && exists(${CANONICALOBJDIR}/)
+.if ${CANONICALOBJDIR} != ${.CURDIR} && exists(${CANONICALOBJDIR}/) && \
+    (${MK_AUTO_OBJ} == "no" || ${.TARGETS:Nclean*:N*clean:Ndestroy*} == "")
 cleanobj:
 	-rm -rf ${CANONICALOBJDIR}
 .else
@@ -182,6 +189,10 @@ clean:
 .endif
 .endif
 .ORDER: clean all
+.if ${MK_AUTO_OBJ} == "yes"
+.ORDER: cleanobj all
+.ORDER: cleandir all
+.endif
 
 .include <bsd.subdir.mk>
 

Modified: projects/runtime-coverage/share/mk/src.sys.obj.mk
==============================================================================
--- projects/runtime-coverage/share/mk/src.sys.obj.mk	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/share/mk/src.sys.obj.mk	Sun Nov  5 04:08:00 2017	(r325423)
@@ -77,13 +77,6 @@ OBJTOP:=	${OBJROOT}${TARGET:D${TARGET}.${TARGET_ARCH}:
 OBJTOP:=	${OBJROOT:H}
 .endif	# ${MK_UNIFIED_OBJDIR} == "yes"
 
-# Wait to validate MAKEOBJDIR until OBJTOP is set.
-.if defined(MAKEOBJDIR)
-.if ${MAKEOBJDIR:M/*} == ""
-.error Cannot use MAKEOBJDIR=${MAKEOBJDIR}${.newline}Unset MAKEOBJDIR to get default:  MAKEOBJDIR='${_default_makeobjdir}'
-.endif
-.endif
-
 # Fixup OBJROOT/OBJTOP if using MAKEOBJDIRPREFIX but leave it alone
 # for DIRDEPS_BUILD which really wants to know the absolute top at
 # all times.  This intenionally comes after adding TARGET.TARGET_ARCH
@@ -94,9 +87,24 @@ OBJTOP:=	${MAKEOBJDIRPREFIX}${SRCTOP}
 OBJROOT:=	${OBJTOP}/
 .endif
 
-# Try to enable MK_AUTO_OBJ by default if we can write to the OBJROOT.  Only
-# do this if AUTO_OBJ is not disabled by the user, not cleaning, and this
-# is the first make ran.
+# Wait to validate MAKEOBJDIR until OBJTOP is set.
+.if defined(MAKEOBJDIR)
+.if ${MAKEOBJDIR:M/*} == ""
+.error Cannot use MAKEOBJDIR=${MAKEOBJDIR}${.newline}Unset MAKEOBJDIR to get default:  MAKEOBJDIR='${_default_makeobjdir}'
+.endif
+.endif
+
+# __objdir is the expected .OBJDIR we want to use and that auto.obj.mk will
+# try to create.
+.if !empty(MAKEOBJDIRPREFIX)
+__objdir:=	${MAKEOBJDIRPREFIX}${.CURDIR}
+.elif !empty(MAKEOBJDIR)
+__objdir:=	${MAKEOBJDIR}
+.endif
+
+# Try to enable MK_AUTO_OBJ by default if we can write to the __objdir.  Only
+# do this if AUTO_OBJ is not disabled by the user, not cleaning, and this is
+# the first make ran.
 .if 0 && ${.MAKE.LEVEL} == 0 && \
     ${MK_AUTO_OBJ} == "no" && empty(.MAKEOVERRIDES:MMK_AUTO_OBJ) && \
     !defined(WITHOUT_AUTO_OBJ) && !make(showconfig) && !make(print-dir) && \
@@ -138,15 +146,13 @@ CheckAutoObj() { \
 		echo no; \
 	fi; \
 }
-.if !empty(MAKEOBJDIRPREFIX)
-WANTED_OBJDIR=	${MAKEOBJDIRPREFIX}${.CURDIR}
-.else
-WANTED_OBJDIR=	${MAKEOBJDIR}
+.if !empty(__objdir)
+__objdir_writable!= \
+	${CheckAutoObj}; CheckAutoObj "${__objdir}" || echo no
 .endif
-OBJDIR_WRITABLE!= \
-	${CheckAutoObj}; CheckAutoObj "${WANTED_OBJDIR}" || echo no
+__objdir_writable?= no
 # Export the decision to sub-makes.
-MK_AUTO_OBJ:=	${OBJDIR_WRITABLE}
+MK_AUTO_OBJ:=	${__objdir_writable}
 .export MK_AUTO_OBJ
 .elif make(showconfig)
 # Need to export for showconfig internally running make -dg1.  It is enabled
@@ -154,14 +160,11 @@ MK_AUTO_OBJ:=	${OBJDIR_WRITABLE}
 .export MK_AUTO_OBJ
 .endif	# ${MK_AUTO_OBJ} == "no" && ...
 
-# Assign this directory as .OBJDIR if possible after determining if AUTO_OBJ
-# can be enabled by default.
-.if ${MK_AUTO_OBJ} == "no"
+# Assign this directory as .OBJDIR if possible.
+#
 # The expected OBJDIR already exists, set it as .OBJDIR.
-.if !empty(MAKEOBJDIRPREFIX) && exists(${MAKEOBJDIRPREFIX}${.CURDIR})
-.OBJDIR: ${MAKEOBJDIRPREFIX}${.CURDIR}
-.elif exists(${MAKEOBJDIR})
-.OBJDIR: ${MAKEOBJDIR}
+.if !empty(__objdir) && exists(${__objdir})
+.OBJDIR: ${__objdir}
 # Special case to work around bmake bug.  If the top-level .OBJDIR does not yet
 # exist and MAKEOBJDIR is passed into environment and yield a blank value,
 # bmake will incorrectly set .OBJDIR=${SRCTOP}/ rather than the expected
@@ -169,5 +172,10 @@ MK_AUTO_OBJ:=	${OBJDIR_WRITABLE}
 .elif ${MAKE_VERSION} <= 20170720 && \
     ${.CURDIR} == ${SRCTOP} && ${.OBJDIR} == ${SRCTOP}/
 .OBJDIR: ${.CURDIR}
+.else
+# The OBJDIR we wanted does not yet exist, ensure we default to safe .CURDIR
+# in case make started with a bogus MAKEOBJDIR, that expanded before OBJTOP
+# was set, that happened to match some unexpected directory.  Either
+# auto.obj.mk or bsd.obj.mk will create the directory and fix .OBJDIR later.
+.OBJDIR: ${.CURDIR}
 .endif
-.endif	# ${MK_AUTO_OBJ} == "no"

Modified: projects/runtime-coverage/share/mk/suite.test.mk
==============================================================================
--- projects/runtime-coverage/share/mk/suite.test.mk	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/share/mk/suite.test.mk	Sun Nov  5 04:08:00 2017	(r325423)
@@ -79,11 +79,11 @@ Kyuafile: Makefile
 
 KYUA= ${LOCALBASE}/bin/kyua
 
-MAKE_CHECK_SANDBOX_DIR=	${.OBJDIR}/checkdir
+MAKE_CHECK_SANDBOX_DIR=	checkdir
 CLEANDIRS+=	${MAKE_CHECK_SANDBOX_DIR}
 
 .if ${MK_MAKE_CHECK_USE_SANDBOX} != "no" && make(check)
-DESTDIR:=	${MAKE_CHECK_SANDBOX_DIR}
+DESTDIR:=	${.OBJDIR}/${MAKE_CHECK_SANDBOX_DIR}
 
 .if ${MK_MAKE_CHECK_TEST_WITH_COVERAGE} != "no"
 GCOV?=		gcov

Modified: projects/runtime-coverage/share/mk/sys.mk
==============================================================================
--- projects/runtime-coverage/share/mk/sys.mk	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/share/mk/sys.mk	Sun Nov  5 04:08:00 2017	(r325423)
@@ -125,12 +125,6 @@ NO_META_IGNORE_HOST_HEADERS=	1
 # is not expected.
 .if !make(showconfig) && !make(print-dir)
 .sinclude <auto.obj.mk>
-# The .OBJDIR was not set, disable MK_AUTO_OBJ so downstream checks won't
-# assume .OBJDIR is proper.
-.if defined(__objdir) && ${.OBJDIR} != ${__objdir}
-.MAKEOVERRIDES+= MK_AUTO_OBJ
-MK_AUTO_OBJ=	no
-.endif
 .endif
 .endif	# ${MK_AUTO_OBJ} == "yes"
 .else # bmake

Modified: projects/runtime-coverage/sys/amd64/amd64/genassym.c
==============================================================================
--- projects/runtime-coverage/sys/amd64/amd64/genassym.c	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/sys/amd64/amd64/genassym.c	Sun Nov  5 04:08:00 2017	(r325423)
@@ -81,7 +81,6 @@ ASSYM(TD_FLAGS, offsetof(struct thread, td_flags));
 ASSYM(TD_PCB, offsetof(struct thread, td_pcb));
 ASSYM(TD_PFLAGS, offsetof(struct thread, td_pflags));
 ASSYM(TD_PROC, offsetof(struct thread, td_proc));
-ASSYM(TD_TID, offsetof(struct thread, td_tid));
 ASSYM(TD_FRAME, offsetof(struct thread, td_frame));
 
 ASSYM(TDF_ASTPENDING, TDF_ASTPENDING);

Modified: projects/runtime-coverage/sys/arm/allwinner/if_awg.c
==============================================================================
--- projects/runtime-coverage/sys/arm/allwinner/if_awg.c	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/sys/arm/allwinner/if_awg.c	Sun Nov  5 04:08:00 2017	(r325423)
@@ -92,7 +92,7 @@ __FBSDID("$FreeBSD$");
 #define	TX_SKIP(n, o)		(((n) + (o)) & (TX_DESC_COUNT - 1))
 #define	RX_NEXT(n)		(((n) + 1) & (RX_DESC_COUNT - 1))
 
-#define	TX_MAX_SEGS		10
+#define	TX_MAX_SEGS		20
 
 #define	SOFT_RST_RETRY		1000
 #define	MII_BUSY_RETRY		1000
@@ -192,6 +192,7 @@ struct awg_softc {
 	struct resource		*res[_RES_NITEMS];
 	struct mtx		mtx;
 	if_t			ifp;
+	device_t		dev;
 	device_t		miibus;
 	struct callout		stat_ch;
 	struct task		link_task;
@@ -421,14 +422,18 @@ awg_setup_txbuf(struct awg_softc *sc, int index, struc
 	    sc->tx.buf_map[index].map, m, segs, &nsegs, BUS_DMA_NOWAIT);
 	if (error == EFBIG) {
 		m = m_collapse(m, M_NOWAIT, TX_MAX_SEGS);
-		if (m == NULL)
+		if (m == NULL) {
+			device_printf(sc->dev, "awg_setup_txbuf: m_collapse failed\n");
 			return (0);
+		}
 		*mp = m;
 		error = bus_dmamap_load_mbuf_sg(sc->tx.buf_tag,
 		    sc->tx.buf_map[index].map, m, segs, &nsegs, BUS_DMA_NOWAIT);
 	}
-	if (error != 0)
+	if (error != 0) {
+		device_printf(sc->dev, "awg_setup_txbuf: bus_dmamap_load_mbuf_sg failed\n");
 		return (0);
+	}
 
 	bus_dmamap_sync(sc->tx.buf_tag, sc->tx.buf_map[index].map,
 	    BUS_DMASYNC_PREWRITE);
@@ -1613,6 +1618,7 @@ awg_attach(device_t dev)
 	int error;
 
 	sc = device_get_softc(dev);
+	sc->dev = dev;
 	sc->type = ofw_bus_search_compatible(dev, compat_data)->ocd_data;
 	node = ofw_bus_get_node(dev);
 

Modified: projects/runtime-coverage/sys/conf/files.powerpc
==============================================================================
--- projects/runtime-coverage/sys/conf/files.powerpc	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/sys/conf/files.powerpc	Sun Nov  5 04:08:00 2017	(r325423)
@@ -141,6 +141,7 @@ powerpc/mpc85xx/ds1553_bus_fdt.c	optional	ds1553 fdt
 powerpc/mpc85xx/ds1553_core.c	optional	ds1553
 powerpc/mpc85xx/fsl_diu.c	optional	mpc85xx diu
 powerpc/mpc85xx/fsl_espi.c	optional	mpc85xx spibus
+powerpc/mpc85xx/fsl_sata.c	optional	mpc85xx ata
 powerpc/mpc85xx/i2c.c		optional	iicbus fdt
 powerpc/mpc85xx/isa.c		optional	mpc85xx isa
 powerpc/mpc85xx/lbc.c		optional	mpc85xx

Modified: projects/runtime-coverage/sys/i386/i386/genassym.c
==============================================================================
--- projects/runtime-coverage/sys/i386/i386/genassym.c	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/sys/i386/i386/genassym.c	Sun Nov  5 04:08:00 2017	(r325423)
@@ -88,7 +88,6 @@ ASSYM(TD_PCB, offsetof(struct thread, td_pcb));
 ASSYM(TD_PFLAGS, offsetof(struct thread, td_pflags));
 ASSYM(TD_PROC, offsetof(struct thread, td_proc));
 ASSYM(TD_MD, offsetof(struct thread, td_md));
-ASSYM(TD_TID, offsetof(struct thread, td_tid));
 
 ASSYM(TDP_CALLCHAIN, TDP_CALLCHAIN);
 

Modified: projects/runtime-coverage/sys/i386/i386/swtch.s
==============================================================================
--- projects/runtime-coverage/sys/i386/i386/swtch.s	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/sys/i386/i386/swtch.s	Sun Nov  5 04:08:00 2017	(r325423)
@@ -258,7 +258,6 @@ sw1:
 	movl	%eax,(%esp)
 
 	movl	%edx, PCPU(CURPCB)
-	movl	TD_TID(%ecx),%eax
 	movl	%ecx, PCPU(CURTHREAD)		/* into next thread */
 
 	/*

Modified: projects/runtime-coverage/sys/kern/imgact_shell.c
==============================================================================
--- projects/runtime-coverage/sys/kern/imgact_shell.c	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/sys/kern/imgact_shell.c	Sun Nov  5 04:08:00 2017	(r325423)
@@ -97,8 +97,7 @@ CTASSERT(MAXSHELLCMDLEN >= MAXINTERP + 3);
  * 6.x branch on May 28, 2005 (matching __FreeBSD_version 600029).
  */
 int
-exec_shell_imgact(imgp)
-	struct image_params *imgp;
+exec_shell_imgact(struct image_params *imgp)
 {
 	const char *image_header = imgp->image_header;
 	const char *ihp, *interpb, *interpe, *maxp, *optb, *opte, *fname;
@@ -125,7 +124,7 @@ exec_shell_imgact(imgp)
 	 * However, we don't know how far into the page the contents are
 	 * valid -- the actual file might be much shorter than the page.
 	 * So find out the file size.
- 	 */
+	 */
 	error = VOP_GETATTR(imgp->vp, &vattr, imgp->proc->p_ucred);
 	if (error)
 		return (error);

Modified: projects/runtime-coverage/sys/kern/kern_umtx.c
==============================================================================
--- projects/runtime-coverage/sys/kern/kern_umtx.c	Sun Nov  5 03:02:19 2017	(r325422)
+++ projects/runtime-coverage/sys/kern/kern_umtx.c	Sun Nov  5 04:08:00 2017	(r325423)
@@ -1579,8 +1579,7 @@ umtx_pi_setowner(struct umtx_pi *pi, struct thread *ow
 
 	uq_owner = owner->td_umtxq;
 	mtx_assert(&umtx_lock, MA_OWNED);
-	if (pi->pi_owner != NULL)
-		panic("pi_owner != NULL");
+	MPASS(pi->pi_owner == NULL);
 	pi->pi_owner = owner;
 	TAILQ_INSERT_TAIL(&uq_owner->uq_pi_contested, pi, pi_link);
 }

Copied: projects/runtime-coverage/sys/powerpc/mpc85xx/fsl_sata.c (from r325422, head/sys/powerpc/mpc85xx/fsl_sata.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/runtime-coverage/sys/powerpc/mpc85xx/fsl_sata.c	Sun Nov  5 04:08:00 2017	(r325423, copy of r325422, head/sys/powerpc/mpc85xx/fsl_sata.c)
@@ -0,0 +1,1917 @@
+/*-
+ * Copyright (c) 2009-2012 Alexander Motin <mav at FreeBSD.org>
+ * Copyright (c) 2017 Justin Hibbits <jhibbits at FreeBSD.org>
+ * 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,
+ *    without modification, immediately at the beginning of the file.
+ * 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 <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/module.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/bus.h>
+#include <sys/conf.h>
+#include <sys/endian.h>
+#include <sys/lock.h>
+#include <sys/malloc.h>
+#include <sys/mutex.h>
+#include <sys/rman.h>
+
+#include <cam/cam.h>
+#include <cam/cam_ccb.h>
+#include <cam/cam_sim.h>
+#include <cam/cam_xpt_sim.h>
+#include <cam/cam_debug.h>
+
+#include <dev/ofw/ofw_bus_subr.h>
+
+#include <machine/bus.h>
+#include <machine/resource.h>
+
+#include "fsl_sata.h"
+
+struct fsl_sata_channel;
+struct fsl_sata_slot;
+enum fsl_sata_err_type;
+struct fsl_sata_cmd_tab;
+
+
+/* local prototypes */
+static int fsl_sata_init(device_t dev);
+static int fsl_sata_deinit(device_t dev);
+static int fsl_sata_suspend(device_t dev);
+static int fsl_sata_resume(device_t dev);
+static void fsl_sata_pm(void *arg);
+static void fsl_sata_intr(void *arg);
+static void fsl_sata_intr_main(struct fsl_sata_channel *ch, uint32_t istatus);
+static void fsl_sata_begin_transaction(struct fsl_sata_channel *ch, union ccb *ccb);
+static void fsl_sata_dmasetprd(void *arg, bus_dma_segment_t *segs, int nsegs, int error);
+static void fsl_sata_execute_transaction(struct fsl_sata_slot *slot);
+static void fsl_sata_timeout(struct fsl_sata_slot *slot);
+static void fsl_sata_end_transaction(struct fsl_sata_slot *slot, enum fsl_sata_err_type et);
+static int fsl_sata_setup_fis(struct fsl_sata_channel *ch, struct fsl_sata_cmd_tab *ctp, union ccb *ccb, int tag);
+static void fsl_sata_dmainit(device_t dev);
+static void fsl_sata_dmasetupc_cb(void *xsc, bus_dma_segment_t *segs, int nsegs, int error);
+static void fsl_sata_dmafini(device_t dev);
+static void fsl_sata_slotsalloc(device_t dev);
+static void fsl_sata_slotsfree(device_t dev);
+static void fsl_sata_reset(struct fsl_sata_channel *ch);
+static void fsl_sata_start(struct fsl_sata_channel *ch);
+static void fsl_sata_stop(struct fsl_sata_channel *ch);
+
+static void fsl_sata_issue_recovery(struct fsl_sata_channel *ch);
+static void fsl_sata_process_read_log(struct fsl_sata_channel *ch, union ccb *ccb);
+static void fsl_sata_process_request_sense(struct fsl_sata_channel *ch, union ccb *ccb);
+
+static void fsl_sataaction(struct cam_sim *sim, union ccb *ccb);
+static void fsl_satapoll(struct cam_sim *sim);
+
+static MALLOC_DEFINE(M_FSL_SATA, "FSL SATA driver", "FSL SATA driver data buffers");
+
+#define	recovery_type		spriv_field0
+#define	RECOVERY_NONE		0
+#define	RECOVERY_READ_LOG	1
+#define	RECOVERY_REQUEST_SENSE	2
+#define	recovery_slot		spriv_field1
+
+#define	FSL_SATA_P_CQR		0x0
+#define	FSL_SATA_P_CAR		0x4
+#define	FSL_SATA_P_CCR		0x10
+#define	FSL_SATA_P_CER			0x18
+#define	FSL_SATA_P_DER		0x20
+#define	FSL_SATA_P_CHBA		0x24
+#define	FSL_SATA_P_HSTS		0x28
+#define	  FSL_SATA_P_HSTS_HS_ON	  0x80000000
+#define	  FSL_SATA_P_HSTS_ME	  0x00040000
+#define	  FSL_SATA_P_HSTS_DLM	  0x00001000
+#define	  FSL_SATA_P_HSTS_FOT	  0x00000200
+#define	  FSL_SATA_P_HSTS_FOR	  0x00000100
+#define	  FSL_SATA_P_HSTS_FE	  0x00000020
+#define	  FSL_SATA_P_HSTS_PR	  0x00000010
+#define	  FSL_SATA_P_HSTS_SNTFU	  0x00000004
+#define	  FSL_SATA_P_HSTS_DE	  0x00000002
+#define	FSL_SATA_P_HCTRL	0x2c
+#define	  FSL_SATA_P_HCTRL_HC_ON  0x80000000
+#define	  FSL_SATA_P_HCTRL_HC_FORCE_OFF  0x40000000
+#define	  FSL_SATA_P_HCTRL_ENT	  0x10000000
+#define	  FSL_SATA_P_HCTRL_SNOOP  0x00000400
+#define	  FSL_SATA_P_HCTRL_PM	  0x00000200
+#define	  FSL_SATA_P_HCTRL_FATAL  0x00000020
+#define	  FSL_SATA_P_HCTRL_PHYRDY 0x00000010
+#define	  FSL_SATA_P_HCTRL_SIG	  0x00000008
+#define	  FSL_SATA_P_HCTRL_SNTFY  0x00000004

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


More information about the svn-src-projects mailing list