svn commit: r206685 - in user/imp/tbemd: contrib/netcat etc/mtree lib/libc/sys sbin/geom/misc sbin/hastd sbin/ifconfig share/man/man4 sys/cam/scsi sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys...

Warner Losh imp at FreeBSD.org
Thu Apr 15 20:48:58 UTC 2010


Author: imp
Date: Thu Apr 15 20:48:57 2010
New Revision: 206685
URL: http://svn.freebsd.org/changeset/base/206685

Log:
  svn merge svn+ssh://svn.freebsd.org/base/head@206684

Added:
  user/imp/tbemd/share/man/man4/sge.4
     - copied unchanged from r206684, head/share/man/man4/sge.4
Modified:
  user/imp/tbemd/contrib/netcat/nc.1
  user/imp/tbemd/contrib/netcat/netcat.c
  user/imp/tbemd/etc/mtree/BSD.include.dist
  user/imp/tbemd/lib/libc/sys/sigaction.2
  user/imp/tbemd/sbin/geom/misc/subr.c
  user/imp/tbemd/sbin/hastd/primary.c
  user/imp/tbemd/sbin/ifconfig/ifconfig.c
  user/imp/tbemd/share/man/man4/Makefile
  user/imp/tbemd/share/man/man4/altq.4
  user/imp/tbemd/share/man/man4/ktr.4
  user/imp/tbemd/share/man/man4/miibus.4
  user/imp/tbemd/share/man/man4/netintro.4
  user/imp/tbemd/share/man/man4/vlan.4
  user/imp/tbemd/sys/cam/scsi/scsi_cd.c
  user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
  user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
  user/imp/tbemd/sys/ddb/db_sym.c
  user/imp/tbemd/sys/dev/e1000/if_em.c
  user/imp/tbemd/sys/dev/e1000/if_igb.c
  user/imp/tbemd/sys/dev/hwpmc/hwpmc_core.c
  user/imp/tbemd/sys/dev/hwpmc/pmc_events.h
  user/imp/tbemd/sys/dev/mxge/if_mxge.c
  user/imp/tbemd/sys/dev/mxge/if_mxge_var.h
  user/imp/tbemd/sys/dev/sge/if_sge.c
  user/imp/tbemd/sys/dev/siis/siis.c
  user/imp/tbemd/sys/dev/usb/input/ukbd.c
  user/imp/tbemd/sys/geom/eli/g_eli.c
  user/imp/tbemd/sys/geom/geom_io.c
  user/imp/tbemd/sys/kern/kern_ktr.c
  user/imp/tbemd/sys/kern/vfs_cache.c
  user/imp/tbemd/sys/net/if.c
  user/imp/tbemd/sys/net/vnet.c
  user/imp/tbemd/sys/net/vnet.h
  user/imp/tbemd/sys/netipsec/key.c
  user/imp/tbemd/usr.sbin/config/config.h
  user/imp/tbemd/usr.sbin/config/mkoptions.c
  user/imp/tbemd/usr.sbin/pmcstat/pmcpl_callgraph.c
  user/imp/tbemd/usr.sbin/pmcstat/pmcpl_gprof.c
  user/imp/tbemd/usr.sbin/pmcstat/pmcstat_log.c
  user/imp/tbemd/usr.sbin/sysinstall/devices.c
Directory Properties:
  user/imp/tbemd/   (props changed)
  user/imp/tbemd/contrib/tzcode/stdtime/   (props changed)
  user/imp/tbemd/contrib/tzcode/zic/   (props changed)
  user/imp/tbemd/contrib/tzdata/   (props changed)
  user/imp/tbemd/lib/libz/   (props changed)
  user/imp/tbemd/sys/contrib/x86emu/   (props changed)

Modified: user/imp/tbemd/contrib/netcat/nc.1
==============================================================================
--- user/imp/tbemd/contrib/netcat/nc.1	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/contrib/netcat/nc.1	Thu Apr 15 20:48:57 2010	(r206685)
@@ -27,7 +27,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd February 23, 2010
+.Dd April 15, 2010
 .Dt NC 1
 .Os
 .Sh NAME
@@ -36,7 +36,7 @@
 .Sh SYNOPSIS
 .Nm nc
 .Bk -words
-.Op Fl 46DdEhklnorStUuvz
+.Op Fl 46DdEhklnrStUuvz
 .Op Fl e Ar IPsec_policy
 .Op Fl I Ar length
 .Op Fl i Ar interval
@@ -159,15 +159,6 @@ socket option.
 .It Fl O Ar length
 Specifies the size of the TCP send buffer.
 When
-.It Fl o
-.Dq Once-only mode .
-By default,
-.Nm
-does not terminate on EOF condition on input,
-but continues until the network side has been closed down.
-Specifying
-.Fl o
-will make it terminate on EOF as well.
 .It Fl P Ar proxy_username
 Specifies a username to present to a proxy server that requires authentication.
 If no username is specified then authentication will not be attempted.

Modified: user/imp/tbemd/contrib/netcat/netcat.c
==============================================================================
--- user/imp/tbemd/contrib/netcat/netcat.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/contrib/netcat/netcat.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -72,14 +72,12 @@
 #define PORT_MAX_LEN	6
 
 /* Command Line Options */
-int	Eflag;					/* Use IPsec ESP */
 int	dflag;					/* detached, no stdin */
 unsigned int iflag;				/* Interval Flag */
 int	jflag;					/* use jumbo frames if we can */
 int	kflag;					/* More than one connect */
 int	lflag;					/* Bind to local port */
 int	nflag;					/* Don't do name look up */
