PERFORCE change 180222 for review

John Baldwin jhb at FreeBSD.org
Fri Jun 25 20:22:32 UTC 2010


http://p4web.freebsd.org/@@180222?ac=10

Change 180222 by jhb at jhb_jhbbsd on 2010/06/25 20:21:33

	IFC @180220

Affected files ...

.. //depot/projects/smpng/share/man/man9/bus_generic_new_pass.9#2 integrate
.. //depot/projects/smpng/share/man/man9/bus_set_pass.9#2 integrate
.. //depot/projects/smpng/share/man/man9/insmntque.9#2 integrate
.. //depot/projects/smpng/share/man/man9/vfs_busy.9#2 integrate
.. //depot/projects/smpng/share/man/man9/vfs_mountedfrom.9#2 integrate
.. //depot/projects/smpng/share/man/man9/vfs_unbusy.9#2 integrate
.. //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#12 integrate
.. //depot/projects/smpng/sys/amd64/acpica/madt.c#20 integrate
.. //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#20 integrate
.. //depot/projects/smpng/sys/amd64/amd64/exception.S#29 integrate
.. //depot/projects/smpng/sys/amd64/amd64/fpu.c#16 integrate
.. //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#39 integrate
.. //depot/projects/smpng/sys/amd64/amd64/legacy.c#11 integrate
.. //depot/projects/smpng/sys/amd64/amd64/machdep.c#93 integrate
.. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#63 integrate
.. //depot/projects/smpng/sys/amd64/amd64/pmap.c#107 integrate
.. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#48 integrate
.. //depot/projects/smpng/sys/amd64/conf/NOTES#60 integrate
.. //depot/projects/smpng/sys/amd64/ia32/ia32_exception.S#7 integrate
.. //depot/projects/smpng/sys/amd64/ia32/ia32_signal.c#28 integrate
.. //depot/projects/smpng/sys/amd64/include/apicvar.h#28 integrate
.. //depot/projects/smpng/sys/amd64/include/asmacros.h#10 integrate
.. //depot/projects/smpng/sys/amd64/include/mca.h#5 integrate
.. //depot/projects/smpng/sys/amd64/include/smp.h#23 integrate
.. //depot/projects/smpng/sys/arm/arm/nexus.c#13 integrate
.. //depot/projects/smpng/sys/arm/arm/pmap.c#60 integrate
.. //depot/projects/smpng/sys/arm/conf/DB-78XXX#8 integrate
.. //depot/projects/smpng/sys/arm/conf/DB-88F5XXX#8 integrate
.. //depot/projects/smpng/sys/arm/conf/DB-88F6XXX#8 integrate
.. //depot/projects/smpng/sys/arm/conf/SHEEVAPLUG#3 integrate
.. //depot/projects/smpng/sys/arm/include/bootinfo.h#2 integrate
.. //depot/projects/smpng/sys/arm/include/fdt.h#1 branch
.. //depot/projects/smpng/sys/arm/include/metadata.h#5 integrate
.. //depot/projects/smpng/sys/arm/include/ofw_machdep.h#1 branch
.. //depot/projects/smpng/sys/arm/mv/bus_space.c#2 integrate
.. //depot/projects/smpng/sys/arm/mv/common.c#8 integrate
.. //depot/projects/smpng/sys/arm/mv/discovery/db78xxx.c#6 delete
.. //depot/projects/smpng/sys/arm/mv/discovery/discovery.c#7 integrate
.. //depot/projects/smpng/sys/arm/mv/discovery/files.db78xxx#2 integrate
.. //depot/projects/smpng/sys/arm/mv/files.mv#8 integrate
.. //depot/projects/smpng/sys/arm/mv/gpio.c#4 integrate
.. //depot/projects/smpng/sys/arm/mv/ic.c#4 integrate
.. //depot/projects/smpng/sys/arm/mv/kirkwood/db88f6xxx.c#6 delete
.. //depot/projects/smpng/sys/arm/mv/kirkwood/files.db88f6xxx#3 delete
.. //depot/projects/smpng/sys/arm/mv/kirkwood/kirkwood.c#8 integrate
.. //depot/projects/smpng/sys/arm/mv/kirkwood/sheevaplug.c#2 integrate
.. //depot/projects/smpng/sys/arm/mv/kirkwood/std.db88f6xxx#3 integrate
.. //depot/projects/smpng/sys/arm/mv/kirkwood/std.sheevaplug#2 integrate
.. //depot/projects/smpng/sys/arm/mv/mv_machdep.c#10 integrate
.. //depot/projects/smpng/sys/arm/mv/mv_pci.c#5 integrate
.. //depot/projects/smpng/sys/arm/mv/mv_sata.c#4 integrate
.. //depot/projects/smpng/sys/arm/mv/mvreg.h#8 integrate
.. //depot/projects/smpng/sys/arm/mv/mvvar.h#5 integrate
.. //depot/projects/smpng/sys/arm/mv/mvwin.h#3 integrate
.. //depot/projects/smpng/sys/arm/mv/obio.c#4 delete
.. //depot/projects/smpng/sys/arm/mv/orion/db88f5xxx.c#6 integrate
.. //depot/projects/smpng/sys/arm/mv/orion/orion.c#7 integrate
.. //depot/projects/smpng/sys/arm/mv/rtc.c#2 integrate
.. //depot/projects/smpng/sys/arm/mv/timer.c#2 integrate
.. //depot/projects/smpng/sys/arm/mv/twsi.c#3 integrate
.. //depot/projects/smpng/sys/boot/arm/uboot/Makefile#4 integrate
.. //depot/projects/smpng/sys/boot/ficl/ficl.h#5 integrate
.. //depot/projects/smpng/sys/boot/forth/loader.conf#69 integrate
.. //depot/projects/smpng/sys/boot/i386/pxeldr/Makefile#8 integrate
.. //depot/projects/smpng/sys/boot/powerpc/uboot/Makefile#5 integrate
.. //depot/projects/smpng/sys/boot/uboot/common/metadata.c#4 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_all.h#17 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#6 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#13 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c#3 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c#7 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c#3 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c#3 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c#3 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#8 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#11 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#20 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#7 integrate
.. //depot/projects/smpng/sys/cddl/dev/cyclic/cyclic.c#3 integrate
.. //depot/projects/smpng/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#4 integrate
.. //depot/projects/smpng/sys/cddl/dev/dtrace/dtrace_debug.c#2 integrate
.. //depot/projects/smpng/sys/cddl/dev/dtrace/dtrace_load.c#3 integrate
.. //depot/projects/smpng/sys/cddl/dev/dtrace/i386/dtrace_subr.c#4 integrate
.. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#85 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_usbd.c#17 integrate
.. //depot/projects/smpng/sys/compat/x86bios/x86bios.c#5 integrate
.. //depot/projects/smpng/sys/compat/x86bios/x86bios.h#3 integrate
.. //depot/projects/smpng/sys/conf/Makefile.arm#36 integrate
.. //depot/projects/smpng/sys/conf/NOTES#186 integrate
.. //depot/projects/smpng/sys/conf/files#261 integrate
.. //depot/projects/smpng/sys/conf/files.amd64#77 integrate
.. //depot/projects/smpng/sys/conf/files.arm#18 integrate
.. //depot/projects/smpng/sys/conf/files.i386#135 integrate
.. //depot/projects/smpng/sys/conf/files.mips#9 integrate
.. //depot/projects/smpng/sys/conf/ldscript.mips.n32#1 branch
.. //depot/projects/smpng/sys/conf/options.amd64#29 integrate
.. //depot/projects/smpng/sys/conf/options.arm#24 integrate
.. //depot/projects/smpng/sys/dev/acpi_support/acpi_asus.c#18 integrate
.. //depot/projects/smpng/sys/dev/acpi_support/acpi_fujitsu.c#8 integrate
.. //depot/projects/smpng/sys/dev/acpi_support/acpi_hp.c#4 integrate
.. //depot/projects/smpng/sys/dev/acpi_support/acpi_ibm.c#17 integrate
.. //depot/projects/smpng/sys/dev/acpi_support/atk0110.c#1 branch
.. //depot/projects/smpng/sys/dev/acpica/acpi_cpu.c#52 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_dock.c#10 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_hpet.c#15 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_hpet.h#2 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_thermal.c#47 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_video.c#16 integrate
.. //depot/projects/smpng/sys/dev/agp/agp_nvidia.c#4 integrate
.. //depot/projects/smpng/sys/dev/ata/chipsets/ata-serverworks.c#9 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath.c#87 integrate
.. //depot/projects/smpng/sys/dev/cxgb/cxgb_adapter.h#21 integrate
.. //depot/projects/smpng/sys/dev/cxgb/cxgb_main.c#32 integrate
.. //depot/projects/smpng/sys/dev/cxgb/cxgb_sge.c#27 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_vm.c#6 integrate
.. //depot/projects/smpng/sys/dev/e1000/if_em.c#19 integrate
.. //depot/projects/smpng/sys/dev/e1000/if_igb.c#21 integrate
.. //depot/projects/smpng/sys/dev/e1000/if_igb.h#8 integrate
.. //depot/projects/smpng/sys/dev/e1000/if_lem.c#3 integrate
.. //depot/projects/smpng/sys/dev/fb/fbreg.h#18 integrate
.. //depot/projects/smpng/sys/dev/fb/vesa.c#8 integrate
.. //depot/projects/smpng/sys/dev/fdt/fdt_arm.c#1 branch
.. //depot/projects/smpng/sys/dev/fdt/fdtbus.c#2 integrate
.. //depot/projects/smpng/sys/dev/hptiop/hptiop.c#7 integrate
.. //depot/projects/smpng/sys/dev/hptmv/entry.c#19 integrate
.. //depot/projects/smpng/sys/dev/iicbus/iiconf.c#9 integrate
.. //depot/projects/smpng/sys/dev/iwn/if_iwn.c#15 integrate
.. //depot/projects/smpng/sys/dev/ixgbe/ixgbe.c#18 integrate
.. //depot/projects/smpng/sys/dev/md/md.c#93 integrate
.. //depot/projects/smpng/sys/dev/mge/if_mge.c#9 integrate
.. //depot/projects/smpng/sys/dev/mge/if_mgevar.h#3 integrate
.. //depot/projects/smpng/sys/dev/ofw/ofw_bus_subr.c#5 integrate
.. //depot/projects/smpng/sys/dev/ofw/ofw_bus_subr.h#5 integrate
.. //depot/projects/smpng/sys/dev/pci/pci.c#118 integrate
.. //depot/projects/smpng/sys/dev/pci/pcivar.h#33 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/feeder_eq.c#2 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/feeder_rate.c#21 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/sound.c#44 integrate
.. //depot/projects/smpng/sys/dev/sound/usb/uaudio.c#38 integrate
.. //depot/projects/smpng/sys/dev/sound/usb/uaudioreg.h#8 integrate
.. //depot/projects/smpng/sys/dev/twa/tw_cl_misc.c#6 integrate
.. //depot/projects/smpng/sys/dev/uart/uart_bus_mbus.c#2 delete
.. //depot/projects/smpng/sys/dev/uart/uart_cpu_mv.c#4 delete
.. //depot/projects/smpng/sys/dev/usb/controller/ehci.c#19 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/ehci_mbus.c#8 delete
.. //depot/projects/smpng/sys/dev/usb/controller/ehci_mv.c#1 branch
.. //depot/projects/smpng/sys/dev/usb/controller/ohci.c#14 integrate
.. //depot/projects/smpng/sys/dev/usb/controller/uhci.c#16 integrate
.. //depot/projects/smpng/sys/dev/usb/net/if_rue.c#12 integrate
.. //depot/projects/smpng/sys/dev/usb/quirk/usb_quirk.c#13 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_dev.c#19 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_device.c#22 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_process.c#9 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_transfer.c#19 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs#153 integrate
.. //depot/projects/smpng/sys/dev/usb/wlan/if_rum.c#15 integrate
.. //depot/projects/smpng/sys/dev/usb/wlan/if_run.c#5 integrate
.. //depot/projects/smpng/sys/dev/usb/wlan/if_runvar.h#5 integrate
.. //depot/projects/smpng/sys/dev/usb/wlan/if_upgt.c#13 integrate
.. //depot/projects/smpng/sys/dev/usb/wlan/if_ural.c#14 integrate
.. //depot/projects/smpng/sys/fs/nfsclient/nfs_clbio.c#10 integrate
.. //depot/projects/smpng/sys/fs/nfsclient/nfs_clcomsubs.c#2 integrate
.. //depot/projects/smpng/sys/fs/nfsclient/nfs_clport.c#7 integrate
.. //depot/projects/smpng/sys/fs/nfsclient/nfs_clrpcops.c#8 integrate
.. //depot/projects/smpng/sys/fs/nfsclient/nfs_clsubs.c#6 integrate
.. //depot/projects/smpng/sys/fs/nfsclient/nfs_clvnops.c#14 integrate
.. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdport.c#12 integrate
.. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdsocket.c#5 integrate
.. //depot/projects/smpng/sys/fs/nwfs/nwfs_io.c#28 integrate
.. //depot/projects/smpng/sys/fs/procfs/procfs_type.c#7 integrate
.. //depot/projects/smpng/sys/fs/smbfs/smbfs_io.c#36 integrate
.. //depot/projects/smpng/sys/fs/tmpfs/tmpfs_vnops.c#16 integrate
.. //depot/projects/smpng/sys/fs/udf/udf_vnops.c#52 integrate
.. //depot/projects/smpng/sys/geom/gate/g_gate.c#18 integrate
.. //depot/projects/smpng/sys/geom/geom_dev.c#55 integrate
.. //depot/projects/smpng/sys/i386/acpica/acpi_wakeup.c#40 integrate
.. //depot/projects/smpng/sys/i386/acpica/madt.c#27 integrate
.. //depot/projects/smpng/sys/i386/conf/NOTES#151 integrate
.. //depot/projects/smpng/sys/i386/i386/apic_vector.s#27 integrate
.. //depot/projects/smpng/sys/i386/i386/atpic_vector.s#2 integrate
.. //depot/projects/smpng/sys/i386/i386/exception.s#32 integrate
.. //depot/projects/smpng/sys/i386/i386/identcpu.c#70 integrate
.. //depot/projects/smpng/sys/i386/i386/intr_machdep.c#39 integrate
.. //depot/projects/smpng/sys/i386/i386/legacy.c#14 integrate
.. //depot/projects/smpng/sys/i386/i386/machdep.c#154 integrate
.. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#125 integrate
.. //depot/projects/smpng/sys/i386/i386/pmap.c#146 integrate
.. //depot/projects/smpng/sys/i386/i386/support.s#27 integrate
.. //depot/projects/smpng/sys/i386/i386/tsc.c#14 integrate
.. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#97 integrate
.. //depot/projects/smpng/sys/i386/include/apicvar.h#40 integrate
.. //depot/projects/smpng/sys/i386/include/mca.h#5 integrate
.. //depot/projects/smpng/sys/i386/include/md_var.h#38 integrate
.. //depot/projects/smpng/sys/i386/include/npx.h#12 integrate
.. //depot/projects/smpng/sys/i386/include/pcb.h#17 integrate
.. //depot/projects/smpng/sys/i386/isa/npx.c#68 integrate
.. //depot/projects/smpng/sys/i386/xen/pmap.c#16 integrate
.. //depot/projects/smpng/sys/ia64/ia64/busdma_machdep.c#33 integrate
.. //depot/projects/smpng/sys/ia64/ia64/exception.S#16 integrate
.. //depot/projects/smpng/sys/ia64/ia64/pmap.c#100 integrate
.. //depot/projects/smpng/sys/ia64/ia64/vm_machdep.c#56 integrate
.. //depot/projects/smpng/sys/ia64/include/md_var.h#29 integrate
.. //depot/projects/smpng/sys/isa/rtc.h#5 integrate
.. //depot/projects/smpng/sys/kern/bus_if.m#19 integrate
.. //depot/projects/smpng/sys/kern/kern_acct.c#58 integrate
.. //depot/projects/smpng/sys/kern/kern_clock.c#66 integrate
.. //depot/projects/smpng/sys/kern/kern_conf.c#65 integrate
.. //depot/projects/smpng/sys/kern/kern_et.c#1 branch
.. //depot/projects/smpng/sys/kern/kern_malloc.c#57 integrate
.. //depot/projects/smpng/sys/kern/kern_mbuf.c#35 integrate
.. //depot/projects/smpng/sys/kern/kern_module.c#30 integrate
.. //depot/projects/smpng/sys/kern/kern_resource.c#84 integrate
.. //depot/projects/smpng/sys/kern/kern_sdt.c#2 integrate
.. //depot/projects/smpng/sys/kern/kern_sig.c#157 integrate
.. //depot/projects/smpng/sys/kern/kern_switch.c#75 integrate
.. //depot/projects/smpng/sys/kern/kern_tc.c#49 integrate
.. //depot/projects/smpng/sys/kern/kern_timeout.c#48 integrate
.. //depot/projects/smpng/sys/kern/kern_umtx.c#40 integrate
.. //depot/projects/smpng/sys/kern/makesyscalls.sh#31 integrate
.. //depot/projects/smpng/sys/kern/sched_4bsd.c#94 integrate
.. //depot/projects/smpng/sys/kern/sched_ule.c#102 integrate
.. //depot/projects/smpng/sys/kern/subr_bus.c#91 integrate
.. //depot/projects/smpng/sys/kern/subr_devstat.c#20 integrate
.. //depot/projects/smpng/sys/kern/subr_fattime.c#2 integrate
.. //depot/projects/smpng/sys/kern/subr_kdb.c#24 integrate
.. //depot/projects/smpng/sys/kern/subr_lock.c#15 integrate
.. //depot/projects/smpng/sys/kern/subr_mchain.c#16 integrate
.. //depot/projects/smpng/sys/kern/subr_module.c#3 integrate
.. //depot/projects/smpng/sys/kern/subr_param.c#32 integrate
.. //depot/projects/smpng/sys/kern/subr_pcpu.c#17 integrate
.. //depot/projects/smpng/sys/kern/subr_smp.c#60 integrate
.. //depot/projects/smpng/sys/kern/subr_taskqueue.c#43 integrate
.. //depot/projects/smpng/sys/kern/subr_trap.c#96 integrate
.. //depot/projects/smpng/sys/kern/subr_unit.c#6 integrate
.. //depot/projects/smpng/sys/kern/subr_witness.c#184 integrate
.. //depot/projects/smpng/sys/kern/sys_process.c#71 integrate
.. //depot/projects/smpng/sys/kern/systrace_args.c#22 integrate
.. //depot/projects/smpng/sys/kern/sysv_sem.c#56 integrate
.. //depot/projects/smpng/sys/kern/sysv_shm.c#50 integrate
.. //depot/projects/smpng/sys/kern/uipc_mbuf.c#65 integrate
.. //depot/projects/smpng/sys/kern/uipc_mbuf2.c#24 integrate
.. //depot/projects/smpng/sys/kern/uipc_mqueue.c#26 integrate
.. //depot/projects/smpng/sys/kern/uipc_syscalls.c#128 integrate
.. //depot/projects/smpng/sys/kern/vfs_bio.c#129 integrate
.. //depot/projects/smpng/sys/kern/vfs_cache.c#61 integrate
.. //depot/projects/smpng/sys/kern/vfs_subr.c#179 integrate
.. //depot/projects/smpng/sys/mips/atheros/ar71xx_wdog.c#2 integrate
.. //depot/projects/smpng/sys/mips/atheros/ar71xxreg.h#2 integrate
.. //depot/projects/smpng/sys/mips/conf/XLRN32#1 branch
.. //depot/projects/smpng/sys/mips/include/asm.h#4 integrate
.. //depot/projects/smpng/sys/mips/include/cpu.h#4 integrate
.. //depot/projects/smpng/sys/mips/include/pmap.h#10 integrate
.. //depot/projects/smpng/sys/mips/include/pte.h#4 integrate
.. //depot/projects/smpng/sys/mips/include/setjmp.h#2 integrate
.. //depot/projects/smpng/sys/mips/include/tlb.h#1 branch
.. //depot/projects/smpng/sys/mips/include/vm.h#3 integrate
.. //depot/projects/smpng/sys/mips/include/vmparam.h#3 integrate
.. //depot/projects/smpng/sys/mips/mips/cpu.c#5 integrate
.. //depot/projects/smpng/sys/mips/mips/exception.S#5 integrate
.. //depot/projects/smpng/sys/mips/mips/machdep.c#11 integrate
.. //depot/projects/smpng/sys/mips/mips/mp_machdep.c#9 integrate
.. //depot/projects/smpng/sys/mips/mips/pm_machdep.c#6 integrate
.. //depot/projects/smpng/sys/mips/mips/pmap.c#19 integrate
.. //depot/projects/smpng/sys/mips/mips/stack_machdep.c#2 integrate
.. //depot/projects/smpng/sys/mips/mips/tlb.c#1 branch
.. //depot/projects/smpng/sys/mips/mips/trap.c#7 integrate
.. //depot/projects/smpng/sys/mips/mips/vm_machdep.c#7 integrate
.. //depot/projects/smpng/sys/mips/rmi/board.c#2 integrate
.. //depot/projects/smpng/sys/mips/rmi/board.h#2 integrate
.. //depot/projects/smpng/sys/mips/rmi/dev/xlr/rge.c#3 integrate
.. //depot/projects/smpng/sys/modules/acpi/Makefile#34 integrate
.. //depot/projects/smpng/sys/modules/acpi/aibs/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/mqueue/Makefile#2 integrate
.. //depot/projects/smpng/sys/net/bpf.c#97 integrate
.. //depot/projects/smpng/sys/net/bpf.h#27 integrate
.. //depot/projects/smpng/sys/net/bpfdesc.h#24 integrate
.. //depot/projects/smpng/sys/net/flowtable.c#14 integrate
.. //depot/projects/smpng/sys/net/if_epair.c#5 integrate
.. //depot/projects/smpng/sys/net/netisr.c#23 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_rssadapt.c#4 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_sta.c#16 integrate
.. //depot/projects/smpng/sys/netgraph/ng_patch.c#2 integrate
.. //depot/projects/smpng/sys/netinet/sctp.h#13 integrate
.. //depot/projects/smpng/sys/netinet/sctp_asconf.c#20 integrate
.. //depot/projects/smpng/sys/netinet/sctp_pcb.c#39 integrate
.. //depot/projects/smpng/sys/netinet/sctp_usrreq.c#33 integrate
.. //depot/projects/smpng/sys/netinet/sctputil.c#40 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_bio.c#65 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_subs.c#43 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#99 integrate
.. //depot/projects/smpng/sys/pc98/cbus/clock.c#17 integrate
.. //depot/projects/smpng/sys/pc98/include/npx.h#3 integrate
.. //depot/projects/smpng/sys/pc98/pc98/machdep.c#39 integrate
.. //depot/projects/smpng/sys/powerpc/aim/interrupt.c#4 integrate
.. //depot/projects/smpng/sys/powerpc/aim/mmu_oea.c#13 integrate
.. //depot/projects/smpng/sys/powerpc/aim/mmu_oea64.c#10 integrate
.. //depot/projects/smpng/sys/powerpc/aim/mp_cpudep.c#6 integrate
.. //depot/projects/smpng/sys/powerpc/aim/nexus.c#5 integrate
.. //depot/projects/smpng/sys/powerpc/aim/platform_chrp.c#5 integrate
.. //depot/projects/smpng/sys/powerpc/booke/interrupt.c#5 integrate
.. //depot/projects/smpng/sys/powerpc/booke/pmap.c#19 integrate
.. //depot/projects/smpng/sys/powerpc/include/intr_machdep.h#12 integrate
.. //depot/projects/smpng/sys/powerpc/include/ocpbus.h#3 integrate
.. //depot/projects/smpng/sys/powerpc/include/openpicvar.h#8 integrate
.. //depot/projects/smpng/sys/powerpc/mpc85xx/atpic.c#3 integrate
.. //depot/projects/smpng/sys/powerpc/mpc85xx/isa.c#2 integrate
.. //depot/projects/smpng/sys/powerpc/mpc85xx/ocpbus.c#10 integrate
.. //depot/projects/smpng/sys/powerpc/mpc85xx/ocpbus.h#6 integrate
.. //depot/projects/smpng/sys/powerpc/mpc85xx/opic.c#2 integrate
.. //depot/projects/smpng/sys/powerpc/mpc85xx/pci_ocp.c#7 integrate
.. //depot/projects/smpng/sys/powerpc/ofw/ofw_pcib_pci.c#8 integrate
.. //depot/projects/smpng/sys/powerpc/ofw/ofw_pcibus.c#4 integrate
.. //depot/projects/smpng/sys/powerpc/ofw/ofw_syscons.c#16 integrate
.. //depot/projects/smpng/sys/powerpc/powermac/cpcht.c#3 integrate
.. //depot/projects/smpng/sys/powerpc/powermac/grackle.c#14 integrate
.. //depot/projects/smpng/sys/powerpc/powermac/hrowpic.c#15 integrate
.. //depot/projects/smpng/sys/powerpc/powermac/kiic.c#4 integrate
.. //depot/projects/smpng/sys/powerpc/powermac/macgpio.c#5 integrate
.. //depot/projects/smpng/sys/powerpc/powermac/macio.c#19 integrate
.. //depot/projects/smpng/sys/powerpc/powermac/openpic_macio.c#12 integrate
.. //depot/projects/smpng/sys/powerpc/powermac/uninorth.c#21 integrate
.. //depot/projects/smpng/sys/powerpc/powermac/uninorthpci.c#2 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/intr_machdep.c#21 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/mp_machdep.c#17 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/openpic.c#18 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/pic_if.m#6 integrate
.. //depot/projects/smpng/sys/sparc64/ebus/ebus.c#28 integrate
.. //depot/projects/smpng/sys/sparc64/isa/ofw_isa.c#13 integrate
.. //depot/projects/smpng/sys/sparc64/pci/fire.c#2 integrate
.. //depot/projects/smpng/sys/sparc64/pci/ofw_pcib_subr.c#11 integrate
.. //depot/projects/smpng/sys/sparc64/pci/psycho.c#53 integrate
.. //depot/projects/smpng/sys/sparc64/pci/schizo.c#11 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/mp_locore.S#8 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#87 integrate
.. //depot/projects/smpng/sys/sun4v/sun4v/hv_pci.c#6 integrate
.. //depot/projects/smpng/sys/sun4v/sun4v/pmap.c#21 integrate
.. //depot/projects/smpng/sys/sys/buf.h#57 integrate
.. //depot/projects/smpng/sys/sys/bus.h#41 integrate
.. //depot/projects/smpng/sys/sys/conf.h#65 integrate
.. //depot/projects/smpng/sys/sys/file.h#32 integrate
.. //depot/projects/smpng/sys/sys/pcpu.h#33 integrate
.. //depot/projects/smpng/sys/sys/pmc.h#22 integrate
.. //depot/projects/smpng/sys/sys/proc.h#208 integrate
.. //depot/projects/smpng/sys/sys/smp.h#24 integrate
.. //depot/projects/smpng/sys/sys/systm.h#100 integrate
.. //depot/projects/smpng/sys/sys/time.h#29 integrate
.. //depot/projects/smpng/sys/sys/timeet.h#1 branch
.. //depot/projects/smpng/sys/sys/vnode.h#109 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#79 integrate
.. //depot/projects/smpng/sys/ufs/ufs/ufs_lookup.c#40 integrate
.. //depot/projects/smpng/sys/vm/uma.h#25 integrate
.. //depot/projects/smpng/sys/vm/uma_core.c#80 integrate
.. //depot/projects/smpng/sys/vm/uma_int.h#36 integrate
.. //depot/projects/smpng/sys/vm/vm_page.c#113 integrate
.. //depot/projects/smpng/sys/vm/vm_page.h#50 integrate
.. //depot/projects/smpng/sys/vm/vm_pageout.c#79 integrate
.. //depot/projects/smpng/sys/x86/cpufreq/est.c#2 integrate
.. //depot/projects/smpng/sys/x86/isa/atrtc.c#2 integrate
.. //depot/projects/smpng/sys/x86/isa/clock.c#4 integrate
.. //depot/projects/smpng/sys/x86/x86/local_apic.c#2 integrate
.. //depot/projects/smpng/sys/x86/x86/mca.c#2 integrate
.. //depot/projects/smpng/sys/x86/x86/msi.c#2 integrate
.. //depot/projects/smpng/sys/x86/x86/timeevents.c#1 branch

