svn commit: r186072 - in projects/arpv2_merge_1: contrib/openpam gnu/usr.bin/groff/tmac sbin/geom/misc sbin/newfs share/man/man4 sys/amd64/amd64 sys/amd64/include sys/compat/linprocfs sys/contrib/p...

Kip Macy kmacy at FreeBSD.org
Sat Dec 13 18:51:19 PST 2008


Author: kmacy
Date: Sun Dec 14 02:51:17 2008
New Revision: 186072
URL: http://svn.freebsd.org/changeset/base/186072

Log:
  IFC 185966:186071
  
  merge latest from HEAD

Modified:
  projects/arpv2_merge_1/contrib/openpam/   (props changed)
  projects/arpv2_merge_1/gnu/usr.bin/groff/tmac/mdoc.local
  projects/arpv2_merge_1/sbin/geom/misc/subr.c
  projects/arpv2_merge_1/sbin/newfs/newfs.c
  projects/arpv2_merge_1/share/man/man4/acpi_aiboost.4
  projects/arpv2_merge_1/share/man/man4/cxgb.4
  projects/arpv2_merge_1/share/man/man4/ddb.4
  projects/arpv2_merge_1/sys/amd64/amd64/exception.S
  projects/arpv2_merge_1/sys/amd64/amd64/genassym.c
  projects/arpv2_merge_1/sys/amd64/amd64/identcpu.c
  projects/arpv2_merge_1/sys/amd64/include/specialreg.h
  projects/arpv2_merge_1/sys/compat/linprocfs/linprocfs.c
  projects/arpv2_merge_1/sys/contrib/pf/net/pf_if.c
  projects/arpv2_merge_1/sys/contrib/pf/net/pf_subr.c
  projects/arpv2_merge_1/sys/dev/acpica/acpi_smbat.c
  projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah.c   (contents, props changed)
  projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_eeprom_v14.c
  projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_eeprom_v3.c   (contents, props changed)
  projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_internal.h   (contents, props changed)
  projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5212/ar5111.c   (contents, props changed)
  projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5312/ar5312.h   (contents, props changed)
  projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c   (contents, props changed)
  projects/arpv2_merge_1/sys/dev/hwpmc/hwpmc_mod.c
  projects/arpv2_merge_1/sys/dev/mfi/mfi_pci.c
  projects/arpv2_merge_1/sys/dev/snp/snp.c
  projects/arpv2_merge_1/sys/dev/usb/usbdevs
  projects/arpv2_merge_1/sys/dev/usb2/include/usb2_devid.h
  projects/arpv2_merge_1/sys/dev/usb2/include/usb2_devtable.h
  projects/arpv2_merge_1/sys/fs/devfs/devfs_vnops.c
  projects/arpv2_merge_1/sys/fs/procfs/procfs_map.c
  projects/arpv2_merge_1/sys/i386/i386/exception.s
  projects/arpv2_merge_1/sys/i386/i386/genassym.c
  projects/arpv2_merge_1/sys/i386/i386/identcpu.c
  projects/arpv2_merge_1/sys/i386/include/specialreg.h
  projects/arpv2_merge_1/sys/kern/kern_proc.c
  projects/arpv2_merge_1/sys/kern/kern_prot.c
  projects/arpv2_merge_1/sys/kern/kern_sysctl.c
  projects/arpv2_merge_1/sys/kern/subr_trap.c
  projects/arpv2_merge_1/sys/kern/tty.c
  projects/arpv2_merge_1/sys/kern/tty_pts.c
  projects/arpv2_merge_1/sys/net/if_var.h
  projects/arpv2_merge_1/sys/net/pfil.h
  projects/arpv2_merge_1/sys/net/route.c
  projects/arpv2_merge_1/sys/net/route.h
  projects/arpv2_merge_1/sys/net/rtsock.c
  projects/arpv2_merge_1/sys/netgraph/netgraph.h
  projects/arpv2_merge_1/sys/netgraph/ng_base.c
  projects/arpv2_merge_1/sys/netgraph/ng_tty.c
  projects/arpv2_merge_1/sys/netinet/icmp6.h
  projects/arpv2_merge_1/sys/netinet/icmp_var.h
  projects/arpv2_merge_1/sys/netinet/in_rmx.c
  projects/arpv2_merge_1/sys/netinet/in_var.h
  projects/arpv2_merge_1/sys/netinet/ip_fw.h
  projects/arpv2_merge_1/sys/netinet/ip_fw2.c
  projects/arpv2_merge_1/sys/netinet/tcp_subr.c
  projects/arpv2_merge_1/sys/netinet/tcp_var.h
  projects/arpv2_merge_1/sys/netinet/vinet.h
  projects/arpv2_merge_1/sys/netinet6/in6_rmx.c
  projects/arpv2_merge_1/sys/netinet6/in6_var.h
  projects/arpv2_merge_1/sys/netinet6/ip6_input.c
  projects/arpv2_merge_1/sys/netinet6/ip6_var.h
  projects/arpv2_merge_1/sys/netinet6/raw_ip6.h
  projects/arpv2_merge_1/sys/netipsec/ipip_var.h
  projects/arpv2_merge_1/sys/powerpc/ofw/ofw_syscons.c
  projects/arpv2_merge_1/sys/powerpc/ofw/ofw_syscons.h
  projects/arpv2_merge_1/sys/powerpc/powermac/cuda.c
  projects/arpv2_merge_1/sys/powerpc/powermac/cudavar.h
  projects/arpv2_merge_1/sys/sys/param.h
  projects/arpv2_merge_1/sys/sys/pmc.h
  projects/arpv2_merge_1/sys/sys/ttyhook.h
  projects/arpv2_merge_1/usr.bin/cpuset/cpuset.1
  projects/arpv2_merge_1/usr.bin/fetch/fetch.1
  projects/arpv2_merge_1/usr.bin/fetch/fetch.c
  projects/arpv2_merge_1/usr.sbin/fwcontrol/fwcontrol.c
  projects/arpv2_merge_1/usr.sbin/fwcontrol/fwmpegts.c
  projects/arpv2_merge_1/usr.sbin/sysinstall/config.c
  projects/arpv2_merge_1/usr.sbin/sysinstall/install.c
  projects/arpv2_merge_1/usr.sbin/sysinstall/menus.c
  projects/arpv2_merge_1/usr.sbin/sysinstall/sysinstall.h

Modified: projects/arpv2_merge_1/gnu/usr.bin/groff/tmac/mdoc.local
==============================================================================
--- projects/arpv2_merge_1/gnu/usr.bin/groff/tmac/mdoc.local	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/gnu/usr.bin/groff/tmac/mdoc.local	Sun Dec 14 02:51:17 2008	(r186072)
@@ -69,6 +69,8 @@
 .
 .\" FreeBSD releases not found in doc-common
 .ds doc-operating-system-FreeBSD-6.3    6.3
+.ds doc-operating-system-FreeBSD-6.4    6.4
+.ds doc-operating-system-FreeBSD-7.1    7.1
 .ds doc-operating-system-FreeBSD-8.0    8.0
 .
 .ec

