svn commit: r254110 - in user/attilio/vmcontention: 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/forth...
Attilio Rao
attilio at FreeBSD.org
Thu Aug 8 23:21:00 UTC 2013
Author: attilio
Date: Thu Aug 8 23:20:54 2013
New Revision: 254110
URL: http://svnweb.freebsd.org/changeset/base/254110
Log:
MFC
Modified:
user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/ztest/ztest.c
user/attilio/vmcontention/crypto/openssl/ssl/s3_cbc.c
user/attilio/vmcontention/gnu/usr.bin/grep/grep.c
user/attilio/vmcontention/lib/libc/gen/fnmatch.c
user/attilio/vmcontention/lib/libc/iconv/citrus_iconv.c
user/attilio/vmcontention/sys/amd64/amd64/pmap.c
user/attilio/vmcontention/sys/boot/common/part.c
user/attilio/vmcontention/sys/boot/forth/beastie.4th
user/attilio/vmcontention/sys/boot/forth/color.4th
user/attilio/vmcontention/sys/boot/forth/color.4th.8
user/attilio/vmcontention/sys/boot/forth/loader.conf.5
user/attilio/vmcontention/sys/boot/forth/menu.4th
user/attilio/vmcontention/sys/boot/forth/menu.4th.8
user/attilio/vmcontention/sys/boot/forth/menu.rc
user/attilio/vmcontention/sys/boot/forth/version.4th.8
user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
user/attilio/vmcontention/sys/conf/newvers.sh
user/attilio/vmcontention/sys/dev/iwn/if_iwn.c
user/attilio/vmcontention/sys/fs/ext2fs/ext2_hash.c
user/attilio/vmcontention/sys/geom/part/g_part_gpt.c
user/attilio/vmcontention/sys/kern/kern_event.c
user/attilio/vmcontention/sys/kern/subr_bus.c
user/attilio/vmcontention/sys/net80211/ieee80211.c
user/attilio/vmcontention/sys/net80211/ieee80211_freebsd.c
user/attilio/vmcontention/sys/net80211/ieee80211_freebsd.h
user/attilio/vmcontention/sys/net80211/ieee80211_hostap.c
user/attilio/vmcontention/sys/net80211/ieee80211_hwmp.c
user/attilio/vmcontention/sys/net80211/ieee80211_mesh.c
user/attilio/vmcontention/sys/net80211/ieee80211_output.c
user/attilio/vmcontention/sys/net80211/ieee80211_power.c
user/attilio/vmcontention/sys/net80211/ieee80211_proto.c
user/attilio/vmcontention/sys/net80211/ieee80211_proto.h
user/attilio/vmcontention/sys/net80211/ieee80211_superg.c
user/attilio/vmcontention/sys/net80211/ieee80211_var.h
user/attilio/vmcontention/sys/net80211/ieee80211_wds.c
user/attilio/vmcontention/sys/sys/event.h
user/attilio/vmcontention/tools/tools/sysdoc/sysdoc.sh
Directory Properties:
user/attilio/vmcontention/ (props changed)
user/attilio/vmcontention/cddl/ (props changed)
user/attilio/vmcontention/cddl/contrib/opensolaris/ (props changed)
user/attilio/vmcontention/crypto/openssl/ (props changed)
user/attilio/vmcontention/lib/libc/ (props changed)
user/attilio/vmcontention/sys/ (props changed)
user/attilio/vmcontention/sys/boot/ (props changed)
user/attilio/vmcontention/sys/cddl/contrib/opensolaris/ (props changed)
user/attilio/vmcontention/sys/conf/ (props changed)
Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/ztest/ztest.c
==============================================================================
--- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/ztest/ztest.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/ztest/ztest.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/crypto/openssl/ssl/s3_cbc.c
==============================================================================
--- user/attilio/vmcontention/crypto/openssl/ssl/s3_cbc.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/crypto/openssl/ssl/s3_cbc.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/gnu/usr.bin/grep/grep.c
==============================================================================
--- user/attilio/vmcontention/gnu/usr.bin/grep/grep.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/gnu/usr.bin/grep/grep.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/lib/libc/gen/fnmatch.c
==============================================================================
--- user/attilio/vmcontention/lib/libc/gen/fnmatch.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/lib/libc/gen/fnmatch.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/lib/libc/iconv/citrus_iconv.c
==============================================================================
--- user/attilio/vmcontention/lib/libc/iconv/citrus_iconv.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/lib/libc/iconv/citrus_iconv.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/amd64/amd64/pmap.c
==============================================================================
--- user/attilio/vmcontention/sys/amd64/amd64/pmap.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/amd64/amd64/pmap.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/boot/common/part.c
==============================================================================
--- user/attilio/vmcontention/sys/boot/common/part.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/boot/common/part.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/boot/forth/beastie.4th
==============================================================================
--- user/attilio/vmcontention/sys/boot/forth/beastie.4th Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/boot/forth/beastie.4th Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/boot/forth/color.4th
==============================================================================
--- user/attilio/vmcontention/sys/boot/forth/color.4th Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/boot/forth/color.4th Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/boot/forth/color.4th.8
==============================================================================
--- user/attilio/vmcontention/sys/boot/forth/color.4th.8 Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/boot/forth/color.4th.8 Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/boot/forth/loader.conf.5
==============================================================================
--- user/attilio/vmcontention/sys/boot/forth/loader.conf.5 Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/boot/forth/loader.conf.5 Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/boot/forth/menu.4th
==============================================================================
--- user/attilio/vmcontention/sys/boot/forth/menu.4th Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/boot/forth/menu.4th Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/boot/forth/menu.4th.8
==============================================================================
--- user/attilio/vmcontention/sys/boot/forth/menu.4th.8 Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/boot/forth/menu.4th.8 Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/boot/forth/menu.rc
==============================================================================
--- user/attilio/vmcontention/sys/boot/forth/menu.rc Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/boot/forth/menu.rc Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/boot/forth/version.4th.8
==============================================================================
--- user/attilio/vmcontention/sys/boot/forth/version.4th.8 Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/boot/forth/version.4th.8 Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
==============================================================================
--- user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
==============================================================================
--- user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/conf/newvers.sh
==============================================================================
--- user/attilio/vmcontention/sys/conf/newvers.sh Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/conf/newvers.sh Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/dev/iwn/if_iwn.c
==============================================================================
--- user/attilio/vmcontention/sys/dev/iwn/if_iwn.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/dev/iwn/if_iwn.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/fs/ext2fs/ext2_hash.c
==============================================================================
--- user/attilio/vmcontention/sys/fs/ext2fs/ext2_hash.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/fs/ext2fs/ext2_hash.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/geom/part/g_part_gpt.c
==============================================================================
--- user/attilio/vmcontention/sys/geom/part/g_part_gpt.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/geom/part/g_part_gpt.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/kern/kern_event.c
==============================================================================
--- user/attilio/vmcontention/sys/kern/kern_event.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/kern/kern_event.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/kern/subr_bus.c
==============================================================================
--- user/attilio/vmcontention/sys/kern/subr_bus.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/kern/subr_bus.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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/vmcontention/sys/net80211/ieee80211.c
==============================================================================
--- user/attilio/vmcontention/sys/net80211/ieee80211.c Thu Aug 8 22:49:18 2013 (r254109)
+++ user/attilio/vmcontention/sys/net80211/ieee80211.c Thu Aug 8 23:20:54 2013 (r254110)
@@ -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