PERFORCE change 162424 for review
    Andrew Thompson 
    thompsa at FreeBSD.org
       
    Thu May 21 02:14:55 UTC 2009
    
    
  
http://perforce.freebsd.org/chv.cgi?CH=162424
Change 162424 by thompsa at thompsa_burger on 2009/05/21 02:14:46
	IFC @162418
Affected files ...
.. //depot/projects/usb/src/sys/amd64/amd64/mca.c#2 integrate
.. //depot/projects/usb/src/sys/amd64/include/param.h#6 integrate
.. //depot/projects/usb/src/sys/amd64/pci/pci_cfgreg.c#5 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_socket.c#12 integrate
.. //depot/projects/usb/src/sys/compat/svr4/svr4_misc.c#10 integrate
.. //depot/projects/usb/src/sys/conf/files#63 integrate
.. //depot/projects/usb/src/sys/dev/aac/aac.c#7 integrate
.. //depot/projects/usb/src/sys/dev/acpica/acpi.c#17 integrate
.. //depot/projects/usb/src/sys/dev/age/if_age.c#9 integrate
.. //depot/projects/usb/src/sys/dev/amr/amr.c#8 integrate
.. //depot/projects/usb/src/sys/dev/amr/amr_linux.c#2 integrate
.. //depot/projects/usb/src/sys/dev/arcmsr/arcmsr.c#10 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-all.c#15 integrate
.. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-promise.c#6 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ah.c#6 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ah.h#5 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ah_internal.h#5 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c#5 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5210/ar5210_interrupts.c#2 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c#5 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c#3 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c#5 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c#3 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212reg.h#2 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c#4 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c#4 integrate
.. //depot/projects/usb/src/sys/dev/ath/if_ath.c#25 integrate
.. //depot/projects/usb/src/sys/dev/ath/if_athvar.h#19 integrate
.. //depot/projects/usb/src/sys/dev/bwi/if_bwi.c#2 integrate
.. //depot/projects/usb/src/sys/dev/bwi/if_bwivar.h#2 integrate
.. //depot/projects/usb/src/sys/dev/ciss/ciss.c#14 integrate
.. //depot/projects/usb/src/sys/dev/cxgb/cxgb_main.c#15 integrate
.. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis.c#25 integrate
.. //depot/projects/usb/src/sys/dev/iir/iir_ctrl.c#3 integrate
.. //depot/projects/usb/src/sys/dev/ipw/if_ipw.c#13 integrate
.. //depot/projects/usb/src/sys/dev/ipw/if_ipwvar.h#7 integrate
.. //depot/projects/usb/src/sys/dev/iwi/if_iwi.c#13 integrate
.. //depot/projects/usb/src/sys/dev/iwi/if_iwivar.h#7 integrate
.. //depot/projects/usb/src/sys/dev/iwn/if_iwn.c#9 integrate
.. //depot/projects/usb/src/sys/dev/iwn/if_iwnvar.h#3 integrate
.. //depot/projects/usb/src/sys/dev/malo/if_malo.c#4 integrate
.. //depot/projects/usb/src/sys/dev/malo/if_malo.h#3 integrate
.. //depot/projects/usb/src/sys/dev/mfi/mfi.c#14 integrate
.. //depot/projects/usb/src/sys/dev/mfi/mfi_linux.c#3 integrate
.. //depot/projects/usb/src/sys/dev/mpt/mpt_user.c#4 integrate
.. //depot/projects/usb/src/sys/dev/pci/pci.c#21 integrate
.. //depot/projects/usb/src/sys/dev/pci/pci_pci.c#10 integrate
.. //depot/projects/usb/src/sys/dev/pci/pcib_if.m#4 integrate
.. //depot/projects/usb/src/sys/dev/ral/rt2560.c#12 integrate
.. //depot/projects/usb/src/sys/dev/ral/rt2560var.h#7 integrate
.. //depot/projects/usb/src/sys/dev/ral/rt2661.c#12 integrate
.. //depot/projects/usb/src/sys/dev/ral/rt2661var.h#6 integrate
.. //depot/projects/usb/src/sys/dev/sound/midi/midi.c#5 integrate
.. //depot/projects/usb/src/sys/dev/sound/pci/emu10kx-midi.c#3 integrate
.. //depot/projects/usb/src/sys/dev/sound/pci/via82c686.h#2 integrate
.. //depot/projects/usb/src/sys/dev/sound/sbus/cs4231.h#2 integrate
.. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#41 integrate
.. //depot/projects/usb/src/sys/dev/sound/usb/uaudioreg.h#10 integrate
.. //depot/projects/usb/src/sys/dev/twa/tw_osl_freebsd.c#9 integrate
.. //depot/projects/usb/src/sys/dev/twe/twe_freebsd.c#5 integrate
.. //depot/projects/usb/src/sys/dev/usb/bluetooth/ng_ubt.c#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/bluetooth/ubtbcmfw.c#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/at91dci.c#17 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.c#27 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.h#11 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#24 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/musb_otg.c#15 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#19 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#17 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#16 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.c#17 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.h#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uss820dci_atmelarm.c#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/input/uhid.c#9 integrate
.. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb/input/ums.c#12 integrate
.. //depot/projects/usb/src/sys/dev/usb/misc/udbp.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/misc/ufm.c#5 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_aue.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_axe.c#9 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_cue.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_kue.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_rue.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_udav.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/u3g.c#12 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/uark.c#6 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/ubsa.c#6 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/ubser.c#9 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/uchcom.c#6 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/ucycom.c#9 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/ufoma.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/uftdi.c#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/ugensa.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/uipaq.c#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/ulpt.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/umct.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/umodem.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/umoscom.c#6 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/uplcom.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/uslcom.c#6 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/uvisor.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/uvscom.c#6 integrate
.. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#18 integrate
.. //depot/projects/usb/src/sys/dev/usb/storage/urio.c#9 integrate
.. //depot/projects/usb/src/sys/dev/usb/storage/ustorage_fs.c#16 integrate
.. //depot/projects/usb/src/sys/dev/usb/template/usb_template.c#6 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_bus.h#11 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_busdma.c#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#38 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.h#13 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_controller.h#9 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_core.h#19 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#21 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_device.c#32 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_device.h#22 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_generic.c#16 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#20 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_hub.h#10 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_request.c#15 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_revision.h#5 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#148 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_transfer.h#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_rum.c#12 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_rumvar.h#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_uath.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_uathvar.h#3 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_upgt.c#5 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_ural.c#12 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_uralvar.h#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_zyd.c#12 integrate
.. //depot/projects/usb/src/sys/dev/wi/if_wavelan_ieee.h#5 integrate
.. //depot/projects/usb/src/sys/dev/wi/if_wi.c#11 integrate
.. //depot/projects/usb/src/sys/dev/wi/if_wireg.h#4 integrate
.. //depot/projects/usb/src/sys/dev/wi/if_wivar.h#7 integrate
.. //depot/projects/usb/src/sys/dev/wpi/if_wpi.c#13 integrate
.. //depot/projects/usb/src/sys/dev/wpi/if_wpivar.h#5 integrate
.. //depot/projects/usb/src/sys/fs/nfs/nfs_var.h#3 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clnode.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clrpcops.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clstate.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsserver/nfs_nfsdstate.c#3 integrate
.. //depot/projects/usb/src/sys/i386/acpica/acpi_machdep.c#8 integrate
.. //depot/projects/usb/src/sys/i386/bios/smapi.c#4 integrate
.. //depot/projects/usb/src/sys/i386/i386/mca.c#2 integrate
.. //depot/projects/usb/src/sys/i386/include/param.h#6 integrate
.. //depot/projects/usb/src/sys/i386/pci/pci_cfgreg.c#6 integrate
.. //depot/projects/usb/src/sys/kern/kern_descrip.c#20 integrate
.. //depot/projects/usb/src/sys/kern/kern_mutex.c#13 integrate
.. //depot/projects/usb/src/sys/kern/kern_poll.c#11 integrate
.. //depot/projects/usb/src/sys/kern/subr_bus.c#22 integrate
.. //depot/projects/usb/src/sys/kern/subr_rman.c#10 integrate
.. //depot/projects/usb/src/sys/kern/subr_witness.c#20 integrate
.. //depot/projects/usb/src/sys/net/if_llatbl.c#4 integrate
.. //depot/projects/usb/src/sys/net/if_llatbl.h#3 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211.c#21 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211.h#15 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_adhoc.c#8 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_ddb.c#14 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_freebsd.c#15 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_freebsd.h#16 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_hostap.c#11 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_ht.c#11 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_input.c#15 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_monitor.c#2 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_node.c#23 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_node.h#14 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_output.c#23 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_proto.c#19 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_proto.h#15 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_radiotap.c#1 branch
.. //depot/projects/usb/src/sys/net80211/ieee80211_scan.c#9 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_scan.h#6 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_scan_sta.c#13 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_sta.c#9 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_superg.c#5 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_tdma.c#9 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_tdma.h#5 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_var.h#21 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_wds.c#9 integrate
.. //depot/projects/usb/src/sys/netinet/in.c#24 integrate
.. //depot/projects/usb/src/sys/netinet/ip_fw2.c#24 integrate
.. //depot/projects/usb/src/sys/netinet6/in6.c#22 integrate
.. //depot/projects/usb/src/sys/netnatm/natm.c#6 integrate
.. //depot/projects/usb/src/sys/nfs4client/nfs4_dev.c#3 integrate
.. //depot/projects/usb/src/sys/nlm/nlm.h#4 integrate
.. //depot/projects/usb/src/sys/nlm/nlm_prot_impl.c#7 integrate
.. //depot/projects/usb/src/sys/sys/interrupt.h#8 integrate
.. //depot/projects/usb/src/sys/sys/param.h#30 integrate
.. //depot/projects/usb/src/sys/sys/proc.h#19 integrate
Differences ...
==== //depot/projects/usb/src/sys/amd64/amd64/mca.c#2 (text+ko) ====
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mca.c,v 1.1 2009/05/13 17:53:04 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mca.c,v 1.3 2009/05/20 16:11:22 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -55,9 +55,14 @@
 
 static MALLOC_DEFINE(M_MCA, "MCA", "Machine Check Architecture");
 