Differences ...

==== //depot/projects/smpng/share/man/man9/bus_generic_new_pass.9#2 (text+ko) ====

@@ -25,10 +25,10 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/bus_generic_new_pass.9,v 1.1 2009/06/09 14:26:23 jhb Exp $
+.\" $FreeBSD: src/share/man/man9/bus_generic_new_pass.9,v 1.2 2010/06/11 06:03:47 uqs Exp $
 .\"
 .Dd June 8, 2009
-.Dt bus_generic_new_pass 9
+.Dt BUS_GENERIC_NEW_PASS 9
 .Os
 .Sh NAME
 .Nm bus_generic_new_pass

==== //depot/projects/smpng/share/man/man9/bus_set_pass.9#2 (text+ko) ====

@@ -25,10 +25,10 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/bus_set_pass.9,v 1.1 2009/06/09 14:26:23 jhb Exp $
+.\" $FreeBSD: src/share/man/man9/bus_set_pass.9,v 1.2 2010/06/11 06:03:47 uqs Exp $
 .\"
 .Dd June 8, 2009
-.Dt bus_set_pass 9
+.Dt BUS_SET_PASS 9
 .Os
 .Sh NAME
 .Nm bus_set_pass

==== //depot/projects/smpng/share/man/man9/insmntque.9#2 (text+ko) ====

