PERFORCE change 166668 for review

Hans Petter Selasky hselasky at FreeBSD.org
Tue Jul 28 08:12:58 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=166668

Change 166668 by hselasky at hselasky_laptop001 on 2009/07/28 08:12:47

	
	IFC @ 166665

Affected files ...

.. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#23 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#27 integrate
.. //depot/projects/usb/src/sys/arm/arm/pmap.c#19 integrate
.. //depot/projects/usb/src/sys/boot/forth/loader.conf#21 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#3 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_misc.c#20 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_mib.c#6 integrate
.. //depot/projects/usb/src/sys/conf/NOTES#44 integrate
.. //depot/projects/usb/src/sys/conf/files#75 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-all.c#17 integrate
.. //depot/projects/usb/src/sys/dev/e1000/e1000_ich8lan.c#5 integrate
.. //depot/projects/usb/src/sys/dev/e1000/if_em.c#11 integrate
.. //depot/projects/usb/src/sys/dev/e1000/if_igb.c#12 integrate
.. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe.c#10 integrate
.. //depot/projects/usb/src/sys/dev/uart/uart_cpu_powerpc.c#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/usbdevs#68 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_uath.c#15 integrate
.. //depot/projects/usb/src/sys/fs/procfs/procfs_map.c#9 integrate
.. //depot/projects/usb/src/sys/i386/i386/machdep.c#19 integrate
.. //depot/projects/usb/src/sys/i386/i386/pmap.c#23 integrate
.. //depot/projects/usb/src/sys/i386/xen/pmap.c#11 integrate
.. //depot/projects/usb/src/sys/ia64/ia64/pmap.c#15 integrate
.. //depot/projects/usb/src/sys/kern/kern_jail.c#26 integrate
.. //depot/projects/usb/src/sys/kern/kern_proc.c#21 integrate
.. //depot/projects/usb/src/sys/kern/kern_vimage.c#12 integrate
.. //depot/projects/usb/src/sys/kern/uipc_domain.c#12 integrate
.. //depot/projects/usb/src/sys/mips/mips/pmap.c#12 integrate
.. //depot/projects/usb/src/sys/modules/Makefile#41 integrate
.. //depot/projects/usb/src/sys/modules/if_epair/Makefile#1 branch
.. //depot/projects/usb/src/sys/net/flowtable.c#7 integrate
.. //depot/projects/usb/src/sys/net/if.c#36 integrate
.. //depot/projects/usb/src/sys/net/if_clone.c#8 integrate
.. //depot/projects/usb/src/sys/net/if_clone.h#4 integrate
.. //depot/projects/usb/src/sys/net/if_epair.c#2 integrate
.. //depot/projects/usb/src/sys/net/if_gif.c#17 integrate
.. //depot/projects/usb/src/sys/net/if_loop.c#23 integrate
.. //depot/projects/usb/src/sys/net/if_var.h#26 integrate
.. //depot/projects/usb/src/sys/net/netisr.h#9 integrate
.. //depot/projects/usb/src/sys/net/route.c#23 integrate
.. //depot/projects/usb/src/sys/net/rtsock.c#29 integrate
.. //depot/projects/usb/src/sys/net/vnet.c#2 integrate
.. //depot/projects/usb/src/sys/net/vnet.h#15 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211.c#27 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_hwmp.c#3 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_ioctl.h#16 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_mesh.c#3 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_mesh.h#3 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_output.c#27 integrate
.. //depot/projects/usb/src/sys/netgraph/bluetooth/socket/ng_btsocket.c#4 integrate
.. //depot/projects/usb/src/sys/netgraph/netgraph.h#14 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_base.c#20 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_eiface.c#14 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_ether.c#15 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_iface.c#17 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_socket.c#8 integrate
.. //depot/projects/usb/src/sys/netinet/if_ether.c#26 integrate
.. //depot/projects/usb/src/sys/netinet/igmp.c#22 integrate
.. //depot/projects/usb/src/sys/netinet/in.c#32 integrate
.. //depot/projects/usb/src/sys/netinet/in_proto.c#13 integrate
.. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#6 integrate
.. //depot/projects/usb/src/sys/netinet/sctp_indata.c#19 integrate
.. //depot/projects/usb/src/sys/netinet/sctp_uio.h#18 integrate
.. //depot/projects/usb/src/sys/netinet/sctputil.c#21 integrate
.. //depot/projects/usb/src/sys/netinet6/in6.c#29 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_proto.c#18 integrate
.. //depot/projects/usb/src/sys/netinet6/mld6.c#21 integrate
.. //depot/projects/usb/src/sys/netipsec/ipsec.c#22 integrate
.. //depot/projects/usb/src/sys/netipsec/keysock.c#14 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/pmap.c#16 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/pmap.c#13 integrate
.. //depot/projects/usb/src/sys/sys/domain.h#5 integrate
.. //depot/projects/usb/src/sys/sys/jail.h#18 integrate
.. //depot/projects/usb/src/sys/sys/kernel.h#16 integrate
.. //depot/projects/usb/src/sys/sys/param.h#42 integrate
.. //depot/projects/usb/src/sys/sys/sysctl.h#21 integrate
.. //depot/projects/usb/src/sys/sys/user.h#11 integrate
.. //depot/projects/usb/src/sys/sys/vimage.h#19 integrate
.. //depot/projects/usb/src/sys/vm/sg_pager.c#1 branch
.. //depot/projects/usb/src/sys/vm/vm.h#7 integrate
.. //depot/projects/usb/src/sys/vm/vm_fault.c#17 integrate
.. //depot/projects/usb/src/sys/vm/vm_map.c#19 integrate
.. //depot/projects/usb/src/sys/vm/vm_meter.c#10 integrate
.. //depot/projects/usb/src/sys/vm/vm_object.c#21 integrate
.. //depot/projects/usb/src/sys/vm/vm_object.h#10 integrate
.. //depot/projects/usb/src/sys/vm/vm_page.c#19 integrate
.. //depot/projects/usb/src/sys/vm/vm_pageout.c#18 integrate
.. //depot/projects/usb/src/sys/vm/vm_pager.c#5 integrate
.. //depot/projects/usb/src/sys/vm/vm_pager.h#4 integrate

