PERFORCE change 165337 for review

Andrew Thompson thompsa at FreeBSD.org
Sun Jun 28 05:41:00 UTC 2009


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

Change 165337 by thompsa at thompsa_burger on 2009/06/28 05:40:08

	IFC @165332

Affected files ...

.. //depot/projects/usb/src/sys/amd64/amd64/intr_machdep.c#10 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/io_apic.c#7 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/msi.c#9 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/sys_machdep.c#3 integrate
.. //depot/projects/usb/src/sys/amd64/include/intr_machdep.h#8 integrate
.. //depot/projects/usb/src/sys/amd64/include/vm.h#1 branch
.. //depot/projects/usb/src/sys/arm/at91/if_ate.c#15 integrate
.. //depot/projects/usb/src/sys/arm/conf/CAMBRIA.hints#6 integrate
.. //depot/projects/usb/src/sys/arm/include/vm.h#1 branch
.. //depot/projects/usb/src/sys/arm/xscale/ixp425/if_npe.c#13 integrate
.. //depot/projects/usb/src/sys/boot/i386/libi386/biosdisk.c#12 integrate
.. //depot/projects/usb/src/sys/cam/scsi/scsi_target.c#6 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_misc.c#19 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_signal.c#5 integrate
.. //depot/projects/usb/src/sys/compat/ndis/subr_usbd.c#17 integrate
.. //depot/projects/usb/src/sys/conf/NOTES#42 integrate
.. //depot/projects/usb/src/sys/conf/files#71 integrate
.. //depot/projects/usb/src/sys/dev/ae/if_ae.c#4 integrate
.. //depot/projects/usb/src/sys/dev/age/if_age.c#10 integrate
.. //depot/projects/usb/src/sys/dev/alc/if_alc.c#2 integrate
.. //depot/projects/usb/src/sys/dev/ale/if_ale.c#4 integrate
.. //depot/projects/usb/src/sys/dev/asmc/asmc.c#6 integrate
.. //depot/projects/usb/src/sys/dev/asmc/asmcvar.h#4 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ah.c#7 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ah.h#6 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ah_internal.h#6 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c#6 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#2 integrate
.. //depot/projects/usb/src/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c#5 integrate
.. //depot/projects/usb/src/sys/dev/ath/if_ath.c#28 integrate
.. //depot/projects/usb/src/sys/dev/ath/if_athvar.h#20 integrate
.. //depot/projects/usb/src/sys/dev/bce/if_bce.c#21 integrate
.. //depot/projects/usb/src/sys/dev/bfe/if_bfe.c#10 integrate
.. //depot/projects/usb/src/sys/dev/bge/if_bge.c#19 integrate
.. //depot/projects/usb/src/sys/dev/bm/if_bm.c#7 integrate
.. //depot/projects/usb/src/sys/dev/cas/if_cas.c#3 integrate
.. //depot/projects/usb/src/sys/dev/cpuctl/cpuctl.c#4 integrate
.. //depot/projects/usb/src/sys/dev/cs/if_cs.c#5 integrate
.. //depot/projects/usb/src/sys/dev/cxgb/cxgb_adapter.h#12 integrate
.. //depot/projects/usb/src/sys/dev/cxgb/cxgb_sge.c#17 integrate
.. //depot/projects/usb/src/sys/dev/cxgb/sys/mvec.h#7 integrate
.. //depot/projects/usb/src/sys/dev/cxgb/sys/uipc_mvec.c#8 integrate
.. //depot/projects/usb/src/sys/dev/dc/if_dc.c#12 integrate
.. //depot/projects/usb/src/sys/dev/de/if_de.c#7 integrate
.. //depot/projects/usb/src/sys/dev/drm/drm_irq.c#11 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_dma.c#13 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_drv.h#9 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_irq.c#10 integrate
.. //depot/projects/usb/src/sys/dev/drm/radeon_cp.c#10 integrate
.. //depot/projects/usb/src/sys/dev/drm/radeon_irq.c#9 integrate
.. //depot/projects/usb/src/sys/dev/e1000/if_em.c#9 integrate
.. //depot/projects/usb/src/sys/dev/e1000/if_igb.c#10 integrate
.. //depot/projects/usb/src/sys/dev/ed/if_ed.c#9 integrate
.. //depot/projects/usb/src/sys/dev/et/if_et.c#3 integrate
.. //depot/projects/usb/src/sys/dev/ex/if_ex.c#4 integrate
.. //depot/projects/usb/src/sys/dev/fe/if_fe.c#6 integrate
.. //depot/projects/usb/src/sys/dev/fxp/if_fxp.c#14 integrate
.. //depot/projects/usb/src/sys/dev/gem/if_gem.c#11 integrate
.. //depot/projects/usb/src/sys/dev/hme/if_hme.c#6 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_logging.c#8 integrate
.. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_mod.c#12 integrate
.. //depot/projects/usb/src/sys/dev/ie/if_ie.c#4 integrate
.. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis.c#30 integrate
.. //depot/projects/usb/src/sys/dev/iscsi/initiator/isc_soc.c#4 integrate
.. //depot/projects/usb/src/sys/dev/ixgb/if_ixgb.c#7 integrate
.. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe.c#8 integrate
.. //depot/projects/usb/src/sys/dev/jme/if_jme.c#7 integrate
.. //depot/projects/usb/src/sys/dev/le/lance.c#3 integrate
.. //depot/projects/usb/src/sys/dev/lge/if_lge.c#7 integrate
.. //depot/projects/usb/src/sys/dev/malo/if_malo.c#5 integrate
.. //depot/projects/usb/src/sys/dev/mge/if_mge.c#6 integrate
.. //depot/projects/usb/src/sys/dev/msk/if_msk.c#13 integrate
.. //depot/projects/usb/src/sys/dev/mxge/if_mxge.c#14 integrate
.. //depot/projects/usb/src/sys/dev/my/if_my.c#8 integrate
.. //depot/projects/usb/src/sys/dev/nfe/if_nfe.c#11 integrate
.. //depot/projects/usb/src/sys/dev/nge/if_nge.c#9 integrate
.. //depot/projects/usb/src/sys/dev/nve/if_nve.c#9 integrate
.. //depot/projects/usb/src/sys/dev/nxge/if_nxge.c#3 integrate
.. //depot/projects/usb/src/sys/dev/pcn/if_pcn.c#4 integrate
.. //depot/projects/usb/src/sys/dev/pdq/pdq_ifsubr.c#3 integrate
.. //depot/projects/usb/src/sys/dev/re/if_re.c#20 integrate
.. //depot/projects/usb/src/sys/dev/sf/if_sf.c#3 integrate
.. //depot/projects/usb/src/sys/dev/sis/if_sis.c#6 integrate
.. //depot/projects/usb/src/sys/dev/sk/if_sk.c#10 integrate
.. //depot/projects/usb/src/sys/dev/sn/if_sn.c#3 integrate
.. //depot/projects/usb/src/sys/dev/snc/dp83932.c#4 integrate
.. //depot/projects/usb/src/sys/dev/sound/midi/midi.c#7 integrate
.. //depot/projects/usb/src/sys/dev/sound/midi/sequencer.c#10 integrate
.. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#51 integrate
.. //depot/projects/usb/src/sys/dev/speaker/spkr.c#7 integrate
.. //depot/projects/usb/src/sys/dev/ste/if_ste.c#3 integrate
.. //depot/projects/usb/src/sys/dev/stge/if_stge.c#8 integrate
.. //depot/projects/usb/src/sys/dev/ti/if_ti.c#8 integrate
.. //depot/projects/usb/src/sys/dev/tl/if_tl.c#3 integrate
.. //depot/projects/usb/src/sys/dev/tsec/if_tsec.c#6 integrate
.. //depot/projects/usb/src/sys/dev/tx/if_tx.c#6 integrate
.. //depot/projects/usb/src/sys/dev/txp/if_txp.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/at91dci.c#26 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.c#36 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/avr32dci.c#11 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/musb_otg.c#24 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.c#26 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_aue.c#14 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_axe.c#15 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#18 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_cue.c#14 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_kue.c#14 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_rue.c#14 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/if_udav.c#14 integrate
.. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#25 integrate
.. //depot/projects/usb/src/sys/dev/usb/storage/ustorage_fs.c#24 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_controller.h#16 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_device.c#42 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#16 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_if.m#11 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#159 integrate
.. //depot/projects/usb/src/sys/dev/usb/usbdevs#65 integrate
.. //depot/projects/usb/src/sys/dev/usb/usbdi.h#10 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_upgt.c#12 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_urtw.c#6 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_zyd.c#21 integrate
.. //depot/projects/usb/src/sys/dev/vge/if_vge.c#10 integrate
.. //depot/projects/usb/src/sys/dev/vr/if_vr.c#6 integrate
.. //depot/projects/usb/src/sys/dev/wb/if_wb.c#3 integrate
.. //depot/projects/usb/src/sys/dev/wi/if_wi.c#14 integrate
.. //depot/projects/usb/src/sys/dev/wl/if_wl.c#5 integrate
.. //depot/projects/usb/src/sys/dev/xe/if_xe.c#4 integrate
.. //depot/projects/usb/src/sys/dev/xl/if_xl.c#6 integrate
.. //depot/projects/usb/src/sys/fs/coda/coda_psdev.c#3 integrate
.. //depot/projects/usb/src/sys/fs/coda/coda_vnops.c#7 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#7 integrate
.. //depot/projects/usb/src/sys/fs/pseudofs/pseudofs_vnops.c#16 integrate
.. //depot/projects/usb/src/sys/gnu/fs/xfs/FreeBSD/xfs_ioctl.c#5 integrate
.. //depot/projects/usb/src/sys/i386/i386/intr_machdep.c#11 integrate
.. //depot/projects/usb/src/sys/i386/i386/io_apic.c#7 integrate
.. //depot/projects/usb/src/sys/i386/i386/msi.c#9 integrate
.. //depot/projects/usb/src/sys/i386/i386/sys_machdep.c#10 integrate
.. //depot/projects/usb/src/sys/i386/include/intr_machdep.h#7 integrate
.. //depot/projects/usb/src/sys/i386/include/vm.h#1 branch
.. //depot/projects/usb/src/sys/i386/linux/linux_machdep.c#11 integrate
.. //depot/projects/usb/src/sys/ia64/include/vm.h#1 branch
.. //depot/projects/usb/src/sys/kern/kern_descrip.c#25 integrate
.. //depot/projects/usb/src/sys/kern/kern_exec.c#18 integrate
.. //depot/projects/usb/src/sys/kern/kern_exit.c#19 integrate
.. //depot/projects/usb/src/sys/kern/kern_fork.c#18 integrate
.. //depot/projects/usb/src/sys/kern/kern_intr.c#14 integrate
.. //depot/projects/usb/src/sys/kern/kern_lockf.c#12 integrate
.. //depot/projects/usb/src/sys/kern/kern_mbuf.c#13 integrate
.. //depot/projects/usb/src/sys/kern/kern_prot.c#16 integrate
.. //depot/projects/usb/src/sys/kern/kern_sig.c#15 integrate
.. //depot/projects/usb/src/sys/kern/kern_thr.c#12 integrate
.. //depot/projects/usb/src/sys/kern/sys_generic.c#15 integrate
.. //depot/projects/usb/src/sys/kern/sys_process.c#12 integrate
.. //depot/projects/usb/src/sys/kern/sysv_shm.c#12 integrate
.. //depot/projects/usb/src/sys/kern/vfs_cluster.c#7 integrate
.. //depot/projects/usb/src/sys/kern/vfs_extattr.c#9 integrate
.. //depot/projects/usb/src/sys/kern/vfs_lookup.c#19 integrate
.. //depot/projects/usb/src/sys/kern/vfs_mount.c#26 integrate
.. //depot/projects/usb/src/sys/kern/vfs_syscalls.c#24 integrate
.. //depot/projects/usb/src/sys/mips/adm5120/if_admsw.c#5 integrate
.. //depot/projects/usb/src/sys/mips/include/vm.h#1 branch
.. //depot/projects/usb/src/sys/net/if.c#32 integrate
.. //depot/projects/usb/src/sys/net/if_spppsubr.c#12 integrate
.. //depot/projects/usb/src/sys/net/if_stf.c#13 integrate
.. //depot/projects/usb/src/sys/net/if_tap.c#11 integrate
.. //depot/projects/usb/src/sys/net/if_tun.c#15 integrate
.. //depot/projects/usb/src/sys/net/if_var.h#22 integrate
.. //depot/projects/usb/src/sys/net/netisr.c#11 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_eiface.c#11 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_ether.c#13 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_iface.c#13 integrate
.. //depot/projects/usb/src/sys/netinet/if_ether.c#23 integrate
.. //depot/projects/usb/src/sys/netinet/in.c#29 integrate
.. //depot/projects/usb/src/sys/netinet/in_gif.c#13 integrate
.. //depot/projects/usb/src/sys/netinet/in_mcast.c#16 integrate
.. //depot/projects/usb/src/sys/netinet/in_pcb.c#28 integrate
.. //depot/projects/usb/src/sys/netinet/in_var.h#14 integrate
.. //depot/projects/usb/src/sys/netinet/ip_carp.c#16 integrate
.. //depot/projects/usb/src/sys/netinet/ip_divert.c#20 integrate
.. //depot/projects/usb/src/sys/netinet/ip_icmp.c#16 integrate
.. //depot/projects/usb/src/sys/netinet/ip_input.c#27 integrate
.. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#3 integrate
.. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_nat.c#2 integrate
.. //depot/projects/usb/src/sys/netinet/raw_ip.c#25 integrate
.. //depot/projects/usb/src/sys/netinet6/in6.c#27 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_ifattach.c#25 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_src.c#18 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_var.h#10 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_input.c#25 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6.c#21 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6_rtr.c#19 integrate
.. //depot/projects/usb/src/sys/netipsec/key.c#21 integrate
.. //depot/projects/usb/src/sys/nfs/nfs_nfssvc.c#2 integrate
.. //depot/projects/usb/src/sys/nfsclient/nfs_vnops.c#25 integrate
.. //depot/projects/usb/src/sys/pc98/include/vm.h#1 branch
.. //depot/projects/usb/src/sys/pci/if_rl.c#12 integrate
.. //depot/projects/usb/src/sys/powerpc/conf/MPC85XX#9 integrate
.. //depot/projects/usb/src/sys/powerpc/include/vm.h#1 branch
.. //depot/projects/usb/src/sys/security/audit/audit.h#11 integrate
.. //depot/projects/usb/src/sys/security/audit/audit_syscalls.c#15 integrate
.. //depot/projects/usb/src/sys/sparc64/include/vm.h#1 branch
.. //depot/projects/usb/src/sys/sun4v/conf/GENERIC#14 integrate
.. //depot/projects/usb/src/sys/sun4v/include/vm.h#1 branch
.. //depot/projects/usb/src/sys/sun4v/sun4v/pmap.c#8 integrate
.. //depot/projects/usb/src/sys/sys/acl.h#5 integrate
.. //depot/projects/usb/src/sys/sys/conf.h#18 integrate
.. //depot/projects/usb/src/sys/sys/uio.h#4 integrate
.. //depot/projects/usb/src/sys/sys/unistd.h#4 integrate
.. //depot/projects/usb/src/sys/sys/vnode.h#23 integrate
.. //depot/projects/usb/src/sys/ufs/ufs/ufs_dirhash.c#10 integrate
.. //depot/projects/usb/src/sys/vm/vm.h#5 integrate
.. //depot/projects/usb/src/sys/vm/vm_contig.c#13 integrate
.. //depot/projects/usb/src/sys/vm/vm_extern.h#7 integrate
.. //depot/projects/usb/src/sys/vm/vm_fault.c#15 integrate
.. //depot/projects/usb/src/sys/vm/vm_kern.c#12 integrate
.. //depot/projects/usb/src/sys/vm/vm_map.c#16 integrate
.. //depot/projects/usb/src/sys/vm/vm_map.h#10 integrate
.. //depot/projects/usb/src/sys/vm/vm_mmap.c#19 integrate
.. //depot/projects/usb/src/sys/vm/vm_object.c#18 integrate
.. //depot/projects/usb/src/sys/vm/vm_object.h#8 integrate
.. //depot/projects/usb/src/sys/vm/vm_pageout.c#17 integrate
.. //depot/projects/usb/src/sys/vm/vm_pager.c#4 integrate
.. //depot/projects/usb/src/sys/vm/vm_pager.h#3 integrate
.. //depot/projects/usb/src/sys/vm/vm_phys.c#6 integrate
.. //depot/projects/usb/src/sys/vm/vm_phys.h#4 integrate
.. //depot/projects/usb/src/sys/vm/vnode_pager.c#18 integrate

