svn commit: r241732 - in user/andre/tcp_workqueue/sys: amd64/amd64 amd64/conf amd64/include amd64/include/pc amd64/pci arm/arm arm/at91 arm/broadcom/bcm2835 arm/conf arm/econa arm/include arm/lpc a...

Andre Oppermann andre at FreeBSD.org
Fri Oct 19 13:05:53 UTC 2012


Author: andre
Date: Fri Oct 19 13:05:51 2012
New Revision: 241732
URL: http://svn.freebsd.org/changeset/base/241732

Log:
  Integrate from HEAD @241731.

Added:
  user/andre/tcp_workqueue/sys/arm/broadcom/bcm2835/dwc_otg_brcm.c
     - copied unchanged from r241731, head/sys/arm/broadcom/bcm2835/dwc_otg_brcm.c
  user/andre/tcp_workqueue/sys/arm/conf/AC100
     - copied unchanged from r241731, head/sys/arm/conf/AC100
  user/andre/tcp_workqueue/sys/boot/fdt/dts/db78460.dts
     - copied unchanged from r241731, head/sys/boot/fdt/dts/db78460.dts
  user/andre/tcp_workqueue/sys/boot/fdt/dts/tegra20-paz00.dts
     - copied unchanged from r241731, head/sys/boot/fdt/dts/tegra20-paz00.dts
  user/andre/tcp_workqueue/sys/boot/fdt/dts/tegra20.dtsi
     - copied unchanged from r241731, head/sys/boot/fdt/dts/tegra20.dtsi
  user/andre/tcp_workqueue/sys/cddl/compat/opensolaris/sys/assfail.h
     - copied unchanged from r241731, head/sys/cddl/compat/opensolaris/sys/assfail.h
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/trim_map.h
     - copied unchanged from r241731, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/trim_map.h
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c
     - copied unchanged from r241731, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c
  user/andre/tcp_workqueue/sys/dev/cxgbe/firmware/t4fw-1.6.2.0.bin.uu
     - copied unchanged from r241731, head/sys/dev/cxgbe/firmware/t4fw-1.6.2.0.bin.uu
  user/andre/tcp_workqueue/sys/dev/nvd/
     - copied from r241731, head/sys/dev/nvd/
  user/andre/tcp_workqueue/sys/dev/nvme/
     - copied from r241731, head/sys/dev/nvme/
  user/andre/tcp_workqueue/sys/dev/sdhci/sdhci_if.m
     - copied unchanged from r241731, head/sys/dev/sdhci/sdhci_if.m
  user/andre/tcp_workqueue/sys/dev/sdhci/sdhci_pci.c
     - copied unchanged from r241731, head/sys/dev/sdhci/sdhci_pci.c
  user/andre/tcp_workqueue/sys/dev/virtio/scsi/
     - copied from r241731, head/sys/dev/virtio/scsi/
  user/andre/tcp_workqueue/sys/fs/fuse/
     - copied from r241731, head/sys/fs/fuse/
  user/andre/tcp_workqueue/sys/modules/fuse/
     - copied from r241731, head/sys/modules/fuse/
  user/andre/tcp_workqueue/sys/modules/nvd/
     - copied from r241731, head/sys/modules/nvd/
  user/andre/tcp_workqueue/sys/modules/nvme/
     - copied from r241731, head/sys/modules/nvme/
  user/andre/tcp_workqueue/sys/modules/sdhci_pci/
     - copied from r241731, head/sys/modules/sdhci_pci/
  user/andre/tcp_workqueue/sys/modules/virtio/scsi/
     - copied from r241731, head/sys/modules/virtio/scsi/
  user/andre/tcp_workqueue/sys/net/if_pflog.h
     - copied unchanged from r241731, head/sys/net/if_pflog.h
  user/andre/tcp_workqueue/sys/net/if_pfsync.h
     - copied unchanged from r241731, head/sys/net/if_pfsync.h
  user/andre/tcp_workqueue/sys/net/pf_mtag.h
     - copied unchanged from r241731, head/sys/net/pf_mtag.h
  user/andre/tcp_workqueue/sys/net/pfvar.h
     - copied unchanged from r241731, head/sys/net/pfvar.h
  user/andre/tcp_workqueue/sys/netpfil/
     - copied from r241731, head/sys/netpfil/
Deleted:
  user/andre/tcp_workqueue/sys/boot/fdt/dts/db88f78160.dts
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_low_pisa.c
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_low_pisa.h
  user/andre/tcp_workqueue/sys/compat/netbsd/physio_proc.h
  user/andre/tcp_workqueue/sys/contrib/pf/
  user/andre/tcp_workqueue/sys/dev/mlx/mlx_compat.h
  user/andre/tcp_workqueue/sys/netinet/ipfw/