@@ -24,10 +24,10 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 .\" DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/insmntque.9,v 1.4 2009/01/08 21:29:40 brueffer Exp $
+.\" $FreeBSD: src/share/man/man9/insmntque.9,v 1.5 2010/06/11 06:03:47 uqs Exp $
 .\"
 .Dd September 8, 2008
-.Dt insmntque 9
+.Dt INSMNTQUE 9
 .Os
 .Sh NAME
 .Nm insmntque ,

==== //depot/projects/smpng/share/man/man9/vfs_busy.9#2 (text+ko) ====

@@ -24,9 +24,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 .\" DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/vfs_busy.9,v 1.9 2008/11/02 10:33:57 attilio Exp $
+.\" $FreeBSD: src/share/man/man9/vfs_busy.9,v 1.10 2010/06/14 17:31:46 jh Exp $
 .\"
-.Dd November 2, 2008
+.Dd June 14, 2010
 .Dt VFS_BUSY 9
 .Os
 .Sh NAME
@@ -40,9 +40,8 @@
 .Sh DESCRIPTION
 The
 .Fn vfs_busy
-function marks a mount point as busy.
-The purpose of this
-function is to synchronize access to a mount point.
+function marks a mount point as busy by incrementing
+the reference count of a mount point.
 It also delays unmounting by sleeping on
 .Fa mp
 if the
