Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 May 2009 16:32:23 GMT
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 162725 for review
Message-ID:  <200905251632.n4PGWNpp080135@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=162725

Change 162725 by trasz@trasz_victim on 2009/05/25 16:32:02

	IFC.

Affected files ...

.. //depot/projects/soc2008/trasz_nfs4acl/sbin/fdisk/fdisk.8#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sbin/fdisk/fdisk.c#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sbin/geom/class/journal/gjournal.8#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/msk.4#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_MOUNT.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_QUOTACTL.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_ROOT.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_STATFS.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_SYNC.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_UNMOUNT.9#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/acl.9#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/compat/ndis/kern_ndis.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/files#39 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/e1000phy.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/e1000phyreg.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/miidevs#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/msk/if_msk.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/msk/if_mskreg.h#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/nfe/if_nfe.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfs/nfs_commonkrpc.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfs/nfs_commonport.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfs/nfsport.h#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfsserver/nfs_nfsdkrpc.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfsserver/nfs_nfsdserv.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/tcp_reass.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netipx/spx.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netipx/spx_reass.c#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netipx/spx_usrreq.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netipx/spx_var.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/usr.bin/sed/multitest.t#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/usr.bin/sed/regress.multitest.out/40_2.21#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/usr.bin/sed/regress.multitest.out/41_2.22#1 branch
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/sed/compile.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/sed/defs.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/sed/process.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/sed/sed.1#4 integrate

Differences ...

==== //depot/projects/soc2008/trasz_nfs4acl/sbin/fdisk/fdisk.8#3 (text+ko) ====

@@ -1,4 +1,4 @@
-.\" $FreeBSD: src/sbin/fdisk/fdisk.8,v 1.40 2008/07/31 00:55:29 obrien Exp $
+.\" $FreeBSD: src/sbin/fdisk/fdisk.8,v 1.41 2009/05/25 09:23:26 brian Exp $
 .\"
 .Dd April 30, 2007
 .Dt FDISK 8
@@ -372,6 +372,31 @@
 for
 .Ar length
 sectors.
+If the
+.Ar start
+or
+.Ar length
+is suffixed with a
+.Em K ,
+.Em M
+or
+.Em G ,
+it is taken as a
+.Em Kilobyte ,
+.Em Megabyte
+or
+.Em Gigabyte
+measurement respectively.
+If the
+.Ar start
+is given as
+.Qq *
+it is set to the value of the previous partition end.
+If the
+.Ar length
+is given as
+.Qq *
+the partition end is set to the end of the disk.
 .Pp
 Only those slices explicitly mentioned by these lines are modified;
 any slice not referenced by a
@@ -421,6 +446,17 @@
 downwards to correspond to head and cylinder boundaries):
 .Pp
 .Dl "p       1       165     1       2503871"
+.Pp
+Example: to set slices 1, 2 and 4 to
+.Fx
+slices, the first being 2 Gigabytes, the second being 10 Gigabytes and the
+forth being the remainder of the disk (again, numbers will be rounded
+appropriately):
+.Pp
+.Dl "p       1       165     63      2G"
+.Dl "p       2       165     *       10G"
+.Dl "p       3       0       0       0"
+.Dl "p       4       165     *       *"
 .It Ic a Ar slice
 Make
 .Ar slice

==== //depot/projects/soc2008/trasz_nfs4acl/sbin/fdisk/fdisk.c#6 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/fdisk/fdisk.c,v 1.92 2009/01/14 22:05:51 luigi Exp $");
+__FBSDID("$FreeBSD: src/sbin/fdisk/fdisk.c,v 1.93 2009/05/25 09:23:26 brian Exp $");
 
 #include <sys/disk.h>
 #include <sys/disklabel.h>
@@ -49,6 +49,7 @@
 
 int iotest;
 
+#define NOSECTORS ((u_int32_t)-1)
 #define LBUF 100
 static char lbuf[LBUF];
 
@@ -106,6 +107,7 @@
     struct arg {
 	char	argtype;
 	int	arg_val;
+	char	*arg_str;
     }			args[MAX_ARGS];
 } CMD;
 
@@ -970,16 +972,23 @@
 	 */
 	    while (1) {
 	    while (isspace(*cp)) ++cp;
+	    if (*cp == '\0')
+		break;		/* eol */
 	    if (*cp == '#')
 		break;		/* found comment */
 	    if (isalpha(*cp))
 		command->args[command->n_args].argtype = *cp++;
-	    if (!isdigit(*cp))
-		break;		/* assume end of line */
 	    end = NULL;
 	    command->args[command->n_args].arg_val = strtol(cp, &end, 0);
-	    if (cp == end)
-		break;		/* couldn't parse number */
+ 	    if (cp == end || (!isspace(*end) && *end != '\0')) {
+ 		char ch;
+ 		end = cp;
+ 		while (!isspace(*end) && *end != '\0') ++end;
+ 		ch = *end; *end = '\0';
+ 		command->args[command->n_args].arg_str = strdup(cp);
+ 		*end = ch;
+ 	    } else
+ 		command->args[command->n_args].arg_str = NULL;
 	    cp = end;
 	    command->n_args++;
 	}