-int	oflag;					/* Once only: stop on EOF */
 int	FreeBSD_Oflag;				/* Do not use TCP options */
 char   *Pflag;					/* Proxy username */
 char   *pflag;					/* Localport flag */
@@ -151,7 +149,7 @@ main(int argc, char *argv[])
 	sv = NULL;
 
 	while ((ch = getopt_long(argc, argv,
-	    "46DdEe:hI:i:jklnO:oP:p:rSs:tT:UuV:vw:X:x:z",
+	    "46DdEe:hI:i:jklnoO:P:p:rSs:tT:UuV:vw:X:x:z",
 	    longopts, NULL)) != -1) {
 		switch (ch) {
 		case '4':
@@ -214,7 +212,7 @@ main(int argc, char *argv[])
 			nflag = 1;
 			break;
 		case 'o':
-			oflag = 1;
+			fprintf(stderr, "option -o is deprecated.\n");
 			break;
 		case 'P':
 			Pflag = optarg;
@@ -282,8 +280,6 @@ main(int argc, char *argv[])
 		case 'T':
 			Tflag = parse_iptos(optarg);
 			break;
-		case 0:
-			break;
 		default:
 			usage(1);
 		}
@@ -729,10 +725,9 @@ readwrite(int nfd)
 		}
 
 		if (!dflag && pfd[1].revents & POLLIN) {
-			if ((n = read(wfd, buf, plen)) < 0 ||
-			    (oflag && n == 0)) {
+			if ((n = read(wfd, buf, plen)) < 0)
 				return;
-			} else if (n == 0) {
+			else if (n == 0) {
 				shutdown(nfd, SHUT_WR);
 				pfd[1].fd = -1;
 				pfd[1].events = 0;
@@ -945,7 +940,6 @@ help(void)
 	\t-n		Suppress name/port resolutions\n\
 	\t--no-tcpopt	Disable TCP options\n\
 	\t-O length	TCP send buffer length\n\
-	\t-o		Terminate on EOF on input\n\
 	\t-P proxyuser\tUsername for proxy authentication\n\
 	\t-p port\t	Specify local port for remote connects\n\
 	\t-r		Randomize remote ports\n\
@@ -995,9 +989,9 @@ usage(int ret)
 {
 	fprintf(stderr,
 #ifdef IPSEC
-	    "usage: nc [-46DdEhklnorStUuvz] [-e policy] [-I length] [-i interval] [-O length]\n"
+	    "usage: nc [-46DdEhklnrStUuvz] [-e policy] [-I length] [-i interval] [-O length]\n"
 #else
-	    "usage: nc [-46DdhklnorStUuvz] [-I length] [-i interval] [-O length]\n"
+	    "usage: nc [-46DdhklnrStUuvz] [-I length] [-i interval] [-O length]\n"
 #endif
 	    "\t  [-P proxy_username] [-p source_port] [-s source_ip_address] [-T ToS]\n"
 	    "\t  [-V fib] [-w timeout] [-X proxy_protocol]\n"

Modified: user/imp/tbemd/etc/mtree/BSD.include.dist
==============================================================================
--- user/imp/tbemd/etc/mtree/BSD.include.dist	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/etc/mtree/BSD.include.dist	Thu Apr 15 20:48:57 2010	(r206685)
@@ -104,8 +104,8 @@
         ..
         lmc
         ..
-	mfi
-	..
+        mfi
+        ..
         mpt
             mpilib
             ..

Modified: user/imp/tbemd/lib/libc/sys/sigaction.2
==============================================================================
--- user/imp/tbemd/lib/libc/sys/sigaction.2	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/lib/libc/sys/sigaction.2	Thu Apr 15 20:48:57 2010	(r206685)
@@ -496,6 +496,16 @@ or
 .Dv SIG_IGN
 this way.
 .Pp
+If preprocessing symbol
+.Va _POSIX_C_SOURCE
+with the value >= 199309 is not defined, the following declaration for
+the handler shall be used:
+.Bl -tag -offset indent -width short
+.It Tn POSIX Dv SA_SIGINFO :
+.Ft void
+.Fn handler int "struct __sigaction *" "void *" ;
+.El
+.Pp
 If the
 .Dv SA_SIGINFO
 flag is not set, the handler function should match

Modified: user/imp/tbemd/sbin/geom/misc/subr.c
==============================================================================
--- user/imp/tbemd/sbin/geom/misc/subr.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sbin/geom/misc/subr.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -236,6 +236,7 @@ g_metadata_store(const char *name, u_cha
 		error = errno;
 		goto out;
 	}
+	(void)ioctl(fd, DIOCGFLUSH, NULL);
 out:
 	if (sector != NULL)
 		free(sector);
@@ -293,6 +294,7 @@ g_metadata_clear(const char *name, const
 		error = errno;
 		goto out;
 	}
+	(void)ioctl(fd, DIOCGFLUSH, NULL);
 out:
 	if (sector != NULL)
 		free(sector);

Modified: user/imp/tbemd/sbin/hastd/primary.c
==============================================================================
--- user/imp/tbemd/sbin/hastd/primary.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sbin/hastd/primary.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -682,7 +682,7 @@ init_ggate(struct hast_resource *res)
 	ggiocreate.gctl_mediasize = res->hr_datasize;
 	ggiocreate.gctl_sectorsize = res->hr_local_sectorsize;
 	ggiocreate.gctl_flags = 0;
-	ggiocreate.gctl_maxcount = 128;
+	ggiocreate.gctl_maxcount = G_GATE_MAX_QUEUE_SIZE;
 	ggiocreate.gctl_timeout = 0;
 	ggiocreate.gctl_unit = G_GATE_NAME_GIVEN;
 	snprintf(ggiocreate.gctl_name, sizeof(ggiocreate.gctl_name), "hast/%s",

Modified: user/imp/tbemd/sbin/ifconfig/ifconfig.c
==============================================================================
--- user/imp/tbemd/sbin/ifconfig/ifconfig.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sbin/ifconfig/ifconfig.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -922,19 +922,20 @@ status(const struct afswtch *afp, const 
 			ifr.ifr_buffer.buffer = descr;
 			ifr.ifr_buffer.length = descrlen;
 			if (ioctl(s, SIOCGIFDESCR, &ifr) == 0) {
-				if (strlen(descr) > 0)
-					printf("\tdescription: %s\n", descr);
-				break;
-			} else if (errno == ENAMETOOLONG)
-				descrlen = ifr.ifr_buffer.length;
-			else
-				break;
-		} else {
+				if (ifr.ifr_buffer.buffer == descr) {
+					if (strlen(descr) > 0)
+						printf("\tdescription: %s\n",
+						    descr);
+				} else if (ifr.ifr_buffer.length > descrlen) {
+					descrlen = ifr.ifr_buffer.length;
+					continue;
+				}
+			}
+		} else
 			warn("unable to allocate memory for interface"
 			    "description");
-			break;
-		}
-	};
+		break;
+	}
 
 	if (ioctl(s, SIOCGIFCAP, (caddr_t)&ifr) == 0) {
 		if (ifr.ifr_curcap != 0) {

Modified: user/imp/tbemd/share/man/man4/Makefile
==============================================================================
--- user/imp/tbemd/share/man/man4/Makefile	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/share/man/man4/Makefile	Thu Apr 15 20:48:57 2010	(r206685)
@@ -350,6 +350,7 @@ MAN=	aac.4 \
 	sem.4 \
 	ses.4 \
 	sf.4 \
+	sge.4 \
 	si.4 \
 	siba.4 \
 	sio.4 \

Modified: user/imp/tbemd/share/man/man4/altq.4
==============================================================================
--- user/imp/tbemd/share/man/man4/altq.4	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/share/man/man4/altq.4	Thu Apr 15 20:48:57 2010	(r206685)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd July 26, 2009
+.Dd April 14, 2010
 .Dt ALTQ 4
 .Os
 .Sh NAME
@@ -151,6 +151,7 @@ They have been applied to the following 
 .Xr rl 4 ,
 .Xr rum 4 ,
 .Xr sf 4 ,
+.Xr sge 4 ,
 .Xr sis 4 ,
 .Xr sk 4 ,
 .Xr ste 4 ,

Modified: user/imp/tbemd/share/man/man4/ktr.4
==============================================================================
--- user/imp/tbemd/share/man/man4/ktr.4	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/share/man/man4/ktr.4	Thu Apr 15 20:48:57 2010	(r206685)
@@ -122,7 +122,7 @@ option sets the flag to one.
 The KTR buffer can be examined from within
 .Xr ddb 4
 via the
-.Ic show ktr Op Cm /v
+.Ic show ktr Op Cm /vV
 command.
 This command displays the contents of the trace buffer one page at a time.
 At the
@@ -136,6 +136,10 @@ If the
 .Cm /v
 modifier is specified, then they are displayed in addition to the normal
 output.
+If the
+.Cm /V
+modifier is specified, then just the timestamp is displayed in
+addition to the normal output.
 Note that the events are displayed in reverse chronological order.
 That is, the most recent events are displayed first.
 .Ss Logging ktr to Disk
@@ -167,7 +171,9 @@ the next invocation.
 enables logging of
 .Nm
 entries to disk if it is set to one.
-Setting this to 0 will terminate logging.
+Setting this to 0 will terminate logging to disk and revert to 
+logging to the normal ktr ring buffer.
+Data is not sent to the ring buffer while logging to disk.
 .It Va debug.ktr.alq_max
 is the maximum number of entries that will be recorded to disk, or 0 for
 infinite.

Modified: user/imp/tbemd/share/man/man4/miibus.4
==============================================================================
--- user/imp/tbemd/share/man/man4/miibus.4	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/share/man/man4/miibus.4	Thu Apr 15 20:48:57 2010	(r206685)
@@ -8,7 +8,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd June 14, 2009
+.Dd April 14, 2010
 .Dt MIIBUS 4
 .Os
 .Sh NAME
@@ -97,6 +97,8 @@ RealTek 8129/8139
 RealTek RTL8150 USB To Fast Ethernet
 .It Xr sf 4
 Adaptec AIC-6915
+.It Xr sge 4
+Silicon Integrated Systems SiS190/191 Ethernet
 .It Xr sis 4
 Silicon Integrated Systems SiS 900/SiS 7016
 .It Xr sk 4
@@ -158,6 +160,7 @@ but as a result are not well behaved new
 .Xr rl 4 ,
 .Xr rue 4 ,
 .Xr sf 4 ,
+.Xr sge 4 ,
 .Xr sis 4 ,
 .Xr sk 4 ,
 .Xr ste 4 ,

Modified: user/imp/tbemd/share/man/man4/netintro.4
==============================================================================
--- user/imp/tbemd/share/man/man4/netintro.4	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/share/man/man4/netintro.4	Thu Apr 15 20:48:57 2010	(r206685)
@@ -32,7 +32,7 @@
 .\"     @(#)netintro.4	8.2 (Berkeley) 11/30/93
 .\" $FreeBSD$
 .\"
-.Dd January 26, 2010
+.Dd April 14, 2010
 .Dt NETINTRO 4
 .Os
 .Sh NAME
@@ -292,8 +292,11 @@ field of
 struct passed in as parameter, and the length would include
 the terminating nul character.
 If there is not enough space to hold the interface length,
-no copy would be done and an
-error would be returned.
+no copy would be done and the
+.Va buffer
+field of
+.Va ifru_buffer
+would be set to NULL.
 The kernel will store the buffer length in the
 .Va length
 field upon return, regardless whether the buffer itself is

Copied: user/imp/tbemd/share/man/man4/sge.4 (from r206684, head/share/man/man4/sge.4)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/imp/tbemd/share/man/man4/sge.4	Thu Apr 15 20:48:57 2010	(r206685, copy of r206684, head/share/man/man4/sge.4)
@@ -0,0 +1,120 @@
+.\" Copyright (c) 2010 Pyun YongHyeon
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (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$
+.\"
+.Dd April 14, 2010
+.Dt SGE 4
+.Os
+.Sh NAME
+.Nm sge
+.Nd Silicon Integrated Systems SiS190/191 Fast/Gigabit Ethernet driver
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following lines in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device miibus"
+.Cd "device sge"
+.Ed
+.Pp
+Alternatively, to load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+if_sge="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+device driver provides support for SiS190 Fast Ethernet
+controllers and SiS191 Fast/Gigabit Ethernet controllers.
+.Pp
+All LOMs supported by the
+.Nm
+driver have TCP/UDP/IP checksum offload for transmit and receive.
+Due to lack of documentation more offloading features like TCP
+segmentation offload (TSO), hardware VLAN tag stripping/insertion
+features, Wake On Lan (WOL), Jumbo frame and an interrupt moderation
+mechanism are not supported yet.
+.Pp
+The
+.Nm
+driver supports the following media types:
+.Bl -tag -width ".Cm 10baseT/UTP"
+.It Cm autoselect
+Enable autoselection of the media type and options.
+The user can manually override
+the autoselected mode by adding media options to
+.Xr rc.conf 5 .
+.It Cm 10baseT/UTP
+Set 10Mbps operation.
+.It Cm 100baseTX
+Set 100Mbps (Fast Ethernet) operation.
+.It Cm 1000baseTX
+Set 1000baseTX operation over twisted pair.
+.El
+.Pp
+The
+.Nm
+driver supports the following media options:
+.Bl -tag -width ".Cm full-duplex"
+.It Cm full-duplex
+Force full duplex operation.
+.It Cm half-duplex
+Force half duplex operation.
+.El
+.Pp
+For more information on configuring this device, see
+.Xr ifconfig 8 .
+.Sh HARDWARE
+The
+.Nm
+device driver provides support for the following Ethernet controllers:
+.Pp
+.Bl -bullet -compact
+.It
+SiS190 Fast Ethernet controller
+.It
+SiS191 Fast/Gigabit Ethernet controller
+.El
+.Sh SEE ALSO
+.Xr altq 4 ,
+.Xr arp 4 ,
+.Xr miibus 4 ,
+.Xr netintro 4 ,
+.Xr ng_ether 4 ,
+.Xr vlan 4 ,
+.Xr ifconfig 8
+.Sh HISTORY
+The
+.Nm
+driver was written by
+.An Alexander Pohoyda
+.Aq alexander.pohoyda at gmx.net .
+And enhanced by
+.An Nikolay Denev
+.Aq ndenev at gmail.com .
+It first appeared in
+.Fx 8.1 .

Modified: user/imp/tbemd/share/man/man4/vlan.4
==============================================================================
--- user/imp/tbemd/share/man/man4/vlan.4	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/share/man/man4/vlan.4	Thu Apr 15 20:48:57 2010	(r206685)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd June 14, 2009
+.Dd April 14, 2010
 .Dt VLAN 4
 .Os
 .Sh NAME
@@ -172,6 +172,7 @@ natively:
 .Xr nve 4 ,
 .Xr rl 4 ,
 .Xr sf 4 ,
+.Xr sge 4 ,
 .Xr sis 4 ,
 .Xr sk 4 ,
 .Xr ste 4 ,

Modified: user/imp/tbemd/sys/cam/scsi/scsi_cd.c
==============================================================================
--- user/imp/tbemd/sys/cam/scsi/scsi_cd.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sys/cam/scsi/scsi_cd.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -2773,8 +2773,12 @@ cdcheckmedia(struct cam_periph *periph)
 		softc->flags &= ~(CD_FLAG_VALID_MEDIA|CD_FLAG_VALID_TOC);
 		cdprevent(periph, PR_ALLOW);
 		return (error);
-	} else
+	} else {
 		softc->flags |= CD_FLAG_VALID_MEDIA;
+		softc->disk->d_sectorsize = softc->params.blksize;
+		softc->disk->d_mediasize =
+		    (off_t)softc->params.blksize * softc->params.disksize;
+	}
 
 	/*
 	 * Now we check the table of contents.  This (currently) is only
@@ -2863,9 +2867,6 @@ cdcheckmedia(struct cam_periph *periph)
 	}
 
 	softc->flags |= CD_FLAG_VALID_TOC;
-	softc->disk->d_sectorsize = softc->params.blksize;
-	softc->disk->d_mediasize =
-	    (off_t)softc->params.blksize * softc->params.disksize;
 
 bailout:
 

Modified: user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
==============================================================================
--- user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -868,13 +868,15 @@ zfs_root(vfs_t *vfsp, int flags, vnode_t
 	ZFS_ENTER_NOERROR(zfsvfs);
 
 	error = zfs_zget(zfsvfs, zfsvfs->z_root, &rootzp);
+
+	ZFS_EXIT(zfsvfs);
+
 	if (error == 0) {
 		*vpp = ZTOV(rootzp);
 		error = vn_lock(*vpp, flags);
 		(*vpp)->v_vflag |= VV_ROOT;
 	}
 
-	ZFS_EXIT(zfsvfs);
 	return (error);
 }
 
@@ -1143,13 +1145,13 @@ zfs_vget(vfs_t *vfsp, ino_t ino, int fla
 		VN_RELE(ZTOV(zp));
 		err = EINVAL;
 	}
+	ZFS_EXIT(zfsvfs);
 	if (err != 0)
 		*vpp = NULL;
 	else {
 		*vpp = ZTOV(zp);
 		vn_lock(*vpp, flags);
 	}
-	ZFS_EXIT(zfsvfs);
 	return (err);
 }
 
@@ -1237,8 +1239,8 @@ zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, vno
 		} else {
 			VN_HOLD(*vpp);
 		}
-		vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY);
 		ZFS_EXIT(zfsvfs);
+		vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY);
 		return (0);
 	}
 
@@ -1259,10 +1261,11 @@ zfs_fhtovp(vfs_t *vfsp, fid_t *fidp, vno
 		return (EINVAL);
 	}
 
+	ZFS_EXIT(zfsvfs);
+
 	*vpp = ZTOV(zp);
 	vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY);
 	vnode_create_vobject(*vpp, zp->z_phys->zp_size, curthread);
-	ZFS_EXIT(zfsvfs);
 	return (0);
 }
 

Modified: user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
==============================================================================
--- user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -1209,15 +1209,17 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode
 			ltype = VOP_ISLOCKED(dvp);
 			VOP_UNLOCK(dvp, 0);
 		}
+		ZFS_EXIT(zfsvfs);
 		error = vn_lock(*vpp, cnp->cn_lkflags);
 		if (cnp->cn_flags & ISDOTDOT)
 			vn_lock(dvp, ltype | LK_RETRY);
 		if (error != 0) {
 			VN_RELE(*vpp);
 			*vpp = NULL;
-			ZFS_EXIT(zfsvfs);
 			return (error);
 		}
+	} else {
+		ZFS_EXIT(zfsvfs);
 	}
 
 #ifdef FREEBSD_NAMECACHE
@@ -1237,8 +1239,6 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode
 	}
 #endif
 
-	ZFS_EXIT(zfsvfs);
-
 	return (error);
 }
 

Modified: user/imp/tbemd/sys/ddb/db_sym.c
==============================================================================
--- user/imp/tbemd/sys/ddb/db_sym.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sys/ddb/db_sym.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -64,12 +64,6 @@ static boolean_t	db_line_at_pc(c_db_sym_
 static int db_cpu = -1;
 
 #ifdef VIMAGE
-extern uintptr_t	*__start_set_vnet;
-extern uintptr_t	*__stop_set_vnet;
-
-#define	VNET_START	(uintptr_t)&__start_set_vnet
-#define	VNET_STOP	(uintptr_t)&__stop_set_vnet
-
 static void *db_vnet = NULL;
 #endif
 

Modified: user/imp/tbemd/sys/dev/e1000/if_em.c
==============================================================================
--- user/imp/tbemd/sys/dev/e1000/if_em.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sys/dev/e1000/if_em.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -93,7 +93,7 @@ int	em_display_debug_stats = 0;
 /*********************************************************************
  *  Driver version:
  *********************************************************************/
-char em_driver_version[] = "7.0.4";
+char em_driver_version[] = "7.0.5";
 
 
 /*********************************************************************
@@ -1484,12 +1484,17 @@ em_msix_tx(void *arg)
 {
 	struct tx_ring *txr = arg;
 	struct adapter *adapter = txr->adapter;
+	bool		more;
 
 	++txr->tx_irq;
 	EM_TX_LOCK(txr);
-	em_txeof(txr);
+	more = em_txeof(txr);
 	EM_TX_UNLOCK(txr);
-	E1000_WRITE_REG(&adapter->hw, E1000_IMS, txr->ims);
+	if (more)
+		taskqueue_enqueue(txr->tq, &txr->tx_task);
+	else
+		/* Reenable this interrupt */
+		E1000_WRITE_REG(&adapter->hw, E1000_IMS, txr->ims);
 	return;
 }
 

Modified: user/imp/tbemd/sys/dev/e1000/if_igb.c
==============================================================================
--- user/imp/tbemd/sys/dev/e1000/if_igb.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sys/dev/e1000/if_igb.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -99,7 +99,7 @@ int	igb_display_debug_stats = 0;
 /*********************************************************************
  *  Driver version:
  *********************************************************************/
-char igb_driver_version[] = "version - 1.9.4";
+char igb_driver_version[] = "version - 1.9.5";
 
 
 /*********************************************************************
@@ -758,8 +758,15 @@ igb_start_locked(struct tx_ring *txr, st
 	if (!adapter->link_active)
 		return;
 
-	while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) {
+	/* Call cleanup if number of TX descriptors low */
+	if (txr->tx_avail <= IGB_TX_CLEANUP_THRESHOLD)
+		igb_txeof(txr);
 
+	while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) {
+		if (txr->tx_avail <= IGB_TX_OP_THRESHOLD) {
+			ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+			break;
+		}
 		IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head);
 		if (m_head == NULL)
 			break;
@@ -779,6 +786,7 @@ igb_start_locked(struct tx_ring *txr, st
 		ETHER_BPF_MTAP(ifp, m_head);
 
 		/* Set watchdog on */
+		txr->watchdog_time = ticks;
 		txr->watchdog_check = TRUE;
 	}
 }