Differences ...

==== //depot/projects/usb/src/sys/amd64/amd64/machdep.c#23 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.705 2009/07/09 09:34:11 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.706 2009/07/27 13:51:55 rpaulo Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -213,7 +213,10 @@
 	 */
 	sysenv = getenv("smbios.system.product");
 	if (sysenv != NULL) {
-		if (strncmp(sysenv, "MacBook", 7) == 0) {
+		if (strncmp(sysenv, "MacBook1,1", 10) == 0 ||
+		    strncmp(sysenv, "MacBookPro1,1", 13) == 0 ||
+		    strncmp(sysenv, "MacBookPro1,2", 13) == 0 ||
+		    strncmp(sysenv, "Macmini1,1", 10) == 0) {
 			if (bootverbose)
 				printf("Disabling LEGACY_USB_EN bit on "
 				    "Intel ICH.\n");

==== //depot/projects/usb/src/sys/amd64/amd64/pmap.c#27 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.666 2009/07/22 14:32:38 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.667 2009/07/24 13:50:29 jhb Exp $");
 
 /*
  *	Manages physical address maps.
@@ -3359,7 +3359,7 @@
 	int pat_mode;
 
 	VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
-	KASSERT(object->type == OBJT_DEVICE,
+	KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
 	    ("pmap_object_init_pt: non-device object"));
 	if ((addr & (NBPDR - 1)) == 0 && (size & (NBPDR - 1)) == 0) {
 		if (!vm_object_populate(object, pindex, pindex + atop(size)))

==== //depot/projects/usb/src/sys/arm/arm/pmap.c#19 (text+ko) ====

@@ -147,7 +147,7 @@
 #include "opt_vm.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.112 2009/07/20 07:53:07 raj Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.113 2009/07/24 13:50:29 jhb Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
@@ -3101,7 +3101,7 @@
 {
 
 	VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
-	KASSERT(object->type == OBJT_DEVICE,
+	KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
 	    ("pmap_object_init_pt: non-device object"));
 }
 

==== //depot/projects/usb/src/sys/boot/forth/loader.conf#21 (text+ko) ====

@@ -6,7 +6,7 @@
 #
 # All arguments must be in double quotes.
 #
-# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.142 2009/06/15 18:22:41 marius Exp $
+# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.143 2009/07/26 12:20:07 bz Exp $
 
 ##############################################################
 ###  Basic configuration options  ############################
@@ -190,6 +190,7 @@
 if_disc_load="NO"		# Discard device
 if_ef_load="NO"			# pseudo-device providing support for multiple
 				# ethernet frame types
+if_epair_load="NO"		# Virtual b-t-b Ethernet-like interface pair
 if_faith_load="NO"		# IPv6-to-IPv4 TCP relay capturing interface
 if_gif_load="NO"		# generic tunnel interface
 if_gre_load="NO"		# encapsulating network device

==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#3 (text+ko) ====

@@ -78,7 +78,11 @@
 /*
  * Is ID ephemeral?
  */
+#ifdef TODO
 #define	IS_EPHEMERAL(x)		(x > MAXUID)
+#else
+#define	IS_EPHEMERAL(x)		(0)
+#endif
 
 /*
  * Should we use FUIDs?

==== //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_misc.c#20 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.92 2009/06/27 13:58:44 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.93 2009/07/27 16:03:04 jhb Exp $");
 
 #include "opt_compat.h"
 #include "opt_inet.h"
@@ -1416,8 +1416,8 @@
     defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7)
 	switch (uap->which) {
 	case 0:
-		return (freebsd32_semctl(td,
-		    (struct freebsd32_semctl_args *)&uap->a2));
+		return (freebsd7_freebsd32_semctl(td,
+		    (struct freebsd7_freebsd32_semctl_args *)&uap->a2));
 	default:
 		return (semsys(td, (struct semsys_args *)uap));
 	}
@@ -1580,8 +1580,8 @@
     defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7)
 	switch (uap->which) {
 	case 0:
-		return (freebsd32_msgctl(td,
-		    (struct freebsd32_msgctl_args *)&uap->a2));
+		return (freebsd7_freebsd32_msgctl(td,
+		    (struct freebsd7_freebsd32_msgctl_args *)&uap->a2));
 	case 2:
 		return (freebsd32_msgsnd(td,
 		    (struct freebsd32_msgsnd_args *)&uap->a2));
@@ -1751,12 +1751,12 @@
 		return (sysent[SYS_shmget].sy_call(td, &ap));
 	}
 	case 4: {	/* shmctl */
-		struct freebsd32_shmctl_args ap;
+		struct freebsd7_freebsd32_shmctl_args ap;
 
 		ap.shmid = uap->a2;
 		ap.cmd = uap->a3;
 		ap.buf = PTRIN(uap->a4);
-		return (freebsd32_shmctl(td, &ap));
+		return (freebsd7_freebsd32_shmctl(td, &ap));
 	}
 	case 1:		/* oshmctl */
 	default:

==== //depot/projects/usb/src/sys/compat/linux/linux_mib.c#6 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_mib.c,v 1.36 2009/05/27 14:11:23 jamie Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_mib.c,v 1.37 2009/07/25 14:48:57 jamie Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -237,12 +237,14 @@
 {
 	struct prison *pr = obj;
 	struct vfsoptlist *opts = data;
+	int jsys;
 
-	if (vfs_flagopt(opts, "nolinux", NULL, 0))
+	if (vfs_copyopt(opts, "linux", &jsys, sizeof(jsys)) == 0 &&
+	    jsys == JAIL_SYS_INHERIT)
 		return (0);
 	/*
 	 * Inherit a prison's initial values from its parent
-	 * (different from NULL which also inherits changes).
+	 * (different from JAIL_SYS_INHERIT which also inherits changes).
 	 */
 	return linux_alloc_prison(pr, NULL);
 }
@@ -252,11 +254,16 @@
 {
 	struct vfsoptlist *opts = data;
 	char *osname, *osrelease;
-	int error, len, osrel, oss_version;
+	int error, jsys, len, osrel, oss_version;
 
 	/* Check that the parameters are correct. */
-	(void)vfs_flagopt(opts, "linux", NULL, 0);
-	(void)vfs_flagopt(opts, "nolinux", NULL, 0);
+	error = vfs_copyopt(opts, "linux", &jsys, sizeof(jsys));
+	if (error != ENOENT) {
+		if (error != 0)
+			return (error);
+		if (jsys != JAIL_SYS_NEW && jsys != JAIL_SYS_INHERIT)
+			return (EINVAL);
+	}
 	error = vfs_getopt(opts, "linux.osname", (void **)&osname, &len);
 	if (error != ENOENT) {
 		if (error != 0)
@@ -296,33 +303,40 @@
 	struct prison *pr = obj;
 	struct vfsoptlist *opts = data;
 	char *osname, *osrelease;
-	int error, gotversion, len, nolinux, oss_version, yeslinux;
+	int error, gotversion, jsys, len, oss_version;
 
 	/* Set the parameters, which should be correct. */
-	yeslinux = vfs_flagopt(opts, "linux", NULL, 0);
-	nolinux = vfs_flagopt(opts, "nolinux", NULL, 0);
+	error = vfs_copyopt(opts, "linux", &jsys, sizeof(jsys));
+	if (error == ENOENT)
+		jsys = -1;
 	error = vfs_getopt(opts, "linux.osname", (void **)&osname, &len);
 	if (error == ENOENT)
 		osname = NULL;
 	else
-		yeslinux = 1;
+		jsys = JAIL_SYS_NEW;
 	error = vfs_getopt(opts, "linux.osrelease", (void **)&osrelease, &len);
 	if (error == ENOENT)
 		osrelease = NULL;
 	else
-		yeslinux = 1;
+		jsys = JAIL_SYS_NEW;
 	error = vfs_copyopt(opts, "linux.oss_version", &oss_version,
 	    sizeof(oss_version));
-	gotversion = (error == 0);
-	yeslinux |= gotversion;
-	if (nolinux) {
-		/* "nolinux": inherit the parent's Linux info. */
+	if (error == ENOENT)
+		gotversion = 0;
+	else {
+		gotversion = 1;
+		jsys = JAIL_SYS_NEW;
+	}
+	switch (jsys) {
+	case JAIL_SYS_INHERIT:
+		/* "linux=inherit": inherit the parent's Linux info. */
 		mtx_lock(&pr->pr_mtx);
 		osd_jail_del(pr, linux_osd_jail_slot);
 		mtx_unlock(&pr->pr_mtx);
-	} else if (yeslinux) {
+		break;
+	case JAIL_SYS_NEW:
 		/*
-		 * "linux" or "linux.*":
+		 * "linux=new" or "linux.*":
 		 * the prison gets its own Linux info.
 		 */
 		error = linux_alloc_prison(pr, &lpr);
@@ -348,9 +362,7 @@
 	return (0);
 }
 
-SYSCTL_JAIL_PARAM_NODE(linux, "Jail Linux parameters");
-SYSCTL_JAIL_PARAM(, nolinux, CTLTYPE_INT | CTLFLAG_RW,
-    "BN", "Jail w/ no Linux parameters");
+SYSCTL_JAIL_PARAM_SYS_NODE(linux, CTLFLAG_RW, "Jail Linux parameters");
 SYSCTL_JAIL_PARAM_STRING(_linux, osname, CTLFLAG_RW, LINUX_MAX_UTSNAME,
     "Jail Linux kernel OS name");
 SYSCTL_JAIL_PARAM_STRING(_linux, osrelease, CTLFLAG_RW, LINUX_MAX_UTSNAME,
@@ -371,15 +383,22 @@
 
 	/* See if this prison is the one with the Linux info. */
 	lpr = linux_find_prison(pr, &ppr);
-	i = (ppr == pr);
+	i = (ppr == pr) ? JAIL_SYS_NEW : JAIL_SYS_INHERIT;
 	error = vfs_setopt(opts, "linux", &i, sizeof(i));
 	if (error != 0 && error != ENOENT)
 		goto done;
-	i = !i;
-	error = vfs_setopt(opts, "nolinux", &i, sizeof(i));
-	if (error != 0 && error != ENOENT)
-		goto done;
 	if (i) {
+		error = vfs_setopts(opts, "linux.osname", lpr->pr_osname);
+		if (error != 0 && error != ENOENT)
+			goto done;
+		error = vfs_setopts(opts, "linux.osrelease", lpr->pr_osrelease);
+		if (error != 0 && error != ENOENT)
+			goto done;
+		error = vfs_setopt(opts, "linux.oss_version",
+		    &lpr->pr_oss_version, sizeof(lpr->pr_oss_version));
+		if (error != 0 && error != ENOENT)
+			goto done;
+	} else {
 		/*
 		 * If this prison is inheriting its Linux info, report
 		 * empty/zero parameters.
@@ -394,17 +413,6 @@
 		    sizeof(lpr->pr_oss_version));
 		if (error != 0 && error != ENOENT)
 			goto done;
-	} else {
-		error = vfs_setopts(opts, "linux.osname", lpr->pr_osname);
-		if (error != 0 && error != ENOENT)
-			goto done;
-		error = vfs_setopts(opts, "linux.osrelease", lpr->pr_osrelease);
-		if (error != 0 && error != ENOENT)
-			goto done;
-		error = vfs_setopt(opts, "linux.oss_version",
-		    &lpr->pr_oss_version, sizeof(lpr->pr_oss_version));
-		if (error != 0 && error != ENOENT)
-			goto done;
 	}
 	error = 0;
 

==== //depot/projects/usb/src/sys/conf/NOTES#44 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1550 2009/07/11 15:02:45 rpaulo Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1553 2009/07/26 12:20:07 bz Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -784,6 +784,10 @@
 #  included for testing and benchmarking purposes.
 device		disc
 
+# The `epair' device implements a virtual back-to-back connected Ethernet
+# like interface pair.
+device		epair
+
 #  The `edsc' device implements a minimal Ethernet interface,
 #  which discards all packets sent and receives none.
 device		edsc
@@ -1638,6 +1642,18 @@
 device		twe		# 3ware ATA RAID
 
 #
+# Serial ATA host controllers:
+#
+# ahci: Advanced Host Controller Interface (AHCI) compatible
+# siis: SiliconImage SiI3124/SiI3132/SiI3531 controllers
+#
+# These drivers are part of cam(4) subsystem. They supersede less featured
+# ata(4) subsystem drivers, supporting same hardware.
+
+device		ahci
+device		siis
+
+#
 # The 'ATA' driver supports all ATA and ATAPI devices, including PC Card
 # devices. You only need one "device ata" for it to find all
 # PCI and PC Card ATA/ATAPI devices on modern machines.

==== //depot/projects/usb/src/sys/conf/files#75 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1455 2009/07/21 12:32:46 mav Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1457 2009/07/26 12:20:07 bz Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -2202,6 +2202,7 @@
 net/if_edsc.c			optional edsc
 net/if_ef.c			optional ef
 net/if_enc.c			optional enc ipsec inet | enc ipsec inet6
+net/if_epair.c			optional epair
 net/if_ethersubr.c		optional ether \
 	compile-with "${NORMAL_C} -I$S/contrib/pf"
 net/if_faith.c			optional faith
@@ -2637,6 +2638,7 @@
 vm/device_pager.c		standard
 vm/phys_pager.c			standard
 vm/redzone.c			optional DEBUG_REDZONE
+vm/sg_pager.c			standard
 vm/swap_pager.c			standard
 vm/uma_core.c			standard
 vm/uma_dbg.c			standard

==== //depot/projects/usb/src/sys/dev/ata/ata-all.c#17 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.306 2009/07/16 19:48:39 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.307 2009/07/26 14:04:48 mav Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -711,7 +711,7 @@
     struct ata_channel *ch = device_get_softc(dev);
     struct ata_device *atadev;
     device_t *children;
-    device_t child;
+    device_t child, master = NULL;
     int nchildren, i, n = ch->devices;
 
     if (bootverbose)
@@ -748,6 +748,15 @@
 		unit = (device_get_unit(dev) << 1) + i;
 #endif
 	    if ((child = ata_add_child(dev, atadev, unit))) {
+		/*
+		 * PATA slave should be identified first, to allow
+		 * device cable detection on master to work properly.
+		 */
+		if (i == 0 && (n & ATA_PORTMULTIPLIER) == 0 &&
+			(n & ((ATA_ATA_MASTER | ATA_ATAPI_MASTER) << 1)) != 0) {
+		    master = child;
+		    continue;
+		}
 		if (ata_getparam(atadev, 1)) {
 		    device_delete_child(dev, child);
 		    free(atadev, M_ATA);
@@ -757,6 +766,13 @@
 		free(atadev, M_ATA);
 	}
     }
+    if (master) {
+	atadev = device_get_softc(master);
+	if (ata_getparam(atadev, 1)) {
+	    device_delete_child(dev, master);
+	    free(atadev, M_ATA);
+	}
+    }
     bus_generic_probe(dev);
     bus_generic_attach(dev);
     mtx_unlock(&Giant);

==== //depot/projects/usb/src/sys/dev/e1000/e1000_ich8lan.c#5 (text+ko) ====

@@ -30,7 +30,7 @@
   POSSIBILITY OF SUCH DAMAGE.
 
 ******************************************************************************/
-/*$FreeBSD: src/sys/dev/e1000/e1000_ich8lan.c,v 1.4 2009/06/24 17:41:29 jfv Exp $*/
+/*$FreeBSD: src/sys/dev/e1000/e1000_ich8lan.c,v 1.5 2009/07/24 16:54:22 jfv Exp $*/
 
 /*
  * 82562G 10/100 Network Connection
@@ -307,7 +307,6 @@
 {
 	struct e1000_nvm_info *nvm = &hw->nvm;
 	struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan;
-	union ich8_hws_flash_status hsfsts;
 	u32 gfpreg, sector_base_addr, sector_end_addr;
 	s32 ret_val = E1000_SUCCESS;
 	u16 i;
@@ -346,20 +345,6 @@
 	/* Adjust to word count */
 	nvm->flash_bank_size /= sizeof(u16);
 
-	/*
-	 * Make sure the flash bank size does not overwrite the 4k
-	 * sector ranges. We may have 64k allotted to us but we only care
-	 * about the first 2 4k sectors. Therefore, if we have anything less
-	 * than 64k set in the HSFSTS register, we will reduce the bank size
-	 * down to 4k and let the rest remain unused. If berasesz == 3, then
-	 * we are working in 64k mode. Otherwise we are not.
-	 */
-	if (nvm->flash_bank_size > E1000_SHADOW_RAM_WORDS) {
-		hsfsts.regval = E1000_READ_FLASH_REG16(hw, ICH_FLASH_HSFSTS);
-		if (hsfsts.hsf_status.berasesz != 3)
-			nvm->flash_bank_size = E1000_SHADOW_RAM_WORDS;
-	}
-
 	nvm->word_size = E1000_SHADOW_RAM_WORDS;
 
 	/* Clear shadow ram */
@@ -1961,13 +1946,8 @@
 		iteration = 1;
 		break;
 	case 2:
-		if (hw->mac.type == e1000_ich9lan) {
-			sector_size = ICH_FLASH_SEG_SIZE_8K;
-			iteration = flash_bank_size / ICH_FLASH_SEG_SIZE_8K;
-		} else {
-			ret_val = -E1000_ERR_NVM;
-			goto out;
-		}
+		sector_size = ICH_FLASH_SEG_SIZE_8K;
+		iteration = 1;
 		break;
 	case 3:
 		sector_size = ICH_FLASH_SEG_SIZE_64K;

==== //depot/projects/usb/src/sys/dev/e1000/if_em.c#11 (text+ko) ====

@@ -30,7 +30,7 @@
   POSSIBILITY OF SUCH DAMAGE.
 
 ******************************************************************************/
-/*$FreeBSD: src/sys/dev/e1000/if_em.c,v 1.19 2009/06/29 18:17:10 jfv Exp $*/
+/*$FreeBSD: src/sys/dev/e1000/if_em.c,v 1.21 2009/07/24 21:35:52 jfv Exp $*/
 
 #ifdef HAVE_KERNEL_OPTION_HEADERS
 #include "opt_device_polling.h"
@@ -815,9 +815,9 @@
 #if __FreeBSD_version >= 700029
 	/* Register for VLAN events */
 	adapter->vlan_attach = EVENTHANDLER_REGISTER(vlan_config,
-	    em_register_vlan, 0, EVENTHANDLER_PRI_FIRST);
+	    em_register_vlan, adapter, EVENTHANDLER_PRI_FIRST);
 	adapter->vlan_detach = EVENTHANDLER_REGISTER(vlan_unconfig,
-	    em_unregister_vlan, 0, EVENTHANDLER_PRI_FIRST); 
+	    em_unregister_vlan, adapter, EVENTHANDLER_PRI_FIRST); 
 #endif
 
 	/* Tell the stack that the interface is not active */
@@ -919,9 +919,6 @@
 	bus_generic_detach(dev);
 	if_free(ifp);
 
-#if __FreeBSD_version >= 800000
-	drbr_free(adapter->br, M_DEVBUF);
-#endif
 	em_free_transmit_structures(adapter);
 	em_free_receive_structures(adapter);
 
@@ -3644,7 +3641,8 @@
 		adapter->txtag = NULL;
 	}
 #if __FreeBSD_version >= 800000
-        buf_ring_free(adapter->br, M_DEVBUF);
+	if (adapter->br != NULL)
+        	buf_ring_free(adapter->br, M_DEVBUF);
 #endif
 }
 
@@ -4715,12 +4713,15 @@
  * config EVENT
  */
 static void
-em_register_vlan(void *unused, struct ifnet *ifp, u16 vtag)
+em_register_vlan(void *arg, struct ifnet *ifp, u16 vtag)
 {
 	struct adapter	*adapter = ifp->if_softc;
 	u32		index, bit;
 
-	if ((vtag == 0) || (vtag > 4095))       /* Invalid */
+	if (ifp->if_softc !=  arg)   /* Not our event */
+		return;
+
+	if ((vtag == 0) || (vtag > 4095))       /* Invalid ID */
                 return;
 
 	index = (vtag >> 5) & 0x7F;
@@ -4736,11 +4737,14 @@
  * unconfig EVENT
  */
 static void
-em_unregister_vlan(void *unused, struct ifnet *ifp, u16 vtag)
+em_unregister_vlan(void *arg, struct ifnet *ifp, u16 vtag)
 {
 	struct adapter	*adapter = ifp->if_softc;
 	u32		index, bit;
 
+	if (ifp->if_softc !=  arg)
+		return;
+
 	if ((vtag == 0) || (vtag > 4095))       /* Invalid */
                 return;
 

==== //depot/projects/usb/src/sys/dev/e1000/if_igb.c#12 (text+ko) ====

@@ -30,7 +30,7 @@
   POSSIBILITY OF SUCH DAMAGE.
 
 ******************************************************************************/
-/*$FreeBSD: src/sys/dev/e1000/if_igb.c,v 1.19 2009/07/14 19:32:36 bz Exp $*/
+/*$FreeBSD: src/sys/dev/e1000/if_igb.c,v 1.21 2009/07/24 21:35:52 jfv Exp $*/
 
 
 #ifdef HAVE_KERNEL_OPTION_HEADERS
@@ -600,9 +600,9 @@
 
 	/* Register for VLAN events */
 	adapter->vlan_attach = EVENTHANDLER_REGISTER(vlan_config,
-	     igb_register_vlan, 0, EVENTHANDLER_PRI_FIRST);
+	     igb_register_vlan, adapter, EVENTHANDLER_PRI_FIRST);
 	adapter->vlan_detach = EVENTHANDLER_REGISTER(vlan_unconfig,
-	     igb_unregister_vlan, 0, EVENTHANDLER_PRI_FIRST);
+	     igb_unregister_vlan, adapter, EVENTHANDLER_PRI_FIRST);
 
 	/* Tell the stack that the interface is not active */
 	adapter->ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
@@ -3068,7 +3068,8 @@
 		}
 	}
 #if __FreeBSD_version >= 800000