@@ -1078,6 +1087,33 @@
     return (status);
 }
 
+static u_int32_t
+str2sectors(const char *str)
+{
+	char *end;
+	unsigned long val;
+
+	val = strtoul(str, &end, 0);
+	if (str == end || *end == '\0') {
+		warnx("ERROR line %d: unexpected size: \'%s\'",
+		    current_line_number, str);
+		return NOSECTORS;
+	}
+
+	if (*end == 'K') 
+		val *= 1024UL / secsize;
+	else if (*end == 'M')
+		val *= 1024UL * 1024UL / secsize;
+	else if (*end == 'G')
+		val *= 1024UL * 1024UL * 1024UL / secsize;
+	else {
+		warnx("ERROR line %d: unexpected modifier: %c "
+		    "(not K/M/G)", current_line_number, *end);
+		return NOSECTORS;
+	}
+
+	return val;
+}
 
 static int
 process_partition(CMD *command)
@@ -1103,8 +1139,48 @@
 	partp = &mboot.parts[partition - 1];
 	bzero(partp, sizeof (*partp));
 	partp->dp_typ = command->args[1].arg_val;
-	partp->dp_start = command->args[2].arg_val;
-	partp->dp_size = command->args[3].arg_val;
+	if (command->args[2].arg_str != NULL) {
+		if (strcmp(command->args[2].arg_str, "*") == 0) {
+			int i;
+			partp->dp_start = dos_sectors;
+			for (i = 1; i < partition; i++) {
+    				struct dos_partition *prev_partp;
+				prev_partp = ((struct dos_partition *)
+				    &mboot.parts) + i - 1;
+				if (prev_partp->dp_typ != 0)
+					partp->dp_start = prev_partp->dp_start +
+					    prev_partp->dp_size;
+			}
+			if (partp->dp_start % dos_sectors != 0) {
+		    		prev_head_boundary = partp->dp_start /
+				    dos_sectors * dos_sectors;
+		    		partp->dp_start = prev_head_boundary +
+				    dos_sectors;
+			}
+		} else {
+			partp->dp_start = str2sectors(command->args[2].arg_str);
+			if (partp->dp_start == NOSECTORS)
+				break;
+		}
+	} else
+		partp->dp_start = command->args[2].arg_val;
+
+	if (command->args[3].arg_str != NULL) {
+		if (strcmp(command->args[3].arg_str, "*") == 0)
+			partp->dp_size = ((disksecs / dos_cylsecs) *
+			    dos_cylsecs) - partp->dp_start;
+		else {
+			partp->dp_size = str2sectors(command->args[3].arg_str);
+			if (partp->dp_size == NOSECTORS)
+				break;
+		}
+		prev_cyl_boundary = ((partp->dp_start + partp->dp_size) /
+		    dos_cylsecs) * dos_cylsecs;
+		if (prev_cyl_boundary > partp->dp_start)
+			partp->dp_size = prev_cyl_boundary - partp->dp_start;
+	} else
+		partp->dp_size = command->args[3].arg_val;
+
 	max_end = partp->dp_start + partp->dp_size;
 
 	if (partp->dp_typ == 0) {

==== //depot/projects/soc2008/trasz_nfs4acl/sbin/geom/class/journal/gjournal.8#5 (text+ko) ====

@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/sbin/geom/class/journal/gjournal.8,v 1.9 2009/04/29 10:02:50 trasz Exp $
+.\" $FreeBSD: src/sbin/geom/class/journal/gjournal.8,v 1.10 2009/05/25 09:52:58 maxim Exp $
 .\"
 .Dd February 17, 2009
 .Dt GJOURNAL 8
@@ -220,7 +220,7 @@
 .Bd -literal -offset indent
 umount /dev/da0s1d
 gjournal label da0s1d da0s1e && \e
-    tunefs -J enable -n disable da01sd.journal && \e
+    tunefs -J enable -n disable da0s1d.journal && \e
     mount -o async /dev/da0s1d.journal /mnt || \e
     mount /dev/da0s1d /mnt
 .Ed

==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/msk.4#2 (text+ko) ====

@@ -22,9 +22,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/msk.4,v 1.6 2007/12/05 09:41:58 remko Exp $
+.\" $FreeBSD: src/share/man/man4/msk.4,v 1.8 2009/05/25 08:27:52 yongari Exp $
 .\"
-.Dd December 5, 2007
+.Dd May 25, 2009
 .Dt MSK 4
 .Os
 .Sh NAME
@@ -176,13 +176,19 @@
 .It
 Marvell Yukon 88E8062 SX/LX Gigabit Ethernet
 .It
-Marvell Yukon 88E8035 Gigabit Ethernet
+Marvell Yukon 88E8035 Fast Ethernet
+.It
+Marvell Yukon 88E8036 Fast Ethernet
+.It
+Marvell Yukon 88E8038 Fast Ethernet
+.It
+Marvell Yukon 88E8039 Fast Ethernet
 .It
-Marvell Yukon 88E8036 Gigabit Ethernet
+Marvell Yukon 88E8040 Fast Ethernet
 .It
-Marvell Yukon 88E8038 Gigabit Ethernet
+Marvell Yukon 88E8040T Fast Ethernet
 .It
-Marvell Yukon 88E8039 Gigabit Ethernet
+Marvell Yukon 88E8048 Fast Ethernet
 .It
 Marvell Yukon 88E8050 Gigabit Ethernet
 .It
@@ -196,6 +202,8 @@
 .It
 Marvell Yukon 88E8058 Gigabit Ethernet
 .It
+Marvell Yukon 88E8070 Fast Ethernet
+.It
 SysKonnect SK-9Sxx Gigabit Ethernet
 .It
 SysKonnect SK-9Exx Gigabit Ethernet

==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_MOUNT.9#2 (text+ko) ====

@@ -26,9 +26,9 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/VFS_MOUNT.9,v 1.14 2005/01/07 10:57:33 keramida Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_MOUNT.9,v 1.15 2009/05/24 18:34:54 tmclaugh Exp $
 .\"
-.Dd January 7, 2005
+.Dd May 23, 2009
 .Os
 .Dt VFS_MOUNT 9
 .Sh NAME
@@ -39,7 +39,7 @@
 .In sys/mount.h
 .In sys/vnode.h
 .Ft int
-.Fn VFS_MOUNT "struct mount *mp" "struct thread *td"
+.Fn VFS_MOUNT "struct mount *mp"
 .Sh DESCRIPTION
 The
 .Fn VFS_MOUNT
@@ -50,8 +50,6 @@
 .Bl -tag -width data
 .It Fa mp
 Structure representing the file system.
-.It Fa td
-Thread which is mounting the file system.
 .El
 .Pp
 The

==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_QUOTACTL.9#2 (text+ko) ====

@@ -26,9 +26,9 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/VFS_QUOTACTL.9,v 1.10 2003/10/23 06:24:55 hmp Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_QUOTACTL.9,v 1.11 2009/05/24 18:34:54 tmclaugh Exp $
 .\"
-.Dd July 24, 1996
+.Dd May 23, 2009
 .Os
 .Dt VFS_QUOTACTL 9
 .Sh NAME
@@ -39,7 +39,7 @@
 .In sys/mount.h
 .In sys/vnode.h
 .Ft int
-.Fn VFS_QUOTACTL "struct mount *mp" "int cmds" "uid_t uid" "caddr_t arg" "struct thread *td"
+.Fn VFS_QUOTACTL "struct mount *mp" "int cmds" "uid_t uid" "caddr_t arg"
 .Sh DESCRIPTION
 Implement file system quotas.
 See

==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_ROOT.9#2 (text+ko) ====

@@ -26,9 +26,9 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/VFS_ROOT.9,v 1.12 2006/09/18 15:24:20 ru Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_ROOT.9,v 1.13 2009/05/24 18:34:54 tmclaugh Exp $
 .\"
-.Dd August 26, 2006
+.Dd May 23, 2009
 .Os
 .Dt VFS_ROOT 9
 .Sh NAME
@@ -39,7 +39,7 @@
 .In sys/mount.h
 .In sys/vnode.h
 .Ft int
-.Fn VFS_ROOT "struct mount *mp" "int flags" "struct vnode **vpp" "struct thread *td"
+.Fn VFS_ROOT "struct mount *mp" "int flags" "struct vnode **vpp"
 .Sh DESCRIPTION
 Return a locked vnode for the root directory of the file system.
 .Pp
@@ -58,8 +58,6 @@
 argument and instead acquire an exclusive lock.
 .It Fa vpp
 Return parameter for the root vnode.
-.It Fa td
-The calling thread.
 .El
 .Sh SEE ALSO
 .Xr VFS 9 ,

==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_STATFS.9#2 (text+ko) ====

@@ -26,9 +26,9 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/VFS_STATFS.9,v 1.12 2005/01/13 09:33:06 ru Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_STATFS.9,v 1.13 2009/05/24 18:34:54 tmclaugh Exp $
 .\"
-.Dd January 7, 2005
+.Dd May 23, 2009
 .Os
 .Dt VFS_STATFS 9
 .Sh NAME
@@ -39,7 +39,7 @@
 .In sys/mount.h
 .In sys/vnode.h
 .Ft int
-.Fn VFS_STATFS "struct mount *mp" "struct statfs *sbp" "struct thread *td"
+.Fn VFS_STATFS "struct mount *mp" "struct statfs *sbp"
 .Sh DESCRIPTION
 The
 .Fn VFS_STATFS
@@ -56,8 +56,6 @@
 structure, as defined by
 .In sys/mount.h ,
 into which information is placed about the file system.
-.It Fa td
-The thread which is querying the file system.
 .El
 .Pp
 The fields of

==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_SYNC.9#2 (text+ko) ====

@@ -26,9 +26,9 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/VFS_SYNC.9,v 1.16 2007/05/12 13:10:55 pav Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_SYNC.9,v 1.17 2009/05/24 18:34:54 tmclaugh Exp $
 .\"
-.Dd January 7, 2005
+.Dd May 23, 2009
 .Os
 .Dt VFS_SYNC 9
 .Sh NAME
@@ -39,7 +39,7 @@
 .In sys/mount.h
 .In sys/vnode.h
 .Ft int
-.Fn VFS_SYNC "struct mount *mp" "int waitfor" "struct thread *td"
+.Fn VFS_SYNC "struct mount *mp" "int waitfor"
 .Sh DESCRIPTION
 The
 .Fn VFS_SYNC
@@ -61,8 +61,6 @@
 .It Dv MNT_LAZY
 push data not written by file system syncer
 .El
-.It Fa td
-The calling thread.
 .El
 .Pp
 The

==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VFS_UNMOUNT.9#2 (text+ko) ====

@@ -26,9 +26,9 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/VFS_UNMOUNT.9,v 1.11 2005/01/07 11:45:11 keramida Exp $
+.\" $FreeBSD: src/share/man/man9/VFS_UNMOUNT.9,v 1.12 2009/05/24 18:34:54 tmclaugh Exp $
 .\"
-.Dd January 7, 2005
+.Dd May 23, 2009
 .Os
 .Dt VFS_UNMOUNT 9
 .Sh NAME
@@ -39,7 +39,7 @@
 .In sys/mount.h
 .In sys/vnode.h
 .Ft int
-.Fn VFS_UNMOUNT "struct mount *mp" "int mntflags" "struct thread *td"
+.Fn VFS_UNMOUNT "struct mount *mp" "int mntflags"
 .Sh DESCRIPTION
 The
 .Fn VFS_UNMOUNT
@@ -58,8 +58,6 @@
 .It Dv MNT_FORCE
 Open files are forcibly closed before the file system is unmounted.
 .El
-.It Fa td
-Thread which is unmounting the file system.
 .El
 .Sh SEE ALSO
 .Xr vflush 9 ,

==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/acl.9#7 (text+ko) ====

@@ -23,7 +23,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/acl.9,v 1.17 2009/05/24 09:42:53 trasz Exp $
+.\" $FreeBSD: src/share/man/man9/acl.9,v 1.19 2009/05/24 20:34:29 trasz Exp $
 .\"
 .Dd December 23, 1999
 .Os

==== //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c#8 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c,v 1.6 2008/11/23 20:14:19 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c,v 1.7 2009/05/24 19:21:49 trasz Exp $");
 
 #include <sys/param.h>
 #include <sys/priv.h>

==== //depot/projects/soc2008/trasz_nfs4acl/sys/compat/ndis/kern_ndis.c#5 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.103 2009/03/07 07:26:22 weongyo Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.104 2009/05/24 18:35:53 antoine Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -543,7 +543,7 @@
 
 	return;
 }