Modified:
  user/andre/tcp_workqueue/sys/amd64/amd64/identcpu.c
  user/andre/tcp_workqueue/sys/amd64/amd64/machdep.c
  user/andre/tcp_workqueue/sys/amd64/amd64/mp_machdep.c
  user/andre/tcp_workqueue/sys/amd64/amd64/pmap.c
  user/andre/tcp_workqueue/sys/amd64/amd64/trap.c
  user/andre/tcp_workqueue/sys/amd64/conf/GENERIC
  user/andre/tcp_workqueue/sys/amd64/conf/NOTES
  user/andre/tcp_workqueue/sys/amd64/include/atomic.h
  user/andre/tcp_workqueue/sys/amd64/include/intr_machdep.h
  user/andre/tcp_workqueue/sys/amd64/include/pc/bios.h
  user/andre/tcp_workqueue/sys/amd64/pci/pci_cfgreg.c
  user/andre/tcp_workqueue/sys/arm/arm/cpufunc.c
  user/andre/tcp_workqueue/sys/arm/arm/identcpu.c
  user/andre/tcp_workqueue/sys/arm/arm/machdep.c
  user/andre/tcp_workqueue/sys/arm/arm/pmap-v6.c
  user/andre/tcp_workqueue/sys/arm/arm/pmap.c
  user/andre/tcp_workqueue/sys/arm/arm/vm_machdep.c
  user/andre/tcp_workqueue/sys/arm/at91/at91_machdep.c
  user/andre/tcp_workqueue/sys/arm/at91/at91_rtc.c
  user/andre/tcp_workqueue/sys/arm/at91/at91_rtcreg.h
  user/andre/tcp_workqueue/sys/arm/broadcom/bcm2835/bcm2835_machdep.c
  user/andre/tcp_workqueue/sys/arm/broadcom/bcm2835/files.bcm2835
  user/andre/tcp_workqueue/sys/arm/conf/ARMADAXP
  user/andre/tcp_workqueue/sys/arm/conf/BEAGLEBONE
  user/andre/tcp_workqueue/sys/arm/conf/CNS11XXNAS
  user/andre/tcp_workqueue/sys/arm/conf/DOCKSTAR
  user/andre/tcp_workqueue/sys/arm/conf/EA3250
  user/andre/tcp_workqueue/sys/arm/conf/GUMSTIX-QEMU
  user/andre/tcp_workqueue/sys/arm/conf/HL201
  user/andre/tcp_workqueue/sys/arm/conf/KB920X
  user/andre/tcp_workqueue/sys/arm/conf/LN2410SBC
  user/andre/tcp_workqueue/sys/arm/conf/PANDABOARD
  user/andre/tcp_workqueue/sys/arm/conf/QILA9G20
  user/andre/tcp_workqueue/sys/arm/conf/RPI-B
  user/andre/tcp_workqueue/sys/arm/conf/SAM9G20EK
  user/andre/tcp_workqueue/sys/arm/conf/SAM9X25EK
  user/andre/tcp_workqueue/sys/arm/conf/SHEEVAPLUG
  user/andre/tcp_workqueue/sys/arm/conf/SN9G45
  user/andre/tcp_workqueue/sys/arm/conf/TS7800
  user/andre/tcp_workqueue/sys/arm/econa/econa_machdep.c
  user/andre/tcp_workqueue/sys/arm/include/armreg.h
  user/andre/tcp_workqueue/sys/arm/include/atomic.h
  user/andre/tcp_workqueue/sys/arm/include/intr.h
  user/andre/tcp_workqueue/sys/arm/include/machdep.h
  user/andre/tcp_workqueue/sys/arm/include/pmap.h
  user/andre/tcp_workqueue/sys/arm/lpc/lpc_machdep.c
  user/andre/tcp_workqueue/sys/arm/mv/armadaxp/armadaxp.c
  user/andre/tcp_workqueue/sys/arm/mv/common.c
  user/andre/tcp_workqueue/sys/arm/mv/mpic.c
  user/andre/tcp_workqueue/sys/arm/mv/mv_machdep.c
  user/andre/tcp_workqueue/sys/arm/mv/mv_pci.c
  user/andre/tcp_workqueue/sys/arm/mv/mvreg.h
  user/andre/tcp_workqueue/sys/arm/mv/mvvar.h
  user/andre/tcp_workqueue/sys/arm/mv/mvwin.h
  user/andre/tcp_workqueue/sys/arm/mv/timer.c
  user/andre/tcp_workqueue/sys/arm/s3c2xx0/s3c24x0_machdep.c
  user/andre/tcp_workqueue/sys/arm/sa11x0/assabet_machdep.c
  user/andre/tcp_workqueue/sys/arm/tegra/common.c
  user/andre/tcp_workqueue/sys/arm/tegra/std.tegra2
  user/andre/tcp_workqueue/sys/arm/tegra/tegra2_machdep.c
  user/andre/tcp_workqueue/sys/arm/ti/cpsw/if_cpsw.c
  user/andre/tcp_workqueue/sys/arm/ti/ti_machdep.c
  user/andre/tcp_workqueue/sys/arm/ti/ti_scm.c
  user/andre/tcp_workqueue/sys/arm/ti/usb/omap_ehci.c
  user/andre/tcp_workqueue/sys/arm/xscale/i80321/ep80219_machdep.c
  user/andre/tcp_workqueue/sys/arm/xscale/i80321/iq31244_machdep.c
  user/andre/tcp_workqueue/sys/arm/xscale/i8134x/crb_machdep.c
  user/andre/tcp_workqueue/sys/arm/xscale/ixp425/avila_machdep.c
  user/andre/tcp_workqueue/sys/arm/xscale/pxa/pxa_machdep.c
  user/andre/tcp_workqueue/sys/boot/arm/uboot/Makefile
  user/andre/tcp_workqueue/sys/boot/common/bootstrap.h
  user/andre/tcp_workqueue/sys/boot/common/console.c
  user/andre/tcp_workqueue/sys/boot/common/disk.c
  user/andre/tcp_workqueue/sys/boot/common/disk.h
  user/andre/tcp_workqueue/sys/boot/common/load_elf.c
  user/andre/tcp_workqueue/sys/boot/common/module.c
  user/andre/tcp_workqueue/sys/boot/common/part.c
  user/andre/tcp_workqueue/sys/boot/common/reloc_elf.c
  user/andre/tcp_workqueue/sys/boot/forth/beastie.4th
  user/andre/tcp_workqueue/sys/boot/forth/color.4th.8
  user/andre/tcp_workqueue/sys/boot/forth/loader.4th
  user/andre/tcp_workqueue/sys/boot/forth/loader.conf
  user/andre/tcp_workqueue/sys/boot/forth/menu-commands.4th
  user/andre/tcp_workqueue/sys/boot/forth/menu.4th
  user/andre/tcp_workqueue/sys/boot/forth/menu.rc
  user/andre/tcp_workqueue/sys/boot/i386/boot2/boot2.c
  user/andre/tcp_workqueue/sys/boot/i386/boot2/lib.h
  user/andre/tcp_workqueue/sys/boot/i386/boot2/sio.S
  user/andre/tcp_workqueue/sys/boot/i386/btx/btx/btx.S
  user/andre/tcp_workqueue/sys/boot/i386/gptboot/gptboot.c
  user/andre/tcp_workqueue/sys/boot/i386/libi386/biosdisk.c
  user/andre/tcp_workqueue/sys/boot/i386/libi386/comconsole.c
  user/andre/tcp_workqueue/sys/boot/i386/libi386/pxe.c
  user/andre/tcp_workqueue/sys/boot/i386/libi386/pxe.h
  user/andre/tcp_workqueue/sys/boot/i386/loader/Makefile
  user/andre/tcp_workqueue/sys/boot/i386/loader/conf.c
  user/andre/tcp_workqueue/sys/boot/i386/loader/main.c
  user/andre/tcp_workqueue/sys/boot/i386/zfsboot/zfsboot.c
  user/andre/tcp_workqueue/sys/boot/ofw/libofw/devicename.c
  user/andre/tcp_workqueue/sys/boot/pc98/loader/main.c
  user/andre/tcp_workqueue/sys/boot/powerpc/uboot/Makefile
  user/andre/tcp_workqueue/sys/boot/sparc64/loader/main.c
  user/andre/tcp_workqueue/sys/boot/uboot/common/main.c
  user/andre/tcp_workqueue/sys/boot/uboot/lib/Makefile
  user/andre/tcp_workqueue/sys/boot/uboot/lib/devicename.c
  user/andre/tcp_workqueue/sys/boot/uboot/lib/disk.c
  user/andre/tcp_workqueue/sys/boot/uboot/lib/libuboot.h
  user/andre/tcp_workqueue/sys/boot/userboot/test/test.c
  user/andre/tcp_workqueue/sys/boot/userboot/userboot.h
  user/andre/tcp_workqueue/sys/boot/userboot/userboot/libuserboot.h
  user/andre/tcp_workqueue/sys/boot/userboot/userboot/main.c
  user/andre/tcp_workqueue/sys/boot/userboot/userboot/userboot_disk.c
  user/andre/tcp_workqueue/sys/boot/zfs/libzfs.h
  user/andre/tcp_workqueue/sys/boot/zfs/zfs.c
  user/andre/tcp_workqueue/sys/boot/zfs/zfsimpl.c
  user/andre/tcp_workqueue/sys/cam/ata/ata_da.c
  user/andre/tcp_workqueue/sys/cam/ata/ata_pmp.c
  user/andre/tcp_workqueue/sys/cam/ata/ata_xpt.c
  user/andre/tcp_workqueue/sys/cam/cam_periph.c
  user/andre/tcp_workqueue/sys/cam/cam_queue.c
  user/andre/tcp_workqueue/sys/cam/cam_xpt.c
  user/andre/tcp_workqueue/sys/cam/ctl/ctl.c
  user/andre/tcp_workqueue/sys/cam/ctl/ctl_backend_block.c
  user/andre/tcp_workqueue/sys/cam/ctl/ctl_backend_ramdisk.c
  user/andre/tcp_workqueue/sys/cam/ctl/ctl_frontend_cam_sim.c
  user/andre/tcp_workqueue/sys/cam/ctl/scsi_ctl.c
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_cd.c
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_ch.c
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_da.c
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_enc.c
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_enc_ses.c
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_low.c
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_low.h
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_pass.c
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_sa.c
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_sg.c
  user/andre/tcp_workqueue/sys/cam/scsi/scsi_xpt.c
  user/andre/tcp_workqueue/sys/cddl/boot/zfs/zfsimpl.h
  user/andre/tcp_workqueue/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c
  user/andre/tcp_workqueue/sys/cddl/compat/opensolaris/sys/debug.h
  user/andre/tcp_workqueue/sys/cddl/compat/opensolaris/sys/dkio.h
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/common/nvpair/fnvpair.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa_impl.h
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_debug.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/sys/debug.h
  user/andre/tcp_workqueue/sys/compat/linux/linux_file.c
  user/andre/tcp_workqueue/sys/compat/linux/linux_misc.c
  user/andre/tcp_workqueue/sys/conf/Makefile.amd64
  user/andre/tcp_workqueue/sys/conf/Makefile.arm
  user/andre/tcp_workqueue/sys/conf/Makefile.powerpc
  user/andre/tcp_workqueue/sys/conf/NOTES
  user/andre/tcp_workqueue/sys/conf/files
  user/andre/tcp_workqueue/sys/conf/files.amd64
  user/andre/tcp_workqueue/sys/conf/files.arm
  user/andre/tcp_workqueue/sys/conf/files.i386
  user/andre/tcp_workqueue/sys/conf/files.ia64
  user/andre/tcp_workqueue/sys/conf/files.mips
  user/andre/tcp_workqueue/sys/conf/files.pc98
  user/andre/tcp_workqueue/sys/conf/files.powerpc
  user/andre/tcp_workqueue/sys/conf/files.sparc64
  user/andre/tcp_workqueue/sys/conf/kern.mk
  user/andre/tcp_workqueue/sys/conf/kern.pre.mk
  user/andre/tcp_workqueue/sys/conf/kmod.mk
  user/andre/tcp_workqueue/sys/conf/newvers.sh
  user/andre/tcp_workqueue/sys/conf/options
  user/andre/tcp_workqueue/sys/conf/options.amd64
  user/andre/tcp_workqueue/sys/conf/options.i386
  user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_cbq.c
  user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_hfsc.c
  user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_priq.c
  user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_red.c
  user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_rio.c
  user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_rmclass.c
  user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_subr.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/changes.txt   (contents, props changed)
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/common/dmrestag.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslcompile.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslcompiler.h
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslerror.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslfiles.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslfold.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslglobal.h
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslmain.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslmessages.h
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/asloperands.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslopt.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslstartup.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslsupport.l
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/asltypes.h
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslutils.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/dtio.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/preprocess.h
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbexec.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbinput.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbmethod.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbnames.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbstats.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbutils.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/disassembler/dmopcode.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/tables/tbinstal.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/tables/tbxface.c
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/include/acdebug.h
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/include/acpixf.h
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/include/actbl1.h
  user/andre/tcp_workqueue/sys/contrib/ipfilter/netinet/fil.c
  user/andre/tcp_workqueue/sys/contrib/ipfilter/netinet/ip_auth.c
  user/andre/tcp_workqueue/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
  user/andre/tcp_workqueue/sys/contrib/rdma/rdma_addr.c
  user/andre/tcp_workqueue/sys/dev/aac/aac_cam.c
  user/andre/tcp_workqueue/sys/dev/acpi_support/acpi_wmi.c
  user/andre/tcp_workqueue/sys/dev/acpica/acpi_cpu.c
  user/andre/tcp_workqueue/sys/dev/acpica/acpi_hpet.c
  user/andre/tcp_workqueue/sys/dev/acpica/acpi_pcib_acpi.c
  user/andre/tcp_workqueue/sys/dev/acpica/acpi_thermal.c
  user/andre/tcp_workqueue/sys/dev/advansys/adv_eisa.c
  user/andre/tcp_workqueue/sys/dev/advansys/adv_isa.c
  user/andre/tcp_workqueue/sys/dev/advansys/adv_pci.c
  user/andre/tcp_workqueue/sys/dev/advansys/advansys.c
  user/andre/tcp_workqueue/sys/dev/advansys/advansys.h
  user/andre/tcp_workqueue/sys/dev/advansys/advlib.c
  user/andre/tcp_workqueue/sys/dev/advansys/advlib.h
  user/andre/tcp_workqueue/sys/dev/advansys/adw_pci.c
  user/andre/tcp_workqueue/sys/dev/advansys/adwcam.c
  user/andre/tcp_workqueue/sys/dev/advansys/adwlib.c
  user/andre/tcp_workqueue/sys/dev/advansys/adwlib.h
  user/andre/tcp_workqueue/sys/dev/advansys/adwvar.h
  user/andre/tcp_workqueue/sys/dev/aha/aha.c
  user/andre/tcp_workqueue/sys/dev/aha/aha_isa.c
  user/andre/tcp_workqueue/sys/dev/aha/aha_mca.c
  user/andre/tcp_workqueue/sys/dev/aha/ahareg.h
  user/andre/tcp_workqueue/sys/dev/ahb/ahb.c
  user/andre/tcp_workqueue/sys/dev/ahb/ahbreg.h
  user/andre/tcp_workqueue/sys/dev/ahci/ahci.c
  user/andre/tcp_workqueue/sys/dev/aic/aic.c
  user/andre/tcp_workqueue/sys/dev/aic/aic_cbus.c
  user/andre/tcp_workqueue/sys/dev/aic/aic_isa.c
  user/andre/tcp_workqueue/sys/dev/aic/aic_pccard.c
  user/andre/tcp_workqueue/sys/dev/aic/aicvar.h
  user/andre/tcp_workqueue/sys/dev/alc/if_alc.c
  user/andre/tcp_workqueue/sys/dev/ale/if_ale.c
  user/andre/tcp_workqueue/sys/dev/altera/jtag_uart/altera_jtag_uart_cons.c
  user/andre/tcp_workqueue/sys/dev/amr/amr.c
  user/andre/tcp_workqueue/sys/dev/arcmsr/arcmsr.c
  user/andre/tcp_workqueue/sys/dev/ata/ata-all.c
  user/andre/tcp_workqueue/sys/dev/ata/ata-all.h
  user/andre/tcp_workqueue/sys/dev/ata/ata-lowlevel.c
  user/andre/tcp_workqueue/sys/dev/ata/ata-sata.c
  user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ah.c
  user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ah.h
  user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ah_internal.h
  user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar2133.c
  user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c
  user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
  user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c
  user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
  user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar5416reg.h
  user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar9002/ar9280.c
  user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c
  user/andre/tcp_workqueue/sys/dev/ath/ath_rate/sample/sample.c
  user/andre/tcp_workqueue/sys/dev/ath/if_ath.c
  user/andre/tcp_workqueue/sys/dev/ath/if_ath_debug.c
  user/andre/tcp_workqueue/sys/dev/ath/if_ath_debug.h
  user/andre/tcp_workqueue/sys/dev/ath/if_ath_misc.h
  user/andre/tcp_workqueue/sys/dev/ath/if_ath_rx.c
  user/andre/tcp_workqueue/sys/dev/ath/if_ath_rx_edma.c
  user/andre/tcp_workqueue/sys/dev/ath/if_ath_sysctl.c
  user/andre/tcp_workqueue/sys/dev/ath/if_ath_tx.c
  user/andre/tcp_workqueue/sys/dev/ath/if_ath_tx.h
  user/andre/tcp_workqueue/sys/dev/ath/if_ath_tx_ht.c
  user/andre/tcp_workqueue/sys/dev/ath/if_athioctl.h
  user/andre/tcp_workqueue/sys/dev/ath/if_athvar.h
  user/andre/tcp_workqueue/sys/dev/atkbdc/psm.c
  user/andre/tcp_workqueue/sys/dev/bge/if_bge.c
  user/andre/tcp_workqueue/sys/dev/bge/if_bgereg.h
  user/andre/tcp_workqueue/sys/dev/buslogic/bt.c
  user/andre/tcp_workqueue/sys/dev/buslogic/bt_eisa.c
  user/andre/tcp_workqueue/sys/dev/buslogic/bt_isa.c
  user/andre/tcp_workqueue/sys/dev/buslogic/bt_mca.c
  user/andre/tcp_workqueue/sys/dev/buslogic/bt_pci.c
  user/andre/tcp_workqueue/sys/dev/buslogic/btreg.h
  user/andre/tcp_workqueue/sys/dev/bxe/if_bxe.c
  user/andre/tcp_workqueue/sys/dev/ct/bshw_machdep.c
  user/andre/tcp_workqueue/sys/dev/ct/ct.c
  user/andre/tcp_workqueue/sys/dev/ct/ct_isa.c
  user/andre/tcp_workqueue/sys/dev/ct/ct_machdep.h
  user/andre/tcp_workqueue/sys/dev/ct/ctvar.h
  user/andre/tcp_workqueue/sys/dev/cxgb/cxgb_main.c
  user/andre/tcp_workqueue/sys/dev/cxgb/cxgb_osdep.h
  user/andre/tcp_workqueue/sys/dev/cxgbe/adapter.h
  user/andre/tcp_workqueue/sys/dev/cxgbe/common/common.h
  user/andre/tcp_workqueue/sys/dev/cxgbe/common/t4_hw.c
  user/andre/tcp_workqueue/sys/dev/cxgbe/firmware/t4fw_interface.h
  user/andre/tcp_workqueue/sys/dev/cxgbe/osdep.h
  user/andre/tcp_workqueue/sys/dev/cxgbe/t4_ioctl.h
  user/andre/tcp_workqueue/sys/dev/cxgbe/t4_l2t.h
  user/andre/tcp_workqueue/sys/dev/cxgbe/t4_main.c
  user/andre/tcp_workqueue/sys/dev/cxgbe/t4_sge.c
  user/andre/tcp_workqueue/sys/dev/cxgbe/tom/t4_cpl_io.c
  user/andre/tcp_workqueue/sys/dev/cxgbe/tom/t4_ddp.c
  user/andre/tcp_workqueue/sys/dev/cxgbe/tom/t4_listen.c
  user/andre/tcp_workqueue/sys/dev/dpt/dpt.h
  user/andre/tcp_workqueue/sys/dev/dpt/dpt_eisa.c
  user/andre/tcp_workqueue/sys/dev/dpt/dpt_isa.c
  user/andre/tcp_workqueue/sys/dev/dpt/dpt_pci.c
  user/andre/tcp_workqueue/sys/dev/dpt/dpt_scsi.c
  user/andre/tcp_workqueue/sys/dev/drm2/drm_gem.c
  user/andre/tcp_workqueue/sys/dev/drm2/i915/i915_drv.c
  user/andre/tcp_workqueue/sys/dev/drm2/i915/i915_drv.h
  user/andre/tcp_workqueue/sys/dev/e1000/e1000_82575.c
  user/andre/tcp_workqueue/sys/dev/e1000/e1000_ich8lan.c
  user/andre/tcp_workqueue/sys/dev/e1000/if_em.c
  user/andre/tcp_workqueue/sys/dev/e1000/if_igb.c
  user/andre/tcp_workqueue/sys/dev/e1000/if_igb.h
  user/andre/tcp_workqueue/sys/dev/e1000/if_lem.c
  user/andre/tcp_workqueue/sys/dev/et/if_et.c
  user/andre/tcp_workqueue/sys/dev/etherswitch/arswitch/arswitch.c
  user/andre/tcp_workqueue/sys/dev/etherswitch/arswitch/arswitch_phy.c
  user/andre/tcp_workqueue/sys/dev/etherswitch/arswitch/arswitch_reg.c
  user/andre/tcp_workqueue/sys/dev/etherswitch/arswitch/arswitchvar.h
  user/andre/tcp_workqueue/sys/dev/etherswitch/etherswitch.c
  user/andre/tcp_workqueue/sys/dev/etherswitch/etherswitch_if.m
  user/andre/tcp_workqueue/sys/dev/fdt/fdt_common.c
  user/andre/tcp_workqueue/sys/dev/fdt/fdt_common.h
  user/andre/tcp_workqueue/sys/dev/fdt/fdt_pci.c
  user/andre/tcp_workqueue/sys/dev/flash/mx25l.c
  user/andre/tcp_workqueue/sys/dev/hptmv/entry.c
  user/andre/tcp_workqueue/sys/dev/hwpmc/hwpmc_amd.c
  user/andre/tcp_workqueue/sys/dev/hwpmc/hwpmc_arm.c
  user/andre/tcp_workqueue/sys/dev/hwpmc/hwpmc_core.c
  user/andre/tcp_workqueue/sys/dev/hwpmc/hwpmc_x86.c
  user/andre/tcp_workqueue/sys/dev/ie/if_ie_isa.c
  user/andre/tcp_workqueue/sys/dev/iicbus/pcf8563.c
  user/andre/tcp_workqueue/sys/dev/iicbus/s35390a.c
  user/andre/tcp_workqueue/sys/dev/ipmi/ipmi_smbios.c
  user/andre/tcp_workqueue/sys/dev/isci/isci.c
  user/andre/tcp_workqueue/sys/dev/isci/isci.h
  user/andre/tcp_workqueue/sys/dev/isci/isci_controller.c
  user/andre/tcp_workqueue/sys/dev/isci/scil/sati.c
  user/andre/tcp_workqueue/sys/dev/isci/scil/sati_callbacks.h
  user/andre/tcp_workqueue/sys/dev/isci/scil/sati_util.c
  user/andre/tcp_workqueue/sys/dev/isci/scil/sati_write_buffer.c
  user/andre/tcp_workqueue/sys/dev/isci/scil/sci_base_controller.h
  user/andre/tcp_workqueue/sys/dev/isci/scil/sci_base_domain.h
  user/andre/tcp_workqueue/sys/dev/isci/scil/sci_base_phy.h
  user/andre/tcp_workqueue/sys/dev/isci/scil/sci_base_remote_device.h
  user/andre/tcp_workqueue/sys/dev/isci/scil/scic_io_request.h
  user/andre/tcp_workqueue/sys/dev/isci/scil/scic_sds_phy.c
  user/andre/tcp_workqueue/sys/dev/isci/scil/scic_sds_port.h
  user/andre/tcp_workqueue/sys/dev/isci/scil/scic_sds_remote_device.h
  user/andre/tcp_workqueue/sys/dev/isci/scil/scic_sds_remote_node_context.h
  user/andre/tcp_workqueue/sys/dev/isci/scil/scic_sds_request.c
  user/andre/tcp_workqueue/sys/dev/isci/scil/scu_bios_definitions.h
  user/andre/tcp_workqueue/sys/dev/isp/isp_freebsd.c
  user/andre/tcp_workqueue/sys/dev/isp/isp_pci.c
  user/andre/tcp_workqueue/sys/dev/ixgbe/ixgbe.c
  user/andre/tcp_workqueue/sys/dev/ixgbe/ixgbe.h
  user/andre/tcp_workqueue/sys/dev/ixgbe/ixgbe_osdep.h
  user/andre/tcp_workqueue/sys/dev/ixgbe/ixv.c
  user/andre/tcp_workqueue/sys/dev/jme/if_jme.c
  user/andre/tcp_workqueue/sys/dev/mfi/mfi.c
  user/andre/tcp_workqueue/sys/dev/mii/brgphy.c
  user/andre/tcp_workqueue/sys/dev/mii/smscphy.c
  user/andre/tcp_workqueue/sys/dev/mlx/mlx.c
  user/andre/tcp_workqueue/sys/dev/mlx/mlx_disk.c
  user/andre/tcp_workqueue/sys/dev/mlx/mlx_pci.c
  user/andre/tcp_workqueue/sys/dev/mlx/mlxreg.h
  user/andre/tcp_workqueue/sys/dev/mlx/mlxvar.h
  user/andre/tcp_workqueue/sys/dev/mly/mly.c
  user/andre/tcp_workqueue/sys/dev/mmc/mmc.c
  user/andre/tcp_workqueue/sys/dev/mps/mps_sas.c
  user/andre/tcp_workqueue/sys/dev/mxge/if_mxge.c
  user/andre/tcp_workqueue/sys/dev/ncv/ncr53c500.c
  user/andre/tcp_workqueue/sys/dev/ncv/ncr53c500_pccard.c
  user/andre/tcp_workqueue/sys/dev/ncv/ncr53c500hw.h
  user/andre/tcp_workqueue/sys/dev/ncv/ncr53c500var.h
  user/andre/tcp_workqueue/sys/dev/netmap/netmap.c
  user/andre/tcp_workqueue/sys/dev/netmap/netmap_kern.h
  user/andre/tcp_workqueue/sys/dev/netmap/netmap_mem2.c
  user/andre/tcp_workqueue/sys/dev/nsp/nsp.c
  user/andre/tcp_workqueue/sys/dev/nsp/nsp_pccard.c
  user/andre/tcp_workqueue/sys/dev/nsp/nspvar.h
  user/andre/tcp_workqueue/sys/dev/nve/if_nvereg.h
  user/andre/tcp_workqueue/sys/dev/oce/oce_if.c
  user/andre/tcp_workqueue/sys/dev/pci/pci.c
  user/andre/tcp_workqueue/sys/dev/pci/pci_user.c
  user/andre/tcp_workqueue/sys/dev/pci/pcireg.h
  user/andre/tcp_workqueue/sys/dev/random/ivy.c
  user/andre/tcp_workqueue/sys/dev/random/probe.c
  user/andre/tcp_workqueue/sys/dev/re/if_re.c
  user/andre/tcp_workqueue/sys/dev/sdhci/sdhci.c
  user/andre/tcp_workqueue/sys/dev/sdhci/sdhci.h
  user/andre/tcp_workqueue/sys/dev/sound/pci/hda/hdaa.c
  user/andre/tcp_workqueue/sys/dev/sound/pci/hda/hdaa_patches.c
  user/andre/tcp_workqueue/sys/dev/sound/pci/hdspe-pcm.c
  user/andre/tcp_workqueue/sys/dev/sound/pci/hdspe.c
  user/andre/tcp_workqueue/sys/dev/sound/usb/uaudio.c
  user/andre/tcp_workqueue/sys/dev/sound/usb/uaudioreg.h
  user/andre/tcp_workqueue/sys/dev/stg/tmc18c30.c
  user/andre/tcp_workqueue/sys/dev/stg/tmc18c30_isa.c
  user/andre/tcp_workqueue/sys/dev/stg/tmc18c30_pccard.c
  user/andre/tcp_workqueue/sys/dev/stg/tmc18c30_pci.c
  user/andre/tcp_workqueue/sys/dev/stg/tmc18c30_subr.c
  user/andre/tcp_workqueue/sys/dev/stg/tmc18c30var.h
  user/andre/tcp_workqueue/sys/dev/twe/twe.c
  user/andre/tcp_workqueue/sys/dev/twe/twe_compat.h
  user/andre/tcp_workqueue/sys/dev/twe/twe_freebsd.c
  user/andre/tcp_workqueue/sys/dev/twe/twevar.h
  user/andre/tcp_workqueue/sys/dev/tws/tws.c
  user/andre/tcp_workqueue/sys/dev/tws/tws_cam.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/at91dci.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/at91dci_atmelarm.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/atmegadci.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/avr32dci.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/dwc_otg.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/dwc_otg.h
  user/andre/tcp_workqueue/sys/dev/usb/controller/dwc_otgreg.h
  user/andre/tcp_workqueue/sys/dev/usb/controller/ehci.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/musb_otg.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/ohci.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/uhci.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/usb_controller.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/uss820dci.c
  user/andre/tcp_workqueue/sys/dev/usb/controller/xhci.c
  user/andre/tcp_workqueue/sys/dev/usb/input/ums.c
  user/andre/tcp_workqueue/sys/dev/usb/net/if_smsc.c
  user/andre/tcp_workqueue/sys/dev/usb/net/uhso.c
  user/andre/tcp_workqueue/sys/dev/usb/quirk/usb_quirk.c
  user/andre/tcp_workqueue/sys/dev/usb/quirk/usb_quirk.h
  user/andre/tcp_workqueue/sys/dev/usb/serial/u3g.c
  user/andre/tcp_workqueue/sys/dev/usb/serial/uchcom.c
  user/andre/tcp_workqueue/sys/dev/usb/serial/ufoma.c
  user/andre/tcp_workqueue/sys/dev/usb/serial/uftdi_reg.h
  user/andre/tcp_workqueue/sys/dev/usb/storage/umass.c
  user/andre/tcp_workqueue/sys/dev/usb/usb_hub.c
  user/andre/tcp_workqueue/sys/dev/usb/usb_pf.c
  user/andre/tcp_workqueue/sys/dev/usb/usb_request.c
  user/andre/tcp_workqueue/sys/dev/usb/usbdevs
  user/andre/tcp_workqueue/sys/dev/virtio/virtio.c
  user/andre/tcp_workqueue/sys/dev/virtio/virtio.h
  user/andre/tcp_workqueue/sys/dev/virtio/virtqueue.c
  user/andre/tcp_workqueue/sys/dev/vxge/include/vxgehal-ll.h
  user/andre/tcp_workqueue/sys/dev/vxge/vxge.c
  user/andre/tcp_workqueue/sys/dev/xen/netback/netback_unit_tests.c
  user/andre/tcp_workqueue/sys/fs/coda/coda_subr.c
  user/andre/tcp_workqueue/sys/fs/deadfs/dead_vnops.c
  user/andre/tcp_workqueue/sys/fs/devfs/devfs_int.h
  user/andre/tcp_workqueue/sys/fs/ext2fs/ext2_alloc.c
  user/andre/tcp_workqueue/sys/fs/ext2fs/ext2_inode.c
  user/andre/tcp_workqueue/sys/fs/ext2fs/ext2_inode_cnv.c
  user/andre/tcp_workqueue/sys/fs/hpfs/hpfs_vfsops.c
  user/andre/tcp_workqueue/sys/fs/nandfs/bmap.c
  user/andre/tcp_workqueue/sys/fs/nfs/nfs.h
  user/andre/tcp_workqueue/sys/fs/nfs/nfs_commonacl.c
  user/andre/tcp_workqueue/sys/fs/nfs/nfs_commonport.c
  user/andre/tcp_workqueue/sys/fs/nfs/nfs_commonsubs.c
  user/andre/tcp_workqueue/sys/fs/nfs/nfs_var.h
  user/andre/tcp_workqueue/sys/fs/nfs/nfscl.h
  user/andre/tcp_workqueue/sys/fs/nfsclient/nfs_clcomsubs.c
  user/andre/tcp_workqueue/sys/fs/nfsclient/nfs_clrpcops.c
  user/andre/tcp_workqueue/sys/fs/nfsserver/nfs_nfsdkrpc.c
  user/andre/tcp_workqueue/sys/fs/nfsserver/nfs_nfsdport.c
  user/andre/tcp_workqueue/sys/fs/ntfs/ntfs_subr.c
  user/andre/tcp_workqueue/sys/fs/ntfs/ntfs_vfsops.c
  user/andre/tcp_workqueue/sys/fs/ntfs/ntfs_vnops.c
  user/andre/tcp_workqueue/sys/fs/nullfs/null.h
  user/andre/tcp_workqueue/sys/fs/nullfs/null_subr.c
  user/andre/tcp_workqueue/sys/fs/nullfs/null_vfsops.c
  user/andre/tcp_workqueue/sys/fs/nullfs/null_vnops.c
  user/andre/tcp_workqueue/sys/fs/tmpfs/tmpfs_vfsops.c
  user/andre/tcp_workqueue/sys/geom/geom_disk.c
  user/andre/tcp_workqueue/sys/geom/mirror/g_mirror.c
  user/andre/tcp_workqueue/sys/geom/part/g_part.c
  user/andre/tcp_workqueue/sys/geom/raid/g_raid.c
  user/andre/tcp_workqueue/sys/geom/raid/g_raid.h
  user/andre/tcp_workqueue/sys/geom/raid/g_raid_ctl.c
  user/andre/tcp_workqueue/sys/geom/raid/md_ddf.c
  user/andre/tcp_workqueue/sys/geom/raid/md_intel.c
  user/andre/tcp_workqueue/sys/geom/raid/md_jmicron.c
  user/andre/tcp_workqueue/sys/geom/raid/md_nvidia.c
  user/andre/tcp_workqueue/sys/geom/raid/md_promise.c
  user/andre/tcp_workqueue/sys/geom/raid/md_sii.c
  user/andre/tcp_workqueue/sys/geom/raid/tr_concat.c
  user/andre/tcp_workqueue/sys/geom/raid/tr_raid0.c
  user/andre/tcp_workqueue/sys/geom/raid/tr_raid1.c
  user/andre/tcp_workqueue/sys/geom/raid/tr_raid1e.c
  user/andre/tcp_workqueue/sys/geom/raid/tr_raid5.c
  user/andre/tcp_workqueue/sys/geom/raid3/g_raid3.c
  user/andre/tcp_workqueue/sys/gnu/fs/xfs/FreeBSD/xfs_compat.h
  user/andre/tcp_workqueue/sys/gnu/fs/xfs/FreeBSD/xfs_freebsd.h
  user/andre/tcp_workqueue/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c
  user/andre/tcp_workqueue/sys/i386/bios/smapi.c
  user/andre/tcp_workqueue/sys/i386/conf/GENERIC
  user/andre/tcp_workqueue/sys/i386/conf/NOTES
  user/andre/tcp_workqueue/sys/i386/i386/identcpu.c
  user/andre/tcp_workqueue/sys/i386/i386/machdep.c
  user/andre/tcp_workqueue/sys/i386/i386/mp_machdep.c
  user/andre/tcp_workqueue/sys/i386/i386/pmap.c
  user/andre/tcp_workqueue/sys/i386/i386/trap.c
  user/andre/tcp_workqueue/sys/i386/include/atomic.h
  user/andre/tcp_workqueue/sys/i386/include/intr_machdep.h
  user/andre/tcp_workqueue/sys/i386/include/pc/bios.h
  user/andre/tcp_workqueue/sys/i386/include/xen/xen-os.h
  user/andre/tcp_workqueue/sys/i386/pci/pci_cfgreg.c
  user/andre/tcp_workqueue/sys/i386/xen/mp_machdep.c
  user/andre/tcp_workqueue/sys/i386/xen/pmap.c
  user/andre/tcp_workqueue/sys/i386/xen/xen_machdep.c
  user/andre/tcp_workqueue/sys/ia64/ia32/ia32_trap.c
  user/andre/tcp_workqueue/sys/ia64/ia64/pmap.c
  user/andre/tcp_workqueue/sys/ia64/ia64/trap.c
  user/andre/tcp_workqueue/sys/kern/Make.tags.inc
  user/andre/tcp_workqueue/sys/kern/dtio_kdtrace.c
  user/andre/tcp_workqueue/sys/kern/imgact_elf.c
  user/andre/tcp_workqueue/sys/kern/kern_clocksource.c
  user/andre/tcp_workqueue/sys/kern/kern_condvar.c
  user/andre/tcp_workqueue/sys/kern/kern_cons.c
  user/andre/tcp_workqueue/sys/kern/kern_exec.c
  user/andre/tcp_workqueue/sys/kern/kern_exit.c
  user/andre/tcp_workqueue/sys/kern/kern_fork.c
  user/andre/tcp_workqueue/sys/kern/kern_intr.c
  user/andre/tcp_workqueue/sys/kern/kern_lock.c
  user/andre/tcp_workqueue/sys/kern/kern_mutex.c
  user/andre/tcp_workqueue/sys/kern/kern_rmlock.c
  user/andre/tcp_workqueue/sys/kern/kern_rwlock.c
  user/andre/tcp_workqueue/sys/kern/kern_sig.c
  user/andre/tcp_workqueue/sys/kern/kern_sx.c
  user/andre/tcp_workqueue/sys/kern/kern_thread.c
  user/andre/tcp_workqueue/sys/kern/link_elf.c
  user/andre/tcp_workqueue/sys/kern/sched_ule.c
  user/andre/tcp_workqueue/sys/kern/subr_bus.c
  user/andre/tcp_workqueue/sys/kern/subr_sleepqueue.c
  user/andre/tcp_workqueue/sys/kern/subr_syscall.c
  user/andre/tcp_workqueue/sys/kern/subr_trap.c
  user/andre/tcp_workqueue/sys/kern/subr_turnstile.c
  user/andre/tcp_workqueue/sys/kern/subr_unit.c
  user/andre/tcp_workqueue/sys/kern/sys_generic.c
  user/andre/tcp_workqueue/sys/kern/tty_ttydisc.c
  user/andre/tcp_workqueue/sys/kern/uipc_domain.c
  user/andre/tcp_workqueue/sys/kern/uipc_mqueue.c
  user/andre/tcp_workqueue/sys/kern/uipc_socket.c
  user/andre/tcp_workqueue/sys/kern/uipc_usrreq.c
  user/andre/tcp_workqueue/sys/kern/vfs_default.c
  user/andre/tcp_workqueue/sys/kern/vfs_lookup.c
  user/andre/tcp_workqueue/sys/kern/vfs_mount.c
  user/andre/tcp_workqueue/sys/kern/vfs_subr.c
  user/andre/tcp_workqueue/sys/kern/vfs_syscalls.c
  user/andre/tcp_workqueue/sys/kern/vfs_vnops.c
  user/andre/tcp_workqueue/sys/kern/vnode_if.src
  user/andre/tcp_workqueue/sys/libkern/jenkins_hash.c
  user/andre/tcp_workqueue/sys/mips/cavium/usb/octusb.c
  user/andre/tcp_workqueue/sys/mips/include/cpufunc.h
  user/andre/tcp_workqueue/sys/mips/include/tlb.h
  user/andre/tcp_workqueue/sys/mips/mips/pmap.c
  user/andre/tcp_workqueue/sys/mips/mips/tlb.c
  user/andre/tcp_workqueue/sys/mips/mips/trap.c
  user/andre/tcp_workqueue/sys/mips/rmi/rootfs_list.txt
  user/andre/tcp_workqueue/sys/modules/Makefile
  user/andre/tcp_workqueue/sys/modules/cxgbe/firmware/Makefile
  user/andre/tcp_workqueue/sys/modules/dummynet/Makefile
  user/andre/tcp_workqueue/sys/modules/ipfw/Makefile
  user/andre/tcp_workqueue/sys/modules/ipfw_nat/Makefile
  user/andre/tcp_workqueue/sys/modules/pf/Makefile
  user/andre/tcp_workqueue/sys/modules/pflog/Makefile
  user/andre/tcp_workqueue/sys/modules/pfsync/Makefile
  user/andre/tcp_workqueue/sys/modules/scsi_low/Makefile
  user/andre/tcp_workqueue/sys/modules/sdhci/Makefile
  user/andre/tcp_workqueue/sys/modules/virtio/Makefile
  user/andre/tcp_workqueue/sys/modules/zfs/Makefile
  user/andre/tcp_workqueue/sys/net/bpf.h
  user/andre/tcp_workqueue/sys/net/if.c
  user/andre/tcp_workqueue/sys/net/if.h
  user/andre/tcp_workqueue/sys/net/if_bridge.c
  user/andre/tcp_workqueue/sys/net/if_clone.c
  user/andre/tcp_workqueue/sys/net/if_clone.h
  user/andre/tcp_workqueue/sys/net/if_disc.c
  user/andre/tcp_workqueue/sys/net/if_edsc.c
  user/andre/tcp_workqueue/sys/net/if_ef.c
  user/andre/tcp_workqueue/sys/net/if_enc.c
  user/andre/tcp_workqueue/sys/net/if_epair.c
  user/andre/tcp_workqueue/sys/net/if_faith.c
  user/andre/tcp_workqueue/sys/net/if_gif.c
  user/andre/tcp_workqueue/sys/net/if_gre.c
  user/andre/tcp_workqueue/sys/net/if_lagg.c
  user/andre/tcp_workqueue/sys/net/if_loop.c
  user/andre/tcp_workqueue/sys/net/if_spppsubr.c
  user/andre/tcp_workqueue/sys/net/if_stf.c
  user/andre/tcp_workqueue/sys/net/if_tap.c
  user/andre/tcp_workqueue/sys/net/if_tun.c
  user/andre/tcp_workqueue/sys/net/if_var.h
  user/andre/tcp_workqueue/sys/net/if_vlan.c
  user/andre/tcp_workqueue/sys/net/netmap_user.h
  user/andre/tcp_workqueue/sys/net/rtsock.c
  user/andre/tcp_workqueue/sys/net80211/ieee80211_adhoc.c
  user/andre/tcp_workqueue/sys/net80211/ieee80211_freebsd.c
  user/andre/tcp_workqueue/sys/net80211/ieee80211_hostap.c
  user/andre/tcp_workqueue/sys/net80211/ieee80211_hostap.h
  user/andre/tcp_workqueue/sys/net80211/ieee80211_mesh.c
  user/andre/tcp_workqueue/sys/net80211/ieee80211_node.c
  user/andre/tcp_workqueue/sys/net80211/ieee80211_power.c
  user/andre/tcp_workqueue/sys/net80211/ieee80211_power.h
  user/andre/tcp_workqueue/sys/net80211/ieee80211_scan.c
  user/andre/tcp_workqueue/sys/net80211/ieee80211_sta.c
  user/andre/tcp_workqueue/sys/net80211/ieee80211_var.h
  user/andre/tcp_workqueue/sys/netgraph/atm/ccatm/ng_ccatm.c
  user/andre/tcp_workqueue/sys/netgraph/atm/sscfu/ng_sscfu.c
  user/andre/tcp_workqueue/sys/netgraph/atm/sscop/ng_sscop.c
  user/andre/tcp_workqueue/sys/netgraph/atm/uni/ng_uni.c
  user/andre/tcp_workqueue/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
  user/andre/tcp_workqueue/sys/netgraph/netflow/netflow_v9.c
  user/andre/tcp_workqueue/sys/netgraph/netflow/ng_netflow.c
  user/andre/tcp_workqueue/sys/netgraph/netflow/ng_netflow.h
  user/andre/tcp_workqueue/sys/netgraph/ng_base.c
  user/andre/tcp_workqueue/sys/netgraph/ng_eiface.c
  user/andre/tcp_workqueue/sys/netgraph/ng_ether.c
  user/andre/tcp_workqueue/sys/netgraph/ng_fec.c
  user/andre/tcp_workqueue/sys/netgraph/ng_gif.c
  user/andre/tcp_workqueue/sys/netgraph/ng_ipfw.c
  user/andre/tcp_workqueue/sys/netgraph/ng_ksocket.c
  user/andre/tcp_workqueue/sys/netgraph/ng_nat.c
  user/andre/tcp_workqueue/sys/netgraph/ng_source.c
  user/andre/tcp_workqueue/sys/netinet/in_gif.c
  user/andre/tcp_workqueue/sys/netinet/in_pcb.c
  user/andre/tcp_workqueue/sys/netinet/in_pcb.h
  user/andre/tcp_workqueue/sys/netinet/in_rmx.c
  user/andre/tcp_workqueue/sys/netinet/in_var.h
  user/andre/tcp_workqueue/sys/netinet/ip_carp.c
  user/andre/tcp_workqueue/sys/netinet/ip_divert.c
  user/andre/tcp_workqueue/sys/netinet/ip_fastfwd.c
  user/andre/tcp_workqueue/sys/netinet/ip_icmp.c
  user/andre/tcp_workqueue/sys/netinet/ip_input.c
  user/andre/tcp_workqueue/sys/netinet/ip_ipsec.c
  user/andre/tcp_workqueue/sys/netinet/ip_mroute.c
  user/andre/tcp_workqueue/sys/netinet/ip_options.c
  user/andre/tcp_workqueue/sys/netinet/ip_options.h
  user/andre/tcp_workqueue/sys/netinet/ip_output.c
  user/andre/tcp_workqueue/sys/netinet/ip_var.h
  user/andre/tcp_workqueue/sys/netinet/libalias/alias_proxy.c
  user/andre/tcp_workqueue/sys/netinet/libalias/alias_skinny.c
  user/andre/tcp_workqueue/sys/netinet/raw_ip.c
  user/andre/tcp_workqueue/sys/netinet/sctp_asconf.c
  user/andre/tcp_workqueue/sys/netinet/sctp_header.h
  user/andre/tcp_workqueue/sys/netinet/sctp_indata.c
  user/andre/tcp_workqueue/sys/netinet/sctp_input.c
  user/andre/tcp_workqueue/sys/netinet/sctp_input.h
  user/andre/tcp_workqueue/sys/netinet/sctp_output.c
  user/andre/tcp_workqueue/sys/netinet/sctp_output.h
  user/andre/tcp_workqueue/sys/netinet/sctp_pcb.c
  user/andre/tcp_workqueue/sys/netinet/sctp_structs.h
  user/andre/tcp_workqueue/sys/netinet/sctputil.c
  user/andre/tcp_workqueue/sys/netinet/tcp_input.c
  user/andre/tcp_workqueue/sys/netinet/tcp_subr.c
  user/andre/tcp_workqueue/sys/netinet/tcp_usrreq.c
  user/andre/tcp_workqueue/sys/netinet/udp_usrreq.c
  user/andre/tcp_workqueue/sys/netinet6/icmp6.c
  user/andre/tcp_workqueue/sys/netinet6/in6.c
  user/andre/tcp_workqueue/sys/netinet6/in6_gif.c
  user/andre/tcp_workqueue/sys/netinet6/in6_rmx.c
  user/andre/tcp_workqueue/sys/netinet6/ip6_ipsec.c
  user/andre/tcp_workqueue/sys/netinet6/nd6.c
  user/andre/tcp_workqueue/sys/netinet6/nd6_nbr.c
  user/andre/tcp_workqueue/sys/netinet6/nd6_rtr.c
  user/andre/tcp_workqueue/sys/netinet6/udp6_usrreq.c
  user/andre/tcp_workqueue/sys/netipsec/ipsec_input.c
  user/andre/tcp_workqueue/sys/netipsec/ipsec_output.c
  user/andre/tcp_workqueue/sys/netipsec/key.c
  user/andre/tcp_workqueue/sys/netipsec/xform_ipip.c
  user/andre/tcp_workqueue/sys/nfs/nfs_nfssvc.c
  user/andre/tcp_workqueue/sys/nfs/nfssvc.h
  user/andre/tcp_workqueue/sys/nfsserver/nfs_serv.c
  user/andre/tcp_workqueue/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
  user/andre/tcp_workqueue/sys/ofed/drivers/net/mlx4/en_tx.c
  user/andre/tcp_workqueue/sys/ofed/include/linux/pci.h
  user/andre/tcp_workqueue/sys/ofed/include/rdma/ib_addr.h
  user/andre/tcp_workqueue/sys/pc98/include/bus.h
  user/andre/tcp_workqueue/sys/pc98/pc98/machdep.c
  user/andre/tcp_workqueue/sys/powerpc/aim/mmu_oea.c
  user/andre/tcp_workqueue/sys/powerpc/aim/mmu_oea64.c
  user/andre/tcp_workqueue/sys/powerpc/aim/trap.c
  user/andre/tcp_workqueue/sys/powerpc/booke/trap.c
  user/andre/tcp_workqueue/sys/powerpc/include/cpu.h
  user/andre/tcp_workqueue/sys/powerpc/include/pcb.h
  user/andre/tcp_workqueue/sys/powerpc/mpc85xx/pci_fdt.c
  user/andre/tcp_workqueue/sys/powerpc/ofw/ofw_real.c
  user/andre/tcp_workqueue/sys/powerpc/wii/wii_bus.c
  user/andre/tcp_workqueue/sys/rpc/auth.h
  user/andre/tcp_workqueue/sys/rpc/rpcb_clnt.c
  user/andre/tcp_workqueue/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c
  user/andre/tcp_workqueue/sys/sparc64/include/atomic.h
  user/andre/tcp_workqueue/sys/sparc64/include/intr_machdep.h
  user/andre/tcp_workqueue/sys/sparc64/include/vmparam.h
  user/andre/tcp_workqueue/sys/sparc64/sparc64/ata_machdep.c
  user/andre/tcp_workqueue/sys/sparc64/sparc64/intr_machdep.c
  user/andre/tcp_workqueue/sys/sparc64/sparc64/machdep.c
  user/andre/tcp_workqueue/sys/sparc64/sparc64/pmap.c
  user/andre/tcp_workqueue/sys/sparc64/sparc64/trap.c
  user/andre/tcp_workqueue/sys/sys/_rmlock.h
  user/andre/tcp_workqueue/sys/sys/buf_ring.h
  user/andre/tcp_workqueue/sys/sys/capability.h
  user/andre/tcp_workqueue/sys/sys/cdefs.h
  user/andre/tcp_workqueue/sys/sys/kernel.h
  user/andre/tcp_workqueue/sys/sys/mbuf.h
  user/andre/tcp_workqueue/sys/sys/mount.h
  user/andre/tcp_workqueue/sys/sys/param.h
  user/andre/tcp_workqueue/sys/sys/pcpu.h
  user/andre/tcp_workqueue/sys/sys/proc.h
  user/andre/tcp_workqueue/sys/sys/queue.h
  user/andre/tcp_workqueue/sys/sys/socketvar.h
  user/andre/tcp_workqueue/sys/sys/vnode.h
  user/andre/tcp_workqueue/sys/ufs/ffs/ffs_alloc.c
  user/andre/tcp_workqueue/sys/ufs/ffs/ffs_snapshot.c
  user/andre/tcp_workqueue/sys/ufs/ffs/ffs_softdep.c
  user/andre/tcp_workqueue/sys/ufs/ufs/inode.h
  user/andre/tcp_workqueue/sys/ufs/ufs/ufs_acl.c
  user/andre/tcp_workqueue/sys/ufs/ufs/ufs_lookup.c
  user/andre/tcp_workqueue/sys/ufs/ufs/ufs_vnops.c
  user/andre/tcp_workqueue/sys/vm/uma_core.c
  user/andre/tcp_workqueue/sys/vm/vm_object.c
  user/andre/tcp_workqueue/sys/vm/vm_page.c
  user/andre/tcp_workqueue/sys/vm/vm_page.h
  user/andre/tcp_workqueue/sys/vm/vm_pageout.c
  user/andre/tcp_workqueue/sys/vm/vnode_pager.c
  user/andre/tcp_workqueue/sys/x86/bios/smbios.c
  user/andre/tcp_workqueue/sys/x86/include/bus.h
  user/andre/tcp_workqueue/sys/x86/x86/intr_machdep.c
