Date: Wed, 24 Nov 2010 21:57:46 +0000 (UTC) From: Sean Bruno <sbruno@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r215806 - in projects/sbruno_64cpus: bin/sh contrib/top etc/defaults etc/rc.d share/man/man4 share/man/man5 share/man/man9 share/mk sys/amd64/amd64 sys/compat/ndis sys/dev/e1000 sys/dev... Message-ID: <201011242157.oAOLvkb7084270@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: sbruno Date: Wed Nov 24 21:57:45 2010 New Revision: 215806 URL: http://svn.freebsd.org/changeset/base/215806 Log: Merge from head Modified: projects/sbruno_64cpus/bin/sh/cd.c projects/sbruno_64cpus/bin/sh/eval.c projects/sbruno_64cpus/bin/sh/expand.c projects/sbruno_64cpus/bin/sh/histedit.c projects/sbruno_64cpus/bin/sh/memalloc.c projects/sbruno_64cpus/bin/sh/memalloc.h projects/sbruno_64cpus/bin/sh/miscbltin.c projects/sbruno_64cpus/bin/sh/parser.c projects/sbruno_64cpus/etc/defaults/rc.conf projects/sbruno_64cpus/etc/rc.d/gptboot projects/sbruno_64cpus/share/man/man4/bge.4 projects/sbruno_64cpus/share/man/man4/msk.4 projects/sbruno_64cpus/share/man/man4/nge.4 projects/sbruno_64cpus/share/man/man4/sk.4 projects/sbruno_64cpus/share/man/man4/stge.4 projects/sbruno_64cpus/share/man/man4/vge.4 projects/sbruno_64cpus/share/man/man5/rc.conf.5 projects/sbruno_64cpus/share/man/man9/vrele.9 projects/sbruno_64cpus/sys/amd64/amd64/cpu_switch.S projects/sbruno_64cpus/sys/compat/ndis/ntoskrnl_var.h projects/sbruno_64cpus/sys/compat/ndis/subr_ndis.c projects/sbruno_64cpus/sys/compat/ndis/subr_ntoskrnl.c projects/sbruno_64cpus/sys/dev/e1000/e1000_api.c projects/sbruno_64cpus/sys/dev/e1000/e1000_hw.h projects/sbruno_64cpus/sys/dev/e1000/if_igb.c projects/sbruno_64cpus/sys/dev/e1000/if_igb.h projects/sbruno_64cpus/sys/dev/usb/controller/usb_controller.c projects/sbruno_64cpus/sys/dev/usb/usb_bus.h projects/sbruno_64cpus/sys/dev/usb/usb_pf.c projects/sbruno_64cpus/sys/dev/usb/usb_pf.h projects/sbruno_64cpus/sys/kern/vfs_subr.c projects/sbruno_64cpus/sys/net/bpf_buffer.c projects/sbruno_64cpus/sys/netgraph/ng_pipe.c projects/sbruno_64cpus/sys/netinet/ip_carp.c projects/sbruno_64cpus/sys/vm/vm_object.c projects/sbruno_64cpus/tools/tools/sysbuild/sysbuild.sh projects/sbruno_64cpus/usr.sbin/iostat/iostat.8 projects/sbruno_64cpus/usr.sbin/usbdump/usbdump.c Directory Properties: projects/sbruno_64cpus/ (props changed) projects/sbruno_64cpus/cddl/contrib/opensolaris/ (props changed) projects/sbruno_64cpus/contrib/bind9/ (props changed) projects/sbruno_64cpus/contrib/binutils/ (props changed) projects/sbruno_64cpus/contrib/bzip2/ (props changed) projects/sbruno_64cpus/contrib/ee/ (props changed) projects/sbruno_64cpus/contrib/expat/ (props changed) projects/sbruno_64cpus/contrib/file/ (props changed) projects/sbruno_64cpus/contrib/gdb/ (props changed) projects/sbruno_64cpus/contrib/gdtoa/ (props changed) projects/sbruno_64cpus/contrib/gnu-sort/ (props changed) projects/sbruno_64cpus/contrib/groff/ (props changed) projects/sbruno_64cpus/contrib/less/ (props changed) projects/sbruno_64cpus/contrib/libpcap/ (props changed) projects/sbruno_64cpus/contrib/llvm/ (props changed) projects/sbruno_64cpus/contrib/llvm/tools/clang/ (props changed) projects/sbruno_64cpus/contrib/ncurses/ (props changed) projects/sbruno_64cpus/contrib/netcat/ (props changed) projects/sbruno_64cpus/contrib/ntp/ (props changed) projects/sbruno_64cpus/contrib/one-true-awk/ (props changed) projects/sbruno_64cpus/contrib/openbsm/ (props changed) projects/sbruno_64cpus/contrib/openpam/ (props changed) projects/sbruno_64cpus/contrib/pf/ (props changed) projects/sbruno_64cpus/contrib/sendmail/ (props changed) projects/sbruno_64cpus/contrib/tcpdump/ (props changed) projects/sbruno_64cpus/contrib/tcsh/ (props changed) projects/sbruno_64cpus/contrib/top/ (props changed) projects/sbruno_64cpus/contrib/top/install-sh (props changed) projects/sbruno_64cpus/contrib/tzcode/stdtime/ (props changed) projects/sbruno_64cpus/contrib/tzcode/zic/ (props changed) projects/sbruno_64cpus/contrib/tzdata/ (props changed) projects/sbruno_64cpus/contrib/wpa/ (props changed) projects/sbruno_64cpus/contrib/xz/ (props changed) projects/sbruno_64cpus/crypto/openssh/ (props changed) projects/sbruno_64cpus/crypto/openssl/ (props changed) projects/sbruno_64cpus/lib/libc/ (props changed) projects/sbruno_64cpus/lib/libc/stdtime/ (props changed) projects/sbruno_64cpus/lib/libutil/ (props changed) projects/sbruno_64cpus/lib/libz/ (props changed) projects/sbruno_64cpus/sbin/ (props changed) projects/sbruno_64cpus/sbin/ipfw/ (props changed) projects/sbruno_64cpus/share/mk/bsd.arch.inc.mk (props changed) projects/sbruno_64cpus/share/zoneinfo/ (props changed) projects/sbruno_64cpus/sys/ (props changed) projects/sbruno_64cpus/sys/amd64/include/xen/ (props changed) projects/sbruno_64cpus/sys/cddl/contrib/opensolaris/ (props changed) projects/sbruno_64cpus/sys/contrib/dev/acpica/ (props changed) projects/sbruno_64cpus/sys/contrib/pf/ (props changed) projects/sbruno_64cpus/sys/contrib/x86emu/ (props changed) projects/sbruno_64cpus/usr.bin/calendar/ (props changed) projects/sbruno_64cpus/usr.bin/csup/ (props changed) projects/sbruno_64cpus/usr.bin/procstat/ (props changed) projects/sbruno_64cpus/usr.sbin/zic/ (props changed) Modified: projects/sbruno_64cpus/bin/sh/cd.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/cd.c Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/bin/sh/cd.c Wed Nov 24 21:57:45 2010 (r215806) @@ -192,8 +192,7 @@ cdlogical(char *dest) STPUTC('/', p); first = 0; component = q; - while (*q) - STPUTC(*q++, p); + STPUTS(q, p); if (equal(component, "..")) continue; STACKSTRNUL(p); @@ -273,10 +272,8 @@ findcwd(char *dir) scopy(dir, cdcomppath); STARTSTACKSTR(new); if (*dir != '/') { - p = curdir; - while (*p) - STPUTC(*p++, new); - if (p[-1] == '/') + STPUTS(curdir, new); + if (STTOPC(new) == '/') STUNPUTC(new); } while ((p = getcomponent()) != NULL) { @@ -284,8 +281,7 @@ findcwd(char *dir) while (new > stackblock() && (STUNPUTC(new), *new) != '/'); } else if (*p != '\0' && ! equal(p, ".")) { STPUTC('/', new); - while (*p) - STPUTC(*p++, new); + STPUTS(p, new); } } if (new == stackblock()) Modified: projects/sbruno_64cpus/bin/sh/eval.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/eval.c Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/bin/sh/eval.c Wed Nov 24 21:57:45 2010 (r215806) @@ -135,8 +135,7 @@ evalcmd(int argc, char **argv) STARTSTACKSTR(concat); ap = argv + 2; for (;;) { - while (*p) - STPUTC(*p++, concat); + STPUTS(p, concat); if ((p = *ap++) == NULL) break; STPUTC(' ', concat); Modified: projects/sbruno_64cpus/bin/sh/expand.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/expand.c Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/bin/sh/expand.c Wed Nov 24 21:57:45 2010 (r215806) @@ -225,6 +225,7 @@ argstr(char *p, int flag) if (*p == '~' && (flag & (EXP_TILDE | EXP_VARTILDE))) p = exptilde(p, flag); for (;;) { + CHECKSTRSPACE(2, expdest); switch (c = *p++) { case '\0': case CTLENDVAR: @@ -235,16 +236,16 @@ argstr(char *p, int flag) if (p[0] == CTLVAR && p[2] == '@' && p[3] == '=') break; if ((flag & EXP_FULL) != 0) - STPUTC(c, expdest); + USTPUTC(c, expdest); break; case CTLQUOTEEND: lit_quoted = 0; break; case CTLESC: if (quotes) - STPUTC(c, expdest); + USTPUTC(c, expdest); c = *p++; - STPUTC(c, expdest); + USTPUTC(c, expdest); if (split_lit && !lit_quoted) recordregion(expdest - stackblock() - (quotes ? 2 : 1), @@ -267,7 +268,7 @@ argstr(char *p, int flag) * sort of a hack - expand tildes in variable * assignments (after the first '=' and after ':'s). */ - STPUTC(c, expdest); + USTPUTC(c, expdest); if (split_lit && !lit_quoted) recordregion(expdest - stackblock() - 1, expdest - stackblock(), 0); @@ -279,7 +280,7 @@ argstr(char *p, int flag) } break; default: - STPUTC(c, expdest); + USTPUTC(c, expdest); if (split_lit && !lit_quoted) recordregion(expdest - stackblock() - 1, expdest - stackblock(), 0); @@ -902,8 +903,7 @@ varvalue(char *name, int quoted, int sub STPUTC(*p++, expdest); \ } \ } else \ - while (*p) \ - STPUTC(*p++, expdest); \ + STPUTS(p, expdest); \ } while (0) @@ -1573,8 +1573,7 @@ cvtnum(int num, char *buf) if (neg) *--p = '-'; - while (*p) - STPUTC(*p++, buf); + STPUTS(p, buf); return buf; } Modified: projects/sbruno_64cpus/bin/sh/histedit.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/histedit.c Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/bin/sh/histedit.c Wed Nov 24 21:57:45 2010 (r215806) @@ -411,8 +411,7 @@ fc_replace(const char *s, char *p, char STARTSTACKSTR(dest); while (*s) { if (*s == *p && strncmp(s, p, plen) == 0) { - while (*r) - STPUTC(*r++, dest); + STPUTS(r, dest); s += plen; *p = '\0'; /* so no more matches */ } else Modified: projects/sbruno_64cpus/bin/sh/memalloc.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/memalloc.c Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/bin/sh/memalloc.c Wed Nov 24 21:57:45 2010 (r215806) @@ -340,3 +340,20 @@ ungrabstackstr(char *s, char *p) stacknxt = s; sstrnleft = stacknleft - (p - s); } + + +char * +stputbin(const char *data, int len, char *p) +{ + int i; + + for (i = 0; i < len; i++) + STPUTC(data[i], p); + return (p); +} + +char * +stputs(const char *data, char *p) +{ + return (stputbin(data, strlen(data), p)); +} Modified: projects/sbruno_64cpus/bin/sh/memalloc.h ============================================================================== --- projects/sbruno_64cpus/bin/sh/memalloc.h Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/bin/sh/memalloc.h Wed Nov 24 21:57:45 2010 (r215806) @@ -61,6 +61,8 @@ void grabstackblock(int); char *growstackstr(void); char *makestrspace(void); void ungrabstackstr(char *, char *); +char *stputbin(const char *data, int len, char *p); +char *stputs(const char *data, char *p); @@ -82,3 +84,5 @@ void ungrabstackstr(char *, char *); #define STTOPC(p) p[-1] #define STADJUST(amount, p) (p += (amount), sstrnleft -= (amount)) #define grabstackstr(p) stalloc(stackblocksize() - sstrnleft) +#define STPUTBIN(s, len, p) p = stputbin((s), (len), p) +#define STPUTS(s, p) p = stputs((s), p) Modified: projects/sbruno_64cpus/bin/sh/miscbltin.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/miscbltin.c Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/bin/sh/miscbltin.c Wed Nov 24 21:57:45 2010 (r215806) @@ -172,11 +172,12 @@ readcmd(int argc __unused, char **argv _ } if (c == '\0') continue; + CHECKSTRSPACE(1, p); if (backslash) { backslash = 0; startword = 0; if (c != '\n') - STPUTC(c, p); + USTPUTC(c, p); continue; } if (!rflag && c == '\\') { @@ -194,14 +195,14 @@ readcmd(int argc __unused, char **argv _ if (is_ifs == 1) { /* Ignore leading IFS whitespace */ if (saveall) - STPUTC(c, p); + USTPUTC(c, p); continue; } if (is_ifs == 2 && startword == 1) { /* Only one non-whitespace IFS per word */ startword = 2; if (saveall) - STPUTC(c, p); + USTPUTC(c, p); continue; } } @@ -212,7 +213,7 @@ readcmd(int argc __unused, char **argv _ if (saveall) /* Not just a spare terminator */ saveall++; - STPUTC(c, p); + USTPUTC(c, p); continue; } @@ -222,7 +223,7 @@ readcmd(int argc __unused, char **argv _ if (ap[1] == NULL) { /* Last variable needs all IFS chars */ saveall++; - STPUTC(c, p); + USTPUTC(c, p); continue; } Modified: projects/sbruno_64cpus/bin/sh/parser.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/parser.c Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/bin/sh/parser.c Wed Nov 24 21:57:45 2010 (r215806) @@ -1017,6 +1017,7 @@ parsebackq(char *out, struct nodelist ** setprompt(2); needprompt = 0; } + CHECKSTRSPACE(2, oout); switch (c = pgetc()) { case '`': goto done; @@ -1031,14 +1032,14 @@ parsebackq(char *out, struct nodelist ** /* * If eating a newline, avoid putting * the newline into the new character - * stream (via the STPUTC after the + * stream (via the USTPUTC after the * switch). */ continue; } if (c != '\\' && c != '`' && c != '$' && (!dblquote || c != '"')) - STPUTC('\\', oout); + USTPUTC('\\', oout); break; case '\n': @@ -1054,10 +1055,10 @@ parsebackq(char *out, struct nodelist ** default: break; } - STPUTC(c, oout); + USTPUTC(c, oout); } done: - STPUTC('\0', oout); + USTPUTC('\0', oout); olen = oout - stackblock(); INTOFF; ostr = ckmalloc(olen); @@ -1444,7 +1445,6 @@ parsesub: { char *p; static const char types[] = "}-+?="; int bracketed_name = 0; /* used to handle ${[0-9]*} variables */ - int i; int linno; int length; @@ -1498,8 +1498,7 @@ parsesub: { linno -= funclinno - 1; snprintf(buf, sizeof(buf), "%d", linno); STADJUST(-6, out); - for (i = 0; buf[i] != '\0'; i++) - STPUTC(buf[i], out); + STPUTS(buf, out); flags |= VSLINENO; } } else if (is_digit(c)) { Modified: projects/sbruno_64cpus/etc/defaults/rc.conf ============================================================================== --- projects/sbruno_64cpus/etc/defaults/rc.conf Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/etc/defaults/rc.conf Wed Nov 24 21:57:45 2010 (r215806) @@ -58,6 +58,8 @@ rc_conf_files="/etc/rc.conf /etc/rc.conf # ZFS support zfs_enable="NO" # Set to YES to automatically mount ZFS file systems +gptboot_enable="YES" # GPT boot success/failure reporting. + # Experimental - test before enabling gbde_autoattach_all="NO" # YES automatically mounts gbde devices from fstab gbde_devices="NO" # Devices to automatically attach (list, or AUTO) Modified: projects/sbruno_64cpus/etc/rc.d/gptboot ============================================================================== --- projects/sbruno_64cpus/etc/rc.d/gptboot Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/etc/rc.d/gptboot Wed Nov 24 21:57:45 2010 (r215806) @@ -34,6 +34,7 @@ . /etc/rc.subr name="gptboot" +rcvar=`set_rcvar` start_cmd="gptboot_report" gptboot_report() Modified: projects/sbruno_64cpus/share/man/man4/bge.4 ============================================================================== --- projects/sbruno_64cpus/share/man/man4/bge.4 Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/share/man/man4/bge.4 Wed Nov 24 21:57:45 2010 (r215806) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 7, 2010 +.Dd November 23, 2010 .Dt BGE 4 .Os .Sh NAME @@ -144,27 +144,6 @@ Force full duplex operation. Force half duplex operation. .El .Pp -The -.Nm -driver also supports one special link option for 1000baseTX cards: -.Bl -tag -width ".Cm link0" -.It Cm link0 -With 1000baseTX cards, establishing a link between two ports requires -that one port be configured as a master and the other a slave. -With autonegotiation, -the master/slave settings will be chosen automatically. -However when manually selecting the link state, it is necessary to -force one side of the link to be a master and the other a slave. -The -.Nm -driver configures the ports as slaves by default. -Setting the -.Cm link0 -flag with -.Xr ifconfig 8 -will set a port as a master instead. -.El -.Pp For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE Modified: projects/sbruno_64cpus/share/man/man4/msk.4 ============================================================================== --- projects/sbruno_64cpus/share/man/man4/msk.4 Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/share/man/man4/msk.4 Wed Nov 24 21:57:45 2010 (r215806) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 30, 2010 +.Dd November 23, 2010 .Dt MSK 4 .Os .Sh NAME @@ -125,27 +125,6 @@ Force full duplex operation. Force half duplex operation. .El .Pp -The -.Nm -driver also supports one special link option for 1000baseTX cards: -.Bl -tag -width ".Cm link0" -.It Cm link0 -With 1000baseTX cards, establishing a link between two ports requires -that one port is configured as master and the other one as slave. -With autonegotiation, -the master/slave settings will be chosen automatically. -However when manually selecting the link state, it is necessary to -force one side of the link to be a master and the other a slave. -The -.Nm -driver configures the ports as slaves by default. -Setting the -.Cm link0 -flag with -.Xr ifconfig 8 -will set a port as a master instead. -.El -.Pp For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE Modified: projects/sbruno_64cpus/share/man/man4/nge.4 ============================================================================== --- projects/sbruno_64cpus/share/man/man4/nge.4 Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/share/man/man4/nge.4 Wed Nov 24 21:57:45 2010 (r215806) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 21, 2009 +.Dd November 23, 2010 .Dt NGE 4 .Os .Sh NAME @@ -131,27 +131,6 @@ Force full duplex operation. Force half duplex operation. .El .Pp -The -.Nm -driver also supports one special link option for 1000baseTX cards: -.Bl -tag -width link0 -.It Cm link0 -With 1000baseTX cards, establishing a link between two ports requires -that one port be configured as a master and the other a slave. -With autonegotiation, -the master/slave settings will be chosen automatically. -However when manually selecting the link state, it is necessary to -force one side of the link to be a master and the other a slave. -The -.Nm -driver configures the ports as slaves by default. -Setting the -.Cm link0 -flag with -.Xr ifconfig 8 -will set a port as a master instead. -.El -.Pp For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE Modified: projects/sbruno_64cpus/share/man/man4/sk.4 ============================================================================== --- projects/sbruno_64cpus/share/man/man4/sk.4 Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/share/man/man4/sk.4 Wed Nov 24 21:57:45 2010 (r215806) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 23, 2009 +.Dd November 23, 2010 .Dt SK 4 .Os .Sh NAME @@ -132,27 +132,6 @@ Force full duplex operation Force half duplex operation. .El .Pp -The -.Nm -driver also supports one special link option for 1000baseTX cards: -.Bl -tag -width xxxxxxxxxxxxxxxxxxxx -.It link0 -With 1000baseTX cards, establishing a link between two ports requires -that one port is configured as master and the other one as slave. -With autonegotiation, -the master/slave settings will be chosen automatically. -However when manually selecting the link state, it is necessary to -force one side of the link to be a master and the other a slave. -The -.Nm -driver configures the ports as slaves by default. -Setting the -.Ar link0 -flag with -.Xr ifconfig 8 -will set a port as a master instead. -.El -.Pp For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE Modified: projects/sbruno_64cpus/share/man/man4/stge.4 ============================================================================== --- projects/sbruno_64cpus/share/man/man4/stge.4 Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/share/man/man4/stge.4 Wed Nov 24 21:57:45 2010 (r215806) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 25, 2006 +.Dd November 23, 2010 .Dt STGE 4 .Os .Sh NAME @@ -129,27 +129,6 @@ Force full duplex operation. Force half duplex operation. .El .Pp -The -.Nm -driver also supports one special link option for 1000baseTX cards: -.Bl -tag -width ".Cm link0" -.It Cm link0 -With 1000baseTX cards, establishing a link between two ports requires -that one port is configured as master and the other one as slave. -With autonegotiation, -the master/slave settings will be chosen automatically. -However when manually selecting the link state, it is necessary to -force one side of the link to be a master and the other a slave. -The -.Nm -driver configures the ports as slaves by default. -Setting the -.Cm link0 -flag with -.Xr ifconfig 8 -will set a port as a master instead. -.El -.Pp For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE Modified: projects/sbruno_64cpus/share/man/man4/vge.4 ============================================================================== --- projects/sbruno_64cpus/share/man/man4/vge.4 Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/share/man/man4/vge.4 Wed Nov 24 21:57:45 2010 (r215806) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 18, 2009 +.Dd November 23, 2010 .Dt VGE 4 .Os .Sh NAME @@ -137,27 +137,6 @@ Force full duplex operation. Force half duplex operation. .El .Pp -The -.Nm -driver also supports one special link option for 1000baseTX cards: -.Bl -tag -width ".Cm link0" -.It Cm link0 -With 1000baseTX cards, establishing a link between two ports requires -that one port be configured as a master and the other a slave. -With autonegotiation, -the master/slave settings will be chosen automatically. -However when manually selecting the link state, it is necessary to -force one side of the link to be a master and the other a slave. -The -.Nm -driver configures the ports as slaves by default. -Setting the -.Cm link0 -flag with -.Xr ifconfig 8 -will set a port as a master instead. -.El -.Pp For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE Modified: projects/sbruno_64cpus/share/man/man5/rc.conf.5 ============================================================================== --- projects/sbruno_64cpus/share/man/man5/rc.conf.5 Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/share/man/man5/rc.conf.5 Wed Nov 24 21:57:45 2010 (r215806) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 13, 2010 +.Dd November 24, 2010 .Dt RC.CONF 5 .Os .Sh NAME @@ -1575,6 +1575,17 @@ If set to .Pa /etc/rc.d/zfs will attempt to automatically mount ZFS file systems and initialize ZFS volumes (ZVOLs). +.It Va gptboot_enable +.Pq Vt bool +If set to +.Dq Li YES , +.Pa /etc/rc.d/gptboot +will log if the system successfully (or not) booted from a GPT partition, +which had the +.Ar bootonce +attribute set using +.Xr gpart 8 +utility. .It Va gbde_autoattach_all .Pq Vt bool If set to Modified: projects/sbruno_64cpus/share/man/man9/vrele.9 ============================================================================== --- projects/sbruno_64cpus/share/man/man9/vrele.9 Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/share/man/man9/vrele.9 Wed Nov 24 21:57:45 2010 (r215806) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 17, 2010 +.Dd November 20, 2010 .Dt VRELE 9 .Os .Sh NAME @@ -74,10 +74,6 @@ with less overhead. The .Fn vunref function takes a locked vnode as argument, and returns with the vnode locked. -Nonetheless, the -.Fn vunref -might drop the vnode lock during the operation, so caller should not expect -that non-doomed vnode is still non-doomed after the function returned. .Pp Any code in the system which signified its use of a vnode by usecount should call one of the listed function to decrement use counter. Modified: projects/sbruno_64cpus/sys/amd64/amd64/cpu_switch.S ============================================================================== --- projects/sbruno_64cpus/sys/amd64/amd64/cpu_switch.S Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/sys/amd64/amd64/cpu_switch.S Wed Nov 24 21:57:45 2010 (r215806) @@ -276,7 +276,7 @@ load_dr: do_tss: movq %rdx,PCPU(TSSP) movq %rdx,%rcx movq PCPU(TSS),%rax - movw %rcx,2(%rax) + movw %cx,2(%rax) shrq $16,%rcx movb %cl,4(%rax) shrq $8,%rcx Modified: projects/sbruno_64cpus/sys/compat/ndis/ntoskrnl_var.h ============================================================================== --- projects/sbruno_64cpus/sys/compat/ndis/ntoskrnl_var.h Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/sys/compat/ndis/ntoskrnl_var.h Wed Nov 24 21:57:45 2010 (r215806) @@ -1282,6 +1282,7 @@ typedef struct driver_object driver_obje #define STATUS_PENDING 0x00000103 #define STATUS_FAILURE 0xC0000001 #define STATUS_NOT_IMPLEMENTED 0xC0000002 +#define STATUS_ACCESS_VIOLATION 0xC0000005 #define STATUS_INVALID_PARAMETER 0xC000000D #define STATUS_INVALID_DEVICE_REQUEST 0xC0000010 #define STATUS_MORE_PROCESSING_REQUIRED 0xC0000016 Modified: projects/sbruno_64cpus/sys/compat/ndis/subr_ndis.c ============================================================================== --- projects/sbruno_64cpus/sys/compat/ndis/subr_ndis.c Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/sys/compat/ndis/subr_ndis.c Wed Nov 24 21:57:45 2010 (r215806) @@ -254,6 +254,7 @@ static uint8_t void *, void *); static void NdisGetCurrentSystemTime(uint64_t *); static void NdisGetSystemUpTime(uint32_t *); +static uint32_t NdisGetVersion(void); static void NdisInitializeString(unicode_string *, char *); static void NdisInitAnsiString(ansi_string *, char *); static void NdisInitUnicodeString(unicode_string *, uint16_t *); @@ -274,6 +275,7 @@ static void NdisMapFile(ndis_status *, v static void NdisUnmapFile(ndis_handle); static void NdisCloseFile(ndis_handle); static uint8_t NdisSystemProcessorCount(void); +static void NdisGetCurrentProcessorCounts(uint32_t *, uint32_t *, uint32_t *); static void NdisMIndicateStatusComplete(ndis_handle); static void NdisMIndicateStatus(ndis_handle, ndis_status, void *, uint32_t); @@ -2067,6 +2069,12 @@ NdisInterlockedDecrement(addend) return (*addend); } +static uint32_t +NdisGetVersion(void) +{ + return (0x00050001); +} + static void NdisInitializeEvent(event) ndis_event *event; @@ -2950,6 +2958,20 @@ NdisSystemProcessorCount() return (mp_ncpus); } +static void +NdisGetCurrentProcessorCounts(idle_count, kernel_and_user, index) + uint32_t *idle_count; + uint32_t *kernel_and_user; + uint32_t *index; +{ + struct pcpu *pcpu; + + pcpu = pcpu_find(curthread->td_oncpu); + *index = pcpu->pc_cpuid; + *idle_count = pcpu->pc_cp_time[CP_IDLE]; + *kernel_and_user = pcpu->pc_cp_time[CP_INTR]; +} + typedef void (*ndis_statusdone_handler)(ndis_handle); typedef void (*ndis_status_handler)(ndis_handle, ndis_status, void *, uint32_t); @@ -3207,6 +3229,7 @@ image_patch_table ndis_functbl[] = { IMPORT_SFUNC(NdisMIndicateStatusComplete, 1), IMPORT_SFUNC(NdisMIndicateStatus, 4), IMPORT_SFUNC(NdisSystemProcessorCount, 0), + IMPORT_SFUNC(NdisGetCurrentProcessorCounts, 3), IMPORT_SFUNC(NdisUnchainBufferAtBack, 2), IMPORT_SFUNC(NdisGetFirstBufferFromPacket, 5), IMPORT_SFUNC(NdisGetFirstBufferFromPacketSafe, 6), @@ -3224,6 +3247,7 @@ image_patch_table ndis_functbl[] = { IMPORT_SFUNC(NdisFreeString, 1), IMPORT_SFUNC(NdisGetCurrentSystemTime, 1), IMPORT_SFUNC(NdisGetSystemUpTime, 1), + IMPORT_SFUNC(NdisGetVersion, 0), IMPORT_SFUNC(NdisMSynchronizeWithInterrupt, 3), IMPORT_SFUNC(NdisMAllocateSharedMemoryAsync, 4), IMPORT_SFUNC(NdisInterlockedInsertHeadList, 3), Modified: projects/sbruno_64cpus/sys/compat/ndis/subr_ntoskrnl.c ============================================================================== --- projects/sbruno_64cpus/sys/compat/ndis/subr_ntoskrnl.c Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/sys/compat/ndis/subr_ntoskrnl.c Wed Nov 24 21:57:45 2010 (r215806) @@ -128,6 +128,7 @@ static kspin_lock ntoskrnl_intlock; static uint8_t RtlEqualUnicodeString(unicode_string *, unicode_string *, uint8_t); +static void RtlCopyString(ansi_string *, const ansi_string *); static void RtlCopyUnicodeString(unicode_string *, unicode_string *); static irp *IoBuildSynchronousFsdRequest(uint32_t, device_object *, @@ -180,7 +181,9 @@ static uint64_t _aullrem(uint64_t, uint6 static uint64_t _aullshr(uint64_t, uint8_t); static uint64_t _aullshl(uint64_t, uint8_t); static slist_entry *ntoskrnl_pushsl(slist_header *, slist_entry *); +static void InitializeSListHead(slist_header *); static slist_entry *ntoskrnl_popsl(slist_header *); +static void ExFreePoolWithTag(void *, uint32_t); static void ExInitializePagedLookasideList(paged_lookaside_list *, lookaside_alloc_func *, lookaside_free_func *, uint32_t, size_t, uint32_t, uint16_t); @@ -210,6 +213,10 @@ static void *MmMapLockedPagesSpecifyCach static void MmUnmapLockedPages(void *, mdl *); static device_t ntoskrnl_finddev(device_t, uint64_t, struct resource **); static void RtlZeroMemory(void *, size_t); +static void RtlSecureZeroMemory(void *, size_t); +static void RtlFillMemory(void *, size_t, uint8_t); +static void RtlMoveMemory(void *, const void *, size_t); +static ndis_status RtlCharToInteger(const char *, uint32_t, uint32_t *); static void RtlCopyMemory(void *, const void *, size_t); static size_t RtlCompareMemory(const void *, const void *, size_t); static ndis_status RtlUnicodeStringToInteger(unicode_string *, @@ -538,6 +545,20 @@ RtlEqualUnicodeString(unicode_string *st } static void +RtlCopyString(dst, src) + ansi_string *dst; + const ansi_string *src; +{ + if (src != NULL && src->as_buf != NULL && dst->as_buf != NULL) { + dst->as_len = min(src->as_len, dst->as_maxlen); + memcpy(dst->as_buf, src->as_buf, dst->as_len); + if (dst->as_len < dst->as_maxlen) + dst->as_buf[dst->as_len] = 0; + } else + dst->as_len = 0; +} + +static void RtlCopyUnicodeString(dest, src) unicode_string *dest; unicode_string *src; @@ -650,6 +671,14 @@ ExAllocatePoolWithTag(pooltype, len, tag return (buf); } +static void +ExFreePoolWithTag(buf, tag) + void *buf; + uint32_t tag; +{ + ExFreePool(buf); +} + void ExFreePool(buf) void *buf; @@ -2056,6 +2085,13 @@ ntoskrnl_pushsl(head, entry) return (oldhead); } +static void +InitializeSListHead(head) + slist_header *head; +{ + memset(head, 0, sizeof(*head)); +} + static slist_entry * ntoskrnl_popsl(head) slist_header *head; @@ -2725,6 +2761,59 @@ ntoskrnl_workitem_thread(arg) return; /* notreached */ } +static ndis_status +RtlCharToInteger(src, base, val) + const char *src; + uint32_t base; + uint32_t *val; +{ + int negative = 0; + uint32_t res; + + if (!src || !val) + return (STATUS_ACCESS_VIOLATION); + while (*src != '\0' && *src <= ' ') + src++; + if (*src == '+') + src++; + else if (*src == '-') { + src++; + negative = 1; + } + if (base == 0) { + base = 10; + if (*src == '0') { + src++; + if (*src == 'b') { + base = 2; + src++; + } else if (*src == 'o') { + base = 8; + src++; + } else if (*src == 'x') { + base = 16; + src++; + } + } + } else if (!(base == 2 || base == 8 || base == 10 || base == 16)) + return (STATUS_INVALID_PARAMETER); + + for (res = 0; *src; src++) { + int v; + if (isdigit(*src)) + v = *src - '0'; + else if (isxdigit(*src)) + v = tolower(*src) - 'a' + 10; + else + v = base; + if (v >= base) + return (STATUS_INVALID_PARAMETER); + res = res * base + v; + } + *val = negative ? -res : res; + return (STATUS_SUCCESS); +} + static void ntoskrnl_destroy_workitem_threads(void) { @@ -2905,6 +2994,32 @@ RtlZeroMemory(dst, len) } static void +RtlSecureZeroMemory(dst, len) + void *dst; + size_t len; +{ + memset(dst, 0, len); +} + +static void +RtlFillMemory(dst, len, c) + void *dst; + size_t len; + uint8_t c; +{ + memset(dst, c, len); +} + +static void +RtlMoveMemory(dst, src, len) + void *dst; + const void *src; + size_t len; +{ + memmove(dst, src, len); +} + +static void RtlCopyMemory(dst, src, len) void *dst; const void *src; @@ -2919,17 +3034,14 @@ RtlCompareMemory(s1, s2, len) const void *s2; size_t len; { - size_t i, total = 0; + size_t i; uint8_t *m1, *m2; m1 = __DECONST(char *, s1); m2 = __DECONST(char *, s2); - for (i = 0; i < len; i++) { - if (m1[i] == m2[i]) - total++; - } - return (total); + for (i = 0; i < len && m1[i] == m2[i]; i++); + return (i); } void @@ -4124,7 +4236,12 @@ dummy() image_patch_table ntoskrnl_functbl[] = { IMPORT_SFUNC(RtlZeroMemory, 2), + IMPORT_SFUNC(RtlSecureZeroMemory, 2), + IMPORT_SFUNC(RtlFillMemory, 3), + IMPORT_SFUNC(RtlMoveMemory, 3), + IMPORT_SFUNC(RtlCharToInteger, 3), IMPORT_SFUNC(RtlCopyMemory, 3), + IMPORT_SFUNC(RtlCopyString, 2), IMPORT_SFUNC(RtlCompareMemory, 3), IMPORT_SFUNC(RtlEqualUnicodeString, 3), IMPORT_SFUNC(RtlCopyUnicodeString, 2), @@ -4211,6 +4328,7 @@ image_patch_table ntoskrnl_functbl[] = { IMPORT_SFUNC(ExInitializeNPagedLookasideList, 7), IMPORT_SFUNC(ExDeleteNPagedLookasideList, 1), IMPORT_FFUNC(InterlockedPopEntrySList, 1), + IMPORT_FFUNC(InitializeSListHead, 1), IMPORT_FFUNC(InterlockedPushEntrySList, 2), IMPORT_SFUNC(ExQueryDepthSList, 1), IMPORT_FFUNC_MAP(ExpInterlockedPopEntrySList, @@ -4220,6 +4338,7 @@ image_patch_table ntoskrnl_functbl[] = { IMPORT_FFUNC(ExInterlockedPopEntrySList, 2), IMPORT_FFUNC(ExInterlockedPushEntrySList, 3), IMPORT_SFUNC(ExAllocatePoolWithTag, 3), + IMPORT_SFUNC(ExFreePoolWithTag, 2), IMPORT_SFUNC(ExFreePool, 1), #ifdef __i386__ IMPORT_FFUNC(KefAcquireSpinLockAtDpcLevel, 1), Modified: projects/sbruno_64cpus/sys/dev/e1000/e1000_api.c ============================================================================== --- projects/sbruno_64cpus/sys/dev/e1000/e1000_api.c Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/sys/dev/e1000/e1000_api.c Wed Nov 24 21:57:45 2010 (r215806) @@ -312,6 +312,8 @@ s32 e1000_set_mac_type(struct e1000_hw * case E1000_DEV_ID_82580_SGMII: case E1000_DEV_ID_82580_COPPER_DUAL: case E1000_DEV_ID_82580_QUAD_FIBER: + case E1000_DEV_ID_DH89XXCC_SGMII: + case E1000_DEV_ID_DH89XXCC_SERDES: mac->type = e1000_82580; break; case E1000_DEV_ID_82576_VF: Modified: projects/sbruno_64cpus/sys/dev/e1000/e1000_hw.h ============================================================================== --- projects/sbruno_64cpus/sys/dev/e1000/e1000_hw.h Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/sys/dev/e1000/e1000_hw.h Wed Nov 24 21:57:45 2010 (r215806) @@ -150,6 +150,8 @@ struct e1000_hw; #define E1000_DEV_ID_82580_SGMII 0x1511 #define E1000_DEV_ID_82580_COPPER_DUAL 0x1516 #define E1000_DEV_ID_82580_QUAD_FIBER 0x1527 +#define E1000_DEV_ID_DH89XXCC_SGMII 0x0436 +#define E1000_DEV_ID_DH89XXCC_SERDES 0x0438 #define E1000_REVISION_0 0 #define E1000_REVISION_1 1 #define E1000_REVISION_2 2 Modified: projects/sbruno_64cpus/sys/dev/e1000/if_igb.c ============================================================================== --- projects/sbruno_64cpus/sys/dev/e1000/if_igb.c Wed Nov 24 21:54:45 2010 (r215805) +++ projects/sbruno_64cpus/sys/dev/e1000/if_igb.c Wed Nov 24 21:57:45 2010 (r215806) @@ -99,7 +99,7 @@ int igb_display_debug_stats = 0; /********************************************************************* * Driver version: *********************************************************************/ -char igb_driver_version[] = "version - 2.0.4"; +char igb_driver_version[] = "version - 2.0.7"; /********************************************************************* @@ -137,6 +137,10 @@ static igb_vendor_info_t igb_vendor_info { 0x8086, E1000_DEV_ID_82580_SGMII, PCI_ANY_ID, PCI_ANY_ID, 0}, { 0x8086, E1000_DEV_ID_82580_COPPER_DUAL, PCI_ANY_ID, PCI_ANY_ID, 0}, + { 0x8086, E1000_DEV_ID_82580_QUAD_FIBER, + PCI_ANY_ID, PCI_ANY_ID, 0}, + { 0x8086, E1000_DEV_ID_DH89XXCC_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0}, + { 0x8086, E1000_DEV_ID_DH89XXCC_SGMII, PCI_ANY_ID, PCI_ANY_ID, 0}, /* required last entry */ { 0, 0, 0, 0, 0} }; @@ -307,11 +311,19 @@ static int igb_enable_msix = 1; TUNABLE_INT("hw.igb.enable_msix", &igb_enable_msix); /* - * Header split has seemed to be beneficial in - * many circumstances tested, however there have - * been some stability issues, so the default is - * off. - */ +** Tuneable Interrupt rate +*/ +static int igb_max_interrupt_rate = 8000; +TUNABLE_INT("hw.igb.max_interrupt_rate", &igb_max_interrupt_rate); + +/* +** Header split causes the packet header to +** be dma'd to a seperate mbuf from the payload. +** this can have memory alignment benefits. But +** another plus is that small packets often fit +** into the header and thus use no cluster. Its +** a very workload dependent type feature. +*/ static bool igb_header_split = FALSE; TUNABLE_INT("hw.igb.hdr_split", &igb_header_split); @@ -330,15 +342,6 @@ TUNABLE_INT("hw.igb.rx_process_limit", & static int igb_fc_setting = e1000_fc_full; TUNABLE_INT("hw.igb.fc_setting", &igb_fc_setting); -/* -** Shadow VFTA table, this is needed because -** the real filter table gets cleared during -** a soft reset and the driver needs to be able -** to repopulate it. -*/ -static u32 igb_shadow_vfta[IGB_VFTA_SIZE]; - - /********************************************************************* * Device identification routine * @@ -818,7 +821,7 @@ igb_start_locked(struct tx_ring *txr, st /* Set watchdog on */ txr->watchdog_time = ticks; - txr->watchdog_check = TRUE; + txr->queue_status = IGB_QUEUE_WORKING; } } @@ -922,7 +925,7 @@ igb_mq_start_locked(struct ifnet *ifp, s } if (enq > 0) { /* Set the watchdog */ - txr->watchdog_check = TRUE; + txr->queue_status = IGB_QUEUE_WORKING; txr->watchdog_time = ticks; } return (err); @@ -1049,6 +1052,11 @@ igb_ioctl(struct ifnet *ifp, u_long comm } *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011242157.oAOLvkb7084270>