Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Feb 2015 19:24:38 +0000 (UTC)
From:      Garrett Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r278777 - in projects/building-blocks: bin/pkill/tests cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io etc/rc.d lib/libc/gen lib/libc/include lib/libc/regex lib/libc/sys lib/libi...
Message-ID:  <201502141924.t1EJOcrE030052@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Sat Feb 14 19:24:38 2015
New Revision: 278777
URL: https://svnweb.freebsd.org/changeset/base/278777

Log:
  MFhead @ r278776

Deleted:
  projects/building-blocks/lib/libiconv/
Modified:
  projects/building-blocks/bin/pkill/tests/pgrep-j_test.sh
  projects/building-blocks/bin/pkill/tests/pkill-j_test.sh
  projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.c
  projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.d
  projects/building-blocks/etc/rc.d/LOGIN
  projects/building-blocks/etc/rc.d/local_unbound
  projects/building-blocks/etc/rc.d/utx
  projects/building-blocks/lib/libc/gen/_spinlock_stub.c
  projects/building-blocks/lib/libc/gen/dlopen.3
  projects/building-blocks/lib/libc/gen/ulimit.c
  projects/building-blocks/lib/libc/include/libc_private.h
  projects/building-blocks/lib/libc/regex/regcomp.c
  projects/building-blocks/lib/libc/sys/interposing_table.c
  projects/building-blocks/lib/libproc/proc_sym.c
  projects/building-blocks/lib/libthr/thread/thr_private.h
  projects/building-blocks/lib/libthr/thread/thr_spinlock.c
  projects/building-blocks/lib/libthr/thread/thr_syscalls.c
  projects/building-blocks/sbin/sysctl/sysctl.8
  projects/building-blocks/sbin/sysctl/sysctl.c
  projects/building-blocks/share/mk/bsd.lib.mk
  projects/building-blocks/share/mk/bsd.prog.mk
  projects/building-blocks/sys/amd64/amd64/db_disasm.c
  projects/building-blocks/sys/arm/arm/cpuinfo.c
  projects/building-blocks/sys/cam/ctl/ctl_backend_block.c
  projects/building-blocks/sys/cam/ctl/ctl_backend_ramdisk.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300.h
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_beacon.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_eeprom.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_freebsd.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_freebsd_inc.h
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_gpio.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_keycache.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_misc.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_osprey22.ini
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_power.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_recv_ds.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_reset.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit.c
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9340.ini
  projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9580.ini
  projects/building-blocks/sys/contrib/vchiq/interface/compat/vchi_bsd.h
  projects/building-blocks/sys/dev/ath/if_ath_pci.c
  projects/building-blocks/sys/dev/dwc/if_dwc.c
  projects/building-blocks/sys/dev/netmap/netmap.c
  projects/building-blocks/sys/dev/oce/oce_mbox.c
  projects/building-blocks/sys/dev/smc/if_smc.c
  projects/building-blocks/sys/dev/vt/font/vt_mouse_cursor.c
  projects/building-blocks/sys/dev/wpi/if_wpi.c
  projects/building-blocks/sys/dev/wpi/if_wpireg.h
  projects/building-blocks/sys/i386/i386/db_disasm.c
  projects/building-blocks/sys/kern/imgact_elf.c
  projects/building-blocks/sys/kern/sysv_shm.c
  projects/building-blocks/sys/kern/vfs_subr.c
  projects/building-blocks/sys/net/if_bridge.c
  projects/building-blocks/sys/netgraph/ng_base.c
  projects/building-blocks/sys/ofed/include/linux/gfp.h
  projects/building-blocks/sys/ofed/include/linux/kernel.h
  projects/building-blocks/sys/ofed/include/linux/kref.h
  projects/building-blocks/sys/ofed/include/linux/pci.h
  projects/building-blocks/sys/sys/disk.h
  projects/building-blocks/sys/sys/sockbuf.h
  projects/building-blocks/sys/x86/acpica/madt.c
  projects/building-blocks/sys/x86/include/vmware.h
  projects/building-blocks/tools/tools/netmap/pkt-gen.c
  projects/building-blocks/usr.bin/gcore/elfcore.c
  projects/building-blocks/usr.sbin/flowctl/flowctl.c
  projects/building-blocks/usr.sbin/freebsd-update/freebsd-update.sh
  projects/building-blocks/usr.sbin/gssd/Makefile
  projects/building-blocks/usr.sbin/gssd/gssd.c
  projects/building-blocks/usr.sbin/pw/tests/pw_usernext.sh
Directory Properties:
  projects/building-blocks/   (props changed)
  projects/building-blocks/cddl/   (props changed)
  projects/building-blocks/cddl/contrib/opensolaris/   (props changed)
  projects/building-blocks/etc/   (props changed)
  projects/building-blocks/lib/libc/   (props changed)
  projects/building-blocks/sbin/   (props changed)
  projects/building-blocks/share/   (props changed)
  projects/building-blocks/sys/   (props changed)

Modified: projects/building-blocks/bin/pkill/tests/pgrep-j_test.sh
==============================================================================
--- projects/building-blocks/bin/pkill/tests/pgrep-j_test.sh	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/bin/pkill/tests/pgrep-j_test.sh	Sat Feb 14 19:24:38 2015	(r278777)
@@ -4,17 +4,7 @@
 jail_name_to_jid()
 {
 	local check_name="$1"
-	(
-		line="$(jls -n 2> /dev/null | grep  name=$check_name  )"
-		for nv in $line; do
-			local name="${nv%=*}"
-			if [ "${name}" = "jid" ]; then
-				eval $nv
-				echo $jid
-				break
-			fi
-		done
-	)
+	jls -j "$check_name" -s 2>/dev/null | tr ' ' '\n' | grep jid= | sed -e 's/.*=//g'
 }
 
 base=pgrep_j_test
@@ -37,10 +27,19 @@ jail -c path=/ name=${base}_1_1 ip4.addr
 jail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \
     command=daemon -p ${PWD}/${base}_1_2.pid $sleep $sleep_amount &
 
-jid1=$(jail_name_to_jid ${base}_1_1)
-jid2=$(jail_name_to_jid ${base}_1_2)
-jid="${jid1},${jid2}"
-pid1="$(pgrep -f -x -j $jid "$sleep $sleep_amount" | sort)"
+for i in `seq 1 10`; do
+	jid1=$(jail_name_to_jid ${base}_1_1)
+	jid2=$(jail_name_to_jid ${base}_1_2)
+	jid="${jid1},${jid2}"
+	case "$jid" in
+	[0-9]+,[0-9]+)
+		break
+		;;
+	esac
+	sleep 0.1
+done
+
+pid1="$(pgrep -f -x -j "$jid" "$sleep $sleep_amount" | sort)"
 pid2=$(printf "%s\n%s" "$(cat ${PWD}/${base}_1_1.pid)" \
     $(cat ${PWD}/${base}_1_2.pid) | sort)
 if [ "$pid1" = "$pid2" ]; then