@@ -817,8 +825,6 @@ igb_mq_start(struct ifnet *ifp, struct m
 	/* Which queue to use */
 	if ((m->m_flags & M_FLOWID) != 0)
 		i = m->m_pkthdr.flowid % adapter->num_queues;
-	else
-		i = curcpu % adapter->num_queues;
 
 	txr = &adapter->tx_rings[i];
 
@@ -847,6 +853,10 @@ igb_mq_start_locked(struct ifnet *ifp, s
 		return (err);
 	}
 
+	/* Call cleanup if number of TX descriptors low */
+	if (txr->tx_avail <= IGB_TX_CLEANUP_THRESHOLD)
+		igb_txeof(txr);
+
 	enq = 0;
 	if (m == NULL) {
 		next = drbr_dequeue(ifp, txr->br);
@@ -856,6 +866,7 @@ igb_mq_start_locked(struct ifnet *ifp, s
 		next = drbr_dequeue(ifp, txr->br);
 	} else
 		next = m;
+
 	/* Process the queue */
 	while (next != NULL) {
 		if ((err = igb_xmit(txr, &next)) != 0) {
@@ -877,6 +888,7 @@ igb_mq_start_locked(struct ifnet *ifp, s
 	if (enq > 0) {
 		/* Set the watchdog */
 		txr->watchdog_check = TRUE;
+		txr->watchdog_time = ticks;
 	}
 	return (err);
 }
@@ -1248,19 +1260,13 @@ igb_handle_que(void *context, int pendin
 	struct adapter *adapter = que->adapter;
 	struct tx_ring *txr = que->txr;
 	struct ifnet	*ifp = adapter->ifp;
-	u32		loop = IGB_MAX_LOOP;
 	bool		more;
 
-	/* RX first */
-	do {
+	if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
 		more = igb_rxeof(que, -1);
-	} while (loop-- && more);
 
-	if (IGB_TX_TRYLOCK(txr)) {
-		loop = IGB_MAX_LOOP;
-		do {
-			more = igb_txeof(txr);
-		} while (loop-- && more);
+		IGB_TX_LOCK(txr);
+		igb_txeof(txr);
 #if __FreeBSD_version >= 800000
 		igb_mq_start_locked(ifp, txr, NULL);
 #else
@@ -1268,6 +1274,10 @@ igb_handle_que(void *context, int pendin
 			igb_start_locked(txr, ifp);
 #endif
 		IGB_TX_UNLOCK(txr);
+		if (more) {
+			taskqueue_enqueue(que->tq, &que->que_task);
+			return;
+		}
 	}
 
 	/* Reenable this interrupt */

Modified: user/imp/tbemd/sys/dev/hwpmc/hwpmc_core.c
==============================================================================
--- user/imp/tbemd/sys/dev/hwpmc/hwpmc_core.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sys/dev/hwpmc/hwpmc_core.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -603,7 +603,7 @@ static struct iap_event_descr iap_events
     IAPDESCR(06H_0FH, 0x06, 0x0F, IAP_F_FM | IAP_F_I7O),
 
     IAPDESCR(07H_00H, 0x07, 0x00, IAP_F_FM | IAP_F_CC | IAP_F_CC2),
-    IAPDESCR(07H_01H, 0x07, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 | IAP_F_WM),
+    IAPDESCR(07H_01H, 0x07, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 | IAP_F_I7 | IAP_F_WM),
     IAPDESCR(07H_02H, 0x07, 0x02, IAP_F_FM | IAP_F_ALLCPUSCORE2),
     IAPDESCR(07H_03H, 0x07, 0x03, IAP_F_FM | IAP_F_ALLCPUSCORE2),
     IAPDESCR(07H_06H, 0x07, 0x06, IAP_F_FM | IAP_F_CA),
@@ -1053,6 +1053,7 @@ static struct iap_event_descr iap_events
     IAPDESCR(B0H_02H, 0xB0, 0x02, IAP_F_FM | IAP_F_WM | IAP_F_I7O),
     IAPDESCR(B0H_04H, 0xB0, 0x04, IAP_F_FM | IAP_F_WM | IAP_F_I7O),
     IAPDESCR(B0H_08H, 0xB0, 0x08, IAP_F_FM | IAP_F_WM | IAP_F_I7O),
+    IAPDESCR(B0H_10H, 0xB0, 0x10, IAP_F_FM | IAP_F_WM | IAP_F_I7O),
     IAPDESCR(B0H_20H, 0xB0, 0x20, IAP_F_FM | IAP_F_I7O),
     IAPDESCR(B0H_40H, 0xB0, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
     IAPDESCR(B0H_80H, 0xB0, 0x80, IAP_F_FM | IAP_F_CA | IAP_F_WM | IAP_F_I7O),

Modified: user/imp/tbemd/sys/dev/hwpmc/pmc_events.h
==============================================================================
--- user/imp/tbemd/sys/dev/hwpmc/pmc_events.h	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sys/dev/hwpmc/pmc_events.h	Thu Apr 15 20:48:57 2010	(r206685)
@@ -2207,7 +2207,7 @@ __PMC_EV_ALIAS("OFFCORE_REQUESTS.DEMAND.
 __PMC_EV_ALIAS("OFFCORE_REQUESTS.DEMAND.READ_CODE", IAP_EVENT_B0H_02H)	\
 __PMC_EV_ALIAS("OFFCORE_REQUESTS.DEMAND.RFO", IAP_EVENT_B0H_04H)	\
 __PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY.READ", IAP_EVENT_B0H_08H)		\
-__PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY.RFO", IAP_EVENT_80H_10H)		\
+__PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY.RFO", IAP_EVENT_B0H_10H)		\
 __PMC_EV_ALIAS("OFFCORE_REQUESTS.L1D_WRITEBACK", IAP_EVENT_B0H_40H)	\
 __PMC_EV_ALIAS("OFFCORE_REQUESTS.ANY", IAP_EVENT_B0H_80H)		\
 __PMC_EV_ALIAS("UOPS_EXECUTED.PORT0", IAP_EVENT_B1H_01H)		\

Modified: user/imp/tbemd/sys/dev/mxge/if_mxge.c
==============================================================================
--- user/imp/tbemd/sys/dev/mxge/if_mxge.c	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sys/dev/mxge/if_mxge.c	Thu Apr 15 20:48:57 2010	(r206685)
@@ -883,6 +883,9 @@ mxge_send_cmd(mxge_softc_t *sc, uint32_t
 		case MXGEFW_CMD_ERROR_BUSY:
 			err = EBUSY;
 			break;
+		case MXGEFW_CMD_ERROR_I2C_ABSENT:
+			err = ENXIO;
+			break;
 		default:
 			device_printf(sc->dev, 
 				      "mxge: command %d "
@@ -2782,37 +2785,25 @@ static struct mxge_media_type mxge_sfp_m
 };
 
 static void
-mxge_set_media(mxge_softc_t *sc, int type)
+mxge_media_set(mxge_softc_t *sc, int media_type)
 {
-	sc->media_flags |= type;
-	ifmedia_add(&sc->media, sc->media_flags, 0, NULL);
-	ifmedia_set(&sc->media, sc->media_flags);
-}
 
+	
+	ifmedia_add(&sc->media, IFM_ETHER | IFM_FDX | media_type, 
+		    0, NULL);
+	ifmedia_set(&sc->media, IFM_ETHER | IFM_FDX | media_type);
+	sc->current_media = media_type;
+	sc->media.ifm_media = sc->media.ifm_cur->ifm_media;
+}
 
-/*
- * Determine the media type for a NIC.  Some XFPs will identify
- * themselves only when their link is up, so this is initiated via a
- * link up interrupt.  However, this can potentially take up to
- * several milliseconds, so it is run via the watchdog routine, rather
- * than in the interrupt handler itself.   This need only be done
- * once, not each time the link is up.
- */
 static void
-mxge_media_probe(mxge_softc_t *sc)
+mxge_media_init(mxge_softc_t *sc)
 {
-	mxge_cmd_t cmd;
-	char *cage_type;
 	char *ptr;
-	struct mxge_media_type *mxge_media_types = NULL;
-	int i, err, ms, mxge_media_type_entries;
-	uint32_t byte;
-
-	sc->need_media_probe = 0;
+	int i;
 
-	/* if we've already set a media type, we're done */
-	if (sc->media_flags  != (IFM_ETHER | IFM_AUTO))
-		return;
+	ifmedia_removeall(&sc->media);
+	mxge_media_set(sc, IFM_AUTO);
 
 	/* 
 	 * parse the product code to deterimine the interface type
@@ -2823,6 +2814,7 @@ mxge_media_probe(mxge_softc_t *sc)
 	ptr = sc->product_code_string;
 	if (ptr == NULL) {
 		device_printf(sc->dev, "Missing product code\n");
+		return;
 	}
 
 	for (i = 0; i < 3; i++, ptr++) {
@@ -2835,17 +2827,44 @@ mxge_media_probe(mxge_softc_t *sc)
 	}
 	if (*ptr == 'C') {
 		/* -C is CX4 */
-		mxge_set_media(sc, IFM_10G_CX4);
-		return;
-	}
-	else if (*ptr == 'Q') {
+		sc->connector = MXGE_CX4;
+		mxge_media_set(sc, IFM_10G_CX4);
+	} else if (*ptr == 'Q') {
 		/* -Q is Quad Ribbon Fiber */
+		sc->connector = MXGE_QRF;
 		device_printf(sc->dev, "Quad Ribbon Fiber Media\n");
 		/* FreeBSD has no media type for Quad ribbon fiber */
-		return;
+	} else if (*ptr == 'R') {
+		/* -R is XFP */
+		sc->connector = MXGE_XFP;
+	} else if (*ptr == 'S' || *(ptr +1) == 'S') {
+		/* -S or -2S is SFP+ */
+		sc->connector = MXGE_SFP;
+	} else {
+		device_printf(sc->dev, "Unknown media type: %c\n", *ptr);
 	}
+}
 
-	if (*ptr == 'R') {
+/*
+ * Determine the media type for a NIC.  Some XFPs will identify
+ * themselves only when their link is up, so this is initiated via a
+ * link up interrupt.  However, this can potentially take up to
+ * several milliseconds, so it is run via the watchdog routine, rather
+ * than in the interrupt handler itself. 
+ */
+static void
+mxge_media_probe(mxge_softc_t *sc)
+{
+	mxge_cmd_t cmd;
+	char *cage_type;
+
+	struct mxge_media_type *mxge_media_types = NULL;
+	int i, err, ms, mxge_media_type_entries;
+	uint32_t byte;
+
+	sc->need_media_probe = 0;
+
+	if (sc->connector == MXGE_XFP) {
 		/* -R is XFP */
 		mxge_media_types = mxge_xfp_media_types;
 		mxge_media_type_entries = 
@@ -2853,9 +2872,7 @@ mxge_media_probe(mxge_softc_t *sc)
 			sizeof (mxge_xfp_media_types[0]);
 		byte = MXGE_XFP_COMPLIANCE_BYTE;
 		cage_type = "XFP";
-	}
-
-	if (*ptr == 'S' || *(ptr +1) == 'S') {
+	} else 	if (sc->connector == MXGE_SFP) {
 		/* -S or -2S is SFP+ */
 		mxge_media_types = mxge_sfp_media_types;
 		mxge_media_type_entries = 
@@ -2863,10 +2880,8 @@ mxge_media_probe(mxge_softc_t *sc)
 			sizeof (mxge_sfp_media_types[0]);
 		cage_type = "SFP+";
 		byte = 3;
-	}
-
-	if (mxge_media_types == NULL) {
-		device_printf(sc->dev, "Unknown media type: %c\n", *ptr);
+	} else {
+		/* nothing to do; media type cannot change */
 		return;
 	}
 
@@ -2909,7 +2924,10 @@ mxge_media_probe(mxge_softc_t *sc)
 		if (mxge_verbose)
 			device_printf(sc->dev, "%s:%s\n", cage_type,
 				      mxge_media_types[0].name);
-		mxge_set_media(sc, mxge_media_types[0].flag);
+		if (sc->current_media != mxge_media_types[0].flag) {
+			mxge_media_init(sc);
+			mxge_media_set(sc, mxge_media_types[0].flag);
+		}
 		return;
 	}
 	for (i = 1; i < mxge_media_type_entries; i++) {
@@ -2919,12 +2937,16 @@ mxge_media_probe(mxge_softc_t *sc)
 					      cage_type,
 					      mxge_media_types[i].name);
 
-			mxge_set_media(sc, mxge_media_types[i].flag);
+			if (sc->current_media != mxge_media_types[i].flag) {
+				mxge_media_init(sc);
+				mxge_media_set(sc, mxge_media_types[i].flag);
+			}
 			return;
 		}
 	}
-	device_printf(sc->dev, "%s media 0x%x unknown\n", cage_type,
-		      cmd.data0);
+	if (mxge_verbose)
+		device_printf(sc->dev, "%s media 0x%x unknown\n",
+			      cage_type, cmd.data0);
 
 	return;
 }
@@ -2988,10 +3010,12 @@ mxge_intr(void *arg)
 			sc->link_state = stats->link_up;
 			if (sc->link_state) {
 				if_link_state_change(sc->ifp, LINK_STATE_UP);
+				 sc->ifp->if_baudrate = IF_Gbps(10UL);
 				if (mxge_verbose)
 					device_printf(sc->dev, "link up\n");
 			} else {
 				if_link_state_change(sc->ifp, LINK_STATE_DOWN);
+				sc->ifp->if_baudrate = 0;
 				if (mxge_verbose)
 					device_printf(sc->dev, "link down\n");
 			}
@@ -4026,9 +4050,9 @@ mxge_media_status(struct ifnet *ifp, str
 	if (sc == NULL)
 		return;
 	ifmr->ifm_status = IFM_AVALID;
+	ifmr->ifm_active = IFM_ETHER | IFM_FDX;
 	ifmr->ifm_status |= sc->link_state ? IFM_ACTIVE : 0;
-	ifmr->ifm_active = IFM_AUTO | IFM_ETHER;
-	ifmr->ifm_active |= sc->link_state ? IFM_FDX : 0;
+	ifmr->ifm_active |= sc->current_media;
 }
 
 static int
@@ -4135,6 +4159,9 @@ mxge_ioctl(struct ifnet *ifp, u_long com
 		break;
 
 	case SIOCGIFMEDIA:
+		mtx_lock(&sc->driver_mtx);
+		mxge_media_probe(sc);
+		mtx_unlock(&sc->driver_mtx);
 		err = ifmedia_ioctl(ifp, (struct ifreq *)data, 
 				    &sc->media, command);
                 break;
@@ -4732,7 +4759,7 @@ mxge_attach(device_t dev)
 
 	ifp->if_baudrate = IF_Gbps(10UL);
 	ifp->if_capabilities = IFCAP_RXCSUM | IFCAP_TXCSUM | IFCAP_TSO4 |
-		IFCAP_VLAN_MTU;
+		IFCAP_VLAN_MTU | IFCAP_LINKSTATE;
 #ifdef INET
 	ifp->if_capabilities |= IFCAP_LRO;
 #endif
@@ -4766,7 +4793,7 @@ mxge_attach(device_t dev)
 	/* Initialise the ifmedia structure */
 	ifmedia_init(&sc->media, 0, mxge_media_change, 
 		     mxge_media_status);
-	mxge_set_media(sc, IFM_ETHER | IFM_AUTO);
+	mxge_media_init(sc);
 	mxge_media_probe(sc);
 	sc->dying = 0;
 	ether_ifattach(ifp, sc->mac_addr);

Modified: user/imp/tbemd/sys/dev/mxge/if_mxge_var.h
==============================================================================
--- user/imp/tbemd/sys/dev/mxge/if_mxge_var.h	Thu Apr 15 19:45:03 2010	(r206684)
+++ user/imp/tbemd/sys/dev/mxge/if_mxge_var.h	Thu Apr 15 20:48:57 2010	(r206685)
@@ -268,6 +268,8 @@ struct mxge_softc {
 	int num_slices;
 	int rx_ring_size;
 	int dying;
+	int connector;
+	int current_media;
 	mxge_dma_t dmabench_dma;
 	struct callout co_hdl;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-user mailing list