Directory Properties:
  user/andre/tcp_workqueue/sys/   (props changed)
  user/andre/tcp_workqueue/sys/boot/   (props changed)
  user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/   (props changed)
  user/andre/tcp_workqueue/sys/conf/   (props changed)
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/   (props changed)
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/common/   (props changed)
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/   (props changed)
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/   (props changed)
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/disassembler/   (props changed)
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/tables/   (props changed)
  user/andre/tcp_workqueue/sys/contrib/dev/acpica/include/   (props changed)

Modified: user/andre/tcp_workqueue/sys/amd64/amd64/identcpu.c
==============================================================================
--- user/andre/tcp_workqueue/sys/amd64/amd64/identcpu.c	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/amd64/amd64/identcpu.c	Fri Oct 19 13:05:51 2012	(r241732)
@@ -213,8 +213,8 @@ printcpuinfo(void)
 	if (cpu_vendor_id == CPU_VENDOR_INTEL ||
 	    cpu_vendor_id == CPU_VENDOR_AMD ||
 	    cpu_vendor_id == CPU_VENDOR_CENTAUR) {
-		printf("  Family = %x", CPUID_TO_FAMILY(cpu_id));
-		printf("  Model = %x", CPUID_TO_MODEL(cpu_id));
+		printf("  Family = 0x%x", CPUID_TO_FAMILY(cpu_id));
+		printf("  Model = 0x%x", CPUID_TO_MODEL(cpu_id));
 		printf("  Stepping = %u", cpu_id & CPUID_STEPPING);
 
 		/*

Modified: user/andre/tcp_workqueue/sys/amd64/amd64/machdep.c
==============================================================================
--- user/andre/tcp_workqueue/sys/amd64/amd64/machdep.c	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/amd64/amd64/machdep.c	Fri Oct 19 13:05:51 2012	(r241732)
@@ -298,11 +298,6 @@ cpu_startup(dummy)
 	vm_pager_bufferinit();
 
 	cpu_setregs();
-
-	/*
-	 * Add BSP as an interrupt target.
-	 */
-	intr_add_cpu(0);
 }
 
 /*

Modified: user/andre/tcp_workqueue/sys/amd64/amd64/mp_machdep.c
==============================================================================
--- user/andre/tcp_workqueue/sys/amd64/amd64/mp_machdep.c	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/amd64/amd64/mp_machdep.c	Fri Oct 19 13:05:51 2012	(r241732)
@@ -784,6 +784,8 @@ init_secondary(void)
  * We tell the I/O APIC code about all the CPUs we want to receive
  * interrupts.  If we don't want certain CPUs to receive IRQs we
  * can simply not tell the I/O APIC code about them in this function.
+ * We also do not tell it about the BSP since it tells itself about
+ * the BSP internally to work with UP kernels and on UP machines.
  */
 static void
 set_interrupt_apic_ids(void)
