Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 May 2011 16:09:10 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r222364 - in projects/largeSMP: bin/sh contrib/top lib/libc/iconv libexec/tftpd sbin/geom/class/part sbin/newfs share/examples share/examples/ses/srcs share/mk sys/cam/scsi sys/cddl/com...
Message-ID:  <201105271609.p4RG9A4M042735@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: attilio
Date: Fri May 27 16:09:10 2011
New Revision: 222364
URL: http://svn.freebsd.org/changeset/base/222364

Log:
  MFC

Added:
  projects/largeSMP/tools/regression/bin/sh/expansion/ifs4.0
     - copied unchanged from r222363, head/tools/regression/bin/sh/expansion/ifs4.0
  projects/largeSMP/tools/tools/ath/ath_ee_9287_print/
     - copied from r222363, head/tools/tools/ath/ath_ee_9287_print/
Modified:
  projects/largeSMP/bin/sh/TOUR
  projects/largeSMP/bin/sh/expand.c
  projects/largeSMP/lib/libc/iconv/Symbol.map
  projects/largeSMP/libexec/tftpd/tftp-io.c
  projects/largeSMP/sbin/geom/class/part/geom_part.c
  projects/largeSMP/sbin/geom/class/part/gpart.8
  projects/largeSMP/sbin/newfs/newfs.h
  projects/largeSMP/share/examples/Makefile
  projects/largeSMP/share/examples/ses/srcs/eltsub.c
  projects/largeSMP/sys/cam/scsi/scsi_ses.h
  projects/largeSMP/sys/cddl/compat/opensolaris/kern/opensolaris_sysevent.c
  projects/largeSMP/sys/conf/files
  projects/largeSMP/sys/dev/ath/ath_hal/ar9002/ar9285_phy.c
  projects/largeSMP/sys/dev/ath/ath_hal/ar9002/ar9287.c
  projects/largeSMP/sys/dev/puc/pucdata.c
  projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c
  projects/largeSMP/sys/geom/part/g_part_mbr.c
  projects/largeSMP/sys/kern/kern_sig.c
  projects/largeSMP/sys/modules/ath/Makefile
  projects/largeSMP/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c
  projects/largeSMP/sys/powerpc/booke/platform_bare.c
  projects/largeSMP/sys/powerpc/include/spr.h
  projects/largeSMP/sys/ufs/ffs/ffs_alloc.c
Directory Properties:
  projects/largeSMP/   (props changed)
  projects/largeSMP/cddl/contrib/opensolaris/   (props changed)
  projects/largeSMP/contrib/bind9/   (props changed)
  projects/largeSMP/contrib/binutils/   (props changed)
  projects/largeSMP/contrib/bzip2/   (props changed)
  projects/largeSMP/contrib/dialog/   (props changed)
  projects/largeSMP/contrib/ee/   (props changed)
  projects/largeSMP/contrib/expat/   (props changed)
  projects/largeSMP/contrib/file/   (props changed)
  projects/largeSMP/contrib/gcc/   (props changed)
  projects/largeSMP/contrib/gdb/   (props changed)
  projects/largeSMP/contrib/gdtoa/   (props changed)
  projects/largeSMP/contrib/gnu-sort/   (props changed)
  projects/largeSMP/contrib/groff/   (props changed)
  projects/largeSMP/contrib/less/   (props changed)
  projects/largeSMP/contrib/libpcap/   (props changed)
  projects/largeSMP/contrib/libstdc++/   (props changed)
  projects/largeSMP/contrib/llvm/   (props changed)
  projects/largeSMP/contrib/llvm/tools/clang/   (props changed)
  projects/largeSMP/contrib/ncurses/   (props changed)
  projects/largeSMP/contrib/netcat/   (props changed)
  projects/largeSMP/contrib/ntp/   (props changed)
  projects/largeSMP/contrib/one-true-awk/   (props changed)
  projects/largeSMP/contrib/openbsm/   (props changed)
  projects/largeSMP/contrib/openpam/   (props changed)
  projects/largeSMP/contrib/pf/   (props changed)
  projects/largeSMP/contrib/sendmail/   (props changed)
  projects/largeSMP/contrib/tcpdump/   (props changed)
  projects/largeSMP/contrib/tcsh/   (props changed)
  projects/largeSMP/contrib/top/   (props changed)
  projects/largeSMP/contrib/top/install-sh   (props changed)
  projects/largeSMP/contrib/tzcode/stdtime/   (props changed)
  projects/largeSMP/contrib/tzcode/zic/   (props changed)
  projects/largeSMP/contrib/tzdata/   (props changed)
  projects/largeSMP/contrib/wpa/   (props changed)
  projects/largeSMP/contrib/xz/   (props changed)
  projects/largeSMP/crypto/openssh/   (props changed)
  projects/largeSMP/crypto/openssl/   (props changed)
  projects/largeSMP/gnu/lib/   (props changed)
  projects/largeSMP/gnu/usr.bin/binutils/   (props changed)
  projects/largeSMP/gnu/usr.bin/cc/cc_tools/   (props changed)
  projects/largeSMP/gnu/usr.bin/gdb/   (props changed)
  projects/largeSMP/lib/libc/   (props changed)
  projects/largeSMP/lib/libc/stdtime/   (props changed)
  projects/largeSMP/lib/libutil/   (props changed)
  projects/largeSMP/lib/libz/   (props changed)
  projects/largeSMP/sbin/   (props changed)
  projects/largeSMP/sbin/ipfw/   (props changed)
  projects/largeSMP/share/mk/bsd.arch.inc.mk   (props changed)
  projects/largeSMP/share/zoneinfo/   (props changed)
  projects/largeSMP/sys/   (props changed)
  projects/largeSMP/sys/amd64/include/xen/   (props changed)
  projects/largeSMP/sys/boot/   (props changed)
  projects/largeSMP/sys/boot/i386/efi/   (props changed)
  projects/largeSMP/sys/boot/ia64/efi/   (props changed)
  projects/largeSMP/sys/boot/ia64/ski/   (props changed)
  projects/largeSMP/sys/boot/powerpc/boot1.chrp/   (props changed)
  projects/largeSMP/sys/boot/powerpc/ofw/   (props changed)
  projects/largeSMP/sys/cddl/contrib/opensolaris/   (props changed)
  projects/largeSMP/sys/conf/   (props changed)
  projects/largeSMP/sys/contrib/dev/acpica/   (props changed)
  projects/largeSMP/sys/contrib/octeon-sdk/   (props changed)
  projects/largeSMP/sys/contrib/pf/   (props changed)
  projects/largeSMP/sys/contrib/x86emu/   (props changed)
  projects/largeSMP/usr.bin/calendar/   (props changed)
  projects/largeSMP/usr.bin/csup/   (props changed)
  projects/largeSMP/usr.bin/procstat/   (props changed)
  projects/largeSMP/usr.sbin/ndiscvt/   (props changed)
  projects/largeSMP/usr.sbin/zic/   (props changed)