@@ -50,6 +49,7 @@ else
 fi
 [ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid)
 [ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid)
+wait
 
 name="pgrep -j any"
 sleep_amount=6
@@ -70,6 +70,7 @@ else
 fi
 [ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid)
 [ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid)
+wait
 
 name="pgrep -j none"
 sleep_amount=7

Modified: projects/building-blocks/bin/pkill/tests/pkill-j_test.sh
==============================================================================
--- projects/building-blocks/bin/pkill/tests/pkill-j_test.sh	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/bin/pkill/tests/pkill-j_test.sh	Sat Feb 14 19:24:38 2015	(r278777)
@@ -4,99 +4,90 @@
 jail_name_to_jid()
 {
 	local check_name="$1"
-	(
-		line="$(jls -n 2> /dev/null | grep  name=$check_name  )"
-		for nv in $line; do
-			local name="${nv%=*}"
-			if [ "${name}" = "jid" ]; then
-				eval $nv
-				echo $jid
-				break
-			fi
-		done
-	)
+	jls -j "$check_name" -s 2>/dev/null | tr ' ' '\n' | grep jid= | sed -e 's/.*=//g'
 }
 
 base=pkill_j_test
 
+if [ `id -u` -ne 0 ]; then
+	echo "1..0 # skip Test needs uid 0."
+	exit 0
+fi
+
 echo "1..3"
 
+sleep=$(pwd)/sleep.txt
+ln -sf /bin/sleep $sleep
+
 name="pkill -j <jid>"
-if [ `id -u` -eq 0 ]; then
-	sleep=$(pwd)/sleep.txt
-	ln -sf /bin/sleep $sleep
-        jail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \
-            command=daemon -p ${PWD}/${base}_1_1.pid $sleep 5 &
+sleep_amount=5
+jail -c path=/ name=${base}_1_1 ip4.addr=127.0.0.1 \
+    command=daemon -p ${PWD}/${base}_1_1.pid $sleep $sleep_amount &
+
+jail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \
+    command=daemon -p ${PWD}/${base}_1_2.pid $sleep $sleep_amount &
 
-        jail -c path=/ name=${base}_1_2 ip4.addr=127.0.0.1 \
-            command=daemon -p ${PWD}/${base}_1_2.pid $sleep 5 &
+$sleep $sleep_amount &
 
-	$sleep 5 &
-	sleep 0.5
+for i in `seq 1 10`; do
 	jid1=$(jail_name_to_jid ${base}_1_1)
 	jid2=$(jail_name_to_jid ${base}_1_2)
 	jid="${jid1},${jid2}"
-	if pkill -f -j "$jid" $sleep && sleep 0.5 &&
-	    ! -f ${PWD}/${base}_1_1.pid &&
-	    ! -f ${PWD}/${base}_1_2.pid ; then
-		echo "ok 1 - $name"
-	else
-		echo "not ok 1 - $name"
-	fi 2>/dev/null
-	rm -f $sleep
-	[ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid)
-	[ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid)
-	wait
+	case "$jid" in
+	[0-9]+,[0-9]+)
+		break
+		;;
+	esac
+	sleep 0.1
+done
+
+if pkill -f -j "$jid" $sleep && sleep 0.5 &&
+    ! -f ${PWD}/${base}_1_1.pid &&
+    ! -f ${PWD}/${base}_1_2.pid ; then
+	echo "ok 1 - $name"
 else
-	echo "ok 1 - $name # skip Test needs uid 0."
-fi
+	echo "not ok 1 - $name"
+fi 2>/dev/null
+[ -f ${PWD}/${base}_1_1.pid ] && kill $(cat ${PWD}/${base}_1_1.pid)
+[ -f ${PWD}/${base}_1_2.pid ] && kill $(cat ${PWD}/${base}_1_2.pid)
+wait
 
 name="pkill -j any"
-if [ `id -u` -eq 0 ]; then
-	sleep=$(pwd)/sleep.txt
-	ln -sf /bin/sleep $sleep
-        jail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \
-            command=daemon -p ${PWD}/${base}_2_1.pid $sleep 5 &
-
-        jail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \
-            command=daemon -p ${PWD}/${base}_2_2.pid $sleep 5 &
-
-	$sleep 5 &
-	sleep 0.5
-	chpid3=$!
-	if pkill -f -j any $sleep && sleep 0.5 &&
-	    [ ! -f ${PWD}/${base}_2_1.pid -a
-	      ! -f ${PWD}/${base}_2_2.pid ] && kill $chpid3; then
-		echo "ok 2 - $name"
-	else
-		echo "not ok 2 - $name"
-	fi 2>/dev/null
-	rm -f $sleep
-	[ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid)
-	[ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid)
-	wait
+sleep_amount=6
+jail -c path=/ name=${base}_2_1 ip4.addr=127.0.0.1 \
+    command=daemon -p ${PWD}/${base}_2_1.pid $sleep $sleep_amount &
+
+jail -c path=/ name=${base}_2_2 ip4.addr=127.0.0.1 \
+    command=daemon -p ${PWD}/${base}_2_2.pid $sleep $sleep_amount &
+
+$sleep $sleep_amount &
+chpid3=$!
+sleep 0.5
+if pkill -f -j any $sleep && sleep 0.5 &&
+    [ ! -f ${PWD}/${base}_2_1.pid -a
+      ! -f ${PWD}/${base}_2_2.pid ] && kill $chpid3; then
+	echo "ok 2 - $name"
 else
-	echo "ok 2 - $name # skip Test needs uid 0."
-fi
+	echo "not ok 2 - $name"
+fi 2>/dev/null
+[ -f ${PWD}/${base}_2_1.pid ] && kill $(cat ${PWD}/${base}_2_1.pid)
+[ -f ${PWD}/${base}_2_2.pid ] && kill $(cat ${PWD}/${base}_2_2.pid)
+wait
 
 name="pkill -j none"
