PERFORCE change 120682 for review

Sam Leffler sam at FreeBSD.org
Thu May 31 20:37:38 UTC 2007


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

Change 120682 by sam at sam_ebb on 2007/05/31 20:37:10

	IFC @ 120681

Affected files ...

.. //depot/projects/wifi/sys/amd64/amd64/identcpu.c#10 integrate
.. //depot/projects/wifi/sys/amd64/amd64/intr_machdep.c#15 integrate
.. //depot/projects/wifi/sys/amd64/include/specialreg.h#6 integrate
.. //depot/projects/wifi/sys/arm/arm/intr.c#13 integrate
.. //depot/projects/wifi/sys/coda/coda_vnops.c#16 integrate
.. //depot/projects/wifi/sys/compat/linux/linux_misc.c#17 integrate
.. //depot/projects/wifi/sys/compat/ndis/subr_ndis.c#21 integrate
.. //depot/projects/wifi/sys/compat/opensolaris/kern/opensolaris_kobj.c#3 integrate
.. //depot/projects/wifi/sys/compat/opensolaris/sys/vnode.h#3 integrate
.. //depot/projects/wifi/sys/conf/files#51 integrate
.. //depot/projects/wifi/sys/conf/options#33 integrate
.. //depot/projects/wifi/sys/dev/acpica/Osd/OsdHardware.c#7 integrate
.. //depot/projects/wifi/sys/dev/acpica/acpi_dock.c#4 integrate
.. //depot/projects/wifi/sys/dev/em/README#8 integrate
.. //depot/projects/wifi/sys/dev/em/if_em.c#25 integrate
.. //depot/projects/wifi/sys/dev/fxp/if_fxp.c#22 integrate
.. //depot/projects/wifi/sys/dev/md/md.c#16 integrate
.. //depot/projects/wifi/sys/dev/pccard/pccard.c#16 integrate
.. //depot/projects/wifi/sys/dev/pccard/pccardvarp.h#4 integrate
.. //depot/projects/wifi/sys/dev/pccbb/pccbb.c#15 integrate
.. //depot/projects/wifi/sys/dev/pccbb/pccbbvar.h#8 integrate
.. //depot/projects/wifi/sys/dev/sound/clone.c#1 branch
.. //depot/projects/wifi/sys/dev/sound/clone.h#1 branch
.. //depot/projects/wifi/sys/dev/sound/pci/via8233.c#13 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/buffer.c#9 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/channel.c#12 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/channel.h#5 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/dsp.c#14 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/dsp.h#5 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/feeder.c#9 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/mixer.c#12 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/sndstat.c#8 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/sound.c#11 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/sound.h#12 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/vchan.c#11 integrate
.. //depot/projects/wifi/sys/dev/sound/pcm/vchan.h#3 integrate
.. //depot/projects/wifi/sys/dev/sound/unit.c#1 branch
.. //depot/projects/wifi/sys/dev/sound/unit.h#1 branch
.. //depot/projects/wifi/sys/dev/sound/usb/uaudio.c#14 integrate
.. //depot/projects/wifi/sys/dev/sound/version.h#1 branch
.. //depot/projects/wifi/sys/fs/devfs/devfs_vnops.c#34 integrate
.. //depot/projects/wifi/sys/fs/fifofs/fifo_vnops.c#16 integrate
.. //depot/projects/wifi/sys/fs/smbfs/smbfs_vnops.c#15 integrate
.. //depot/projects/wifi/sys/fs/unionfs/union.h#6 integrate
.. //depot/projects/wifi/sys/fs/unionfs/union_subr.c#12 integrate
.. //depot/projects/wifi/sys/fs/unionfs/union_vnops.c#21 integrate
.. //depot/projects/wifi/sys/i386/i386/intr_machdep.c#14 integrate
.. //depot/projects/wifi/sys/i386/ibcs2/imgact_coff.c#6 integrate
.. //depot/projects/wifi/sys/i386/include/specialreg.h#7 integrate
.. //depot/projects/wifi/sys/ia64/ia64/interrupt.c#11 integrate
.. //depot/projects/wifi/sys/kern/kern_acct.c#12 integrate
.. //depot/projects/wifi/sys/kern/kern_conf.c#19 integrate
.. //depot/projects/wifi/sys/kern/kern_descrip.c#26 integrate
.. //depot/projects/wifi/sys/kern/kern_exec.c#23 integrate
.. //depot/projects/wifi/sys/kern/kern_intr.c#18 integrate
.. //depot/projects/wifi/sys/kern/kern_ktrace.c#11 integrate
.. //depot/projects/wifi/sys/kern/kern_linker.c#9 integrate
.. //depot/projects/wifi/sys/kern/kern_sig.c#19 integrate
.. //depot/projects/wifi/sys/kern/kern_sx.c#11 integrate
.. //depot/projects/wifi/sys/kern/link_elf.c#8 integrate
.. //depot/projects/wifi/sys/kern/link_elf_obj.c#6 integrate
.. //depot/projects/wifi/sys/kern/tty_cons.c#7 integrate
.. //depot/projects/wifi/sys/kern/uipc_sockbuf.c#6 integrate
.. //depot/projects/wifi/sys/kern/vfs_syscalls.c#23 integrate
.. //depot/projects/wifi/sys/kern/vfs_vnops.c#22 integrate
.. //depot/projects/wifi/sys/kern/vnode_if.src#15 integrate
.. //depot/projects/wifi/sys/modules/sound/sound/Makefile#6 integrate
.. //depot/projects/wifi/sys/net/if_bridge.c#14 integrate
.. //depot/projects/wifi/sys/netinet/sctp_bsd_addr.c#7 integrate
.. //depot/projects/wifi/sys/netinet/sctp_constants.h#10 integrate
.. //depot/projects/wifi/sys/netinet/sctp_indata.c#10 integrate
.. //depot/projects/wifi/sys/netinet/sctp_input.c#10 integrate
.. //depot/projects/wifi/sys/netinet/sctp_os_bsd.h#8 integrate
.. //depot/projects/wifi/sys/netinet/sctp_output.c#10 integrate
.. //depot/projects/wifi/sys/netinet/sctp_pcb.c#10 integrate
.. //depot/projects/wifi/sys/netinet/sctp_pcb.h#7 integrate
.. //depot/projects/wifi/sys/netinet/sctputil.c#10 integrate
.. //depot/projects/wifi/sys/netinet/sctputil.h#9 integrate
.. //depot/projects/wifi/sys/netinet/tcp_usrreq.c#26 integrate
.. //depot/projects/wifi/sys/pc98/pc98/machdep.c#12 integrate
.. //depot/projects/wifi/sys/powerpc/powerpc/intr_machdep.c#5 integrate
.. //depot/projects/wifi/sys/security/audit/audit.c#6 integrate
.. //depot/projects/wifi/sys/security/audit/audit.h#4 integrate
.. //depot/projects/wifi/sys/security/audit/audit_bsm_token.c#4 integrate
.. //depot/projects/wifi/sys/security/audit/audit_private.h#4 integrate
.. //depot/projects/wifi/sys/security/audit/audit_syscalls.c#6 integrate
.. //depot/projects/wifi/sys/sparc64/sparc64/intr_machdep.c#6 integrate
.. //depot/projects/wifi/sys/sun4v/sun4v/intr_machdep.c#5 integrate
.. //depot/projects/wifi/sys/sys/conf.h#18 integrate
.. //depot/projects/wifi/sys/sys/filedesc.h#13 integrate
.. //depot/projects/wifi/sys/sys/sx.h#10 integrate
.. //depot/projects/wifi/sys/sys/vnode.h#34 integrate
.. //depot/projects/wifi/sys/ufs/ufs/ufs_quota.c#11 integrate
.. //depot/projects/wifi/sys/vm/swap_pager.c#18 integrate
.. //depot/projects/wifi/sys/vm/vm_map.c#18 integrate

