svn commit: r254111 - in user/attilio/vmobj-readlock: cddl/contrib/opensolaris/cmd/ztest crypto/openssl/ssl gnu/usr.bin/grep lib/libc/gen lib/libc/iconv sys/amd64/amd64 sys/boot/common sys/boot/for...

Attilio Rao attilio at FreeBSD.org
Thu Aug 8 23:24:42 UTC 2013


Author: attilio
Date: Thu Aug  8 23:24:36 2013
New Revision: 254111
URL: http://svnweb.freebsd.org/changeset/base/254111

Log:
  MFC

Modified:
  user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/ztest/ztest.c
  user/attilio/vmobj-readlock/crypto/openssl/ssl/s3_cbc.c
  user/attilio/vmobj-readlock/gnu/usr.bin/grep/grep.c
  user/attilio/vmobj-readlock/lib/libc/gen/fnmatch.c
  user/attilio/vmobj-readlock/lib/libc/iconv/citrus_iconv.c
  user/attilio/vmobj-readlock/sys/amd64/amd64/pmap.c
  user/attilio/vmobj-readlock/sys/boot/common/part.c
  user/attilio/vmobj-readlock/sys/boot/forth/beastie.4th
  user/attilio/vmobj-readlock/sys/boot/forth/color.4th
  user/attilio/vmobj-readlock/sys/boot/forth/color.4th.8
  user/attilio/vmobj-readlock/sys/boot/forth/loader.conf.5
  user/attilio/vmobj-readlock/sys/boot/forth/menu.4th
  user/attilio/vmobj-readlock/sys/boot/forth/menu.4th.8
  user/attilio/vmobj-readlock/sys/boot/forth/menu.rc
  user/attilio/vmobj-readlock/sys/boot/forth/version.4th.8
  user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
  user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  user/attilio/vmobj-readlock/sys/conf/newvers.sh
  user/attilio/vmobj-readlock/sys/dev/iwn/if_iwn.c
  user/attilio/vmobj-readlock/sys/fs/ext2fs/ext2_hash.c
  user/attilio/vmobj-readlock/sys/geom/part/g_part_gpt.c
  user/attilio/vmobj-readlock/sys/kern/kern_event.c
  user/attilio/vmobj-readlock/sys/kern/subr_bus.c
  user/attilio/vmobj-readlock/sys/net80211/ieee80211.c
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_freebsd.c
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_freebsd.h
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_hostap.c
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_hwmp.c
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_mesh.c
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_output.c
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_power.c
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_proto.c
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_proto.h
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_superg.c
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_var.h
  user/attilio/vmobj-readlock/sys/net80211/ieee80211_wds.c
  user/attilio/vmobj-readlock/sys/sys/event.h
  user/attilio/vmobj-readlock/tools/tools/sysdoc/sysdoc.sh
Directory Properties:
  user/attilio/vmobj-readlock/   (props changed)
  user/attilio/vmobj-readlock/cddl/   (props changed)
  user/attilio/vmobj-readlock/cddl/contrib/opensolaris/   (props changed)
  user/attilio/vmobj-readlock/crypto/openssl/   (props changed)
  user/attilio/vmobj-readlock/lib/libc/   (props changed)
  user/attilio/vmobj-readlock/sys/   (props changed)
  user/attilio/vmobj-readlock/sys/boot/   (props changed)
  user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/   (props changed)
  user/attilio/vmobj-readlock/sys/conf/   (props changed)

Modified: user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/ztest/ztest.c
==============================================================================
--- user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/cddl/contrib/opensolaris/cmd/ztest/ztest.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -186,6 +186,7 @@ static const ztest_shared_opts_t ztest_o
 
 extern uint64_t metaslab_gang_bang;
 extern uint64_t metaslab_df_alloc_threshold;
+extern uint64_t zfs_deadman_synctime;
 
 static ztest_shared_opts_t *ztest_shared_opts;
 static ztest_shared_opts_t ztest_opts;