-if [ `id -u` -eq 0 ]; then
-	sleep=$(pwd)/sleep.txt
-	ln -sf /bin/sleep $sleep
-	daemon -p ${PWD}/${base}_3_1.pid $sleep 5
-	jail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \
-            command=daemon -p ${PWD}/${base}_3_2.pid $sleep 5 &
-	sleep 1
-	if pkill -f -j none "$sleep 5" && sleep 1 &&
-	    [ ! -f ${PWD}/${base}_3_1.pid -a -f ${PWD}/${base}_3_2.pid ] ; then
-		echo "ok 3 - $name"
-	else
-		ls ${PWD}/*.pid
-		echo "not ok 3 - $name"
-	fi 2>/dev/null
-	rm -f $sleep
-	[ -f ${PWD}/${base}_3_1.pid ] && kill $(cat ${base}_3_1.pid)
-	[ -f ${PWD}/${base}_3_2.pid ] && kill $(cat ${base}_3_2.pid)
+sleep_amount=7
+daemon -p ${PWD}/${base}_3_1.pid $sleep $sleep_amount
+jail -c path=/ name=${base}_3_2 ip4.addr=127.0.0.1 \
+    command=daemon -p ${PWD}/${base}_3_2.pid $sleep $sleep_amount &
+sleep 1
+if pkill -f -j none "$sleep $sleep_amount" && sleep 1 &&
+    [ ! -f ${PWD}/${base}_3_1.pid -a -f ${PWD}/${base}_3_2.pid ] ; then
+	echo "ok 3 - $name"
 else
-	echo "ok 3 - $name # skip Test needs uid 0."
-fi
+	ls ${PWD}/*.pid
+	echo "not ok 3 - $name"
+fi 2>/dev/null
+[ -f ${PWD}/${base}_3_1.pid ] && kill $(cat ${base}_3_1.pid)
+[ -f ${PWD}/${base}_3_2.pid ] && kill $(cat ${base}_3_2.pid)
+
+rm -f $sleep

Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.c
==============================================================================
--- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -26,6 +26,8 @@
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
 
+#include <sys/ioctl.h>
+
 #include <assert.h>
 #include <setjmp.h>
 #include <signal.h>
@@ -69,7 +71,7 @@ main(int argc, char *argv[])
 	 */
 	if (sigsetjmp(env, 1) == 0) {
 		for (;;)
-			(void) ioctl(-1, -1, NULL);
+			(void) ioctl(-1, 0, NULL);
 	}
 
 	/*
@@ -80,20 +82,19 @@ main(int argc, char *argv[])
 	fds[n++] = open(file, O_WRONLY);
 	fds[n++] = open(file, O_RDWR);
 
-	fds[n++] = open(file, O_RDWR | O_APPEND | O_CREAT | O_DSYNC |
-	    O_LARGEFILE | O_NOCTTY | O_NONBLOCK | O_NDELAY | O_RSYNC |
-	    O_SYNC | O_TRUNC | O_XATTR, 0666);
+	fds[n++] = open(file, O_RDWR | O_APPEND | O_CREAT |
+	    O_NOCTTY | O_NONBLOCK | O_NDELAY | O_SYNC | O_TRUNC | 0666);
 
 	fds[n++] = open(file, O_RDWR);
 	(void) lseek(fds[n - 1], 123, SEEK_SET);
 
 	/*
 	 * Once we have all the file descriptors in the state we want to test,
-	 * issue a bogus ioctl() on each fd with cmd -1 and arg NULL to whack
+	 * issue a bogus ioctl() on each fd with cmd 0 and arg NULL to whack
 	 * our DTrace script into recording the content of the fds[] array.
 	 */
 	for (i = 0; i < n; i++)
-		(void) ioctl(fds[i], -1, NULL);
+		(void) ioctl(fds[i], 0, NULL);
 
 	assert(n <= sizeof (fds) / sizeof (fds[0]));
 	exit(0);

Modified: projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.d
==============================================================================
--- projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.d	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.d	Sat Feb 14 19:24:38 2015	(r278777)
@@ -36,7 +36,7 @@ syscall::ioctl:entry
 }
 
 syscall::ioctl:entry
