From owner-svn-src-projects@FreeBSD.ORG Sat May 23 13:44:38 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E8BBA1065670; Sat, 23 May 2009 13:44:38 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D23738FC1D; Sat, 23 May 2009 13:44:38 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NDicM5057137; Sat, 23 May 2009 13:44:38 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NDicOI057129; Sat, 23 May 2009 13:44:38 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905231344.n4NDicOI057129@svn.freebsd.org> From: Robert Watson Date: Sat, 23 May 2009 13:44:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192637 - in projects/pnet/sys: . amd64/amd64 amd64/conf amd64/include amd64/isa amd64/linux32 amd64/pci arm/arm arm/at91 arm/conf arm/include arm/xscale/ixp425 boot/forth boot/i386/zfs... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 13:44:39 -0000 Author: rwatson Date: Sat May 23 13:44:37 2009 New Revision: 192637 URL: http://svn.freebsd.org/changeset/base/192637 Log: Merge head/sys through r191381-r192635 to the pnet development branch. Added: projects/pnet/sys/amd64/amd64/mca.c - copied unchanged from r192635, head/sys/amd64/amd64/mca.c projects/pnet/sys/amd64/include/mca.h - copied unchanged from r192635, head/sys/amd64/include/mca.h projects/pnet/sys/arm/at91/at91_cfata.c - copied unchanged from r192635, head/sys/arm/at91/at91_cfata.c projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c - copied unchanged from r192635, head/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c projects/pnet/sys/contrib/dev/iwi/Makefile - copied unchanged from r192635, head/sys/contrib/dev/iwi/Makefile projects/pnet/sys/dev/bwi/ - copied from r192635, head/sys/dev/bwi/ projects/pnet/sys/dev/usb/controller/avr32dci.c - copied unchanged from r192635, head/sys/dev/usb/controller/avr32dci.c projects/pnet/sys/dev/usb/controller/avr32dci.h - copied unchanged from r192635, head/sys/dev/usb/controller/avr32dci.h projects/pnet/sys/dev/usb/wlan/if_upgt.c - copied unchanged from r192635, head/sys/dev/usb/wlan/if_upgt.c projects/pnet/sys/dev/usb/wlan/if_upgtvar.h - copied unchanged from r192635, head/sys/dev/usb/wlan/if_upgtvar.h projects/pnet/sys/fs/nfs/ - copied from r192635, head/sys/fs/nfs/ projects/pnet/sys/fs/nfsclient/ - copied from r192635, head/sys/fs/nfsclient/ projects/pnet/sys/fs/nfsserver/ - copied from r192635, head/sys/fs/nfsserver/ projects/pnet/sys/i386/i386/mca.c - copied unchanged from r192635, head/sys/i386/i386/mca.c projects/pnet/sys/i386/include/mca.h - copied unchanged from r192635, head/sys/i386/include/mca.h projects/pnet/sys/modules/bwi/ - copied from r192635, head/sys/modules/bwi/ projects/pnet/sys/modules/usb/upgt/ - copied from r192635, head/sys/modules/usb/upgt/ projects/pnet/sys/net/if_dead.c - copied unchanged from r192635, head/sys/net/if_dead.c projects/pnet/sys/net80211/ieee80211_radiotap.c - copied unchanged from r192635, head/sys/net80211/ieee80211_radiotap.c projects/pnet/sys/netinet6/in6_mcast.c - copied unchanged from r192635, head/sys/netinet6/in6_mcast.c projects/pnet/sys/netinet6/mld6.h - copied unchanged from r192635, head/sys/netinet6/mld6.h projects/pnet/sys/pc98/include/mca.h - copied unchanged from r192635, head/sys/pc98/include/mca.h projects/pnet/sys/powerpc/aim/platform_chrp.c - copied unchanged from r192635, head/sys/powerpc/aim/platform_chrp.c projects/pnet/sys/powerpc/booke/mp_cpudep.c - copied unchanged from r192635, head/sys/powerpc/booke/mp_cpudep.c projects/pnet/sys/powerpc/booke/platform_bare.c - copied unchanged from r192635, head/sys/powerpc/booke/platform_bare.c projects/pnet/sys/powerpc/include/platform.h - copied unchanged from r192635, head/sys/powerpc/include/platform.h projects/pnet/sys/powerpc/include/platformvar.h - copied unchanged from r192635, head/sys/powerpc/include/platformvar.h projects/pnet/sys/powerpc/mpc85xx/atpic.c - copied unchanged from r192635, head/sys/powerpc/mpc85xx/atpic.c projects/pnet/sys/powerpc/mpc85xx/isa.c - copied unchanged from r192635, head/sys/powerpc/mpc85xx/isa.c projects/pnet/sys/powerpc/powerpc/platform.c - copied unchanged from r192635, head/sys/powerpc/powerpc/platform.c projects/pnet/sys/powerpc/powerpc/platform_if.m - copied unchanged from r192635, head/sys/powerpc/powerpc/platform_if.m Deleted: projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/amd64/atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/i386/atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/ia64/atomic.S projects/pnet/sys/cddl/contrib/opensolaris/common/atomic/sparc64/atomic.S projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_array.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_mem.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/zmod/crc32.c projects/pnet/sys/cddl/dev/dtnfsclient/ projects/pnet/sys/compat/svr4/svr4_ttold.c projects/pnet/sys/compat/svr4/svr4_ttold.h projects/pnet/sys/dev/usb/README.TXT projects/pnet/sys/dev/usb/wlan/usb_wlan.h projects/pnet/sys/gnu/fs/xfs/FreeBSD/xfsdmapistubs.c projects/pnet/sys/gnu/fs/xfs/FreeBSD/xfsquotasstubs.c projects/pnet/sys/gnu/fs/xfs/FreeBSD/xfsrtstubs.c projects/pnet/sys/legacy/dev/usb/if_upgt.c projects/pnet/sys/legacy/dev/usb/if_upgtvar.h projects/pnet/sys/legacy/dev/usb/usb_ethersubr.c projects/pnet/sys/legacy/dev/usb/usb_ethersubr.h projects/pnet/sys/modules/ata/ata/ projects/pnet/sys/modules/nfs4client/ projects/pnet/sys/nfs4client/ projects/pnet/sys/powerpc/include/powerpc.h projects/pnet/sys/rpc/rpcclnt.c projects/pnet/sys/rpc/rpcclnt.h Modified: projects/pnet/sys/ (props changed) projects/pnet/sys/Makefile projects/pnet/sys/amd64/amd64/busdma_machdep.c projects/pnet/sys/amd64/amd64/identcpu.c projects/pnet/sys/amd64/amd64/local_apic.c projects/pnet/sys/amd64/amd64/machdep.c projects/pnet/sys/amd64/amd64/mp_machdep.c projects/pnet/sys/amd64/amd64/pmap.c projects/pnet/sys/amd64/amd64/trap.c projects/pnet/sys/amd64/conf/DEFAULTS projects/pnet/sys/amd64/conf/GENERIC projects/pnet/sys/amd64/conf/GENERIC.hints projects/pnet/sys/amd64/conf/NOTES projects/pnet/sys/amd64/conf/XENHVM projects/pnet/sys/amd64/include/apicvar.h projects/pnet/sys/amd64/include/clock.h projects/pnet/sys/amd64/include/param.h projects/pnet/sys/amd64/include/pcpu.h projects/pnet/sys/amd64/include/smp.h projects/pnet/sys/amd64/include/specialreg.h projects/pnet/sys/amd64/include/vmparam.h projects/pnet/sys/amd64/isa/clock.c projects/pnet/sys/amd64/linux32/linux.h projects/pnet/sys/amd64/linux32/linux32_sysvec.c projects/pnet/sys/amd64/pci/pci_cfgreg.c projects/pnet/sys/arm/arm/busdma_machdep.c projects/pnet/sys/arm/arm/cpufunc.c projects/pnet/sys/arm/arm/machdep.c projects/pnet/sys/arm/arm/pmap.c projects/pnet/sys/arm/at91/at91.c projects/pnet/sys/arm/at91/at91_machdep.c projects/pnet/sys/arm/at91/at91_spi.c projects/pnet/sys/arm/at91/at91rm92reg.h projects/pnet/sys/arm/at91/files.at91 projects/pnet/sys/arm/at91/if_ate.c projects/pnet/sys/arm/conf/AVILA projects/pnet/sys/arm/conf/BWCT projects/pnet/sys/arm/conf/CAMBRIA projects/pnet/sys/arm/conf/CRB projects/pnet/sys/arm/conf/DB-78XXX projects/pnet/sys/arm/conf/DB-88F5XXX projects/pnet/sys/arm/conf/DB-88F6XXX projects/pnet/sys/arm/conf/EP80219 projects/pnet/sys/arm/conf/GUMSTIX projects/pnet/sys/arm/conf/HL200 projects/pnet/sys/arm/conf/IQ31244 projects/pnet/sys/arm/conf/KB920X projects/pnet/sys/arm/conf/NSLU projects/pnet/sys/arm/conf/NSLU.hints projects/pnet/sys/arm/conf/SIMICS projects/pnet/sys/arm/conf/SKYEYE projects/pnet/sys/arm/include/pmap.h projects/pnet/sys/arm/xscale/ixp425/std.ixp435 (props changed) projects/pnet/sys/boot/forth/loader.conf projects/pnet/sys/boot/i386/zfsboot/zfsboot.c projects/pnet/sys/boot/uboot/lib/devicename.c projects/pnet/sys/boot/uboot/lib/disk.c projects/pnet/sys/boot/uboot/lib/libuboot.h projects/pnet/sys/boot/zfs/zfsimpl.c projects/pnet/sys/cam/cam_periph.c projects/pnet/sys/cam/scsi/scsi_pass.c projects/pnet/sys/cam/scsi/scsi_sg.c projects/pnet/sys/cddl/boot/zfs/README projects/pnet/sys/cddl/boot/zfs/zfsimpl.h projects/pnet/sys/cddl/boot/zfs/zfssubr.c (contents, props changed) projects/pnet/sys/cddl/compat/opensolaris/kern/opensolaris.c projects/pnet/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c projects/pnet/sys/cddl/compat/opensolaris/kern/opensolaris_misc.c projects/pnet/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c projects/pnet/sys/cddl/compat/opensolaris/kern/opensolaris_zone.c projects/pnet/sys/cddl/compat/opensolaris/sys/mutex.h projects/pnet/sys/cddl/compat/opensolaris/sys/rwlock.h projects/pnet/sys/cddl/compat/opensolaris/sys/vnode.h projects/pnet/sys/cddl/contrib/opensolaris/common/acl/acl_common.c projects/pnet/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c projects/pnet/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h projects/pnet/sys/compat/freebsd32/freebsd32_misc.c projects/pnet/sys/compat/freebsd32/freebsd32_proto.h projects/pnet/sys/compat/freebsd32/freebsd32_syscall.h projects/pnet/sys/compat/freebsd32/freebsd32_syscalls.c projects/pnet/sys/compat/freebsd32/freebsd32_sysent.c projects/pnet/sys/compat/freebsd32/syscalls.master projects/pnet/sys/compat/linux/linux_futex.c projects/pnet/sys/compat/linux/linux_futex.h projects/pnet/sys/compat/linux/linux_ioctl.c projects/pnet/sys/compat/linux/linux_mib.c projects/pnet/sys/compat/linux/linux_mib.h projects/pnet/sys/compat/linux/linux_misc.c projects/pnet/sys/compat/linux/linux_misc.h projects/pnet/sys/compat/linux/linux_socket.c projects/pnet/sys/compat/linux/linux_socket.h projects/pnet/sys/compat/linux/linux_stats.c projects/pnet/sys/compat/linux/linux_util.h projects/pnet/sys/compat/ndis/kern_windrv.c projects/pnet/sys/compat/ndis/subr_ndis.c projects/pnet/sys/compat/svr4/svr4_ioctl.c projects/pnet/sys/compat/svr4/svr4_ioctl.h projects/pnet/sys/compat/svr4/svr4_misc.c projects/pnet/sys/compat/svr4/svr4_proto.h projects/pnet/sys/compat/svr4/svr4_stat.c projects/pnet/sys/compat/svr4/svr4_syscall.h projects/pnet/sys/compat/svr4/svr4_syscallnames.c projects/pnet/sys/compat/svr4/svr4_sysent.c projects/pnet/sys/conf/NOTES projects/pnet/sys/conf/files projects/pnet/sys/conf/files.amd64 projects/pnet/sys/conf/files.i386 projects/pnet/sys/conf/files.pc98 projects/pnet/sys/conf/files.powerpc projects/pnet/sys/conf/kern.post.mk projects/pnet/sys/conf/options projects/pnet/sys/contrib/altq/altq/altq_subr.c projects/pnet/sys/contrib/dev/acpica/ (props changed) projects/pnet/sys/contrib/dev/iwi/ipw2200-bss.fw.uu projects/pnet/sys/contrib/dev/iwi/ipw2200-ibss.fw.uu projects/pnet/sys/contrib/dev/iwi/ipw2200-sniffer.fw.uu projects/pnet/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c projects/pnet/sys/dev/aac/aac.c projects/pnet/sys/dev/acpi_support/acpi_ibm.c projects/pnet/sys/dev/acpi_support/acpi_sony.c projects/pnet/sys/dev/acpica/acpi.c projects/pnet/sys/dev/acpica/acpi_cpu.c projects/pnet/sys/dev/age/if_age.c projects/pnet/sys/dev/aic/aic.c projects/pnet/sys/dev/amr/amr.c projects/pnet/sys/dev/amr/amr_linux.c projects/pnet/sys/dev/arcmsr/arcmsr.c projects/pnet/sys/dev/asr/asr.c projects/pnet/sys/dev/ata/ata-all.h projects/pnet/sys/dev/ata/ata-disk.c projects/pnet/sys/dev/ata/ata-pci.c projects/pnet/sys/dev/ata/ata-pci.h projects/pnet/sys/dev/ata/ata-queue.c projects/pnet/sys/dev/ata/ata-sata.c projects/pnet/sys/dev/ata/ata-usb.c projects/pnet/sys/dev/ata/atapi-cam.c projects/pnet/sys/dev/ata/atapi-tape.c projects/pnet/sys/dev/ata/chipsets/ata-acard.c projects/pnet/sys/dev/ata/chipsets/ata-ahci.c projects/pnet/sys/dev/ata/chipsets/ata-ati.c projects/pnet/sys/dev/ata/chipsets/ata-promise.c projects/pnet/sys/dev/ata/chipsets/ata-siliconimage.c projects/pnet/sys/dev/ath/ah_osdep.c projects/pnet/sys/dev/ath/ah_osdep.h projects/pnet/sys/dev/ath/ath_hal/ah.c projects/pnet/sys/dev/ath/ath_hal/ah.h projects/pnet/sys/dev/ath/ath_hal/ah_internal.h projects/pnet/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/pnet/sys/dev/ath/ath_hal/ar5210/ar5210_interrupts.c projects/pnet/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/pnet/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c projects/pnet/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/pnet/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c projects/pnet/sys/dev/ath/ath_hal/ar5212/ar5212reg.h projects/pnet/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/pnet/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/pnet/sys/dev/ath/if_ath.c projects/pnet/sys/dev/ath/if_ath_pci.c projects/pnet/sys/dev/ath/if_athvar.h projects/pnet/sys/dev/bce/if_bce.c projects/pnet/sys/dev/bce/if_bcereg.h projects/pnet/sys/dev/bge/if_bge.c projects/pnet/sys/dev/ciss/ciss.c projects/pnet/sys/dev/cxgb/common/cxgb_ael1002.c projects/pnet/sys/dev/cxgb/common/cxgb_common.h projects/pnet/sys/dev/cxgb/common/cxgb_t3_hw.c projects/pnet/sys/dev/cxgb/cxgb_adapter.h projects/pnet/sys/dev/cxgb/cxgb_main.c projects/pnet/sys/dev/cxgb/cxgb_multiq.c projects/pnet/sys/dev/cxgb/cxgb_sge.c projects/pnet/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c projects/pnet/sys/dev/e1000/if_em.c projects/pnet/sys/dev/e1000/if_em.h projects/pnet/sys/dev/e1000/if_igb.c projects/pnet/sys/dev/ed/if_ed.c projects/pnet/sys/dev/ed/if_ed_pccard.c projects/pnet/sys/dev/ep/if_ep.c projects/pnet/sys/dev/fb/creator.c projects/pnet/sys/dev/flash/at45d.c projects/pnet/sys/dev/if_ndis/if_ndis.c projects/pnet/sys/dev/if_ndis/if_ndis_usb.c projects/pnet/sys/dev/if_ndis/if_ndisvar.h projects/pnet/sys/dev/iir/iir_ctrl.c projects/pnet/sys/dev/iir/iir_pci.c projects/pnet/sys/dev/ipw/if_ipw.c projects/pnet/sys/dev/ipw/if_ipwvar.h projects/pnet/sys/dev/isp/isp_freebsd.c projects/pnet/sys/dev/iwi/if_iwi.c projects/pnet/sys/dev/iwi/if_iwivar.h projects/pnet/sys/dev/iwn/if_iwn.c projects/pnet/sys/dev/iwn/if_iwnvar.h projects/pnet/sys/dev/ixgb/if_ixgb.c projects/pnet/sys/dev/lge/if_lge.c projects/pnet/sys/dev/lmc/if_lmc.c projects/pnet/sys/dev/malo/if_malo.c projects/pnet/sys/dev/malo/if_malo.h projects/pnet/sys/dev/malo/if_malo_pci.c projects/pnet/sys/dev/md/md.c projects/pnet/sys/dev/mfi/mfi.c projects/pnet/sys/dev/mfi/mfi_linux.c projects/pnet/sys/dev/mpt/mpt_raid.c projects/pnet/sys/dev/mpt/mpt_user.c projects/pnet/sys/dev/mxge/if_mxge.c projects/pnet/sys/dev/mxge/if_mxge_var.h projects/pnet/sys/dev/nge/if_nge.c projects/pnet/sys/dev/nge/if_ngereg.h projects/pnet/sys/dev/nve/if_nve.c projects/pnet/sys/dev/pccard/pccarddevs projects/pnet/sys/dev/ral/rt2560.c projects/pnet/sys/dev/ral/rt2560var.h projects/pnet/sys/dev/ral/rt2661.c projects/pnet/sys/dev/ral/rt2661var.h projects/pnet/sys/dev/rp/rp.c projects/pnet/sys/dev/rp/rp_pci.c projects/pnet/sys/dev/rp/rpreg.h projects/pnet/sys/dev/sk/if_sk.c projects/pnet/sys/dev/snp/snp.c projects/pnet/sys/dev/sound/midi/midi.c projects/pnet/sys/dev/sound/pci/emu10kx-midi.c projects/pnet/sys/dev/sound/pci/ich.c projects/pnet/sys/dev/sound/pci/via82c686.h projects/pnet/sys/dev/sound/sbus/cs4231.h projects/pnet/sys/dev/sound/usb/uaudio.c projects/pnet/sys/dev/sound/usb/uaudioreg.h projects/pnet/sys/dev/spibus/spibus.c projects/pnet/sys/dev/syscons/syscons.c projects/pnet/sys/dev/twa/tw_osl_freebsd.c projects/pnet/sys/dev/twe/twe_freebsd.c projects/pnet/sys/dev/ubsec/ubsec.c projects/pnet/sys/dev/ubsec/ubsecreg.h projects/pnet/sys/dev/usb/bluetooth/ng_ubt.c projects/pnet/sys/dev/usb/bluetooth/ubtbcmfw.c projects/pnet/sys/dev/usb/controller/at91dci.c projects/pnet/sys/dev/usb/controller/at91dci.h projects/pnet/sys/dev/usb/controller/atmegadci.c projects/pnet/sys/dev/usb/controller/atmegadci.h projects/pnet/sys/dev/usb/controller/ehci.c projects/pnet/sys/dev/usb/controller/ehci.h projects/pnet/sys/dev/usb/controller/musb_otg.c projects/pnet/sys/dev/usb/controller/musb_otg.h projects/pnet/sys/dev/usb/controller/ohci.c projects/pnet/sys/dev/usb/controller/ohci.h projects/pnet/sys/dev/usb/controller/uhci.c projects/pnet/sys/dev/usb/controller/uhci.h projects/pnet/sys/dev/usb/controller/usb_controller.c projects/pnet/sys/dev/usb/controller/uss820dci.c projects/pnet/sys/dev/usb/controller/uss820dci.h projects/pnet/sys/dev/usb/controller/uss820dci_atmelarm.c projects/pnet/sys/dev/usb/input/uhid.c projects/pnet/sys/dev/usb/input/ukbd.c projects/pnet/sys/dev/usb/input/ums.c projects/pnet/sys/dev/usb/misc/udbp.c projects/pnet/sys/dev/usb/misc/ufm.c projects/pnet/sys/dev/usb/net/if_aue.c projects/pnet/sys/dev/usb/net/if_axe.c projects/pnet/sys/dev/usb/net/if_cdce.c projects/pnet/sys/dev/usb/net/if_cue.c projects/pnet/sys/dev/usb/net/if_kue.c projects/pnet/sys/dev/usb/net/if_rue.c projects/pnet/sys/dev/usb/net/if_udav.c projects/pnet/sys/dev/usb/net/usb_ethernet.c projects/pnet/sys/dev/usb/net/usb_ethernet.h projects/pnet/sys/dev/usb/serial/u3g.c projects/pnet/sys/dev/usb/serial/uark.c projects/pnet/sys/dev/usb/serial/ubsa.c projects/pnet/sys/dev/usb/serial/ubser.c projects/pnet/sys/dev/usb/serial/uchcom.c projects/pnet/sys/dev/usb/serial/ucycom.c projects/pnet/sys/dev/usb/serial/ufoma.c projects/pnet/sys/dev/usb/serial/uftdi.c projects/pnet/sys/dev/usb/serial/ugensa.c projects/pnet/sys/dev/usb/serial/uipaq.c projects/pnet/sys/dev/usb/serial/ulpt.c projects/pnet/sys/dev/usb/serial/umct.c projects/pnet/sys/dev/usb/serial/umodem.c projects/pnet/sys/dev/usb/serial/umoscom.c projects/pnet/sys/dev/usb/serial/uplcom.c projects/pnet/sys/dev/usb/serial/usb_serial.c projects/pnet/sys/dev/usb/serial/uslcom.c projects/pnet/sys/dev/usb/serial/uvisor.c projects/pnet/sys/dev/usb/serial/uvscom.c projects/pnet/sys/dev/usb/storage/umass.c projects/pnet/sys/dev/usb/storage/urio.c projects/pnet/sys/dev/usb/storage/ustorage_fs.c projects/pnet/sys/dev/usb/template/usb_template.c projects/pnet/sys/dev/usb/usb_bus.h projects/pnet/sys/dev/usb/usb_busdma.c projects/pnet/sys/dev/usb/usb_compat_linux.c projects/pnet/sys/dev/usb/usb_compat_linux.h projects/pnet/sys/dev/usb/usb_controller.h projects/pnet/sys/dev/usb/usb_core.h projects/pnet/sys/dev/usb/usb_debug.c projects/pnet/sys/dev/usb/usb_debug.h projects/pnet/sys/dev/usb/usb_dev.c projects/pnet/sys/dev/usb/usb_device.c projects/pnet/sys/dev/usb/usb_device.h projects/pnet/sys/dev/usb/usb_dynamic.c projects/pnet/sys/dev/usb/usb_dynamic.h projects/pnet/sys/dev/usb/usb_generic.c projects/pnet/sys/dev/usb/usb_handle_request.c projects/pnet/sys/dev/usb/usb_hid.c projects/pnet/sys/dev/usb/usb_hub.c projects/pnet/sys/dev/usb/usb_hub.h projects/pnet/sys/dev/usb/usb_process.c projects/pnet/sys/dev/usb/usb_request.c projects/pnet/sys/dev/usb/usb_request.h projects/pnet/sys/dev/usb/usb_revision.h projects/pnet/sys/dev/usb/usb_transfer.c projects/pnet/sys/dev/usb/usb_transfer.h projects/pnet/sys/dev/usb/usbdevs projects/pnet/sys/dev/usb/wlan/if_rum.c projects/pnet/sys/dev/usb/wlan/if_rumvar.h projects/pnet/sys/dev/usb/wlan/if_uath.c projects/pnet/sys/dev/usb/wlan/if_uathvar.h projects/pnet/sys/dev/usb/wlan/if_ural.c projects/pnet/sys/dev/usb/wlan/if_uralvar.h projects/pnet/sys/dev/usb/wlan/if_zyd.c projects/pnet/sys/dev/usb/wlan/if_zydreg.h projects/pnet/sys/dev/vge/if_vge.c projects/pnet/sys/dev/wi/if_wi.c projects/pnet/sys/dev/wi/if_wireg.h projects/pnet/sys/dev/wi/if_wivar.h projects/pnet/sys/dev/wpi/if_wpi.c projects/pnet/sys/dev/wpi/if_wpivar.h projects/pnet/sys/dev/xen/console/console.c projects/pnet/sys/dev/xen/console/xencons_ring.c projects/pnet/sys/dev/xen/console/xencons_ring.h projects/pnet/sys/dev/xen/netfront/ (props changed) projects/pnet/sys/dev/xen/netfront/netfront.c projects/pnet/sys/dev/xen/xenpci/ (props changed) projects/pnet/sys/dev/xl/if_xl.c projects/pnet/sys/fs/cd9660/cd9660_vfsops.c projects/pnet/sys/fs/coda/coda_vfsops.c projects/pnet/sys/fs/devfs/devfs.h projects/pnet/sys/fs/devfs/devfs_vfsops.c projects/pnet/sys/fs/devfs/devfs_vnops.c projects/pnet/sys/fs/fdescfs/fdesc.h projects/pnet/sys/fs/fdescfs/fdesc_vfsops.c projects/pnet/sys/fs/fdescfs/fdesc_vnops.c projects/pnet/sys/fs/hpfs/hpfs_vfsops.c projects/pnet/sys/fs/msdosfs/msdosfs_vfsops.c projects/pnet/sys/fs/ntfs/ntfs_vfsops.c projects/pnet/sys/fs/nullfs/null_vfsops.c projects/pnet/sys/fs/nwfs/nwfs_vfsops.c projects/pnet/sys/fs/portalfs/portal_vfsops.c projects/pnet/sys/fs/pseudofs/pseudofs.c projects/pnet/sys/fs/pseudofs/pseudofs.h projects/pnet/sys/fs/smbfs/smbfs_io.c projects/pnet/sys/fs/smbfs/smbfs_vfsops.c projects/pnet/sys/fs/tmpfs/tmpfs.h projects/pnet/sys/fs/tmpfs/tmpfs_subr.c projects/pnet/sys/fs/tmpfs/tmpfs_vfsops.c projects/pnet/sys/fs/tmpfs/tmpfs_vnops.c projects/pnet/sys/fs/udf/udf_vfsops.c projects/pnet/sys/fs/unionfs/union_vfsops.c projects/pnet/sys/geom/concat/g_concat.c projects/pnet/sys/geom/journal/g_journal.c projects/pnet/sys/geom/vinum/geom_vinum.c projects/pnet/sys/geom/vinum/geom_vinum.h projects/pnet/sys/geom/vinum/geom_vinum_events.c projects/pnet/sys/geom/vinum/geom_vinum_plex.c projects/pnet/sys/geom/vinum/geom_vinum_raid5.c projects/pnet/sys/geom/vinum/geom_vinum_rm.c projects/pnet/sys/geom/vinum/geom_vinum_subr.c projects/pnet/sys/geom/vinum/geom_vinum_var.h projects/pnet/sys/gnu/fs/ext2fs/ext2_vfsops.c projects/pnet/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/pnet/sys/gnu/fs/xfs/FreeBSD/support/debug.h projects/pnet/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c projects/pnet/sys/i386/acpica/acpi_machdep.c projects/pnet/sys/i386/bios/apm.c projects/pnet/sys/i386/bios/smapi.c projects/pnet/sys/i386/conf/DEFAULTS projects/pnet/sys/i386/conf/GENERIC projects/pnet/sys/i386/conf/GENERIC.hints projects/pnet/sys/i386/conf/NOTES projects/pnet/sys/i386/conf/PAE projects/pnet/sys/i386/conf/XBOX projects/pnet/sys/i386/conf/XEN projects/pnet/sys/i386/cpufreq/hwpstate.c projects/pnet/sys/i386/i386/busdma_machdep.c projects/pnet/sys/i386/i386/identcpu.c projects/pnet/sys/i386/i386/local_apic.c projects/pnet/sys/i386/i386/machdep.c projects/pnet/sys/i386/i386/mp_machdep.c projects/pnet/sys/i386/i386/pmap.c projects/pnet/sys/i386/i386/trap.c projects/pnet/sys/i386/ibcs2/ibcs2_ioctl.c projects/pnet/sys/i386/ibcs2/ibcs2_isc_syscall.h projects/pnet/sys/i386/ibcs2/ibcs2_isc_sysent.c projects/pnet/sys/i386/ibcs2/ibcs2_proto.h projects/pnet/sys/i386/ibcs2/ibcs2_socksys.c projects/pnet/sys/i386/ibcs2/ibcs2_syscall.h projects/pnet/sys/i386/ibcs2/ibcs2_sysent.c projects/pnet/sys/i386/ibcs2/ibcs2_xenix.h projects/pnet/sys/i386/ibcs2/ibcs2_xenix_syscall.h projects/pnet/sys/i386/ibcs2/ibcs2_xenix_sysent.c projects/pnet/sys/i386/ibcs2/syscalls.master projects/pnet/sys/i386/include/apicvar.h projects/pnet/sys/i386/include/clock.h projects/pnet/sys/i386/include/param.h projects/pnet/sys/i386/include/smp.h projects/pnet/sys/i386/include/specialreg.h projects/pnet/sys/i386/isa/clock.c projects/pnet/sys/i386/linux/linux.h projects/pnet/sys/i386/linux/linux_sysvec.c projects/pnet/sys/i386/pci/pci_cfgreg.c projects/pnet/sys/i386/xen/clock.c projects/pnet/sys/i386/xen/mp_machdep.c projects/pnet/sys/ia64/conf/DEFAULTS projects/pnet/sys/ia64/conf/NOTES projects/pnet/sys/ia64/ia64/elf_machdep.c projects/pnet/sys/ia64/ia64/machdep.c projects/pnet/sys/ia64/ia64/pmap.c projects/pnet/sys/ia64/include/md_var.h projects/pnet/sys/ia64/isa/isa.c projects/pnet/sys/isa/atrtc.c projects/pnet/sys/isa/rtc.h projects/pnet/sys/kern/init_main.c projects/pnet/sys/kern/init_sysent.c projects/pnet/sys/kern/kern_acct.c projects/pnet/sys/kern/kern_clock.c projects/pnet/sys/kern/kern_conf.c projects/pnet/sys/kern/kern_cpuset.c projects/pnet/sys/kern/kern_descrip.c projects/pnet/sys/kern/kern_exit.c projects/pnet/sys/kern/kern_fork.c projects/pnet/sys/kern/kern_jail.c projects/pnet/sys/kern/kern_linker.c projects/pnet/sys/kern/kern_lock.c projects/pnet/sys/kern/kern_malloc.c projects/pnet/sys/kern/kern_mib.c projects/pnet/sys/kern/kern_mutex.c projects/pnet/sys/kern/kern_osd.c projects/pnet/sys/kern/kern_poll.c projects/pnet/sys/kern/kern_prot.c projects/pnet/sys/kern/kern_rmlock.c projects/pnet/sys/kern/kern_sysctl.c projects/pnet/sys/kern/kern_vimage.c projects/pnet/sys/kern/sched_ule.c projects/pnet/sys/kern/subr_acl_posix1e.c projects/pnet/sys/kern/subr_bus.c projects/pnet/sys/kern/subr_kdb.c projects/pnet/sys/kern/subr_pcpu.c projects/pnet/sys/kern/subr_rman.c projects/pnet/sys/kern/subr_smp.c projects/pnet/sys/kern/subr_witness.c projects/pnet/sys/kern/sys_generic.c projects/pnet/sys/kern/sys_socket.c projects/pnet/sys/kern/syscalls.c projects/pnet/sys/kern/syscalls.master projects/pnet/sys/kern/systrace_args.c projects/pnet/sys/kern/tty.c projects/pnet/sys/kern/tty_info.c projects/pnet/sys/kern/tty_inq.c projects/pnet/sys/kern/tty_pts.c projects/pnet/sys/kern/tty_ttydisc.c projects/pnet/sys/kern/uipc_mqueue.c projects/pnet/sys/kern/uipc_socket.c projects/pnet/sys/kern/uipc_syscalls.c projects/pnet/sys/kern/uipc_usrreq.c projects/pnet/sys/kern/vfs_acl.c projects/pnet/sys/kern/vfs_bio.c projects/pnet/sys/kern/vfs_default.c projects/pnet/sys/kern/vfs_export.c projects/pnet/sys/kern/vfs_extattr.c projects/pnet/sys/kern/vfs_lookup.c projects/pnet/sys/kern/vfs_mount.c projects/pnet/sys/kern/vfs_subr.c projects/pnet/sys/kern/vfs_syscalls.c projects/pnet/sys/kern/vfs_vnops.c projects/pnet/sys/mips/conf/ADM5120 projects/pnet/sys/mips/conf/IDT projects/pnet/sys/mips/conf/MALTA projects/pnet/sys/mips/conf/QEMU projects/pnet/sys/mips/conf/SENTRY5 projects/pnet/sys/mips/include/pmap.h projects/pnet/sys/mips/mips/machdep.c projects/pnet/sys/mips/mips/pm_machdep.c projects/pnet/sys/mips/mips/pmap.c projects/pnet/sys/modules/Makefile projects/pnet/sys/modules/linux/Makefile projects/pnet/sys/modules/nfsclient/Makefile projects/pnet/sys/modules/opensolaris/Makefile projects/pnet/sys/modules/sound/sound/Makefile projects/pnet/sys/modules/svr4/Makefile projects/pnet/sys/modules/usb/Makefile projects/pnet/sys/modules/wlan/Makefile projects/pnet/sys/modules/xfs/Makefile projects/pnet/sys/modules/zfs/Makefile projects/pnet/sys/net/bpf.c projects/pnet/sys/net/bridgestp.c projects/pnet/sys/net/flowtable.c projects/pnet/sys/net/ieee8023ad_lacp.c projects/pnet/sys/net/if.c projects/pnet/sys/net/if.h projects/pnet/sys/net/if_arcsubr.c projects/pnet/sys/net/if_bridge.c projects/pnet/sys/net/if_clone.c projects/pnet/sys/net/if_ef.c projects/pnet/sys/net/if_ethersubr.c projects/pnet/sys/net/if_gif.c projects/pnet/sys/net/if_gif.h projects/pnet/sys/net/if_lagg.c projects/pnet/sys/net/if_llatbl.c projects/pnet/sys/net/if_llatbl.h projects/pnet/sys/net/if_loop.c projects/pnet/sys/net/if_mib.c projects/pnet/sys/net/if_var.h projects/pnet/sys/net/netisr.c projects/pnet/sys/net/netisr.h projects/pnet/sys/net/route.c projects/pnet/sys/net/rtsock.c projects/pnet/sys/net/vnet.h projects/pnet/sys/net80211/ieee80211.c projects/pnet/sys/net80211/ieee80211.h projects/pnet/sys/net80211/ieee80211_adhoc.c projects/pnet/sys/net80211/ieee80211_ddb.c projects/pnet/sys/net80211/ieee80211_freebsd.c projects/pnet/sys/net80211/ieee80211_freebsd.h projects/pnet/sys/net80211/ieee80211_hostap.c projects/pnet/sys/net80211/ieee80211_ht.c projects/pnet/sys/net80211/ieee80211_ht.h projects/pnet/sys/net80211/ieee80211_input.c projects/pnet/sys/net80211/ieee80211_ioctl.c projects/pnet/sys/net80211/ieee80211_monitor.c projects/pnet/sys/net80211/ieee80211_node.c projects/pnet/sys/net80211/ieee80211_node.h projects/pnet/sys/net80211/ieee80211_output.c projects/pnet/sys/net80211/ieee80211_proto.c projects/pnet/sys/net80211/ieee80211_proto.h projects/pnet/sys/net80211/ieee80211_scan.c projects/pnet/sys/net80211/ieee80211_scan.h projects/pnet/sys/net80211/ieee80211_scan_sta.c projects/pnet/sys/net80211/ieee80211_sta.c projects/pnet/sys/net80211/ieee80211_superg.c projects/pnet/sys/net80211/ieee80211_superg.h projects/pnet/sys/net80211/ieee80211_tdma.c projects/pnet/sys/net80211/ieee80211_tdma.h projects/pnet/sys/net80211/ieee80211_var.h projects/pnet/sys/net80211/ieee80211_wds.c projects/pnet/sys/netgraph/netflow/ng_netflow.c projects/pnet/sys/netgraph/netgraph.h projects/pnet/sys/netgraph/ng_base.c projects/pnet/sys/netgraph/ng_eiface.c projects/pnet/sys/netgraph/ng_ether.c projects/pnet/sys/netgraph/ng_iface.c projects/pnet/sys/netinet/icmp6.h projects/pnet/sys/netinet/if_ether.c projects/pnet/sys/netinet/igmp.c projects/pnet/sys/netinet/in.c projects/pnet/sys/netinet/in_mcast.c projects/pnet/sys/netinet/in_pcb.c projects/pnet/sys/netinet/in_pcb.h projects/pnet/sys/netinet/in_rmx.c projects/pnet/sys/netinet/in_var.h projects/pnet/sys/netinet/ip_carp.c projects/pnet/sys/netinet/ip_divert.c projects/pnet/sys/netinet/ip_fw.h projects/pnet/sys/netinet/ip_fw2.c projects/pnet/sys/netinet/ip_fw_pfil.c projects/pnet/sys/netinet/ip_input.c projects/pnet/sys/netinet/ip_ipsec.c projects/pnet/sys/netinet/ip_mroute.c projects/pnet/sys/netinet/ip_output.c projects/pnet/sys/netinet/raw_ip.c projects/pnet/sys/netinet/sctp_crc32.c projects/pnet/sys/netinet/sctp_os_bsd.h projects/pnet/sys/netinet/sctp_uio.h projects/pnet/sys/netinet/tcp_hostcache.c projects/pnet/sys/netinet/tcp_subr.c projects/pnet/sys/netinet/tcp_syncache.c projects/pnet/sys/netinet/tcp_syncache.h projects/pnet/sys/netinet/tcp_timewait.c projects/pnet/sys/netinet/tcp_var.h projects/pnet/sys/netinet/udp_usrreq.c projects/pnet/sys/netinet/vinet.h projects/pnet/sys/netinet6/icmp6.c projects/pnet/sys/netinet6/in6.c projects/pnet/sys/netinet6/in6.h projects/pnet/sys/netinet6/in6_ifattach.c projects/pnet/sys/netinet6/in6_pcb.c projects/pnet/sys/netinet6/in6_proto.c projects/pnet/sys/netinet6/in6_rmx.c projects/pnet/sys/netinet6/in6_var.h projects/pnet/sys/netinet6/ip6_input.c projects/pnet/sys/netinet6/ip6_mroute.c projects/pnet/sys/netinet6/ip6_output.c projects/pnet/sys/netinet6/ip6_var.h projects/pnet/sys/netinet6/mld6.c projects/pnet/sys/netinet6/mld6_var.h projects/pnet/sys/netinet6/nd6.c projects/pnet/sys/netinet6/nd6_nbr.c projects/pnet/sys/netinet6/nd6_rtr.c projects/pnet/sys/netinet6/raw_ip6.c projects/pnet/sys/netinet6/route6.c projects/pnet/sys/netinet6/udp6_usrreq.c projects/pnet/sys/netinet6/vinet6.h projects/pnet/sys/netipsec/ipsec.c projects/pnet/sys/netipsec/key.c projects/pnet/sys/netipsec/key.h projects/pnet/sys/netipsec/vipsec.h projects/pnet/sys/netipsec/xform_tcp.c projects/pnet/sys/netipx/spx_usrreq.c projects/pnet/sys/netnatm/natm.c projects/pnet/sys/nfs/nfs_common.c projects/pnet/sys/nfsclient/bootp_subr.c projects/pnet/sys/nfsclient/krpc_subr.c projects/pnet/sys/nfsclient/nfs.h projects/pnet/sys/nfsclient/nfs_bio.c projects/pnet/sys/nfsclient/nfs_diskless.c projects/pnet/sys/nfsclient/nfs_kdtrace.c projects/pnet/sys/nfsclient/nfs_krpc.c projects/pnet/sys/nfsclient/nfs_lock.c projects/pnet/sys/nfsclient/nfs_nfsiod.c projects/pnet/sys/nfsclient/nfs_node.c projects/pnet/sys/nfsclient/nfs_socket.c projects/pnet/sys/nfsclient/nfs_subs.c projects/pnet/sys/nfsclient/nfs_vfsops.c projects/pnet/sys/nfsclient/nfs_vnops.c projects/pnet/sys/nfsclient/nfsm_subs.h projects/pnet/sys/nfsclient/nfsmount.h projects/pnet/sys/nfsclient/nfsnode.h projects/pnet/sys/nfsserver/nfs_serv.c projects/pnet/sys/nfsserver/nfs_srvsubs.c projects/pnet/sys/nlm/nlm.h projects/pnet/sys/nlm/nlm_advlock.c projects/pnet/sys/nlm/nlm_prot_impl.c projects/pnet/sys/pc98/cbus/clock.c projects/pnet/sys/pc98/conf/DEFAULTS projects/pnet/sys/pc98/conf/GENERIC projects/pnet/sys/pc98/conf/NOTES projects/pnet/sys/pc98/pc98/machdep.c projects/pnet/sys/powerpc/aim/clock.c projects/pnet/sys/powerpc/aim/machdep.c projects/pnet/sys/powerpc/aim/mmu_oea.c projects/pnet/sys/powerpc/aim/mmu_oea64.c projects/pnet/sys/powerpc/aim/mp_cpudep.c projects/pnet/sys/powerpc/aim/ofw_machdep.c projects/pnet/sys/powerpc/aim/vm_machdep.c projects/pnet/sys/powerpc/booke/clock.c projects/pnet/sys/powerpc/booke/locore.S projects/pnet/sys/powerpc/booke/machdep.c projects/pnet/sys/powerpc/booke/pmap.c projects/pnet/sys/powerpc/booke/trap_subr.S projects/pnet/sys/powerpc/booke/vm_machdep.c projects/pnet/sys/powerpc/conf/GENERIC projects/pnet/sys/powerpc/conf/MPC85XX projects/pnet/sys/powerpc/conf/NOTES projects/pnet/sys/powerpc/include/cpufunc.h projects/pnet/sys/powerpc/include/intr_machdep.h projects/pnet/sys/powerpc/include/md_var.h projects/pnet/sys/powerpc/include/mutex.h projects/pnet/sys/powerpc/include/ofw_machdep.h projects/pnet/sys/powerpc/include/pcpu.h projects/pnet/sys/powerpc/include/pmap.h projects/pnet/sys/powerpc/include/pte.h projects/pnet/sys/powerpc/include/smp.h projects/pnet/sys/powerpc/include/spr.h projects/pnet/sys/powerpc/mpc85xx/ocpbus.c projects/pnet/sys/powerpc/mpc85xx/ocpbus.h projects/pnet/sys/powerpc/mpc85xx/pci_ocp.c projects/pnet/sys/powerpc/powerpc/autoconf.c projects/pnet/sys/powerpc/powerpc/bus_machdep.c projects/pnet/sys/powerpc/powerpc/busdma_machdep.c projects/pnet/sys/powerpc/powerpc/genassym.c projects/pnet/sys/powerpc/powerpc/intr_machdep.c projects/pnet/sys/powerpc/powerpc/mp_machdep.c projects/pnet/sys/powerpc/powerpc/openpic.c projects/pnet/sys/powerpc/powerpc/pmap_dispatch.c projects/pnet/sys/security/audit/audit_worker.c projects/pnet/sys/security/mac/mac_atalk.c projects/pnet/sys/security/mac/mac_audit.c projects/pnet/sys/security/mac/mac_cred.c projects/pnet/sys/security/mac/mac_inet.c projects/pnet/sys/security/mac/mac_inet6.c projects/pnet/sys/security/mac/mac_internal.h projects/pnet/sys/security/mac/mac_net.c projects/pnet/sys/security/mac/mac_pipe.c projects/pnet/sys/security/mac/mac_posix_sem.c projects/pnet/sys/security/mac/mac_posix_shm.c projects/pnet/sys/security/mac/mac_priv.c projects/pnet/sys/security/mac/mac_process.c projects/pnet/sys/security/mac/mac_socket.c projects/pnet/sys/security/mac/mac_system.c projects/pnet/sys/security/mac/mac_sysv_msg.c projects/pnet/sys/security/mac/mac_sysv_sem.c projects/pnet/sys/security/mac/mac_sysv_shm.c projects/pnet/sys/security/mac/mac_vfs.c projects/pnet/sys/sparc64/conf/GENERIC projects/pnet/sys/sparc64/sparc64/machdep.c projects/pnet/sys/sparc64/sparc64/vm_machdep.c projects/pnet/sys/sun4v/sun4v/machdep.c projects/pnet/sys/sys/_null.h projects/pnet/sys/sys/acl.h projects/pnet/sys/sys/buf.h projects/pnet/sys/sys/buf_ring.h projects/pnet/sys/sys/eventhandler.h projects/pnet/sys/sys/filedesc.h projects/pnet/sys/sys/interrupt.h projects/pnet/sys/sys/ioctl.h projects/pnet/sys/sys/ioctl_compat.h projects/pnet/sys/sys/jail.h projects/pnet/sys/sys/kernel.h projects/pnet/sys/sys/ktr.h projects/pnet/sys/sys/mbuf.h projects/pnet/sys/sys/mount.h projects/pnet/sys/sys/osd.h projects/pnet/sys/sys/param.h projects/pnet/sys/sys/priv.h projects/pnet/sys/sys/proc.h projects/pnet/sys/sys/queue.h projects/pnet/sys/sys/smp.h projects/pnet/sys/sys/socketvar.h projects/pnet/sys/sys/syscall.h projects/pnet/sys/sys/syscall.mk projects/pnet/sys/sys/syscallsubr.h projects/pnet/sys/sys/sysctl.h projects/pnet/sys/sys/sysproto.h projects/pnet/sys/sys/systm.h projects/pnet/sys/sys/termios.h projects/pnet/sys/sys/ucred.h projects/pnet/sys/sys/vimage.h projects/pnet/sys/ufs/ffs/ffs_alloc.c projects/pnet/sys/ufs/ffs/ffs_vfsops.c projects/pnet/sys/ufs/ufs/dinode.h projects/pnet/sys/ufs/ufs/extattr.h projects/pnet/sys/ufs/ufs/inode.h projects/pnet/sys/ufs/ufs/ufs_acl.c projects/pnet/sys/ufs/ufs/ufs_extattr.c projects/pnet/sys/ufs/ufs/ufs_extern.h projects/pnet/sys/ufs/ufs/ufs_vfsops.c projects/pnet/sys/ufs/ufs/ufs_vnops.c projects/pnet/sys/vm/swap_pager.c projects/pnet/sys/vm/vm_fault.c projects/pnet/sys/vm/vm_object.c projects/pnet/sys/vm/vm_page.c projects/pnet/sys/vm/vm_page.h projects/pnet/sys/vm/vm_pageout.c projects/pnet/sys/vm/vnode_pager.c Modified: projects/pnet/sys/Makefile ============================================================================== --- projects/pnet/sys/Makefile Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/Makefile Sat May 23 13:44:37 2009 (r192637) @@ -11,7 +11,7 @@ SUBDIR= boot CSCOPEDIRS= boot bsm cam cddl compat conf contrib crypto ddb dev fs gdb \ geom gnu isa kern libkern modules net net80211 netatalk \ netgraph netinet netinet6 netipsec netipx netnatm netncp \ - netsmb nfs nfs4client nfsclient nfsserver nlm opencrypto \ + netsmb nfs nfsclient nfsserver nlm opencrypto \ pci rpc security sys ufs vm xdr ${CSCOPE_ARCHDIR} .if defined(ALL_ARCH) CSCOPE_ARCHDIR ?= amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v Modified: projects/pnet/sys/amd64/amd64/busdma_machdep.c ============================================================================== --- projects/pnet/sys/amd64/amd64/busdma_machdep.c Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/amd64/amd64/busdma_machdep.c Sat May 23 13:44:37 2009 (r192637) @@ -95,7 +95,6 @@ struct bounce_zone { int total_deferred; int map_count; bus_size_t alignment; - bus_size_t boundary; bus_addr_t lowaddr; char zoneid[8]; char lowaddrid[20]; @@ -978,7 +977,6 @@ alloc_bounce_zone(bus_dma_tag_t dmat) /* Check to see if we already have a suitable zone */ STAILQ_FOREACH(bz, &bounce_zone_list, links) { if ((dmat->alignment <= bz->alignment) - && (dmat->boundary <= bz->boundary) && (dmat->lowaddr >= bz->lowaddr)) { dmat->bounce_zone = bz; return (0); @@ -994,8 +992,7 @@ alloc_bounce_zone(bus_dma_tag_t dmat) bz->reserved_bpages = 0; bz->active_bpages = 0; bz->lowaddr = dmat->lowaddr; - bz->alignment = dmat->alignment; - bz->boundary = dmat->boundary; + bz->alignment = MAX(dmat->alignment, PAGE_SIZE); bz->map_count = 0; snprintf(bz->zoneid, 8, "zone%d", busdma_zonecount); busdma_zonecount++; @@ -1042,9 +1039,6 @@ alloc_bounce_zone(bus_dma_tag_t dmat) SYSCTL_ADD_INT(busdma_sysctl_tree(bz), SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO, "alignment", CTLFLAG_RD, &bz->alignment, 0, ""); - SYSCTL_ADD_INT(busdma_sysctl_tree(bz), - SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO, - "boundary", CTLFLAG_RD, &bz->boundary, 0, ""); return (0); } @@ -1069,7 +1063,7 @@ alloc_bounce_pages(bus_dma_tag_t dmat, u M_NOWAIT, 0ul, bz->lowaddr, PAGE_SIZE, - bz->boundary); + 0); if (bpage->vaddr == 0) { free(bpage, M_DEVBUF); break; Modified: projects/pnet/sys/amd64/amd64/identcpu.c ============================================================================== --- projects/pnet/sys/amd64/amd64/identcpu.c Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/amd64/amd64/identcpu.c Sat May 23 13:44:37 2009 (r192637) @@ -106,9 +106,6 @@ static struct { { CENTAUR_VENDOR_ID, CPU_VENDOR_CENTAUR }, /* CentaurHauls */ }; -int cpu_cores; -int cpu_logical; - extern int pq_l2size; extern int pq_l2nways; @@ -195,7 +192,6 @@ printcpuinfo(void) cpu_vendor_id == CPU_VENDOR_CENTAUR) { printf(" Stepping = %u", cpu_id & 0xf); if (cpu_high > 0) { - u_int cmp = 1, htt = 1; /* * Here we should probably set up flags indicating @@ -400,28 +396,6 @@ printcpuinfo(void) if (tsc_is_invariant) printf("\n TSC: P-state invariant"); - /* - * If this CPU supports HTT or CMP then mention the - * number of physical/logical cores it contains. - */ - if (cpu_feature & CPUID_HTT) - htt = (cpu_procinfo & CPUID_HTT_CORES) >> 16; - if (cpu_vendor_id == CPU_VENDOR_AMD && - (amd_feature2 & AMDID2_CMP)) - cmp = (cpu_procinfo2 & AMDID_CMP_CORES) + 1; - else if (cpu_vendor_id == CPU_VENDOR_INTEL && - (cpu_high >= 4)) { - cpuid_count(4, 0, regs); - if ((regs[0] & 0x1f) != 0) - cmp = ((regs[0] >> 26) & 0x3f) + 1; - } - cpu_cores = cmp; - cpu_logical = htt / cmp; - if (cmp > 1) - printf("\n Cores per package: %d", cmp); - if ((htt / cmp) > 1) - printf("\n Logical CPUs per core: %d", - cpu_logical); } } /* Avoid ugly blank lines: only print newline when we have to. */ @@ -498,6 +472,22 @@ identify_cpu(void) cpu_feature = regs[3]; cpu_feature2 = regs[2]; + /* + * Clear "Limit CPUID Maxval" bit and get the largest standard CPUID + * function number again if it is set from BIOS. It is necessary + * for probing correct CPU topology later. + * XXX This is only done on the BSP package. + */ + if (cpu_vendor_id == CPU_VENDOR_INTEL && cpu_high > 0 && cpu_high < 4) { + uint64_t msr; + msr = rdmsr(MSR_IA32_MISC_ENABLE); + if ((msr & 0x400000ULL) != 0) { + wrmsr(MSR_IA32_MISC_ENABLE, msr & ~0x400000ULL); + do_cpuid(0, regs); + cpu_high = regs[0]; + } + } + if (cpu_vendor_id == CPU_VENDOR_INTEL || cpu_vendor_id == CPU_VENDOR_AMD || cpu_vendor_id == CPU_VENDOR_CENTAUR) { Modified: projects/pnet/sys/amd64/amd64/local_apic.c ============================================================================== --- projects/pnet/sys/amd64/amd64/local_apic.c Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/amd64/amd64/local_apic.c Sat May 23 13:44:37 2009 (r192637) @@ -112,7 +112,7 @@ struct lapic { u_long la_stat_ticks; u_long la_prof_ticks; /* Include IDT_SYSCALL to make indexing easier. */ - u_int la_ioint_irqs[APIC_NUM_IOINTS + 1]; + int la_ioint_irqs[APIC_NUM_IOINTS + 1]; } static lapics[MAX_APIC_ID + 1]; /* XXX: should thermal be an NMI? */ @@ -254,6 +254,8 @@ lapic_create(u_int apic_id, int boot_cpu lapics[apic_id].la_lvts[i] = lvts[i]; lapics[apic_id].la_lvts[i].lvt_active = 0; } + for (i = 0; i <= APIC_NUM_IOINTS; i++) + lapics[apic_id].la_ioint_irqs[i] = -1; lapics[apic_id].la_ioint_irqs[IDT_SYSCALL - APIC_IO_INTS] = IRQ_SYSCALL; lapics[apic_id].la_ioint_irqs[APIC_TIMER_INT - APIC_IO_INTS] = IRQ_TIMER; @@ -317,7 +319,7 @@ lapic_setup(int boot) } /* We don't setup the timer during boot on the BSP until later. */ - if (!(boot && PCPU_GET(cpuid) == 0)) { + if (!(boot && PCPU_GET(cpuid) == 0) && lapic_timer_hz != 0) { KASSERT(lapic_timer_period != 0, ("lapic%u: zero divisor", lapic_id())); lapic_timer_set_divisor(lapic_timer_divisor); @@ -363,11 +365,15 @@ int lapic_setup_clock(void) { u_long value; + int i; /* Can't drive the timer without a local APIC. */ if (lapic == NULL) return (0); + if (resource_int_value("apic", 0, "clock", &i) == 0 && i == 0) + return (0); + /* Start off with a divisor of 2 (power on reset default). */ lapic_timer_divisor = 2; @@ -807,7 +813,7 @@ apic_alloc_vector(u_int apic_id, u_int i */ mtx_lock_spin(&icu_lock); for (vector = 0; vector < APIC_NUM_IOINTS; vector++) { - if (lapics[apic_id].la_ioint_irqs[vector] != 0) + if (lapics[apic_id].la_ioint_irqs[vector] != -1) continue; lapics[apic_id].la_ioint_irqs[vector] = irq; mtx_unlock_spin(&icu_lock); @@ -847,7 +853,7 @@ apic_alloc_vectors(u_int apic_id, u_int for (vector = 0; vector < APIC_NUM_IOINTS; vector++) { /* Vector is in use, end run. */ - if (lapics[apic_id].la_ioint_irqs[vector] != 0) { + if (lapics[apic_id].la_ioint_irqs[vector] != -1) { run = 0; first = 0; continue; @@ -932,7 +938,7 @@ apic_free_vector(u_int apic_id, u_int ve sched_bind(td, apic_cpuid(apic_id)); thread_unlock(td); mtx_lock_spin(&icu_lock); - lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS] = 0; + lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS] = -1; mtx_unlock_spin(&icu_lock); thread_lock(td); sched_unbind(td); @@ -944,11 +950,15 @@ apic_free_vector(u_int apic_id, u_int ve u_int apic_idt_to_irq(u_int apic_id, u_int vector) { + int irq; KASSERT(vector >= APIC_IO_INTS && vector != IDT_SYSCALL && vector <= APIC_IO_INTS + APIC_NUM_IOINTS, ("Vector %u does not map to an IRQ line", vector)); - return (lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS]); + irq = lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS]; + if (irq < 0) + irq = 0; + return (irq); } #ifdef DDB @@ -974,7 +984,7 @@ DB_SHOW_COMMAND(apic, db_show_apic) db_printf("Interrupts bound to lapic %u\n", apic_id); for (i = 0; i < APIC_NUM_IOINTS + 1 && !db_pager_quit; i++) { irq = lapics[apic_id].la_ioint_irqs[i]; - if (irq == 0 || irq == IRQ_SYSCALL) + if (irq == -1 || irq == IRQ_SYSCALL) continue; db_printf("vec 0x%2x -> ", i + APIC_IO_INTS); if (irq == IRQ_TIMER) Modified: projects/pnet/sys/amd64/amd64/machdep.c ============================================================================== --- projects/pnet/sys/amd64/amd64/machdep.c Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/amd64/amd64/machdep.c Sat May 23 13:44:37 2009 (r192637) @@ -109,6 +109,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -274,6 +275,7 @@ cpu_startup(dummy) vm_pager_bufferinit(); cpu_setregs(); + mca_init(); } /* @@ -504,6 +506,16 @@ cpu_boot(int howto) { } +/* + * Flush the D-cache for non-DMA I/O so that the I-cache can + * be made coherent later. + */ +void +cpu_flush_dcache(void *ptr, size_t len) +{ + /* Not applicable */ +} + /* Get current clock frequency for the given cpu id. */ int cpu_est_clockrate(int cpu_id, uint64_t *rate) Copied: projects/pnet/sys/amd64/amd64/mca.c (from r192635, head/sys/amd64/amd64/mca.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pnet/sys/amd64/amd64/mca.c Sat May 23 13:44:37 2009 (r192637, copy of r192635, head/sys/amd64/amd64/mca.c) @@ -0,0 +1,529 @@ +/*- + * Copyright (c) 2009 Advanced Computing Technologies LLC + * Written by: John H. Baldwin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * Support for x86 machine check architecture. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct mca_internal { + struct mca_record rec; + int logged; + STAILQ_ENTRY(mca_internal) link; +}; + +static MALLOC_DEFINE(M_MCA, "MCA", "Machine Check Architecture"); + +static int mca_count; /* Number of records stored. */ + +SYSCTL_NODE(_hw, OID_AUTO, mca, CTLFLAG_RD, NULL, "Machine Check Architecture"); + +static int mca_enabled = 0; +TUNABLE_INT("hw.mca.enabled", &mca_enabled); +SYSCTL_INT(_hw_mca, OID_AUTO, enabled, CTLFLAG_RDTUN, &mca_enabled, 0, + "Administrative toggle for machine check support"); + +static STAILQ_HEAD(, mca_internal) mca_records; +static struct callout mca_timer; +static int mca_ticks = 3600; /* Check hourly by default. */ +static struct task mca_task; +static struct mtx mca_lock; + +static int +sysctl_mca_ticks(SYSCTL_HANDLER_ARGS) +{ + int error, value; + + value = mca_ticks; + error = sysctl_handle_int(oidp, &value, 0, req); + if (error || req->newptr == NULL) + return (error); + if (value <= 0) + return (EINVAL); + mca_ticks = value; + return (0); +} + +static int +sysctl_mca_records(SYSCTL_HANDLER_ARGS) +{ + int *name = (int *)arg1; + u_int namelen = arg2; + struct mca_record record; + struct mca_internal *rec; + int i; + + if (namelen != 1) + return (EINVAL); + + if (name[0] < 0 || name[0] >= mca_count) + return (EINVAL); + + mtx_lock_spin(&mca_lock); + if (name[0] >= mca_count) { + mtx_unlock_spin(&mca_lock); + return (EINVAL); + } + i = 0; + STAILQ_FOREACH(rec, &mca_records, link) { + if (i == name[0]) { + record = rec->rec; + break; + } + i++; + } + mtx_unlock_spin(&mca_lock); + return (SYSCTL_OUT(req, &record, sizeof(record))); +} + +static struct mca_record * +mca_record_entry(int bank) +{ + struct mca_internal *rec; + uint64_t status; + u_int p[4]; + + status = rdmsr(MSR_MC_STATUS(bank)); + if (!(status & MC_STATUS_VAL)) + return (NULL); + + rec = malloc(sizeof(*rec), M_MCA, M_NOWAIT | M_ZERO); + if (rec == NULL) { + printf("MCA: Unable to allocate space for an event.\n"); + return (NULL); + } + + /* Save exception information. */ + rec->rec.mr_status = status; + if (status & MC_STATUS_ADDRV) + rec->rec.mr_addr = rdmsr(MSR_MC_ADDR(bank)); + if (status & MC_STATUS_MISCV) + rec->rec.mr_misc = rdmsr(MSR_MC_MISC(bank)); + rec->rec.mr_tsc = rdtsc(); + rec->rec.mr_apic_id = PCPU_GET(apic_id); + + /* + * Clear machine check. Don't do this for uncorrectable + * errors so that the BIOS can see them. + */ + if (!(rec->rec.mr_status & (MC_STATUS_PCC | MC_STATUS_UC))) { + wrmsr(MSR_MC_STATUS(bank), 0); + do_cpuid(0, p); + } + + mtx_lock_spin(&mca_lock); + STAILQ_INSERT_TAIL(&mca_records, rec, link); + mca_count++; + mtx_unlock_spin(&mca_lock); + return (&rec->rec); +} + +static const char * +mca_error_ttype(uint16_t mca_error) +{ + + switch ((mca_error & 0x000c) >> 2) { + case 0: + return ("I"); + case 1: + return ("D"); + case 2: + return ("G"); + } + return ("?"); +} + +static const char * +mca_error_level(uint16_t mca_error) +{ + + switch (mca_error & 0x0003) { + case 0: + return ("L0"); + case 1: + return ("L1"); + case 2: + return ("L2"); + case 3: + return ("LG"); + } + return ("L?"); +} + +static const char * +mca_error_request(uint16_t mca_error) +{ + + switch ((mca_error & 0x00f0) >> 4) { + case 0x0: + return ("ERR"); + case 0x1: + return ("RD"); + case 0x2: + return ("WR"); + case 0x3: + return ("DRD"); + case 0x4: + return ("DWR"); + case 0x5: + return ("IRD"); + case 0x6: + return ("PREFETCH"); + case 0x7: + return ("EVICT"); + case 0x8: + return ("SNOOP"); + } + return ("???"); +} + +/* Dump details about a single machine check. */ +static void +mca_log(struct mca_record *rec) +{ + uint16_t mca_error; + + printf("MCA: CPU %d ", rec->mr_apic_id); + if (rec->mr_status & MC_STATUS_UC) + printf("UNCOR "); + else + printf("COR "); + if (rec->mr_status & MC_STATUS_PCC) + printf("PCC "); + if (rec->mr_status & MC_STATUS_OVER) + printf("OVER "); + mca_error = rec->mr_status & MC_STATUS_MCA_ERROR; + switch (mca_error) { + /* Simple error codes. */ + case 0x0000: + printf("no error"); + break; + case 0x0001: + printf("unclassified error"); + break; + case 0x0002: + printf("ucode ROM parity error"); + break; + case 0x0003: + printf("external error"); + break; + case 0x0004: + printf("FRC error"); + break; + case 0x0400: + printf("internal timer error"); + break; + default: + if ((mca_error & 0xfc00) == 0x0400) { + printf("internal error %x", mca_error & 0x03ff); + break; + } + + /* Compound error codes. */ + + /* Memory hierarchy error. */ + if ((mca_error & 0xeffc) == 0x000c) { + printf("%s memory error", mca_error_level(mca_error)); + break; + } + + /* TLB error. */ + if ((mca_error & 0xeff0) == 0x0010) { + printf("%sTLB %s error", mca_error_ttype(mca_error), + mca_error_level(mca_error)); + break; + } + + /* Cache error. */ + if ((mca_error & 0xef00) == 0x0100) { + printf("%sCACHE %s %s error", + mca_error_ttype(mca_error), + mca_error_level(mca_error), + mca_error_request(mca_error)); + break; + } + + /* Bus and/or Interconnect error. */ + if ((mca_error & 0xe800) == 0x0800) { + printf("BUS%s ", mca_error_level(mca_error)); + switch ((mca_error & 0x0600) >> 9) { + case 0: + printf("Source"); + break; + case 1: + printf("Responder"); + break; + case 2: + printf("Observer"); + break; + default: + printf("???"); + break; + } + printf(" %s ", mca_error_request(mca_error)); + switch ((mca_error & 0x000c) >> 2) { + case 0: + printf("Memory"); + break; + case 2: + printf("I/O"); + break; + case 3: + printf("Other"); + break; + default: + printf("???"); + break; + } + if (mca_error & 0x0100) + printf(" timed out"); + break; + } + + printf("unknown error %x", mca_error); + break; + } + printf("\n"); + if (rec->mr_status & MC_STATUS_ADDRV) + printf("MCA: Address 0x%llx\n", (long long)rec->mr_addr); +} + +/* + * This scans all the machine check banks of the current CPU to see if + * there are any machine checks. Any non-recoverable errors are + * reported immediately via mca_log(). The current thread must be + * pinned when this is called. The 'mcip' parameter indicates if we + * are being called from the MC exception handler. In that case this + * function returns true if the system is restartable. Otherwise, it + * returns a count of the number of valid MC records found. + */ +static int +mca_scan(int mcip) +{ + struct mca_record *rec; + uint64_t mcg_cap, ucmask; + int count, i, recoverable; + + count = 0; + recoverable = 1; + ucmask = MC_STATUS_UC | MC_STATUS_PCC; + + /* When handling a MCE#, treat the OVER flag as non-restartable. */ + if (mcip) + ucmask |= MC_STATUS_OVER; + mcg_cap = rdmsr(MSR_MCG_CAP); + for (i = 0; i < (mcg_cap & MCG_CAP_COUNT); i++) { + rec = mca_record_entry(i); + if (rec != NULL) { + count++; + if (rec->mr_status & ucmask) { + recoverable = 0; + mca_log(rec); + } + } + } + return (mcip ? recoverable : count); +} + +/* + * Scan the machine check banks on all CPUs by binding to each CPU in + * turn. If any of the CPUs contained new machine check records, log + * them to the console. + */ +static void +mca_scan_cpus(void *context, int pending) +{ + struct mca_internal *mca; + struct thread *td; + int count, cpu; + + td = curthread; + count = 0; + thread_lock(td); + for (cpu = 0; cpu <= mp_maxid; cpu++) { + if (CPU_ABSENT(cpu)) + continue; + sched_bind(td, cpu); + thread_unlock(td); + count += mca_scan(0); + thread_lock(td); + sched_unbind(td); + } + thread_unlock(td); + if (count != 0) { + mtx_lock_spin(&mca_lock); + STAILQ_FOREACH(mca, &mca_records, link) { + if (!mca->logged) { + mca->logged = 1; + mtx_unlock_spin(&mca_lock); + mca_log(&mca->rec); + mtx_lock_spin(&mca_lock); + } + } + mtx_unlock_spin(&mca_lock); + } +} + +static void +mca_periodic_scan(void *arg) +{ + + taskqueue_enqueue(taskqueue_thread, &mca_task); + callout_reset(&mca_timer, mca_ticks * hz, mca_periodic_scan, NULL); +} + +static int +sysctl_mca_scan(SYSCTL_HANDLER_ARGS) +{ + int error, i; + + i = 0; + error = sysctl_handle_int(oidp, &i, 0, req); + if (error) + return (error); + if (i) + taskqueue_enqueue(taskqueue_thread, &mca_task); + return (0); +} + +static void +mca_startup(void *dummy) +{ + + if (!mca_enabled || !(cpu_feature & CPUID_MCA)) + return; + + callout_reset(&mca_timer, mca_ticks * hz, mca_periodic_scan, + NULL); +} +SYSINIT(mca_startup, SI_SUB_SMP, SI_ORDER_ANY, mca_startup, NULL); + +static void +mca_setup(void) +{ + + mtx_init(&mca_lock, "mca", NULL, MTX_SPIN); + STAILQ_INIT(&mca_records); + TASK_INIT(&mca_task, 0x8000, mca_scan_cpus, NULL); + callout_init(&mca_timer, CALLOUT_MPSAFE); + SYSCTL_ADD_INT(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO, + "count", CTLFLAG_RD, &mca_count, 0, "Record count"); + SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO, + "interval", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, &mca_ticks, + 0, sysctl_mca_ticks, "I", + "Periodic interval in seconds to scan for machine checks"); + SYSCTL_ADD_NODE(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO, + "records", CTLFLAG_RD, sysctl_mca_records, "Machine check records"); + SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), OID_AUTO, + "force_scan", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, 0, + sysctl_mca_scan, "I", "Force an immediate scan for machine checks"); +} + +/* Must be executed on each CPU. */ +void +mca_init(void) +{ + uint64_t mcg_cap; + int i; + + /* MCE is required. */ + if (!mca_enabled || !(cpu_feature & CPUID_MCE)) + return; + + if (cpu_feature & CPUID_MCA) { + if (PCPU_GET(cpuid) == 0) + mca_setup(); + + sched_pin(); + mcg_cap = rdmsr(MSR_MCG_CAP); + if (mcg_cap & MCG_CAP_CTL_P) + /* Enable MCA features. */ + wrmsr(MSR_MCG_CTL, MCG_CTL_ENABLE); + + for (i = 0; i < (mcg_cap & MCG_CAP_COUNT); i++) { + /* + * Enable logging of all errors. For P6 + * processors, MC0_CTL is always enabled. + * + * XXX: Better CPU test needed here? + */ + if (!(i == 0 && (cpu_id & 0xf00) == 0x600)) + wrmsr(MSR_MC_CTL(i), 0xffffffffffffffffUL); + + /* Clear all errors. */ + wrmsr(MSR_MC_STATUS(i), 0); + } + sched_unpin(); + } + + load_cr4(rcr4() | CR4_MCE); +} + +/* Called when a machine check exception fires. */ +int +mca_intr(void) +{ + uint64_t mcg_status; + int recoverable; + + if (!(cpu_feature & CPUID_MCA)) { + /* + * Just print the values of the old Pentium registers + * and panic. + */ + printf("MC Type: 0x%lx Address: 0x%lx\n", + rdmsr(MSR_P5_MC_TYPE), rdmsr(MSR_P5_MC_ADDR)); + return (0); + } + + /* Scan the banks and check for any non-recoverable errors. */ + recoverable = mca_scan(1); + mcg_status = rdmsr(MSR_MCG_STATUS); + if (!(mcg_status & MCG_STATUS_RIPV)) + recoverable = 0; + + /* Clear MCIP. */ + wrmsr(MSR_MCG_STATUS, mcg_status & ~MCG_STATUS_MCIP); + return (recoverable); +} Modified: projects/pnet/sys/amd64/amd64/mp_machdep.c ============================================================================== --- projects/pnet/sys/amd64/amd64/mp_machdep.c Sat May 23 13:23:46 2009 (r192636) +++ projects/pnet/sys/amd64/amd64/mp_machdep.c Sat May 23 13:44:37 2009 (r192637) @@ -57,8 +57,10 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include +#include #include #include #include @@ -112,9 +114,9 @@ volatile int smp_tlb_wait; extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32); #ifdef STOP_NMI -volatile cpumask_t ipi_nmi_pending; +static volatile cpumask_t ipi_nmi_pending; -static void ipi_nmi_selected(u_int32_t cpus); +static void ipi_nmi_selected(cpumask_t cpus); #endif /* @@ -160,6 +162,8 @@ int apic_cpuids[MAX_APIC_ID + 1]; static volatile u_int cpu_ipi_pending[MAXCPU]; static u_int boot_address; +static int cpu_logical; +static int cpu_cores; static void assign_cpu_ids(void); static void set_interrupt_apic_ids(void); @@ -181,13 +185,148 @@ mem_range_AP_init(void) mem_range_softc.mr_op->initAP(&mem_range_softc); } -struct cpu_group * -cpu_topo(void) +static void +topo_probe_0xb(void) { + int logical; + int p[4]; + int bits; + int type; + int cnt; + int i; + int x; + + /* We only support two levels for now. */ + for (i = 0; i < 3; i++) { + cpuid_count(0x0B, i, p); + bits = p[0] & 0x1f; + logical = p[1] &= 0xffff; + type = (p[2] >> 8) & 0xff; + if (type == 0 || logical == 0) + break; + for (cnt = 0, x = 0; x <= MAX_APIC_ID; x++) { + if (!cpu_info[x].cpu_present || + cpu_info[x].cpu_disabled) + continue; + if (x >> bits == boot_cpu_id >> bits) + cnt++; + } + if (type == CPUID_TYPE_SMT) + cpu_logical = cnt; + else if (type == CPUID_TYPE_CORE) + cpu_cores = cnt; + } + if (cpu_logical == 0) + cpu_logical = 1; + cpu_cores /= cpu_logical; +} + +static void +topo_probe_0x4(void) +{ + u_int threads_per_cache, p[4]; + u_int htt, cmp; + int i; + + htt = cmp = 1; + /* + * If this CPU supports HTT or CMP then mention the + * number of physical/logical cores it contains. + */ + if (cpu_feature & CPUID_HTT) + htt = (cpu_procinfo & CPUID_HTT_CORES) >> 16; + if (cpu_vendor_id == CPU_VENDOR_AMD && (amd_feature2 & AMDID2_CMP)) + cmp = (cpu_procinfo2 & AMDID_CMP_CORES) + 1; + else if (cpu_vendor_id == CPU_VENDOR_INTEL && (cpu_high >= 4)) { + cpuid_count(4, 0, p); + if ((p[0] & 0x1f) != 0) + cmp = ((p[0] >> 26) & 0x3f) + 1; + } + cpu_cores = cmp; + cpu_logical = htt / cmp; + + /* Setup the initial logical CPUs info. */ + if (cpu_feature & CPUID_HTT) + logical_cpus = (cpu_procinfo & CPUID_HTT_CORES) >> 16; + + /* + * Work out if hyperthreading is *really* enabled. This + * is made really ugly by the fact that processors lie: Dual + * core processors claim to be hyperthreaded even when they're + * not, presumably because they want to be treated the same + * way as HTT with respect to per-cpu software licensing. + * At the time of writing (May 12, 2005) the only hyperthreaded + * cpus are from Intel, and Intel's dual-core processors can be + * identified via the "deterministic cache parameters" cpuid + * calls. + */ + /* + * First determine if this is an Intel processor which claims + * to have hyperthreading support. + */ + if ((cpu_feature & CPUID_HTT) && cpu_vendor_id == CPU_VENDOR_INTEL) { + /* + * If the "deterministic cache parameters" cpuid calls + * are available, use them. + */ + if (cpu_high >= 4) { + /* Ask the processor about the L1 cache. */ + for (i = 0; i < 1; i++) { + cpuid_count(4, i, p); + threads_per_cache = ((p[0] & 0x3ffc000) >> 14) + 1; + if (hyperthreading_cpus < threads_per_cache) + hyperthreading_cpus = threads_per_cache; + if ((p[0] & 0x1f) == 0) + break; + } + } + + /* + * If the deterministic cache parameters are not + * available, or if no caches were reported to exist, + * just accept what the HTT flag indicated. + */ + if (hyperthreading_cpus == 0) + hyperthreading_cpus = logical_cpus; + } +} + +static void +topo_probe(void) +{ + static int cpu_topo_probed = 0; + + if (cpu_topo_probed) + return; + + logical_cpus = logical_cpus_mask = 0; + if (cpu_high >= 0xb) + topo_probe_0xb(); + else if (cpu_high) + topo_probe_0x4(); if (cpu_cores == 0) - cpu_cores = 1; + cpu_cores = mp_ncpus > 0 ? mp_ncpus : 1; if (cpu_logical == 0) cpu_logical = 1; + cpu_topo_probed = 1; +} + +struct cpu_group * +cpu_topo(void) +{ + int cg_flags; + + /* + * Determine whether any threading flags are + * necessry. + */ + topo_probe(); + if (cpu_logical > 1 && hyperthreading_cpus) + cg_flags = CG_FLAG_HTT; + else if (cpu_logical > 1) + cg_flags = CG_FLAG_SMT; + else + cg_flags = 0; if (mp_ncpus % (cpu_cores * cpu_logical) != 0) { printf("WARNING: Non-uniform processors.\n"); printf("WARNING: Using suboptimal topology.\n"); @@ -202,17 +341,17 @@ cpu_topo(void) * Only HTT no multi-core. */ if (cpu_logical > 1 && cpu_cores == 1) - return (smp_topo_1level(CG_SHARE_L1, cpu_logical, CG_FLAG_HTT)); + return (smp_topo_1level(CG_SHARE_L1, cpu_logical, cg_flags)); /* * Only multi-core no HTT. */ if (cpu_cores > 1 && cpu_logical == 1) - return (smp_topo_1level(CG_SHARE_NONE, cpu_cores, 0)); + return (smp_topo_1level(CG_SHARE_L2, cpu_cores, cg_flags)); /* * Both HTT and multi-core. */ - return (smp_topo_2level(CG_SHARE_NONE, cpu_cores, - CG_SHARE_L1, cpu_logical, CG_FLAG_HTT)); + return (smp_topo_2level(CG_SHARE_L2, cpu_cores, + CG_SHARE_L1, cpu_logical, cg_flags)); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***