Modified: projects/arpv2_merge_1/sbin/geom/misc/subr.c
==============================================================================
--- projects/arpv2_merge_1/sbin/geom/misc/subr.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sbin/geom/misc/subr.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -211,7 +211,7 @@ g_metadata_store(const char *name, u_cha
 	sector = NULL;
 	error = 0;
 
-	fd = open(path, O_WRONLY);
+	fd = open(path, O_RDWR);
 	if (fd == -1)
 		return (errno);
 	mediasize = g_get_mediasize(name);

Modified: projects/arpv2_merge_1/sbin/newfs/newfs.c
==============================================================================
--- projects/arpv2_merge_1/sbin/newfs/newfs.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sbin/newfs/newfs.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -354,11 +354,6 @@ main(int argc, char *argv[])
 		mediasize = st.st_size;
 		/* set fssize from the partition */
 	} else {
-	    part_name = special[strlen(special) - 1];
-	    if ((part_name < 'a' || part_name > 'h') && !isdigit(part_name))
-		errx(1, "%s: can't figure out file system partition",
-				special);
-
 	    if (sectorsize == 0)
 		if (ioctl(disk.d_fd, DIOCGSECTORSIZE, &sectorsize) == -1)
 		    sectorsize = 0;	/* back out on error for safety */
@@ -368,6 +363,12 @@ main(int argc, char *argv[])
 	pp = NULL;
 	lp = getdisklabel(special);
 	if (lp != NULL) {
+		if (!is_file) /* already set for files */
+			part_name = special[strlen(special) - 1];
+		if ((part_name < 'a' || part_name - 'a' >= MAXPARTITIONS) &&
+				!isdigit(part_name))
+			errx(1, "%s: can't figure out file system partition",
+					special);
 		cp = &part_name;
 		if (isdigit(*cp))
 			pp = &lp->d_partitions[RAW_PART];

Modified: projects/arpv2_merge_1/share/man/man4/acpi_aiboost.4
==============================================================================
--- projects/arpv2_merge_1/share/man/man4/acpi_aiboost.4	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/share/man/man4/acpi_aiboost.4	Sun Dec 14 02:51:17 2008	(r186072)
@@ -56,8 +56,8 @@ The driver uses ACPI as the backend to f
 descriptions and provides its data via the
 .Xr sysctl 8
 interface, under dev.acpi_aiboost.0 namespace.
-Descriptions for these values are set to sysctl description,
-which can be see with sysctl -d.
+Descriptions for these values are available
+with sysctl -d.
 .Pp
 The
 .Nm

Modified: projects/arpv2_merge_1/share/man/man4/cxgb.4
==============================================================================
--- projects/arpv2_merge_1/share/man/man4/cxgb.4	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/share/man/man4/cxgb.4	Sun Dec 14 02:51:17 2008	(r186072)
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2007, Chelsio Inc
+.\" Copyright (c) 2007-2008, Chelsio Inc
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -56,7 +56,8 @@ if_cxgb_load="YES"
 The
 .Nm
 driver supports Transmit/Receive checksum offload,
-Jumbo Frames as well as TCP segmentation offload (TSO).
+Jumbo Frames, TCP segmentation offload (TSO), Large Receive Offload (LRO),
+VLAN hardware insertion / extraction, and VLAN checksum offload.
 For further hardware information, see
 .Pa http://www.chelsio.com/ .
 .Pp
@@ -76,7 +77,7 @@ For more information on configuring this
 .Sh HARDWARE
 The
 .Nm
-driver supports 10 Gigabit Ethernet adapters based on the T3 and T3B chipset:
+driver supports 10 Gigabit and 1 Gigabit Ethernet adapters based on the T3 and T3B chipset:
 .Pp
 .Bl -bullet -compact
 .It
@@ -111,7 +112,7 @@ go to the Chelsio support website at:
 If an issue is identified with the released source code on the supported kernel
 with a supported adapter, email the specific information related to the
 issue to
-.Aq help at chelsio.com .
+.Aq support at chelsio.com .
 .Sh SEE ALSO
 .Xr altq 4 ,
 .Xr arp 4 ,

Modified: projects/arpv2_merge_1/share/man/man4/ddb.4
==============================================================================
--- projects/arpv2_merge_1/share/man/man4/ddb.4	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/share/man/man4/ddb.4	Sun Dec 14 02:51:17 2008	(r186072)
@@ -102,10 +102,7 @@ is possible, include:
 .Sh DESCRIPTION
 The
 .Nm
-kernel debugger has most of the features of the old
-.Nm kdb ,
-but with a more rational syntax
-inspired by
+kernel debugger is an interactive debugger with a syntax inspired by
 .Xr gdb 1 .
 If linked into the running kernel,
 it can be invoked locally with the
@@ -202,7 +199,7 @@ the
 .Nm emacs
 control keys, the usual
 .Tn ANSI
-arrow keys might be used to
+arrow keys may be used to
 browse through the history buffer, and move the cursor within the
 current line.
 .Sh COMMANDS
@@ -254,8 +251,6 @@ display as an instruction
 display as an instruction with possible alternate formats depending on the
 machine:
 .Bl -tag -width ".Tn powerpc" -compact
-.It Tn alpha
-Show the registers of the instruction.
 .It Tn amd64
 No alternate format.
 .It Tn i386

Modified: projects/arpv2_merge_1/sys/amd64/amd64/exception.S
==============================================================================
--- projects/arpv2_merge_1/sys/amd64/amd64/exception.S	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/amd64/amd64/exception.S	Sun Dec 14 02:51:17 2008	(r186072)
@@ -480,16 +480,20 @@ outofnmi:
 	/*
 	 * At this point the processor has exited NMI mode and is running
 	 * with interrupts turned off on the normal kernel stack.
-	 * We turn interrupts back on, and take the usual 'doreti' exit
-	 * path.
 	 *
 	 * If a pending NMI gets recognized at or after this point, it 
-	 * will cause a kernel callchain to be traced.  Since this path
-	 * is only taken for NMI interrupts from user space, our `swapgs'
-	 * state is correct for taking the doreti path.
+	 * will cause a kernel callchain to be traced.
+	 *
+	 * We turn interrupts back on, and call the user callchain capture hook.
 	 */
+	movq	pmc_hook,%rax
+	orq	%rax,%rax
+	jz	nocallchain
+	movq	PCPU(CURTHREAD),%rdi		/* thread */
+	movq	$PMC_FN_USER_CALLCHAIN,%rsi	/* command */
+	movq	%rsp,%rdx			/* frame */
 	sti
-	jmp	doreti
+	call	*%rax
 nocallchain:
 #endif
 	testl	%ebx,%ebx

Modified: projects/arpv2_merge_1/sys/amd64/amd64/genassym.c
==============================================================================
--- projects/arpv2_merge_1/sys/amd64/amd64/genassym.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/amd64/amd64/genassym.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -36,6 +36,7 @@
 __FBSDID("$FreeBSD$");
 
 #include "opt_compat.h"
+#include "opt_hwpmc_hooks.h"
 #include "opt_kstack_pages.h"
 
 #include <sys/param.h>
@@ -44,6 +45,9 @@ __FBSDID("$FreeBSD$");
 #include <sys/bio.h>
 #include <sys/buf.h>
 #include <sys/proc.h>
+#ifdef	HWPMC_HOOKS
+#include <sys/pmckern.h>
+#endif
 #include <sys/errno.h>
 #include <sys/mount.h>
 #include <sys/mutex.h>
@@ -216,3 +220,7 @@ ASSYM(KUC32SEL, GSEL(GUCODE32_SEL, SEL_U
 ASSYM(SEL_RPL_MASK, SEL_RPL_MASK);
 
 ASSYM(MSR_GSBASE, MSR_GSBASE);
+
+#ifdef	HWPMC_HOOKS
+ASSYM(PMC_FN_USER_CALLCHAIN, PMC_FN_USER_CALLCHAIN);
+#endif

Modified: projects/arpv2_merge_1/sys/amd64/amd64/identcpu.c
==============================================================================
--- projects/arpv2_merge_1/sys/amd64/amd64/identcpu.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/amd64/amd64/identcpu.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -322,15 +322,15 @@ printcpuinfo(void)
 				"\003SVM"	/* Secure Virtual Mode */
 				"\004ExtAPIC"	/* Extended APIC register */
 				"\005CR8"	/* CR8 in legacy mode */
-				"\006<b5>"
-				"\007<b6>"
-				"\010<b7>"
+				"\006ABM"	/* LZCNT instruction */
+				"\007SSE4A"	/* SSE4A */
+				"\010MAS"	/* Misaligned SSE mode */
 				"\011Prefetch"	/* 3DNow! Prefetch/PrefetchW */
-				"\012<b9>"
-				"\013<b10>"
-				"\014<b11>"
-				"\015<b12>"
-				"\016<b13>"
+				"\012OSVW"	/* OS visible workaround */
+				"\013IBS"	/* Instruction based sampling */
+				"\014SSE5"	/* SSE5 */
+				"\015SKINIT"	/* SKINIT/STGI */
+				"\016WDT"	/* Watchdog timer */
 				"\017<b14>"
 				"\020<b15>"
 				"\021<b16>"

Modified: projects/arpv2_merge_1/sys/amd64/include/specialreg.h
==============================================================================
--- projects/arpv2_merge_1/sys/amd64/include/specialreg.h	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/amd64/include/specialreg.h	Sun Dec 14 02:51:17 2008	(r186072)
@@ -150,7 +150,15 @@
 #define	AMDID2_SVM	0x00000004
 #define	AMDID2_EXT_APIC	0x00000008
 #define	AMDID2_CR8	0x00000010
+#define	AMDID2_ABM	0x00000020
+#define	AMDID2_SSE4A	0x00000040
+#define	AMDID2_MAS	0x00000080
 #define	AMDID2_PREFETCH	0x00000100
+#define	AMDID2_OSVW	0x00000200
+#define	AMDID2_IBS	0x00000400
+#define	AMDID2_SSE5	0x00000800
+#define	AMDID2_SKINIT	0x00001000
+#define	AMDID2_WDT	0x00002000
 
 /*
  * CPUID instruction 1 eax info

Modified: projects/arpv2_merge_1/sys/compat/linprocfs/linprocfs.c
==============================================================================
--- projects/arpv2_merge_1/sys/compat/linprocfs/linprocfs.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/compat/linprocfs/linprocfs.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -79,6 +79,7 @@ __FBSDID("$FreeBSD$");
 #include <net/vnet.h>
 
 #include <vm/vm.h>
+#include <vm/vm_extern.h>
 #include <vm/pmap.h>
 #include <vm/vm_map.h>
 #include <vm/vm_param.h>
@@ -874,7 +875,8 @@ linprocfs_doprocenviron(PFS_FILL_ARGS)
 static int
 linprocfs_doprocmaps(PFS_FILL_ARGS)
 {
-	vm_map_t map = &p->p_vmspace->vm_map;
+	struct vmspace *vm;
+	vm_map_t map;
 	vm_map_entry_t entry, tmp_entry;
 	vm_object_t obj, tobj, lobj;
 	vm_offset_t e_start, e_end;
@@ -899,6 +901,10 @@ linprocfs_doprocmaps(PFS_FILL_ARGS)
 		return (EOPNOTSUPP);
 
 	error = 0;
+	vm = vmspace_acquire_ref(p);
+	if (vm == NULL)
+		return (ESRCH);
+	map = &vm->vm_map;
 	vm_map_lock_read(map);
 	for (entry = map->header.next; entry != &map->header;
 	    entry = entry->next) {
@@ -985,6 +991,7 @@ linprocfs_doprocmaps(PFS_FILL_ARGS)
 		}
 	}
 	vm_map_unlock_read(map);
+	vmspace_free(vm);
 
 	return (error);
 }

Modified: projects/arpv2_merge_1/sys/contrib/pf/net/pf_if.c
==============================================================================
--- projects/arpv2_merge_1/sys/contrib/pf/net/pf_if.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/contrib/pf/net/pf_if.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -115,8 +115,10 @@ void		 pfi_change_group_event(void * __u
 void		 pfi_detach_group_event(void * __unused, struct ifg_group *);
 void		 pfi_ifaddr_event(void * __unused, struct ifnet *);
 
+#ifdef VIMAGE_GLOBALS
 extern struct ifgrouphead ifg_head;
 #endif
+#endif
 
 RB_PROTOTYPE(pfi_ifhead, pfi_kif, pfik_tree, pfi_if_compare);
 RB_GENERATE(pfi_ifhead, pfi_kif, pfik_tree, pfi_if_compare);

Modified: projects/arpv2_merge_1/sys/contrib/pf/net/pf_subr.c
==============================================================================
--- projects/arpv2_merge_1/sys/contrib/pf/net/pf_subr.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/contrib/pf/net/pf_subr.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -116,22 +116,22 @@ __FBSDID("$FreeBSD$");
 #define ISN_STATIC_INCREMENT 4096
 #define ISN_RANDOM_INCREMENT (4096 - 1)
 
-static u_char isn_secret[32];
-static int isn_last_reseed;
-static u_int32_t isn_offset;
-static MD5_CTX isn_ctx;
+static u_char pf_isn_secret[32];
+static int pf_isn_last_reseed;
+static u_int32_t pf_isn_offset;
 
 u_int32_t
 pf_new_isn(struct pf_state *s)
 {
+	MD5_CTX isn_ctx;
 	u_int32_t md5_buffer[4];
 	u_int32_t new_isn;
 	struct pf_state_host *src, *dst;
 
 	/* Seed if this is the first use, reseed if requested. */
-	if (isn_last_reseed == 0) {
-		read_random(&isn_secret, sizeof(isn_secret));
-		isn_last_reseed = ticks;
+	if (pf_isn_last_reseed == 0) {
+		read_random(&pf_isn_secret, sizeof(pf_isn_secret));
+		pf_isn_last_reseed = ticks;
 	}
 
 	if (s->direction == PF_IN) {
@@ -160,11 +160,11 @@ pf_new_isn(struct pf_state *s)
 		MD5Update(&isn_ctx, (u_char *) &src->addr,
 			  sizeof(struct in_addr));
 	}
-	MD5Update(&isn_ctx, (u_char *) &isn_secret, sizeof(isn_secret));
+	MD5Update(&isn_ctx, (u_char *) &pf_isn_secret, sizeof(pf_isn_secret));
 	MD5Final((u_char *) &md5_buffer, &isn_ctx);
 	new_isn = (tcp_seq) md5_buffer[0];
-	isn_offset += ISN_STATIC_INCREMENT +
+	pf_isn_offset += ISN_STATIC_INCREMENT +
 		(arc4random() & ISN_RANDOM_INCREMENT);
-	new_isn += isn_offset;
+	new_isn += pf_isn_offset;
 	return (new_isn);
 }

Modified: projects/arpv2_merge_1/sys/dev/acpica/acpi_smbat.c
==============================================================================
--- projects/arpv2_merge_1/sys/dev/acpica/acpi_smbat.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/acpica/acpi_smbat.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -61,6 +61,23 @@ static int	acpi_smbat_get_bst(device_t d
 
 ACPI_SERIAL_DECL(smbat, "ACPI Smart Battery");
 
+SYSCTL_DECL(_debug_acpi);
+SYSCTL_NODE(_debug_acpi, OID_AUTO, batt, CTLFLAG_RD, NULL, "Battery debugging");
+
+/* On some laptops with smart batteries, enabling battery monitoring
+ * software causes keystrokes from atkbd to be lost.  This has also been
+ * reported on Linux, and is apparently due to the keyboard and I2C line
+ * for the battery being routed through the same chip.  Whether that's
+ * accurate or not, adding extra sleeps to the status checking code
+ * causes the problem to go away.
+ *
+ * If you experience that problem, try a value of 10ms and move up
+ * from there.
+ */
+static int      batt_sleep_ms;
+SYSCTL_INT(_debug_acpi_batt, OID_AUTO, batt_sleep_ms, CTLFLAG_RW, &batt_sleep_ms, 0,
+    "Sleep during battery status updates to prevent keystroke loss.");
+
 static device_method_t acpi_smbat_methods[] = {
 	/* device interface */
 	DEVMETHOD(device_probe, acpi_smbat_probe),
@@ -176,6 +193,9 @@ acpi_smbus_read_2(struct acpi_smbat_soft
 
 	ACPI_SERIAL_ASSERT(smbat);
 
+	if (batt_sleep_ms)
+	    AcpiOsSleep(batt_sleep_ms);
+
 	val = addr;
 	error = ACPI_EC_WRITE(sc->ec_dev, sc->sb_base_addr + SMBUS_ADDR,
 	    val, 1);
@@ -194,6 +214,9 @@ acpi_smbus_read_2(struct acpi_smbat_soft
 	if (error)
 		goto out;
 
+	if (batt_sleep_ms)
+	    AcpiOsSleep(batt_sleep_ms);
+
 	for (to = SMBUS_TIMEOUT; to != 0; to--) {
 		error = ACPI_EC_READ(sc->ec_dev, sc->sb_base_addr + SMBUS_PRTCL,
 		    &val, 1);
@@ -239,6 +262,9 @@ acpi_smbus_read_multi_1(struct acpi_smba
 
 	ACPI_SERIAL_ASSERT(smbat);
 
+	if (batt_sleep_ms)
+	    AcpiOsSleep(batt_sleep_ms);
+
 	val = addr;
 	error = ACPI_EC_WRITE(sc->ec_dev, sc->sb_base_addr + SMBUS_ADDR,
 	    val, 1);
@@ -257,6 +283,9 @@ acpi_smbus_read_multi_1(struct acpi_smba
 	if (error)
 		goto out;
 
+	if (batt_sleep_ms)
+	    AcpiOsSleep(batt_sleep_ms);
+
 	for (to = SMBUS_TIMEOUT; to != 0; to--) {
 		error = ACPI_EC_READ(sc->ec_dev, sc->sb_base_addr + SMBUS_PRTCL,
 		    &val, 1);
@@ -292,6 +321,9 @@ acpi_smbus_read_multi_1(struct acpi_smba
 	if (len > val)
 		len = val;
 
+	if (batt_sleep_ms)
+	    AcpiOsSleep(batt_sleep_ms);
+
 	while (len--) {
 		error = ACPI_EC_READ(sc->ec_dev, sc->sb_base_addr + SMBUS_DATA
 		    + len, &val, 1);
@@ -299,6 +331,8 @@ acpi_smbus_read_multi_1(struct acpi_smba
 			goto out;
 
 		ptr[len] = val;
+		if (batt_sleep_ms)
+		    AcpiOsSleep(batt_sleep_ms);
 	}
 
 out:

Modified: projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah.c
==============================================================================
--- projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $Id: ah.c,v 1.15 2008/11/15 22:15:44 sam Exp $
+ * $FreeBSD$
  */
 #include "opt_ah.h"
 
@@ -32,7 +32,7 @@ OS_SET_DECLARE(ah_chips, struct ath_hal_
 const char*
 ath_hal_probe(uint16_t vendorid, uint16_t devid)
 {
-	struct ath_hal_chip **pchip;
+	struct ath_hal_chip * const *pchip;
 
 	OS_SET_FOREACH(pchip, ah_chips) {
 		const char *name = (*pchip)->probe(vendorid, devid);
@@ -53,7 +53,7 @@ struct ath_hal*
 ath_hal_attach(uint16_t devid, HAL_SOFTC sc,
 	HAL_BUS_TAG st, HAL_BUS_HANDLE sh, HAL_STATUS *error)
 {
-	struct ath_hal_chip **pchip;
+	struct ath_hal_chip * const *pchip;
 
 	OS_SET_FOREACH(pchip, ah_chips) {
 		struct ath_hal_chip *chip = *pchip;
@@ -88,7 +88,7 @@ OS_SET_DECLARE(ah_rfs, struct ath_hal_rf
 struct ath_hal_rf *
 ath_hal_rfprobe(struct ath_hal *ah, HAL_STATUS *ecode)
 {
-	struct ath_hal_rf **prf;
+	struct ath_hal_rf * const *prf;
 
 	OS_SET_FOREACH(prf, ah_rfs) {
 		struct ath_hal_rf *rf = *prf;

Modified: projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_eeprom_v14.c
==============================================================================
--- projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_eeprom_v14.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_eeprom_v14.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -160,18 +160,6 @@ v14EepromDiag(struct ath_hal *ah, int re
 	return AH_FALSE;
 }
 
-/* XXX conditionalize by target byte order */
-#ifndef bswap16
-static __inline__ uint16_t
-__bswap16(uint16_t _x)
-{
- 	return ((uint16_t)(
-	      (((const uint8_t *)(&_x))[0]    ) |
-	      (((const uint8_t *)(&_x))[1]<< 8))
-	);
-}
-#endif
-
 /* Do structure specific swaps if Eeprom format is non native to host */
 static void
 eepromSwap(struct ar5416eeprom *ee)

Modified: projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_eeprom_v3.c
==============================================================================
--- projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_eeprom_v3.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_eeprom_v3.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $Id: ah_eeprom_v3.c,v 1.4 2008/11/27 22:39:42 sam Exp $
+ * $FreeBSD$
  */
 #include "opt_ah.h"
 
@@ -26,9 +26,9 @@ static void
 getPcdacInterceptsFromPcdacMinMax(HAL_EEPROM *ee,
 	uint16_t pcdacMin, uint16_t pcdacMax, uint16_t *vp)
 {
-	const static uint16_t intercepts3[] =
+	static const uint16_t intercepts3[] =
 		{ 0, 5, 10, 20, 30, 50, 70, 85, 90, 95, 100 };
-	const static uint16_t intercepts3_2[] =
+	static const uint16_t intercepts3_2[] =
 		{ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
 	const uint16_t *ip = ee->ee_version < AR_EEPROM_VER3_2 ?
 		intercepts3 : intercepts3_2;

Modified: projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_internal.h
==============================================================================
--- projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_internal.h	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/ath/ath_hal/ah_internal.h	Sun Dec 14 02:51:17 2008	(r186072)
@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $Id: ah_internal.h,v 1.21 2008/11/27 22:29:27 sam Exp $
+ * $FreeBSD$
  */
 #ifndef _ATH_AH_INTERAL_H_
 #define _ATH_AH_INTERAL_H_
@@ -42,23 +42,6 @@
 #define	offsetof(type, field)	((size_t)(&((type *)0)->field))
 #endif
 
-/*
- * Remove const in a way that keeps the compiler happy.
- * This works for gcc but may require other magic for
- * other compilers (not sure where this should reside).
- * Note that uintptr_t is C99.
- */
-#ifndef __DECONST
-#ifndef _UINTPTR_T
-#if AH_WORDSIZE == 64
-typedef unsigned long int uintptr_t;
-#else
-typedef unsigned int uintptr_t;
-#endif
-#endif
-#define	__DECONST(type, var)	((type)(uintptr_t)(const void *)(var))
-#endif
-
 typedef struct {
 	uint16_t	start;		/* first register */
 	uint16_t	end;		/* ending register or zero */
@@ -114,12 +97,12 @@ struct ath_hal_rf {
 };
 #ifndef AH_RF
 #define	AH_RF(_name, _probe, _attach)				\
-static struct ath_hal_rf name##_rf = {				\
-	.name		= #_name,				\
+static struct ath_hal_rf _name##_rf = {				\
+	.name		= __STRING(_name),			\
 	.probe		= _probe,				\
 	.attach		= _attach				\
 };								\
-OS_DATA_SET(ah_rfs, name##_rf)
+OS_DATA_SET(ah_rfs, _name##_rf)
 #endif
 
 struct ath_hal_rf *ath_hal_rfprobe(struct ath_hal *ah, HAL_STATUS *ecode);

Modified: projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5212/ar5111.c
==============================================================================
--- projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5212/ar5111.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5212/ar5111.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $Id: ar5111.c,v 1.7 2008/11/10 04:08:03 sam Exp $
+ * $FreeBSD$
  */
 #include "opt_ah.h"
 
@@ -90,7 +90,7 @@ ar5111SetChannel(struct ath_hal *ah,  HA
 		uint16_t	channel5111;	/* 11a channel for 5111 */
 	} CHAN_INFO_2GHZ;
 
-	const static CHAN_INFO_2GHZ chan2GHzData[] = {
+	static const CHAN_INFO_2GHZ chan2GHzData[] = {
 		{ 1, 0x46, 96  },	/* 2312 -19 */
 		{ 1, 0x46, 97  },	/* 2317 -18 */
 		{ 1, 0x46, 98  },	/* 2322 -17 */

Modified: projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5312/ar5312.h
==============================================================================
--- projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5312/ar5312.h	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5312/ar5312.h	Sun Dec 14 02:51:17 2008	(r186072)
@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $Id: ar5312.h,v 1.5 2008/11/22 07:37:40 sam Exp $
+ * $FreeBSD$
  */
 #ifndef _ATH_AR5312_H_
 #define _ATH_AR5312_H_
@@ -38,8 +38,6 @@
 	 AH_PRIVATE(ah)->ah_devid == AR5212_AR2317_REV1 || \
 	 AH_PRIVATE(ah)->ah_devid == AR5212_AR2317_REV2)
 
-extern	struct ath_hal * ar5312Attach(uint16_t devid, HAL_SOFTC sc,
-				      HAL_BUS_TAG st, HAL_BUS_HANDLE sh, HAL_STATUS *status);
 extern  HAL_BOOL ar5312IsInterruptPending(struct ath_hal *ah);
 
 /* AR5312 */

Modified: projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c
==============================================================================
--- projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -14,7 +14,7 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $Id: ar5312_attach.c,v 1.8 2008/11/27 22:30:03 sam Exp $
+ * $FreeBSD$
  */
 #include "opt_ah.h"
 
@@ -318,7 +318,6 @@ ar5312Probe(uint16_t vendorid, uint16_t 
 		case AR5212_AR2313_REV8:
 			return "Atheros 2313 WiSoC";
 		case AR5212_AR2315_REV6:
-		case AR5212_AR2315_REV6:
 		case AR5212_AR2315_REV7:
 			return "Atheros 2315 WiSoC";
 		case AR5212_AR2317_REV1:

Modified: projects/arpv2_merge_1/sys/dev/hwpmc/hwpmc_mod.c
==============================================================================
--- projects/arpv2_merge_1/sys/dev/hwpmc/hwpmc_mod.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/hwpmc/hwpmc_mod.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -1863,8 +1863,11 @@ pmc_hook_handler(struct thread *td, int 
 		/*
 		 * Record a call chain.
 		 */
+		KASSERT(td == curthread, ("[pmc,%d] td != curthread",
+		    __LINE__));
 		pmc_capture_user_callchain(PCPU_GET(cpuid),
 		    (struct trapframe *) arg);
+		td->td_pflags &= ~TDP_CALLCHAIN;
 		break;
 
 	default:
@@ -3794,30 +3797,28 @@ pmc_syscall_handler(struct thread *td, v
  */
 
 static void
-pmc_post_callchain_ast(void)
+pmc_post_callchain_callback(void)
 {
 	struct thread *td;
 
 	td = curthread;
 
+	KASSERT((td->td_pflags & TDP_CALLCHAIN) == 0,
+	    ("[pmc,%d] thread %p already marked for callchain capture",
+		__LINE__, (void *) td));
+
 	/*
-	 * Mark this thread as needing processing in ast().
-	 * td->td_pflags will be safe to touch as the process was in
-	 * user space when it was interrupted.
+	 * Mark this thread as needing callchain capture.
+	 * `td->td_pflags' will be safe to touch because this thread
+	 * was in user space when it was interrupted.
 	 */
 	td->td_pflags |= TDP_CALLCHAIN;
 
 	/*
-	 * Again, since we've entered this function directly from
-	 * userland, `td' is guaranteed to be not locked by this CPU,
-	 * so its safe to try acquire the thread lock even though we
-	 * are executing in an NMI context.  We need to acquire this
-	 * lock before touching `td_flags' because other CPUs may be
-	 * in the process of touching this field.
-	 */
-	thread_lock(td);
-	td->td_flags |= TDF_ASTPENDING;
-	thread_unlock(td);
+	 * Don't let this thread migrate between CPUs until callchain
+	 * capture completes.
+	 */
+	sched_pin();
 
 	return;
 }
@@ -3869,6 +3870,10 @@ pmc_process_interrupt(int cpu, struct pm
 	    (int) (psb->ps_write - psb->ps_samples),
 	    (int) (psb->ps_read - psb->ps_samples));
 
+	KASSERT(pm->pm_runcount >= 0,
+	    ("[pmc,%d] pm=%p runcount %d", __LINE__, (void *) pm,
+		pm->pm_runcount));
+
 	atomic_add_rel_32(&pm->pm_runcount, 1);	/* hold onto PMC */
 	ps->ps_pmc = pm;
 	if ((td = curthread) && td->td_proc)
@@ -3876,6 +3881,7 @@ pmc_process_interrupt(int cpu, struct pm
 	else
 		ps->ps_pid = -1;
 	ps->ps_cpu = cpu;
+	ps->ps_td = td;
 	ps->ps_flags = inuserspace ? PMC_CC_F_USERSPACE : 0;
 
 	callchaindepth = (pm->pm_flags & PMC_F_CALLCHAIN) ?
@@ -3893,7 +3899,7 @@ pmc_process_interrupt(int cpu, struct pm
 			    pmc_save_kernel_callchain(ps->ps_pc,
 				callchaindepth, tf);
 		else {
-			pmc_post_callchain_ast();
+			pmc_post_callchain_callback();
 			callchaindepth = PMC_SAMPLE_INUSE;
 		}
 	}
@@ -3925,20 +3931,41 @@ pmc_capture_user_callchain(int cpu, stru
 {
 	int i;
 	struct pmc *pm;
+	struct thread *td;
 	struct pmc_sample *ps;
 	struct pmc_samplebuffer *psb;
+#ifdef	INVARIANTS
+	int ncallchains;
+#endif
+
+	sched_unpin();	/* Can migrate safely now. */
 
 	psb = pmc_pcpu[cpu]->pc_sb;
+	td = curthread;
+
+	KASSERT(td->td_pflags & TDP_CALLCHAIN,
+	    ("[pmc,%d] Retrieving callchain for thread that doesn't want it",
+		__LINE__));
+
+#ifdef	INVARIANTS
+	ncallchains = 0;
+#endif
 
 	/*
 	 * Iterate through all deferred callchain requests.
 	 */
 
-	for (i = 0; i < pmc_nsamples; i++) {
+	ps = psb->ps_samples;
+	for (i = 0; i < pmc_nsamples; i++, ps++) {
 
-		ps = &psb->ps_samples[i];
 		if (ps->ps_nsamples != PMC_SAMPLE_INUSE)
 			continue;
+		if (ps->ps_td != td)
+			continue;
+
+		KASSERT(ps->ps_cpu == cpu,
+		    ("[pmc,%d] cpu mismatch ps_cpu=%d pcpu=%d", __LINE__,
+			ps->ps_cpu, PCPU_GET(cpuid)));
 
 		pm = ps->ps_pmc;
 
@@ -3946,14 +3973,26 @@ pmc_capture_user_callchain(int cpu, stru
 		    ("[pmc,%d] Retrieving callchain for PMC that doesn't "
 			"want it", __LINE__));
 
+		KASSERT(pm->pm_runcount > 0,
+		    ("[pmc,%d] runcount %d", __LINE__, pm->pm_runcount));
+
 		/*
 		 * Retrieve the callchain and mark the sample buffer
 		 * as 'processable' by the timer tick sweep code.
 		 */
 		ps->ps_nsamples = pmc_save_user_callchain(ps->ps_pc,
 		    pmc_callchaindepth, tf);
+
+#ifdef	INVARIANTS
+		ncallchains++;
+#endif
+
 	}
 
+	KASSERT(ncallchains > 0,
+	    ("[pmc,%d] cpu %d didn't find a sample to collect", __LINE__,
+		cpu));
+
 	return;
 }
 
@@ -3991,6 +4030,11 @@ pmc_process_samples(int cpu)
 		}
 
 		pm = ps->ps_pmc;
+
+		KASSERT(pm->pm_runcount > 0,
+		    ("[pmc,%d] pm=%p runcount %d", __LINE__, (void *) pm,
+			pm->pm_runcount));
+
 		po = pm->pm_owner;
 
 		KASSERT(PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm)),

Modified: projects/arpv2_merge_1/sys/dev/mfi/mfi_pci.c
==============================================================================
--- projects/arpv2_merge_1/sys/dev/mfi/mfi_pci.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/mfi/mfi_pci.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -114,18 +114,21 @@ struct mfi_ident {
 	int		flags;
 	const char	*desc;
 } mfi_identifiers[] = {
-	{0x1000, 0x0411, 0xffff, 0xffff, MFI_FLAGS_1064R, "LSI MegaSAS 1064R"}, /* Brocton IOP */
-	{0x1000, 0x0413, 0xffff, 0xffff, MFI_FLAGS_1064R, "LSI MegaSAS 1064R"}, /* Verde ZCR */
-	{0x1028, 0x0015, 0xffff, 0xffff, MFI_FLAGS_1064R, "Dell PERC 5/i"},
 	{0x1000, 0x0060, 0x1028, 0xffff, MFI_FLAGS_1078,  "Dell PERC 6"},
- 	{0x1000, 0x0060, 0xffff, 0xffff, MFI_FLAGS_1078,  "LSI MegaSAS 1078"},
+	{0x1000, 0x0060, 0xffff, 0xffff, MFI_FLAGS_1078,  "LSI MegaSAS 1078"},
+	{0x1000, 0x0078, 0xffff, 0xffff, MFI_FLAGS_GEN2,  "LSI MegaSAS Gen2"},
 	{0x1000, 0x0079, 0x1028, 0x1f15, MFI_FLAGS_GEN2,  "Dell PERC H800 Adapter"},
 	{0x1000, 0x0079, 0x1028, 0x1f16, MFI_FLAGS_GEN2,  "Dell PERC H700 Adapter"},
 	{0x1000, 0x0079, 0x1028, 0x1f17, MFI_FLAGS_GEN2,  "Dell PERC H700 Integrated"},
 	{0x1000, 0x0079, 0x1028, 0x1f18, MFI_FLAGS_GEN2,  "Dell PERC H700 Modular"},
-	{0x1000, 0x0078, 0xffff, 0xffff, MFI_FLAGS_GEN2,  "LSI MegaSAS Gen2"},
+	{0x1000, 0x0079, 0x1028, 0x1f19, MFI_FLAGS_GEN2,  "Dell PERC H700"},
+	{0x1000, 0x0079, 0x1028, 0x1f1b, MFI_FLAGS_GEN2,  "Dell PERC H800"},
+	{0x1000, 0x0079, 0x1028, 0xffff, MFI_FLAGS_GEN2,  "Dell PERC H700/H800"},
 	{0x1000, 0x0079, 0xffff, 0xffff, MFI_FLAGS_GEN2,  "LSI MegaSAS Gen2"},
 	{0x1000, 0x007c, 0xffff, 0xffff, MFI_FLAGS_1078,  "LSI MegaSAS 1078"},
+	{0x1000, 0x0411, 0xffff, 0xffff, MFI_FLAGS_1064R, "LSI MegaSAS 1064R"}, /* Brocton IOP */
+	{0x1000, 0x0413, 0xffff, 0xffff, MFI_FLAGS_1064R, "LSI MegaSAS 1064R"}, /* Verde ZCR */
+	{0x1028, 0x0015, 0xffff, 0xffff, MFI_FLAGS_1064R, "Dell PERC 5/i"},
 	{0, 0, 0, 0, 0, NULL}
 };
 

Modified: projects/arpv2_merge_1/sys/dev/snp/snp.c
==============================================================================
--- projects/arpv2_merge_1/sys/dev/snp/snp.c	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/snp/snp.c	Sun Dec 14 02:51:17 2008	(r186072)
@@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/malloc.h>
 #include <sys/module.h>
 #include <sys/poll.h>
+#include <sys/proc.h>
 #include <sys/snoop.h>
 #include <sys/sx.h>
 #include <sys/systm.h>
@@ -246,7 +247,7 @@ snp_ioctl(struct cdev *dev, u_long cmd, 
 			sx_xunlock(&snp_register_lock);
 			return (EBUSY);
 		}
-		error = ttyhook_register(&ss->snp_tty, td, *(int *)data,
+		error = ttyhook_register(&ss->snp_tty, td->td_proc, *(int *)data,
 		    &snp_hook, ss);
 		sx_xunlock(&snp_register_lock);
 		if (error != 0)

Modified: projects/arpv2_merge_1/sys/dev/usb/usbdevs
==============================================================================
--- projects/arpv2_merge_1/sys/dev/usb/usbdevs	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/usb/usbdevs	Sun Dec 14 02:51:17 2008	(r186072)
@@ -205,7 +205,7 @@ vendor ELAN		0x04f3	Elan
 vendor NEWNEX		0x04f7	Newnex
 vendor BROTHER		0x04f9	Brother Industries
 vendor DALLAS		0x04fa	Dallas Semiconductor
-vendor SUNPLUS		0x04fc	Sunplus
+vendor AIPTEK2		0x04fc	AIPTEK International
 vendor PFU		0x04fe	PFU
 vendor FUJIKURA		0x0501	Fujikura/DDK
 vendor ACER		0x0502	Acer
@@ -503,7 +503,7 @@ vendor ADDONICS2	0x0bf6	Addonics Technol
 vendor FSC		0x0bf8	Fujitsu Siemens Computers
 vendor AGATE		0x0c08	Agate Technologies
 vendor DMI		0x0c0b	DMI
-vendor MICRODIA		0x0c45	Chicony
+vendor CHICONY2		0x0c45	Chicony
 vendor SEALEVEL		0x0c52	Sealevel System
 vendor LUWEN		0x0c76	Luwen
 vendor KYOCERA2		0x0c88	Kyocera Wireless Corp.
@@ -1688,9 +1688,6 @@ product MSI RT2573_2		0x6877	RT2573
 product MSI RT2573_3		0xa861	RT2573
 product MSI RT2573_4		0xa874	RT2573
 
-/* Microdia products */
-product MICRODIA TWINKLECAM	0x600d	TwinkleCam USB camera
-
 /* Microsoft products */
 product MICROSOFT SIDEPREC	0x0008	SideWinder Precision Pro
 product MICROSOFT INTELLIMOUSE	0x0009	IntelliMouse

Modified: projects/arpv2_merge_1/sys/dev/usb2/include/usb2_devid.h
==============================================================================
--- projects/arpv2_merge_1/sys/dev/usb2/include/usb2_devid.h	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/usb2/include/usb2_devid.h	Sun Dec 14 02:51:17 2008	(r186072)
@@ -4,7 +4,7 @@
  * THIS FILE IS AUTOMATICALLY GENERATED.  DO NOT EDIT.
  *
  * generated from:
- *	FreeBSD: src/sys/dev/usb/usbdevs,v 1.383 2008/11/12 13:58:59 keramida Exp 
+ *	FreeBSD: head/sys/dev/usb/usbdevs 185998 2008-12-12 18:34:27Z thompsa 
  */
 /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */
 
@@ -212,7 +212,7 @@
 #define	USB_VENDOR_NEWNEX	0x04f7		/* Newnex */
 #define	USB_VENDOR_BROTHER	0x04f9		/* Brother Industries */
 #define	USB_VENDOR_DALLAS	0x04fa		/* Dallas Semiconductor */
-#define	USB_VENDOR_SUNPLUS	0x04fc		/* Sunplus */
+#define	USB_VENDOR_AIPTEK2	0x04fc		/* AIPTEK International */
 #define	USB_VENDOR_PFU	0x04fe		/* PFU */
 #define	USB_VENDOR_FUJIKURA	0x0501		/* Fujikura/DDK */
 #define	USB_VENDOR_ACER	0x0502		/* Acer */
@@ -510,7 +510,7 @@
 #define	USB_VENDOR_FSC	0x0bf8		/* Fujitsu Siemens Computers */
 #define	USB_VENDOR_AGATE	0x0c08		/* Agate Technologies */
 #define	USB_VENDOR_DMI	0x0c0b		/* DMI */
-#define	USB_VENDOR_MICRODIA	0x0c45		/* Chicony */
+#define	USB_VENDOR_CHICONY2	0x0c45		/* Chicony */
 #define	USB_VENDOR_SEALEVEL	0x0c52		/* Sealevel System */
 #define	USB_VENDOR_LUWEN	0x0c76		/* Luwen */
 #define	USB_VENDOR_KYOCERA2	0x0c88		/* Kyocera Wireless Corp. */
@@ -627,6 +627,7 @@
 #define	USB_VENDOR_QCOM	0x18e8		/* Qcom */
 #define	USB_VENDOR_LINKSYS3	0x1915		/* Linksys */
 #define	USB_VENDOR_QUALCOMMINC	0x19d2		/* Qualcomm, Incorporated */
+#define	USB_VENDOR_STELERA	0x1a8d		/* Stelera Wireless */
 #define	USB_VENDOR_DLINK	0x2001		/* D-Link */
 #define	USB_VENDOR_PLANEX2	0x2019		/* Planex Communications */
 #define	USB_VENDOR_ERICSSON	0x2282		/* Ericsson */
@@ -802,7 +803,7 @@
 
 /* AIPTEK products */
 #define	USB_PRODUCT_AIPTEK_POCKETCAM3M	0x2011		/* PocketCAM 3Mega */
-#define	USB_PRODUCT_SUNPLUS_PENCAM_MEGA_1_3	0x504a		/* PenCam Mega 1.3 */
+#define	USB_PRODUCT_AIPTEK2_PENCAM_MEGA_1_3	0x504a		/* PenCam Mega 1.3 */
 
 /* AirPrime products */
 #define	USB_PRODUCT_AIRPRIME_PC5220	0x0112		/* CDMA Wireless PC Card */
@@ -1014,7 +1015,7 @@
 
 /* Chicony products */
 #define	USB_PRODUCT_CHICONY_KB8933	0x0001		/* KB-8933 keyboard */
-#define	USB_PRODUCT_MICRODIA_TWINKLECAM	0x600d		/* TwinkleCam USB camera */
+#define	USB_PRODUCT_CHICONY2_TWINKLECAM	0x600d		/* TwinkleCam USB camera */
 
 /* CH Products */
 #define	USB_PRODUCT_CHPRODUCTS_PROTHROTTLE	0x00f1		/* Pro Throttle */
@@ -1436,6 +1437,7 @@
 #define	USB_PRODUCT_HP_OJ4215	0x3d11		/* OfficeJet 4215 */
 #define	USB_PRODUCT_HP_HN210E	0x811c		/* Ethernet HN210E */
 #define	USB_PRODUCT_HP2_C500	0x6002		/* PhotoSmart C500 */
+#define	USB_PRODUCT_HP_HS2300	0x1e1d		/* hs2300 HSDPA (aka MC8775) */
 
 /* HTC products */
 #define	USB_PRODUCT_HTC_WINMOBILE	0x00ce		/* HTC USB Sync */
@@ -1693,9 +1695,6 @@
 #define	USB_PRODUCT_MSI_RT2573_3	0xa861		/* RT2573 */
 #define	USB_PRODUCT_MSI_RT2573_4	0xa874		/* RT2573 */
 
-/* Microdia products */
-#define	USB_PRODUCT_MICRODIA_TWINKLECAM	0x600d		/* TwinkleCam USB camera */
-
 /* Microsoft products */
 #define	USB_PRODUCT_MICROSOFT_SIDEPREC	0x0008		/* SideWinder Precision Pro */
 #define	USB_PRODUCT_MICROSOFT_INTELLIMOUSE	0x0009		/* IntelliMouse */
@@ -1882,6 +1881,7 @@
 #define	USB_PRODUCT_OPTION_GT3G	0x6000		/* GlobeTrotter 3G datacard */
 #define	USB_PRODUCT_OPTION_GT3GQUAD	0x6300		/* GlobeTrotter 3G QUAD datacard */
 #define	USB_PRODUCT_OPTION_GT3GPLUS	0x6600		/* GlobeTrotter 3G+ datacard */
+#define	USB_PRODUCT_OPTION_GTICON322	0xd033		/* GlobeTrotter Icon322 storage */
 #define	USB_PRODUCT_OPTION_GTMAX36	0x6701		/* GlobeTrotter Max 3.6 Modem */
 #define	USB_PRODUCT_OPTION_GTMAXHSUPA	0x7001		/* GlobeTrotter HSUPA */
 
@@ -2131,12 +2131,14 @@
 #define	USB_PRODUCT_SIERRA_AC595U	0x0120		/* Sierra Wireless AirCard 595U */
 #define	USB_PRODUCT_SIERRA_AC597E	0x0021		/* Sierra Wireless AirCard 597E */
 #define	USB_PRODUCT_SIERRA_C597	0x0023		/* Sierra Wireless Compass 597 */
+#define	USB_PRODUCT_SIERRA_AC875	0x6820		/* Sierra Wireless AirCard 875 */
 #define	USB_PRODUCT_SIERRA_AC880	0x6850		/* Sierra Wireless AirCard 880 */
 #define	USB_PRODUCT_SIERRA_AC881	0x6851		/* Sierra Wireless AirCard 881 */
 #define	USB_PRODUCT_SIERRA_AC880E	0x6852		/* Sierra Wireless AirCard 880E */
 #define	USB_PRODUCT_SIERRA_AC881E	0x6853		/* Sierra Wireless AirCard 881E */
 #define	USB_PRODUCT_SIERRA_AC880U	0x6855		/* Sierra Wireless AirCard 880U */
 #define	USB_PRODUCT_SIERRA_AC881U	0x6856		/* Sierra Wireless AirCard 881U */
+#define	USB_PRODUCT_SIERRA_AC885U	0x6880		/* Sierra Wireless AirCard 885U */
 #define	USB_PRODUCT_SIERRA_EM5625	0x0017		/* EM5625 */
 #define	USB_PRODUCT_SIERRA_MC5720	0x0218		/* MC5720 Wireless Modem */
 #define	USB_PRODUCT_SIERRA_MC5720_2	0x0018		/* MC5720 */
@@ -2259,6 +2261,10 @@
 /* Sphairon Access Systems GmbH products */
 #define	USB_PRODUCT_SPHAIRON_UB801R	0x0110		/* UB801R */
 
+/* Stelera Wireless products */
+#define	USB_PRODUCT_STELERA_ZEROCD	0x1000		/* Zerocd Installer */
+#define	USB_PRODUCT_STELERA_C105	0x1002		/* Stelera/Bandrish C105 USB */
+
 /* STMicroelectronics products */
 #define	USB_PRODUCT_STMICRO_BIOCPU	0x2016		/* Biometric Coprocessor */
 #define	USB_PRODUCT_STMICRO_COMMUNICATOR	0x7554		/* USB Communicator */

Modified: projects/arpv2_merge_1/sys/dev/usb2/include/usb2_devtable.h
==============================================================================
--- projects/arpv2_merge_1/sys/dev/usb2/include/usb2_devtable.h	Sun Dec 14 02:44:58 2008	(r186071)
+++ projects/arpv2_merge_1/sys/dev/usb2/include/usb2_devtable.h	Sun Dec 14 02:51:17 2008	(r186072)
@@ -4,7 +4,7 @@
  * THIS FILE IS AUTOMATICALLY GENERATED.  DO NOT EDIT.
  *
  * generated from:
- *	FreeBSD: src/sys/dev/usb/usbdevs,v 1.383 2008/11/12 13:58:59 keramida Exp 
+ *	FreeBSD: head/sys/dev/usb/usbdevs 185998 2008-12-12 18:34:27Z thompsa 
  */
 /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */
 
@@ -599,9 +599,9 @@ const struct usb_knowndev usb_knowndevs[
 	    "PocketCAM 3Mega",
 	},
 	{
-	    USB_VENDOR_SUNPLUS, USB_PRODUCT_SUNPLUS_PENCAM_MEGA_1_3,
+	    USB_VENDOR_AIPTEK2, USB_PRODUCT_AIPTEK2_PENCAM_MEGA_1_3,
 	    0,
-	    "Sunplus",
+	    "AIPTEK International",
 	    "PenCam Mega 1.3",
 	},
 	{
@@ -1397,7 +1397,7 @@ const struct usb_knowndev usb_knowndevs[
 	    "KB-8933 keyboard",
 	},
 	{
-	    USB_VENDOR_MICRODIA, USB_PRODUCT_MICRODIA_TWINKLECAM,
+	    USB_VENDOR_CHICONY2, USB_PRODUCT_CHICONY2_TWINKLECAM,
 	    0,
 	    "Chicony",
 	    "TwinkleCam USB camera",
@@ -3125,6 +3125,12 @@ const struct usb_knowndev usb_knowndevs[
 	    "PhotoSmart C500",
 	},
 	{
+	    USB_VENDOR_HP, USB_PRODUCT_HP_HS2300,
+	    0,
+	    "Hewlett Packard",
+	    "hs2300 HSDPA (aka MC8775)",

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


More information about the svn-src-projects mailing list