-/pid == $1 && arg0 != -1u && arg1 == -1u && arg2 == NULL/
+/pid == $1 && arg0 != -1u && arg1 == 0 && arg2 == NULL/
 {
 	printf("fds[%d] fi_name = %s\n", arg0, fds[arg0].fi_name);
 	printf("fds[%d] fi_dirname = %s\n", arg0, fds[arg0].fi_dirname);

Modified: projects/building-blocks/etc/rc.d/LOGIN
==============================================================================
--- projects/building-blocks/etc/rc.d/LOGIN	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/etc/rc.d/LOGIN	Sat Feb 14 19:24:38 2015	(r278777)
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: LOGIN
-# REQUIRE: DAEMON utx
+# REQUIRE: DAEMON
 
 #	This is a dummy dependency to ensure user services such as xdm,
 #	inetd, cron and kerberos are started after everything else, in case

Modified: projects/building-blocks/etc/rc.d/local_unbound
==============================================================================
--- projects/building-blocks/etc/rc.d/local_unbound	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/etc/rc.d/local_unbound	Sat Feb 14 19:24:38 2015	(r278777)
@@ -5,6 +5,7 @@
 
 # PROVIDE: local_unbound DNS
 # REQUIRE: FILESYSTEMS netif resolv routing
+# BEFORE: NETWORKING
 # KEYWORD: shutdown
 
 . /etc/rc.subr

Modified: projects/building-blocks/etc/rc.d/utx
==============================================================================
--- projects/building-blocks/etc/rc.d/utx	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/etc/rc.d/utx	Sat Feb 14 19:24:38 2015	(r278777)
@@ -5,6 +5,7 @@
 
 # PROVIDE: utx
 # REQUIRE: DAEMON FILESYSTEMS
+# BEFORE: LOGIN
 # KEYWORD: shutdown
 
 . /etc/rc.subr

Modified: projects/building-blocks/lib/libc/gen/_spinlock_stub.c
==============================================================================
--- projects/building-blocks/lib/libc/gen/_spinlock_stub.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/lib/libc/gen/_spinlock_stub.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -33,51 +33,48 @@ __FBSDID("$FreeBSD$");
 #include <stdio.h>
 
 #include "spinlock.h"
+#include "libc_private.h"
 
 long _atomic_lock_stub(volatile long *);
 void _spinlock_stub(spinlock_t *);
 void _spinunlock_stub(spinlock_t *);
 void _spinlock_debug_stub(spinlock_t *, char *, int);
 
-/*
- * Declare weak definitions in case the application is not linked
- * with libpthread.
- */
 __weak_reference(_atomic_lock_stub, _atomic_lock);
-__weak_reference(_spinlock_stub, _spinlock);
-__weak_reference(_spinunlock_stub, _spinunlock);
-__weak_reference(_spinlock_debug_stub, _spinlock_debug);
-
-/*
- * This function is a stub for the _atomic_lock function in libpthread.
- */
+
 long
 _atomic_lock_stub(volatile long *lck __unused)
 {
 	return (0L);
 }
 
+__weak_reference(_spinlock, _spinlock_debug);
+#pragma weak _spinlock
+void
+_spinlock(spinlock_t *lck)
+{
+
+	((void (*)(spinlock_t *lck))__libc_interposing[INTERPOS_spinlock])
+	    (lck);
 
-/*
- * This function is a stub for the spinlock function in libpthread.
- */
+}
+
+#pragma weak _spinlock
 void
-_spinlock_stub(spinlock_t *lck __unused)
+_spinunlock(spinlock_t *lck)
 {
+
+	((void (*)(spinlock_t *lck))__libc_interposing[INTERPOS_spinunlock])
+	    (lck);
+
 }
 
-/*
- * This function is a stub for the spinunlock function in libpthread.
- */
 void
-_spinunlock_stub(spinlock_t *lck __unused)
+__libc_spinlock_stub(spinlock_t *lck __unused)
 {
 }
 
-/*
- * This function is a stub for the debug spinlock function in libpthread.
- */
 void
-_spinlock_debug_stub(spinlock_t *lck __unused, char *fname __unused, int lineno __unused)
+__libc_spinunlock_stub(spinlock_t *lck __unused)
 {
 }

Modified: projects/building-blocks/lib/libc/gen/dlopen.3
==============================================================================
--- projects/building-blocks/lib/libc/gen/dlopen.3	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/lib/libc/gen/dlopen.3	Sat Feb 14 19:24:38 2015	(r278777)
@@ -32,7 +32,7 @@
 .\" @(#) dlopen.3 1.6 90/01/31 SMI
 .\" $FreeBSD$
 .\"
-.Dd December 21, 2011
+.Dd February 14, 2015
 .Dt DLOPEN 3
 .Os
 .Sh NAME
@@ -236,7 +236,7 @@ as follows, in the given order:
 The referencing object itself (or the object from which the call to
 .Fn dlsym
 is made), if that object was linked using the
-.Fl Wsymbolic
+.Fl Bsymbolic
 option to
 .Xr ld 1 .
 .It

Modified: projects/building-blocks/lib/libc/gen/ulimit.c
==============================================================================
--- projects/building-blocks/lib/libc/gen/ulimit.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/lib/libc/gen/ulimit.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -53,13 +53,13 @@ ulimit(int cmd, ...)
 		va_start(ap, cmd);
 		arg = va_arg(ap, long);
 		va_end(ap);
-		if (arg > RLIM_INFINITY / 512 || arg < 0)
-			arg = RLIM_INFINITY / 512;
 		limit.rlim_max = limit.rlim_cur = (rlim_t)arg * 512;
 
 		/* The setrlimit() function sets errno to EPERM if needed. */
 		if (setrlimit(RLIMIT_FSIZE, &limit) == -1)
 			return (-1);
+		if (arg * 512 > LONG_MAX)
+			return (LONG_MAX);
 		return (arg);
 	} else {
 		errno = EINVAL;

Modified: projects/building-blocks/lib/libc/include/libc_private.h
==============================================================================
--- projects/building-blocks/lib/libc/include/libc_private.h	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/lib/libc/include/libc_private.h	Sat Feb 14 19:24:38 2015	(r278777)
@@ -95,6 +95,9 @@ do {							\
 		_SPINUNLOCK(&__stdio_thread_lock);	\
 } while (0)
 
+void		__libc_spinlock_stub(struct _spinlock *);
+void		__libc_spinunlock_stub(struct _spinlock *);
+
 /*
  * Indexes into the pthread jump table.
  *
@@ -216,6 +219,8 @@ enum {
 	INTERPOS_write,
 	INTERPOS_writev,
 	INTERPOS__pthread_mutex_init_calloc_cb,
+	INTERPOS_spinlock,
+	INTERPOS_spinunlock,
 	INTERPOS_MAX
 };
 

Modified: projects/building-blocks/lib/libc/regex/regcomp.c
==============================================================================
--- projects/building-blocks/lib/libc/regex/regcomp.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/lib/libc/regex/regcomp.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -192,6 +192,7 @@ regcomp(regex_t * __restrict preg,
 	struct parse *p = &pa;
 	int i;
 	size_t len;
+	size_t maxlen;
 #ifdef REDEBUG
 #	define	GOODFLAGS(f)	(f)
 #else
@@ -213,7 +214,23 @@ regcomp(regex_t * __restrict preg,
 	g = (struct re_guts *)malloc(sizeof(struct re_guts));
 	if (g == NULL)
 		return(REG_ESPACE);
+	/*
+	 * Limit the pattern space to avoid a 32-bit overflow on buffer
+	 * extension.  Also avoid any signed overflow in case of conversion
+	 * so make the real limit based on a 31-bit overflow.
+	 *
+	 * Likely not applicable on 64-bit systems but handle the case
+	 * generically (who are we to stop people from using ~715MB+
+	 * patterns?).
+	 */
+	maxlen = ((size_t)-1 >> 1) / sizeof(sop) * 2 / 3;
+	if (len >= maxlen) {
+		free((char *)g);
+		return(REG_ESPACE);
+	}
 	p->ssize = len/(size_t)2*(size_t)3 + (size_t)1;	/* ugh */
+	assert(p->ssize >= len);
+
 	p->strip = (sop *)malloc(p->ssize * sizeof(sop));
 	p->slen = 0;
 	if (p->strip == NULL) {

Modified: projects/building-blocks/lib/libc/sys/interposing_table.c
==============================================================================
--- projects/building-blocks/lib/libc/sys/interposing_table.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/lib/libc/sys/interposing_table.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -73,6 +73,8 @@ interpos_func_t __libc_interposing[INTER
 	SLOT(write, __sys_write),
 	SLOT(writev, __sys_writev),
 	SLOT(_pthread_mutex_init_calloc_cb, _pthread_mutex_init_calloc_cb_stub),
+	SLOT(spinlock, __libc_spinlock_stub),
+	SLOT(spinunlock, __libc_spinunlock_stub),
 };
 #undef SLOT
 

Modified: projects/building-blocks/lib/libproc/proc_sym.c
==============================================================================
--- projects/building-blocks/lib/libproc/proc_sym.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/lib/libproc/proc_sym.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -82,6 +82,21 @@ fail:
 	strlcpy(buf, symbol, len);
 }
 
+static int
+find_dbg_obj(const char *path)
+{
+	int fd;
+	char dbg_path[PATH_MAX];
+
+	snprintf(dbg_path, sizeof(dbg_path),
+	    "/usr/lib/debug/%s.debug", path);
+	fd = open(dbg_path, O_RDONLY);
+	if (fd > 0)
+		return (fd);
+	else
+		return (open(path, O_RDONLY));
+}
+
 static void
 proc_rdl2prmap(rd_loadobj_t *rdl, prmap_t *map)
 {
@@ -295,7 +310,7 @@ proc_addr2sym(struct proc_handle *p, uin
 
 	if ((map = proc_addr2map(p, addr)) == NULL)
 		return (-1);
-	if ((fd = open(map->pr_mapname, O_RDONLY, 0)) < 0) {
+	if ((fd = find_dbg_obj(map->pr_mapname)) < 0) {
 		DPRINTF("ERROR: open %s failed", map->pr_mapname);
 		goto err0;
 	}
@@ -443,7 +458,7 @@ proc_name2sym(struct proc_handle *p, con
 		DPRINTFX("ERROR: couldn't find object %s", object);
 		goto err0;
 	}
-	if ((fd = open(map->pr_mapname, O_RDONLY, 0)) < 0) {
+	if ((fd = find_dbg_obj(map->pr_mapname)) < 0) {
 		DPRINTF("ERROR: open %s failed", map->pr_mapname);
 		goto err0;
 	}
@@ -539,7 +554,7 @@ proc_iter_symbyaddr(struct proc_handle *
 
 	if ((map = proc_name2map(p, object)) == NULL)
 		return (-1);
-	if ((fd = open(map->pr_mapname, O_RDONLY)) < 0) {
+	if ((fd = find_dbg_obj(map->pr_mapname)) < 0) {
 		DPRINTF("ERROR: open %s failed", map->pr_mapname);
 		goto err0;
 	}

Modified: projects/building-blocks/lib/libthr/thread/thr_private.h
==============================================================================
--- projects/building-blocks/lib/libthr/thread/thr_private.h	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/lib/libthr/thread/thr_private.h	Sat Feb 14 19:24:38 2015	(r278777)
@@ -928,6 +928,10 @@ int __thr_sigwait(const sigset_t *set, i
 int __thr_sigwaitinfo(const sigset_t *set, siginfo_t *info);
 int __thr_swapcontext(ucontext_t *oucp, const ucontext_t *ucp);
 
+struct _spinlock;
+void __thr_spinunlock(struct _spinlock *lck);
+void __thr_spinlock(struct _spinlock *lck);
+
 struct tcb *_tcb_ctor(struct pthread *, int);
 void	_tcb_dtor(struct tcb *);
 

Modified: projects/building-blocks/lib/libthr/thread/thr_spinlock.c
==============================================================================
--- projects/building-blocks/lib/libthr/thread/thr_spinlock.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/lib/libthr/thread/thr_spinlock.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -61,7 +61,7 @@ static void	init_spinlock(spinlock_t *lc
  */
 
 void
-_spinunlock(spinlock_t *lck)
+__thr_spinunlock(spinlock_t *lck)
 {
 	struct spinlock_extra	*_extra;
 
@@ -70,7 +70,7 @@ _spinunlock(spinlock_t *lck)
 }
 
 void
-_spinlock(spinlock_t *lck)
+__thr_spinlock(spinlock_t *lck)
 {
 	struct spinlock_extra *_extra;
 
@@ -84,12 +84,6 @@ _spinlock(spinlock_t *lck)
 	THR_UMUTEX_LOCK(_get_curthread(), &_extra->lock);
 }
 
-void
-_spinlock_debug(spinlock_t *lck, char *fname __unused, int lineno __unused)
-{
-	_spinlock(lck);
-}
-
 static void
 init_spinlock(spinlock_t *lck)
 {

Modified: projects/building-blocks/lib/libthr/thread/thr_syscalls.c
==============================================================================
--- projects/building-blocks/lib/libthr/thread/thr_syscalls.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/lib/libthr/thread/thr_syscalls.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -597,6 +597,8 @@ __thr_interpose_libc(void)
 	SLOT(wait4);
 	SLOT(write);
 	SLOT(writev);
+	SLOT(spinlock);
+	SLOT(spinunlock);
 #undef SLOT
 	*(__libc_interposing_slot(
 	    INTERPOS__pthread_mutex_init_calloc_cb)) =

Modified: projects/building-blocks/sbin/sysctl/sysctl.8
==============================================================================
--- projects/building-blocks/sbin/sysctl/sysctl.8	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/sbin/sysctl/sysctl.8	Sat Feb 14 19:24:38 2015	(r278777)
@@ -28,7 +28,7 @@
 .\"	From: @(#)sysctl.8	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd December 13, 2012
+.Dd February 12, 2015
 .Dt SYSCTL 8
 .Os
 .Sh NAME
@@ -37,11 +37,13 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl bdehiNnoRTqx
+.Op Fl B Ar bufsize
 .Op Fl f Ar filename
 .Ar name Ns Op = Ns Ar value
 .Ar ...
 .Nm
 .Op Fl bdehNnoRTqx
+.Op Fl B Ar bufsize
 .Fl a
 .Sh DESCRIPTION
 The
@@ -68,6 +70,15 @@ the command line.
 Force the value of the variable(s) to be output in raw, binary format.
 No names are printed and no terminating newlines are output.
 This is mostly useful with a single variable.
+.It Fl B Ar bufsize
+Set the buffer size to read from the
+.Nm
+to
+.Ar bufsize .
+This is necessary for a
+.Nm
+that has variable length, and the probe value of 0 is a valid length, such as
+.Va kern.arandom .
 .It Fl d
 Print the description of the variable instead of its value.
 .It Fl e
@@ -128,7 +139,7 @@ Suppress some warnings generated by
 .Nm
 to standard error.
 .It Fl T
-Display only variables that are setable via loader (CTLFLAG_TUN).
+Display only variables that are settable via loader (CTLFLAG_TUN).
 .It Fl W
 Display only writable variables that are not statistical.
 Useful for determining the set of runtime tunable sysctls.

Modified: projects/building-blocks/sbin/sysctl/sysctl.c
==============================================================================
--- projects/building-blocks/sbin/sysctl/sysctl.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/sbin/sysctl/sysctl.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -71,7 +71,7 @@ static const char rcsid[] =
 
 static const char *conffile;
 
-static int	aflag, bflag, dflag, eflag, hflag, iflag;
+static int	aflag, bflag, Bflag, dflag, eflag, hflag, iflag;
 static int	Nflag, nflag, oflag, qflag, Tflag, Wflag, xflag;
 
 static int	oidfmt(int *, int, char *, u_int *);
@@ -112,8 +112,8 @@ usage(void)
 {
 
 	(void)fprintf(stderr, "%s\n%s\n",
-	    "usage: sysctl [-bdehiNnoqTWx] [-f filename] name[=value] ...",
-	    "       sysctl [-bdehNnoqTWx] -a");
+	    "usage: sysctl [-bdehiNnoqTWx] [ -B <bufsize> ] [-f filename] name[=value] ...",
+	    "       sysctl [-bdehNnoqTWx] [ -B <bufsize> ] -a");
 	exit(1);
 }
 
@@ -127,7 +127,7 @@ main(int argc, char **argv)
 	setbuf(stdout,0);
 	setbuf(stderr,0);
 
-	while ((ch = getopt(argc, argv, "Aabdef:hiNnoqTwWxX")) != -1) {
+	while ((ch = getopt(argc, argv, "AabB:def:hiNnoqTwWxX")) != -1) {
 		switch (ch) {
 		case 'A':
 			/* compatibility */
@@ -139,6 +139,9 @@ main(int argc, char **argv)
 		case 'b':
 			bflag = 1;
 			break;
+		case 'B':
+			Bflag = strtol(optarg, NULL, 0);
+			break;
 		case 'd':
 			dflag = 1;
 			break;
@@ -222,7 +225,7 @@ parse(const char *string, int lineno)
 	unsigned int uintval;
 	long longval;
 	unsigned long ulongval;
-	size_t newsize = 0;
+	size_t newsize = Bflag;
 	int64_t i64val;
 	uint64_t u64val;
 	int mib[CTL_MAXNAME];
@@ -815,9 +818,13 @@ show_var(int *oid, int nlen)
 		return (0);
 	}
 	/* find an estimate of how much we need for this var */
-	j = 0;
-	i = sysctl(oid, nlen, 0, &j, 0, 0);
-	j += j; /* we want to be sure :-) */
+	if (Bflag)
+		j = Bflag;
+	else {
+		j = 0;
+		i = sysctl(oid, nlen, 0, &j, 0, 0);
+		j += j; /* we want to be sure :-) */
+	}
 
 	val = oval = malloc(j + 1);
 	if (val == NULL) {

Modified: projects/building-blocks/share/mk/bsd.lib.mk
==============================================================================
--- projects/building-blocks/share/mk/bsd.lib.mk	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/share/mk/bsd.lib.mk	Sat Feb 14 19:24:38 2015	(r278777)
@@ -286,7 +286,7 @@ _EXTRADEPEND:
 	mv $$TMP ${DEPENDFILE}
 .if !defined(NO_EXTRADEPEND) && defined(SHLIB_NAME)
 .if defined(DPADD) && !empty(DPADD)
-	echo ${SHLIB_NAME}: ${DPADD} >> ${DEPENDFILE}
+	echo ${SHLIB_NAME_FULL}: ${DPADD} >> ${DEPENDFILE}
 .endif
 .endif
 

Modified: projects/building-blocks/share/mk/bsd.prog.mk
==============================================================================
--- projects/building-blocks/share/mk/bsd.prog.mk	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/share/mk/bsd.prog.mk	Sat Feb 14 19:24:38 2015	(r278777)
@@ -168,15 +168,15 @@ CLEANFILES+= ${OBJS}
 _EXTRADEPEND:
 .if defined(LDFLAGS) && !empty(LDFLAGS:M-nostdlib)
 .if defined(DPADD) && !empty(DPADD)
-	echo ${PROG}: ${DPADD} >> ${DEPENDFILE}
+	echo ${PROG_FULL}: ${DPADD} >> ${DEPENDFILE}
 .endif
 .else
-	echo ${PROG}: ${LIBC} ${DPADD} >> ${DEPENDFILE}
+	echo ${PROG_FULL}: ${LIBC} ${DPADD} >> ${DEPENDFILE}
 .if defined(PROG_CXX)
 .if ${COMPILER_TYPE} == "clang" && empty(CXXFLAGS:M-stdlib=libstdc++)
-	echo ${PROG}: ${LIBCPLUSPLUS} >> ${DEPENDFILE}
+	echo ${PROG_FULL}: ${LIBCPLUSPLUS} >> ${DEPENDFILE}
 .else
-	echo ${PROG}: ${LIBSTDCPLUSPLUS} >> ${DEPENDFILE}
+	echo ${PROG_FULL}: ${LIBSTDCPLUSPLUS} >> ${DEPENDFILE}
 .endif
 .endif
 .endif

Modified: projects/building-blocks/sys/amd64/amd64/db_disasm.c
==============================================================================
--- projects/building-blocks/sys/amd64/amd64/db_disasm.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/sys/amd64/amd64/db_disasm.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -250,6 +250,26 @@ static const struct inst db_inst_0f0x[] 
 /*0f*/	{ "",      FALSE, NONE,  0,	      0 },
 };
 
+static const struct inst db_inst_0f1x[] = {
+/*10*/	{ "",      FALSE, NONE,  0,	      0 },
+/*11*/	{ "",      FALSE, NONE,  0,	      0 },
+/*12*/	{ "",      FALSE, NONE,  0,	      0 },
+/*13*/	{ "",      FALSE, NONE,  0,	      0 },
+/*14*/	{ "",      FALSE, NONE,  0,	      0 },
+/*15*/	{ "",      FALSE, NONE,  0,	      0 },
+/*16*/	{ "",      FALSE, NONE,  0,	      0 },
+/*17*/	{ "",      FALSE, NONE,  0,	      0 },
+
+/*18*/	{ "",      FALSE, NONE,  0,	      0 },
+/*19*/	{ "",      FALSE, NONE,  0,	      0 },
+/*1a*/	{ "",      FALSE, NONE,  0,	      0 },
+/*1b*/	{ "",      FALSE, NONE,  0,	      0 },
+/*1c*/	{ "",      FALSE, NONE,  0,	      0 },
+/*1d*/	{ "",      FALSE, NONE,  0,	      0 },
+/*1e*/	{ "",      FALSE, NONE,  0,	      0 },
+/*1f*/	{ "nopl",  TRUE,  SDEP,  0,	      "nopw" },
+};
+
 static const struct inst db_inst_0f2x[] = {
 /*20*/	{ "mov",   TRUE,  LONG,  op2(CR,El),  0 },
 /*21*/	{ "mov",   TRUE,  LONG,  op2(DR,El),  0 },
@@ -431,7 +451,7 @@ static const struct inst db_inst_0fcx[] 
 
 static const struct inst * const db_inst_0f[] = {
 	db_inst_0f0x,
-	0,
+	db_inst_0f1x,
 	db_inst_0f2x,
 	db_inst_0f3x,
 	db_inst_0f4x,

Modified: projects/building-blocks/sys/arm/arm/cpuinfo.c
==============================================================================
--- projects/building-blocks/sys/arm/arm/cpuinfo.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/sys/arm/arm/cpuinfo.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -58,9 +58,13 @@ cpuinfo_init(void)
 			/* ARMv4T CPU */
 			cpuinfo.architecture = 1;
 			cpuinfo.revision = (cpuinfo.midr >> 16) & 0x7F;
-		} 
+		} else {
+			/* ARM new id scheme */
+			cpuinfo.architecture = (cpuinfo.midr >> 16) & 0x0F;
+			cpuinfo.revision = (cpuinfo.midr >> 20) & 0x0F;
+		}
 	} else {
-		/* must be new id scheme */
+		/* non ARM -> must be new id scheme */
 		cpuinfo.architecture = (cpuinfo.midr >> 16) & 0x0F;
 		cpuinfo.revision = (cpuinfo.midr >> 20) & 0x0F;
 	}	

Modified: projects/building-blocks/sys/cam/ctl/ctl_backend_block.c
==============================================================================
--- projects/building-blocks/sys/cam/ctl/ctl_backend_block.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/sys/cam/ctl/ctl_backend_block.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -1874,7 +1874,7 @@ ctl_be_block_open_dev(struct ctl_be_bloc
 	struct cdev		     *dev;
 	struct cdevsw		     *devsw;
 	char			     *value;
-	int			      error, atomic, maxio;
+	int			      error, atomic, maxio, unmap;
 	off_t			      ps, pss, po, pos, us, uss, uo, uos;
 
 	params = &be_lun->params;
@@ -1899,7 +1899,6 @@ ctl_be_block_open_dev(struct ctl_be_bloc
 			maxio = CTLBLK_MAX_IO_SIZE;
 	}
 	be_lun->lun_flush = ctl_be_block_flush_dev;
-	be_lun->unmap = ctl_be_block_unmap_dev;
 	be_lun->getattr = ctl_be_block_getattr_dev;
 
 	error = VOP_GETATTR(be_lun->vn, &vattr, NOCRED);
@@ -2030,6 +2029,24 @@ ctl_be_block_open_dev(struct ctl_be_bloc
 
 	be_lun->atomicblock = atomic / be_lun->blocksize;
 	be_lun->opttxferlen = maxio / be_lun->blocksize;
+
+	if (be_lun->dispatch == ctl_be_block_dispatch_zvol) {
+		unmap = 1;
+	} else {
+		struct diocgattr_arg	arg;
+
+		strlcpy(arg.name, "GEOM::candelete", sizeof(arg.name));
+		arg.len = sizeof(arg.value.i);
+		error = devsw->d_ioctl(dev, DIOCGATTR,
+		    (caddr_t)&arg, FREAD, curthread);
+		unmap = (error == 0) ? arg.value.i : 0;
+	}
+	value = ctl_get_opt(&be_lun->ctl_be_lun.options, "unmap");
+	if (value != NULL)
+		unmap = (strcmp(value, "on") == 0);
+	if (unmap)
+		be_lun->unmap = ctl_be_block_unmap_dev;
+
 	return (0);
 }
 
@@ -2182,7 +2199,7 @@ ctl_be_block_create(struct ctl_be_block_
 	char num_thread_str[16];
 	char tmpstr[32];
 	char *value;
-	int retval, num_threads, unmap;
+	int retval, num_threads;
 	int tmp_num_threads;
 
 	params = &req->reqdata.create;
@@ -2275,16 +2292,12 @@ ctl_be_block_create(struct ctl_be_block_
 		}
 		num_threads = tmp_num_threads;
 	}
-	unmap = (be_lun->dispatch == ctl_be_block_dispatch_zvol);
-	value = ctl_get_opt(&be_lun->ctl_be_lun.options, "unmap");
-	if (value != NULL)
-		unmap = (strcmp(value, "on") == 0);
 
 	be_lun->flags = CTL_BE_BLOCK_LUN_UNCONFIGURED;
 	be_lun->ctl_be_lun.flags = CTL_LUN_FLAG_PRIMARY;
 	if (be_lun->vn == NULL)
 		be_lun->ctl_be_lun.flags |= CTL_LUN_FLAG_OFFLINE;
-	if (unmap)
+	if (be_lun->unmap != NULL)
 		be_lun->ctl_be_lun.flags |= CTL_LUN_FLAG_UNMAP;
 	if (be_lun->dispatch != ctl_be_block_dispatch_dev)
 		be_lun->ctl_be_lun.flags |= CTL_LUN_FLAG_SERSEQ_READ;
@@ -2668,6 +2681,8 @@ ctl_be_block_modify(struct ctl_be_block_
 		 * XXX: Note that this field is being updated without locking,
 		 * 	which might cause problems on 32-bit architectures.
 		 */
+		if (be_lun->unmap != NULL)
+			be_lun->ctl_be_lun.flags |= CTL_LUN_FLAG_UNMAP;
 		be_lun->ctl_be_lun.maxlba = (be_lun->size_blocks == 0) ?
 		    0 : (be_lun->size_blocks - 1);
 		be_lun->ctl_be_lun.blocksize = be_lun->blocksize;

Modified: projects/building-blocks/sys/cam/ctl/ctl_backend_ramdisk.c
==============================================================================
--- projects/building-blocks/sys/cam/ctl/ctl_backend_ramdisk.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/sys/cam/ctl/ctl_backend_ramdisk.c	Sat Feb 14 19:24:38 2015	(r278777)
@@ -588,10 +588,10 @@ ctl_backend_ramdisk_create(struct ctl_be
 
 	be_lun->softc = softc;
 
-	unmap = 0;
+	unmap = 1;
 	value = ctl_get_opt(&be_lun->ctl_be_lun.options, "unmap");
 	if (value != NULL && strcmp(value, "on") == 0)
-		unmap = 1;
+		unmap = (strcmp(value, "on") == 0);
 
 	be_lun->flags = CTL_BE_RAMDISK_LUN_UNCONFIGURED;
 	be_lun->ctl_be_lun.flags = CTL_LUN_FLAG_PRIMARY;

Modified: projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300.h
==============================================================================
--- projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300.h	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300.h	Sat Feb 14 19:24:38 2015	(r278777)
@@ -576,6 +576,9 @@ struct ath_hal_9300 {
     u_int8_t    ah_tx_chainmask; /* tx chain mask */
     u_int8_t    ah_rx_chainmask; /* rx chain mask */
 
+    /* optional tx chainmask */
+    u_int8_t    ah_tx_chainmaskopt;
+
     u_int8_t    ah_tx_cal_chainmask; /* tx cal chain mask */
     u_int8_t    ah_rx_cal_chainmask; /* rx cal chain mask */
 
@@ -845,6 +848,7 @@ struct ath_hal_9300 {
     HAL_BOOL                ah_aic_enabled;
     u_int32_t           ah_aic_sram[ATH_AIC_MAX_BT_CHANNEL];
 #endif
+
 #endif /* ATH_SUPPORT_MCI */
     u_int8_t            ah_cac_quiet_enabled;
 #if ATH_WOW_OFFLOAD
@@ -852,6 +856,14 @@ struct ath_hal_9300 {
     u_int32_t           ah_mcast_filter_u32_set;
 #endif
     HAL_BOOL            ah_reduced_self_gen_mask;
+    HAL_BOOL                ah_chip_reset_done;
+    HAL_BOOL                ah_abort_txdma_norx;
+    /* store previous passive RX Cal info */
+    HAL_BOOL                ah_skip_rx_iq_cal;
+    HAL_BOOL                ah_rx_cal_complete; /* previous rx cal completed or not */
+    u_int32_t           ah_rx_cal_chan;     /* chan on which rx cal is done */
+    u_int32_t           ah_rx_cal_chan_flag;
+    u_int32_t           ah_rx_cal_corr[AR9300_MAX_CHAINS];
 
     /* Local additions for FreeBSD */
     /*
@@ -877,7 +889,6 @@ struct ath_hal_9300 {
     struct ar9300NfLimits nf_2GHz;
     struct ar9300NfLimits nf_5GHz;
     struct ar9300NfLimits *nfp;
-
 };
 
 #define AH9300(_ah) ((struct ath_hal_9300 *)(_ah))
@@ -1194,7 +1205,8 @@ extern  HAL_BOOL ar9300_get_channel_edge
 extern  HAL_BOOL ar9300_fill_capability_info(struct ath_hal *ah);
 
 extern  void ar9300_beacon_init(struct ath_hal *ah,
-                              u_int32_t next_beacon, u_int32_t beacon_period, HAL_OPMODE opmode);
+                              u_int32_t next_beacon, u_int32_t beacon_period, 
+                              u_int32_t beacon_period_fraction, HAL_OPMODE opmode);
 extern  void ar9300_set_sta_beacon_timers(struct ath_hal *ah,
         const HAL_BEACON_STATE *);
 
@@ -1217,12 +1229,21 @@ extern  HAL_BOOL ar9300_set_key_cache_en
 extern  HAL_BOOL ar9300_set_key_cache_entry(struct ath_hal *ah, u_int16_t entry,
                        const HAL_KEYVAL *k, const u_int8_t *mac, int xor_key);
 extern  HAL_BOOL ar9300_print_keycache(struct ath_hal *ah);
+#if ATH_SUPPORT_KEYPLUMB_WAR
+extern  HAL_BOOL ar9300_check_key_cache_entry(struct ath_hal *ah, u_int16_t entry,
+                        const HAL_KEYVAL *k, int xorKey);
+#endif
 
 extern  void ar9300_get_mac_address(struct ath_hal *ah, u_int8_t *mac);
 extern  HAL_BOOL ar9300_set_mac_address(struct ath_hal *ah, const u_int8_t *);
 extern  void ar9300_get_bss_id_mask(struct ath_hal *ah, u_int8_t *mac);
 extern  HAL_BOOL ar9300_set_bss_id_mask(struct ath_hal *, const u_int8_t *);
 extern  HAL_STATUS ar9300_select_ant_config(struct ath_hal *ah, u_int32_t cfg);
+#if 0
+extern  u_int32_t ar9300_ant_ctrl_common_get(struct ath_hal *ah, HAL_BOOL is_2ghz);
+#endif
+extern HAL_BOOL ar9300_ant_swcom_sel(struct ath_hal *ah, u_int8_t ops,
+                                u_int32_t *common_tbl1, u_int32_t *common_tbl2);
 extern  HAL_BOOL ar9300_set_regulatory_domain(struct ath_hal *ah,
                                     u_int16_t reg_domain, HAL_STATUS *stats);
 extern  u_int ar9300_get_wireless_modes(struct ath_hal *ah);
@@ -1397,6 +1418,8 @@ extern HAL_BOOL ar9300_set_tx_power_limi
                                        u_int16_t extra_txpow, u_int16_t tpc_in_db);
 extern void ar9300_chain_noise_floor(struct ath_hal *ah, int16_t *nf_buf,
                                     struct ieee80211_channel *chan, int is_scan);
+extern int16_t ar9300_get_nf_from_reg(struct ath_hal *ah, struct ieee80211_channel *chan, int wait_time);
+extern int ar9300_get_rx_nf_offset(struct ath_hal *ah, struct ieee80211_channel *chan, int8_t *nf_pwr, int8_t *nf_cal);
 extern HAL_BOOL ar9300_load_nf(struct ath_hal *ah, int16_t nf[]);
 
 extern HAL_RFGAIN ar9300_get_rfgain(struct ath_hal *ah);
@@ -1681,6 +1704,8 @@ extern void ar9300_tx99_start(struct ath
 extern void ar9300_tx99_stop(struct ath_hal *ah);
 #endif /* ATH_SUPPORT_HTC */
 #endif /* ATH_TX99_DIAG */
+extern HAL_BOOL ar9300_set_ctl_pwr(struct ath_hal *ah, u_int8_t *ctl_array);
+extern void ar9300_set_txchainmaskopt(struct ath_hal *ah, u_int8_t mask);
 
 enum {
 	AR9300_COEFF_TX_TYPE = 0,

Modified: projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c
==============================================================================
--- projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c	Sat Feb 14 19:21:04 2015	(r278776)
+++ projects/building-blocks/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c	Sat Feb 14 19:24:38 2015	(r278777)

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



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