svn commit: r214417 - in projects/sv: contrib/top
contrib/tzcode/stdtime contrib/tzcode/zic lib/libthr/thread
sbin/geom/class/eli share/man/man4 share/man/man5 share/misc
share/mk sys/cddl/contrib/...
Attilio Rao
attilio at FreeBSD.org
Wed Oct 27 13:38:41 UTC 2010
Author: attilio
Date: Wed Oct 27 13:38:40 2010
New Revision: 214417
URL: http://svn.freebsd.org/changeset/base/214417
Log:
MFC @ 214416
Modified:
projects/sv/contrib/tzcode/stdtime/asctime.c
projects/sv/contrib/tzcode/stdtime/localtime.c
projects/sv/contrib/tzcode/zic/zic.8
projects/sv/contrib/tzcode/zic/zic.c
projects/sv/lib/libthr/thread/thr_attr.c
projects/sv/lib/libthr/thread/thr_mutex.c
projects/sv/sbin/geom/class/eli/geom_eli.c
projects/sv/share/man/man4/acpi.4
projects/sv/share/man/man4/ada.4
projects/sv/share/man/man5/nsmb.conf.5
projects/sv/share/misc/committers-ports.dot
projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
projects/sv/sys/dev/acpica/acpi.c
projects/sv/sys/fs/nfs/nfsclstate.h
projects/sv/sys/fs/nfsclient/nfs_clstate.c
projects/sv/sys/x86/x86/dump_machdep.c
projects/sv/usr.sbin/mfiutil/mfi_config.c
projects/sv/usr.sbin/mfiutil/mfi_drive.c
projects/sv/usr.sbin/mfiutil/mfi_evt.c
projects/sv/usr.sbin/mfiutil/mfi_flash.c
projects/sv/usr.sbin/mfiutil/mfi_patrol.c
projects/sv/usr.sbin/mfiutil/mfi_show.c
projects/sv/usr.sbin/mfiutil/mfi_volume.c
Directory Properties:
projects/sv/ (props changed)
projects/sv/cddl/contrib/opensolaris/ (props changed)
projects/sv/contrib/bind9/ (props changed)
projects/sv/contrib/binutils/ (props changed)
projects/sv/contrib/bzip2/ (props changed)
projects/sv/contrib/ee/ (props changed)
projects/sv/contrib/expat/ (props changed)
projects/sv/contrib/file/ (props changed)
projects/sv/contrib/gdb/ (props changed)
projects/sv/contrib/gdtoa/ (props changed)
projects/sv/contrib/gnu-sort/ (props changed)
projects/sv/contrib/groff/ (props changed)
projects/sv/contrib/less/ (props changed)
projects/sv/contrib/libpcap/ (props changed)
projects/sv/contrib/llvm/ (props changed)
projects/sv/contrib/llvm/tools/clang/ (props changed)
projects/sv/contrib/ncurses/ (props changed)
projects/sv/contrib/netcat/ (props changed)
projects/sv/contrib/ntp/ (props changed)
projects/sv/contrib/one-true-awk/ (props changed)
projects/sv/contrib/openbsm/ (props changed)
projects/sv/contrib/openpam/ (props changed)
projects/sv/contrib/pf/ (props changed)
projects/sv/contrib/sendmail/ (props changed)
projects/sv/contrib/tcpdump/ (props changed)
projects/sv/contrib/tcsh/ (props changed)
projects/sv/contrib/top/ (props changed)
projects/sv/contrib/top/install-sh (props changed)
projects/sv/contrib/tzcode/stdtime/ (props changed)
projects/sv/contrib/tzcode/zic/ (props changed)
projects/sv/contrib/tzdata/ (props changed)
projects/sv/contrib/wpa/ (props changed)
projects/sv/contrib/xz/ (props changed)
projects/sv/crypto/openssh/ (props changed)
projects/sv/crypto/openssl/ (props changed)
projects/sv/lib/libc/ (props changed)
projects/sv/lib/libc/stdtime/ (props changed)
projects/sv/lib/libutil/ (props changed)
projects/sv/lib/libz/ (props changed)
projects/sv/sbin/ (props changed)
projects/sv/sbin/ipfw/ (props changed)
projects/sv/share/mk/bsd.arch.inc.mk (props changed)
projects/sv/share/zoneinfo/ (props changed)
projects/sv/sys/ (props changed)
projects/sv/sys/amd64/include/xen/ (props changed)
projects/sv/sys/cddl/contrib/opensolaris/ (props changed)
projects/sv/sys/contrib/dev/acpica/ (props changed)
projects/sv/sys/contrib/pf/ (props changed)
projects/sv/sys/contrib/x86emu/ (props changed)
projects/sv/sys/dev/xen/xenpci/ (props changed)
projects/sv/usr.bin/calendar/ (props changed)
projects/sv/usr.bin/csup/ (props changed)
projects/sv/usr.bin/procstat/ (props changed)
projects/sv/usr.sbin/zic/ (props changed)
Modified: projects/sv/contrib/tzcode/stdtime/asctime.c
==============================================================================
--- projects/sv/contrib/tzcode/stdtime/asctime.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/contrib/tzcode/stdtime/asctime.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -12,7 +12,7 @@
#include <sys/cdefs.h>
#ifndef lint
#ifndef NOID
-static char elsieid[] __unused = "@(#)asctime.c 8.2";
+static char elsieid[] __unused = "@(#)asctime.c 8.5";
#endif /* !defined NOID */
#endif /* !defined lint */
__FBSDID("$FreeBSD$");
@@ -95,6 +95,10 @@ char * buf;
char year[INT_STRLEN_MAXIMUM(int) + 2];
char result[MAX_ASCTIME_BUF_SIZE];
+ if (timeptr == NULL) {
+ errno = EINVAL;
+ return strcpy(buf, "??? ??? ?? ??:??:?? ????\n");
+ }
if (timeptr->tm_wday < 0 || timeptr->tm_wday >= DAYSPERWEEK)
wn = "???";
else wn = wday_name[timeptr->tm_wday];
@@ -117,10 +121,9 @@ char * buf;
timeptr->tm_mday, timeptr->tm_hour,
timeptr->tm_min, timeptr->tm_sec,
year);
- if (strlen(result) < STD_ASCTIME_BUF_SIZE || buf == buf_asctime) {
- (void) strcpy(buf, result);
- return buf;
- } else {
+ if (strlen(result) < STD_ASCTIME_BUF_SIZE || buf == buf_asctime)
+ return strcpy(buf, result);
+ else {
#ifdef EOVERFLOW
errno = EOVERFLOW;
#else /* !defined EOVERFLOW */
Modified: projects/sv/contrib/tzcode/stdtime/localtime.c
==============================================================================
--- projects/sv/contrib/tzcode/stdtime/localtime.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/contrib/tzcode/stdtime/localtime.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -6,7 +6,7 @@
#include <sys/cdefs.h>
#ifndef lint
#ifndef NOID
-static char elsieid[] __unused = "@(#)localtime.c 8.9";
+static char elsieid[] __unused = "@(#)localtime.c 8.14";
#endif /* !defined NOID */
#endif /* !defined lint */
__FBSDID("$FreeBSD$");
@@ -315,34 +315,26 @@ settzname(void)
return;
}
#endif /* defined ALL_STATE */
+ /*
+ ** And to get the latest zone names into tzname. . .
+ */
for (i = 0; i < sp->typecnt; ++i) {
- const struct ttinfo * const ttisp = &sp->ttis[i];
+ const struct ttinfo * const ttisp = &sp->ttis[sp->types[i]];
tzname[ttisp->tt_isdst] =
&sp->chars[ttisp->tt_abbrind];
#ifdef USG_COMPAT
if (ttisp->tt_isdst)
daylight = 1;
- if (i == 0 || !ttisp->tt_isdst)
+ if (!ttisp->tt_isdst)
timezone = -(ttisp->tt_gmtoff);
#endif /* defined USG_COMPAT */
#ifdef ALTZONE
- if (i == 0 || ttisp->tt_isdst)
+ if (ttisp->tt_isdst)
altzone = -(ttisp->tt_gmtoff);
#endif /* defined ALTZONE */
}
/*
- ** And to get the latest zone names into tzname. . .
- */
- for (i = 0; i < sp->timecnt; ++i) {
- const struct ttinfo * const ttisp =
- &sp->ttis[
- sp->types[i]];
-
- tzname[ttisp->tt_isdst] =
- &sp->chars[ttisp->tt_abbrind];
- }
- /*
** Finally, scrub the abbreviations.
** First, replace bogus characters.
*/
@@ -395,6 +387,8 @@ register const int doextend;
4 * TZ_MAX_TIMES];
} u;
+ sp->goback = sp->goahead = FALSE;
+
/* XXX The following is from OpenBSD, and I'm not sure it is correct */
if (name != NULL && issetugid() != 0)
if ((name[0] == ':' && name[1] == '/') ||
@@ -610,7 +604,6 @@ register const int doextend;
sp->ttis[sp->typecnt++] = ts.ttis[1];
}
}
- sp->goback = sp->goahead = FALSE;
if (sp->timecnt > 1) {
for (i = 1; i < sp->timecnt; ++i)
if (typesequiv(sp, sp->types[i], sp->types[0]) &&
@@ -1221,7 +1214,7 @@ tzsetwall_basic(int rdlocked)
#ifdef ALL_STATE
if (lclptr == NULL) {
- lclptr = (struct state *) malloc(sizeof *lclptr);
+ lclptr = (struct state *) calloc(1, sizeof *lclptr);
if (lclptr == NULL) {
settzname(); /* all we can do */
_RWLOCK_UNLOCK(&lcl_rwlock);
@@ -1273,7 +1266,7 @@ tzset_basic(int rdlocked)
#ifdef ALL_STATE
if (lclptr == NULL) {
- lclptr = (struct state *) malloc(sizeof *lclptr);
+ lclptr = (struct state *) calloc(1, sizeof *lclptr);
if (lclptr == NULL) {
settzname(); /* all we can do */
_RWLOCK_UNLOCK(&lcl_rwlock);
@@ -1471,7 +1464,7 @@ gmt_init(void)
{
#ifdef ALL_STATE
- gmtptr = (struct state *) malloc(sizeof *gmtptr);
+ gmtptr = (struct state *) calloc(1, sizeof *gmtptr);
if (gmtptr != NULL)
#endif /* defined ALL_STATE */
gmtload(gmtptr);
@@ -2054,6 +2047,11 @@ const long offset;
int types[TZ_MAX_TYPES];
int okay;
+ if (tmp == NULL) {
+ errno = EINVAL;
+ return WRONG;
+ }
+
if (tmp->tm_isdst > 1)
tmp->tm_isdst = 1;
t = time2(tmp, funcp, offset, &okay);
@@ -2129,7 +2127,8 @@ time_t
timelocal(tmp)
struct tm * const tmp;
{
- tmp->tm_isdst = -1; /* in case it wasn't initialized */
+ if (tmp != NULL)
+ tmp->tm_isdst = -1; /* in case it wasn't initialized */
return mktime(tmp);
}
@@ -2137,7 +2136,8 @@ time_t
timegm(tmp)
struct tm * const tmp;
{
- tmp->tm_isdst = 0;
+ if (tmp != NULL)
+ tmp->tm_isdst = 0;
return time1(tmp, gmtsub, 0L);
}
@@ -2146,7 +2146,8 @@ timeoff(tmp, offset)
struct tm * const tmp;
const long offset;
{
- tmp->tm_isdst = 0;
+ if (tmp != NULL)
+ tmp->tm_isdst = 0;
return time1(tmp, gmtsub, offset);
}
Modified: projects/sv/contrib/tzcode/zic/zic.8
==============================================================================
--- projects/sv/contrib/tzcode/zic/zic.8 Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/contrib/tzcode/zic/zic.8 Wed Oct 27 13:38:40 2010 (r214417)
@@ -119,6 +119,9 @@ Any line that is blank (after comment st
Non-blank lines are expected to be of one of three types:
rule lines, zone lines, and link lines.
.Pp
+Names (such as month names) must be in English and are case insensitive.
+Abbreviations, if used, must be unambiguous in context.
+.Pp
A rule line has the form:
.Dl "Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S"
For example:
@@ -460,6 +463,6 @@ standard directory used for created file
.Xr ctime 3 ,
.Xr tzfile 5 ,
.Xr zdump 8
-.\" @(#)zic.8 8.5
+.\" @(#)zic.8 8.6
.\" This file is in the public domain, so clarified as of
.\" 2009-05-17 by Arthur David Olson.
Modified: projects/sv/contrib/tzcode/zic/zic.c
==============================================================================
--- projects/sv/contrib/tzcode/zic/zic.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/contrib/tzcode/zic/zic.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -3,7 +3,7 @@
** 2006-07-17 by Arthur David Olson.
*/
-static const char elsieid[] = "@(#)zic.c 8.20";
+static const char elsieid[] = "@(#)zic.c 8.22";
#ifndef lint
static const char rcsid[] =
@@ -1588,6 +1588,53 @@ const char * const string;
if (thistimei == 0)
writetype[0] = TRUE;
}
+#ifndef LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH
+ /*
+ ** For some pre-2011 systems: if the last-to-be-written
+ ** standard (or daylight) type has an offset different from the
+ ** most recently used offset,
+ ** append an (unused) copy of the most recently used type
+ ** (to help get global "altzone" and "timezone" variables
+ ** set correctly).
+ */
+ {
+ register int mrudst, mrustd, hidst, histd, type;
+
+ hidst = histd = mrudst = mrustd = -1;
+ for (i = thistimei; i < thistimelim; ++i)
+ if (isdsts[types[i]])
+ mrudst = types[i];
+ else mrustd = types[i];
+ for (i = 0; i < typecnt; ++i)
+ if (writetype[i]) {
+ if (isdsts[i])
+ hidst = i;
+ else histd = i;
+ }
+ if (hidst >= 0 && mrudst >= 0 && hidst != mrudst &&
+ gmtoffs[hidst] != gmtoffs[mrudst]) {
+ isdsts[mrudst] = -1;
+ type = addtype(gmtoffs[mrudst],
+ &chars[abbrinds[mrudst]],
+ TRUE,
+ ttisstds[mrudst],
+ ttisgmts[mrudst]);
+ isdsts[mrudst] = TRUE;
+ writetype[type] = TRUE;
+ }
+ if (histd >= 0 && mrustd >= 0 && histd != mrustd &&
+ gmtoffs[histd] != gmtoffs[mrustd]) {
+ isdsts[mrustd] = -1;
+ type = addtype(gmtoffs[mrustd],
+ &chars[abbrinds[mrustd]],
+ FALSE,
+ ttisstds[mrustd],
+ ttisgmts[mrustd]);
+ isdsts[mrustd] = FALSE;
+ writetype[type] = TRUE;
+ }
+ }
+#endif /* !defined LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH */
thistypecnt = 0;
for (i = 0; i < typecnt; ++i)
typemap[i] = writetype[i] ? thistypecnt++ : -1;
Modified: projects/sv/lib/libthr/thread/thr_attr.c
==============================================================================
--- projects/sv/lib/libthr/thread/thr_attr.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/lib/libthr/thread/thr_attr.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -141,19 +141,14 @@ _pthread_attr_get_np(pthread_t pthread,
struct pthread *curthread;
struct pthread_attr attr, *dst;
int ret;
- size_t cpusetsize;
+ size_t kern_size;
if (pthread == NULL || dstattr == NULL || (dst = *dstattr) == NULL)
return (EINVAL);
- cpusetsize = _get_kern_cpuset_size();
- if (dst->cpusetsize < cpusetsize) {
- char *newset = realloc(dst->cpuset, cpusetsize);
- if (newset == NULL)
- return (errno);
- memset(newset + dst->cpusetsize, 0, cpusetsize -
- dst->cpusetsize);
- dst->cpuset = (cpuset_t *)newset;
- dst->cpusetsize = cpusetsize;
+ kern_size = _get_kern_cpuset_size();
+ if (dst->cpuset == NULL) {
+ dst->cpuset = calloc(1, kern_size);
+ dst->cpusetsize = kern_size;
}
curthread = _get_curthread();
if ((ret = _thr_find_thread(curthread, pthread, /*include dead*/0)) != 0)
@@ -574,13 +569,14 @@ _get_kern_cpuset_size(void)
if (kern_cpuset_size == 0) {
size_t len;
+ int maxcpus;
- len = sizeof(kern_cpuset_size);
- if (sysctlbyname("kern.smp.maxcpus", &kern_cpuset_size,
- &len, NULL, 0))
+ len = sizeof(maxcpus);
+ if (sysctlbyname("kern.smp.maxcpus", &maxcpus, &len, NULL, 0))
PANIC("failed to get sysctl kern.smp.maxcpus");
-
- kern_cpuset_size = (kern_cpuset_size + 7) / 8;
+ int nbits_long = sizeof(long) * NBBY;
+ int num_long = (maxcpus + nbits_long - 1) / nbits_long;
+ kern_cpuset_size = num_long * sizeof(long);
}
return (kern_cpuset_size);
@@ -605,27 +601,25 @@ _pthread_attr_setaffinity_np(pthread_att
}
return (0);
}
-
- if (cpusetsize > attr->cpusetsize) {
- size_t kern_size = _get_kern_cpuset_size();
- if (cpusetsize > kern_size) {
- size_t i;
- for (i = kern_size; i < cpusetsize; ++i) {
- if (((char *)cpusetp)[i])
- return (EINVAL);
- }
+ size_t kern_size = _get_kern_cpuset_size();
+ /* Kernel rejects small set, we check it here too. */
+ if (cpusetsize < kern_size)
+ return (ERANGE);
+ if (cpusetsize > kern_size) {
+ /* Kernel checks invalid bits, we check it here too. */
+ size_t i;
+ for (i = kern_size; i < cpusetsize; ++i) {
+ if (((char *)cpusetp)[i])
+ return (EINVAL);
}
- void *newset = realloc(attr->cpuset, cpusetsize);
- if (newset == NULL)
- return (ENOMEM);
- attr->cpuset = newset;
- attr->cpusetsize = cpusetsize;
- } else {
- memset(((char *)attr->cpuset) + cpusetsize, 0,
- attr->cpusetsize - cpusetsize);
- attr->cpusetsize = cpusetsize;
}
- memcpy(attr->cpuset, cpusetp, cpusetsize);
+ if (attr->cpuset == NULL) {
+ attr->cpuset = calloc(1, kern_size);
+ if (attr->cpuset == NULL)
+ return (errno);
+ attr->cpusetsize = kern_size;
+ }
+ memcpy(attr->cpuset, cpusetp, kern_size);
ret = 0;
}
return (ret);
@@ -641,16 +635,18 @@ _pthread_attr_getaffinity_np(const pthre
if (pattr == NULL || (attr = (*pattr)) == NULL)
ret = EINVAL;
- else if (attr->cpuset != NULL) {
- memcpy(cpusetp, attr->cpuset, MIN(cpusetsize, attr->cpusetsize));
- if (cpusetsize > attr->cpusetsize)
- memset(((char *)cpusetp) + attr->cpusetsize, 0,
- cpusetsize - attr->cpusetsize);
- } else {
+ else {
+ /* Kernel rejects small set, we check it here too. */
size_t kern_size = _get_kern_cpuset_size();
- memset(cpusetp, -1, MIN(cpusetsize, kern_size));
+ if (cpusetsize < kern_size)
+ return (ERANGE);
+ if (attr->cpuset != NULL)
+ memcpy(cpusetp, attr->cpuset, MIN(cpusetsize,
+ attr->cpusetsize));
+ else
+ memset(cpusetp, -1, kern_size);
if (cpusetsize > kern_size)
- memset(((char *)cpusetp) + kern_size, 0,
+ memset(((char *)cpusetp) + kern_size, 0,
cpusetsize - kern_size);
}
return (ret);
Modified: projects/sv/lib/libthr/thread/thr_mutex.c
==============================================================================
--- projects/sv/lib/libthr/thread/thr_mutex.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/lib/libthr/thread/thr_mutex.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -257,10 +257,8 @@ _mutex_fork(struct pthread *curthread)
int
_pthread_mutex_destroy(pthread_mutex_t *mutex)
{
- struct pthread *curthread = _get_curthread();
pthread_mutex_t m;
- uint32_t id;
- int ret = 0;
+ int ret;
m = *mutex;
if (m < THR_MUTEX_DESTROYED) {
@@ -268,34 +266,13 @@ _pthread_mutex_destroy(pthread_mutex_t *
} else if (m == THR_MUTEX_DESTROYED) {
ret = EINVAL;
} else {
- id = TID(curthread);
-
- /*
- * Try to lock the mutex structure, we only need to
- * try once, if failed, the mutex is in used.
- */
- ret = _thr_umutex_trylock(&m->m_lock, id);
- if (ret)
- return (ret);
- /*
- * Check mutex other fields to see if this mutex is
- * in use. Mostly for prority mutex types, or there
- * are condition variables referencing it.
- */
if (m->m_owner != NULL || m->m_refcount != 0) {
- if (m->m_lock.m_flags & UMUTEX_PRIO_PROTECT)
- set_inherited_priority(curthread, m);
- _thr_umutex_unlock(&m->m_lock, id);
ret = EBUSY;
} else {
*mutex = THR_MUTEX_DESTROYED;
-
- if (m->m_lock.m_flags & UMUTEX_PRIO_PROTECT)
- set_inherited_priority(curthread, m);
- _thr_umutex_unlock(&m->m_lock, id);
-
MUTEX_ASSERT_NOT_OWNED(m);
free(m);
+ ret = 0;
}
}
Modified: projects/sv/sbin/geom/class/eli/geom_eli.c
==============================================================================
--- projects/sv/sbin/geom/class/eli/geom_eli.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/sbin/geom/class/eli/geom_eli.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -749,8 +749,8 @@ eli_init(struct gctl_req *req)
return;
}
if (val > sysconf(_SC_PAGE_SIZE)) {
- gctl_error(req, "warning: Using sectorsize bigger than "
- "the page size!");
+ fprintf(stderr,
+ "warning: Using sectorsize bigger than the page size!\n");
}
md.md_sectorsize = val;
}
Modified: projects/sv/share/man/man4/acpi.4
==============================================================================
--- projects/sv/share/man/man4/acpi.4 Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/share/man/man4/acpi.4 Wed Oct 27 13:38:40 2010 (r214417)
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 12, 2010
+.Dd October 26, 2010
.Dt ACPI 4
.Os
.Sh NAME
@@ -224,6 +224,26 @@ Try increasing this number if you get th
.Qq Li AE_NO_HARDWARE_RESPONSE .
.It Va hw.acpi.host_mem_start
Override the assumed memory starting address for PCI host bridges.
+.It Va hw.acpi.install_interface , hw.acpi.remove_interface
+Install or remove OS interface(s) to control return value of
+.Ql _OSI
+query method. When an OS interface is specified in
+.Va hw.acpi.install_interface ,
+.Li _OSI
+query for the interface returns it is
+.Em supported .
+Conversely, when an OS interface is specified in
+.Va hw.acpi.remove_interface ,
+.Li _OSI
+query returns it is
+.Em not supported .
+Multiple interfaces can be specified in a comma-separated list and
+any leading white spaces will be ignored. For example,
+.Qq Li FreeBSD, Linux
+is a valid list of two interfaces
+.Qq Li FreeBSD
+and
+.Qq Li Linux .
.It Va hw.acpi.reset_video
Enables calling the VESA reset BIOS vector on the resume path.
This can fix some graphics cards that have problems such as LCD white-out
Modified: projects/sv/share/man/man4/ada.4
==============================================================================
--- projects/sv/share/man/man4/ada.4 Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/share/man/man4/ada.4 Wed Oct 27 13:38:40 2010 (r214417)
@@ -121,6 +121,8 @@ seconds.
.It kern.cam.ada.spindown_shutdown
.Pp
This variable determines whether to spin-down disks when shutting down.
+Set to 1 to enable spin-down, 0 to disable.
+The default is currently enabled.
.El
.Sh FILES
.Bl -tag -width ".Pa /dev/ada*" -compact
Modified: projects/sv/share/man/man5/nsmb.conf.5
==============================================================================
--- projects/sv/share/man/man5/nsmb.conf.5 Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/share/man/man5/nsmb.conf.5 Wed Oct 27 13:38:40 2010 (r214417)
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd June 30, 2003
+.Dd October 19, 2010
.Dt NSMB.CONF 5
.Os
.Sh NAME
@@ -87,7 +87,7 @@ Possible keywords may include:
.It Va nbns Ta "+ + - -" Ta "address of NetBIOS name server (WINS)"
.It Va nbscope Ta "+ + - -" Ta "NetBIOS scope"
.It Va nbtimeout Ta "+ + - -" Ta "timeout for NetBIOS name servers"
-.It Va password Ta "- - + +" Ta "plain text password used to access the given share"
+.It Va password Ta "- - + +" Ta "plain text or simple encrypted password used to access the given share"
.It Va retry_count Ta "+ + - -" Ta "number of retries before connection is marked as broken"
.It Va timeout Ta "+ + - -" Ta "SMB request timeout"
.It Va workgroup Ta "+ + + +" Ta "workgroup name"
@@ -96,6 +96,9 @@ Possible keywords may include:
.Bl -tag -width ".Pa /etc/nsmb.conf"
.It Pa /etc/nsmb.conf
The default remote mount-point configuration file.
+.Pa "~/nsmb.conf"
+.It Pa ~/nsmb.conf
+The user specific remote mount-point configuration file.
.El
.Sh EXAMPLES
What follows is a sample configuration file which may,
@@ -108,6 +111,9 @@ workgroup=SALES
[FSERVER]
charsets=koi8-r:cp866
addr=fserv.example.com
+# User specific data for FSERVER
+[FSERVER:MYUSER]
+password=$$16144562c293a0314e6e1
.Ed
.Pp
All lines which begin with the
@@ -124,6 +130,18 @@ required when Cyrillic characters are no
The hostname value,
.Dq Li fserv.example.com ,
is also assigned in this section.
+.Dq Li FSERVER:USER ,
+defines the user settings and is useful for saving the password used
+during a specific connection.
+The password may be plaintext or obfuscated using simple encryption.
+The simple encrypted password starts with the `$$1' symbols.
+Warning: the encryption function is very weak and intended only to hide
+clear text passwords.
+If the use of simple encryption is desired, the following command may be
+used on a password:
+.Bd -literal -offset indent
+smbutil crypt
+.Ed
.Sh COMPATIBILITY
At the time of this writing, the
.Tn IPX
Modified: projects/sv/share/misc/committers-ports.dot
==============================================================================
--- projects/sv/share/misc/committers-ports.dot Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/share/misc/committers-ports.dot Wed Oct 27 13:38:40 2010 (r214417)
@@ -261,6 +261,8 @@ itetcu -> araujo
itetcu -> dryice
itetcu -> sahil
+jadawin -> bapt
+
joerg -> netchild
knu -> daichi
@@ -365,6 +367,7 @@ steve -> netchild
tabthorpe -> ashish
tabthorpe -> avilla
tabthorpe -> avl
+tabthorpe -> bapt
tabthorpe -> fluffy
tabthorpe -> jacula
tabthorpe -> jadawin
Modified: projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
==============================================================================
--- projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -192,7 +192,7 @@ dmu_buf_hold_array_by_dnode(dnode_t *dn,
ASSERT(length <= DMU_MAX_ACCESS);
- dbuf_flags = DB_RF_CANFAIL | DB_RF_NEVERWAIT;
+ dbuf_flags = DB_RF_CANFAIL | DB_RF_NEVERWAIT | DB_RF_HAVESTRUCT;
if (flags & DMU_READ_NO_PREFETCH || length > zfetch_array_rd_sz)
dbuf_flags |= DB_RF_NOPREFETCH;
@@ -209,6 +209,7 @@ dmu_buf_hold_array_by_dnode(dnode_t *dn,
os_dsl_dataset->ds_object,
(longlong_t)dn->dn_object, dn->dn_datablksz,
(longlong_t)offset, (longlong_t)length);
+ rw_exit(&dn->dn_struct_rwlock);
return (EIO);
}
nblks = 1;
@@ -231,9 +232,7 @@ dmu_buf_hold_array_by_dnode(dnode_t *dn,
}
/* initiate async i/o */
if (read) {
- rw_exit(&dn->dn_struct_rwlock);
(void) dbuf_read(db, zio, dbuf_flags);
- rw_enter(&dn->dn_struct_rwlock, RW_READER);
}
dbp[i] = &db->db;
}
@@ -540,7 +539,7 @@ dmu_read(objset_t *os, uint64_t object,
{
dnode_t *dn;
dmu_buf_t **dbp;
- int numbufs, i, err;
+ int numbufs, err;
err = dnode_hold(os->os, object, FTAG, &dn);
if (err)
@@ -551,7 +550,7 @@ dmu_read(objset_t *os, uint64_t object,
* block. If we ever do the tail block optimization, we will need to
* handle that here as well.
*/
- if (dn->dn_datablkshift == 0) {
+ if (dn->dn_maxblkid == 0) {
int newsz = offset > dn->dn_datablksz ? 0 :
MIN(size, dn->dn_datablksz - offset);
bzero((char *)buf + newsz, size - newsz);
@@ -560,6 +559,7 @@ dmu_read(objset_t *os, uint64_t object,
while (size > 0) {
uint64_t mylen = MIN(size, DMU_MAX_ACCESS / 2);
+ int i;
/*
* NB: we could do this block-at-a-time, but it's nice
Modified: projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
==============================================================================
--- projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -1031,6 +1031,10 @@ zfs_get_done(dmu_buf_t *db, void *vzgd)
VFS_UNLOCK_GIANT(vfslocked);
}
+#ifdef DEBUG
+static int zil_fault_io = 0;
+#endif
+
/*
* Get data to generate a TX_WRITE intent log record.
*/
@@ -1112,7 +1116,21 @@ zfs_get_data(void *arg, lr_write_t *lr,
zgd->zgd_rl = rl;
zgd->zgd_zilog = zfsvfs->z_log;
zgd->zgd_bp = &lr->lr_blkptr;
- VERIFY(0 == dmu_buf_hold(os, lr->lr_foid, boff, zgd, &db));
+#ifdef DEBUG
+ if (zil_fault_io) {
+ error = EIO;
+ zil_fault_io = 0;
+ } else {
+ error = dmu_buf_hold(os, lr->lr_foid, boff, zgd, &db);
+ }
+#else
+ error = dmu_buf_hold(os, lr->lr_foid, boff, zgd, &db);
+#endif
+ if (error != 0) {
+ kmem_free(zgd, sizeof (zgd_t));
+ goto out;
+ }
+
ASSERT(boff == db->db_offset);
lr->lr_blkoff = off - boff;
error = dmu_sync(zio, db, &lr->lr_blkptr,
Modified: projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
==============================================================================
--- projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -933,6 +933,10 @@ zil_lwb_commit(zilog_t *zilog, itx_t *it
}
error = zilog->zl_get_data(
itx->itx_private, lr, dbuf, lwb->lwb_zio);
+ if (error == EIO) {
+ txg_wait_synced(zilog->zl_dmu_pool, txg);
+ return (lwb);
+ }
if (error) {
ASSERT(error == ENOENT || error == EEXIST ||
error == EALREADY);
Modified: projects/sv/sys/dev/acpica/acpi.c
==============================================================================
--- projects/sv/sys/dev/acpica/acpi.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/sys/dev/acpica/acpi.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -86,6 +86,11 @@ static struct cdevsw acpi_cdevsw = {
.d_name = "acpi",
};
+struct acpi_interface {
+ ACPI_STRING *data;
+ int num;
+};
+
/* Global mutex for locking access to the ACPI subsystem. */
struct mtx acpi_mutex;
@@ -163,6 +168,7 @@ static void acpi_enable_pcie(void);
#endif
static void acpi_hint_device_unit(device_t acdev, device_t child,
const char *name, int *unitp);
+static void acpi_reset_interfaces(device_t dev);
static device_method_t acpi_methods[] = {
/* Device interface */
@@ -232,6 +238,16 @@ SYSCTL_STRING(_debug_acpi, OID_AUTO, acp
acpi_ca_version, 0, "Version of Intel ACPI-CA");
/*
+ * Allow overriding _OSI methods.
+ */
+static char acpi_install_interface[256];
+TUNABLE_STR("hw.acpi.install_interface", acpi_install_interface,
+ sizeof(acpi_install_interface));
+static char acpi_remove_interface[256];
+TUNABLE_STR("hw.acpi.remove_interface", acpi_remove_interface,
+ sizeof(acpi_remove_interface));
+
+/*
* Allow override of whether methods execute in parallel or not.
* Enable this for serial behavior, which fixes "AE_ALREADY_EXISTS"
* errors for AML that really can't handle parallel method execution.
@@ -467,6 +483,9 @@ acpi_attach(device_t dev)
goto out;
}
+ /* Override OS interfaces if the user requested. */
+ acpi_reset_interfaces(dev);
+
/* Load ACPI name space. */
status = AcpiLoadTables();
if (ACPI_FAILURE(status)) {
@@ -3473,6 +3492,93 @@ acpi_debug_objects_sysctl(SYSCTL_HANDLER
}
static int
+acpi_parse_interfaces(char *str, struct acpi_interface *iface)
+{
+ char *p;
+ size_t len;
+ int i, j;
+
+ p = str;
+ while (isspace(*p) || *p == ',')
+ p++;
+ len = strlen(p);
+ if (len == 0)
+ return (0);
+ p = strdup(p, M_TEMP);
+ for (i = 0; i < len; i++)
+ if (p[i] == ',')
+ p[i] = '\0';
+ i = j = 0;
+ while (i < len)
+ if (isspace(p[i]) || p[i] == '\0')
+ i++;
+ else {
+ i += strlen(p + i) + 1;
+ j++;
+ }
+ if (j == 0) {
+ free(p, M_TEMP);
+ return (0);
+ }
+ iface->data = malloc(sizeof(*iface->data) * j, M_TEMP, M_WAITOK);
+ iface->num = j;
+ i = j = 0;
+ while (i < len)
+ if (isspace(p[i]) || p[i] == '\0')
+ i++;
+ else {
+ iface->data[j] = p + i;
+ i += strlen(p + i) + 1;
+ j++;
+ }
+
+ return (j);
+}
+
+static void
+acpi_free_interfaces(struct acpi_interface *iface)
+{
+
+ free(iface->data[0], M_TEMP);
+ free(iface->data, M_TEMP);
+}
+
+static void
+acpi_reset_interfaces(device_t dev)
+{
+ struct acpi_interface list;
+ ACPI_STATUS status;
+ int i;
+
+ if (acpi_parse_interfaces(acpi_install_interface, &list) > 0) {
+ for (i = 0; i < list.num; i++) {
+ status = AcpiInstallInterface(list.data[i]);
+ if (ACPI_FAILURE(status))
+ device_printf(dev,
+ "failed to install _OSI(\"%s\"): %s\n",
+ list.data[i], AcpiFormatException(status));
+ else if (bootverbose)
+ device_printf(dev, "installed _OSI(\"%s\")\n",
+ list.data[i]);
+ }
+ acpi_free_interfaces(&list);
+ }
+ if (acpi_parse_interfaces(acpi_remove_interface, &list) > 0) {
+ for (i = 0; i < list.num; i++) {
+ status = AcpiRemoveInterface(list.data[i]);
+ if (ACPI_FAILURE(status))
+ device_printf(dev,
+ "failed to remove _OSI(\"%s\"): %s\n",
+ list.data[i], AcpiFormatException(status));
+ else if (bootverbose)
+ device_printf(dev, "removed _OSI(\"%s\")\n",
+ list.data[i]);
+ }
+ acpi_free_interfaces(&list);
+ }
+}
+
+static int
acpi_pm_func(u_long cmd, void *arg, ...)
{
int state, acpi_state;
Modified: projects/sv/sys/fs/nfs/nfsclstate.h
==============================================================================
--- projects/sv/sys/fs/nfs/nfsclstate.h Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/sys/fs/nfs/nfsclstate.h Wed Oct 27 13:38:40 2010 (r214417)
@@ -118,6 +118,7 @@ struct nfscldeleg {
#define NFSCLDL_NEEDRECLAIM 0x08
#define NFSCLDL_ZAPPED 0x10
#define NFSCLDL_MODTIMESET 0x20
+#define NFSCLDL_DELEGRET 0x40
/*
* MALLOC'd to the correct length to accommodate the file handle.
Modified: projects/sv/sys/fs/nfsclient/nfs_clstate.c
==============================================================================
--- projects/sv/sys/fs/nfsclient/nfs_clstate.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/sys/fs/nfsclient/nfs_clstate.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -929,8 +929,10 @@ nfscl_getbytelock(vnode_t vp, u_int64_t
ldp = dp = nfscl_finddeleg(clp, np->n_fhp->nfh_fh,
np->n_fhp->nfh_len);
/* Just sanity check for correct type of delegation */
- if (dp != NULL && ((dp->nfsdl_flags & NFSCLDL_RECALL) ||
- (type == F_WRLCK && !(dp->nfsdl_flags & NFSCLDL_WRITE))))
+ if (dp != NULL && ((dp->nfsdl_flags &
+ (NFSCLDL_RECALL | NFSCLDL_DELEGRET)) != 0 ||
+ (type == F_WRLCK &&
+ (dp->nfsdl_flags & NFSCLDL_WRITE) == 0)))
dp = NULL;
}
if (dp != NULL) {
@@ -2495,8 +2497,8 @@ tryagain:
if (dp->nfsdl_rwlock.nfslock_usecnt == 0 &&
dp->nfsdl_rwlock.nfslock_lock == 0 &&
dp->nfsdl_timestamp < NFSD_MONOSEC &&
- !(dp->nfsdl_flags & (NFSCLDL_RECALL | NFSCLDL_ZAPPED |
- NFSCLDL_NEEDRECLAIM))) {
+ (dp->nfsdl_flags & (NFSCLDL_RECALL | NFSCLDL_ZAPPED |
+ NFSCLDL_NEEDRECLAIM | NFSCLDL_DELEGRET)) == 0) {
clearok = 1;
LIST_FOREACH(owp, &dp->nfsdl_owner, nfsow_list) {
op = LIST_FIRST(&owp->nfsow_open);
@@ -3086,7 +3088,8 @@ nfscl_docb(struct nfsrv_descript *nd, NF
if (clp != NULL) {
dp = nfscl_finddeleg(clp, nfhp->nfh_fh,
nfhp->nfh_len);
- if (dp != NULL) {
+ if (dp != NULL && (dp->nfsdl_flags &
+ NFSCLDL_DELEGRET) == 0) {
dp->nfsdl_flags |=
NFSCLDL_RECALL;
wakeup((caddr_t)clp);
@@ -3338,7 +3341,6 @@ nfscl_recalldeleg(struct nfsclclient *cl
np = VTONFS(vp);
}
dp->nfsdl_flags &= ~NFSCLDL_MODTIMESET;
- NFSINVALATTRCACHE(np);
/*
* Ok, if it's a write delegation, flush data to the server, so
@@ -3347,21 +3349,14 @@ nfscl_recalldeleg(struct nfsclclient *cl
ret = 0;
NFSLOCKNODE(np);
if ((dp->nfsdl_flags & NFSCLDL_WRITE) && (np->n_flag & NMODIFIED)) {
-#ifdef APPLE
- OSBitOrAtomic((u_int32_t)NDELEGRECALL, (UInt32 *)&np->n_flag);
-#else
np->n_flag |= NDELEGRECALL;
-#endif
NFSUNLOCKNODE(np);
ret = ncl_flush(vp, MNT_WAIT, cred, p, 1,
called_from_renewthread);
NFSLOCKNODE(np);
-#ifdef APPLE
- OSBitAndAtomic((int32_t)~(NMODIFIED | NDELEGRECALL), (UInt32 *)&np->n_flag);
-#else
- np->n_flag &= ~(NMODIFIED | NDELEGRECALL);
-#endif
+ np->n_flag &= ~NDELEGRECALL;
}
+ NFSINVALATTRCACHE(np);
NFSUNLOCKNODE(np);
if (ret == EIO && called_from_renewthread != 0) {
/*
@@ -3534,8 +3529,10 @@ nfscl_totalrecall(struct nfsclclient *cl
{
struct nfscldeleg *dp;
- TAILQ_FOREACH(dp, &clp->nfsc_deleg, nfsdl_list)
- dp->nfsdl_flags |= NFSCLDL_RECALL;
+ TAILQ_FOREACH(dp, &clp->nfsc_deleg, nfsdl_list) {
+ if ((dp->nfsdl_flags & NFSCLDL_DELEGRET) == 0)
+ dp->nfsdl_flags |= NFSCLDL_RECALL;
+ }
}
/*
@@ -3754,8 +3751,9 @@ nfscl_mustflush(vnode_t vp)
return (1);
}
dp = nfscl_finddeleg(clp, np->n_fhp->nfh_fh, np->n_fhp->nfh_len);
- if (dp != NULL && (dp->nfsdl_flags & (NFSCLDL_WRITE | NFSCLDL_RECALL))
- == NFSCLDL_WRITE &&
+ if (dp != NULL && (dp->nfsdl_flags &
+ (NFSCLDL_WRITE | NFSCLDL_RECALL | NFSCLDL_DELEGRET)) ==
+ NFSCLDL_WRITE &&
(dp->nfsdl_sizelimit >= np->n_size ||
!NFSHASSTRICT3530(nmp))) {
NFSUNLOCKCLSTATE();
@@ -3787,9 +3785,10 @@ nfscl_nodeleg(vnode_t vp, int writedeleg
return (1);
}
dp = nfscl_finddeleg(clp, np->n_fhp->nfh_fh, np->n_fhp->nfh_len);
- if (dp != NULL && (dp->nfsdl_flags & NFSCLDL_RECALL) == 0 &&
- (writedeleg == 0 || (dp->nfsdl_flags & NFSCLDL_WRITE)
- == NFSCLDL_WRITE)) {
+ if (dp != NULL &&
+ (dp->nfsdl_flags & (NFSCLDL_RECALL | NFSCLDL_DELEGRET)) == 0 &&
+ (writedeleg == 0 || (dp->nfsdl_flags & NFSCLDL_WRITE) ==
+ NFSCLDL_WRITE)) {
NFSUNLOCKCLSTATE();
return (0);
}
@@ -3860,6 +3859,7 @@ nfscl_removedeleg(vnode_t vp, NFSPROC_T
}
}
if (needsrecall && !triedrecall) {
+ dp->nfsdl_flags |= NFSCLDL_DELEGRET;
islept = 0;
while (!igotlock) {
igotlock = nfsv4_lock(&clp->nfsc_lock, 1,
@@ -3958,6 +3958,7 @@ nfscl_renamedeleg(vnode_t fvp, nfsv4stat
}
}
if (needsrecall && !triedrecall) {
+ dp->nfsdl_flags |= NFSCLDL_DELEGRET;
islept = 0;
while (!igotlock) {
igotlock = nfsv4_lock(&clp->nfsc_lock, 1,
Modified: projects/sv/sys/x86/x86/dump_machdep.c
==============================================================================
--- projects/sv/sys/x86/x86/dump_machdep.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/sys/x86/x86/dump_machdep.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$");
#include <sys/kerneldump.h>
#include <vm/vm.h>
#include <vm/pmap.h>
-#include <machine/_inttypes.h>
#include <machine/elf.h>
#include <machine/md_var.h>
@@ -177,8 +176,8 @@ cb_dumpdata(struct md_pa *mdp, int seqnr
if (maxdumppgs == 0) /* seatbelt */
maxdumppgs = 1;
- printf(" chunk %d: %"PRIu64"MB (%"PRIu64" pages)", seqnr, PG2MB(pgs),
- pgs);
+ printf(" chunk %d: %juMB (%ju pages)", seqnr, (uintmax_t)PG2MB(pgs),
+ (uintmax_t)pgs);
while (pgs) {
chunk = pgs;
@@ -187,7 +186,7 @@ cb_dumpdata(struct md_pa *mdp, int seqnr
sz = chunk << PAGE_SHIFT;
counter += sz;
if (counter >> 24) {
- printf(" %"PRIu64, PG2MB(pgs));
+ printf(" %ju", (uintmax_t)PG2MB(pgs));
counter &= (1<<24) - 1;
}
for (i = 0; i < chunk; i++) {
Modified: projects/sv/usr.sbin/mfiutil/mfi_config.c
==============================================================================
--- projects/sv/usr.sbin/mfiutil/mfi_config.c Wed Oct 27 13:16:48 2010 (r214416)
+++ projects/sv/usr.sbin/mfiutil/mfi_config.c Wed Oct 27 13:38:40 2010 (r214417)
@@ -29,12 +29,12 @@
* $FreeBSD$
*/
-#include <sys/types.h>
+#include <sys/param.h>
#ifdef DEBUG
#include <sys/sysctl.h>
#endif
-#include <sys/errno.h>
#include <err.h>
+#include <errno.h>
#include <libutil.h>
#ifdef DEBUG
#include <stdint.h>
@@ -52,8 +52,6 @@ static void dump_config(int fd, struct m
static int add_spare(int ac, char **av);
static int remove_spare(int ac, char **av);
-#define powerof2(x) ((((x)-1)&(x))==0)
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list