-int in_reset = 0;
+
 void
 ndis_free_packet(p)
 	ndis_packet		*p;

==== //depot/projects/soc2008/trasz_nfs4acl/sys/conf/files#39 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1402 2009/05/22 12:35:12 rwatson Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1403 2009/05/25 09:28:54 rwatson Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -2428,6 +2428,7 @@
 netipx/ipx_proto.c		optional ipx
 netipx/ipx_usrreq.c		optional ipx
 netipx/spx_debug.c		optional ipx
+netipx/spx_reass.c		optional ipx
 netipx/spx_usrreq.c		optional ipx
 netnatm/natm.c			optional natm
 netnatm/natm_pcb.c		optional natm

==== //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/e1000phy.c#5 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/mii/e1000phy.c,v 1.23 2008/10/17 05:26:51 yongari Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/mii/e1000phy.c,v 1.28 2009/05/25 02:36:29 yongari Exp $");
 
 /*
  * driver for the Marvell 88E1000 series external 1000/100/10-BT PHY.
@@ -107,6 +107,7 @@
 	MII_PHY_DESC(MARVELL, E1116),
 	MII_PHY_DESC(MARVELL, E1116R),
 	MII_PHY_DESC(MARVELL, E1118),
+	MII_PHY_DESC(MARVELL, E3016),
 	MII_PHY_DESC(xxMARVELL, E1000),
 	MII_PHY_DESC(xxMARVELL, E1011),
 	MII_PHY_DESC(xxMARVELL, E1000_3),
@@ -129,7 +130,6 @@
 	struct mii_softc *sc;
 	struct mii_attach_args *ma;
 	struct mii_data *mii;
-	int fast_ether;
 
 	esc = device_get_softc(dev);
 	sc = &esc->mii_sc;
@@ -142,10 +142,8 @@
 	sc->mii_phy = ma->mii_phyno;
 	sc->mii_service = e1000phy_service;
 	sc->mii_pdata = mii;
-	sc->mii_anegticks = MII_ANEGTICKS_GIGE;
 	mii->mii_instance++;
 
-	fast_ether = 0;
 	esc->mii_model = MII_MODEL(ma->mii_id2);
 	switch (esc->mii_model) {
 	case MII_MODEL_MARVELL_E1011:
@@ -167,54 +165,16 @@
 		 */
 		PHY_WRITE(sc, E1000_EADR, 0);
 		break;