-	buf_ring_free(txr->br, M_DEVBUF);
+	if (txr->br != NULL)
+		buf_ring_free(txr->br, M_DEVBUF);
 #endif
 	if (txr->tx_buffers != NULL) {
 		free(txr->tx_buffers, M_DEVBUF);
@@ -4304,11 +4305,14 @@
  * config EVENT
  */
 static void
-igb_register_vlan(void *unused, struct ifnet *ifp, u16 vtag)
+igb_register_vlan(void *arg, struct ifnet *ifp, u16 vtag)
 {
 	struct adapter	*adapter = ifp->if_softc;
 	u32		index, bit;
 
+	if (ifp->if_softc !=  arg)   /* Not our event */
+		return;
+
 	if ((vtag == 0) || (vtag > 4095))       /* Invalid */
                 return;
 
@@ -4325,11 +4329,14 @@
  * unconfig EVENT
  */
 static void
-igb_unregister_vlan(void *unused, struct ifnet *ifp, u16 vtag)
+igb_unregister_vlan(void *arg, struct ifnet *ifp, u16 vtag)
 {
 	struct adapter	*adapter = ifp->if_softc;
 	u32		index, bit;
 
+	if (ifp->if_softc !=  arg)
+		return;
+
 	if ((vtag == 0) || (vtag > 4095))       /* Invalid */
                 return;
 

==== //depot/projects/usb/src/sys/dev/ixgbe/ixgbe.c#10 (text+ko) ====

@@ -30,7 +30,7 @@
   POSSIBILITY OF SUCH DAMAGE.
 
 ******************************************************************************/
-/*$FreeBSD: src/sys/dev/ixgbe/ixgbe.c,v 1.15 2009/07/01 16:13:01 jfv Exp $*/
+/*$FreeBSD: src/sys/dev/ixgbe/ixgbe.c,v 1.17 2009/07/24 21:35:52 jfv Exp $*/
 
 #ifdef HAVE_KERNEL_OPTION_HEADERS
 #include "opt_device_polling.h"
@@ -539,9 +539,9 @@
 
 	/* Register for VLAN events */
 	adapter->vlan_attach = EVENTHANDLER_REGISTER(vlan_config,
-	    ixgbe_register_vlan, 0, EVENTHANDLER_PRI_FIRST);
+	    ixgbe_register_vlan, adapter, EVENTHANDLER_PRI_FIRST);
 	adapter->vlan_detach = EVENTHANDLER_REGISTER(vlan_unconfig,
-	    ixgbe_unregister_vlan, 0, EVENTHANDLER_PRI_FIRST);
+	    ixgbe_unregister_vlan, adapter, EVENTHANDLER_PRI_FIRST);
 
 	/* let hardware know driver is loaded */
 	ctrl_ext = IXGBE_READ_REG(hw, IXGBE_CTRL_EXT);
@@ -2961,7 +2961,8 @@
 		}
 	}
 #if __FreeBSD_version >= 800000