Differences ...

==== //depot/projects/wifi/sys/amd64/amd64/identcpu.c#10 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.153 2007/03/26 18:03:29 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.154 2007/05/30 14:23:26 des Exp $");
 
 #include "opt_cpu.h"
 
@@ -236,7 +236,7 @@
 				"\015<b12>"
 				"\016CX16"	/* CMPXCHG16B Instruction */
 				"\017xTPR"	/* Send Task Priority Messages*/
-				"\020<b15>"
+				"\020PDCM"	/* Perf/Debug Capability MSR */
 				"\021<b16>"
 				"\022<b17>"
 				"\023DCA"	/* Direct Cache Access */
@@ -342,13 +342,8 @@
 			}
 
 			if (cpu_feature & CPUID_HTT && strcmp(cpu_vendor,
-			    "AuthenticAMD") == 0) {
+			    "AuthenticAMD") == 0)
 				cpu_feature &= ~CPUID_HTT;
-				if (bootverbose)
-	    				printf("\nHTT bit cleared - FreeBSD"
-					    " does not have licensing issues"
-					    " requiring it.\n");
-			}
 
 			/*
 			 * If this CPU supports HTT or CMP then mention the

==== //depot/projects/wifi/sys/amd64/amd64/intr_machdep.c#15 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.32 2007/05/08 21:29:12 jhb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.33 2007/05/31 19:25:34 piso Exp $
  */
 
 /*
@@ -310,7 +310,7 @@
 	struct thread *td;
 	struct intr_event *ie;
 	struct intr_handler *ih;
-	int error, vector, thread;
+	int error, vector, thread, ret;
 
 	td = curthread;
 
@@ -356,6 +356,7 @@
 	 * a trapframe as its argument.
 	 */
 	td->td_intr_nesting_level++;
+	ret = 0;
 	thread = 0;
 	critical_enter();
 	TAILQ_FOREACH(ih, &ie->ie_handlers, ih_next) {
@@ -367,9 +368,17 @@
 		    ih->ih_filter, ih->ih_argument == NULL ? frame :
 		    ih->ih_argument, ih->ih_name);
 		if (ih->ih_argument == NULL)
-			ih->ih_filter(frame);
+			ret = ih->ih_filter(frame);
 		else
-			ih->ih_filter(ih->ih_argument);
+			ret = ih->ih_filter(ih->ih_argument);
+		/*
+		 * Wrapper handler special case: see
+		 * i386/intr_machdep.c::intr_execute_handlers()
+		 */
+		if (!thread) {
+			if (ret == FILTER_SCHEDULE_THREAD)
+				thread = 1;
+		}
 	}
 
 	/*

==== //depot/projects/wifi/sys/amd64/include/specialreg.h#6 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)specialreg.h	7.1 (Berkeley) 5/9/91
- * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.38 2007/03/20 20:22:45 jkim Exp $
+ * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.39 2007/05/31 11:26:44 des Exp $
  */
 
 #ifndef _MACHINE_SPECIALREG_H_