-	case MII_MODEL_MARVELL_E3082:
-		/* 88E3082 10/100 Fast Ethernet PHY. */
-		sc->mii_anegticks = MII_ANEGTICKS;
-		fast_ether = 1;
-		break;
 	}
 
 	e1000phy_reset(sc);
 
+	sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
+	if (sc->mii_capabilities & BMSR_EXTSTAT)
+		sc->mii_extcapabilities = PHY_READ(sc, MII_EXTSR);
 	device_printf(dev, " ");
-
-#define	ADD(m, c)	ifmedia_add(&mii->mii_media, (m), (c), NULL)
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst),
-	    E1000_CR_ISOLATE);
-	if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) {
-		ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, 0, sc->mii_inst),
-		    E1000_CR_SPEED_10);
-		printf("10baseT, ");
-		ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, IFM_FDX, sc->mii_inst),
-		    E1000_CR_SPEED_10 | E1000_CR_FULL_DUPLEX);
-		printf("10baseT-FDX, ");
-		ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, 0, sc->mii_inst),
-		    E1000_CR_SPEED_100);
-		printf("100baseTX, ");
-		ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_FDX, sc->mii_inst),
-		    E1000_CR_SPEED_100 | E1000_CR_FULL_DUPLEX);
-		printf("100baseTX-FDX, ");
-		if (fast_ether == 0) {
-			/*
-			 * 1000BT-simplex not supported; driver must ignore
-			 * this entry, but it must be present in order to
-			 * manually set full-duplex.
-			 */
-			ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, 0,
-			    sc->mii_inst), E1000_CR_SPEED_1000);
-			ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, IFM_FDX,
-			    sc->mii_inst),
-			    E1000_CR_SPEED_1000 | E1000_CR_FULL_DUPLEX);
-			printf("1000baseTX-FDX, ");
-		}
-	} else {
-		ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_SX, IFM_FDX, sc->mii_inst),
-		    E1000_CR_SPEED_1000 | E1000_CR_FULL_DUPLEX);
-		printf("1000baseSX-FDX, ");
-	}
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_AUTO, 0, sc->mii_inst), 0);
-	printf("auto\n");
-#undef ADD
+	mii_phy_add_media(sc);
+	printf("\n");
 
 	MIIBUS_MEDIAINIT(sc->mii_dev);
 	return (0);