-	buf_ring_free(txr->br, M_DEVBUF);
+	if (txr->br != NULL)
+		buf_ring_free(txr->br, M_DEVBUF);
 #endif
 	if (txr->tx_buffers != NULL) {
 		free(txr->tx_buffers, M_DEVBUF);
@@ -4123,11 +4124,14 @@
 ** repopulate the real table.
 */
 static void
-ixgbe_register_vlan(void *unused, struct ifnet *ifp, u16 vtag)
+ixgbe_register_vlan(void *arg, struct ifnet *ifp, u16 vtag)
 {
 	struct adapter	*adapter = ifp->if_softc;
 	u16		index, bit;
 
+	if (ifp->if_softc !=  arg)   /* Not our event */
+		return;
+
 	if ((vtag == 0) || (vtag > 4095))	/* Invalid */
 		return;
 
@@ -4145,11 +4149,14 @@
 ** in the soft vfta.
 */
 static void
-ixgbe_unregister_vlan(void *unused, struct ifnet *ifp, u16 vtag)
+ixgbe_unregister_vlan(void *arg, struct ifnet *ifp, u16 vtag)
 {
 	struct adapter	*adapter = ifp->if_softc;
 	u16		index, bit;
 
+	if (ifp->if_softc !=  arg)
+		return;
+
 	if ((vtag == 0) || (vtag > 4095))	/* Invalid */
 		return;
 

==== //depot/projects/usb/src/sys/dev/uart/uart_cpu_powerpc.c#7 (text) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/uart/uart_cpu_powerpc.c,v 1.7 2009/04/08 22:19:39 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/uart/uart_cpu_powerpc.c,v 1.8 2009/07/23 12:51:27 nwhitehorn Exp $");
 
 #include "opt_platform.h"
 
@@ -78,6 +78,27 @@
 	return (uart_getenv(devtype, di, class));
 }
 #else
+static int
+ofw_get_uart_console(phandle_t opts, phandle_t *result, const char *inputdev,
+    const char *outputdev)
+{
+	char buf[64];
+	phandle_t input;
+
+	if (OF_getprop(opts, inputdev, buf, sizeof(buf)) == -1)
+		return (ENXIO);
+	input = OF_finddevice(buf);
+	if (input == -1)
+		return (ENXIO);
+	if (OF_getprop(opts, outputdev, buf, sizeof(buf)) == -1)
+		return (ENXIO);
+	if (OF_finddevice(buf) != input)
+		return (ENXIO);
+
+	*result = input;
+	return (0);
+}
+
 int
 uart_cpu_getdev(int devtype, struct uart_devinfo *di)
 {
@@ -94,15 +115,17 @@
 		return (ENXIO);
 	switch (devtype) {
 	case UART_DEV_CONSOLE:
-		if (OF_getprop(opts, "input-device", buf, sizeof(buf)) == -1)
-			return (ENXIO);
-		input = OF_finddevice(buf);
-		if (input == -1)
-			return (ENXIO);
-		if (OF_getprop(opts, "output-device", buf, sizeof(buf)) == -1)
-			return (ENXIO);
-		if (OF_finddevice(buf) != input)
-			return (ENXIO);
+		if (ofw_get_uart_console(opts, &input, "input-device",
+		    "output-device")) {
+			/*
+			 * At least some G5 Xserves require that we
+			 * probe input-device-1 as well
+			 */
+	
+			if (ofw_get_uart_console(opts, &input, "input-device-1",
+			    "output-device-1"))
+				return (ENXIO);
+		}
 		break;
 	case UART_DEV_DBGPORT:
 		if (!getenv_string("hw.uart.dbgport", buf, sizeof(buf)))

==== //depot/projects/usb/src/sys/dev/usb/usbdevs#68 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/dev/usb/usbdevs,v 1.418 2009/06/26 21:47:37 delphij Exp $
+$FreeBSD: src/sys/dev/usb/usbdevs,v 1.419 2009/07/27 20:17:20 weongyo Exp $
 /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */
 
 /*-
@@ -1181,6 +1181,8 @@
 product DLINK2 WUA1340		0x3c04	WUA-1340
 product DLINK2 DWA111		0x3c06	DWA-111
 product DLINK2 DWA110		0x3c07	DWA-110
+product DLINK2 DWA120_NF	0x3c0d	DWA-120 (no firmware)
+product DLINK2 DWA120		0x3c0e	DWA-120
 
 /* DMI products */
 product DMI CFSM_RW		0xa109	CF/SM Reader/Writer

==== //depot/projects/usb/src/sys/dev/usb/wlan/if_uath.c#15 (text+ko) ====

@@ -49,7 +49,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/wlan/if_uath.c,v 1.16 2009/06/23 02:19:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/wlan/if_uath.c,v 1.17 2009/07/27 20:17:20 weongyo Exp $");
 
 /*-
  * Driver for Atheros AR5523 USB parts.
@@ -180,6 +180,7 @@
 	UATH_DEV(DLINK,			DWLAG122),
 	UATH_DEV(DLINK,			DWLAG132),
 	UATH_DEV(DLINK,			DWLG132),
+	UATH_DEV(DLINK2,		DWA120),
 	UATH_DEV(GIGASET,		AR5523),
 	UATH_DEV(GIGASET,		SMCWUSBTG),
 	UATH_DEV(GLOBALSUN,		AR5523_1),

==== //depot/projects/usb/src/sys/fs/procfs/procfs_map.c#9 (text+ko) ====

@@ -32,7 +32,7 @@
  *
  *	@(#)procfs_status.c	8.3 (Berkeley) 2/17/94
  *
- * $FreeBSD: src/sys/fs/procfs/procfs_map.c,v 1.50 2009/06/23 20:45:22 kib Exp $
+ * $FreeBSD: src/sys/fs/procfs/procfs_map.c,v 1.51 2009/07/24 13:50:29 jhb Exp $
  */
 
 #include "opt_compat.h"
@@ -174,6 +174,7 @@
 				type = "swap";
 				vp = NULL;
 				break;
+			case OBJT_SG:
 			case OBJT_DEVICE:
 				type = "device";
 				vp = NULL;

==== //depot/projects/usb/src/sys/i386/i386/machdep.c#19 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/machdep.c,v 1.686 2009/06/23 22:42:39 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/machdep.c,v 1.687 2009/07/27 13:51:55 rpaulo Exp $");
 
 #include "opt_apic.h"
 #include "opt_atalk.h"
@@ -257,7 +257,10 @@
 	 */
 	sysenv = getenv("smbios.system.product");
 	if (sysenv != NULL) {
-		if (strncmp(sysenv, "MacBook", 7) == 0) {
+		if (strncmp(sysenv, "MacBook1,1", 10) == 0 ||
+		    strncmp(sysenv, "MacBookPro1,1", 13) == 0 ||
+		    strncmp(sysenv, "MacBookPro1,2", 13) == 0 ||
+		    strncmp(sysenv, "Macmini1,1", 10) == 0) {
 			if (bootverbose)
 				printf("Disabling LEGACY_USB_EN bit on "
 				    "Intel ICH.\n");

==== //depot/projects/usb/src/sys/i386/i386/pmap.c#23 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.642 2009/07/19 21:40:19 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.644 2009/07/24 13:50:29 jhb Exp $");
 
 /*
  *	Manages physical address maps.
@@ -3439,7 +3439,7 @@
 	int pat_mode;
 
 	VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
-	KASSERT(object->type == OBJT_DEVICE,
+	KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
 	    ("pmap_object_init_pt: non-device object"));
 	if (pseflag && 
 	    (addr & (NBPDR - 1)) == 0 && (size & (NBPDR - 1)) == 0) {
@@ -4473,6 +4473,7 @@
 	pt_entry_t *pte;
 	u_int opte, npte;
 	pd_entry_t *pde;
+	boolean_t changed;
 
 	base = trunc_page(va);
 	offset = va & PAGE_MASK;
@@ -4496,6 +4497,8 @@
 			return (EINVAL);
 	}
 
+	changed = FALSE;
+
 	/*
 	 * Ok, all the pages exist and are 4k, so run through them updating
 	 * their cache mode.
@@ -4513,6 +4516,8 @@
 			npte |= pmap_cache_bits(mode, 0);
 		} while (npte != opte &&
 		    !atomic_cmpset_int((u_int *)pte, opte, npte));
+		if (npte != opte)
+			changed = TRUE;
 		tmpva += PAGE_SIZE;
 		size -= PAGE_SIZE;
 	}
@@ -4521,10 +4526,12 @@
 	 * Flush CPU caches to make sure any data isn't cached that shouldn't
 	 * be, etc.
 	 */    
-	pmap_invalidate_range(kernel_pmap, base, tmpva);
-	/* If "Self Snoop" is supported, do nothing. */
-	if (!(cpu_feature & CPUID_SS))
-		pmap_invalidate_cache();
+	if (changed) {
+		pmap_invalidate_range(kernel_pmap, base, tmpva);
+		/* If "Self Snoop" is supported, do nothing. */
+		if (!(cpu_feature & CPUID_SS))
+			pmap_invalidate_cache();
+	}
 	return (0);
 }
 

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


More information about the p4-projects mailing list