Differences ...

==== //depot/projects/usb/src/sys/amd64/amd64/intr_machdep.c#10 (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.42 2008/12/02 14:19:53 ganbold Exp $
+ * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.44 2009/06/25 20:35:46 jhb Exp $
  */
 
 /*
@@ -51,7 +51,6 @@
 #include <sys/smp.h>
 #include <sys/syslog.h>
 #include <sys/systm.h>
-#include <sys/sx.h>
 #include <machine/clock.h>
 #include <machine/intr_machdep.h>
 #include <machine/smp.h>
@@ -73,14 +72,12 @@
 
 static int intrcnt_index;
 static struct intsrc *interrupt_sources[NUM_IO_INTS];
-static struct sx intr_table_lock;
+static struct mtx intr_table_lock;
 static struct mtx intrcnt_lock;
 static STAILQ_HEAD(, pic) pics;
 
 #ifdef SMP
 static int assign_cpu;
-
-static void	intr_assign_next_cpu(struct intsrc *isrc);
 #endif
 
 static int	intr_assign_cpu(void *arg, u_char cpu);
@@ -114,14 +111,14 @@
 {
 	int error;
 
-	sx_xlock(&intr_table_lock);
+	mtx_lock(&intr_table_lock);
 	if (intr_pic_registered(pic))
 		error = EBUSY;
 	else {
 		STAILQ_INSERT_TAIL(&pics, pic, pics);
 		error = 0;
 	}
-	sx_xunlock(&intr_table_lock);
+	mtx_unlock(&intr_table_lock);
 	return (error);
 }
 
@@ -145,16 +142,16 @@
 	    vector);
 	if (error)
 		return (error);
-	sx_xlock(&intr_table_lock);
+	mtx_lock(&intr_table_lock);
 	if (interrupt_sources[vector] != NULL) {
-		sx_xunlock(&intr_table_lock);
+		mtx_unlock(&intr_table_lock);
 		intr_event_destroy(isrc->is_event);
 		return (EEXIST);
 	}
 	intrcnt_register(isrc);
 	interrupt_sources[vector] = isrc;
 	isrc->is_handlers = 0;
-	sx_xunlock(&intr_table_lock);
+	mtx_unlock(&intr_table_lock);
 	return (0);
 }
 
@@ -178,18 +175,14 @@
 	error = intr_event_add_handler(isrc->is_event, name, filter, handler,
 	    arg, intr_priority(flags), flags, cookiep);
 	if (error == 0) {
-		sx_xlock(&intr_table_lock);
+		mtx_lock(&intr_table_lock);
 		intrcnt_updatename(isrc);
 		isrc->is_handlers++;
 		if (isrc->is_handlers == 1) {
-#ifdef SMP
-			if (assign_cpu)
-				intr_assign_next_cpu(isrc);
-#endif
 			isrc->is_pic->pic_enable_intr(isrc);
 			isrc->is_pic->pic_enable_source(isrc);
 		}
-		sx_xunlock(&intr_table_lock);
+		mtx_unlock(&intr_table_lock);
 	}
 	return (error);
 }
@@ -203,14 +196,14 @@
 	isrc = intr_handler_source(cookie);
 	error = intr_event_remove_handler(cookie);
 	if (error == 0) {
-		sx_xlock(&intr_table_lock);
+		mtx_lock(&intr_table_lock);
 		isrc->is_handlers--;
 		if (isrc->is_handlers == 0) {
 			isrc->is_pic->pic_disable_source(isrc, PIC_NO_EOI);
 			isrc->is_pic->pic_disable_intr(isrc);
 		}
 		intrcnt_updatename(isrc);
-		sx_xunlock(&intr_table_lock);
+		mtx_unlock(&intr_table_lock);
 	}
 	return (error);
 }
@@ -284,12 +277,12 @@
 #ifndef DEV_ATPIC
 	atpic_reset();
 #endif
-	sx_xlock(&intr_table_lock);
+	mtx_lock(&intr_table_lock);
 	STAILQ_FOREACH(pic, &pics, pics) {
 		if (pic->pic_resume != NULL)
 			pic->pic_resume(pic);
 	}
-	sx_xunlock(&intr_table_lock);
+	mtx_unlock(&intr_table_lock);
 }
 
 void
@@ -297,12 +290,12 @@
 {
 	struct pic *pic;
 
-	sx_xlock(&intr_table_lock);
+	mtx_lock(&intr_table_lock);
 	STAILQ_FOREACH(pic, &pics, pics) {
 		if (pic->pic_suspend != NULL)
 			pic->pic_suspend(pic);
 	}
-	sx_xunlock(&intr_table_lock);
+	mtx_unlock(&intr_table_lock);
 }
 
 static int
@@ -317,9 +310,9 @@
 	 */
 	if (assign_cpu && cpu != NOCPU) {
 		isrc = arg;
-		sx_xlock(&intr_table_lock);
+		mtx_lock(&intr_table_lock);
 		isrc->is_pic->pic_assign_cpu(isrc, cpu_apic_ids[cpu]);
-		sx_xunlock(&intr_table_lock);
+		mtx_unlock(&intr_table_lock);
 	}
 	return (0);
 #else