@@ -794,6 +796,8 @@ set_interrupt_apic_ids(void)
 		apic_id = cpu_apic_ids[i];
 		if (apic_id == -1)
 			continue;
+		if (cpu_info[apic_id].cpu_bsp)
+			continue;
 		if (cpu_info[apic_id].cpu_disabled)
 			continue;
 

Modified: user/andre/tcp_workqueue/sys/amd64/amd64/pmap.c
==============================================================================
--- user/andre/tcp_workqueue/sys/amd64/amd64/pmap.c	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/amd64/amd64/pmap.c	Fri Oct 19 13:05:51 2012	(r241732)
@@ -82,13 +82,6 @@ __FBSDID("$FreeBSD$");
 /*
  *	Manages physical address maps.
  *
- *	In addition to hardware address maps, this
- *	module is called upon to provide software-use-only
- *	maps which may or may not be stored in the same
- *	form as hardware maps.  These pseudo-maps are
- *	used to store intermediate results from copy
- *	operations to and from address spaces.
- *
  *	Since the information managed by this module is
  *	also stored by the logical address mapping module,
  *	this module may throw away valid virtual-to-physical
@@ -4998,7 +4991,7 @@ pmap_mapbios(vm_paddr_t pa, vm_size_t si
 void
 pmap_unmapdev(vm_offset_t va, vm_size_t size)
 {
-	vm_offset_t base, offset, tmpva;
+	vm_offset_t base, offset;
 
 	/* If we gave a direct map region in pmap_mapdev, do nothing */
 	if (va >= DMAP_MIN_ADDRESS && va < DMAP_MAX_ADDRESS)