@@ -50,7 +49,7 @@
 flag is set in
 .Fa mp->mnt_kern_flag
 and the
-.Dv LK_NOWAIT
+.Dv MBF_NOWAIT
 flag is
 .Em not
 set.
@@ -75,9 +74,9 @@
 .Sh RETURN VALUES
 A 0 value is returned on success.
 If the mount point is being
-unmounted
+unmounted and MBF_NOWAIT flag is specified
 .Er ENOENT
-will always be returned.
+will be returned.
 .Sh ERRORS
 .Bl -tag -width Er
 .It Bq Er ENOENT

==== //depot/projects/smpng/share/man/man9/vfs_mountedfrom.9#2 (text+ko) ====

@@ -24,10 +24,10 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 .\" DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/vfs_mountedfrom.9,v 1.2 2008/02/26 23:16:23 brueffer Exp $
+.\" $FreeBSD: src/share/man/man9/vfs_mountedfrom.9,v 1.3 2010/06/11 06:03:47 uqs Exp $
 .\"
 .Dd February 25, 2008
-.Dt vfs_mountedfrom 9
+.Dt VFS_MOUNTEDFROM 9
 .Os
 .Sh NAME
 .Nm vfs_mountedfrom

==== //depot/projects/smpng/share/man/man9/vfs_unbusy.9#2 (text+ko) ====