@@ -378,7 +371,7 @@
 	intrcnt_setname("???", 0);
 	intrcnt_index = 1;
 	STAILQ_INIT(&pics);
-	sx_init(&intr_table_lock, "intr sources");
+	mtx_init(&intr_table_lock, "intr sources", NULL, MTX_DEF | MTX_RECURSE);
 	mtx_init(&intrcnt_lock, "intrcnt", NULL, MTX_SPIN);
 }
 SYSINIT(intr_init, SI_SUB_INTR, SI_ORDER_FIRST, intr_init, NULL);
@@ -435,19 +428,28 @@
 static cpumask_t intr_cpus = (1 << 0);
 static int current_cpu;
 
-static void
-intr_assign_next_cpu(struct intsrc *isrc)
+/*
+ * Return the CPU that the next interrupt source should use.  For now
+ * this just returns the next local APIC according to round-robin.
+ */
+u_int
+intr_next_cpu(void)
 {
+	u_int apic_id;
 
-	/*
-	 * Assign this source to a local APIC in a round-robin fashion.
-	 */
-	isrc->is_pic->pic_assign_cpu(isrc, cpu_apic_ids[current_cpu]);
+	/* Leave all interrupts on the BSP during boot. */
+	if (!assign_cpu)
+		return (cpu_apic_ids[0]);
+
+	mtx_lock(&intr_table_lock);
+	apic_id = cpu_apic_ids[current_cpu];
 	do {
 		current_cpu++;
 		if (current_cpu > mp_maxid)
 			current_cpu = 0;
 	} while (!(intr_cpus & (1 << current_cpu)));
+	mtx_unlock(&intr_table_lock);
+	return (apic_id);
 }
 
 /* Attempt to bind the specified IRQ to the specified CPU. */