@@ -5006,9 +4999,6 @@ pmap_unmapdev(vm_offset_t va, vm_size_t 
 	base = trunc_page(va);
 	offset = va & PAGE_MASK;
 	size = roundup(offset + size, PAGE_SIZE);
-	for (tmpva = base; tmpva < (base + size); tmpva += PAGE_SIZE)
-		pmap_kremove(tmpva);
-	pmap_invalidate_range(kernel_pmap, va, tmpva);
 	kmem_free(kernel_map, base, size);
 }
 

Modified: user/andre/tcp_workqueue/sys/amd64/amd64/trap.c
==============================================================================
--- user/andre/tcp_workqueue/sys/amd64/amd64/trap.c	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/amd64/amd64/trap.c	Fri Oct 19 13:05:51 2012	(r241732)
@@ -617,8 +617,10 @@ trap(struct trapframe *frame)
 	ksi.ksi_addr = (void *)addr;
 	if (uprintf_signal) {
 		uprintf("pid %d comm %s: signal %d err %lx code %d type %d "
-		    "addr 0x%lx <%02x %02x %02x %02x %02x %02x %02x %02x>\n",
+		    "addr 0x%lx rip 0x%lx "
+		    "<%02x %02x %02x %02x %02x %02x %02x %02x>\n",
 		    p->p_pid, p->p_comm, i, frame->tf_err, ucode, type, addr,
+		    frame->tf_rip,
 		    fubyte((void *)(frame->tf_rip + 0)),
 		    fubyte((void *)(frame->tf_rip + 1)),
 		    fubyte((void *)(frame->tf_rip + 2)),
@@ -632,7 +634,6 @@ trap(struct trapframe *frame)
 
 user:
 	userret(td, frame);
-	mtx_assert(&Giant, MA_NOTOWNED);
 	KASSERT(PCB_USER_FPU(td->td_pcb),
 	    ("Return from trap with kernel FPU ctx leaked"));
 userout:

Modified: user/andre/tcp_workqueue/sys/amd64/conf/GENERIC
==============================================================================
--- user/andre/tcp_workqueue/sys/amd64/conf/GENERIC	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/amd64/conf/GENERIC	Fri Oct 19 13:05:51 2012	(r241732)
@@ -293,7 +293,7 @@ device		wpi		# Intel 3945ABG wireless NI
 device		loop		# Network loopback
 device		random		# Entropy device
 options 	PADLOCK_RNG	# VIA Padlock RNG
-options 	IVY_RNG		# Intel Bull Mountain RNG
+options 	RDRAND_RNG	# Intel Bull Mountain RNG
 device		ether		# Ethernet support
 device		vlan		# 802.1Q VLAN support
 device		tun		# Packet tunnel.

Modified: user/andre/tcp_workqueue/sys/amd64/conf/NOTES
==============================================================================
--- user/andre/tcp_workqueue/sys/amd64/conf/NOTES	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/amd64/conf/NOTES	Fri Oct 19 13:05:51 2012	(r241732)
@@ -428,6 +428,11 @@ device		isci
 options		ISCI_LOGGING	# enable debugging in isci HAL
 
 #
+# NVM Express (NVMe) support
+device         nvme    # base NVMe driver
+device         nvd     # expose NVMe namespaces as disks, depends on nvme
+
+#
 # SafeNet crypto driver: can be moved to the MI NOTES as soon as
 # it's tested on a big-endian machine
 #

Modified: user/andre/tcp_workqueue/sys/amd64/include/atomic.h
==============================================================================
--- user/andre/tcp_workqueue/sys/amd64/include/atomic.h	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/amd64/include/atomic.h	Fri Oct 19 13:05:51 2012	(r241732)
@@ -226,7 +226,7 @@ atomic_fetchadd_long(volatile u_long *p,
 static __inline void					\
 atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\
 {							\
-	__asm __volatile("" : : : "memory");		\
+	__compiler_membar();				\
 	*p = v;						\
 }							\
 struct __hack
@@ -240,7 +240,7 @@ atomic_load_acq_##TYPE(volatile u_##TYPE
 	u_##TYPE tmp;					\
 							\
 	tmp = *p;					\
-	__asm __volatile("" : : : "memory");		\
+	__compiler_membar();				\
 	return (tmp);					\
 }							\
 struct __hack

Modified: user/andre/tcp_workqueue/sys/amd64/include/intr_machdep.h
==============================================================================
--- user/andre/tcp_workqueue/sys/amd64/include/intr_machdep.h	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/amd64/include/intr_machdep.h	Fri Oct 19 13:05:51 2012	(r241732)
@@ -140,7 +140,9 @@ int	elcr_probe(void);
 enum intr_trigger elcr_read_trigger(u_int irq);
 void	elcr_resume(void);
 void	elcr_write_trigger(u_int irq, enum intr_trigger trigger);
+#ifdef SMP
 void	intr_add_cpu(u_int cpu);
+#endif
 int	intr_add_handler(const char *name, int vector, driver_filter_t filter, 
 			 driver_intr_t handler, void *arg, enum intr_type flags, 
 			 void **cookiep);    

Modified: user/andre/tcp_workqueue/sys/amd64/include/pc/bios.h
==============================================================================
--- user/andre/tcp_workqueue/sys/amd64/include/pc/bios.h	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/amd64/include/pc/bios.h	Fri Oct 19 13:05:51 2012	(r241732)
@@ -30,16 +30,9 @@
 #ifndef _MACHINE_PC_BIOS_H_
 #define _MACHINE_PC_BIOS_H_
 
-extern u_int32_t	bios_sigsearch(u_int32_t start, u_char *sig, int siglen, 
-					 int paralen, int sigofs);
-
-#define BIOS_PADDRTOVADDR(x)	((x) + KERNBASE)
-#define BIOS_VADDRTOPADDR(x)	((x) - KERNBASE)
-
 /*
  * Int 15:E820 'SMAP' structure
  */
-
 #define SMAP_SIG	0x534D4150			/* 'SMAP' */
 
 #define	SMAP_TYPE_MEMORY	1
@@ -58,22 +51,61 @@ struct bios_smap {
     u_int32_t	type;
 } __packed;
 
+/*
+ * System Management BIOS
+ */
+#define	SMBIOS_START	0xf0000
+#define	SMBIOS_STEP	0x10
+#define	SMBIOS_OFF	0
+#define	SMBIOS_LEN	4
+#define	SMBIOS_SIG	"_SM_"
+
+struct smbios_eps {
+	uint8_t		anchor_string[4];		/* '_SM_' */
+	uint8_t		checksum;
+	uint8_t		length;
+	uint8_t		major_version;
+	uint8_t		minor_version;
+	uint16_t	maximum_structure_size;
+	uint8_t		entry_point_revision;
+	uint8_t		formatted_area[5];
+	uint8_t		intermediate_anchor_string[5];	/* '_DMI_' */
+	uint8_t		intermediate_checksum;
+	uint16_t	structure_table_length;
+	uint32_t	structure_table_address;
+	uint16_t	number_structures;
+	uint8_t		BCD_revision;
+};
+
+struct smbios_structure_header {
+	uint8_t		type;
+	uint8_t		length;
+	uint16_t	handle;
+};
+
+#ifdef _KERNEL
+#define BIOS_PADDRTOVADDR(x)	((x) + KERNBASE)
+#define BIOS_VADDRTOPADDR(x)	((x) - KERNBASE)
+
 struct bios_oem_signature {
 	char * anchor;		/* search anchor string in BIOS memory */
 	size_t offset;		/* offset from anchor (may be negative) */
 	size_t totlen;		/* total length of BIOS string to copy */
 } __packed;
+
 struct bios_oem_range {
 	u_int from;		/* shouldn't be below 0xe0000 */
 	u_int to;		/* shouldn't be above 0xfffff */
 } __packed;
+
 struct bios_oem {
 	struct bios_oem_range range;
 	struct bios_oem_signature signature[];
 } __packed;
 
-extern int
-bios_oem_strings(struct bios_oem *oem, u_char *buffer, size_t maxlen);
-
+int	bios_oem_strings(struct bios_oem *oem, u_char *buffer, size_t maxlen);
+uint32_t bios_sigsearch(uint32_t start, u_char *sig, int siglen, int paralen,
+	    int sigofs);
+#endif
 
 #endif /* _MACHINE_PC_BIOS_H_ */

Modified: user/andre/tcp_workqueue/sys/amd64/pci/pci_cfgreg.c
==============================================================================
--- user/andre/tcp_workqueue/sys/amd64/pci/pci_cfgreg.c	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/amd64/pci/pci_cfgreg.c	Fri Oct 19 13:05:51 2012	(r241732)
@@ -295,6 +295,13 @@ pcie_cfgregopen(uint64_t base, uint8_t m
 	return (1);
 }
 
+/*
+ * AMD BIOS And Kernel Developer's Guides for CPU families starting with 10h
+ * have a requirement that all accesses to the memory mapped PCI configuration
+ * space are done using AX class of registers.
+ * Since other vendors do not currently have any contradicting requirements
+ * the AMD access pattern is applied universally.
+ */
 #define PCIE_VADDR(base, reg, bus, slot, func)	\
 	((base)				+	\
 	((((bus) & 0xff) << 20)		|	\
@@ -317,13 +324,16 @@ pciereg_cfgread(int bus, unsigned slot, 
 
 	switch (bytes) {
 	case 4:
-		data = *(volatile uint32_t *)(va);
+		__asm __volatile("mov %1, %%eax" : "=a" (data)
+		    : "m" (*(uint32_t *)va));
 		break;
 	case 2:
-		data = *(volatile uint16_t *)(va);
+		__asm __volatile("movzwl %1, %%eax" : "=a" (data)
+		    : "m" (*(uint16_t *)va));
 		break;
 	case 1:
-		data = *(volatile uint8_t *)(va);
+		__asm __volatile("movzbl %1, %%eax" : "=a" (data)
+		    : "m" (*(uint8_t *)va));
 		break;
 	}
 
@@ -344,13 +354,16 @@ pciereg_cfgwrite(int bus, unsigned slot,
 
 	switch (bytes) {
 	case 4:
-		*(volatile uint32_t *)(va) = data;
+		__asm __volatile("mov %%eax, %0" : "=m" (*(uint32_t *)va)
+		    : "a" (data));
 		break;
 	case 2:
-		*(volatile uint16_t *)(va) = data;
+		__asm __volatile("mov %%ax, %0" : "=m" (*(uint16_t *)va)
+		    : "a" (data));
 		break;
 	case 1:
-		*(volatile uint8_t *)(va) = data;
+		__asm __volatile("mov %%al, %0" : "=m" (*(uint8_t *)va)
+		    : "a" (data));
 		break;
 	}
 }

Modified: user/andre/tcp_workqueue/sys/arm/arm/cpufunc.c
==============================================================================
--- user/andre/tcp_workqueue/sys/arm/arm/cpufunc.c	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/arm/arm/cpufunc.c	Fri Oct 19 13:05:51 2012	(r241732)
@@ -1415,6 +1415,7 @@ set_cpufuncs()
 #if defined(CPU_MV_PJ4B)
 	if (cputype == CPU_ID_MV88SV581X_V6 ||
 	    cputype == CPU_ID_MV88SV581X_V7 ||
+	    cputype == CPU_ID_MV88SV584X_V7 ||
 	    cputype == CPU_ID_ARM_88SV581X_V6 ||
 	    cputype == CPU_ID_ARM_88SV581X_V7) {
 		if (cpu_pfr(0) & ARM_PFR0_THUMBEE_MASK)
@@ -1425,8 +1426,8 @@ set_cpufuncs()
 		get_cachetype_cp15();
 		pmap_pte_init_mmu_v6();
 		goto out;
-	} else if (cputype == CPU_ID_ARM_88SV584X ||
-	    cputype == CPU_ID_MV88SV584X) {
+	} else if (cputype == CPU_ID_ARM_88SV584X_V6 ||
+	    cputype == CPU_ID_MV88SV584X_V6) {
 		cpufuncs = pj4bv6_cpufuncs;
 		get_cachetype_cp15();
 		pmap_pte_init_mmu_v6();

Modified: user/andre/tcp_workqueue/sys/arm/arm/identcpu.c
==============================================================================
--- user/andre/tcp_workqueue/sys/arm/arm/identcpu.c	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/arm/arm/identcpu.c	Fri Oct 19 13:05:51 2012	(r241732)
@@ -321,9 +321,11 @@ const struct cpuidtab cpuids[] = {
 	  generic_steppings },
 	{ CPU_ID_ARM_88SV581X_V7, CPU_CLASS_MARVELL,	"Sheeva 88SV581x",
 	  generic_steppings },
-	{ CPU_ID_MV88SV584X,	CPU_CLASS_MARVELL,	"Sheeva 88SV584x",
+	{ CPU_ID_MV88SV584X_V6,	CPU_CLASS_MARVELL,	"Sheeva 88SV584x",
 	  generic_steppings },
-	{ CPU_ID_ARM_88SV584X,	CPU_CLASS_MARVELL,	"Sheeva 88SV584x",
+	{ CPU_ID_ARM_88SV584X_V6, CPU_CLASS_MARVELL,	"Sheeva 88SV584x",
+	  generic_steppings },
+	{ CPU_ID_MV88SV584X_V7,	CPU_CLASS_MARVELL,	"Sheeva 88SV584x",
 	  generic_steppings },
 
 	{ 0, CPU_CLASS_NONE, NULL, NULL }

Modified: user/andre/tcp_workqueue/sys/arm/arm/machdep.c
==============================================================================
--- user/andre/tcp_workqueue/sys/arm/arm/machdep.c	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/arm/arm/machdep.c	Fri Oct 19 13:05:51 2012	(r241732)
@@ -948,3 +948,16 @@ init_proc0(vm_offset_t kstack)
 	thread0.td_frame = &proc0_tf;
 	pcpup->pc_curpcb = thread0.td_pcb;
 }
+
+void
+set_stackptrs(int cpu)
+{
+
+	set_stackptr(PSR_IRQ32_MODE,
+	    irqstack.pv_va + ((IRQ_STACK_SIZE * PAGE_SIZE) * (cpu + 1)));
+	set_stackptr(PSR_ABT32_MODE,
+	    abtstack.pv_va + ((ABT_STACK_SIZE * PAGE_SIZE) * (cpu + 1)));
+	set_stackptr(PSR_UND32_MODE,
+	    undstack.pv_va + ((UND_STACK_SIZE * PAGE_SIZE) * (cpu + 1)));
+}
+

Modified: user/andre/tcp_workqueue/sys/arm/arm/pmap-v6.c
==============================================================================
--- user/andre/tcp_workqueue/sys/arm/arm/pmap-v6.c	Fri Oct 19 12:44:22 2012	(r241731)
+++ user/andre/tcp_workqueue/sys/arm/arm/pmap-v6.c	Fri Oct 19 13:05:51 2012	(r241732)
@@ -148,15 +148,19 @@ __FBSDID("$FreeBSD$");
 #include <sys/systm.h>
 #include <sys/kernel.h>
 #include <sys/ktr.h>
+#include <sys/lock.h>
 #include <sys/proc.h>
 #include <sys/malloc.h>
 #include <sys/msgbuf.h>
+#include <sys/mutex.h>
 #include <sys/vmmeter.h>
 #include <sys/mman.h>
+#include <sys/rwlock.h>
 #include <sys/smp.h>
 #include <sys/sched.h>
 
 #include <vm/vm.h>
+#include <vm/vm_param.h>
 #include <vm/uma.h>
 #include <vm/pmap.h>
 #include <vm/vm_kern.h>
@@ -164,12 +168,9 @@ __FBSDID("$FreeBSD$");
 #include <vm/vm_map.h>
 #include <vm/vm_page.h>
 #include <vm/vm_pageout.h>
-#include <vm/vm_param.h>
 #include <vm/vm_extern.h>
-#include <sys/lock.h>
-#include <sys/mutex.h>
+
 #include <machine/md_var.h>
-#include <machine/vmparam.h>
 #include <machine/cpu.h>
 #include <machine/cpufunc.h>
 #include <machine/pcb.h>
@@ -202,6 +203,7 @@ static pv_entry_t pmap_get_pv_entry(void
 
 static void		pmap_enter_locked(pmap_t, vm_offset_t, vm_page_t,
     vm_prot_t, boolean_t, int);
+static vm_paddr_t	pmap_extract_locked(pmap_t pmap, vm_offset_t va);
 static void		pmap_alloc_l1(pmap_t);
 static void		pmap_free_l1(pmap_t);
 
@@ -219,7 +221,6 @@ vm_offset_t virtual_end;	/* VA of last a
 vm_offset_t pmap_curmaxkvaddr;
 vm_paddr_t kernel_l1pa;
 
-extern void *end;
 vm_offset_t kernel_vm_end = 0;
 
 struct pmap kernel_pmap_store;
@@ -246,13 +247,6 @@ pt_entry_t	pte_l2_l_cache_mode_pt;
 pt_entry_t	pte_l2_s_cache_mode;
 pt_entry_t	pte_l2_s_cache_mode_pt;
 
-/*
- * Which pmap is currently 'live' in the cache
- *
- * XXXSCW: Fix for SMP ...
- */
-union pmap_cache_state *pmap_cache_state;
-
 struct msgbuf *msgbufp = 0;
 
 /*
@@ -263,8 +257,6 @@ static caddr_t crashdumpmap;
 extern void bcopy_page(vm_offset_t, vm_offset_t);
 extern void bzero_page(vm_offset_t);
 
-extern vm_offset_t alloc_firstaddr;
-
 char *_tmppt;
 
 /*
@@ -357,14 +349,6 @@ struct l2_dtable {
 #define	L2_NEXT_BUCKET(va)	(((va) & L1_S_FRAME) + L1_S_SIZE)
 
 /*
- * L2 allocation.
- */
-#define	pmap_alloc_l2_dtable()		\
-		(void*)uma_zalloc(l2table_zone, M_NOWAIT|M_USE_RESERVE)
-#define	pmap_free_l2_dtable(l2)		\
-		uma_zfree(l2table_zone, l2)
-
-/*
  * We try to map the page tables write-through, if possible.  However, not
  * all CPUs have a write-through cache mode, so on those we have to sync
  * the cache when we frob page tables.
@@ -400,6 +384,7 @@ static vm_offset_t pmap_kernel_l2ptp_kva
 static vm_paddr_t pmap_kernel_l2ptp_phys;
 static struct vm_object pvzone_obj;
 static int pv_entry_count=0, pv_entry_max=0, pv_entry_high_water=0;
+static struct rwlock pvh_global_lock;
 
 int l1_mem_types[] = {
 	ARM_L1S_STRONG_ORD,
@@ -613,36 +598,29 @@ pmap_alloc_l2_bucket(pmap_t pm, vm_offse
 	l1idx = L1_IDX(va);
 
 	PMAP_ASSERT_LOCKED(pm);
-	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	rw_assert(&pvh_global_lock, RA_WLOCKED);
 	if ((l2 = pm->pm_l2[L2_IDX(l1idx)]) == NULL) {
 		/*
 		 * No mapping at this address, as there is
 		 * no entry in the L1 table.
 		 * Need to allocate a new l2_dtable.
 		 */
-again_l2table:
 		PMAP_UNLOCK(pm);
-		vm_page_unlock_queues();
-		if ((l2 = pmap_alloc_l2_dtable()) == NULL) {
-			vm_page_lock_queues();
+		rw_wunlock(&pvh_global_lock);
+		if ((l2 = uma_zalloc(l2table_zone, M_NOWAIT)) == NULL) {
+			rw_wlock(&pvh_global_lock);
 			PMAP_LOCK(pm);
 			return (NULL);
 		}
-		vm_page_lock_queues();
+		rw_wlock(&pvh_global_lock);
 		PMAP_LOCK(pm);
 		if (pm->pm_l2[L2_IDX(l1idx)] != NULL) {
-			PMAP_UNLOCK(pm);
-			vm_page_unlock_queues();
-			uma_zfree(l2table_zone, l2);
-			vm_page_lock_queues();
-			PMAP_LOCK(pm);
-			l2 = pm->pm_l2[L2_IDX(l1idx)];
-			if (l2 == NULL)
-				goto again_l2table;
 			/*
 			 * Someone already allocated the l2_dtable while
 			 * we were doing the same.
 			 */
+			uma_zfree(l2table_zone, l2);
+			l2 = pm->pm_l2[L2_IDX(l1idx)];
 		} else {
 			bzero(l2, sizeof(*l2));
 			/*
@@ -664,21 +642,14 @@ again_l2table:
 		 * No L2 page table has been allocated. Chances are, this
 		 * is because we just allocated the l2_dtable, above.
 		 */
-again_ptep:
 		PMAP_UNLOCK(pm);
-		vm_page_unlock_queues();
-		ptep = (void*)uma_zalloc(l2zone, M_NOWAIT|M_USE_RESERVE);
-		vm_page_lock_queues();
+		rw_wunlock(&pvh_global_lock);
+		ptep = uma_zalloc(l2zone, M_NOWAIT);
+		rw_wlock(&pvh_global_lock);
 		PMAP_LOCK(pm);
 		if (l2b->l2b_kva != 0) {
 			/* We lost the race. */
-			PMAP_UNLOCK(pm);
-			vm_page_unlock_queues();
 			uma_zfree(l2zone, ptep);
-			vm_page_lock_queues();
-			PMAP_LOCK(pm);
-			if (l2b->l2b_kva == 0)
-				goto again_ptep;
 			return (l2b);
 		}
 		l2b->l2b_phys = vtophys(ptep);
@@ -690,7 +661,7 @@ again_ptep:
 			 */
 			if (l2->l2_occupancy == 0) {
 				pm->pm_l2[L2_IDX(l1idx)] = NULL;
-				pmap_free_l2_dtable(l2);
+				uma_zfree(l2table_zone, l2);
 			}
 			return (NULL);
 		}
@@ -788,7 +759,7 @@ pmap_free_l2_bucket(pmap_t pm, struct l2
 	 * the pointer in the parent pmap and free the l2_dtable.
 	 */
 	pm->pm_l2[L2_IDX(l1idx)] = NULL;
-	pmap_free_l2_dtable(l2);
+	uma_zfree(l2table_zone, l2);
 }
 
 /*
@@ -851,7 +822,7 @@ pmap_clearbit(struct vm_page *pg, u_int 
 	u_int oflags;
 	int count = 0;
 
-	vm_page_lock_queues();
+	rw_wlock(&pvh_global_lock);
 
 	if (maskbits & PVF_WRITE)
 		maskbits |= PVF_MOD;
@@ -861,7 +832,7 @@ pmap_clearbit(struct vm_page *pg, u_int 
 	pg->md.pvh_attrs &= ~(maskbits & (PVF_MOD | PVF_REF));
 
 	if (TAILQ_EMPTY(&pg->md.pv_list)) {
-		vm_page_unlock_queues();
+		rw_wunlock(&pvh_global_lock);
 		return (0);
 	}
 
@@ -917,7 +888,7 @@ pmap_clearbit(struct vm_page *pg, u_int 
 
 	if (maskbits & PVF_WRITE)
 		vm_page_aflag_clear(pg, PGA_WRITEABLE);
-	vm_page_unlock_queues();
+	rw_wunlock(&pvh_global_lock);
 	return (count);
 }
 
@@ -927,15 +898,15 @@ pmap_clearbit(struct vm_page *pg, u_int 
  *   pmap_remove_pv: remove a mappiing from a vm_page list
  *
  * NOTE: pmap_enter_pv expects to lock the pvh itself
- *       pmap_remove_pv expects te caller to lock the pvh before calling
+ *       pmap_remove_pv expects the caller to lock the pvh before calling
  */
 
 /*
- * pmap_enter_pv: enter a mapping onto a vm_page lst
+ * pmap_enter_pv: enter a mapping onto a vm_page's PV list
  *
- * => caller should hold the proper lock on pmap_main_lock
+ * => caller should hold the proper lock on pvh_global_lock
  * => caller should have pmap locked
- * => we will gain the lock on the vm_page and allocate the new pv_entry
+ * => we will (someday) gain the lock on the vm_page's PV list
  * => caller should adjust ptp's wire_count before calling
  * => caller should not adjust pmap's wire_count
  */
@@ -944,7 +915,7 @@ pmap_enter_pv(struct vm_page *pg, struct
     vm_offset_t va, u_int flags)
 {
 
-	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	rw_assert(&pvh_global_lock, RA_WLOCKED);
 
 	PMAP_ASSERT_LOCKED(pm);
 	pve->pv_pmap = pm;
@@ -970,7 +941,7 @@ pmap_find_pv(struct vm_page *pg, pmap_t 
 {
 	struct pv_entry *pv;
 
-	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	rw_assert(&pvh_global_lock, RA_WLOCKED);
 	TAILQ_FOREACH(pv, &pg->md.pv_list, pv_list)
 	    if (pm == pv->pv_pmap && va == pv->pv_va)
 		    break;
@@ -1031,7 +1002,7 @@ static void
 pmap_nuke_pv(struct vm_page *pg, pmap_t pm, struct pv_entry *pve)
 {
 
-	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	rw_assert(&pvh_global_lock, RA_WLOCKED);
 	PMAP_ASSERT_LOCKED(pm);
 
 	TAILQ_REMOVE(&pg->md.pv_list, pve, pv_list);
@@ -1064,7 +1035,7 @@ pmap_remove_pv(struct vm_page *pg, pmap_
 {
 	struct pv_entry *pve;
 
-	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	rw_assert(&pvh_global_lock, RA_WLOCKED);
 	pve = TAILQ_FIRST(&pg->md.pv_list);
 
 	while (pve) {
@@ -1096,7 +1067,7 @@ pmap_modify_pv(struct vm_page *pg, pmap_
 	u_int flags, oflags;
 
 	PMAP_ASSERT_LOCKED(pm);
-	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	rw_assert(&pvh_global_lock, RA_WLOCKED);
 	if ((npv = pmap_find_pv(pg, pm, va)) == NULL)
 		return (0);
 
@@ -1174,28 +1145,25 @@ pmap_init(void)
 
 	PDEBUG(1, printf("pmap_init: phys_start = %08x\n", PHYSADDR));
 
+	l2zone = uma_zcreate("L2 Table", L2_TABLE_SIZE_REAL, pmap_l2ptp_ctor,
+	    NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
+	l2table_zone = uma_zcreate("L2 Table", sizeof(struct l2_dtable), NULL,
+	    NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
+
 	/*
-	 * init the pv free list
+	 * Initialize the PV entry allocator.
 	 */
 	pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL,
 	    NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
-	/*
-	 * Now it is safe to enable pv_table recording.
-	 */
-	PDEBUG(1, printf("pmap_init: done!\n"));
-
 	TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
-
 	pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;
-	pv_entry_high_water = 9 * (pv_entry_max / 10);
-	l2zone = uma_zcreate("L2 Table", L2_TABLE_SIZE_REAL, pmap_l2ptp_ctor,
-	    NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
-	l2table_zone = uma_zcreate("L2 Table", sizeof(struct l2_dtable),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
-	    UMA_ZONE_VM | UMA_ZONE_NOFREE);
-
 	uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max);
+	pv_entry_high_water = 9 * (pv_entry_max / 10);
 
+	/*
+	 * Now it is safe to enable pv_table recording.
+	 */
+	PDEBUG(1, printf("pmap_init: done!\n"));
 }
 
 int
@@ -1210,7 +1178,7 @@ pmap_fault_fixup(pmap_t pm, vm_offset_t 
 	int rv = 0;
 
 	l1idx = L1_IDX(va);
-	vm_page_lock_queues();
+	rw_wlock(&pvh_global_lock);
 	PMAP_LOCK(pm);
 
 	/*
@@ -1374,7 +1342,7 @@ pmap_fault_fixup(pmap_t pm, vm_offset_t 
 	rv = 1;
 
 out:
-	vm_page_unlock_queues();
+	rw_wunlock(&pvh_global_lock);
 	PMAP_UNLOCK(pm);
 	return (rv);
 }
@@ -1682,6 +1650,11 @@ pmap_bootstrap(vm_offset_t firstaddr, vm
 	TAILQ_INIT(&kernel_pmap->pm_pvlist);
 
 	/*
+	 * Initialize the global pv list lock.
+	 */
+	rw_init(&pvh_global_lock, "pmap pv global");
+
+	/*
 	 * Reserve some special page table entries/VA space for temporary
 	 * mapping of pages.
 	 */
@@ -1946,7 +1919,7 @@ pmap_remove_pages(pmap_t pmap)
 	vm_page_t m;
 	pt_entry_t *pt;
 
-	vm_page_lock_queues();
+	rw_wlock(&pvh_global_lock);
 	PMAP_LOCK(pmap);
 	for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) {
 		if (pv->pv_flags & PVF_WIRED) {
@@ -1969,7 +1942,7 @@ pmap_remove_pages(pmap_t pmap)
 		pmap_free_pv_entry(pv);
 		pmap_free_l2_bucket(pmap, l2b, 1);
 	}
-	vm_page_unlock_queues();
+	rw_wunlock(&pvh_global_lock);
 	cpu_tlb_flushID();
 	cpu_cpwait();
 	PMAP_UNLOCK(pmap);
@@ -2120,6 +2093,13 @@ pmap_kenter_user(vm_offset_t va, vm_padd
 	pmap_fault_fixup(pmap_kernel(), va, VM_PROT_READ|VM_PROT_WRITE, 1);
 }
 
+vm_paddr_t
+pmap_kextract(vm_offset_t va)
+{
+
+	return (pmap_extract_locked(kernel_pmap, va));
+}
+
 /*
  * remove a page from the kernel pagetables
  */
@@ -2326,8 +2306,7 @@ pmap_remove_all(vm_page_t m)
 
 	if (TAILQ_EMPTY(&m->md.pv_list))
 		return;
-	vm_page_lock_queues();
-	pmap_remove_write(m);
+	rw_wlock(&pvh_global_lock);
 	curpm = vmspace_pmap(curproc->p_vmspace);
 	while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) {
 		if (flush == FALSE && (pv->pv_pmap == curpm ||
@@ -2338,6 +2317,8 @@ pmap_remove_all(vm_page_t m)
 		l2b = pmap_get_l2_bucket(pv->pv_pmap, pv->pv_va);
 		KASSERT(l2b != NULL, ("No l2 bucket"));
 		ptep = &l2b->l2b_kva[l2pte_index(pv->pv_va)];
+		if (L2_S_WRITABLE(*ptep))
+			vm_page_dirty(m);
 		*ptep = 0;
 		if (pmap_is_current(pv->pv_pmap))
 			PTE_SYNC(ptep);
@@ -2348,6 +2329,7 @@ pmap_remove_all(vm_page_t m)
 		PMAP_UNLOCK(pv->pv_pmap);
 		pmap_free_pv_entry(pv);
 	}
+	m->md.pvh_attrs &= ~(PVF_MOD | PVF_REF);
 
 	if (flush) {
 		if (PV_BEEN_EXECD(flags))
@@ -2356,7 +2338,7 @@ pmap_remove_all(vm_page_t m)
 			cpu_tlb_flushD();
 	}
 	vm_page_aflag_clear(m, PGA_WRITEABLE);
-	vm_page_unlock_queues();
+	rw_wunlock(&pvh_global_lock);
 }
 
 int
@@ -2444,7 +2426,7 @@ pmap_protect(pmap_t pm, vm_offset_t sva,
 		return;
 	}
 
-	vm_page_lock_queues();
+	rw_wlock(&pvh_global_lock);
 	PMAP_LOCK(pm);
 
 	/*
@@ -2506,7 +2488,7 @@ pmap_protect(pmap_t pm, vm_offset_t sva,
 		if (PV_BEEN_REFD(flags))
 			cpu_tlb_flushD();
 	}
-	vm_page_unlock_queues();
+	rw_wunlock(&pvh_global_lock);
 
 	PMAP_UNLOCK(pm);
 }
@@ -2530,15 +2512,15 @@ pmap_enter(pmap_t pmap, vm_offset_t va, 
     vm_prot_t prot, boolean_t wired)
 {
 
-	vm_page_lock_queues();
+	rw_wlock(&pvh_global_lock);
 	PMAP_LOCK(pmap);
 	pmap_enter_locked(pmap, va, m, prot, wired, M_WAITOK);
 	PMAP_UNLOCK(pmap);
-	vm_page_unlock_queues();
+	rw_wunlock(&pvh_global_lock);
 }
 
 /*
- *	The page queues and pmap must be locked.
+ *	The pvh global and pmap locks must be held.
  */
 static void
 pmap_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot,
@@ -2554,7 +2536,7 @@ pmap_enter_locked(pmap_t pmap, vm_offset
 	u_char user;
 
 	PMAP_ASSERT_LOCKED(pmap);
-	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	rw_assert(&pvh_global_lock, RA_WLOCKED);
 	if (va == vector_page) {
 		pa = systempage.pv_pa;
 		m = NULL;
@@ -2594,9 +2576,9 @@ do_l2b_alloc:
 		if (l2b == NULL) {
 			if (flags & M_WAITOK) {
 				PMAP_UNLOCK(pmap);
-				vm_page_unlock_queues();
+				rw_wunlock(&pvh_global_lock);
 				VM_WAIT;
-				vm_page_lock_queues();
+				rw_wlock(&pvh_global_lock);
 				PMAP_LOCK(pmap);
 				goto do_l2b_alloc;
 			}
@@ -2789,7 +2771,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
 
 	psize = atop(end - start);
 	m = m_start;
-	vm_page_lock_queues();
+	rw_wlock(&pvh_global_lock);
 	PMAP_LOCK(pmap);
 	while (m != NULL && (diff = m->pindex - m_start->pindex) < psize) {
 		pmap_enter_locked(pmap, start + ptoa(diff), m, prot &
@@ -2797,7 +2779,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
 		m = TAILQ_NEXT(m, listq);
 	}
 	PMAP_UNLOCK(pmap);
-	vm_page_unlock_queues();
+	rw_wunlock(&pvh_global_lock);
 }
 
 /*
@@ -2813,12 +2795,12 @@ void
 pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot)
 {
 
-	vm_page_lock_queues();
+	rw_wlock(&pvh_global_lock);
 	PMAP_LOCK(pmap);
 	pmap_enter_locked(pmap, va, m, prot & (VM_PROT_READ | VM_PROT_EXECUTE),
 	    FALSE, M_NOWAIT);
 	PMAP_UNLOCK(pmap);
-	vm_page_unlock_queues();
+	rw_wunlock(&pvh_global_lock);
 }
 
 /*
@@ -2835,7 +2817,7 @@ pmap_change_wiring(pmap_t pmap, vm_offse
 	pt_entry_t *ptep, pte;
 	vm_page_t pg;
 
-	vm_page_lock_queues();
+	rw_wlock(&pvh_global_lock);
 	PMAP_LOCK(pmap);
 	l2b = pmap_get_l2_bucket(pmap, va);
 	KASSERT(l2b, ("No l2b bucket in pmap_change_wiring"));
@@ -2844,7 +2826,7 @@ pmap_change_wiring(pmap_t pmap, vm_offse
 	pg = PHYS_TO_VM_PAGE(l2pte_pa(pte));
 	if (pg)
 		pmap_modify_pv(pg, pmap, va, PVF_WIRED, wired);
-	vm_page_unlock_queues();
+	rw_wunlock(&pvh_global_lock);
 	PMAP_UNLOCK(pmap);
 }
 
@@ -2870,22 +2852,34 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pm
  *		with the given map/virtual_address pair.
  */
 vm_paddr_t
-pmap_extract(pmap_t pm, vm_offset_t va)
+pmap_extract(pmap_t pmap, vm_offset_t va)
+{
+	vm_paddr_t pa;
+
+	PMAP_LOCK(pmap);
+	pa = pmap_extract_locked(pmap, va);
+	PMAP_UNLOCK(pmap);
+	return (pa);
+}
+
+static vm_paddr_t
+pmap_extract_locked(pmap_t pmap, vm_offset_t va)
 {
 	struct l2_dtable *l2;
 	pd_entry_t l1pd;
 	pt_entry_t *ptep, pte;
 	vm_paddr_t pa;
 	u_int l1idx;
-	l1idx = L1_IDX(va);
 
-	PMAP_LOCK(pm);
-	l1pd = pm->pm_l1->l1_kva[l1idx];
+	if (pmap != kernel_pmap)
+		PMAP_ASSERT_LOCKED(pmap);
+	l1idx = L1_IDX(va);
+	l1pd = pmap->pm_l1->l1_kva[l1idx];
 	if (l1pte_section_p(l1pd)) {
 		/*
-		 * These should only happen for pmap_kernel()
+		 * These should only happen for the kernel pmap.
 		 */
-		KASSERT(pm == pmap_kernel(), ("huh"));
+		KASSERT(pmap == kernel_pmap, ("unexpected section"));
 		/* XXX: what to do about the bits > 32 ? */
 		if (l1pd & L1_S_SUPERSEC)
 			pa = (l1pd & L1_SUP_FRAME) | (va & L1_SUP_OFFSET);
@@ -2897,34 +2891,22 @@ pmap_extract(pmap_t pm, vm_offset_t va)
 		 * descriptor as an indication that a mapping exists.
 		 * We have to look it up in the L2 dtable.
 		 */
-		l2 = pm->pm_l2[L2_IDX(l1idx)];
-
+		l2 = pmap->pm_l2[L2_IDX(l1idx)];
 		if (l2 == NULL ||
-		    (ptep = l2->l2_bucket[L2_BUCKET(l1idx)].l2b_kva) == NULL) {
-			PMAP_UNLOCK(pm);
+		    (ptep = l2->l2_bucket[L2_BUCKET(l1idx)].l2b_kva) == NULL)
 			return (0);
-		}
-
-		ptep = &ptep[l2pte_index(va)];
-		pte = *ptep;
-
-		if (pte == 0) {
-			PMAP_UNLOCK(pm);
+		pte = ptep[l2pte_index(va)];
+		if (pte == 0)
 			return (0);
-		}
-
 		switch (pte & L2_TYPE_MASK) {
 		case L2_TYPE_L:
 			pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET);
 			break;
-
 		default:
 			pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET);
 			break;
 		}
 	}
-
-	PMAP_UNLOCK(pm);
 	return (pa);
 }
 
@@ -3091,7 +3073,7 @@ pmap_remove(pmap_t pm, vm_offset_t sva, 
 	 * we lock in the pmap => pv_head direction
 	 */
 
-	vm_page_lock_queues();
+	rw_wlock(&pvh_global_lock);
 	PMAP_LOCK(pm);
 	total = 0;
 	while (sva < eva) {
@@ -3170,7 +3152,7 @@ pmap_remove(pmap_t pm, vm_offset_t sva, 
 		pmap_free_l2_bucket(pm, l2b, mappings);
 	}
 
-	vm_page_unlock_queues();
+	rw_wunlock(&pvh_global_lock);
 	if (flushall)
 		cpu_tlb_flushID();
 	PMAP_UNLOCK(pm);
@@ -3323,7 +3305,7 @@ pmap_page_exists_quick(pmap_t pmap, vm_p
 	KASSERT((m->oflags & VPO_UNMANAGED) == 0,
 	    ("pmap_page_exists_quick: page %p is not managed", m));
 	rv = FALSE;
-	vm_page_lock_queues();
+	rw_wlock(&pvh_global_lock);
 	TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
 		if (pv->pv_pmap == pmap) {
 			rv = TRUE;
@@ -3334,7 +3316,7 @@ pmap_page_exists_quick(pmap_t pmap, vm_p
 			break;
 	}
 
-	vm_page_unlock_queues();
+	rw_wunlock(&pvh_global_lock);
 	return (rv);
 }
 
@@ -3353,11 +3335,11 @@ pmap_page_wired_mappings(vm_page_t m)
 	count = 0;
 	if ((m->flags & PG_FICTITIOUS) != 0)

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


More information about the svn-src-user mailing list