Modified: projects/largeSMP/bin/sh/TOUR
==============================================================================
--- projects/largeSMP/bin/sh/TOUR	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/bin/sh/TOUR	Fri May 27 16:09:10 2011	(r222364)
@@ -27,10 +27,8 @@ programs is:
         mkbuiltins      builtins            builtins.h builtins.c
         mkinit          *.c                 init.c
         mknodes         nodetypes           nodes.h nodes.c
-        mksignames          -               signames.h signames.c
         mksyntax            -               syntax.h syntax.c
         mktokens            -               token.h
-        bltin/mkexpr    unary_op binary_op  operators.h operators.c
 
 There are undoubtedly too many of these.  Mkinit searches all the
 C source files for entries looking like:
@@ -64,14 +62,6 @@ tion:
 Preprocessor #define statements are copied to init.c without any
 special action to request this.
 
-INDENTATION:  The ash source is indented in multiples of six
-spaces.  The only study that I have heard of on the subject con-
-cluded that the optimal amount to indent is in the range of four
-to six spaces.  I use six spaces since it is not too big a jump
-from the widely used eight spaces.  If you really hate six space
-indentation, use the adjind (source included) program to change
-it to something else.
-
 EXCEPTIONS:  Code for dealing with exceptions appears in
 exceptions.c.  The C language doesn't include exception handling,
 so I implement it using setjmp and longjmp.  The global variable
@@ -115,7 +105,7 @@ repeatedly parses and executes commands.
 
 OPTIONS.C:  This file contains the option processing code.  It is
 called from main to parse the shell arguments when the shell is
-invoked, and it also contains the set builtin.  The -i and -j op-
+invoked, and it also contains the set builtin.  The -i and -m op-
 tions (the latter turns on job control) require changes in signal
 handling.  The routines setjobctl (in jobs.c) and setinteractive
 (in trap.c) are called to handle changes to these options.