@@ -253,18 +213,29 @@
 			reg |= E1000_SCR_AUTO_X_MODE;
 			if (esc->mii_model == MII_MODEL_MARVELL_E1116)
 				reg &= ~E1000_SCR_POWER_DOWN;
+			reg |= E1000_SCR_ASSERT_CRS_ON_TX;
 			break;
 		case MII_MODEL_MARVELL_E3082:
 			reg |= (E1000_SCR_AUTO_X_MODE >> 1);
+			reg |= E1000_SCR_ASSERT_CRS_ON_TX;
+			break;
+		case MII_MODEL_MARVELL_E3016:
+			reg |= E1000_SCR_AUTO_MDIX;
+			reg &= ~(E1000_SCR_EN_DETECT |
+			    E1000_SCR_SCRAMBLER_DISABLE);
+			reg |= E1000_SCR_LPNP;
+			/* XXX Enable class A driver for Yukon FE+ A0. */
+			PHY_WRITE(sc, 0x1C, PHY_READ(sc, 0x1C) | 0x0001);
 			break;
 		default:
 			reg &= ~E1000_SCR_AUTO_X_MODE;
+			reg |= E1000_SCR_ASSERT_CRS_ON_TX;
 			break;
 		}
-		/* Enable CRS on TX. */
-		reg |= E1000_SCR_ASSERT_CRS_ON_TX;
-		/* Auto correction for reversed cable polarity. */
-		reg &= ~E1000_SCR_POLARITY_REVERSAL;
+		if (esc->mii_model != MII_MODEL_MARVELL_E3016) {
+			/* Auto correction for reversed cable polarity. */
+			reg &= ~E1000_SCR_POLARITY_REVERSAL;
+		}
 		PHY_WRITE(sc, E1000_SCR, reg);
 
 		if (esc->mii_model == MII_MODEL_MARVELL_E1116) {
@@ -283,6 +254,13 @@
 	case MII_MODEL_MARVELL_E1118:
 	case MII_MODEL_MARVELL_E1149:
 		break;
+	case MII_MODEL_MARVELL_E3016:
+		/* LED2 -> ACT, LED1 -> LINK, LED0 -> SPEED. */
+		PHY_WRITE(sc, 0x16, 0x0B << 8 | 0x05 << 4 | 0x04);
+		/* Integrated register calibration workaround. */
+		PHY_WRITE(sc, 0x1D, 17);
+		PHY_WRITE(sc, 0x1E, 0x3F60);
+		break;
 	default:
 		/* Force TX_CLK to 25MHz clock. */
 		reg = PHY_READ(sc, E1000_ESCR);
@@ -339,12 +317,14 @@
 		speed = 0;
 		switch (IFM_SUBTYPE(ife->ifm_media)) {
 		case IFM_1000_T:
-			if (esc->mii_model == MII_MODEL_MARVELL_E3082)
+			if ((sc->mii_extcapabilities &
+			    (EXTSR_1000TFDX | EXTSR_1000THDX)) == 0)
 				return (EINVAL);
 			speed = E1000_CR_SPEED_1000;
 			break;
 		case IFM_1000_SX:
-			if (esc->mii_model == MII_MODEL_MARVELL_E3082)
+			if ((sc->mii_extcapabilities &
+			    (EXTSR_1000XFDX | EXTSR_1000XHDX)) == 0)
 				return (EINVAL);
 			speed = E1000_CR_SPEED_1000;
 			break;
@@ -390,7 +370,8 @@
 				PHY_WRITE(sc, E1000_1GCR, gig |
 				    E1000_1GCR_MS_ENABLE);
 		} else {
-			if (esc->mii_model != MII_MODEL_MARVELL_E3082)
+			if ((sc->mii_extcapabilities &
+			    (EXTSR_1000TFDX | EXTSR_1000THDX)) != 0)
 				PHY_WRITE(sc, E1000_1GCR, 0);
 		}
 		PHY_WRITE(sc, E1000_AR, E1000_AR_SELECTOR_FIELD);
@@ -432,7 +413,7 @@
 		if (sc->mii_ticks++ == 0)
 			break;
 		if (sc->mii_ticks <= sc->mii_anegticks)
-			return (0);
+			break;
 
 		sc->mii_ticks = 0;
 		e1000phy_reset(sc);
@@ -452,18 +433,14 @@
 e1000phy_status(struct mii_softc *sc)
 {
 	struct mii_data *mii = sc->mii_pdata;
-	int bmsr, bmcr, esr, gsr, ssr, isr, ar, lpar;
+	int bmcr, bmsr, gsr, ssr, ar, lpar;
 
 	mii->mii_media_status = IFM_AVALID;
 	mii->mii_media_active = IFM_ETHER;
 
 	bmsr = PHY_READ(sc, E1000_SR) | PHY_READ(sc, E1000_SR);
-	esr = PHY_READ(sc, E1000_ESR);
 	bmcr = PHY_READ(sc, E1000_CR);
 	ssr = PHY_READ(sc, E1000_SSR);
-	isr = PHY_READ(sc, E1000_ISR);
-	ar = PHY_READ(sc, E1000_AR);
-	lpar = PHY_READ(sc, E1000_LPAR);
 
 	if (bmsr & E1000_SR_LINK_STATUS)
 		mii->mii_media_status |= IFM_ACTIVE;
@@ -471,22 +448,28 @@
 	if (bmcr & E1000_CR_LOOPBACK)
 		mii->mii_media_active |= IFM_LOOP;
 
-	if ((((bmcr & E1000_CR_AUTO_NEG_ENABLE) != 0) &&
-	    ((bmsr & E1000_SR_AUTO_NEG_COMPLETE) == 0)) ||
-	    ((ssr & E1000_SSR_LINK) == 0) ||
-	    ((ssr & E1000_SSR_SPD_DPLX_RESOLVED) == 0)) {
+	if ((bmcr & E1000_CR_AUTO_NEG_ENABLE) != 0 &&
+	    (ssr & E1000_SSR_SPD_DPLX_RESOLVED) == 0) {
 		/* Erg, still trying, I guess... */
 		mii->mii_media_active |= IFM_NONE;
 		return;
 	}
 
 	if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) {
-		if (ssr & E1000_SSR_1000MBS)
+		switch (ssr & E1000_SSR_SPEED) {
+		case E1000_SSR_1000MBS:
 			mii->mii_media_active |= IFM_1000_T;
-		else if (ssr & E1000_SSR_100MBS)
+			break;
+		case E1000_SSR_100MBS:
 			mii->mii_media_active |= IFM_100_TX;
-		else
+			break;
+		case E1000_SSR_10MBS:
 			mii->mii_media_active |= IFM_10_T;
+			break;
+		default:
+			mii->mii_media_active |= IFM_NONE;
+			return;
+		}
 	} else {
 		if (ssr & E1000_SSR_1000MBS)
 			mii->mii_media_active |= IFM_1000_SX;
@@ -498,6 +481,8 @@
 		mii->mii_media_active |= IFM_HDX;
 
 	if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) {
+		ar = PHY_READ(sc, E1000_AR);
+		lpar = PHY_READ(sc, E1000_LPAR);
 		/* FLAG0==rx-flow-control FLAG1==tx-flow-control */
 		if ((ar & E1000_AR_PAUSE) && (lpar & E1000_LPAR_PAUSE)) {
 			mii->mii_media_active |= IFM_FLAG0 | IFM_FLAG1;
@@ -524,16 +509,19 @@
 e1000phy_mii_phy_auto(struct e1000phy_softc *esc)
 {
 	struct mii_softc *sc;
+	uint16_t reg;
 
 	sc = &esc->mii_sc;
-	if ((sc->mii_flags & MIIF_HAVEFIBER) == 0)
-		PHY_WRITE(sc, E1000_AR, E1000_AR_10T | E1000_AR_10T_FD |
+	if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) {
+		reg = PHY_READ(sc, E1000_AR);
+		reg |= E1000_AR_10T | E1000_AR_10T_FD |
 		    E1000_AR_100TX | E1000_AR_100TX_FD |
-		    E1000_AR_PAUSE | E1000_AR_ASM_DIR);
-	else
+		    E1000_AR_PAUSE | E1000_AR_ASM_DIR;
+		PHY_WRITE(sc, E1000_AR, reg | E1000_AR_SELECTOR_FIELD);
+	} else
 		PHY_WRITE(sc, E1000_AR, E1000_FA_1000X_FD | E1000_FA_1000X |
 		    E1000_FA_SYM_PAUSE | E1000_FA_ASYM_PAUSE);
-	if (esc->mii_model != MII_MODEL_MARVELL_E3082)
+	if ((sc->mii_extcapabilities & (EXTSR_1000TFDX | EXTSR_1000THDX)) != 0)
 		PHY_WRITE(sc, E1000_1GCR,
 		    E1000_1GCR_1000T_FD | E1000_1GCR_1000T);
 	PHY_WRITE(sc, E1000_CR,

==== //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/e1000phyreg.h#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/mii/e1000phyreg.h,v 1.5 2007/10/29 05:50:22 yongari Exp $ */
+/* $FreeBSD: src/sys/dev/mii/e1000phyreg.h,v 1.6 2009/05/25 02:36:29 yongari Exp $ */
 /*-
  * Principal Author: Parag Patel
  * Copyright (c) 2001
@@ -236,6 +236,16 @@
 #define E1000_SCR_TX_FIFO_DEPTH_10	0x8000
 #define E1000_SCR_TX_FIFO_DEPTH_12	0xC000
 
+/* 88E3016 only */
+#define	E1000_SCR_AUTO_MDIX		0x0030
+#define	E1000_SCR_SIGDET_POLARITY	0x0040
+#define	E1000_SCR_EXT_DISTANCE		0x0080
+#define	E1000_SCR_FEFI_DISABLE		0x0100
+#define	E1000_SCR_NLP_GEN_DISABLE	0x0800
+#define	E1000_SCR_LPNP			0x1000
+#define	E1000_SCR_NLP_CHK_DISABLE	0x2000
+#define	E1000_SCR_EN_DETECT		0x4000
+
 #define E1000_SCR_EN_DETECT_MASK	0x0300
 
 /* 88E1112 page 2 */

==== //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/miidevs#8 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/dev/mii/miidevs,v 1.63 2009/03/30 01:47:32 imp Exp $
+$FreeBSD: src/sys/dev/mii/miidevs,v 1.64 2009/05/25 02:36:29 yongari Exp $
 /*$NetBSD: miidevs,v 1.6 1999/05/14 11:37:30 drochner Exp $*/
 
 /*-
@@ -247,6 +247,7 @@
 model MARVELL E1116		0x0021 Marvell 88E1116 Gigabit PHY
 model MARVELL E1116R		0x0024 Marvell 88E1116R Gigabit PHY
 model MARVELL E1118		0x0022 Marvell 88E1118 Gigabit PHY
+model MARVELL E3016		0x0026 Marvell 88E3016 10/100 Fast Ethernet PHY
 model xxMARVELL E1000		0x0005 Marvell 88E1000 Gigabit PHY
 model xxMARVELL E1011		0x0002 Marvell 88E1011 Gigabit PHY
 model xxMARVELL E1000_3		0x0003 Marvell 88E1000 Gigabit PHY

==== //depot/projects/soc2008/trasz_nfs4acl/sys/dev/msk/if_msk.c#8 (text+ko) ====

@@ -99,7 +99,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/msk/if_msk.c,v 1.40 2009/03/25 07:05:23 yongari Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/msk/if_msk.c,v 1.59 2009/05/25 08:26:39 yongari Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -190,13 +190,21 @@
 	{ VENDORID_MARVELL, DEVICEID_MRVL_8062X,
 	    "Marvell Yukon 88E8062 SX/LX Gigabit Ethernet" },
 	{ VENDORID_MARVELL, DEVICEID_MRVL_8035,
-	    "Marvell Yukon 88E8035 Gigabit Ethernet" },
+	    "Marvell Yukon 88E8035 Fast Ethernet" },
 	{ VENDORID_MARVELL, DEVICEID_MRVL_8036,
-	    "Marvell Yukon 88E8036 Gigabit Ethernet" },
+	    "Marvell Yukon 88E8036 Fast Ethernet" },
 	{ VENDORID_MARVELL, DEVICEID_MRVL_8038,
-	    "Marvell Yukon 88E8038 Gigabit Ethernet" },
+	    "Marvell Yukon 88E8038 Fast Ethernet" },
 	{ VENDORID_MARVELL, DEVICEID_MRVL_8039,
-	    "Marvell Yukon 88E8039 Gigabit Ethernet" },
+	    "Marvell Yukon 88E8039 Fast Ethernet" },
+	{ VENDORID_MARVELL, DEVICEID_MRVL_8040,
+	    "Marvell Yukon 88E8040 Fast Ethernet" },
+	{ VENDORID_MARVELL, DEVICEID_MRVL_8040T,
+	    "Marvell Yukon 88E8040T Fast Ethernet" },
+	{ VENDORID_MARVELL, DEVICEID_MRVL_8048,
+	    "Marvell Yukon 88E8048 Fast Ethernet" },
+	{ VENDORID_MARVELL, DEVICEID_MRVL_8070,
+	    "Marvell Yukon 88E8070 Fast Ethernet" },
 	{ VENDORID_MARVELL, DEVICEID_MRVL_4361,
 	    "Marvell Yukon 88E8050 Gigabit Ethernet" },
 	{ VENDORID_MARVELL, DEVICEID_MRVL_4360,
@@ -220,7 +228,8 @@
         "Yukon EC Ultra",
         "Yukon Unknown",
         "Yukon EC",
-        "Yukon FE"
+        "Yukon FE",
+        "Yukon FE+"
 };
 
 static int mskc_probe(device_t);
@@ -285,7 +294,6 @@
 static int msk_miibus_readreg(device_t, int, int);
 static int msk_miibus_writereg(device_t, int, int, int);
 static void msk_miibus_statchg(device_t);
-static void msk_link_task(void *, int);
 
 static void msk_rxfilter(struct msk_if_softc *);
 static void msk_setvlan(struct msk_if_softc *, struct ifnet *);
@@ -459,40 +467,44 @@
 static void
 msk_miibus_statchg(device_t dev)
 {
-	struct msk_if_softc *sc_if;
-
-	sc_if = device_get_softc(dev);
-	taskqueue_enqueue(taskqueue_swi, &sc_if->msk_link_task);
-}
-
-static void
-msk_link_task(void *arg, int pending)
-{
 	struct msk_softc *sc;
 	struct msk_if_softc *sc_if;
 	struct mii_data *mii;
 	struct ifnet *ifp;
 	uint32_t gmac;
 
-	sc_if = (struct msk_if_softc *)arg;
+	sc_if = device_get_softc(dev);
 	sc = sc_if->msk_softc;
 
-	MSK_IF_LOCK(sc_if);
+	MSK_IF_LOCK_ASSERT(sc_if);
 
 	mii = device_get_softc(sc_if->msk_miibus);
 	ifp = sc_if->msk_ifp;
-	if (mii == NULL || ifp == NULL) {
-		MSK_IF_UNLOCK(sc_if);
+	if (mii == NULL || ifp == NULL ||
+	    (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
 		return;
+
+	sc_if->msk_flags &= ~MSK_FLAG_LINK;
+	if ((mii->mii_media_status & (IFM_AVALID | IFM_ACTIVE)) ==
+	    (IFM_AVALID | IFM_ACTIVE)) {
+		switch (IFM_SUBTYPE(mii->mii_media_active)) {
+		case IFM_10_T:
+		case IFM_100_TX:
+			sc_if->msk_flags |= MSK_FLAG_LINK;
+			break;
+		case IFM_1000_T:
+		case IFM_1000_SX:
+		case IFM_1000_LX:
+		case IFM_1000_CX:
+			if ((sc_if->msk_flags & MSK_FLAG_FASTETHER) == 0)
+				sc_if->msk_flags |= MSK_FLAG_LINK;
+			break;
+		default:
+			break;
+		}
 	}
 
-	if (mii->mii_media_status & IFM_ACTIVE) {
-		if (IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE)
-			sc_if->msk_link = 1;
-	} else
-		sc_if->msk_link = 0;
-
-	if (sc_if->msk_link != 0) {
+	if ((sc_if->msk_flags & MSK_FLAG_LINK) != 0) {
 		/* Enable Tx FIFO Underrun. */

>>> TRUNCATED FOR MAIL (1000 lines) <<<



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