@@ -487,6 +489,7 @@
 intr_shuffle_irqs(void *arg __unused)
 {
 	struct intsrc *isrc;
+	u_int apic_id;
 	int i;
 
 	/* Don't bother on UP. */
@@ -494,7 +497,7 @@
 		return;
 
 	/* Round-robin assign a CPU to each enabled source. */
-	sx_xlock(&intr_table_lock);
+	mtx_lock(&intr_table_lock);
 	assign_cpu = 1;
 	for (i = 0; i < NUM_IO_INTS; i++) {
 		isrc = interrupt_sources[i];
@@ -505,14 +508,24 @@
 			 * of picking one via round-robin.
 			 */
 			if (isrc->is_event->ie_cpu != NOCPU)
-				isrc->is_pic->pic_assign_cpu(isrc,
-				    cpu_apic_ids[isrc->is_event->ie_cpu]);
+				apic_id = isrc->is_event->ie_cpu;
 			else
-				intr_assign_next_cpu(isrc);
+				apic_id = intr_next_cpu();
+			isrc->is_pic->pic_assign_cpu(isrc, apic_id);
 		}
 	}
-	sx_xunlock(&intr_table_lock);
+	mtx_unlock(&intr_table_lock);
 }
 SYSINIT(intr_shuffle_irqs, SI_SUB_SMP, SI_ORDER_SECOND, intr_shuffle_irqs,
     NULL);