@@ -123,10 +113,11 @@ handling.  The routines setjobctl (in jo
 PARSING:  The parser code is all in parser.c.  A recursive des-
 cent parser is used.  Syntax tables (generated by mksyntax) are
 used to classify characters during lexical analysis.  There are
-three tables:  one for normal use, one for use when inside single
-quotes, and one for use when inside double quotes.  The tables
-are machine dependent because they are indexed by character vari-
-ables and the range of a char varies from machine to machine.
+four tables:  one for normal use, one for use when inside single
+quotes and dollar single quotes, one for use when inside double
+quotes and one for use in arithmetic.  The tables are machine
+dependent because they are indexed by character variables and
+the range of a char varies from machine to machine.
 
 PARSE OUTPUT:  The output of the parser consists of a tree of
 nodes.  The various types of nodes are defined in the file node-
@@ -242,12 +233,7 @@ The routine shellexec is the interface t
 EXPAND.C:  Arguments are processed in three passes.  The first
 (performed by the routine argstr) performs variable and command
 substitution.  The second (ifsbreakup) performs word splitting
-and the third (expandmeta) performs file name generation.  If the
-"/u" directory is simulated, then when "/u/username" is replaced
-by the user's home directory, the flag "didudir" is set.  This
-tells the cd command that it should print out the directory name,
-just as it would if the "/u" directory were implemented using
-symbolic links.
+and the third (expandmeta) performs file name generation.
 
 VAR.C:  Variables are stored in a hash table.  Probably we should
 switch to extensible hashing.  The variable name is stored in the
@@ -292,14 +278,7 @@ when the program is linked into ash.  Th
 before bltin.h is included; bltin.h will #undef main if the pro-
 gram is to be compiled stand-alone.
 
-CD.C:  This file defines the cd and pwd builtins.  The pwd com-
-mand runs /bin/pwd the first time it is invoked (unless the user
-has already done a cd to an absolute pathname), but then
-remembers the current directory and updates it when the cd com-
-mand is run, so subsequent pwd commands run very fast.  The main
-complication in the cd command is in the docd command, which
-resolves symbolic links into actual names and informs the user
-where the user ended up if he crossed a symbolic link.
+CD.C:  This file defines the cd and pwd builtins.
 
 SIGNALS:  Trap.c implements the trap command.  The routine set-
 signal figures out what action should be taken when a signal is

Modified: projects/largeSMP/bin/sh/expand.c
==============================================================================
--- projects/largeSMP/bin/sh/expand.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/bin/sh/expand.c	Fri May 27 16:09:10 2011	(r222364)
@@ -761,7 +761,8 @@ again: /* jump here after setting a vari
 			break;
 record:
 		recordregion(startloc, expdest - stackblock(),
-			     varflags & VSQUOTE);
+		    varflags & VSQUOTE || (ifsset() && ifsval()[0] == '\0' &&
+		    (*var == '@' || *var == '*')));
 		break;
 
 	case VSPLUS:
@@ -947,7 +948,9 @@ numvar:
 			sep = ' ';
 		for (ap = shellparam.p ; (p = *ap++) != NULL ; ) {
 			strtodest(p, flag, subtype, quoted);
-			if (*ap && sep)
+			if (!*ap)
+				break;
+			if (sep || (flag & EXP_FULL && !quoted && **ap != '\0'))
 				STPUTC(sep, expdest);
 		}
 		break;

Modified: projects/largeSMP/lib/libc/iconv/Symbol.map
==============================================================================
--- projects/largeSMP/lib/libc/iconv/Symbol.map	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/lib/libc/iconv/Symbol.map	Fri May 27 16:09:10 2011	(r222364)
@@ -6,6 +6,18 @@ FBSD_1.2 {
 	__iconv;
 	__iconv_free_list;
 	__iconv_get_list;
+	_libiconv_version;
+	iconv_canonicalize;
+	libiconv;
+	libiconv_close;
+	libiconv_open;
+	libiconv_open_into;
+	libiconv_set_relocation_prefix;
+	libiconvctl;
+	libiconvlist;
+};
+
+FBSDprivate_1.0 {
 	_citrus_bcs_convert_to_lower;
 	_citrus_bcs_convert_to_upper;
 	_citrus_bcs_isalnum;
@@ -89,13 +101,4 @@ FBSD_1.2 {
 	_citrus_stdenc_close;
 	_citrus_stdenc_open;
 	_citrus_unmap_file;
-	_libiconv_version;
-	iconv_canonicalize;
-	libiconv;
-	libiconv_close;
-	libiconv_open;
-	libiconv_open_into;
-	libiconv_set_relocation_prefix;
-	libiconvctl;
-	libiconvlist;
 };

Modified: projects/largeSMP/libexec/tftpd/tftp-io.c
==============================================================================
--- projects/largeSMP/libexec/tftpd/tftp-io.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/libexec/tftpd/tftp-io.c	Fri May 27 16:09:10 2011	(r222364)
@@ -262,7 +262,7 @@ send_rrq(int peer, char *filename, char 
 	n = sendto(peer, buf, size, 0,
 	    (struct sockaddr *)&peer_sock, peer_sock.ss_len);
 	if (n != size) {
-		tftp_log(LOG_ERR, "send_rrq: %s", n, strerror(errno));
+		tftp_log(LOG_ERR, "send_rrq: %d %s", n, strerror(errno));
 		return (1);
 	}
 	return (0);

Modified: projects/largeSMP/sbin/geom/class/part/geom_part.c
==============================================================================
--- projects/largeSMP/sbin/geom/class/part/geom_part.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sbin/geom/class/part/geom_part.c	Fri May 27 16:09:10 2011	(r222364)
@@ -101,7 +101,7 @@ struct g_command PUBSYM(class_commands)[
 		{ 'l', "label", G_VAL_OPTIONAL, G_TYPE_STRING },
 		{ 'f', "flags", GPART_FLAGS, G_TYPE_STRING },
 		G_OPT_SENTINEL },
-	    "[-a alignment] [-b start] [-s size] -t type [-i index] "
+	    "-t type [-a alignment] [-b start] [-s size] [-i index] "
 		"[-l label] [-f flags] geom"
 	},
 	{ "backup", 0, gpart_backup, G_NULL_OPTS,
@@ -113,7 +113,7 @@ struct g_command PUBSYM(class_commands)[
 		{ 'i', GPART_PARAM_INDEX, G_VAL_OPTIONAL, G_TYPE_NUMBER },
 		{ 'f', "flags", GPART_FLAGS, G_TYPE_STRING },
 		G_OPT_SENTINEL },
-	    "[-b bootcode] [-p partcode] [-i index] [-f flags] geom"
+	    "[-b bootcode] [-p partcode -i index] [-f flags] geom"
 	},
 	{ "commit", 0, gpart_issue, G_NULL_OPTS,
 	    "geom"
@@ -157,7 +157,7 @@ struct g_command PUBSYM(class_commands)[
 		{ 'r', "show_rawtype", NULL, G_TYPE_BOOL },
 		{ 'p', "show_providers", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL },
-	    "[-lrp] [geom ...]"
+	    "[-l | -r] [-p] [geom ...]"
 	},
 	{ "undo", 0, gpart_issue, G_NULL_OPTS,
 	    "geom"
@@ -175,7 +175,7 @@ struct g_command PUBSYM(class_commands)[
 		{ 'i', GPART_PARAM_INDEX, NULL, G_TYPE_NUMBER },
 		{ 'f', "flags", GPART_FLAGS, G_TYPE_STRING },
 		G_OPT_SENTINEL },
-	    "[-a alignment] [-s size] -i index [-f flags] geom"
+	    "-i index [-a alignment] [-s size] [-f flags] geom"
 	},
 	{ "restore", 0, gpart_restore, {
 		{ 'F', "force", NULL, G_TYPE_BOOL },

Modified: projects/largeSMP/sbin/geom/class/part/gpart.8
==============================================================================
--- projects/largeSMP/sbin/geom/class/part/gpart.8	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sbin/geom/class/part/gpart.8	Fri May 27 16:09:10 2011	(r222364)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 03, 2011
+.Dd May 27, 2011
 .Dt GPART 8
 .Os
 .Sh NAME
@@ -170,7 +170,8 @@ utility:
 .\" ==== SHOW ====
 .Nm
 .Cm show
-.Op Fl lrp
+.Op Fl l | Fl r
+.Op Fl p
 .Op Ar geom ...
 .\" ==== UNDO ====
 .Nm
@@ -841,6 +842,33 @@ partition that would contain UFS where t
 /sbin/gpart add -b 162 -s 1048576 -t freebsd-ufs ad0
 .Ed
 .Pp
+Create MBR scheme on
+.Pa ada0 ,
+then create 30GB-sized FreeBSD slice, mark it active and
+install boot0 boot manager:
+.Bd -literal -offset indent
+/sbin/gpart create -s MBR ada0
+/sbin/gpart add -t freebsd -s 30G ada0
+/sbin/gpart set -a active -i 1 ada0
+/sbin/gpart bootcode -b /boot/boot0 ada0
+.Ed
+.Pp
+Now create BSD scheme (BSD label) with ability to have up to 20 partitions:
+.Bd -literal -offset indent
+/sbin/gpart create -s BSD -n 20 ada0s1
+.Ed
+.Pp
+Create 1GB-sized UFS partition and 4GB-sized swap partition:
+.Bd -literal -offset indent
+/sbin/gpart add -t freebsd-ufs -s 1G ada0s1
+/sbin/gpart add -t freebsd-swap -s 4G ada0s1
+.Ed
+.Pp
+Install bootstrap code for the BSD label:
+.Bd -literal -offset indent
+/sbin/gpart bootcode -b /boot/boot ada0s1
+.Ed
+.Pp
 Create VTOC8 scheme on
 .Pa da0 .
 .Bd -literal -offset indent

Modified: projects/largeSMP/sbin/newfs/newfs.h
==============================================================================
--- projects/largeSMP/sbin/newfs/newfs.h	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sbin/newfs/newfs.h	Fri May 27 16:09:10 2011	(r222364)
@@ -47,8 +47,8 @@
  *	sectorsize <= DESFRAGSIZE <= DESBLKSIZE
  *	DESBLKSIZE / DESFRAGSIZE <= 8
  */
-#define	DFL_FRAGSIZE	2048
-#define	DFL_BLKSIZE	16384
+#define	DFL_FRAGSIZE	4096
+#define	DFL_BLKSIZE	32768
 
 /*
  * Cylinder groups may have up to MAXBLKSPERCG blocks. The actual

Modified: projects/largeSMP/share/examples/Makefile
==============================================================================
--- projects/largeSMP/share/examples/Makefile	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/share/examples/Makefile	Fri May 27 16:09:10 2011	(r222364)
@@ -175,6 +175,7 @@ XFILES=	BSD_daemon/FreeBSD.pfa \
 	ses/setobjstat/setobjstat.0 \
 	ses/srcs/chpmon.c \
 	ses/srcs/eltsub.c \
+	ses/srcs/eltsub.h \
 	ses/srcs/getencstat.c \
 	ses/srcs/getnobj.c \
 	ses/srcs/getobjmap.c \

Modified: projects/largeSMP/share/examples/ses/srcs/eltsub.c
==============================================================================
--- projects/largeSMP/share/examples/ses/srcs/eltsub.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/share/examples/ses/srcs/eltsub.c	Fri May 27 16:09:10 2011	(r222364)
@@ -85,6 +85,9 @@ geteltnm(int type)
 	case SESTYP_KEYPAD:
 		sprintf(rbuf, "Key pad entry device");
 		break;
+	case SESTYP_ENCLOSURE:
+		sprintf(rbuf, "Enclosure");
+		break;
 	case SESTYP_SCSIXVR:
 		sprintf(rbuf, "SCSI port/transceiver");
 		break;
@@ -109,6 +112,15 @@ geteltnm(int type)
 	case SESTYP_SUBENC:
 		sprintf(rbuf, "Simple sub-enclosure");
 		break;
+	case SESTYP_ARRAY:
+		sprintf(rbuf, "Array device");
+		break;
+	case SESTYP_SASEXPANDER:
+		sprintf(rbuf, "SAS Expander");
+		break;
+	case SESTYP_SASCONNECTOR:
+		sprintf(rbuf, "SAS Connector");
+		break;
 	default:
 		(void) sprintf(rbuf, "<Type 0x%x>", type);
 		break;

Modified: projects/largeSMP/sys/cam/scsi/scsi_ses.h
==============================================================================
--- projects/largeSMP/sys/cam/scsi/scsi_ses.h	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/cam/scsi/scsi_ses.h	Fri May 27 16:09:10 2011	(r222364)
@@ -101,6 +101,7 @@ typedef struct {
 #define	SESTYP_UPS		0x0b
 #define	SESTYP_DISPLAY		0x0c
 #define	SESTYP_KEYPAD		0x0d
+#define	SESTYP_ENCLOSURE	0x0e
 #define	SESTYP_SCSIXVR		0x0f
 #define	SESTYP_LANGUAGE		0x10
 #define	SESTYP_COMPORT		0x11
@@ -109,6 +110,9 @@ typedef struct {
 #define	SESTYP_SCSI_TGT		0x14
 #define	SESTYP_SCSI_INI		0x15
 #define	SESTYP_SUBENC		0x16
+#define	SESTYP_ARRAY		0x17
+#define	SESTYP_SASEXPANDER	0x18
+#define	SESTYP_SASCONNECTOR	0x19
 
 /*
  * Overall Enclosure Status

Modified: projects/largeSMP/sys/cddl/compat/opensolaris/kern/opensolaris_sysevent.c
==============================================================================
--- projects/largeSMP/sys/cddl/compat/opensolaris/kern/opensolaris_sysevent.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/cddl/compat/opensolaris/kern/opensolaris_sysevent.c	Fri May 27 16:09:10 2011	(r222364)
@@ -113,8 +113,10 @@ sysevent_add_attr(sysevent_attr_list_t *
 		}
 		break;
 	default:
+#if 0
 		printf("%s: type %d is not implemented\n", __func__,
 		    se_value->value_type);
+#endif
 		break;
 	}
 
@@ -286,8 +288,10 @@ log_sysevent(sysevent_t *evp, int flag, 
 			break;
 		    }
 		default:
+#if 0
 			printf("%s: type %d is not implemented\n", __func__,
 			    nvpair_type(elem));
+#endif
 			break;
 		}
 	}

Modified: projects/largeSMP/sys/conf/files
==============================================================================
--- projects/largeSMP/sys/conf/files	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/conf/files	Fri May 27 16:09:10 2011	(r222364)
@@ -604,6 +604,9 @@ dev/ath/ath_hal/ah_eeprom_v14.c \
 dev/ath/ath_hal/ah_eeprom_v4k.c \
 	optional ath_hal | ath_ar9285 \
 	compile-with "${NORMAL_C} -I$S/dev/ath"
+dev/ath/ath_hal/ah_eeprom_9287.c \
+	optional ath_hal | ath_ar9287 \
+	compile-with "${NORMAL_C} -I$S/dev/ath"
 dev/ath/ath_hal/ah_regdomain.c	optional ath \
 	compile-with "${NORMAL_C} -I$S/dev/ath"
 # ar5210
@@ -651,111 +654,128 @@ dev/ath/ath_hal/ar5211/ar5211_xmit.c		op
 # ar5212
 dev/ath/ath_hal/ar5212/ar5212_ani.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_attach.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_beacon.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_eeprom.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_gpio.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_interrupts.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_keycache.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_misc.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_phy.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_power.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_recv.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_reset.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_rfgain.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5212/ar5212_xmit.c \
 	optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \
-	ath_ar9285 \
+	ath_ar9285 ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 # ar5416 (depends on ar5212)
 dev/ath/ath_hal/ar5416/ar5416_ani.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_attach.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_beacon.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_cal.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_cal_iq.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_cal_adcgain.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_cal_adcdc.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_eeprom.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_gpio.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_interrupts.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_keycache.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_misc.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_phy.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_power.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_recv.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_reset.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar5416/ar5416_xmit.c \
-	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \
+	optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \
+	ath_ar9287 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 # ar9130 (depends upon ar5416) - also requires AH_SUPPORT_AR9130
 dev/ath/ath_hal/ar9001/ar9130_attach.c optional ath_hal | ath_ar9130 \
@@ -786,6 +806,16 @@ dev/ath/ath_hal/ar9002/ar9285_phy.c opti
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar9002/ar9285_diversity.c optional ath_hal | ath_ar9285 \ 
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+# ar9287 (depends on ar5416)
+dev/ath/ath_hal/ar9002/ar9287_attach.c optional ath_hal | ath_ar9287 \ 
+	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar9002/ar9287_reset.c optional ath_hal | ath_ar9287 \ 
+	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar9002/ar9287_cal.c optional ath_hal | ath_ar9287 \ 
+	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar9002/ar9287_olc.c optional ath_hal | ath_ar9287 \ 
+	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+
 # rf backends
 dev/ath/ath_hal/ar5212/ar2316.c	optional ath_rf2316 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
@@ -807,6 +837,8 @@ dev/ath/ath_hal/ar9002/ar9280.c optional
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_hal/ar9002/ar9285.c optional ath_hal | ath_ar9285 \
 	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar9002/ar9287.c optional ath_hal | ath_ar9287 \
+	compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 # ath rate control algorithms
 dev/ath/ath_rate/amrr/amrr.c	optional ath_rate_amrr \
 	compile-with "${NORMAL_C} -I$S/dev/ath"

Modified: projects/largeSMP/sys/dev/ath/ath_hal/ar9002/ar9285_phy.c
==============================================================================
--- projects/largeSMP/sys/dev/ath/ath_hal/ar9002/ar9285_phy.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/dev/ath/ath_hal/ar9002/ar9285_phy.c	Fri May 27 16:09:10 2011	(r222364)
@@ -87,10 +87,8 @@ ar9285_check_div_comb(struct ath_hal *ah
 	HAL_EEPROM_v4k *ee = AH_PRIVATE(ah)->ah_eeprom;
         const MODAL_EEP4K_HEADER *pModal = &ee->ee_base.modalHeader;
 
-#if 0
 	/* For now, simply disable this until it's better debugged. -adrian */
 	return AH_FALSE;
-#endif
 
 	if (! AR_SREV_KITE(ah))
 		return AH_FALSE;

Modified: projects/largeSMP/sys/dev/ath/ath_hal/ar9002/ar9287.c
==============================================================================
--- projects/largeSMP/sys/dev/ath/ath_hal/ar9002/ar9287.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/dev/ath/ath_hal/ar9002/ar9287.c	Fri May 27 16:09:10 2011	(r222364)
@@ -36,7 +36,7 @@ struct ar9287State {
 	RF_HAL_FUNCS	base;		/* public state, must be first */
 	uint16_t	pcdacTable[1];	/* XXX */
 };
-#define	AR9280(ah)	((struct ar9287State *) AH5212(ah)->ah_rfHal)
+#define	AR9287(ah)	((struct ar9287State *) AH5212(ah)->ah_rfHal)
 
 static HAL_BOOL ar9287GetChannelMaxMinPower(struct ath_hal *,
 	const struct ieee80211_channel *, int16_t *maxPow,int16_t *minPow);

Modified: projects/largeSMP/sys/dev/puc/pucdata.c
==============================================================================
--- projects/largeSMP/sys/dev/puc/pucdata.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/dev/puc/pucdata.c	Fri May 27 16:09:10 2011	(r222364)
@@ -1292,6 +1292,12 @@ puc_config_timedia(struct puc_softc *sc,
 	uint16_t subdev;
 
 	switch (cmd) {
+	case PUC_CFG_GET_CLOCK:
+		if (port < 2)
+			*res = DEFAULT_RCLK * 8;
+		else
+			*res = DEFAULT_RCLK;
+		return (0);
 	case PUC_CFG_GET_DESC:
 		snprintf(desc, sizeof(desc),
 		    "Timedia technology %d Port Serial", (int)sc->sc_cfg_data);

Modified: projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c
==============================================================================
--- projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/fs/nfsclient/nfs_clvfsops.c	Fri May 27 16:09:10 2011	(r222364)
@@ -1458,10 +1458,20 @@ nfs_sync(struct mount *mp, int waitfor)
 
 	td = curthread;
 
+	MNT_ILOCK(mp);
+	/*
+	 * If a forced dismount is in progress, return from here so that
+	 * the umount(2) syscall doesn't get stuck in VFS_SYNC() before
+	 * calling VFS_UNMOUNT().
+	 */
+	if ((mp->mnt_kern_flag & MNTK_UNMOUNTF) != 0) {
+		MNT_IUNLOCK(mp);
+		return (EBADF);
+	}
+
 	/*
 	 * Force stale buffer cache information to be flushed.
 	 */
-	MNT_ILOCK(mp);
 loop:
 	MNT_VNODE_FOREACH(vp, mp, mvp) {
 		VI_LOCK(vp);

Modified: projects/largeSMP/sys/geom/part/g_part_mbr.c
==============================================================================
--- projects/largeSMP/sys/geom/part/g_part_mbr.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/geom/part/g_part_mbr.c	Fri May 27 16:09:10 2011	(r222364)
@@ -423,12 +423,13 @@ g_part_mbr_read(struct g_part_table *bas
 	struct g_part_mbr_table *table;
 	struct g_part_mbr_entry *entry;
 	u_char *buf, *p;
-	off_t chs, msize;
+	off_t chs, msize, first;
 	u_int sectors, heads;
 	int error, index;
 
 	pp = cp->provider;
 	table = (struct g_part_mbr_table *)basetable;
+	first = basetable->gpt_sectors;
 	msize = MIN(pp->mediasize / pp->sectorsize, UINT32_MAX);
 
 	buf = g_read_data(cp, 0L, pp->sectorsize, &error);
@@ -461,7 +462,8 @@ g_part_mbr_read(struct g_part_table *bas
 				basetable->gpt_heads = heads;
 			}
 		}
-
+		if (ent.dp_start < first)
+			first = ent.dp_start;
 		entry = (struct g_part_mbr_entry *)g_part_new_entry(basetable,
 		    index + 1, ent.dp_start, ent.dp_start + ent.dp_size - 1);
 		entry->ent = ent;
@@ -471,6 +473,9 @@ g_part_mbr_read(struct g_part_table *bas
 	basetable->gpt_first = basetable->gpt_sectors;
 	basetable->gpt_last = msize - 1;
 
+	if (first < basetable->gpt_first)
+		basetable->gpt_first = 1;
+
 	g_free(buf);
 	return (0);
 }

Modified: projects/largeSMP/sys/kern/kern_sig.c
==============================================================================
--- projects/largeSMP/sys/kern/kern_sig.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/kern/kern_sig.c	Fri May 27 16:09:10 2011	(r222364)
@@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/proc.h>
 #include <sys/posix4.h>
 #include <sys/pioctl.h>
+#include <sys/racct.h>
 #include <sys/resourcevar.h>
 #include <sys/sdt.h>
 #include <sys/sbuf.h>
@@ -3173,14 +3174,15 @@ coredump(struct thread *td)
 	 * if it is larger than the limit.
 	 */
 	limit = (off_t)lim_cur(p, RLIMIT_CORE);
-	PROC_UNLOCK(p);
-	if (limit == 0) {
+	if (limit == 0 || racct_get_available(p, RACCT_CORE) == 0) {
+		PROC_UNLOCK(p);
 #ifdef AUDIT
 		audit_proc_coredump(td, name, EFBIG);
 #endif
 		free(name, M_TEMP);
 		return (EFBIG);
 	}
+	PROC_UNLOCK(p);
 
 restart:
 	NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE, UIO_SYSSPACE, name, td);

Modified: projects/largeSMP/sys/modules/ath/Makefile
==============================================================================
--- projects/largeSMP/sys/modules/ath/Makefile	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/modules/ath/Makefile	Fri May 27 16:09:10 2011	(r222364)
@@ -116,6 +116,12 @@ SRCS+=	ar9280.c ar9280_attach.c ar9280_o
 SRCS+=	ar9285.c ar9285_reset.c ar9285_attach.c ar9285_cal.c ar9285_phy.c
 SRCS+=	ar9285_diversity.c
 
+# + AR9287 - Kiwi
+.PATH:  ${.CURDIR}/../../dev/ath/ath_hal
+SRCS+=  ah_eeprom_9287.c
+.PATH:  ${.CURDIR}/../../dev/ath/ath_hal/ar9002
+SRCS+=  ar9287.c ar9287_reset.c ar9287_attach.c ar9287_cal.c ar9287_olc.c
+
 # NB: rate control is bound to the driver by symbol names so only pick one
 .if ${ATH_RATE} == "sample"
 .PATH:	${.CURDIR}/../../dev/ath/ath_rate/sample

Modified: projects/largeSMP/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c
==============================================================================
--- projects/largeSMP/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c	Fri May 27 16:09:10 2011	(r222364)
@@ -554,8 +554,8 @@ void ipoib_cm_handle_rx_wc(struct ipoib_
 
 	ipoib_dma_mb(priv, mb, wc->byte_len);
 
-	++dev->if_opackets;
-	dev->if_obytes += mb->m_pkthdr.len;
+	++dev->if_ipackets;
+	dev->if_ibytes += mb->m_pkthdr.len;
 
 	mb->m_pkthdr.rcvif = dev;
 	proto = *mtod(mb, uint16_t *);

Modified: projects/largeSMP/sys/powerpc/booke/platform_bare.c
==============================================================================
--- projects/largeSMP/sys/powerpc/booke/platform_bare.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/powerpc/booke/platform_bare.c	Fri May 27 16:09:10 2011	(r222364)
@@ -166,8 +166,11 @@ bare_timebase_freq(platform_t plat, stru
 	phandle_t cpus, child;
 	pcell_t freq;
 
-	/* Backward compatibility. See 8-STABLE. */
-	ticks = bootinfo[3] >> 3;
+	if (bootinfo != NULL) {
+		/* Backward compatibility. See 8-STABLE. */
+		ticks = bootinfo[3] >> 3;
+	} else
+		ticks = 0;
 
 	if ((cpus = OF_finddevice("/cpus")) == 0)
 		goto out;

Modified: projects/largeSMP/sys/powerpc/include/spr.h
==============================================================================
--- projects/largeSMP/sys/powerpc/include/spr.h	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/powerpc/include/spr.h	Fri May 27 16:09:10 2011	(r222364)
@@ -644,8 +644,8 @@
 #define	SPR_MCSRR1		0x23b	/* ..8 571 Machine check SRR1 */
 
 #define	SPR_SVR			0x3ff	/* ..8 1023 System Version Register */
-#define	  SVR_MPC8533		  0x803c
-#define	  SVR_MPC8533E		  0x8034
+#define	  SVR_MPC8533		  0x8034
+#define	  SVR_MPC8533E		  0x803c
 #define	  SVR_MPC8541		  0x8072
 #define	  SVR_MPC8541E		  0x807a
 #define	  SVR_MPC8548		  0x8031
@@ -654,6 +654,14 @@
 #define	  SVR_MPC8555E		  0x8079
 #define	  SVR_MPC8572		  0x80e0
 #define	  SVR_MPC8572E		  0x80e8
+#define	  SVR_P1011		  0x80e5
+#define	  SVR_P1011E		  0x80ed
+#define	  SVR_P1020		  0x80e4
+#define	  SVR_P1020E		  0x80ec
+#define	  SVR_P2010		  0x80e3
+#define	  SVR_P2010E		  0x80eb
+#define	  SVR_P2020		  0x80e2
+#define	  SVR_P2020E		  0x80ea
 #define	SVR_VER(svr)		(((svr) >> 16) & 0xffff)
 
 #define	SPR_PID0		0x030	/* ..8 Process ID Register 0 */

Modified: projects/largeSMP/sys/ufs/ffs/ffs_alloc.c
==============================================================================
--- projects/largeSMP/sys/ufs/ffs/ffs_alloc.c	Fri May 27 16:01:51 2011	(r222363)
+++ projects/largeSMP/sys/ufs/ffs/ffs_alloc.c	Fri May 27 16:09:10 2011	(r222364)
@@ -1873,10 +1873,7 @@ ffs_blkfree_cg(ump, fs, devvp, bno, size
 		/* devvp is a normal disk device */
 		dev = devvp->v_rdev;
 		cgblkno = fsbtodb(fs, cgtod(fs, cg));
-		ASSERT_VOP_LOCKED(devvp, "ffs_blkfree");
-		if ((devvp->v_vflag & VV_COPYONWRITE) &&
-		    ffs_snapblkfree(fs, devvp, bno, size, inum))
-			return;
+		ASSERT_VOP_LOCKED(devvp, "ffs_blkfree_cg");
 	}
 #ifdef INVARIANTS
 	if ((u_int)size > fs->fs_bsize || fragoff(fs, size) != 0 ||
@@ -2030,6 +2027,17 @@ ffs_blkfree(ump, fs, devvp, bno, size, i
 	struct bio *bip;
 	struct ffs_blkfree_trim_params *tp;
 
+	/*
+	 * Check to see if a snapshot wants to claim the block.
+	 * Check that devvp is a normal disk device, not a snapshot,
+	 * it has a snapshot(s) associated with it, and one of the
+	 * snapshots wants to claim the block.
+	 */
+	if (devvp->v_type != VREG &&
+	    (devvp->v_vflag & VV_COPYONWRITE) &&
+	    ffs_snapblkfree(fs, devvp, bno, size, inum)) {
+		return;
+	}
 	if (!ump->um_candelete) {
 		ffs_blkfree_cg(ump, fs, devvp, bno, size, inum, dephd);
 		return;

Copied: projects/largeSMP/tools/regression/bin/sh/expansion/ifs4.0 (from r222363, head/tools/regression/bin/sh/expansion/ifs4.0)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/largeSMP/tools/regression/bin/sh/expansion/ifs4.0	Fri May 27 16:09:10 2011	(r222364, copy of r222363, head/tools/regression/bin/sh/expansion/ifs4.0)
@@ -0,0 +1,39 @@
+# $FreeBSD$
+
+c=: e= s=' '
+failures=''
+ok=''
+
+check_result() {
+	if [ "x$2" = "x$3" ]; then
+		ok=x$ok
+	else
+		failures=x$failures
+		echo "For $1, expected $3 actual $2"
+	fi
+}
+
+IFS=' 	
+'
+set -- a b '' c
+set -- $@
+check_result 'set -- $@' "($#)($1)($2)($3)($4)" "(3)(a)(b)(c)()"
+
+IFS=''
+set -- a b '' c
+set -- $@
+check_result 'set -- $@' "($#)($1)($2)($3)($4)" "(3)(a)(b)(c)()"
+
+set -- a b '' c
+set -- $*
+check_result 'set -- $*' "($#)($1)($2)($3)($4)" "(3)(a)(b)(c)()"
+
+set -- a b '' c
+set -- "$@"
+check_result 'set -- "$@"' "($#)($1)($2)($3)($4)" "(4)(a)(b)()(c)"
+
+set -- a b '' c
+set -- "$*"
+check_result 'set -- "$*"' "($#)($1)($2)($3)($4)" "(1)(abc)()()()"
+
+test "x$failures" = x



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105271609.p4RG9A4M042735>