@@ -24,9 +24,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 .\" DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/vfs_unbusy.9,v 1.10 2008/08/31 14:26:08 attilio Exp $
+.\" $FreeBSD: src/share/man/man9/vfs_unbusy.9,v 1.11 2010/06/14 17:31:46 jh Exp $
 .\"
-.Dd August 29, 2008
+.Dd June 14, 2010
 .Dt VFS_UNBUSY 9
 .Os
 .Sh NAME
@@ -40,23 +40,17 @@
 .Sh DESCRIPTION
 The
 .Fn vfs_unbusy
-function un-busies a mount point by unlocking
-.Fa mp->mnt_lock .
-The lock is typically acquired by calling
+function un-busies a mount point by decrementing
+the reference count of a mount point.
+The reference count is typically incremented by calling
 .Xr vfs_busy 9
 prior to this call.
 .Pp
 Its arguments are:
 .Bl -tag -width ".Fa mp"
 .It Fa mp
-The mount point to unbusy (unlock).
+The mount point to unbusy.
 .El
-.Sh LOCKS
-.Va mnt_lock
-must be locked in
-.Fa mp
-prior to calling
-this function, and it will be unlocked upon return.
 .Sh SEE ALSO
 .Xr vfs_busy 9
 .Sh AUTHORS

==== //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#12 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.29 2010/06/05 15:59:59 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.31 2010/06/15 18:51:41 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -41,6 +41,7 @@
 #include <vm/pmap.h>
 
 #include <machine/intr_machdep.h>
