Date: Sun, 21 Nov 2010 02:00:54 +0000 (UTC) From: Sean Bruno <sbruno@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r215604 - in projects/sbruno_64cpus: bin/sh contrib/ipfilter/man contrib/top lib/liblzma sbin/camcontrol sbin/geom/class/part sbin/mount share/man/man1 share/man/man4 share/mk sys/amd64... Message-ID: <201011210200.oAL20sQg033260@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: sbruno Date: Sun Nov 21 02:00:54 2010 New Revision: 215604 URL: http://svn.freebsd.org/changeset/base/215604 Log: Merge to head for retesting Added: projects/sbruno_64cpus/tools/regression/bin/sh/builtins/wait3.0 - copied unchanged from r215603, head/tools/regression/bin/sh/builtins/wait3.0 projects/sbruno_64cpus/tools/regression/bin/sh/expansion/arith6.0 - copied unchanged from r215603, head/tools/regression/bin/sh/expansion/arith6.0 Deleted: projects/sbruno_64cpus/sys/ufs/ffs/README.snapshot Modified: projects/sbruno_64cpus/bin/sh/Makefile projects/sbruno_64cpus/bin/sh/builtins.def projects/sbruno_64cpus/bin/sh/eval.c projects/sbruno_64cpus/bin/sh/expand.c projects/sbruno_64cpus/bin/sh/main.c projects/sbruno_64cpus/bin/sh/mksyntax.c projects/sbruno_64cpus/bin/sh/options.c projects/sbruno_64cpus/bin/sh/output.c projects/sbruno_64cpus/bin/sh/output.h projects/sbruno_64cpus/bin/sh/sh.1 projects/sbruno_64cpus/bin/sh/var.c projects/sbruno_64cpus/contrib/ipfilter/man/ipnat.8 projects/sbruno_64cpus/contrib/ipfilter/man/mkfilters.1 projects/sbruno_64cpus/lib/liblzma/Symbol.map projects/sbruno_64cpus/sbin/camcontrol/camcontrol.c projects/sbruno_64cpus/sbin/geom/class/part/geom_part.c projects/sbruno_64cpus/sbin/geom/class/part/gpart.8 projects/sbruno_64cpus/sbin/mount/mount.8 projects/sbruno_64cpus/share/man/man1/builtin.1 projects/sbruno_64cpus/share/man/man4/ata.4 projects/sbruno_64cpus/sys/amd64/include/specialreg.h projects/sbruno_64cpus/sys/boot/ofw/libofw/openfirm.c projects/sbruno_64cpus/sys/dev/acpica/acpi_hpet.c projects/sbruno_64cpus/sys/dev/ata/ata-all.c projects/sbruno_64cpus/sys/dev/ata/ata-all.h projects/sbruno_64cpus/sys/dev/atkbdc/psm.c projects/sbruno_64cpus/sys/dev/mii/atphy.c projects/sbruno_64cpus/sys/fs/cd9660/cd9660_node.c projects/sbruno_64cpus/sys/fs/coda/coda_vnops.c projects/sbruno_64cpus/sys/fs/ext2fs/ext2_inode.c projects/sbruno_64cpus/sys/fs/hpfs/hpfs_vnops.c projects/sbruno_64cpus/sys/fs/msdosfs/msdosfs_denode.c projects/sbruno_64cpus/sys/fs/nfsclient/nfs_clnode.c projects/sbruno_64cpus/sys/fs/ntfs/ntfs_vnops.c projects/sbruno_64cpus/sys/gnu/fs/reiserfs/reiserfs_inode.c projects/sbruno_64cpus/sys/i386/i386/initcpu.c projects/sbruno_64cpus/sys/i386/include/pmap.h projects/sbruno_64cpus/sys/i386/include/specialreg.h projects/sbruno_64cpus/sys/i386/xen/mp_machdep.c projects/sbruno_64cpus/sys/i386/xen/pmap.c projects/sbruno_64cpus/sys/i386/xen/xen_machdep.c projects/sbruno_64cpus/sys/kern/kern_module.c projects/sbruno_64cpus/sys/kern/p1003_1b.c projects/sbruno_64cpus/sys/kern/posix4_mib.c projects/sbruno_64cpus/sys/kern/uipc_sem.c projects/sbruno_64cpus/sys/kern/vfs_subr.c projects/sbruno_64cpus/sys/netinet/siftr.c projects/sbruno_64cpus/sys/netinet6/nd6_nbr.c projects/sbruno_64cpus/sys/nfsclient/nfs_node.c projects/sbruno_64cpus/sys/sys/vnode.h projects/sbruno_64cpus/sys/ufs/ufs/ufs_inode.c projects/sbruno_64cpus/sys/vm/vm_contig.c projects/sbruno_64cpus/sys/vm/vm_object.c projects/sbruno_64cpus/sys/vm/vm_page.c projects/sbruno_64cpus/sys/vm/vm_pageout.c projects/sbruno_64cpus/sys/vm/vm_pageout.h projects/sbruno_64cpus/sys/vm/vm_reserv.c projects/sbruno_64cpus/usr.bin/at/at.c projects/sbruno_64cpus/usr.bin/chkey/chkey.c projects/sbruno_64cpus/usr.bin/netstat/if.c projects/sbruno_64cpus/usr.bin/printf/printf.1 projects/sbruno_64cpus/usr.bin/printf/printf.c projects/sbruno_64cpus/usr.bin/vmstat/vmstat.c projects/sbruno_64cpus/usr.sbin/mfiutil/mfi_config.c projects/sbruno_64cpus/usr.sbin/mfiutil/mfi_evt.c projects/sbruno_64cpus/usr.sbin/mfiutil/mfi_flash.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/sys/dev/xen/xenpci/ (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/Makefile ============================================================================== --- projects/sbruno_64cpus/bin/sh/Makefile Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/bin/sh/Makefile Sun Nov 21 02:00:54 2010 (r215604) @@ -5,7 +5,7 @@ PROG= sh INSTALLFLAGS= -S SHSRCS= alias.c arith.y arith_lex.l cd.c echo.c error.c eval.c exec.c expand.c \ histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \ - mystring.c options.c output.c parser.c redir.c show.c \ + mystring.c options.c output.c parser.c printf.c redir.c show.c \ test.c trap.c var.c GENSRCS= builtins.c init.c nodes.c syntax.c GENHDRS= builtins.h nodes.h syntax.h token.h @@ -26,7 +26,8 @@ WARNS?= 2 WFORMAT=0 .PATH: ${.CURDIR}/bltin \ - ${.CURDIR}/../test + ${.CURDIR}/../test \ + ${.CURDIR}/../../usr.bin/printf CLEANFILES+= mkinit mkinit.o mknodes mknodes.o \ mksyntax mksyntax.o Modified: projects/sbruno_64cpus/bin/sh/builtins.def ============================================================================== --- projects/sbruno_64cpus/bin/sh/builtins.def Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/bin/sh/builtins.def Sun Nov 21 02:00:54 2010 (r215604) @@ -71,7 +71,7 @@ histcmd -h fc jobidcmd jobid jobscmd jobs localcmd local -#printfcmd printf +printfcmd printf pwdcmd pwd readcmd read returncmd -s return Modified: projects/sbruno_64cpus/bin/sh/eval.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/eval.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/bin/sh/eval.c Sun Nov 21 02:00:54 2010 (r215604) @@ -699,13 +699,13 @@ evalcommand(union node *cmd, int flags, for (sp = varlist.list ; sp ; sp = sp->next) { if (sep != 0) out2c(' '); - p = sp->text; - while (*p != '=' && *p != '\0') - out2c(*p++); - if (*p != '\0') { - out2c(*p++); + p = strchr(sp->text, '='); + if (p != NULL) { + p++; + outbin(sp->text, p - sp->text, out2); out2qstr(p); - } + } else + out2qstr(sp->text); sep = ' '; } for (sp = arglist.list ; sp ; sp = sp->next) { Modified: projects/sbruno_64cpus/bin/sh/expand.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/expand.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/bin/sh/expand.c Sun Nov 21 02:00:54 2010 (r215604) @@ -1592,9 +1592,7 @@ wordexpcmd(int argc, char **argv) for (i = 1, len = 0; i < argc; i++) len += strlen(argv[i]); out1fmt("%08x", (int)len); - for (i = 1; i < argc; i++) { - out1str(argv[i]); - out1c('\0'); - } + for (i = 1; i < argc; i++) + outbin(argv[i], strlen(argv[i]) + 1, out1); return (0); } Modified: projects/sbruno_64cpus/bin/sh/main.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/main.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/bin/sh/main.c Sun Nov 21 02:00:54 2010 (r215604) @@ -128,10 +128,8 @@ main(int argc, char *argv[]) exitshell(exitstatus); } reset(); - if (exception == EXINT) { - out2c('\n'); - flushout(&errout); - } + if (exception == EXINT) + out2fmt_flush("\n"); popstackmark(&smark); FORCEINTON; /* enable interrupts */ if (state == 1) Modified: projects/sbruno_64cpus/bin/sh/mksyntax.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/mksyntax.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/bin/sh/mksyntax.c Sun Nov 21 02:00:54 2010 (r215604) @@ -342,9 +342,9 @@ print(const char *name) static const char *macro[] = { "#define is_digit(c)\t((is_type+SYNBASE)[(int)c] & ISDIGIT)", "#define is_eof(c)\t((c) == PEOF)", - "#define is_alpha(c)\t(((c) < CTLESC || (c) > CTLQUOTEMARK) && (is_type+SYNBASE)[(int)c] & (ISUPPER|ISLOWER))", - "#define is_name(c)\t(((c) < CTLESC || (c) > CTLQUOTEMARK) && (is_type+SYNBASE)[(int)c] & (ISUPPER|ISLOWER|ISUNDER))", - "#define is_in_name(c)\t(((c) < CTLESC || (c) > CTLQUOTEMARK) && (is_type+SYNBASE)[(int)c] & (ISUPPER|ISLOWER|ISUNDER|ISDIGIT))", + "#define is_alpha(c)\t((is_type+SYNBASE)[(int)c] & (ISUPPER|ISLOWER))", + "#define is_name(c)\t((is_type+SYNBASE)[(int)c] & (ISUPPER|ISLOWER|ISUNDER))", + "#define is_in_name(c)\t((is_type+SYNBASE)[(int)c] & (ISUPPER|ISLOWER|ISUNDER|ISDIGIT))", "#define is_special(c)\t((is_type+SYNBASE)[(int)c] & (ISSPECL|ISDIGIT))", NULL }; Modified: projects/sbruno_64cpus/bin/sh/options.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/options.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/bin/sh/options.c Sun Nov 21 02:00:54 2010 (r215604) @@ -261,13 +261,12 @@ minus_o(char *name, int val) optlist[i].val ? "on" : "off"); } else { /* Output suitable for re-input to shell. */ - for (i = 0; i < NOPTS; i++) { - if (i % 6 == 0) - out1str(i == 0 ? "set" : "\nset"); - out1fmt(" %co %s", optlist[i].val ? '-' : '+', - optlist[i].name); - } - out1c('\n'); + for (i = 0; i < NOPTS; i++) + out1fmt("%s %co %s%s", + i % 6 == 0 ? "set" : "", + optlist[i].val ? '-' : '+', + optlist[i].name, + i % 6 == 5 || i == NOPTS - 1 ? "\n" : ""); } } else { for (i = 0; i < NOPTS; i++) Modified: projects/sbruno_64cpus/bin/sh/output.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/output.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/bin/sh/output.c Sun Nov 21 02:00:54 2010 (r215604) @@ -96,6 +96,12 @@ RESET { void +outcslow(int c, struct output *file) +{ + outc(c, file); +} + +void out1str(const char *p) { outstr(p, out1); @@ -149,19 +155,19 @@ outqstr(const char *p, struct output *fi case '\'': /* Can't quote single quotes inside single quotes. */ if (inquotes) - outc('\'', file); + outcslow('\'', file); inquotes = 0; outstr("\\'", file); break; default: if (!inquotes) - outc('\'', file); + outcslow('\'', file); inquotes = 1; outc(ch, file); } } if (inquotes) - outc('\'', file); + outcslow('\'', file); } void Modified: projects/sbruno_64cpus/bin/sh/output.h ============================================================================== --- projects/sbruno_64cpus/bin/sh/output.h Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/bin/sh/output.h Sun Nov 21 02:00:54 2010 (r215604) @@ -54,6 +54,7 @@ extern struct output *out1; /* &memout i extern struct output *out2; /* &memout if backquote with 2>&1, otherwise &errout */ +void outcslow(int, struct output *); void out1str(const char *); void out1qstr(const char *); void out2str(const char *); @@ -74,7 +75,7 @@ int xwrite(int, const char *, int); #define outc(c, file) (--(file)->nleft < 0? (emptyoutbuf(file), *(file)->nextc++ = (c)) : (*(file)->nextc++ = (c))) #define out1c(c) outc(c, out1); -#define out2c(c) outc(c, out2); +#define out2c(c) outcslow(c, out2); #define OUTPUT_INCL #endif Modified: projects/sbruno_64cpus/bin/sh/sh.1 ============================================================================== --- projects/sbruno_64cpus/bin/sh/sh.1 Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/bin/sh/sh.1 Sun Nov 21 02:00:54 2010 (r215604) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd November 12, 2010 +.Dd November 19, 2010 .Dt SH 1 .Os .Sh NAME @@ -2049,6 +2049,9 @@ line. See the .Sx Functions subsection. +.It Ic printf +A built-in equivalent of +.Xr printf 1 . .It Ic pwd Op Fl L | P Print the path of the current directory. The built-in command may @@ -2470,6 +2473,7 @@ will return the argument. .Xr echo 1 , .Xr ed 1 , .Xr emacs 1 , +.Xr printf 1 , .Xr pwd 1 , .Xr test 1 , .Xr vi 1 , Modified: projects/sbruno_64cpus/bin/sh/var.c ============================================================================== --- projects/sbruno_64cpus/bin/sh/var.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/bin/sh/var.c Sun Nov 21 02:00:54 2010 (r215604) @@ -633,10 +633,10 @@ showvarscmd(int argc __unused, char **ar qsort(vars, n, sizeof(*vars), var_compare); for (i = 0; i < n; i++) { - for (s = vars[i]; *s != '='; s++) - out1c(*s); - out1c('='); - out1qstr(s + 1); + s = strchr(vars[i], '='); + s++; + outbin(vars[i], s - vars[i], out1); + out1qstr(s); out1c('\n'); } ckfree(vars); @@ -710,12 +710,15 @@ found:; out1str(cmdname); out1c(' '); } - for (p = vp->text ; *p != '=' ; p++) - out1c(*p); + p = strchr(vp->text, '='); if (values && !(vp->flags & VUNSET)) { - out1c('='); - out1qstr(p + 1); - } + p++; + outbin(vp->text, p - vp->text, + out1); + out1qstr(p); + } else + outbin(vp->text, p - vp->text, + out1); out1c('\n'); } } Modified: projects/sbruno_64cpus/contrib/ipfilter/man/ipnat.8 ============================================================================== --- projects/sbruno_64cpus/contrib/ipfilter/man/ipnat.8 Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/contrib/ipfilter/man/ipnat.8 Sun Nov 21 02:00:54 2010 (r215604) @@ -66,6 +66,6 @@ and active rules/table entries. .SH FILES /dev/ipnat .br -/usr/share/examples/ipf Directory with examples. +/usr/share/examples/ipfilter Directory with examples. .SH SEE ALSO ipnat(5), ipf(8), ipfstat(8) Modified: projects/sbruno_64cpus/contrib/ipfilter/man/mkfilters.1 ============================================================================== --- projects/sbruno_64cpus/contrib/ipfilter/man/mkfilters.1 Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/contrib/ipfilter/man/mkfilters.1 Sun Nov 21 02:00:54 2010 (r215604) @@ -6,7 +6,7 @@ mkfilters \- generate a minimal firewall .SH SYNOPSIS .B mkfilters .SH FILES -/usr/share/examples/ipf/mkfilters +/usr/share/examples/ipfilter/mkfilters .SH DESCRIPTION .PP \fBmkfilters\fP is a perl script that generates a minimal filter rule set for Modified: projects/sbruno_64cpus/lib/liblzma/Symbol.map ============================================================================== --- projects/sbruno_64cpus/lib/liblzma/Symbol.map Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/lib/liblzma/Symbol.map Sun Nov 21 02:00:54 2010 (r215604) @@ -107,7 +107,6 @@ XZprivate_1.0 { lzma_check_finish; lzma_check_init; lzma_check_update; - lzma_chunk_size; lzma_delta_coder_init; lzma_delta_coder_memusage; lzma_delta_decoder_init; Modified: projects/sbruno_64cpus/sbin/camcontrol/camcontrol.c ============================================================================== --- projects/sbruno_64cpus/sbin/camcontrol/camcontrol.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sbin/camcontrol/camcontrol.c Sun Nov 21 02:00:54 2010 (r215604) @@ -1526,6 +1526,7 @@ rescan_or_reset_bus(int bus, int rescan) bzero(&(&matchccb.ccb_h)[1], sizeof(struct ccb_dev_match) - sizeof(struct ccb_hdr)); matchccb.ccb_h.func_code = XPT_DEV_MATCH; + matchccb.ccb_h.path_id = CAM_BUS_WILDCARD; bufsize = sizeof(struct dev_match_result) * 20; matchccb.cdm.match_buf_len = bufsize; matchccb.cdm.matches=(struct dev_match_result *)malloc(bufsize); Modified: projects/sbruno_64cpus/sbin/geom/class/part/geom_part.c ============================================================================== --- projects/sbruno_64cpus/sbin/geom/class/part/geom_part.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sbin/geom/class/part/geom_part.c Sun Nov 21 02:00:54 2010 (r215604) @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include <sys/vtoc.h> #include <assert.h> +#include <ctype.h> #include <err.h> #include <errno.h> #include <fcntl.h> @@ -85,6 +86,8 @@ static int gpart_show_hasopt(struct gctl static void gpart_write_partcode(struct ggeom *, int, void *, ssize_t); static void gpart_write_partcode_vtoc8(struct ggeom *, int, void *); static void gpart_print_error(const char *); +static void gpart_backup(struct gctl_req *, unsigned int); +static void gpart_restore(struct gctl_req *, unsigned int); struct g_command PUBSYM(class_commands)[] = { { "add", 0, gpart_issue, { @@ -97,6 +100,11 @@ struct g_command PUBSYM(class_commands)[ G_OPT_SENTINEL }, "[-b start] [-s size] -t type [-i index] [-l label] [-f flags] geom" }, + { "backup", 0, gpart_backup, { + { 'l', "backup_labels", NULL, G_TYPE_BOOL}, + G_OPT_SENTINEL }, + "[-l] geom" + }, { "bootcode", 0, gpart_bootcode, { { 'b', GPART_PARAM_BOOTCODE, G_VAL_OPTIONAL, G_TYPE_STRING }, { 'p', GPART_PARAM_PARTCODE, G_VAL_OPTIONAL, G_TYPE_STRING }, @@ -165,6 +173,12 @@ struct g_command PUBSYM(class_commands)[ G_OPT_SENTINEL }, "[-s size] -i index [-f flags] geom" }, + { "restore", 0, gpart_restore, { + { 'F', "force", NULL, G_TYPE_BOOL }, + { 'f', "flags", GPART_FLAGS, G_TYPE_STRING }, + G_OPT_SENTINEL }, + "[-F] [-f flags] provider [...]" + }, { "recover", 0, gpart_issue, { { 'f', "flags", GPART_FLAGS, G_TYPE_STRING }, G_OPT_SENTINEL }, @@ -654,6 +668,295 @@ gpart_show(struct gctl_req *req, unsigne geom_deletetree(&mesh); } +static void +gpart_backup(struct gctl_req *req, unsigned int fl __unused) +{ + struct gmesh mesh; + struct gclass *classp; + struct gprovider *pp; + struct ggeom *gp; + const char *s, *scheme; + off_t sector, end; + off_t length, secsz; + int error, labels, i, windex, wblocks, wtype; + + if (gctl_get_int(req, "nargs") != 1) + errx(EXIT_FAILURE, "Invalid number of arguments."); + error = geom_gettree(&mesh); + if (error != 0) + errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); + s = gctl_get_ascii(req, "class"); + if (s == NULL) + abort(); + classp = find_class(&mesh, s); + if (classp == NULL) { + geom_deletetree(&mesh); + errx(EXIT_FAILURE, "Class %s not found.", s); + } + s = gctl_get_ascii(req, "arg0"); + if (s == NULL) + abort(); + labels = gctl_get_int(req, "backup_labels"); + gp = find_geom(classp, s); + if (gp == NULL) + errx(EXIT_FAILURE, "No such geom: %s.", s); + scheme = find_geomcfg(gp, "scheme"); + if (scheme == NULL) + abort(); + pp = LIST_FIRST(&gp->lg_consumer)->lg_provider; + secsz = pp->lg_sectorsize; + s = find_geomcfg(gp, "last"); + wblocks = strlen(s); + wtype = 0; + LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { + s = find_provcfg(pp, "type"); + i = strlen(s); + if (i > wtype) + wtype = i; + } + s = find_geomcfg(gp, "entries"); + windex = strlen(s); + printf("%s %s\n", scheme, s); + LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { + s = find_provcfg(pp, "start"); + if (s == NULL) { + s = find_provcfg(pp, "offset"); + sector = (off_t)strtoimax(s, NULL, 0) / secsz; + } else + sector = (off_t)strtoimax(s, NULL, 0); + + s = find_provcfg(pp, "end"); + if (s == NULL) { + s = find_provcfg(pp, "length"); + length = (off_t)strtoimax(s, NULL, 0) / secsz; + } else { + end = (off_t)strtoimax(s, NULL, 0); + length = end - sector + 1; + } + s = find_provcfg(pp, "label"); + printf("%-*s %*s %*jd %*jd", + windex, find_provcfg(pp, "index"), + wtype, find_provcfg(pp, "type"), + wblocks, (intmax_t)sector, + wblocks, (intmax_t)length); + if (labels && s != NULL) + printf(" %s", s); + printf(" %s\n", fmtattrib(pp)); + } + geom_deletetree(&mesh); +} + +static int +skip_line(const char *p) +{ + + while (*p != '\0') { + if (*p == '#') + return (1); + if (isspace(*p) == 0) + return (0); + p++; + } + return (1); +} + +static void +gpart_restore(struct gctl_req *req, unsigned int fl __unused) +{ + struct gmesh mesh; + struct gclass *classp; + struct gctl_req *r; + struct ggeom *gp; + const char *s, *flags, *errstr, *label; + char **ap, *argv[6], line[BUFSIZ], *pline; + int error, forced, i, l, nargs, created; + intmax_t n; + + nargs = gctl_get_int(req, "nargs"); + if (nargs < 1) + errx(EXIT_FAILURE, "Invalid number of arguments."); + + forced = gctl_get_int(req, "force"); + flags = gctl_get_ascii(req, "flags"); + s = gctl_get_ascii(req, "class"); + if (s == NULL) + abort(); + error = geom_gettree(&mesh); + if (error != 0) + errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); + classp = find_class(&mesh, s); + if (classp == NULL) { + geom_deletetree(&mesh); + errx(EXIT_FAILURE, "Class %s not found.", s); + } + if (forced) { + /* destroy existent partition table before restore */ + for (i = 0; i < nargs; i++) { + s = gctl_get_ascii(req, "arg%d", i); + gp = find_geom(classp, s); + if (gp != NULL) { + r = gctl_get_handle(); + gctl_ro_param(r, "class", -1, + classp->lg_name); + gctl_ro_param(r, "verb", -1, "destroy"); + gctl_ro_param(r, "flags", -1, "restore"); + gctl_ro_param(r, "force", sizeof(forced), + &forced); + gctl_ro_param(r, "arg0", -1, s); + errstr = gctl_issue(r); + if (errstr != NULL && errstr[0] != '\0') { + gpart_print_error(errstr); + gctl_free(r); + goto backout; + } + gctl_free(r); + } + } + } + created = 0; + while (fgets(line, sizeof(line) - 1, stdin)) { + /* Format of backup entries: + * <scheme name> <number of entries> + * <index> <type> <start> <size> [label] ['['attrib[,attrib]']'] + */ + pline = (char *)line; + pline[strlen(line) - 1] = 0; + if (skip_line(pline)) + continue; + for (ap = argv; + (*ap = strsep(&pline, " \t")) != NULL;) + if (**ap != '\0' && ++ap >= &argv[6]) + break; + l = ap - &argv[0]; + label = pline = NULL; + if (l == 2) { /* create table */ + if (created) + errx(EXIT_FAILURE, "Incorrect backup format."); + n = atoi(argv[1]); + for (i = 0; i < nargs; i++) { + s = gctl_get_ascii(req, "arg%d", i); + r = gctl_get_handle(); + n = strtoimax(argv[1], NULL, 0); + gctl_ro_param(r, "class", -1, + classp->lg_name); + gctl_ro_param(r, "verb", -1, "create"); + gctl_ro_param(r, "scheme", -1, argv[0]); + gctl_ro_param(r, "entries", sizeof(n), &n); + gctl_ro_param(r, "flags", -1, "restore"); + gctl_ro_param(r, "arg0", -1, s); + errstr = gctl_issue(r); + if (errstr != NULL && errstr[0] != '\0') { + gpart_print_error(errstr); + gctl_free(r); + goto backout; + } + gctl_free(r); + } + created = 1; + continue; + } else if (l < 4 || created == 0) + errx(EXIT_FAILURE, "Incorrect backup format."); + else if (l == 5) { + if (strchr(argv[4], '[') == NULL) + label = argv[4]; + else + pline = argv[4]; + } else if (l == 6) { + label = argv[4]; + pline = argv[5]; + } + /* Add partitions to each table */ + for (i = 0; i < nargs; i++) { + s = gctl_get_ascii(req, "arg%d", i); + r = gctl_get_handle(); + n = strtoimax(argv[0], NULL, 0); + gctl_ro_param(r, "class", -1, classp->lg_name); + gctl_ro_param(r, "verb", -1, "add"); + gctl_ro_param(r, "flags", -1, "restore"); + gctl_ro_param(r, GPART_PARAM_INDEX, sizeof(n), &n); + gctl_ro_param(r, "type", -1, argv[1]); + gctl_ro_param(r, "start", -1, argv[2]); + gctl_ro_param(r, "size", -1, argv[3]); + if (label != NULL) + gctl_ro_param(r, "label", -1, argv[4]); + gctl_ro_param(r, "arg0", -1, s); + error = gpart_autofill(r); + if (error != 0) + errc(EXIT_FAILURE, error, "autofill"); + errstr = gctl_issue(r); + if (errstr != NULL && errstr[0] != '\0') { + gpart_print_error(errstr); + gctl_free(r); + goto backout; + } + gctl_free(r); + } + if (pline == NULL || *pline != '[') + continue; + /* set attributes */ + pline++; + for (ap = argv; + (*ap = strsep(&pline, ",]")) != NULL;) + if (**ap != '\0' && ++ap >= &argv[6]) + break; + for (i = 0; i < nargs; i++) { + l = ap - &argv[0]; + s = gctl_get_ascii(req, "arg%d", i); + while (l > 0) { + r = gctl_get_handle(); + gctl_ro_param(r, "class", -1, classp->lg_name); + gctl_ro_param(r, "verb", -1, "set"); + gctl_ro_param(r, "flags", -1, "restore"); + gctl_ro_param(r, GPART_PARAM_INDEX, + sizeof(n), &n); + gctl_ro_param(r, "attrib", -1, argv[--l]); + gctl_ro_param(r, "arg0", -1, s); + errstr = gctl_issue(r); + if (errstr != NULL && errstr[0] != '\0') { + gpart_print_error(errstr); + gctl_free(r); + goto backout; + } + gctl_free(r); + } + } + } + /* commit changes if needed */ + if (strchr(flags, 'C') != NULL) { + for (i = 0; i < nargs; i++) { + s = gctl_get_ascii(req, "arg%d", i); + r = gctl_get_handle(); + gctl_ro_param(r, "class", -1, classp->lg_name); + gctl_ro_param(r, "verb", -1, "commit"); + gctl_ro_param(r, "arg0", -1, s); + errstr = gctl_issue(r); + if (errstr != NULL && errstr[0] != '\0') { + gpart_print_error(errstr); + gctl_free(r); + goto backout; + } + gctl_free(r); + } + } + gctl_free(req); + geom_deletetree(&mesh); + exit(EXIT_SUCCESS); + +backout: + for (i = 0; i < nargs; i++) { + s = gctl_get_ascii(req, "arg%d", i); + r = gctl_get_handle(); + gctl_ro_param(r, "class", -1, classp->lg_name); + gctl_ro_param(r, "verb", -1, "undo"); + gctl_ro_param(r, "arg0", -1, s); + gctl_issue(r); + gctl_free(r); + } + gctl_free(req); + geom_deletetree(&mesh); + exit(EXIT_FAILURE); +} + static void * gpart_bootfile_read(const char *bootfile, ssize_t *size) { Modified: projects/sbruno_64cpus/sbin/geom/class/part/gpart.8 ============================================================================== --- projects/sbruno_64cpus/sbin/geom/class/part/gpart.8 Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sbin/geom/class/part/gpart.8 Sun Nov 21 02:00:54 2010 (r215604) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 25, 2010 +.Dd November 20, 2010 .Dt GPART 8 .Os .Sh NAME @@ -91,6 +91,11 @@ utility: .Op Fl l Ar label .Op Fl f Ar flags .Ar geom +.\" ==== BACKUP ==== +.Nm +.Cm backup +.Op Fl l +.Ar geom .\" ==== BOOTCODE ==== .Nm .Cm bootcode @@ -141,6 +146,13 @@ utility: .Op Fl s Ar size .Op Fl f Ar flags .Ar geom +.\" ==== RESTORE ==== +.Nm +.Cm restore +.Op Fl F +.Op Fl f Ar flags +.Ar provider +.Op Ar ... .\" ==== SET ==== .Nm .Cm set @@ -208,6 +220,17 @@ See the section entitled below for a discussion about its use. .El +.\" ==== BACKUP ==== +.It Cm backup +Dump a partition table to standard output in special format used by +.Cm restore +action. +.Pp +Additional options include: +.Bl -tag -width 10n +.It Fl l +Dump partition labels for partitioning schemes that support them. +.El .\" ==== BOOTCODE ==== .It Cm bootcode Embed bootstrap code into the partitioning scheme's metadata on the @@ -401,6 +424,28 @@ See the section entitled below for a discussion about its use. .El +.\" ==== RESTORE ==== +.It Cm restore +Restore the partition table from backup previously created by +.Cm backup +action and given from standard input. Only partition table +may be restored. This action does not affect content of partitions. +This mean that you should copy your data from backup after restoring +partition table and write bootcode again if it is needed. +.Pp +Additional options include: +.Bl -tag -width 10n +.It Fl F +Destroy partition table on the given +.Ar provider +before doing restore. +.It Fl f Ar flags +Additional operational flags. +See the section entitled +.Sx "OPERATIONAL FLAGS" +below for a discussion +about its use. +.El .\" ==== SET ==== .It Cm set Set the named attribute on the partition entry. @@ -770,6 +815,28 @@ After having created all required partit .Bd -literal -offset indent /sbin/gpart bootcode -p /boot/boot1 da0 .Ed +.Pp +Create backup of partition table from +.Pa da0 +.Bd -literal -offset indent +/sbin/gpart backup -l da0 > da0.backup +.Ed +.Pp +Restore partition table from backup to +.Pa da0 +.Bd -literal -offset indent +/sbin/gpart restore da0 < /mnt/da0.backup +.Ed +.Pp +Clone partition table from +.Pa ada0 +to +.Pa ada1 +and +.Pa ada2 +.Bd -literal -offset indent +/sbin/gpart backup ada0 | /sbin/gpart restore -F ada1 ada2 +.Ed .Sh SEE ALSO .Xr dd 1 , .Xr geom 4 , Modified: projects/sbruno_64cpus/sbin/mount/mount.8 ============================================================================== --- projects/sbruno_64cpus/sbin/mount/mount.8 Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sbin/mount/mount.8 Sun Nov 21 02:00:54 2010 (r215604) @@ -305,9 +305,6 @@ When you are done with the mounted snaps umount /mnt mdconfig -d -u 4 .Ed -.Pp -Further details can be found in the file at -.Pa /usr/src/sys/ufs/ffs/README.snapshot . .El .It Cm suiddir A directory on the mounted file system will respond to the SUID bit Modified: projects/sbruno_64cpus/share/man/man1/builtin.1 ============================================================================== --- projects/sbruno_64cpus/share/man/man1/builtin.1 Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/share/man/man1/builtin.1 Sun Nov 21 02:00:54 2010 (r215604) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 9, 2010 +.Dd November 19, 2010 .Dt BUILTIN 1 .Os .Sh NAME @@ -99,6 +99,7 @@ .Nm onintr , .Nm popd , .Nm printenv , +.Nm printf , .Nm pushd , .Nm pwd , .Nm read , @@ -263,6 +264,7 @@ but are implemented as scripts using a b .It Ic onintr Ta \&No Ta Yes Ta \&No .It Ic popd Ta \&No Ta Yes Ta \&No .It Ic printenv Ta Yes Ta Yes Ta \&No +.It Ic printf Ta Yes Ta \&No Ta Yes .It Ic pushd Ta \&No Ta Yes Ta \&No .It Ic pwd Ta Yes Ta \&No Ta Yes .It Ic read Ta No** Ta \&No Ta Yes @@ -313,6 +315,7 @@ but are implemented as scripts using a b .Xr nice 1 , .Xr nohup 1 , .Xr printenv 1 , +.Xr printf 1 , .Xr pwd 1 , .Xr sh 1 , .Xr test 1 , Modified: projects/sbruno_64cpus/share/man/man4/ata.4 ============================================================================== --- projects/sbruno_64cpus/share/man/man4/ata.4 Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/share/man/man4/ata.4 Sun Nov 21 02:00:54 2010 (r215604) @@ -183,7 +183,7 @@ SIS963, SIS964, SIS965. .It VIA: VT6410, VT6420, VT6421, VT82C586, VT82C586B, VT82C596, VT82C596B, VT82C686, VT82C686A, VT82C686B, VT8231, VT8233, VT8233A, VT8233C, VT8235, VT8237, -VT8237A, VT8237S, VT8251, CX700, VX800, VX855. +VT8237A, VT8237S, VT8251, CX700, VX800, VX855, VX900. .El .Pp Unknown ATA chipsets are supported in PIO modes, and if the standard Modified: projects/sbruno_64cpus/sys/amd64/include/specialreg.h ============================================================================== --- projects/sbruno_64cpus/sys/amd64/include/specialreg.h Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sys/amd64/include/specialreg.h Sun Nov 21 02:00:54 2010 (r215604) @@ -206,6 +206,7 @@ #define AMDPM_100MHZ_STEPS 0x00000040 #define AMDPM_HW_PSTATE 0x00000080 #define AMDPM_TSC_INVARIANT 0x00000100 +#define AMDPM_CPB 0x00000200 /* * AMD extended function 8000_0008h ecx info @@ -239,6 +240,8 @@ #define MSR_BIOS_SIGN 0x08b #define MSR_PERFCTR0 0x0c1 #define MSR_PERFCTR1 0x0c2 +#define MSR_MPERF 0x0e7 +#define MSR_APERF 0x0e8 #define MSR_IA32_EXT_CONFIG 0x0ee /* Undocumented. Core Solo/Duo only */ #define MSR_MTRRcap 0x0fe #define MSR_BBL_CR_ADDR 0x116 @@ -503,6 +506,7 @@ #define MSR_PERFCTR2 0xc0010006 #define MSR_PERFCTR3 0xc0010007 #define MSR_SYSCFG 0xc0010010 +#define MSR_HWCR 0xc0010015 #define MSR_IORRBASE0 0xc0010016 #define MSR_IORRMASK0 0xc0010017 #define MSR_IORRBASE1 0xc0010018 Modified: projects/sbruno_64cpus/sys/boot/ofw/libofw/openfirm.c ============================================================================== --- projects/sbruno_64cpus/sys/boot/ofw/libofw/openfirm.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sys/boot/ofw/libofw/openfirm.c Sun Nov 21 02:00:54 2010 (r215604) @@ -77,7 +77,7 @@ void OF_init(int (*openfirm)(void *)) { phandle_t options; - char mode[8]; + char mode[sizeof("true")]; openfirmware = openfirm; @@ -93,13 +93,13 @@ OF_init(int (*openfirm)(void *)) if (OF_getprop(chosen, "mmu", &mmu, sizeof(mmu)) == -1) OF_exit(); - /* + /* * Check if we run in real mode. If so, we do not need to map * memory later on. */ options = OF_finddevice("/options"); - OF_getprop(options, "real-mode?", mode, sizeof(mode)); - if (strncmp(mode, "true", 4) == 0) + if (OF_getprop(options, "real-mode?", mode, sizeof(mode)) > 0 && + strcmp(mode, "true") == 0) real_mode = 1; } Modified: projects/sbruno_64cpus/sys/dev/acpica/acpi_hpet.c ============================================================================== --- projects/sbruno_64cpus/sys/dev/acpica/acpi_hpet.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sys/dev/acpica/acpi_hpet.c Sun Nov 21 02:00:54 2010 (r215604) @@ -501,7 +501,7 @@ hpet_attach(device_t dev) /* * Neither QEMU nor VirtualBox report supported IRQs correctly. * The only way to use HPET there is to specify IRQs manually - * and/or use legacy_route. Legacy_route mode work on both. + * and/or use legacy_route. Legacy_route mode works on both. */ if (vm_guest) sc->allowed_irqs = 0x00000000; @@ -591,7 +591,7 @@ hpet_attach(device_t dev) bus_write_4(sc->mem_res, HPET_ISR, 0xffffffff); sc->irq = -1; sc->intr_rid = -1; - /* If at least one timer needs legacy IRQ - setup it. */ + /* If at least one timer needs legacy IRQ - set it up. */ if (sc->useirq) { j = i = fls(cvectors) - 1; while (j > 0 && (cvectors & (1 << (j - 1))) != 0) Modified: projects/sbruno_64cpus/sys/dev/ata/ata-all.c ============================================================================== --- projects/sbruno_64cpus/sys/dev/ata/ata-all.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sys/dev/ata/ata-all.c Sun Nov 21 02:00:54 2010 (r215604) @@ -171,7 +171,12 @@ ata_attach(device_t dev) ch->user[i].bytecount = 8192; else ch->user[i].bytecount = MAXPHYS; + ch->user[i].caps = 0; ch->curr[i] = ch->user[i]; + if (ch->pm_level > 0) + ch->user[i].caps |= CTS_SATA_CAPS_H_PMREQ; + if (ch->pm_level > 1) + ch->user[i].caps |= CTS_SATA_CAPS_D_PMREQ; } #endif callout_init(&ch->poll_callout, 1); @@ -1627,6 +1632,8 @@ ataaction(struct cam_sim *sim, union ccb d->bytecount = min(8192, cts->xport_specific.sata.bytecount); if (cts->xport_specific.sata.valid & CTS_SATA_VALID_ATAPI) d->atapi = cts->xport_specific.sata.atapi; + if (cts->xport_specific.sata.valid & CTS_SATA_VALID_CAPS) + d->caps = cts->xport_specific.sata.caps; } else { if (cts->xport_specific.ata.valid & CTS_ATA_VALID_MODE) { if (cts->type == CTS_TYPE_CURRENT_SETTINGS) { @@ -1672,9 +1679,21 @@ ataaction(struct cam_sim *sim, union ccb cts->xport_specific.sata.valid |= CTS_SATA_VALID_REVISION; } + cts->xport_specific.sata.caps = + d->caps & CTS_SATA_CAPS_D; + if (ch->pm_level) { + cts->xport_specific.sata.caps |= + CTS_SATA_CAPS_H_PMREQ; + } + cts->xport_specific.sata.caps &= + ch->user[ccb->ccb_h.target_id].caps; + cts->xport_specific.sata.valid |= + CTS_SATA_VALID_CAPS; } else { cts->xport_specific.sata.revision = d->revision; cts->xport_specific.sata.valid |= CTS_SATA_VALID_REVISION; + cts->xport_specific.sata.caps = d->caps; + cts->xport_specific.sata.valid |= CTS_SATA_VALID_CAPS; } cts->xport_specific.sata.atapi = d->atapi; cts->xport_specific.sata.valid |= CTS_SATA_VALID_ATAPI; Modified: projects/sbruno_64cpus/sys/dev/ata/ata-all.h ============================================================================== --- projects/sbruno_64cpus/sys/dev/ata/ata-all.h Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sys/dev/ata/ata-all.h Sun Nov 21 02:00:54 2010 (r215604) @@ -535,6 +535,7 @@ struct ata_cam_device { int mode; u_int bytecount; u_int atapi; + u_int caps; }; #endif Modified: projects/sbruno_64cpus/sys/dev/atkbdc/psm.c ============================================================================== --- projects/sbruno_64cpus/sys/dev/atkbdc/psm.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sys/dev/atkbdc/psm.c Sun Nov 21 02:00:54 2010 (r215604) @@ -1214,12 +1214,12 @@ psmprobe(device_t dev) * be that this is only the case when the controller DOES have the aux * port but the port is not wired on the motherboard.) The keyboard * controllers without the port, such as the original AT, are - * supporsed to return with an error code or simply time out. In any + * supposed to return with an error code or simply time out. In any * case, we have to continue probing the port even when the controller * passes this test. * * XXX: some controllers erroneously return the error code 1, 2 or 3 - * when it has the perfectly functional aux port. We have to ignore + * when it has a perfectly functional aux port. We have to ignore * this error code. Even if the controller HAS error with the aux * port, it will be detected later... * XXX: another incompatible controller returns PSM_ACK (0xfa)... @@ -1250,7 +1250,7 @@ psmprobe(device_t dev) if (sc->config & PSM_CONFIG_NORESET) { /* * Don't try to reset the pointing device. It may possibly be - * left in the unknown state, though... + * left in an unknown state, though... */ } else { /* @@ -1277,7 +1277,7 @@ psmprobe(device_t dev) } /* - * both the aux port and the aux device is functioning, see if the + * both the aux port and the aux device are functioning, see if the * device can be enabled. NOTE: when enabled, the device will start * sending data; we shall immediately disable the device once we know * the device can be enabled. Modified: projects/sbruno_64cpus/sys/dev/mii/atphy.c ============================================================================== --- projects/sbruno_64cpus/sys/dev/mii/atphy.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sys/dev/mii/atphy.c Sun Nov 21 02:00:54 2010 (r215604) @@ -317,6 +317,7 @@ atphy_status(struct mii_softc *sc) static void atphy_reset(struct mii_softc *sc) { + struct ifmedia_entry *ife = sc->mii_pdata->mii_media.ifm_cur; struct atphy_softc *asc; uint32_t reg; int i; @@ -339,7 +340,7 @@ atphy_reset(struct mii_softc *sc) PHY_WRITE(sc, ATPHY_SCR, reg); /* Workaround F1 bug to reset phy. */ - atphy_setmedia(sc, sc->mii_pdata->mii_media.ifm_cur->ifm_media); + atphy_setmedia(sc, ife == NULL ? IFM_AUTO : ife->ifm_media); for (i = 0; i < 1000; i++) { DELAY(1); Modified: projects/sbruno_64cpus/sys/fs/cd9660/cd9660_node.c ============================================================================== --- projects/sbruno_64cpus/sys/fs/cd9660/cd9660_node.c Sun Nov 21 00:53:27 2010 (r215603) +++ projects/sbruno_64cpus/sys/fs/cd9660/cd9660_node.c Sun Nov 21 02:00:54 2010 (r215604) @@ -69,9 +69,6 @@ cd9660_inactive(ap) struct iso_node *ip = VTOI(vp); int error = 0; - if (prtactive && vrefcnt(vp) != 0) - vprint("cd9660_inactive: pushing active", vp); - /* * If we are done with the inode, reclaim it * so that it can be reused immediately. @@ -93,8 +90,6 @@ cd9660_reclaim(ap) { struct vnode *vp = ap->a_vp; - if (prtactive && vrefcnt(vp) != 0) - vprint("cd9660_reclaim: pushing active", vp); /* *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011210200.oAL20sQg033260>