@@ -123,6 +123,7 @@
 #define	CPUID2_CNXTID	0x00000400
 #define	CPUID2_CX16	0x00002000
 #define	CPUID2_XTPR	0x00004000
+#define	CPUID2_PDCM	0x00008000
 #define	CPUID2_DCA	0x00040000
 
 /*

==== //depot/projects/wifi/sys/arm/arm/intr.c#13 (text+ko) ====

@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.14 2007/02/23 12:18:27 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.15 2007/05/31 19:25:34 piso Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/syslog.h> 
@@ -104,7 +104,7 @@
 	struct intr_event *event;
 	struct intr_handler *ih;
 	struct thread *td = curthread;
-	int i, thread;
+	int i, thread, ret;
 
 	PCPU_LAZY_INC(cnt.v_intr);
 	td->td_intr_nesting_level++;
@@ -116,13 +116,22 @@
 			continue;
 
 		/* Execute fast handlers. */
+		ret = 0;
 		thread = 0;
 		TAILQ_FOREACH(ih, &event->ie_handlers, ih_next) {
 			if (ih->ih_filter == NULL)
 				thread = 1;
 			else
-				ih->ih_filter(ih->ih_argument ?
+				ret = ih->ih_filter(ih->ih_argument ?
 				    ih->ih_argument : frame);
+			/*
+			 * Wrapper handler special case: see
+			 * i386/intr_machdep.c::intr_execute_handlers()
+			 */
+			if (!thread) {
+				if (ret == FILTER_SCHEDULE_THREAD)
+					thread = 1;
+			}
 		}
 
 		/* Schedule thread if needed. */

==== //depot/projects/wifi/sys/coda/coda_vnops.c#16 (text+ko) ====

@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/coda/coda_vnops.c,v 1.71 2007/05/18 13:02:12 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/coda/coda_vnops.c,v 1.72 2007/05/31 11:51:48 kib Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -257,7 +257,7 @@
     cp->c_inode = inode;
 
     /* Open the cache file. */
-    error = VOP_OPEN(vp, flag, cred, td, -1); 
+    error = VOP_OPEN(vp, flag, cred, td, NULL); 
     if (error) {
     	printf("coda_open: VOP_OPEN on container failed %d\n", error);
 	return (error);
@@ -410,7 +410,7 @@
 	    opened_internally = 1;
 	    MARK_INT_GEN(CODA_OPEN_STATS);
 	    error = VOP_OPEN(vp, (rw == UIO_READ ? FREAD : FWRITE), 
-			     cred, td, -1);
+			     cred, td, NULL);
 printf("coda_rdwr: Internally Opening %p\n", vp);
 	    if (error) {
 		printf("coda_rdwr: VOP_OPEN on container failed %d\n", error);
@@ -1525,7 +1525,7 @@
 	if (cp->c_ovp == NULL) {
 	    opened_internally = 1;
 	    MARK_INT_GEN(CODA_OPEN_STATS);
-	    error = VOP_OPEN(vp, FREAD, cred, td, -1);
+	    error = VOP_OPEN(vp, FREAD, cred, td, NULL);
 printf("coda_readdir: Internally Opening %p\n", vp);
 	    if (error) {
 		printf("coda_readdir: VOP_OPEN on container failed %d\n", error);

==== //depot/projects/wifi/sys/compat/linux/linux_misc.c#17 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.209 2007/05/18 07:10:43 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.210 2007/05/31 11:51:48 kib Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"
@@ -305,7 +305,7 @@
 	if (error)
 		goto cleanup;
 #endif
-	error = VOP_OPEN(vp, FREAD, td->td_ucred, td, -1);
+	error = VOP_OPEN(vp, FREAD, td->td_ucred, td, NULL);
 	if (error)
 		goto cleanup;
 
@@ -1451,6 +1451,7 @@
 int
 linux_gettid(struct thread *td, struct linux_gettid_args *args)
 {
+
 #ifdef DEBUG
 	if (ldebug(gettid))
 		printf(ARGS(gettid, ""));

==== //depot/projects/wifi/sys/compat/ndis/subr_ndis.c#21 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.107 2007/04/06 11:18:57 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.108 2007/05/31 11:51:49 kib Exp $");
 
 /*
  * This file implements a translation layer between the BSD networking
@@ -2961,7 +2961,7 @@
 	NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, path, td);
 
 	flags = FREAD;
-	error = vn_open(&nd, &flags, 0, -1);
+	error = vn_open(&nd, &flags, 0, NULL);
 	if (error) {
 		*status = NDIS_STATUS_FILE_NOT_FOUND;
 		ExFreePool(fh);

==== //depot/projects/wifi/sys/compat/opensolaris/kern/opensolaris_kobj.c#3 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_kobj.c,v 1.3 2007/05/02 01:03:10 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/opensolaris/kern/opensolaris_kobj.c,v 1.4 2007/05/31 11:51:49 kib Exp $");
 
 #include <sys/types.h>
 #include <sys/systm.h>
@@ -77,7 +77,7 @@
 
 	flags = FREAD;
 	NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_SYSSPACE, file, td);
-	error = vn_open_cred(&nd, &flags, 0, td->td_ucred, -1);
+	error = vn_open_cred(&nd, &flags, 0, td->td_ucred, NULL);
 	NDFREE(&nd, NDF_ONLY_PNBUF);
 	if (error != 0)
 		return (NULL);

==== //depot/projects/wifi/sys/compat/opensolaris/sys/vnode.h#3 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/compat/opensolaris/sys/vnode.h,v 1.2 2007/04/23 00:52:06 pjd Exp $
+ * $FreeBSD: src/sys/compat/opensolaris/sys/vnode.h,v 1.3 2007/05/31 11:51:49 kib Exp $
  */
 
 #ifndef _OPENSOLARIS_SYS_VNODE_H_
@@ -170,7 +170,7 @@
 		td->td_proc->p_fd->fd_cdir = rootvnode;
 
 	NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_SYSSPACE, pnamep, td);
-	error = vn_open_cred(&nd, &filemode, createmode, td->td_ucred, -1);
+	error = vn_open_cred(&nd, &filemode, createmode, td->td_ucred, NULL);
 	NDFREE(&nd, NDF_ONLY_PNBUF);
 	if (error == 0) {
 		/* We just unlock so we hold a reference. */

==== //depot/projects/wifi/sys/conf/files#51 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1211 2007/05/25 09:48:18 kmacy Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1213 2007/05/31 19:47:39 thompsa Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -916,6 +916,8 @@
 dev/sn/if_sn_isa.c		optional sn isa
 dev/sn/if_sn_pccard.c		optional sn pccard
 dev/snp/snp.c			optional snp
+dev/sound/clone.c		optional sound
+dev/sound/unit.c		optional sound
 dev/sound/isa/ad1816.c		optional snd_ad1816 isa
 dev/sound/isa/ess.c		optional snd_ess isa
 dev/sound/isa/gusc.c		optional snd_gusc isa
@@ -1557,13 +1559,13 @@
 net/bpf.c			standard
 net/bpf_jitter.c		optional bpf_jitter
 net/bpf_filter.c		optional bpf | netgraph_bpf
-net/bridgestp.c			optional if_bridge
+net/bridgestp.c			optional bridge | if_bridge
 net/bsd_comp.c			optional ppp_bsdcomp
 net/ieee8023ad_lacp.c		optional lagg
 net/if.c			standard
 net/if_arcsubr.c		optional arcnet
 net/if_atmsubr.c		optional atm
-net/if_bridge.c			optional if_bridge
+net/if_bridge.c			optional bridge | if_bridge
 net/if_clone.c			standard
 net/if_disc.c			optional disc
 net/if_edsc.c			optional edsc

==== //depot/projects/wifi/sys/conf/options#33 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.588 2007/05/15 16:43:01 mav Exp $
+# $FreeBSD: src/sys/conf/options,v 1.589 2007/05/30 17:39:44 rrs Exp $
 #
 #        On the handling of kernel options
 #
@@ -422,6 +422,7 @@
 SCTP_SACK_RWND_LOGGING  opt_sctp.h
 SCTP_FLIGHT_LOGGING     opt_sctp.h
 SCTP_MBUF_LOGGING       opt_sctp.h
+SCTP_PACKET_LOGGING     opt_sctp.h
 
 # Netgraph(4). Use option NETGRAPH to enable the base netgraph code.
 # Each netgraph node type can be either be compiled into the kernel

==== //depot/projects/wifi/sys/dev/acpica/Osd/OsdHardware.c#7 (text+ko) ====

@@ -30,13 +30,15 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.21 2006/09/24 09:39:17 hrs Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdHardware.c,v 1.22 2007/05/31 00:52:32 njl Exp $");
 
 #include <contrib/dev/acpica/acpi.h>
 
+#include <sys/bus.h>
 #include <sys/kernel.h>
 #include <machine/bus.h>
 #include <machine/pci_cfgreg.h>
+#include <dev/acpica/acpivar.h>
 #include <dev/pci/pcireg.h>
 
 /*
@@ -232,10 +234,6 @@
     return (AE_OK);
 }
 
-/* XXX should use acpivar.h but too many include dependencies */
-extern ACPI_STATUS acpi_GetInteger(ACPI_HANDLE handle, char *path, int
-    *number);
-
 /*
  * Depth-first recursive case for finding the bus, given the slot/function.
  */
@@ -271,10 +269,8 @@
 
     /* Get the parent's slot and function. */
     status = acpi_GetInteger(parent, "_ADR", &adr);
-    if (ACPI_FAILURE(status)) {
-	printf("acpi_bus_number: can't get _ADR\n");
+    if (ACPI_FAILURE(status))
 	return (bus);
-    }
     slot = ACPI_HIWORD(adr);
     func = ACPI_LOWORD(adr);
 
@@ -288,7 +284,7 @@
     header = pci_cfgregread(bus, slot, func, PCIR_HDRTYPE, 1) & PCIM_HDRTYPE;
     if (header == PCIM_HDRTYPE_BRIDGE && subclass == PCIS_BRIDGE_PCI)
 	bus = pci_cfgregread(bus, slot, func, PCIR_SECBUS_1, 1);
-    if (header == PCIM_HDRTYPE_CARDBUS && subclass == PCIS_BRIDGE_CARDBUS)
+    else if (header == PCIM_HDRTYPE_CARDBUS && subclass == PCIS_BRIDGE_CARDBUS)
 	bus = pci_cfgregread(bus, slot, func, PCIR_SECBUS_2, 1);
     return (bus);
 }
@@ -328,7 +324,8 @@
 	bus = acpi_bus_number(rhandle, parent, *PciId);
     (*PciId)->Bus = bus;
     if (bootverbose) {
-	printf("AcpiOsDerivePciId: bus %d dev %d func %d\n",
-	    (*PciId)->Bus, (*PciId)->Device, (*PciId)->Function);
+	printf("AcpiOsDerivePciId: %s -> bus %d dev %d func %d\n",
+	    acpi_name(chandle), (*PciId)->Bus, (*PciId)->Device,
+	    (*PciId)->Function);
     }
 }

==== //depot/projects/wifi/sys/dev/acpica/acpi_dock.c#4 (text) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/acpica/acpi_dock.c,v 1.5 2007/03/22 18:16:40 jkim Exp $
+ * $FreeBSD: src/sys/dev/acpica/acpi_dock.c,v 1.6 2007/05/31 08:49:51 takawata Exp $
  */
 
 #include "opt_acpi.h"
@@ -41,11 +41,6 @@
 #define _COMPONENT	ACPI_DOCK
 ACPI_MODULE_NAME("DOCK")
 
-/* For Notify handler */
-#define ACPI_DOCK_NOTIFY_BUS_CHECK	0x00
-#define ACPI_DOCK_NOTIFY_DEVICE_CHECK	0x01
-#define ACPI_DOCK_NOTIFY_EJECT_REQUEST	0x03
-
 /* For Docking status */
 #define ACPI_DOCK_STATUS_UNKNOWN	-1
 #define ACPI_DOCK_STATUS_UNDOCKED	0
@@ -397,11 +392,11 @@
 
 	ACPI_SERIAL_BEGIN(dock);
 	switch (notify) {
-	case ACPI_DOCK_NOTIFY_BUS_CHECK:
-	case ACPI_DOCK_NOTIFY_DEVICE_CHECK:
+	case ACPI_NOTIFY_BUS_CHECK:
+	case ACPI_NOTIFY_DEVICE_CHECK:
 		acpi_dock_device_check(dev);
 		break;
-	case ACPI_DOCK_NOTIFY_EJECT_REQUEST:
+	case ACPI_NOTIFY_EJECT_REQUEST:
 		acpi_dock_removal(dev);
 		break;
 	default:

==== //depot/projects/wifi/sys/dev/em/README#8 (text+ko) ====

@@ -1,8 +1,8 @@
-$FreeBSD: src/sys/dev/em/README,v 1.14 2007/05/04 00:00:11 jfv Exp $
-FreeBSD Driver for the Gigabit Family of Adapters
-============================================================
+$FreeBSD: src/sys/dev/em/README,v 1.15 2007/05/30 23:32:21 jfv Exp $
+FreeBSD* Driver for Intel Network Connection
+=============================================
 
-April 18, 2007
+May 30, 2007
 
 
 Contents
@@ -21,8 +21,8 @@
 Overview
 ========
 
-This file describes the FreeBSD* driver for the Gigabit Family of
-Adapters. This driver has been developed for use with FreeBSD, Release 6.x.
+This file describes the FreeBSD* driver for Intel Network Connection.
+This driver has been developed for use with FreeBSD, Release 7.x.
 
 For questions related to hardware requirements, refer to the documentation
 supplied with your Gigabit adapter. All hardware requirements listed
@@ -88,13 +88,6 @@
 
         cd em-x.x.x/src
         cp *.[ch] /usr/src/sys/dev/em
-        cp Makefile.kernel /usr/src/sys/modules/em/Makefile
-
-        NOTE: At this point you MUST install a patch, kernbuild.patch, which is
-        located in the patches directory. This is applied as shown below where
-        "$PATH_TO_KERNBUILD_PATCH" is the location of the kernbuild.patch:
-
-        cd /usr/src/sys; patch -p1 < $PATH_TO_KERNBUILD_PATCH
 
         Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in
         /usr/src/sys/i386/conf, and ensure the following line is present:
@@ -211,6 +204,8 @@
      Intel(R) PRO/1000 PT Network Connection
      Intel(R) PRO/1000 PT Dual Port Server Adapter
      Intel(R) PRO/1000 PT Dual Port Network Connection
+     Intel(R) PRO/1000 PT Quad Port Server Adapter
+     Intel(R) PRO/1000 PF Quad Port Server Adapter
      Intel(R) PRO/1000 PF Server Adapter
      Intel(R) PRO/1000 PF Network Connection
      Intel(R) PRO/1000 PF Dual Port Server Adapter
@@ -262,17 +257,12 @@
 
   To remove a VLAN interface:
 
-        ifconfig <vlan_name> destroy
+  Intel Network Connection        ifconfig <vlan_name> destroy
 
 
   Polling
   -------
-  NOTES: Device Polling is only valid for non-SMP (Symmetric MultiProcessing)
-  kernels.
 
-        The driver has to be compiled into the kernel for Device Polling to be
-        enabled in the driver.
-
   To enable polling in the driver, add the following options to the kernel
   configuration, and then recompile the kernel:
 
@@ -280,9 +270,9 @@
         options HZ=1000
 
   At runtime use:
-        sysctl kern.polling.enable=1 to turn polling on
-  Use:
-        sysctl kern.polling.enable=0 to turn polling off
+        ifconfig emX polling (to turn polling on)
+  and:
+        ifconfig emX -polling  (to turn it off)
 
 
   Checksum Offload
@@ -317,20 +307,25 @@
 
   TSO
   ---
-  The FreeBSD driver now offers support for TSO (TCP Segmentation Offload).
-  To enable this support perform the following:
+  The FreeBSD driver offers support for TSO (TCP Segmentation Offload).
+
+  You can enable/disable it in two ways/places:
+
+        -  sysctl net.inet.tcp.tso=0    (or 1 to enable it)
+
+  Doing this disables TSO in the stack and will affect all adapters.
+
+        -  ifconfig emX -tso
+
+  Doing this will disable TSO only for this adapter.
 
-  Patch the kernel with the patch supplied in the tarball.
-  Rebuild and install the kernel.
-  Recompile the driver. You must alter the Makefile to build the driver with
-  E1000_TSO defined.
+  To enable:
 
-  Enable or disable TSO:
-          sysctl net.inet.tcp.tso=1 or 0
-          0=disabled, 1=enabled (TSO is enabled by default).
+        -  ifconfig emX tso
 
-  NOTE: TSO is not supported on 82547 and 82544-based adapters, as well as
-  older adapters.
+  NOTES: By default only PCI-Express adapters are ENABLED to do TSO. Others
+  can be enabled by the user at their own risk
+  TSO is not supported on 82547 and 82544-based adapters, as well as older adapters.
 
 
 Known Limitations
@@ -346,14 +341,7 @@
   check your system's BIOS by downloading the Linux Firmware Developer Kit
   that can be obtained at http://www.linuxfirmwarekit.org/
 
-  FreeBSD version 4.x with Symmetric MultiProcessing (SMP)
-  --------------------------------------------------------
 
-  In FreeBSD version 4.x with Symmetric MultiProcessing (SMP), there is a known
-  issue on some newer hardware.  The problem is kernel generic and only in SMP
-  mode.  The workaround is to either use FreeBSD version 4.x in single processor
-  mode, or use FreeBSD 5.4 or later.
-
   There are known performance issues with this driver when running UDP traffic
   with Jumbo Frames.
   ----------------------------------------------------------------------------
@@ -369,12 +357,12 @@
 
   The driver can be compiled with the following changes:
 
-  Edit ./em.x.x.x/src/if_em.h to uncomment the #define E1000_MASTER_SLAVE
-  from within the comments.  For example, change from:
+  Edit ./em.x.x.x/src/if_em.h to change the #define EM_MASTER_SLAVE
+  For example, change from:
 
-      /* #define E1000_MASTER_SLAVE   2 */
+      #define EM_MASTER_SLAVE   e1000_ms_hw_default
   to:
-      #define E1000_MASTER_SLAVE   2
+      #define EM_MASTER_SLAVE   2
 
   Use one of the following options:
       1 = Master mode

==== //depot/projects/wifi/sys/dev/em/if_em.c#25 (text+ko) ====

@@ -31,7 +31,7 @@
 
 ***************************************************************************/
 
-/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.179 2007/05/24 18:11:11 jfv Exp $*/
+/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.180 2007/05/30 23:32:21 jfv Exp $*/
 
 #ifdef HAVE_KERNEL_OPTION_HEADERS
 #include "opt_device_polling.h"
@@ -89,7 +89,7 @@
 /*********************************************************************
  *  Driver version:
  *********************************************************************/
-char em_driver_version[] = "Version - 6.5.2";
+char em_driver_version[] = "Version - 6.5.3";
 
 
 /*********************************************************************
@@ -720,10 +720,10 @@
 		adapter->pcix_82544 = FALSE;
 
 	/* Get control from any management/hw control */
-	if (((adapter->hw.mac.type != e1000_82573) &&
-	    (adapter->hw.mac.type != e1000_ich8lan) &&
-	    (adapter->hw.mac.type != e1000_ich9lan)) ||
-	    !e1000_check_mng_mode(&adapter->hw))
+	if (((adapter->hw.mac.type == e1000_82573) ||
+	    (adapter->hw.mac.type == e1000_ich8lan) ||
+	    (adapter->hw.mac.type == e1000_ich9lan)) &&
+	    e1000_check_mng_mode(&adapter->hw))
 		em_get_hw_control(adapter);
 
 	/* Tell the stack that the interface is not active */
@@ -779,11 +779,13 @@
 	e1000_phy_hw_reset(&adapter->hw);
 
 	em_release_manageability(adapter);
-	if (((adapter->hw.mac.type != e1000_82573) &&
-	    (adapter->hw.mac.type != e1000_ich8lan) &&
-	    (adapter->hw.mac.type != e1000_ich9lan)) ||
-	    !e1000_check_mng_mode(&adapter->hw))
+
+	if (((adapter->hw.mac.type == e1000_82573) ||
+	    (adapter->hw.mac.type == e1000_ich8lan) ||
+	    (adapter->hw.mac.type == e1000_ich9lan)) &&
+	    e1000_check_mng_mode(&adapter->hw))
 		em_release_hw_control(adapter);
+
 	if (adapter->wol) {
 		E1000_WRITE_REG(&adapter->hw, E1000_WUC, E1000_WUC_PME_EN);
 		E1000_WRITE_REG(&adapter->hw, E1000_WUFC, adapter->wol);
@@ -845,11 +847,13 @@
 	em_stop(adapter);
 
         em_release_manageability(adapter);
-        if (((adapter->hw.mac.type != e1000_82573) &&
-            (adapter->hw.mac.type != e1000_ich8lan) &&
-            (adapter->hw.mac.type != e1000_ich9lan)) ||
-            !e1000_check_mng_mode(&adapter->hw))
+
+        if (((adapter->hw.mac.type == e1000_82573) ||
+            (adapter->hw.mac.type == e1000_ich8lan) ||
+            (adapter->hw.mac.type == e1000_ich9lan)) &&
+            e1000_check_mng_mode(&adapter->hw))
                 em_release_hw_control(adapter);
+
         if (adapter->wol) {
                 E1000_WRITE_REG(&adapter->hw, E1000_WUC, E1000_WUC_PME_EN);
                 E1000_WRITE_REG(&adapter->hw, E1000_WUFC, adapter->wol);
@@ -871,10 +875,10 @@
 	em_init_locked(adapter);
 
         /* Get control from any management/hw control */
-	if (((adapter->hw.mac.type != e1000_82573) &&
-	    (adapter->hw.mac.type != e1000_ich8lan) &&
-	    (adapter->hw.mac.type != e1000_ich9lan)) ||
-	    !e1000_check_mng_mode(&adapter->hw))
+	if (((adapter->hw.mac.type == e1000_82573) ||
+	    (adapter->hw.mac.type == e1000_ich8lan) ||
+	    (adapter->hw.mac.type == e1000_ich9lan)) &&
+	    e1000_check_mng_mode(&adapter->hw))
 		em_get_hw_control(adapter);
 	em_init_manageability(adapter);
 
@@ -3151,8 +3155,8 @@
 	/* Program the Transmit Control Register */
 	tctl = E1000_READ_REG(&adapter->hw, E1000_TCTL);
 	tctl &= ~E1000_TCTL_CT;
-	tctl = E1000_TCTL_PSP | E1000_TCTL_RTLC | E1000_TCTL_EN |
-		   (E1000_COLLISION_THRESHOLD << E1000_CT_SHIFT);
+	tctl |= (E1000_TCTL_PSP | E1000_TCTL_RTLC | E1000_TCTL_EN |
+		   (E1000_COLLISION_THRESHOLD << E1000_CT_SHIFT));
 
 	if (adapter->hw.mac.type >= e1000_82571)
 		tctl |= E1000_TCTL_MULR;
@@ -4628,7 +4632,6 @@
 	hw->dev_spec = malloc(size, M_DEVBUF, M_NOWAIT | M_ZERO);
 	if (hw->dev_spec == NULL)
 		error = ENOMEM;
-	bzero(hw->dev_spec, size);
 
 	return (error);
 }

==== //depot/projects/wifi/sys/dev/fxp/if_fxp.c#22 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.265 2007/03/28 18:10:50 remko Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.266 2007/05/30 03:46:04 kevlo Exp $");
 
 /*
  * Intel EtherExpress Pro/100B PCI Fast Ethernet driver
@@ -249,7 +249,7 @@
 static int		fxp_serial_ifmedia_upd(struct ifnet *ifp);
 static void		fxp_serial_ifmedia_sts(struct ifnet *ifp,
 			    struct ifmediareq *ifmr);
-static volatile int	fxp_miibus_readreg(device_t dev, int phy, int reg);
+static int		fxp_miibus_readreg(device_t dev, int phy, int reg);
 static void		fxp_miibus_writereg(device_t dev, int phy, int reg,
 			    int value);
 static void		fxp_load_ucode(struct fxp_softc *sc);
@@ -2323,7 +2323,7 @@
 	return (0);
 }
 
-static volatile int
+static int
 fxp_miibus_readreg(device_t dev, int phy, int reg)
 {
 	struct fxp_softc *sc = device_get_softc(dev);

==== //depot/projects/wifi/sys/dev/md/md.c#16 (text+ko) ====

@@ -6,7 +6,7 @@
  * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
  * ----------------------------------------------------------------------------
  *
- * $FreeBSD: src/sys/dev/md/md.c,v 1.167 2006/12/14 11:34:07 kib Exp $
+ * $FreeBSD: src/sys/dev/md/md.c,v 1.168 2007/05/31 11:51:49 kib Exp $
  *
  */
 
@@ -913,7 +913,7 @@
 	if ((mdio->md_options & MD_READONLY) != 0)
 		flags &= ~FWRITE;
 	NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, sc->file, td);
-	error = vn_open(&nd, &flags, 0, -1);
+	error = vn_open(&nd, &flags, 0, NULL);
 	if (error != 0)
 		return (error);
 	vfslocked = NDHASGIANT(&nd);

==== //depot/projects/wifi/sys/dev/pccard/pccard.c#16 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/pccard/pccard.c,v 1.117 2007/02/23 12:18:49 piso Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/pccard/pccard.c,v 1.118 2007/05/31 19:29:20 piso Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -118,7 +118,8 @@
 static int	pccard_release_resource(device_t dev, device_t child, int type,
 		    int rid, struct resource *r);
 static void	pccard_child_detached(device_t parent, device_t dev);
-static int	pccard_intr(void *arg);
+static int      pccard_filter(void *arg);
+static void	pccard_intr(void *arg);
 static int	pccard_setup_intr(device_t dev, device_t child,
 		    struct resource *irq, int flags, driver_filter_t *filt, 
 		    driver_intr_t *intr, void *arg, void **cookiep);
@@ -1177,7 +1178,7 @@
 }
 
 static int
-pccard_intr(void *arg)
+pccard_filter(void *arg)
 {
 	struct pccard_function *pf = (struct pccard_function*) arg;
 	int reg;
@@ -1208,12 +1209,20 @@
 			doisr = 0;
 	}
 	if (doisr) {
-		if (pf->filt_handler != NULL)
-			pf->filt_handler(pf->intr_handler_arg);
+		if (pf->intr_filter != NULL)
+			return (pf->intr_filter(pf->intr_handler_arg));
 		else 
-			pf->intr_handler(pf->intr_handler_arg);
+			return (FILTER_SCHEDULE_THREAD);
 	}
-	return (FILTER_HANDLED);
+	return (FILTER_STRAY);
+}
+
+static void
+pccard_intr(void *arg)
+{
+	struct pccard_function *pf = (struct pccard_function*) arg;
+	
+	pf->intr_handler(pf->intr_handler_arg);	
 }
 
 static int
@@ -1226,19 +1235,13 @@
 	struct pccard_function *pf = ivar->pf;
 	int err;
 
-	if (pf->intr_handler != NULL)
+	if (pf->intr_filter != NULL || pf->intr_handler != NULL)
 		panic("Only one interrupt handler per function allowed");
-	if (filt != NULL && intr != NULL)
-		return (EINVAL);
-	if (filt != NULL)
-		err = bus_generic_setup_intr(dev, child, irq, flags, 
-		    pccard_intr, NULL, pf, cookiep);			
-	else
-		err = bus_generic_setup_intr(dev, child, irq, flags, 
-		    NULL, (driver_intr_t *)pccard_intr, pf, cookiep);
+	err = bus_generic_setup_intr(dev, child, irq, flags, pccard_filter, 
+	    pccard_intr, pf, cookiep);
 	if (err != 0)
 		return (err);
-	pf->filt_handler = filt;
+	pf->intr_filter = filt;
 	pf->intr_handler = intr;
 	pf->intr_handler_arg = arg;
 	pf->intr_handler_cookie = *cookiep;

==== //depot/projects/wifi/sys/dev/pccard/pccardvarp.h#4 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/pccard/pccardvarp.h,v 1.3 2007/02/23 12:18:49 piso Exp $
+ * $FreeBSD: src/sys/dev/pccard/pccardvarp.h,v 1.4 2007/05/31 19:29:20 piso Exp $
  */
 
 #ifndef _PCCARD_PCCARDVARP_H
@@ -112,7 +112,7 @@
 	bus_addr_t	pf_mfc_iobase;
 	bus_addr_t	pf_mfc_iomax;
 	int		pf_flags;
-	driver_filter_t	*filt_handler;
+	driver_filter_t	*intr_filter;
 	driver_intr_t	*intr_handler;
 	void		*intr_handler_arg;
 	void		*intr_handler_cookie;

==== //depot/projects/wifi/sys/dev/pccbb/pccbb.c#15 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.160 2007/05/16 19:53:49 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.161 2007/05/31 19:29:20 piso Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -84,6 +84,7 @@
 #include <sys/kernel.h>
 #include <sys/module.h>
 #include <sys/kthread.h>
+#include <sys/interrupt.h>
 #include <sys/lock.h>
 #include <sys/malloc.h>
 #include <sys/mutex.h>
@@ -176,6 +177,7 @@
 		    device_t child);
 static void	cbb_cardbus_power_disable_socket(device_t brdev,
 		    device_t child);
+static int	cbb_func_filt(void *arg);
 static void	cbb_func_intr(void *arg);
 
 static void
@@ -365,18 +367,19 @@
 	struct cbb_softc *sc = device_get_softc(dev);
 	int err;
 
+	if (filt == NULL && intr == NULL)
+		return (EINVAL);
 	/*
 	 * Well, this is no longer strictly true.  You can have multiple
 	 * FAST ISRs, but can't mix fast and slow, so we have to assume
 	 * least common denominator until the base system supports mixing
 	 * and matching better.
 	 */
-	if (filt != NULL)
-		return (EINVAL);
 	ih = malloc(sizeof(struct cbb_intrhand), M_DEVBUF, M_NOWAIT);
 	if (ih == NULL)
 		return (ENOMEM);
 	*cookiep = ih;
+	ih->filt = filt;
 	ih->intr = intr;
 	ih->arg = arg;
 	ih->sc = sc;
@@ -385,7 +388,7 @@
 	 * XXX for now that's all we need to do.
 	 */
 	err = BUS_SETUP_INTR(device_get_parent(dev), child, irq, flags,

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


More information about the p4-projects mailing list