+#else
+/*
+ * Always route interrupts to the current processor in the UP case.
+ */
+u_int
+intr_next_cpu(void)
+{
+
+	return (PCPU_GET(apic_id));
+}
 #endif

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

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.32 2009/01/29 09:22:56 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.33 2009/06/25 18:13:46 jhb Exp $");
 
 #include "opt_isa.h"
 
@@ -372,7 +372,7 @@
 	struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc;
 
 	if (intpin->io_vector == 0)
-		ioapic_assign_cpu(isrc, pcpu_find(0)->pc_apic_id);
+		ioapic_assign_cpu(isrc, intr_next_cpu());
 	apic_enable_vector(intpin->io_cpu, intpin->io_vector);
 }
 

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

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/msi.c,v 1.11 2009/06/15 13:47:49 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/msi.c,v 1.12 2009/06/25 18:13:46 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -161,8 +161,6 @@
 {
 	struct msi_intsrc *msi = (struct msi_intsrc *)isrc;
 
-	if (msi->msi_vector == 0)
-		msi_assign_cpu(isrc, 0);
 	apic_enable_vector(msi->msi_cpu, msi->msi_vector);
 }
 
@@ -208,10 +206,11 @@
 	/* Store information to free existing irq. */
 	old_vector = msi->msi_vector;
 	old_id = msi->msi_cpu;
-	if (old_vector && old_id == apic_id)
+	if (old_id == apic_id)
 		return;
-	if (old_vector && !msi->msi_msix && msi->msi_first->msi_count > 1)
+	if (!msi->msi_msix && msi->msi_first->msi_count > 1)
 		return;
+
 	/* Allocate IDT vector on this cpu. */
 	vector = apic_alloc_vector(apic_id, msi->msi_irq);
 	if (vector == 0)