@@ -365,7 +366,7 @@ ztest_info_t ztest_info[] = {
 	{ ztest_fault_inject,			1,	&zopt_sometimes	},
 	{ ztest_ddt_repair,			1,	&zopt_sometimes	},
 	{ ztest_dmu_snapshot_hold,		1,	&zopt_sometimes	},
-	{ ztest_reguid,				1,	&zopt_sometimes },
+	{ ztest_reguid,				1,	&zopt_rarely	},
 	{ ztest_spa_rename,			1,	&zopt_rarely	},
 	{ ztest_scrub,				1,	&zopt_rarely	},
 	{ ztest_spa_upgrade,			1,	&zopt_rarely	},
@@ -3606,6 +3607,9 @@ ztest_dmu_read_write(ztest_ds_t *zd, uin
 	else
 		dmu_tx_hold_write(tx, bigobj, bigoff, bigsize);
 
+	/* This accounts for setting the checksum/compression. */
+	dmu_tx_hold_bonus(tx, bigobj);
+
 	txg = ztest_tx_assign(tx, TXG_MIGHTWAIT, FTAG);
 	if (txg == 0) {
 		umem_free(packbuf, packsize);
@@ -4756,6 +4760,14 @@ ztest_fault_inject(ztest_ds_t *zd, uint6
 	ASSERT(leaves >= 1);
 
 	/*
+	 * Grab the name lock as reader. There are some operations
+	 * which don't like to have their vdevs changed while
+	 * they are in progress (i.e. spa_change_guid). Those
+	 * operations will have grabbed the name lock as writer.
+	 */
+	(void) rw_rdlock(&ztest_name_lock);
+
+	/*
 	 * We need SCL_STATE here because we're going to look at vd0->vdev_tsd.
 	 */
 	spa_config_enter(spa, SCL_STATE, FTAG, RW_READER);
@@ -4784,7 +4796,14 @@ ztest_fault_inject(ztest_ds_t *zd, uint6
 		if (vd0 != NULL && vd0->vdev_top->vdev_islog)
 			islog = B_TRUE;
 
-		if (vd0 != NULL && maxfaults != 1) {
+		/*
+		 * If the top-level vdev needs to be resilvered
+		 * then we only allow faults on the device that is
+		 * resilvering.
+		 */
+		if (vd0 != NULL && maxfaults != 1 &&
+		    (!vdev_resilver_needed(vd0->vdev_top, NULL, NULL) ||
+		    vd0->vdev_resilvering)) {
 			/*
 			 * Make vd0 explicitly claim to be unreadable,
 			 * or unwriteable, or reach behind its back
@@ -4815,6 +4834,7 @@ ztest_fault_inject(ztest_ds_t *zd, uint6
 
 		if (sav->sav_count == 0) {
 			spa_config_exit(spa, SCL_STATE, FTAG);
+			(void) rw_unlock(&ztest_name_lock);
 			return;
 		}
 		vd0 = sav->sav_vdevs[ztest_random(sav->sav_count)];
@@ -4828,6 +4848,7 @@ ztest_fault_inject(ztest_ds_t *zd, uint6
 	}
 
 	spa_config_exit(spa, SCL_STATE, FTAG);
+	(void) rw_unlock(&ztest_name_lock);
 
 	/*
 	 * If we can tolerate two or more faults, or we're dealing
@@ -5293,16 +5314,33 @@ static void *
 ztest_deadman_thread(void *arg)
 {
 	ztest_shared_t *zs = arg;
-	int grace = 300;
-	hrtime_t delta;
-
-	delta = (zs->zs_thread_stop - zs->zs_thread_start) / NANOSEC + grace;
+	spa_t *spa = ztest_spa;
+	hrtime_t delta, total = 0;
 
-	(void) poll(NULL, 0, (int)(1000 * delta));
+	for (;;) {
+		delta = (zs->zs_thread_stop - zs->zs_thread_start) /
+		    NANOSEC + zfs_deadman_synctime;
 
-	fatal(0, "failed to complete within %d seconds of deadline", grace);
+		(void) poll(NULL, 0, (int)(1000 * delta));
 
-	return (NULL);
+		/*
+		 * If the pool is suspended then fail immediately. Otherwise,
+		 * check to see if the pool is making any progress. If
+		 * vdev_deadman() discovers that there hasn't been any recent
+		 * I/Os then it will end up aborting the tests.
+		 */
+		if (spa_suspended(spa)) {
+			fatal(0, "aborting test after %llu seconds because "
+			    "pool has transitioned to a suspended state.",
+			    zfs_deadman_synctime);
+			return (NULL);
+		}
+		vdev_deadman(spa->spa_root_vdev);
+
+		total += zfs_deadman_synctime;
+		(void) printf("ztest has been running for %lld seconds\n",
+		    total);
+	}
 }
 
 static void
@@ -6031,6 +6069,7 @@ main(int argc, char **argv)
 	(void) setvbuf(stdout, NULL, _IOLBF, 0);
 
 	dprintf_setup(&argc, argv);
+	zfs_deadman_synctime = 300;
 
 	ztest_fd_rand = open("/dev/urandom", O_RDONLY);
 	ASSERT3S(ztest_fd_rand, >=, 0);

Modified: user/attilio/vmobj-readlock/crypto/openssl/ssl/s3_cbc.c
==============================================================================
--- user/attilio/vmobj-readlock/crypto/openssl/ssl/s3_cbc.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/crypto/openssl/ssl/s3_cbc.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -148,7 +148,7 @@ int tls1_cbc_remove_padding(const SSL* s
 	unsigned padding_length, good, to_check, i;
 	const unsigned overhead = 1 /* padding length byte */ + mac_size;
 	/* Check if version requires explicit IV */
-	if (s->version >= TLS1_1_VERSION || s->version == DTLS1_VERSION)
+	if (s->version >= TLS1_1_VERSION || s->version == DTLS1_BAD_VER)
 		{
 		/* These lengths are all public so we can test them in
 		 * non-constant time.

Modified: user/attilio/vmobj-readlock/gnu/usr.bin/grep/grep.c
==============================================================================
--- user/attilio/vmobj-readlock/gnu/usr.bin/grep/grep.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/gnu/usr.bin/grep/grep.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -301,14 +301,16 @@ reset (int fd, char const *file, struct 
       error (0, errno, "fstat");
       return 0;
     }
-  if (directories == SKIP_DIRECTORIES && S_ISDIR (stats->stat.st_mode))
-    return 0;
+  if (fd != STDIN_FILENO) {
+    if (directories == SKIP_DIRECTORIES && S_ISDIR (stats->stat.st_mode))
+      return 0;
 #ifndef DJGPP
-  if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode) || S_ISSOCK(stats->stat.st_mode) || S_ISFIFO(stats->stat.st_mode)))
+    if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode) || S_ISSOCK(stats->stat.st_mode) || S_ISFIFO(stats->stat.st_mode)))
 #else
-  if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode)))
+    if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode)))
 #endif
-    return 0;
+      return 0;
+  }
   if (
       BZflag ||
 #if HAVE_LIBZ > 0

Modified: user/attilio/vmobj-readlock/lib/libc/gen/fnmatch.c
==============================================================================
--- user/attilio/vmobj-readlock/lib/libc/gen/fnmatch.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/lib/libc/gen/fnmatch.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -194,8 +194,6 @@ fnmatch1(pattern, string, stringstart, f
 				    &patmbs);
 				if (pclen == (size_t)-1 || pclen == (size_t)-2)
 					return (FNM_NOMATCH);
-				if (pclen == 0)
-					pc = '\\';
 				pattern += pclen;
 			}
 			/* FALLTHROUGH */

Modified: user/attilio/vmobj-readlock/lib/libc/iconv/citrus_iconv.c
==============================================================================
--- user/attilio/vmobj-readlock/lib/libc/iconv/citrus_iconv.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/lib/libc/iconv/citrus_iconv.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -116,7 +116,20 @@ open_shared(struct _citrus_iconv_shared 
 	size_t len_convname;
 	int ret;
 
+#ifdef INCOMPATIBLE_WITH_GNU_ICONV
+	/*
+	 * Sadly, the gnu tools expect iconv to actually parse the
+	 * byte stream and don't allow for a pass-through when
+	 * the (src,dest) encodings are the same.
+	 * See gettext-0.18.3+ NEWS:
+	 *   msgfmt now checks PO file headers more strictly with less
+	 *   false-positives.
+	 * NetBSD don't do this either.
+	 */
 	module = (strcmp(src, dst) != 0) ? "iconv_std" : "iconv_none";
+#else
+	module = "iconv_std";
+#endif
 
 	/* initialize iconv handle */
 	len_convname = strlen(convname);

Modified: user/attilio/vmobj-readlock/sys/amd64/amd64/pmap.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/amd64/amd64/pmap.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/amd64/amd64/pmap.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -531,6 +531,10 @@ static void
 create_pagetables(vm_paddr_t *firstaddr)
 {
 	int i, j, ndm1g, nkpdpe;
+	pt_entry_t *pt_p;
+	pd_entry_t *pd_p;
+	pdp_entry_t *pdp_p;
+	pml4_entry_t *p4_p;
 
 	/* Allocate page table pages for the direct map */
 	ndmpdp = (ptoa(Maxmem) + NBPDP - 1) >> PDPSHIFT;
@@ -561,32 +565,26 @@ create_pagetables(vm_paddr_t *firstaddr)
 	KPDphys = allocpages(firstaddr, nkpdpe);
 
 	/* Fill in the underlying page table pages */
-	/* Read-only from zero to physfree */
+	/* Nominally read-only (but really R/W) from zero to physfree */
 	/* XXX not fully used, underneath 2M pages */
-	for (i = 0; (i << PAGE_SHIFT) < *firstaddr; i++) {
-		((pt_entry_t *)KPTphys)[i] = i << PAGE_SHIFT;
-		((pt_entry_t *)KPTphys)[i] |= PG_RW | PG_V | PG_G;
-	}
+	pt_p = (pt_entry_t *)KPTphys;
+	for (i = 0; ptoa(i) < *firstaddr; i++)
+		pt_p[i] = ptoa(i) | PG_RW | PG_V | PG_G;
 
 	/* Now map the page tables at their location within PTmap */
-	for (i = 0; i < nkpt; i++) {
-		((pd_entry_t *)KPDphys)[i] = KPTphys + (i << PAGE_SHIFT);
-		((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V;
-	}
+	pd_p = (pd_entry_t *)KPDphys;
+	for (i = 0; i < nkpt; i++)
+		pd_p[i] = (KPTphys + ptoa(i)) | PG_RW | PG_V;
 
 	/* Map from zero to end of allocations under 2M pages */
 	/* This replaces some of the KPTphys entries above */
-	for (i = 0; (i << PDRSHIFT) < *firstaddr; i++) {
-		((pd_entry_t *)KPDphys)[i] = i << PDRSHIFT;
-		((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V | PG_PS | PG_G;
-	}
+	for (i = 0; (i << PDRSHIFT) < *firstaddr; i++)
+		pd_p[i] = (i << PDRSHIFT) | PG_RW | PG_V | PG_PS | PG_G;
 
 	/* And connect up the PD to the PDP */
-	for (i = 0; i < nkpdpe; i++) {
-		((pdp_entry_t *)KPDPphys)[i + KPDPI] = KPDphys +
-		    (i << PAGE_SHIFT);
-		((pdp_entry_t *)KPDPphys)[i + KPDPI] |= PG_RW | PG_V | PG_U;
-	}
+	pdp_p = (pdp_entry_t *)KPDPphys;
+	for (i = 0; i < nkpdpe; i++)
+		pdp_p[i + KPDPI] = (KPDphys + ptoa(i)) | PG_RW | PG_V | PG_U;
 
 	/*
 	 * Now, set up the direct map region using 2MB and/or 1GB pages.  If
@@ -596,37 +594,39 @@ create_pagetables(vm_paddr_t *firstaddr)
 	 * memory, pmap_change_attr() will demote any 2MB or 1GB page mappings
 	 * that are partially used. 
 	 */
+	pd_p = (pd_entry_t *)DMPDphys;
 	for (i = NPDEPG * ndm1g, j = 0; i < NPDEPG * ndmpdp; i++, j++) {
-		((pd_entry_t *)DMPDphys)[j] = (vm_paddr_t)i << PDRSHIFT;
+		pd_p[j] = (vm_paddr_t)i << PDRSHIFT;
 		/* Preset PG_M and PG_A because demotion expects it. */
-		((pd_entry_t *)DMPDphys)[j] |= PG_RW | PG_V | PG_PS | PG_G |
+		pd_p[j] |= PG_RW | PG_V | PG_PS | PG_G |
 		    PG_M | PG_A;
 	}
+	pdp_p = (pdp_entry_t *)DMPDPphys;
 	for (i = 0; i < ndm1g; i++) {
-		((pdp_entry_t *)DMPDPphys)[i] = (vm_paddr_t)i << PDPSHIFT;
+		pdp_p[i] = (vm_paddr_t)i << PDPSHIFT;
 		/* Preset PG_M and PG_A because demotion expects it. */
-		((pdp_entry_t *)DMPDPphys)[i] |= PG_RW | PG_V | PG_PS | PG_G |
+		pdp_p[i] |= PG_RW | PG_V | PG_PS | PG_G |
 		    PG_M | PG_A;
 	}
 	for (j = 0; i < ndmpdp; i++, j++) {
-		((pdp_entry_t *)DMPDPphys)[i] = DMPDphys + (j << PAGE_SHIFT);
-		((pdp_entry_t *)DMPDPphys)[i] |= PG_RW | PG_V | PG_U;
+		pdp_p[i] = DMPDphys + ptoa(j);
+		pdp_p[i] |= PG_RW | PG_V | PG_U;
 	}
 
 	/* And recursively map PML4 to itself in order to get PTmap */
-	((pdp_entry_t *)KPML4phys)[PML4PML4I] = KPML4phys;
-	((pdp_entry_t *)KPML4phys)[PML4PML4I] |= PG_RW | PG_V | PG_U;
+	p4_p = (pml4_entry_t *)KPML4phys;
+	p4_p[PML4PML4I] = KPML4phys;
+	p4_p[PML4PML4I] |= PG_RW | PG_V | PG_U;
 
 	/* Connect the Direct Map slot(s) up to the PML4. */
 	for (i = 0; i < NDMPML4E; i++) {
-		((pdp_entry_t *)KPML4phys)[DMPML4I + i] = DMPDPphys +
-		    (i << PAGE_SHIFT);
-		((pdp_entry_t *)KPML4phys)[DMPML4I + i] |= PG_RW | PG_V | PG_U;
+		p4_p[DMPML4I + i] = DMPDPphys + ptoa(i);
+		p4_p[DMPML4I + i] |= PG_RW | PG_V | PG_U;
 	}
 
 	/* Connect the KVA slot up to the PML4 */
-	((pdp_entry_t *)KPML4phys)[KPML4I] = KPDPphys;
-	((pdp_entry_t *)KPML4phys)[KPML4I] |= PG_RW | PG_V | PG_U;
+	p4_p[KPML4I] = KPDPphys;
+	p4_p[KPML4I] |= PG_RW | PG_V | PG_U;
 }
 
 /*

Modified: user/attilio/vmobj-readlock/sys/boot/common/part.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/boot/common/part.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/boot/common/part.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -181,7 +181,7 @@ gpt_checkhdr(struct gpt_hdr *hdr, uint64
 	}
 	hdr->hdr_entries = le32toh(hdr->hdr_entries);
 	hdr->hdr_entsz = le32toh(hdr->hdr_entsz);
-	if (hdr->hdr_entries < 128 ||
+	if (hdr->hdr_entries == 0 ||
 	    hdr->hdr_entsz < sizeof(struct gpt_ent) ||
 	    sectorsize % hdr->hdr_entsz != 0) {
 		DEBUG("invalid entry size or number of entries");
@@ -203,11 +203,14 @@ gpt_checktbl(const struct gpt_hdr *hdr, 
 	int i, cnt;
 
 	cnt = size / hdr->hdr_entsz;
-	/* Check CRC only when buffer size is enough for table. */
-	if (hdr->hdr_entries <= cnt &&
-	    crc32(tbl, size) != hdr->hdr_crc_table) {
-		DEBUG("GPT table's CRC doesn't match");
-		return (-1);
+	if (hdr->hdr_entries <= cnt) {
+		cnt = hdr->hdr_entries;
+		/* Check CRC only when buffer size is enough for table. */
+		if (hdr->hdr_crc_table !=
+		    crc32(tbl, hdr->hdr_entries * hdr->hdr_entsz)) {
+			DEBUG("GPT table's CRC doesn't match");
+			return (-1);
+		}
 	}
 	ent = (struct gpt_ent *)tbl;
 	for (i = 0; i < cnt; i++, ent++) {

Modified: user/attilio/vmobj-readlock/sys/boot/forth/beastie.4th
==============================================================================
--- user/attilio/vmobj-readlock/sys/boot/forth/beastie.4th	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/boot/forth/beastie.4th	Thu Aug  8 23:24:36 2013	(r254111)
@@ -1,6 +1,6 @@
 \ Copyright (c) 2003 Scott Long <scottl at freebsd.org>
 \ Copyright (c) 2003 Aleksander Fafula <alex at fafula.com>
-\ Copyright (c) 2006-2011 Devin Teske <dteske at FreeBSD.org>
+\ Copyright (c) 2006-2013 Devin Teske <dteske at FreeBSD.org>
 \ All rights reserved.
 \ 
 \ Redistribution and use in source and binary forms, with or without
@@ -181,8 +181,8 @@ variable logoY
 \ 	beastie     Color ``Helper Daemon'' mascot (19 rows x 34 columns)
 \ 	beastiebw   B/W ``Helper Daemon'' mascot (19 rows x 34 columns)
 \ 	fbsdbw      "FreeBSD" logo in B/W (13 rows x 21 columns)
-\ 	orb         Color ``Orb'' mascot (15 rows x 30 columns)
-\ 	orbbw       B/W ``Orb'' mascot (15 rows x 32 columns) (default)
+\ 	orb         Color ``Orb'' mascot (15 rows x 30 columns) (default)
+\ 	orbbw       B/W ``Orb'' mascot (15 rows x 32 columns)
 \ 
 \ NOTE: Setting `loader_logo' to an undefined value (such as "none") will
 \       prevent beastie from being drawn.

Modified: user/attilio/vmobj-readlock/sys/boot/forth/color.4th
==============================================================================
--- user/attilio/vmobj-readlock/sys/boot/forth/color.4th	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/boot/forth/color.4th	Thu Aug  8 23:24:36 2013	(r254111)
@@ -1,4 +1,4 @@
-\ Copyright (c) 2011 Devin Teske <dteske at FreeBSD.org>
+\ Copyright (c) 2011-2013 Devin Teske <dteske at FreeBSD.org>
 \ All rights reserved.
 \ 
 \ Redistribution and use in source and binary forms, with or without
@@ -26,23 +26,24 @@
 
 marker task-color.4th
 
-\ This function returns TRUE if the `loader_color' environment variable is set
-\ to YES, yes, or 1. Otherwise, FALSE is returned.
+\ This function returns FALSE if the `loader_color' environment variable is set
+\ to NO, no, or 0. Otherwise, TRUE is returned (unless booting serial).
 \ 
 : loader_color? ( -- N )
 
 	s" loader_color" getenv dup -1 <> if
 
-		2dup s" YES" compare-insensitive 0= if
+		2dup s" NO" compare-insensitive 0= if
 			2drop
-			TRUE exit
+			FALSE exit
 		then
-		2dup s" 1" compare 0= if
+		2dup s" 0" compare 0= if
 			2drop
-			TRUE exit
+			FALSE exit
 		then
 		drop
 	then
+	drop
 
-	drop FALSE exit
+	boot_serial? if FALSE else TRUE then
 ;

Modified: user/attilio/vmobj-readlock/sys/boot/forth/color.4th.8
==============================================================================
--- user/attilio/vmobj-readlock/sys/boot/forth/color.4th.8	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/boot/forth/color.4th.8	Thu Aug  8 23:24:36 2013	(r254111)
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2011 Devin Teske
+.\" Copyright (c) 2011-2013 Devin Teske
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 18, 2011
+.Dd August 6, 2013
 .Dt COLOR.4TH 8
 .Os
 .Sh NAME
@@ -57,26 +57,26 @@ The commands provided by it are:
 .Pp
 .Bl -tag -width disable-module_module -compact -offset indent
 .It Ic loader_color?
-Returns TRUE if the
+Returns FALSE if the
 .Ic loader_color
 environment variable is set to
-.Dq YES
+.Dq NO
 (case-insensitive) or
-.Dq 1 .
-Otherwise returns FALSE.
+.Dq 0 .
+Otherwise returns TRUE
+.Pq unless booting serial .
 .El
 .Pp
 The environment variables that effect its behavior are:
 .Bl -tag -width bootfile -offset indent
 .It Va loader_color
 If set to
-.Dq YES
+.Dq NO
 (case-insensitive) or
-.Dq 1 ,
+.Dq 0 ,
 causes
 .Ic loader_color?
-to return TRUE, indicating to many other modules that color should be used
-whenever/wherever possible.
+to return FALSE, indicating to many modules that color should not be used.
 .El
 .Sh FILES
 .Bl -tag -width /boot/loader.4th -compact

Modified: user/attilio/vmobj-readlock/sys/boot/forth/loader.conf.5
==============================================================================
--- user/attilio/vmobj-readlock/sys/boot/forth/loader.conf.5	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/boot/forth/loader.conf.5	Thu Aug  8 23:24:36 2013	(r254111)
@@ -23,7 +23,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
-.Dd December 10, 2012
+.Dd August 6, 2013
 .Dt LOADER.CONF 5
 .Os
 .Sh NAME
@@ -245,8 +245,8 @@ and
 .Dq Li none .
 .It Va loader_color
 If set to
-.Dq YES ,
-the beastie boot menu will be displayed using ANSI coloring where possible.
+.Dq NO ,
+the beastie boot menu will be displayed without ANSI coloring.
 .El
 .Sh FILES
 .Bl -tag -width /boot/defaults/loader.conf -compact

Modified: user/attilio/vmobj-readlock/sys/boot/forth/menu.4th
==============================================================================
--- user/attilio/vmobj-readlock/sys/boot/forth/menu.4th	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/boot/forth/menu.4th	Thu Aug  8 23:24:36 2013	(r254111)
@@ -1,6 +1,6 @@
 \ Copyright (c) 2003 Scott Long <scottl at freebsd.org>
 \ Copyright (c) 2003 Aleksander Fafula <alex at fafula.com>
-\ Copyright (c) 2006-2012 Devin Teske <dteske at FreeBSD.org>
+\ Copyright (c) 2006-2013 Devin Teske <dteske at FreeBSD.org>
 \ All rights reserved.
 \ 
 \ Redistribution and use in source and binary forms, with or without
@@ -35,6 +35,8 @@ f_double        \ Set frames to double (
                 \ f_single if you want single frames.
 46 constant dot \ ASCII definition of a period (in decimal)
 
+ 5 constant menu_default_x         \ default column position of timeout
+10 constant menu_default_y         \ default row position of timeout msg
  4 constant menu_timeout_default_x \ default column position of timeout
 23 constant menu_timeout_default_y \ default row position of timeout msg
 10 constant menu_timeout_default   \ default timeout (in seconds)
@@ -128,15 +130,19 @@ create init_text8 255 allot
 : cycle_stateN  ( N -- ADDR )   s" cycle_stateN"  11 +c! evaluate ;
 : init_textN    ( N -- C-ADDR ) s" init_textN"     9 +c! evaluate ;
 
-: str_loader_menu_title     ( -- C-ADDR/U ) s" loader_menu_title" ;
-: str_loader_menu_timeout_x ( -- C-ADDR/U ) s" loader_menu_timeout_x" ;
-: str_loader_menu_timeout_y ( -- C-ADDR/U ) s" loader_menu_timeout_y" ;
-: str_menu_init             ( -- C-ADDR/U ) s" menu_init" ;
-: str_menu_timeout_command  ( -- C-ADDR/U ) s" menu_timeout_command" ;
-: str_menu_reboot           ( -- C-ADDR/U ) s" menu_reboot" ;
-: str_menu_acpi             ( -- C-ADDR/U ) s" menu_acpi" ;
-: str_menu_options          ( -- C-ADDR/U ) s" menu_options" ;
-: str_menu_optionstext      ( -- C-ADDR/U ) s" menu_optionstext" ;
+: str_loader_menu_frame       ( -- C-ADDR/U ) s" loader_menu_frame" ;
+: str_loader_menu_title       ( -- C-ADDR/U ) s" loader_menu_title" ;
+: str_loader_menu_title_align ( -- C-ADDR/U ) s" loader_menu_title_align" ;
+: str_loader_menu_x           ( -- C-ADDR/U ) s" loader_menu_x" ;
+: str_loader_menu_y           ( -- C-ADDR/U ) s" loader_menu_y" ;
+: str_loader_menu_timeout_x   ( -- C-ADDR/U ) s" loader_menu_timeout_x" ;
+: str_loader_menu_timeout_y   ( -- C-ADDR/U ) s" loader_menu_timeout_y" ;
+: str_menu_init               ( -- C-ADDR/U ) s" menu_init" ;
+: str_menu_timeout_command    ( -- C-ADDR/U ) s" menu_timeout_command" ;
+: str_menu_reboot             ( -- C-ADDR/U ) s" menu_reboot" ;
+: str_menu_acpi               ( -- C-ADDR/U ) s" menu_acpi" ;
+: str_menu_options            ( -- C-ADDR/U ) s" menu_options" ;
+: str_menu_optionstext        ( -- C-ADDR/U ) s" menu_optionstext" ;
 
 : str_menu_init[x]          ( -- C-ADDR/U ) s" menu_init[x]" ;
 : str_menu_command[x]       ( -- C-ADDR/U ) s" menu_command[x]" ;
@@ -218,7 +224,7 @@ create init_text8 255 allot
 		\ NOTE: no need to check toggle_stateN since the first time we
 		\ are called, we will populate init_textN. Further, we don't
 		\ need to test whether menu_caption[x] (ansi_caption[x] when
-		\ loader_color=1) is available since we would not have been
+		\ loader_color?=1) is available since we would not have been
 		\ called if the caption was NULL.
 
 		\ base name of environment variable
@@ -441,7 +447,24 @@ create init_text8 255 allot
 	str_loader_menu_title getenv dup -1 = if
 		drop s" Welcome to FreeBSD"
 	then
-	24 over 2 / - 9 at-xy type 
+	TRUE ( use default alignment )
+	str_loader_menu_title_align getenv dup -1 <> if
+		2dup s" left" compare-insensitive 0= if ( 1 )
+			2drop ( c-addr/u ) drop ( bool )
+			menuX @ menuY @ 1-
+			FALSE ( don't use default alignment )
+		else ( 1 ) 2dup s" right" compare-insensitive 0= if ( 2 )
+			2drop ( c-addr/u ) drop ( bool )
+			menuX @ 42 + 4 - over - menuY @ 1-
+			FALSE ( don't use default alignment )
+		else ( 2 ) 2drop ( c-addr/u ) then ( 1 ) then
+	else
+		drop ( getenv cruft )
+	then
+	if ( use default center alignement? )
+		menuX @ 19 + over 2 / - menuY @ 1-
+	then
+	at-xy type 
 
 	\ If $menu_init is set, evaluate it (allowing for whole menus to be
 	\ constructed dynamically -- as this function could conceivably set
@@ -733,8 +756,45 @@ create init_text8 255 allot
 	menu_start
 	1- menuidx !    \ Initialize the starting index for the menu
 	0 menurow !     \ Initialize the starting position for the menu
-	42 13 2 9 box   \ Draw frame (w,h,x,y)
-	0 25 at-xy      \ Move cursor to the bottom for output
+
+	\ Assign configuration values
+	str_loader_menu_y getenv dup -1 = if
+		drop \ no custom row position
+		menu_default_y
+	else
+		\ make sure custom position is a number
+		?number 0= if
+			menu_default_y \ or use default
+		then
+	then
+	menuY !
+	str_loader_menu_x getenv dup -1 = if
+		drop \ no custom column position
+		menu_default_x
+	else
+		\ make sure custom position is a number
+		?number 0= if
+			menu_default_x \ or use default
+		then
+	then
+	menuX !
+
+	\ Interpret a custom frame type for the menu
+	TRUE ( draw a box? default yes, but might be altered below )
+	str_loader_menu_frame getenv dup -1 = if ( 1 )
+		drop \ no custom frame type
+	else ( 1 )  2dup s" single" compare-insensitive 0= if ( 2 )
+		f_single ( see frames.4th )
+	else ( 2 )  2dup s" double" compare-insensitive 0= if ( 3 )
+		f_double ( see frames.4th )
+	else ( 3 ) s" none" compare-insensitive 0= if ( 4 )
+		drop FALSE \ don't draw a box
+	( 4 ) then ( 3 ) then ( 2 )  then ( 1 ) then
+	if
+		42 13 menuX @ 3 - menuY @ 1- box \ Draw frame (w,h,x,y)
+	then
+
+	0 25 at-xy \ Move cursor to the bottom for output
 ;
 
 \ Main function. Call this from your `loader.rc' file.
@@ -965,10 +1025,7 @@ create init_text8 255 allot
 	menu-erase
 ;
 
-\ Assign configuration values
 bullet menubllt !
-10 menuY !
-5 menuX !
 
 \ Initialize our menu initialization state variables
 0 init_state1 !

Modified: user/attilio/vmobj-readlock/sys/boot/forth/menu.4th.8
==============================================================================
--- user/attilio/vmobj-readlock/sys/boot/forth/menu.4th.8	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/boot/forth/menu.4th.8	Thu Aug  8 23:24:36 2013	(r254111)
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2011-2012 Devin Teske
+.\" Copyright (c) 2011-2013 Devin Teske
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd February 25, 2012
+.Dd August 6, 2013
 .Dt MENU.4TH 8
 .Os
 .Sh NAME
@@ -83,13 +83,14 @@ The environment variables that effect it
 .Bl -tag -width bootfile -offset indent
 .It Va loader_color
 If set to
-.Dq Li YES
+.Dq Li NO
 (case-insensitive) or
-.Dq Li 1 ,
-causes the menu to be displayed in color wherever possible.
-This includes the
-use of ANSI bold for numbers appearing to the left of menuitems and the use of
-special
+.Dq Li 0 ,
+causes the menu to be displayed without color.
+The default is to use ANSI coloring whenever possible.
+If serial boot is enabled, color is disabled by default.
+Color features include the use of ANSI bold for numbers appearing to the left
+of menuitems and the use of special
 .Dq Li ansi
 variables described below.
 .It Va autoboot_delay
@@ -122,6 +123,14 @@ The command to be executed after
 seconds if a key is not pressed.
 The default is
 .Ic boot .
+.It Va loader_menu_frame
+Sets the desired box style to draw around the boot menu.
+Possible values are:
+.Dq Li single
+.Pq the default ,
+.Dq Li double ,
+and
+.Dq Li none .
 .It Va loader_menu_timeout_x
 Sets the desired column position of the timeout countdown text.
 Default is 4.
@@ -129,9 +138,24 @@ Default is 4.
 Sets the desired row position of the timeout countdown text.
 Default is 23.
 .It Va loader_menu_title
-The text to display centered above the menu.
+The text to display above the menu.
 Default is
 .Dq Li "Welcome to FreeBSD" .
+.It Va loader_menu_title_align
+Default is to align
+.Ic loader_menu_title
+centered above the menu. This can be set to
+.Dq Li left
+or
+.Dq Li right
+to instead display the title left-or-right justified
+.Pq respectively .
+.It Va loader_menu_x
+Sets the desired column position of the boot menu.
+Default is 5.
+.It Va loader_menu_y
+Sets the desired row position of the boot menu.
+Default is 10.
 .It Va menu_caption[x]
 The text to be displayed for the numbered menuitem
 .Dq Li x .
@@ -148,7 +172,9 @@ When pressed, will cause the execution o
 .It Va ansi_caption[x]
 If
 .Va loader_color
-is set, use this caption for menuitem
+is set
+.Pq enabled by default ,
+use this caption for menuitem
 .Dq Li x
 instead of
 .Va menu_caption[x] .
@@ -165,7 +191,8 @@ Like
 .Va toggled_text[x]
 except used when
 .Va loader_color
-is enabled.
+is enabled
+.Pq default .
 .It Va menu_caption[x][y]
 For menuitems where
 .Va menu_command[x]
@@ -179,7 +206,8 @@ Like
 .Va menu_caption[x][y]
 except used when
 .Va loader_color
-is enabled.
+is enabled
+.Pq default .
 .It Va menu_acpi
 When set to a number
 .Dq Li x

Modified: user/attilio/vmobj-readlock/sys/boot/forth/menu.rc
==============================================================================
--- user/attilio/vmobj-readlock/sys/boot/forth/menu.rc	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/boot/forth/menu.rc	Thu Aug  8 23:24:36 2013	(r254111)
@@ -16,7 +16,7 @@ draw-brand    \ draw the FreeBSD title (
 menu-init     \ initialize the menu area (see `menu.4th')
 
 \ Initialize main menu constructs (see `menu.4th')
-\ NOTE: To use the `ansi' variants, add `loader_color=1' to loader.conf(5)
+\ NOTE: To use `non-ansi' variants, add `loader_color=0' to loader.conf(5)
 
 \ 
 \ MAIN MENU

Modified: user/attilio/vmobj-readlock/sys/boot/forth/version.4th.8
==============================================================================
--- user/attilio/vmobj-readlock/sys/boot/forth/version.4th.8	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/boot/forth/version.4th.8	Thu Aug  8 23:24:36 2013	(r254111)
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2011 Devin Teske
+.\" Copyright (c) 2011-2013 Devin Teske
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 19, 2011
+.Dd August 6, 2013
 .Dt VERSION.4TH 8
 .Os
 .Sh NAME
@@ -84,10 +84,11 @@ Sets the desired ending row position of
 Default is 24.
 .It Va loader_color
 If set to
-.Dq Li YES
+.Dq Li NO
 (case-insensitive) or
-.Dq Li 1 ,
-causes the version to be printed in ANSI Cyan.
+.Dq Li 0 ,
+causes the version to be printed without color
+.Pq default is ANSI Cyan .
 .El
 .Sh FILES
 .Bl -tag -width /boot/loader.4th -compact
@@ -113,6 +114,7 @@ loader_version="loader 1.1"
 .Sh SEE ALSO
 .Xr loader.conf 5 ,
 .Xr loader 8 ,
+.Xr color.4th 8
 .Sh HISTORY
 The
 .Nm

Modified: user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -448,12 +448,12 @@ dmu_tx_count_free(dmu_tx_hold_t *txh, ui
 		blkid = off >> dn->dn_datablkshift;
 		nblks = (len + dn->dn_datablksz - 1) >> dn->dn_datablkshift;
 
-		if (blkid >= dn->dn_maxblkid) {
+		if (blkid > dn->dn_maxblkid) {
 			rw_exit(&dn->dn_struct_rwlock);
 			return;
 		}
 		if (blkid + nblks > dn->dn_maxblkid)
-			nblks = dn->dn_maxblkid - blkid;
+			nblks = dn->dn_maxblkid - blkid + 1;
 
 	}
 	l0span = nblks;    /* save for later use to calc level > 1 overhead */

Modified: user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -759,6 +759,7 @@ spa_change_guid(spa_t *spa)
 	int error;
 	uint64_t guid;
 
+	mutex_enter(&spa->spa_vdev_top_lock);
 	mutex_enter(&spa_namespace_lock);
 	guid = spa_generate_guid(NULL);
 
@@ -771,6 +772,7 @@ spa_change_guid(spa_t *spa)
 	}
 
 	mutex_exit(&spa_namespace_lock);
+	mutex_exit(&spa->spa_vdev_top_lock);
 
 	return (error);
 }
@@ -4861,7 +4863,6 @@ spa_vdev_detach(spa_t *spa, uint64_t gui
 		if (pvd->vdev_ops == &vdev_spare_ops)
 			cvd->vdev_unspare = B_FALSE;
 		vdev_remove_parent(cvd);
-		cvd->vdev_resilvering = B_FALSE;
 	}
 
 
@@ -5496,6 +5497,13 @@ spa_vdev_resilver_done_hunt(vdev_t *vd)
 			return (oldvd);
 	}
 
+	if (vd->vdev_resilvering && vdev_dtl_empty(vd, DTL_MISSING) &&
+	    vdev_dtl_empty(vd, DTL_OUTAGE)) {
+		ASSERT(vd->vdev_ops->vdev_op_leaf);
+		vd->vdev_resilvering = B_FALSE;
+		vdev_config_dirty(vd->vdev_top);
+	}
+
 	/*
 	 * Check for a completed replacement.  We always consider the first
 	 * vdev in the list to be the oldest vdev, and the last one to be

Modified: user/attilio/vmobj-readlock/sys/conf/newvers.sh
==============================================================================
--- user/attilio/vmobj-readlock/sys/conf/newvers.sh	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/conf/newvers.sh	Thu Aug  8 23:24:36 2013	(r254111)
@@ -88,19 +88,31 @@ v=`cat version` u=${USER:-root} d=`pwd` 
 i=`${MAKE:-make} -V KERN_IDENT`
 compiler_v=$($(${MAKE:-make} -V CC) -v 2>&1 | grep 'version')
 
-if [ -x /usr/bin/svnliteversion ] ; then
-	svnversion=/usr/bin/svnliteversion
-fi
-
 for dir in /usr/bin /usr/local/bin; do
 	if [ ! -z "${svnversion}" ] ; then
 		break
 	fi
 	if [ -x "${dir}/svnversion" ] && [ -z ${svnversion} ] ; then
-		svnversion=${dir}/svnversion
-		break
+		# Run svnversion from ${dir} on this script; if return code
+		# is not zero, the checkout might not be compatible with the
+		# svnversion being used.
+		${dir}/svnversion $(basename ${0}) >/dev/null 2>&1
+		if [ $? -eq 0 ]; then
+			svnversion=${dir}/svnversion
+			break
+		fi
 	fi
 done
+
+if [ -z "${svnversion}" ] && [ -x /usr/bin/svnliteversion ] ; then
+	/usr/bin/svnversion $(basename ${0}) >/dev/null 2>&1
+	if [ $? -eq 0 ]; then
+		svnversion=/usr/bin/svnliteversion
+	else
+		svnversion=
+	fi
+fi
+
 for dir in /usr/bin /usr/local/bin; do
 	if [ -x "${dir}/p4" ] && [ -z ${p4_cmd} ] ; then
 		p4_cmd=${dir}/p4

Modified: user/attilio/vmobj-readlock/sys/dev/iwn/if_iwn.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/dev/iwn/if_iwn.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/dev/iwn/if_iwn.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -638,6 +638,20 @@ iwn_attach(device_t dev)
 	if (sc->sc_flags & IWN_FLAG_HAS_11N) {
 		ic->ic_rxstream = sc->nrxchains;
 		ic->ic_txstream = sc->ntxchains;
+
+		/*
+		 * The NICs we currently support cap out at 2x2 support
+		 * separate from the chains being used.
+		 *
+		 * This is a total hack to work around that until some
+		 * per-device method is implemented to return the
+		 * actual stream support.
+		 */
+		if (ic->ic_rxstream > 2)
+			ic->ic_rxstream = 2;
+		if (ic->ic_txstream > 2)
+			ic->ic_txstream = 2;
+
 		ic->ic_htcaps =
 			  IEEE80211_HTCAP_SMPS_OFF	/* SMPS mode disabled */
 			| IEEE80211_HTCAP_SHORTGI20	/* short GI in 20MHz */

Modified: user/attilio/vmobj-readlock/sys/fs/ext2fs/ext2_hash.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/fs/ext2fs/ext2_hash.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/fs/ext2fs/ext2_hash.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -73,7 +73,7 @@
 
 /*
  * FF, GG, and HH are transformations for rounds 1, 2, and 3.
- * Rotation is separated from addition to prevent recompuatation
+ * Rotation is separated from addition to prevent recomputation.
  */
 #define FF(a, b, c, d, x, s) { \
 	(a) += F ((b), (c), (d)) + (x); \

Modified: user/attilio/vmobj-readlock/sys/geom/part/g_part_gpt.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/geom/part/g_part_gpt.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/geom/part/g_part_gpt.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -916,9 +916,10 @@ g_part_gpt_read(struct g_part_table *bas
 
 	basetable->gpt_first = table->hdr->hdr_lba_start;
 	basetable->gpt_last = table->hdr->hdr_lba_end;
-	basetable->gpt_entries = table->hdr->hdr_entries;
+	basetable->gpt_entries = (table->hdr->hdr_lba_start - 2) *
+	    pp->sectorsize / table->hdr->hdr_entsz;
 
-	for (index = basetable->gpt_entries - 1; index >= 0; index--) {
+	for (index = table->hdr->hdr_entries - 1; index >= 0; index--) {
 		if (EQUUID(&tbl[index].ent_type, &gpt_uuid_unused))
 			continue;
 		entry = (struct g_part_gpt_entry *)g_part_new_entry(

Modified: user/attilio/vmobj-readlock/sys/kern/kern_event.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/kern/kern_event.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/kern/kern_event.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -431,8 +431,11 @@ filt_proc(struct knote *kn, long hint)
 		if (!(kn->kn_status & KN_DETACHED))
 			knlist_remove_inevent(&p->p_klist, kn);
 		kn->kn_flags |= (EV_EOF | EV_ONESHOT);
-		kn->kn_data = p->p_xstat;
 		kn->kn_ptr.p_proc = NULL;
+		if (kn->kn_fflags & NOTE_EXIT)
+			kn->kn_data = p->p_xstat;
+		if (kn->kn_fflags == 0)
+			kn->kn_flags |= EV_DROP;
 		return (1);
 	}
 
@@ -1410,7 +1413,21 @@ retry:
 		KASSERT((kn->kn_status & KN_INFLUX) == 0,
 		    ("KN_INFLUX set when not suppose to be"));
 
-		if ((kn->kn_flags & EV_ONESHOT) == EV_ONESHOT) {
+		if ((kn->kn_flags & EV_DROP) == EV_DROP) {
+			kn->kn_status &= ~KN_QUEUED;
+			kn->kn_status |= KN_INFLUX;
+			kq->kq_count--;
+			KQ_UNLOCK(kq);
+			/*
+			 * We don't need to lock the list since we've marked
+			 * it _INFLUX.
+			 */
+			if (!(kn->kn_status & KN_DETACHED))
+				kn->kn_fop->f_detach(kn);
+			knote_drop(kn, td);
+			KQ_LOCK(kq);
+			continue;
+		} else if ((kn->kn_flags & EV_ONESHOT) == EV_ONESHOT) {
 			kn->kn_status &= ~KN_QUEUED;
 			kn->kn_status |= KN_INFLUX;
 			kq->kq_count--;

Modified: user/attilio/vmobj-readlock/sys/kern/subr_bus.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/kern/subr_bus.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/kern/subr_bus.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -2077,11 +2077,11 @@ device_probe_child(device_t dev, device_
 			if (best == NULL || result > pri) {
 				/*
 				 * Probes that return BUS_PROBE_NOWILDCARD
-				 * or lower only match when they are set
-				 * in stone by the parent bus.
+				 * or lower only match on devices whose
+				 * driver was explicitly specified.
 				 */
 				if (result <= BUS_PROBE_NOWILDCARD &&
-				    child->flags & DF_WILDCARD)
+				    !(child->flags & DF_FIXEDCLASS))
 					continue;
 				best = dl;
 				pri = result;

Modified: user/attilio/vmobj-readlock/sys/net80211/ieee80211.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/net80211/ieee80211.c	Thu Aug  8 23:20:54 2013	(r254110)
+++ user/attilio/vmobj-readlock/sys/net80211/ieee80211.c	Thu Aug  8 23:24:36 2013	(r254111)
@@ -241,9 +241,15 @@ null_transmit(struct ifnet *ifp, struct 
 	return EACCES;		/* XXX EIO/EPERM? */
 }
 
+#if __FreeBSD_version >= 1000031
 static int
 null_output(struct ifnet *ifp, struct mbuf *m,
 	const struct sockaddr *dst, struct route *ro)
+#else
+static int
+null_output(struct ifnet *ifp, struct mbuf *m,
+	struct sockaddr *dst, struct route *ro)
+#endif
 {
 	if_printf(ifp, "discard raw packet\n");
 	return null_transmit(ifp, m);
@@ -427,13 +433,10 @@ ieee80211_vap_setup(struct ieee80211com 
 	if_initname(ifp, name, unit);
 	ifp->if_softc = vap;			/* back pointer */
 	ifp->if_flags = IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST;
-	ifp->if_start = ieee80211_start;
+	ifp->if_transmit = ieee80211_vap_transmit;
+	ifp->if_qflush = ieee80211_vap_qflush;

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


More information about the svn-src-user mailing list