+#include <machine/mca.h>
 #include <machine/pcb.h>
 #include <machine/pmap.h>
 #include <machine/specialreg.h>
@@ -245,7 +246,7 @@
 	cr3 = rcr3();
 	load_cr3(KPML4phys);
 
-	stopfpu = stopxpcbs[0]->xpcb_pcb.pcb_save;
+	stopfpu = &stopxpcbs[0]->xpcb_pcb.pcb_user_save;
 	if (acpi_savecpu(stopxpcbs[0])) {
 		fpugetregs(curthread, stopfpu);
 
@@ -300,6 +301,7 @@
 #endif
 
 	load_cr3(cr3);
+	mca_resume();
 	intr_resume();
 	intr_restore(rf);
 

==== //depot/projects/smpng/sys/amd64/acpica/madt.c#20 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.29 2009/09/23 15:42:35 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.30 2010/06/11 18:46:34 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -557,9 +557,7 @@
 
 	if (madt == NULL)
 		return;
-	for (i = 0; i < MAXCPU; i++) {
-		if (CPU_ABSENT(i))
-			continue;
+	CPU_FOREACH(i) {
 		pc = pcpu_find(i);
 		KASSERT(pc != NULL, ("no pcpu data for CPU %u", i));
 		la = &lapics[pc->pc_apic_id];

==== //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#20 (text+ko) ====

@@ -28,7 +28,7 @@
  * SUCH DAMAGE.
  *
  *	from: vector.s, 386BSD 0.1 unknown origin
- * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.116 2010/05/24 15:45:05 jhb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.117 2010/06/17 11:54:49 mav Exp $
  */
 
 /*
@@ -36,6 +36,8 @@
  * as well as IPI handlers.
  */
 
+#include "opt_smp.h"
+
 #include <machine/asmacros.h>
 #include <machine/apicreg.h>
 
@@ -135,6 +137,19 @@
 	.text
 	SUPERALIGN_TEXT
 IDTVEC(invltlb)
+#if defined(COUNT_XINVLTLB_HITS) || defined(COUNT_IPIS)
+	PUSH_FRAME
+	movl	PCPU(CPUID), %eax
+#ifdef COUNT_XINVLTLB_HITS
+	incl	xhits_gbl(,%rax,4)
+#endif
+#ifdef COUNT_IPIS
+	movq	ipi_invltlb_counts(,%rax,8),%rax
+	incq	(%rax)
+#endif
+	POP_FRAME
+#endif
+
 	pushq	%rax
 
 	movq	%cr3, %rax		/* invalidate the TLB */
@@ -155,6 +170,19 @@
 	.text
 	SUPERALIGN_TEXT
 IDTVEC(invlpg)
+#if defined(COUNT_XINVLTLB_HITS) || defined(COUNT_IPIS)
+	PUSH_FRAME
+	movl	PCPU(CPUID), %eax
+#ifdef COUNT_XINVLTLB_HITS
+	incl	xhits_pg(,%rax,4)
+#endif
+#ifdef COUNT_IPIS
+	movq	ipi_invlpg_counts(,%rax,8),%rax
+	incq	(%rax)
+#endif
+	POP_FRAME
+#endif
+
 	pushq	%rax
 
 	movq	smp_tlb_addr1, %rax
@@ -175,6 +203,19 @@
 	.text
 	SUPERALIGN_TEXT
 IDTVEC(invlrng)
+#if defined(COUNT_XINVLTLB_HITS) || defined(COUNT_IPIS)
+	PUSH_FRAME
+	movl	PCPU(CPUID), %eax
+#ifdef COUNT_XINVLTLB_HITS
+	incl	xhits_rng(,%rax,4)
+#endif
+#ifdef COUNT_IPIS
+	movq	ipi_invlrng_counts(,%rax,8),%rax
+	incq	(%rax)
+#endif
+	POP_FRAME
+#endif
+
 	pushq	%rax
 	pushq	%rdx
 
@@ -201,6 +242,14 @@
 	.text
 	SUPERALIGN_TEXT
 IDTVEC(invlcache)
+#ifdef COUNT_IPIS
+	PUSH_FRAME
+	movl	PCPU(CPUID), %eax
+	movq	ipi_invlcache_counts(,%rax,8),%rax
+	incq	(%rax)
+	POP_FRAME
+#endif
+
 	pushq	%rax
 
 	wbinvd
@@ -270,6 +319,11 @@
 	SUPERALIGN_TEXT
 IDTVEC(rendezvous)
 	PUSH_FRAME
+#ifdef COUNT_IPIS
+	movl	PCPU(CPUID), %eax
+	movq	ipi_rendezvous_counts(,%rax,8), %rax
+	incq	(%rax)
+#endif
 	call	smp_rendezvous_action
 	movq	lapic, %rax
 	movl	$0, LA_EOI(%rax)	/* End Of Interrupt to APIC */

==== //depot/projects/smpng/sys/amd64/amd64/exception.S#29 (text+ko) ====

@@ -31,7 +31,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.146 2010/05/12 10:29:35 kib Exp $
+ * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.147 2010/06/23 20:44:07 kib Exp $
  */
 
 #include "opt_atpic.h"
@@ -191,6 +191,7 @@
 	movq	%r14,TF_R14(%rsp)
 	movq	%r15,TF_R15(%rsp)
 	movl	$TF_HASSEGS,TF_FLAGS(%rsp)
+	cld
 	FAKE_MCOUNT(TF_RIP(%rsp))
 #ifdef KDTRACE_HOOKS
 	/*
@@ -270,6 +271,7 @@
 	movw	%es,TF_ES(%rsp)
 	movw	%ds,TF_DS(%rsp)
 	movl	$TF_HASSEGS,TF_FLAGS(%rsp)
+	cld
 	testb	$SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */
 	jz	1f			/* already running with kernel GS.base */
 	swapgs
@@ -369,6 +371,7 @@
 	movq	%r14,TF_R14(%rsp)	/* C preserved */
 	movq	%r15,TF_R15(%rsp)	/* C preserved */
 	movl	$TF_HASSEGS,TF_FLAGS(%rsp)
+	cld
 	FAKE_MCOUNT(TF_RIP(%rsp))
 	movq	%rsp,%rdi
 	call	syscall
@@ -434,6 +437,7 @@
 	movw	%es,TF_ES(%rsp)
 	movw	%ds,TF_DS(%rsp)
 	movl	$TF_HASSEGS,TF_FLAGS(%rsp)
+	cld
 	xorl	%ebx,%ebx
 	testb	$SEL_RPL_MASK,TF_CS(%rsp)
 	jnz	nmi_fromuserspace

==== //depot/projects/smpng/sys/amd64/amd64/fpu.c#16 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.167 2010/06/06 16:13:50 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.169 2010/06/15 14:59:35 kib Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -115,6 +115,9 @@
 	u_int mxcsr;
 	u_short control;
 
+	/*
+	 * It is too early for critical_enter() to work on AP.
+	 */
 	savecrit = intr_disable();
 	stop_emulating();
 	fninit();
@@ -141,16 +144,15 @@
 void
 fpuexit(struct thread *td)
 {
-	register_t savecrit;
 
-	savecrit = intr_disable();
+	critical_enter();
 	if (curthread == PCPU_GET(fpcurthread)) {
 		stop_emulating();
 		fxsave(PCPU_GET(curpcb)->pcb_save);
 		start_emulating();
 		PCPU_SET(fpcurthread, 0);
 	}
-	intr_restore(savecrit);
+	critical_exit();
 }
 
 int
@@ -351,10 +353,9 @@
 int
 fputrap()
 {
-	register_t savecrit;
 	u_short control, status;
 
-	savecrit = intr_disable();
+	critical_enter();
 
 	/*
 	 * Interrupt handling (for another interrupt) may have pushed the
@@ -371,7 +372,7 @@
 
 	if (PCPU_GET(fpcurthread) == curthread)
 		fnclex();
-	intr_restore(savecrit);
+	critical_exit();
 	return (fpetable[status & ((~control & 0x3f) | 0x40)]);
 }
 
@@ -389,12 +390,13 @@
 fpudna(void)
 {
 	struct pcb *pcb;
-	register_t s;
 
+	critical_enter();
 	if (PCPU_GET(fpcurthread) == curthread) {
 		printf("fpudna: fpcurthread == curthread %d times\n",
 		    ++err_count);
 		stop_emulating();
+		critical_exit();
 		return;
 	}
 	if (PCPU_GET(fpcurthread) != NULL) {
@@ -404,7 +406,6 @@
 		       curthread, curthread->td_proc->p_pid);
 		panic("fpudna");
 	}
-	s = intr_disable();
 	stop_emulating();
 	/*
 	 * Record new context early in case frstor causes a trap.
@@ -428,19 +429,17 @@
 			pcb->pcb_flags |= PCB_USERFPUINITDONE;
 	} else
 		fxrstor(pcb->pcb_save);
-	intr_restore(s);
+	critical_exit();
 }
 
-/*
- * This should be called with interrupts disabled and only when the owning
- * FPU thread is non-null.
- */
 void
 fpudrop()
 {
 	struct thread *td;
 
 	td = PCPU_GET(fpcurthread);
+	KASSERT(td == curthread, ("fpudrop: fpcurthread != curthread"));
+	CRITICAL_ASSERT(td);
 	PCPU_SET(fpcurthread, NULL);
 	td->td_pcb->pcb_flags &= ~PCB_FPUINITDONE;
 	start_emulating();
@@ -454,7 +453,6 @@
 fpugetuserregs(struct thread *td, struct savefpu *addr)
 {
 	struct pcb *pcb;
-	register_t s;
 
 	pcb = td->td_pcb;
 	if ((pcb->pcb_flags & PCB_USERFPUINITDONE) == 0) {
@@ -462,13 +460,13 @@
 		addr->sv_env.en_cw = pcb->pcb_initial_fpucw;
 		return (_MC_FPOWNED_NONE);
 	}
-	s = intr_disable();
+	critical_enter();
 	if (td == PCPU_GET(fpcurthread) && PCB_USER_FPU(pcb)) {
 		fxsave(addr);
-		intr_restore(s);
+		critical_exit();
 		return (_MC_FPOWNED_FPU);
 	} else {
-		intr_restore(s);
+		critical_exit();
 		bcopy(&pcb->pcb_user_save, addr, sizeof(*addr));
 		return (_MC_FPOWNED_PCB);
 	}
@@ -478,7 +476,6 @@
 fpugetregs(struct thread *td, struct savefpu *addr)
 {
 	struct pcb *pcb;
-	register_t s;
 
 	pcb = td->td_pcb;
 	if ((pcb->pcb_flags & PCB_FPUINITDONE) == 0) {
@@ -486,13 +483,13 @@
 		addr->sv_env.en_cw = pcb->pcb_initial_fpucw;
 		return (_MC_FPOWNED_NONE);
 	}
-	s = intr_disable();
+	critical_enter();
 	if (td == PCPU_GET(fpcurthread)) {
 		fxsave(addr);
-		intr_restore(s);
+		critical_exit();
 		return (_MC_FPOWNED_FPU);
 	} else {
-		intr_restore(s);
+		critical_exit();
 		bcopy(pcb->pcb_save, addr, sizeof(*addr));
 		return (_MC_FPOWNED_PCB);
 	}
@@ -505,16 +502,15 @@
 fpusetuserregs(struct thread *td, struct savefpu *addr)
 {
 	struct pcb *pcb;
-	register_t s;
 
 	pcb = td->td_pcb;
-	s = intr_disable();
+	critical_enter();
 	if (td == PCPU_GET(fpcurthread) && PCB_USER_FPU(pcb)) {
 		fxrstor(addr);
-		intr_restore(s);
+		critical_exit();
 		pcb->pcb_flags |= PCB_FPUINITDONE | PCB_USERFPUINITDONE;
 	} else {
-		intr_restore(s);
+		critical_exit();
 		bcopy(addr, &td->td_pcb->pcb_user_save, sizeof(*addr));
 		if (PCB_USER_FPU(pcb))
 			pcb->pcb_flags |= PCB_FPUINITDONE;
@@ -526,15 +522,14 @@
 fpusetregs(struct thread *td, struct savefpu *addr)
 {
 	struct pcb *pcb;
-	register_t s;
 
 	pcb = td->td_pcb;
-	s = intr_disable();
+	critical_enter();
 	if (td == PCPU_GET(fpcurthread)) {
 		fxrstor(addr);
-		intr_restore(s);
+		critical_exit();
 	} else {
-		intr_restore(s);
+		critical_exit();
 		bcopy(addr, td->td_pcb->pcb_save, sizeof(*addr));
 	}
 	if (PCB_USER_FPU(pcb))
@@ -652,13 +647,12 @@
 fpu_kern_leave(struct thread *td, struct fpu_kern_ctx *ctx)
 {
 	struct pcb *pcb;
-	register_t savecrit;
 
 	pcb = td->td_pcb;
-	savecrit = intr_disable();
+	critical_enter();
 	if (curthread == PCPU_GET(fpcurthread))
 		fpudrop();
-	intr_restore(savecrit);
+	critical_exit();
 	pcb->pcb_save = ctx->prev;
 	if (pcb->pcb_save == &pcb->pcb_user_save) {
 		if ((pcb->pcb_flags & PCB_USERFPUINITDONE) != 0)

==== //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#39 (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.48 2010/02/25 14:13:39 attilio Exp $
+ * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.49 2010/06/14 07:38:53 mav Exp $
  */
 
 /*
@@ -529,7 +529,7 @@
 			 */
 			if (isrc->is_event->ie_cpu != NOCPU)
 				(void)isrc->is_pic->pic_assign_cpu(isrc,
-				    isrc->is_event->ie_cpu);
+				    cpu_apic_ids[isrc->is_event->ie_cpu]);
 			else if (isrc->is_pic->pic_assign_cpu(isrc,
 				cpu_apic_ids[current_cpu]) == 0)
 				(void)intr_next_cpu();

==== //depot/projects/smpng/sys/amd64/amd64/legacy.c#11 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/legacy.c,v 1.63 2008/03/13 20:39:03 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/legacy.c,v 1.64 2010/06/11 18:46:34 jhb Exp $");
 
 /*
  * This code implements a system driver for legacy systems that do not
@@ -269,12 +269,11 @@
 	 * so that these devices are attached after the Host-PCI
 	 * bridges (which are added at order 100).
 	 */
-	for (i = 0; i <= mp_maxid; i++)
-		if (!CPU_ABSENT(i)) {
-			child = BUS_ADD_CHILD(parent, 150, "cpu", i);
-			if (child == NULL)
-				panic("legacy_attach cpu");
-		}
+	CPU_FOREACH(i) {
+		child = BUS_ADD_CHILD(parent, 150, "cpu", i);
+		if (child == NULL)
+			panic("legacy_attach cpu");
+	}
 }

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


More information about the p4-projects mailing list