@@ -223,15 +222,14 @@
 		    msi->msi_msix ? "MSI-X" : "MSI", msi->msi_irq,
 		    msi->msi_cpu, msi->msi_vector);
 	pci_remap_msi_irq(msi->msi_dev, msi->msi_irq);
+
 	/*
 	 * Free the old vector after the new one is established.  This is done
 	 * to prevent races where we could miss an interrupt.
 	 */
-	if (old_vector)
-		apic_free_vector(old_id, old_vector, msi->msi_irq);
+	apic_free_vector(old_id, old_vector, msi->msi_irq);
 }
 
-
 void
 msi_init(void)
 {
@@ -287,7 +285,8 @@
 msi_alloc(device_t dev, int count, int maxcount, int *irqs)
 {
 	struct msi_intsrc *msi, *fsrc;
-	int cnt, i;
+	u_int cpu;
+	int cnt, i, vector;
 
 	if (!msi_enabled)
 		return (ENXIO);
@@ -333,12 +332,25 @@
 	/* Ok, we now have the IRQs allocated. */
 	KASSERT(cnt == count, ("count mismatch"));
 
+	/* Allocate 'count' IDT vectors. */
+	cpu = intr_next_cpu();
+	vector = apic_alloc_vectors(cpu, irqs, count, maxcount);
+	if (vector == 0) {
+		mtx_unlock(&msi_lock);
+		return (ENOSPC);
+	}
+
 	/* Assign IDT vectors and make these messages owned by 'dev'. */
 	fsrc = (struct msi_intsrc *)intr_lookup_source(irqs[0]);
 	for (i = 0; i < count; i++) {
 		msi = (struct msi_intsrc *)intr_lookup_source(irqs[i]);
+		msi->msi_cpu = cpu;
 		msi->msi_dev = dev;
-		msi->msi_vector = 0;
+		msi->msi_vector = vector + i;
+		if (bootverbose)
+			printf(
+		    "msi: routing MSI IRQ %d to local APIC %u vector %u\n",
+			    msi->msi_irq, msi->msi_cpu, msi->msi_vector);
 		msi->msi_first = fsrc;
 		KASSERT(msi->msi_intsrc.is_handlers == 0,
 		    ("dead MSI has handlers"));
@@ -391,18 +403,14 @@
 		KASSERT(msi->msi_dev == first->msi_dev, ("owner mismatch"));
 		msi->msi_first = NULL;
 		msi->msi_dev = NULL;
-		if (msi->msi_vector)
-			apic_free_vector(msi->msi_cpu, msi->msi_vector,
-			    msi->msi_irq);
+		apic_free_vector(msi->msi_cpu, msi->msi_vector, msi->msi_irq);
 		msi->msi_vector = 0;
 	}
 
 	/* Clear out the first message. */
 	first->msi_first = NULL;
 	first->msi_dev = NULL;
-	if (first->msi_vector)
-		apic_free_vector(first->msi_cpu, first->msi_vector,
-		    first->msi_irq);
+	apic_free_vector(first->msi_cpu, first->msi_vector, first->msi_irq);
 	first->msi_vector = 0;
 	first->msi_count = 0;
 
@@ -451,7 +459,8 @@
 msix_alloc(device_t dev, int *irq)
 {
 	struct msi_intsrc *msi;
-	int i;
+	u_int cpu;
+	int i, vector;
 
 	if (!msi_enabled)
 		return (ENXIO);
@@ -486,9 +495,17 @@
 		goto again;
 	}
 
+	/* Allocate an IDT vector. */
+	cpu = intr_next_cpu();
+	vector = apic_alloc_vector(cpu, i);
+	if (bootverbose)
+		printf("msi: routing MSI-X IRQ %d to local APIC %u vector %u\n",
+		    msi->msi_irq, cpu, vector);
+	
 	/* Setup source. */
+	msi->msi_cpu = cpu;
 	msi->msi_dev = dev;
-	msi->msi_vector = 0;
+	msi->msi_vector = vector;
 	msi->msi_msix = 1;
 
 	KASSERT(msi->msi_intsrc.is_handlers == 0, ("dead MSI-X has handlers"));
@@ -520,8 +537,7 @@
 
 	/* Clear out the message. */
 	msi->msi_dev = NULL;
-	if (msi->msi_vector)
-		apic_free_vector(msi->msi_cpu, msi->msi_vector, msi->msi_irq);
+	apic_free_vector(msi->msi_cpu, msi->msi_vector, msi->msi_irq);
 	msi->msi_vector = 0;
 	msi->msi_msix = 0;
 

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

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/sys_machdep.c,v 1.91 2009/04/01 13:09:26 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/sys_machdep.c,v 1.93 2009/06/27 15:03:50 rwatson Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -87,7 +87,7 @@
 	 * XXXKIB check that the BSM generation code knows to encode
 	 * the op argument.
 	 */
-	AUDIT_ARG(cmd, uap->op);
+	AUDIT_ARG_CMD(uap->op);
 	if (uap_space == UIO_USERSPACE) {
 		error = copyin(uap->parms, &la, sizeof(struct i386_ldt_args));
 		if (error != 0)
@@ -170,7 +170,7 @@
 	 * XXXKIB check that the BSM generation code knows to encode
 	 * the op argument.
 	 */
-	AUDIT_ARG(cmd, uap->op);
+	AUDIT_ARG_CMD(uap->op);
 	switch (uap->op) {
 	case I386_GET_IOPERM:
 	case I386_SET_IOPERM:

==== //depot/projects/usb/src/sys/amd64/include/intr_machdep.h#8 (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/amd64/include/intr_machdep.h,v 1.21 2009/02/03 09:01:45 jkoshy Exp $
+ * $FreeBSD: src/sys/amd64/include/intr_machdep.h,v 1.23 2009/06/25 20:35:46 jhb Exp $
  */
 
 #ifndef __MACHINE_INTR_MACHDEP_H__
@@ -152,6 +152,7 @@
 int	intr_config_intr(int vector, enum intr_trigger trig,
     enum intr_polarity pol);
 void	intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame);
+u_int	intr_next_cpu(void);
 struct intsrc *intr_lookup_source(int vector);
 int	intr_register_pic(struct pic *pic);
 int	intr_register_source(struct intsrc *isrc);

==== //depot/projects/usb/src/sys/arm/at91/if_ate.c#15 (text) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.38 2009/06/11 17:05:13 avg Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.39 2009/06/26 11:45:06 rwatson Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -413,7 +413,7 @@
 	 */
 	mcaf[0] = 0;
 	mcaf[1] = 0;
-	IF_ADDR_LOCK(ifp);
+	if_maddr_rlock(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -421,14 +421,14 @@
 		    ifma->ifma_addr), ETHER_ADDR_LEN) >> 26;
 		af[index >> 3] |= 1 << (index & 7);
 	}
-	IF_ADDR_UNLOCK(ifp);
+	if_maddr_runlock(ifp);
 
 	/*
 	 * Write the hash to the hash register.  This card can also
 	 * accept unicast packets as well as multicast packets using this
 	 * register for easier bridging operations, but we don't take
 	 * advantage of that.  Locks here are to avoid LOR with the
-	 * IF_ADDR_LOCK, but might not be strictly necessary.
+	 * if_maddr_rlock, but might not be strictly necessary.
 	 */
 	WR4(sc, ETH_HSL, mcaf[0]);
 	WR4(sc, ETH_HSH, mcaf[1]);

==== //depot/projects/usb/src/sys/arm/conf/CAMBRIA.hints#6 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/arm/conf/CAMBRIA.hints,v 1.9 2009/06/22 23:22:38 sam Exp $
+# $FreeBSD: src/sys/arm/conf/CAMBRIA.hints,v 1.10 2009/06/25 18:07:19 sam Exp $
 
 #
 # Device wiring for the Gateworks Cambria 2358.
@@ -14,16 +14,16 @@
 # NB: no UART1 on ixp435
 
 # optional GPS serial port
-hint.uart.1.at="ixp0"
-hint.uart.1.addr=0x53fc0000
-hint.uart.1.irq=20
-hint.uart.1.ier_rxbits=0x1
-hint.uart.1.rclk=1843200
+#hint.uart.1.at="ixp0"
+#hint.uart.1.addr=0x53fc0000
+#hint.uart.1.irq=20
+#hint.uart.1.ier_rxbits=0x1
+#hint.uart.1.rclk=1843200
 # optional RS485 serial port
-hint.uart.2.at="ixp0"
-hint.uart.2.addr=0x53f80000
-hint.uart.2.irq=21
-hint.uart.2.rclk=1843200
+#hint.uart.2.at="ixp0"
+#hint.uart.2.addr=0x53f80000
+#hint.uart.2.irq=21
+#hint.uart.2.rclk=1843200
 
 # NPE Hardware Queue Manager
 hint.ixpqmgr.0.at="ixp0"

==== //depot/projects/usb/src/sys/arm/xscale/ixp425/if_npe.c#13 (text+ko) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.19 2009/06/17 02:53:05 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.20 2009/06/26 11:45:06 rwatson Exp $");
 
 /*
  * Intel XScale NPE Ethernet driver.
@@ -435,7 +435,7 @@
 		memset(clr, 0, ETHER_ADDR_LEN);
 		memset(set, 0xff, ETHER_ADDR_LEN);
 
-		IF_ADDR_LOCK(ifp);
+		if_maddr_rlock(ifp);
 		TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 			if (ifma->ifma_addr->sa_family != AF_LINK)
 				continue;
@@ -445,7 +445,7 @@
 				set[i] &= mac[i];
 			}
 		}
-		IF_ADDR_UNLOCK(ifp);
+		if_maddr_runlock(ifp);
 
 		for (i = 0; i < ETHER_ADDR_LEN; i++) {
 			mask[i] = set[i] | ~clr[i];

==== //depot/projects/usb/src/sys/boot/i386/libi386/biosdisk.c#12 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosdisk.c,v 1.61 2009/06/08 15:07:35 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosdisk.c,v 1.62 2009/06/26 09:32:31 rpaulo Exp $");
 
 /*
  * BIOS disk device handling.
@@ -880,7 +880,7 @@
     for (i = 0; i < NDOSPART; i++) {
 	if (dp[i].dp_typ == 0xee)
 	    part++;
-	else if (dp[i].dp_typ != 0x00)
+	else if ((part != 1) && (dp[i].dp_typ != 0x00))
 	    return (EINVAL);
     }
     if (part != 1)

==== //depot/projects/usb/src/sys/cam/scsi/scsi_target.c#6 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.77 2009/06/10 20:59:32 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.78 2009/06/25 18:46:30 kib Exp $");
 
 
 #include <sys/param.h>
@@ -552,7 +552,7 @@
 	softc = (struct targ_softc *)dev->si_drv1;
 	write_len = error = 0;
 	CAM_DEBUG(softc->path, CAM_DEBUG_PERIPH,
-		  ("write - uio_resid %d\n", uio->uio_resid));
+		  ("write - uio_resid %zd\n", uio->uio_resid));
 	while (uio->uio_resid >= sizeof(user_ccb) && error == 0) {
 		union ccb *ccb;
 

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

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.91 2009/06/24 21:10:52 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.92 2009/06/27 13:58:44 rwatson Exp $");
 
 #include "opt_compat.h"
 #include "opt_inet.h"
@@ -2924,7 +2924,7 @@
 	struct uio *auio;
 	int error;
 
-	AUDIT_ARG(fflags, uap->flags);
+	AUDIT_ARG_FFLAGS(uap->flags);
 
 	/*
 	 * Filter out MNT_ROOTFS.  We do not want clients of nmount() in

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

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_signal.c,v 1.66 2008/10/19 10:02:26 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_signal.c,v 1.67 2009/06/27 13:58:44 rwatson Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -546,8 +546,8 @@
 	ksiginfo_t ksi;
 	int error;
 
-	AUDIT_ARG(signum, signum);
-	AUDIT_ARG(pid, pid);
+	AUDIT_ARG_SIGNUM(signum);
+	AUDIT_ARG_PID(pid);
 
 	/*
 	 * Allow signal 0 as a means to check for privileges
@@ -563,7 +563,7 @@
 			return (ESRCH);
 	}
 
-	AUDIT_ARG(process, p);
+	AUDIT_ARG_PROCESS(p);
 	error = p_cansignal(td, p, signum);
 	if (error)
 		goto out;

==== //depot/projects/usb/src/sys/compat/ndis/subr_usbd.c#17 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_usbd.c,v 1.18 2009/06/23 06:00:31 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_usbd.c,v 1.19 2009/06/26 01:42:41 weongyo Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -82,10 +82,11 @@
 #define	USBD_CTRL_WRITE_PIPE		1
 #define	USBD_CTRL_MAX_PIPE		2
 #define	USBD_CTRL_READ_BUFFER_SP	256
+#define	USBD_CTRL_WRITE_BUFFER_SP	256
 #define	USBD_CTRL_READ_BUFFER_SIZE	\
 	(sizeof(struct usb_device_request) + USBD_CTRL_READ_BUFFER_SP)
 #define	USBD_CTRL_WRITE_BUFFER_SIZE	\
-	(sizeof(struct usb_device_request))
+	(sizeof(struct usb_device_request) + USBD_CTRL_WRITE_BUFFER_SP)
 static struct usb_config usbd_default_epconfig[USBD_CTRL_MAX_PIPE] = {
 	[USBD_CTRL_READ_PIPE] = {
 		.type =		UE_CONTROL,
@@ -1065,7 +1066,7 @@
 				    vcreq->uvc_trans_buflen));
 			usbd_xfer_set_frames(xfer, 2);
 		} else {
-			if (nx->nx_urblen > 0)
+			if (nx->nx_urblen > USBD_CTRL_WRITE_BUFFER_SP)
 				device_printf(sc->ndis_dev,
 				    "warning: not enough write buffer space"
 				    " (%d).\n", nx->nx_urblen);

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

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1548 2009/06/23 06:11:04 zec Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1549 2009/06/26 17:50:52 jhb Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -301,6 +301,9 @@
 # Old tty interface.
 options 	COMPAT_43TTY
 
+# Note that as a general rule, COMPAT_FREEBSD<n> depends on
+# COMPAT_FREEBSD<n+1>, COMPAT_FREEBSD<n+2>, etc.
+
 # Enable FreeBSD4 compatibility syscalls
 options 	COMPAT_FREEBSD4
 

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

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1445 2009/06/24 15:38:17 raj Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1446 2009/06/25 18:09:23 raj Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -489,10 +489,10 @@
 #
 dev/ata/ata_if.m		optional ata | atacore
 dev/ata/ata-all.c		optional ata | atacore
+dev/ata/ata-dma.c		optional ata | atacore
 dev/ata/ata-lowlevel.c		optional ata | atacore
 dev/ata/ata-queue.c		optional ata | atacore
-dev/ata/ata-dma.c		optional ata | atadma
-dev/ata/ata-sata.c		optional ata | atasata
+dev/ata/ata-sata.c		optional ata | atacore
 dev/ata/ata-card.c		optional ata pccard | atapccard
 dev/ata/ata-cbus.c		optional ata pc98 | atapc98
 dev/ata/ata-isa.c		optional ata isa | ataisa

==== //depot/projects/usb/src/sys/dev/ae/if_ae.c#4 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ae/if_ae.c,v 1.3 2009/02/04 20:35:31 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ae/if_ae.c,v 1.4 2009/06/26 11:45:06 rwatson Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -2073,7 +2073,7 @@
 	 * Load multicast tables.
 	 */
 	bzero(mchash, sizeof(mchash));
-	IF_ADDR_LOCK(ifp);
+	if_maddr_rlock(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
 			continue;
@@ -2081,7 +2081,7 @@
 			ifma->ifma_addr), ETHER_ADDR_LEN);
 		mchash[crc >> 31] |= 1 << ((crc >> 26) & 0x1f);
 	}
-	IF_ADDR_UNLOCK(ifp);
+	if_maddr_runlock(ifp);
 	AE_WRITE_4(sc, AE_REG_MHT0, mchash[0]);
 	AE_WRITE_4(sc, AE_REG_MHT1, mchash[1]);

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


More information about the p4-projects mailing list