-static struct sysctl_oid *mca_sysctl_tree;
+static int mca_count;		/* Number of records stored. */
+
+SYSCTL_NODE(_hw, OID_AUTO, mca, CTLFLAG_RD, NULL, "Machine Check Architecture");
 
-static int mca_count;		/* Number of records stored. */
+static int mca_enabled = 0;
+TUNABLE_INT("hw.mca.enabled", &mca_enabled);
+SYSCTL_INT(_hw_mca, OID_AUTO, enabled, CTLFLAG_RDTUN, &mca_enabled, 0,
+    "Administrative toggle for machine check support");
 
 static STAILQ_HEAD(, mca_internal) mca_records;
 static struct callout mca_timer;
@@ -346,7 +351,7 @@
 
 	/* When handling a MCE#, treat the OVER flag as non-restartable. */
 	if (mcip)
-		ucmask = MC_STATUS_OVER;
+		ucmask |= MC_STATUS_OVER;
 	mcg_cap = rdmsr(MSR_MCG_CAP);
 	for (i = 0; i < (mcg_cap & MCG_CAP_COUNT); i++) {
 		rec = mca_record_entry(i);
@@ -426,7 +431,7 @@
 mca_startup(void *dummy)
 {
 
-	if (!(cpu_feature & CPUID_MCA))
+	if (!mca_enabled || !(cpu_feature & CPUID_MCA))
 		return;
 
 	callout_reset(&mca_timer, mca_ticks * hz, mca_periodic_scan,
@@ -442,17 +447,15 @@
 	STAILQ_INIT(&mca_records);
 	TASK_INIT(&mca_task, 0x8000, mca_scan_cpus, NULL);
 	callout_init(&mca_timer, CALLOUT_MPSAFE);
-	mca_sysctl_tree = SYSCTL_ADD_NODE(NULL, SYSCTL_STATIC_CHILDREN(_hw),
-	    OID_AUTO, "mca", CTLFLAG_RW, NULL, "MCA container");
-	SYSCTL_ADD_INT(NULL, SYSCTL_CHILDREN(mca_sysctl_tree), OID_AUTO,
+	SYSCTL_ADD_INT(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO,
 	    "count", CTLFLAG_RD, &mca_count, 0, "Record count");
-	SYSCTL_ADD_PROC(NULL, SYSCTL_CHILDREN(mca_sysctl_tree), OID_AUTO,
+	SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO,
 	    "interval", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, &mca_ticks,
 	    0, sysctl_mca_ticks, "I",
 	    "Periodic interval in seconds to scan for machine checks");
-	SYSCTL_ADD_NODE(NULL, SYSCTL_CHILDREN(mca_sysctl_tree), OID_AUTO,
+	SYSCTL_ADD_NODE(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO,
 	    "records", CTLFLAG_RD, sysctl_mca_records, "Machine check records");
-	SYSCTL_ADD_PROC(NULL, SYSCTL_CHILDREN(mca_sysctl_tree), OID_AUTO,
+	SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO,
 	    "force_scan", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, 0,
 	    sysctl_mca_scan, "I", "Force an immediate scan for machine checks");
 }
@@ -465,7 +468,7 @@
 	int i;
 
 	/* MCE is required. */
-	if (!(cpu_feature & CPUID_MCE))
+	if (!mca_enabled || !(cpu_feature & CPUID_MCE))
 		return;
 
 	if (cpu_feature & CPUID_MCA) {
@@ -488,10 +491,6 @@
 			if (!(i == 0 && (cpu_id & 0xf00) == 0x600))
 				wrmsr(MSR_MC_CTL(i), 0xffffffffffffffffUL);
 
-			/* XXX: Better CPU test needed here. */
-			if ((cpu_id & 0xf00) == 0xf00)
-				mca_record_entry(i);
-
 			/* Clear all errors. */
 			wrmsr(MSR_MC_STATUS(i), 0);
 		}
==== //depot/projects/usb/src/sys/amd64/include/param.h#6 (text+ko) ====
@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)param.h	8.1 (Berkeley) 6/10/93
- * $FreeBSD: src/sys/amd64/include/param.h,v 1.27 2009/04/20 12:59:23 rwatson Exp $
+ * $FreeBSD: src/sys/amd64/include/param.h,v 1.28 2009/05/18 19:33:59 jhb Exp $
  */
 
 /*
@@ -93,7 +93,7 @@
  * CACHE_LINE_SIZE is the compile-time maximum cache line size for an
  * architecture.  It should be used with appropriate caution.
  */
-#define	CACHE_LINE_SHIFT	6
+#define	CACHE_LINE_SHIFT	7
 #define	CACHE_LINE_SIZE		(1 << CACHE_LINE_SHIFT)
 
 /* Size of the level 1 page table units */
==== //depot/projects/usb/src/sys/amd64/pci/pci_cfgreg.c#5 (text+ko) ====
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.114 2009/03/24 18:10:22 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.115 2009/05/18 21:47:32 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -35,6 +35,7 @@
 #include <sys/lock.h>
 #include <sys/kernel.h>
 #include <sys/mutex.h>
+#include <sys/sysctl.h>
 #include <dev/pci/pcivar.h>
 #include <dev/pci/pcireg.h>
 #include <vm/vm.h>
@@ -56,6 +57,8 @@
 static int	pcireg_cfgread(int bus, int slot, int func, int reg, int bytes);
 static void	pcireg_cfgwrite(int bus, int slot, int func, int reg, int data, int bytes);
 
+SYSCTL_DECL(_hw_pci);
+
 static int cfgmech;
 static vm_offset_t pcie_base;
 static int pcie_minbus, pcie_maxbus;
@@ -63,6 +66,8 @@
 static struct mtx pcicfg_mtx;
 static int mcfg_enable = 1;
 TUNABLE_INT("hw.pci.mcfg", &mcfg_enable);
+SYSCTL_INT(_hw_pci, OID_AUTO, mcfg, CTLFLAG_RDTUN, &mcfg_enable, 0,
+    "Enable support for PCI-e memory mapped config access");
 
 /* 
  * Initialise access to PCI configuration space 
==== //depot/projects/usb/src/sys/compat/linux/linux_socket.c#12 (text+ko) ====
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.91 2009/05/18 04:07:46 dchagin Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.92 2009/05/19 09:10:53 dchagin Exp $");
 
 /* XXX we use functions that might not exist. */
 #include "opt_compat.h"
@@ -1467,11 +1467,38 @@
 	return (error);
 }
 
+/* Argument list sizes for linux_socketcall */
+
+#define LINUX_AL(x) ((x) * sizeof(l_ulong))
+
+static const unsigned char lxs_args[] = {
+	LINUX_AL(0) /* unused*/,	LINUX_AL(3) /* socket */,
+	LINUX_AL(3) /* bind */,		LINUX_AL(3) /* connect */,
+	LINUX_AL(2) /* listen */,	LINUX_AL(3) /* accept */,
+	LINUX_AL(3) /* getsockname */,	LINUX_AL(3) /* getpeername */,
+	LINUX_AL(4) /* socketpair */,	LINUX_AL(4) /* send */,
+	LINUX_AL(4) /* recv */,		LINUX_AL(6) /* sendto */,
+	LINUX_AL(6) /* recvfrom */,	LINUX_AL(2) /* shutdown */,
+	LINUX_AL(5) /* setsockopt */,	LINUX_AL(5) /* getsockopt */,
+	LINUX_AL(3) /* sendmsg */,	LINUX_AL(3) /* recvmsg */
+};
+
+#define	LINUX_AL_SIZE	sizeof(lxs_args) / sizeof(lxs_args[0]) - 1
+
 int
 linux_socketcall(struct thread *td, struct linux_socketcall_args *args)
 {
-	void *arg = (void *)(intptr_t)args->args;
+	l_ulong a[6];
+	void *arg;
+	int error;
+
+	if (args->what < LINUX_SOCKET || args->what > LINUX_AL_SIZE)
+		return (EINVAL);
+	error = copyin(PTRIN(args->args), a, lxs_args[args->what]);
+	if (error)
+		return (error);
 
+	arg = a;
 	switch (args->what) {
 	case LINUX_SOCKET:
 		return (linux_socket(td, arg));
==== //depot/projects/usb/src/sys/compat/svr4/svr4_misc.c#10 (text+ko) ====
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_misc.c,v 1.102 2009/02/13 18:18:14 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_misc.c,v 1.104 2009/05/20 18:36:17 jhb Exp $");
 
 #include "opt_mac.h"
 
@@ -1199,12 +1199,12 @@
 
 	/*
 	 * Ok, handle the weird cases.  Either WNOWAIT is set (meaning we
-	 * just want to see if there is a process to harvest, we dont'
+	 * just want to see if there is a process to harvest, we don't
 	 * want to actually harvest it), or WEXIT and WTRAPPED are clear
 	 * meaning we want to ignore zombies.  Either way, we don't have
 	 * to handle harvesting zombies here.  We do have to duplicate the
-	 * other portions of kern_wait() though, especially for the
-	 * WCONTINUED and WSTOPPED.
+	 * other portions of kern_wait() though, especially for WCONTINUED
+	 * and WSTOPPED.
 	 */
 loop:
 	nfound = 0;
@@ -1611,14 +1611,14 @@
 	struct nameidata nd;
 	int error, *retval = td->td_retval;
 	unsigned int ncopy;
-	int vfslocked;
 
 	NDINIT(&nd, LOOKUP, NOFOLLOW | SAVENAME | MPSAFE, UIO_USERSPACE,
 	    uap->path, td);
 
 	if ((error = namei(&nd)) != 0)
-		return error;
-	vfslocked = NDHASGIANT(&nd);
+		return (error);
+	NDFREE(&nd, NDF_NO_FREE_PNBUF);
+	VFS_UNLOCK_GIANT(NDHASGIANT(&nd));
 
 	ncopy = min(uap->bufsiz, strlen(nd.ni_cnd.cn_pnbuf) + 1);
 	if ((error = copyout(nd.ni_cnd.cn_pnbuf, uap->buf, ncopy)) != 0)
@@ -1627,7 +1627,5 @@
 	*retval = ncopy;
 bad:
 	NDFREE(&nd, NDF_ONLY_PNBUF);
-	vput(nd.ni_vp);
-	VFS_UNLOCK_GIANT(vfslocked);
 	return error;
 }
==== //depot/projects/usb/src/sys/conf/files#63 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1400 2009/05/14 12:39:22 rwatson Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1401 2009/05/20 20:00:40 sam Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -2218,6 +2218,7 @@
 net80211/ieee80211_phy.c	optional wlan
 net80211/ieee80211_power.c	optional wlan
 net80211/ieee80211_proto.c	optional wlan
+net80211/ieee80211_radiotap.c	optional wlan
 net80211/ieee80211_regdomain.c	optional wlan
 net80211/ieee80211_rssadapt.c	optional wlan wlan_rssadapt
 net80211/ieee80211_scan.c	optional wlan
==== //depot/projects/usb/src/sys/dev/aac/aac.c#7 (text+ko) ====
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.141 2009/02/23 18:22:06 emaste Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.142 2009/05/20 17:29:21 imp Exp $");
 
 /*
  * Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters.
@@ -2905,7 +2905,7 @@
  */
 
 static int
-aac_open(struct cdev *dev, int flags, int fmt, d_thread_t *td)
+aac_open(struct cdev *dev, int flags, int fmt, struct thread *td)
 {
 	struct aac_softc *sc;
 
@@ -2918,7 +2918,7 @@
 }
 
 static int
-aac_close(struct cdev *dev, int flags, int fmt, d_thread_t *td)
+aac_close(struct cdev *dev, int flags, int fmt, struct thread *td)
 {
 	struct aac_softc *sc;
 
@@ -2933,7 +2933,7 @@
 }
 
 static int
-aac_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, d_thread_t *td)
+aac_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, struct thread *td)
 {
 	union aac_statrequest *as;
 	struct aac_softc *sc;
@@ -3038,7 +3038,7 @@
 }
 
 static int
-aac_poll(struct cdev *dev, int poll_events, d_thread_t *td)
+aac_poll(struct cdev *dev, int poll_events, struct thread *td)
 {
 	struct aac_softc *sc;
 	struct aac_fib_context *ctx;
==== //depot/projects/usb/src/sys/dev/acpica/acpi.c#17 (text+ko) ====
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.262 2009/04/30 18:00:53 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.263 2009/05/20 17:29:21 imp Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -3186,19 +3186,19 @@
 }
 
 static int
-acpiopen(struct cdev *dev, int flag, int fmt, d_thread_t *td)
+acpiopen(struct cdev *dev, int flag, int fmt, struct thread *td)
 {
     return (0);
 }
 
 static int
-acpiclose(struct cdev *dev, int flag, int fmt, d_thread_t *td)
+acpiclose(struct cdev *dev, int flag, int fmt, struct thread *td)
 {
     return (0);
 }
 
 static int
-acpiioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, d_thread_t *td)
+acpiioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *td)
 {
     struct acpi_softc		*sc;
     struct acpi_ioctl_hook	*hp;
==== //depot/projects/usb/src/sys/dev/age/if_age.c#9 (text+ko) ====
@@ -28,7 +28,7 @@
 /* Driver for Attansic Technology Corp. L1 Gigabit Ethernet. */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/age/if_age.c,v 1.8 2009/03/28 07:39:35 yongari Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/age/if_age.c,v 1.9 2009/05/20 03:33:27 yongari Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1477,23 +1477,11 @@
 {
 	struct age_softc *sc;
 	struct ifnet *ifp;
-	uint16_t cmd;
 
 	sc = device_get_softc(dev);
 
 	AGE_LOCK(sc);
-	/*
-	 * Clear INTx emulation disable for hardwares that
-	 * is set in resume event. From Linux.
-	 */
-	cmd = pci_read_config(sc->age_dev, PCIR_COMMAND, 2);
-	if ((cmd & 0x0400) != 0) {
-		cmd &= ~0x0400;
-		pci_write_config(sc->age_dev, PCIR_COMMAND, cmd, 2);
-	}
-	AGE_UNLOCK(sc);
 	age_phy_reset(sc);
-	AGE_LOCK(sc);
 	ifp = sc->age_ifp;
 	if ((ifp->if_flags & IFF_UP) != 0)
 		age_init_locked(sc);
==== //depot/projects/usb/src/sys/dev/amr/amr.c#8 (text+ko) ====
@@ -56,7 +56,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.88 2008/11/03 00:53:54 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.89 2009/05/20 17:29:21 imp Exp $");
 
 /*
  * Driver for the AMI MegaRaid family of controllers.
@@ -173,7 +173,7 @@
 
 static void	amr_init_sysctl(struct amr_softc *sc);
 static int	amr_linux_ioctl_int(struct cdev *dev, u_long cmd, caddr_t addr,
-		    int32_t flag, d_thread_t *td);
+		    int32_t flag, struct thread *td);
 
 MALLOC_DEFINE(M_AMR, "amr", "AMR memory");
 
@@ -431,7 +431,7 @@
  * Accept an open operation on the control device.
  */
 static int
-amr_open(struct cdev *dev, int flags, int fmt, d_thread_t *td)
+amr_open(struct cdev *dev, int flags, int fmt, struct thread *td)
 {
     int			unit = dev2unit(dev);
     struct amr_softc	*sc = devclass_get_softc(devclass_find("amr"), unit);
@@ -487,7 +487,7 @@
  * Accept the last close on the control device.
  */
 static int
-amr_close(struct cdev *dev, int flags, int fmt, d_thread_t *td)
+amr_close(struct cdev *dev, int flags, int fmt, struct thread *td)
 {
     int			unit = dev2unit(dev);
     struct amr_softc	*sc = devclass_get_softc(devclass_find("amr"), unit);
@@ -537,7 +537,7 @@
 
 int
 amr_linux_ioctl_int(struct cdev *dev, u_long cmd, caddr_t addr, int32_t flag,
-    d_thread_t *td)
+    struct thread *td)
 {
     struct amr_softc		*sc = (struct amr_softc *)dev->si_drv1;
     struct amr_command		*ac;
@@ -736,7 +736,7 @@
 }
 
 static int
-amr_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int32_t flag, d_thread_t *td)
+amr_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int32_t flag, struct thread *td)
 {
     struct amr_softc		*sc = (struct amr_softc *)dev->si_drv1;
     union {
==== //depot/projects/usb/src/sys/dev/amr/amr_linux.c#2 (text+ko) ====
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/amr/amr_linux.c,v 1.4 2006/05/03 16:45:15 ambrisko Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/amr/amr_linux.c,v 1.5 2009/05/20 17:29:21 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -69,7 +69,7 @@
 MODULE_DEPEND(amr, linux, 1, 1, 1);
 
 static int
-amr_linux_ioctl(d_thread_t *p, struct linux_ioctl_args *args)
+amr_linux_ioctl(struct thread *p, struct linux_ioctl_args *args)
 {
 	struct file *fp;
 	int error;
==== //depot/projects/usb/src/sys/dev/arcmsr/arcmsr.c#10 (text+ko) ====
@@ -56,7 +56,7 @@
 **                                                       and cause g_vfs_done() read write error
 **     1.20.00.15   10/10/2007         Erich Chen        support new RAID adapter type ARC120x
 ******************************************************************************************
-* $FreeBSD: src/sys/dev/arcmsr/arcmsr.c,v 1.30 2009/02/20 07:40:54 scottl Exp $
+* $FreeBSD: src/sys/dev/arcmsr/arcmsr.c,v 1.31 2009/05/20 17:29:21 imp Exp $
 */
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -249,7 +249,7 @@
 	#if __FreeBSD_version < 503000
 		static int arcmsr_open(dev_t dev, int flags, int fmt, struct thread *proc)
 	#else
-		static int arcmsr_open(struct cdev *dev, int flags, int fmt, d_thread_t *proc)
+		static int arcmsr_open(struct cdev *dev, int flags, int fmt, struct thread *proc)
 	#endif 
 #endif
 {
@@ -274,7 +274,7 @@
 	#if __FreeBSD_version < 503000
 		static int arcmsr_close(dev_t dev, int flags, int fmt, struct thread *proc)
 	#else
-		static int arcmsr_close(struct cdev *dev, int flags, int fmt, d_thread_t *proc)
+		static int arcmsr_close(struct cdev *dev, int flags, int fmt, struct thread *proc)
 	#endif 
 #endif
 {
@@ -299,7 +299,7 @@
 	#if __FreeBSD_version < 503000
 		static int arcmsr_ioctl(dev_t dev, u_long ioctl_cmd, caddr_t arg, int flags, struct thread *proc)
 	#else
-		static int arcmsr_ioctl(struct cdev *dev, u_long ioctl_cmd, caddr_t arg, int flags, d_thread_t *proc)
+		static int arcmsr_ioctl(struct cdev *dev, u_long ioctl_cmd, caddr_t arg, int flags, struct thread *proc)
 	#endif 
 #endif
 {
==== //depot/projects/usb/src/sys/dev/ata/ata-all.c#15 (text+ko) ====
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.303 2009/02/28 22:07:15 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.305 2009/05/20 21:31:47 imp Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
==== //depot/projects/usb/src/sys/dev/ata/chipsets/ata-promise.c#6 (text+ko) ====
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/chipsets/ata-promise.c,v 1.9 2009/05/14 14:57:13 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/chipsets/ata-promise.c,v 1.10 2009/05/20 09:44:32 mav Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -1054,7 +1054,7 @@
     device_t gparent = GRANDPARENT(request->dev);
     struct ata_pci_controller *ctlr = device_get_softc(gparent);
     struct ata_channel *ch = device_get_softc(request->parent);
-    struct ata_dma_prdentry *prd = request->dma->sg;
+    struct ata_dma_prdentry *prd;
     caddr_t window = rman_get_virtual(ctlr->r_res1);
     u_int32_t *wordp;
     int i, idx, length = 0;
@@ -1098,6 +1098,7 @@
     case ATA_READ_DMA48:
     case ATA_WRITE_DMA:
     case ATA_WRITE_DMA48:
+	prd = request->dma->sg;
 	wordp = (u_int32_t *)
 	    (window + (ch->unit * ATA_PDC_CHN_OFFSET) + ATA_PDC_HSG_OFFSET);
 	i = idx = 0;
==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ah.c#6 (text+ko) ====
@@ -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.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ah.c,v 1.9 2009/04/13 21:01:08 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ah.c,v 1.10 2009/05/19 17:30:13 sam Exp $
  */
 #include "opt_ah.h"
 
@@ -500,6 +500,9 @@
 	case HAL_CAP_RXTSTAMP_PREC:	/* rx desc tstamp precision (bits) */
 		*result = pCap->halTstampPrecision;
 		return HAL_OK;
+	case HAL_CAP_INTRMASK:		/* mask of supported interrupts */
+		*result = pCap->halIntrMask;
+		return HAL_OK;
 	default:
 		return HAL_EINVAL;
 	}
==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ah.h#5 (text+ko) ====
@@ -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.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ah.h,v 1.7 2009/03/19 19:29:10 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ah.h,v 1.11 2009/05/19 17:54:32 sam Exp $
  */
 
 #ifndef _ATH_AH_H_
@@ -109,6 +109,7 @@
 	HAL_CAP_RXTSTAMP_PREC	= 34,	/* rx desc tstamp precision (bits) */
 	HAL_CAP_BB_HANG		= 35,	/* can baseband hang */
 	HAL_CAP_MAC_HANG	= 36,	/* can MAC hang */
+	HAL_CAP_INTRMASK	= 37,	/* bitmask of supported interrupts */
 } HAL_CAPABILITY_TYPE;
 
 /* 
@@ -327,13 +328,14 @@
 	HAL_INT_RXKCM	= 0x00008000,
 	HAL_INT_SWBA	= 0x00010000,
 	HAL_INT_BMISS	= 0x00040000,
-	HAL_INT_BNR	= 0x00100000,	/* Non-common mapping */
+	HAL_INT_BNR	= 0x00100000,
 	HAL_INT_TIM	= 0x00200000,	/* Non-common mapping */
 	HAL_INT_DTIM	= 0x00400000,	/* Non-common mapping */
 	HAL_INT_DTIMSYNC= 0x00800000,	/* Non-common mapping */
 	HAL_INT_GPIO	= 0x01000000,
 	HAL_INT_CABEND	= 0x02000000,	/* Non-common mapping */
 	HAL_INT_TSFOOR	= 0x04000000,	/* Non-common mapping */
+	HAL_INT_TBTT	= 0x08000000,	/* Non-common mapping */
 	HAL_INT_CST	= 0x10000000,	/* Non-common mapping */
 	HAL_INT_GTT	= 0x20000000,	/* Non-common mapping */
 	HAL_INT_FATAL	= 0x40000000,	/* Non-common mapping */
@@ -341,20 +343,22 @@
 	HAL_INT_BMISC	= HAL_INT_TIM
 			| HAL_INT_DTIM
 			| HAL_INT_DTIMSYNC
-			| HAL_INT_CABEND,
+			| HAL_INT_CABEND
+			| HAL_INT_TBTT,
 
 	/* Interrupt bits that map directly to ISR/IMR bits */
 	HAL_INT_COMMON  = HAL_INT_RXNOFRM
 			| HAL_INT_RXDESC
 			| HAL_INT_RXEOL
 			| HAL_INT_RXORN
+			| HAL_INT_TXDESC
 			| HAL_INT_TXURN
-			| HAL_INT_TXDESC
 			| HAL_INT_MIB
 			| HAL_INT_RXPHY
 			| HAL_INT_RXKCM
 			| HAL_INT_SWBA
 			| HAL_INT_BMISS
+			| HAL_INT_BNR
 			| HAL_INT_GPIO,
 } HAL_INT;
 
==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ah_internal.h#5 (text+ko) ====
@@ -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.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ah_internal.h,v 1.11 2009/04/09 16:53:59 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ah_internal.h,v 1.12 2009/05/19 17:30:13 sam Exp $
  */
 #ifndef _ATH_AH_INTERAL_H_
 #define _ATH_AH_INTERAL_H_
@@ -206,6 +206,7 @@
 	uint8_t		halNumGpioPins;
 	uint8_t		halNumAntCfg2GHz;
 	uint8_t		halNumAntCfg5GHz;
+	uint32_t	halIntrMask;
 } HAL_CAPABILITIES;
 
 struct regDomain;
==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c#5 (text+ko) ====
@@ -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.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c,v 1.5 2009/03/19 19:29:10 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c,v 1.7 2009/05/19 17:35:15 sam Exp $
  */
 #include "opt_ah.h"
 
@@ -369,6 +369,11 @@
 	}
 
 	pCap->halTstampPrecision = 15;		/* NB: s/w extended from 13 */
+	pCap->halIntrMask = (HAL_INT_COMMON - HAL_INT_BNR)
+			| HAL_INT_RX
+			| HAL_INT_TX
+			| HAL_INT_FATAL
+			;
 
 	ahpriv->ah_rxornIsFatal = AH_TRUE;
 	return AH_TRUE;
==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5210/ar5210_interrupts.c#2 (text+ko) ====
@@ -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: ar5210_interrupts.c,v 1.4 2008/11/10 04:08:02 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5210/ar5210_interrupts.c,v 1.2 2009/05/19 17:35:15 sam Exp $
  */
 #include "opt_ah.h"
 
@@ -59,7 +59,7 @@
 	 * status bits leak through that weren't requested
 	 * (e.g. RXNOFRM) and that might confuse the caller.
 	 */
-	*masked = (isr & HAL_INT_COMMON) & ahp->ah_maskReg;
+	*masked = (isr & (HAL_INT_COMMON - HAL_INT_BNR)) & ahp->ah_maskReg;
 
 	if (isr & AR_FATAL_INT)
 		*masked |= HAL_INT_FATAL;
@@ -105,7 +105,7 @@
 		OS_REG_WRITE(ah, AR_IER, AR_IER_DISABLE);
 	}
 
-	mask = ints & HAL_INT_COMMON;
+	mask = ints & (HAL_INT_COMMON - HAL_INT_BNR);
 	if (ints & HAL_INT_RX)
 		mask |= AR_IMR_RXOK_INT | AR_IMR_RXERR_INT;
 	if (ints & HAL_INT_TX) {
==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c#5 (text+ko) ====
@@ -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.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c,v 1.6 2009/03/19 19:29:10 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c,v 1.7 2009/05/19 17:30:13 sam Exp $
  */
 #include "opt_ah.h"
 
@@ -498,6 +498,13 @@
 	}
 
 	pCap->halTstampPrecision = 13;
+	pCap->halIntrMask = HAL_INT_COMMON
+			| HAL_INT_RX
+			| HAL_INT_TX
+			| HAL_INT_FATAL
+			| HAL_INT_BNR
+			| HAL_INT_TIM
+			;
 
 	/* XXX might be ok w/ some chip revs */
 	ahpriv->ah_rxornIsFatal = AH_TRUE;
==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c#3 (text+ko) ====
@@ -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.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c,v 1.2 2009/05/06 23:09:26 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c,v 1.3 2009/05/19 17:35:15 sam Exp $
  */
 #include "opt_ah.h"
 
@@ -64,8 +64,6 @@
 		*masked |= HAL_INT_RX;
 	if (isr & (AR_ISR_TXOK | AR_ISR_TXDESC | AR_ISR_TXERR | AR_ISR_TXEOL))
 		*masked |= HAL_INT_TX;
-	if (isr & AR_ISR_BNR)
-		*masked |= HAL_INT_BNR;
 	/*
 	 * Receive overrun is usually non-fatal on Oahu/Spirit.
 	 * BUT on some parts rx could fail and the chip must be reset.
@@ -139,8 +137,6 @@
 	}
 	if (ints & HAL_INT_RX)
 		mask |= AR_IMR_RXOK | AR_IMR_RXERR | AR_IMR_RXDESC;
-	if (ints & AR_ISR_BNR)
-		mask |= HAL_INT_BNR;
 	if (ints & HAL_INT_FATAL) {
 		/*
 		 * NB: ar5212Reset sets MCABT+SSERR+DPERR in AR_IMR_S2
==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c#5 (text+ko) ====
@@ -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.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c,v 1.5 2009/03/19 19:29:10 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c,v 1.7 2009/05/19 17:53:53 sam Exp $
  */
 #include "opt_ah.h"
 
@@ -840,6 +840,15 @@
 	    AH_PRIVATE(ah)->ah_macVersion > AR_SREV_VERSION_VENICE;
 
 	pCap->halTstampPrecision = 15;
+	pCap->halIntrMask = HAL_INT_COMMON
+			| HAL_INT_RX
+			| HAL_INT_TX
+			| HAL_INT_FATAL
+			| HAL_INT_BNR
+			| HAL_INT_BMISC
+			;
+	if (AH_PRIVATE(ah)->ah_macVersion < AR_SREV_VERSION_GRIFFIN)
+		pCap->halIntrMask &= ~HAL_INT_TBTT;
 
 	return AH_TRUE;
 #undef IS_COBRA
==== //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c#3 (text+ko) ====
@@ -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.
  *
- * $FreeBSD: src/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c,v 1.2 2009/05/06 23:09:26 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c,v 1.5 2009/05/19 17:53:53 sam Exp $
  */
 #include "opt_ah.h"
 
>>> TRUNCATED FOR MAIL (1000 lines) <<<
    
    
More information about the p4-projects
mailing list