Date: Tue, 19 Dec 2017 22:08:57 +0000 (UTC) From: Rick Macklem <rmacklem@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327002 - in projects/pnfs-planb-server/sys: amd64/amd64 amd64/include arm/allwinner arm/allwinner/clkng arm/allwinner/h3 arm/arm arm/broadcom/bcm2835 arm/include arm64/arm64 arm64/incl... Message-ID: <201712192208.vBJM8vuY050050@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: rmacklem Date: Tue Dec 19 22:08:57 2017 New Revision: 327002 URL: https://svnweb.freebsd.org/changeset/base/327002 Log: Merge in an up to date kernel from head. Added: projects/pnfs-planb-server/sys/dev/syscon/ - copied from r327000, head/sys/dev/syscon/ projects/pnfs-planb-server/sys/sys/atomic_common.h - copied unchanged from r327000, head/sys/sys/atomic_common.h Modified: projects/pnfs-planb-server/sys/amd64/amd64/machdep.c projects/pnfs-planb-server/sys/amd64/amd64/trap.c projects/pnfs-planb-server/sys/amd64/include/atomic.h projects/pnfs-planb-server/sys/arm/allwinner/a10_gpio.c projects/pnfs-planb-server/sys/arm/allwinner/aw_mp.c projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_h3.c projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_sun8i_r.c projects/pnfs-planb-server/sys/arm/allwinner/h3/h3_padconf.c projects/pnfs-planb-server/sys/arm/allwinner/h3/h3_r_padconf.c projects/pnfs-planb-server/sys/arm/arm/pmap-v4.c projects/pnfs-planb-server/sys/arm/arm/pmap-v6.c projects/pnfs-planb-server/sys/arm/broadcom/bcm2835/bcm2835_bsc.c projects/pnfs-planb-server/sys/arm/include/atomic.h projects/pnfs-planb-server/sys/arm/include/sysreg.h projects/pnfs-planb-server/sys/arm64/arm64/pmap.c projects/pnfs-planb-server/sys/arm64/include/atomic.h projects/pnfs-planb-server/sys/cam/ata/ata_da.c projects/pnfs-planb-server/sys/cam/ata/ata_pmp.c projects/pnfs-planb-server/sys/cam/ata/ata_xpt.c projects/pnfs-planb-server/sys/cam/cam_periph.c projects/pnfs-planb-server/sys/cam/cam_periph.h projects/pnfs-planb-server/sys/cam/cam_xpt.c projects/pnfs-planb-server/sys/cam/cam_xpt.h projects/pnfs-planb-server/sys/cam/mmc/mmc_da.c projects/pnfs-planb-server/sys/cam/mmc/mmc_xpt.c projects/pnfs-planb-server/sys/cam/nvme/nvme_da.c projects/pnfs-planb-server/sys/cam/nvme/nvme_xpt.c projects/pnfs-planb-server/sys/cam/scsi/scsi_cd.c projects/pnfs-planb-server/sys/cam/scsi/scsi_ch.c projects/pnfs-planb-server/sys/cam/scsi/scsi_da.c projects/pnfs-planb-server/sys/cam/scsi/scsi_enc.c projects/pnfs-planb-server/sys/cam/scsi/scsi_pass.c projects/pnfs-planb-server/sys/cam/scsi/scsi_pt.c projects/pnfs-planb-server/sys/cam/scsi/scsi_sa.c projects/pnfs-planb-server/sys/cam/scsi/scsi_sg.c projects/pnfs-planb-server/sys/cam/scsi/scsi_target.c projects/pnfs-planb-server/sys/cam/scsi/scsi_xpt.c projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap_impl.h projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c projects/pnfs-planb-server/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/pnfs-planb-server/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/pnfs-planb-server/sys/compat/linuxkpi/common/src/linux_page.c projects/pnfs-planb-server/sys/compat/linuxkpi/common/src/linux_rcu.c projects/pnfs-planb-server/sys/conf/NOTES projects/pnfs-planb-server/sys/conf/files projects/pnfs-planb-server/sys/conf/files.arm64 projects/pnfs-planb-server/sys/conf/kern.post.mk projects/pnfs-planb-server/sys/conf/ldscript.powerpc64 projects/pnfs-planb-server/sys/conf/options projects/pnfs-planb-server/sys/contrib/dev/acpica/changes.txt projects/pnfs-planb-server/sys/contrib/dev/acpica/common/adisasm.c projects/pnfs-planb-server/sys/contrib/dev/acpica/common/dmswitch.c projects/pnfs-planb-server/sys/contrib/dev/acpica/common/dmtable.c projects/pnfs-planb-server/sys/contrib/dev/acpica/common/dmtables.c projects/pnfs-planb-server/sys/contrib/dev/acpica/common/dmtbdump.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/aslcodegen.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/aslcompile.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/asldebug.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/aslfiles.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/asloptions.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/aslparseop.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/aslstartup.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/aslsupport.l projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/asltree.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/aslutils.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/cvcompiler.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/cvdisasm.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/cvparser.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/dtcompile.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/dttable1.c projects/pnfs-planb-server/sys/contrib/dev/acpica/compiler/prscan.c projects/pnfs-planb-server/sys/contrib/dev/acpica/components/debugger/dbfileio.c projects/pnfs-planb-server/sys/contrib/dev/acpica/components/disassembler/dmwalk.c projects/pnfs-planb-server/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c projects/pnfs-planb-server/sys/contrib/dev/acpica/components/executer/exdump.c projects/pnfs-planb-server/sys/contrib/dev/acpica/components/hardware/hwvalid.c projects/pnfs-planb-server/sys/contrib/dev/acpica/components/namespace/nsxfeval.c projects/pnfs-planb-server/sys/contrib/dev/acpica/components/parser/psutils.c projects/pnfs-planb-server/sys/contrib/dev/acpica/components/utilities/utdebug.c projects/pnfs-planb-server/sys/contrib/dev/acpica/components/utilities/utnonansi.c projects/pnfs-planb-server/sys/contrib/dev/acpica/components/utilities/utosi.c projects/pnfs-planb-server/sys/contrib/dev/acpica/components/utilities/uttrack.c projects/pnfs-planb-server/sys/contrib/dev/acpica/include/acexcep.h projects/pnfs-planb-server/sys/contrib/dev/acpica/include/acglobal.h projects/pnfs-planb-server/sys/contrib/dev/acpica/include/acpixf.h projects/pnfs-planb-server/sys/contrib/dev/acpica/include/actypes.h projects/pnfs-planb-server/sys/contrib/dev/acpica/include/acutils.h projects/pnfs-planb-server/sys/contrib/dev/acpica/os_specific/service_layers/osgendbg.c projects/pnfs-planb-server/sys/contrib/zstd/programs/fileio.c projects/pnfs-planb-server/sys/contrib/zstd/programs/zstdcli.c projects/pnfs-planb-server/sys/ddb/db_sym.c projects/pnfs-planb-server/sys/dev/acpica/acpi_cpu.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_btcoex.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_debug.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_decode.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_desc.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_devid.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_diagcodes.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_eeprom.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_eeprom_9287.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_eeprom_9287.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_eeprom_v1.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_eeprom_v1.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_eeprom_v14.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_eeprom_v14.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_eeprom_v3.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_eeprom_v3.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_eeprom_v4k.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_eeprom_v4k.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_internal.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_regdomain.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_regdomain.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_regdomain/ah_rd_ctry.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_regdomain/ah_rd_freqbands.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_regdomain/ah_rd_regenum.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_regdomain/ah_rd_regmap.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ah_soc.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210_beacon.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210_interrupts.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210_keycache.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210_phy.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210_power.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210_recv.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210desc.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210phy.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5210/ar5210reg.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211_beacon.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211_keycache.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211_phy.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211_power.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211_recv.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211_xmit.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211desc.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211phy.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5211/ar5211reg.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar2316.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar2317.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar2413.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar2425.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5111.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5112.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_ani.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_beacon.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_eeprom.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_gpio.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_keycache.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_phy.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_power.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212desc.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212phy.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5212reg.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5311reg.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5212/ar5413.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5312/ar5312.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5312/ar5312_eeprom.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5312/ar5312_gpio.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5312/ar5312_interrupts.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5312/ar5312_misc.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5312/ar5312_power.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5312/ar5312_reset.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5312/ar5312phy.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5312/ar5312reg.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5312/ar5315_gpio.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar2133.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_beacon.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_cal.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_cal_adcdc.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_cal_adcgain.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_cal_iq.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_eeprom.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_gpio.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_keycache.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_phy.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_power.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_recv.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_spectral.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416desc.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416phy.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar5416/ar5416reg.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9001/ar9130_eeprom.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9001/ar9130_eeprom.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9001/ar9130_phy.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9001/ar9130_phy.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9001/ar9130reg.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9280.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9280.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9285.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9285.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9285_btcoex.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9285_reset.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9285an.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9287.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9287.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9287_olc.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9287_reset.c projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9287_reset.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9287an.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9002/ar9287phy.h projects/pnfs-planb-server/sys/dev/ath/ath_hal/ar9003/ar9300_btcoex.h projects/pnfs-planb-server/sys/dev/bhnd/bcma/bcma.c projects/pnfs-planb-server/sys/dev/bhnd/bcma/bcma.h projects/pnfs-planb-server/sys/dev/bhnd/bcma/bcma_bhndb.c projects/pnfs-planb-server/sys/dev/bhnd/bcma/bcma_dmp.h projects/pnfs-planb-server/sys/dev/bhnd/bcma/bcma_erom.c projects/pnfs-planb-server/sys/dev/bhnd/bcma/bcma_eromreg.h projects/pnfs-planb-server/sys/dev/bhnd/bcma/bcma_eromvar.h projects/pnfs-planb-server/sys/dev/bhnd/bcma/bcma_subr.c projects/pnfs-planb-server/sys/dev/bhnd/bcma/bcmavar.h projects/pnfs-planb-server/sys/dev/bhnd/bhnd.c projects/pnfs-planb-server/sys/dev/bhnd/bhnd.h projects/pnfs-planb-server/sys/dev/bhnd/bhnd_debug.h projects/pnfs-planb-server/sys/dev/bhnd/bhnd_erom.c projects/pnfs-planb-server/sys/dev/bhnd/bhnd_erom.h projects/pnfs-planb-server/sys/dev/bhnd/bhnd_erom_types.h projects/pnfs-planb-server/sys/dev/bhnd/bhnd_eromvar.h projects/pnfs-planb-server/sys/dev/bhnd/bhnd_ids.h projects/pnfs-planb-server/sys/dev/bhnd/bhnd_match.h projects/pnfs-planb-server/sys/dev/bhnd/bhnd_private.h projects/pnfs-planb-server/sys/dev/bhnd/bhnd_subr.c projects/pnfs-planb-server/sys/dev/bhnd/bhnd_types.h projects/pnfs-planb-server/sys/dev/bhnd/bhndb/bhndb.c projects/pnfs-planb-server/sys/dev/bhnd/bhndb/bhndb_pci.c projects/pnfs-planb-server/sys/dev/bhnd/bhndb/bhndb_pci_hwdata.c projects/pnfs-planb-server/sys/dev/bhnd/bhndb/bhndb_subr.c projects/pnfs-planb-server/sys/dev/bhnd/bhndreg.h projects/pnfs-planb-server/sys/dev/bhnd/bhndvar.h projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/bhnd_pmu_chipc.c projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/bhnd_sprom_chipc.c projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipc.c projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipc.h projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipc_cfi.c projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipc_gpio.c projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipc_gpiovar.h projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipc_private.h projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipc_slicer.c projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipc_slicer.h projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipc_spi.c projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipc_spi.h projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipc_subr.c projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipcreg.h projects/pnfs-planb-server/sys/dev/bhnd/cores/chipc/chipcvar.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pci/bhnd_pci.c projects/pnfs-planb-server/sys/dev/bhnd/cores/pci/bhnd_pci_hostb.c projects/pnfs-planb-server/sys/dev/bhnd/cores/pci/bhnd_pci_hostbvar.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pci/bhnd_pcib.c projects/pnfs-planb-server/sys/dev/bhnd/cores/pci/bhnd_pcibvar.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pci/bhnd_pcireg.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pci/bhnd_pcivar.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pcie2/bhnd_pcie2.c projects/pnfs-planb-server/sys/dev/bhnd/cores/pcie2/bhnd_pcie2_hostb.c projects/pnfs-planb-server/sys/dev/bhnd/cores/pcie2/bhnd_pcie2_hostbvar.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pcie2/bhnd_pcie2_reg.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pcie2/bhnd_pcie2_var.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pcie2/bhnd_pcie2b.c projects/pnfs-planb-server/sys/dev/bhnd/cores/pcie2/bhnd_pcie2b_var.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pmu/bhnd_pmu.c projects/pnfs-planb-server/sys/dev/bhnd/cores/pmu/bhnd_pmu.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pmu/bhnd_pmu_core.c projects/pnfs-planb-server/sys/dev/bhnd/cores/pmu/bhnd_pmu_private.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pmu/bhnd_pmu_subr.c projects/pnfs-planb-server/sys/dev/bhnd/cores/pmu/bhnd_pmu_types.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pmu/bhnd_pmureg.h projects/pnfs-planb-server/sys/dev/bhnd/cores/pmu/bhnd_pmuvar.h projects/pnfs-planb-server/sys/dev/bhnd/cores/usb/bhnd_ehci.c projects/pnfs-planb-server/sys/dev/bhnd/cores/usb/bhnd_ohci.c projects/pnfs-planb-server/sys/dev/bhnd/cores/usb/bhnd_usb.c projects/pnfs-planb-server/sys/dev/bhnd/cores/usb/bhnd_usbvar.h projects/pnfs-planb-server/sys/dev/bhnd/nvram/bhnd_nvram_data_sprom.c projects/pnfs-planb-server/sys/dev/bhnd/nvram/nvram_map projects/pnfs-planb-server/sys/dev/bhnd/siba/siba.c projects/pnfs-planb-server/sys/dev/bhnd/tools/bus_macro.sh projects/pnfs-planb-server/sys/dev/bnxt/bnxt.h projects/pnfs-planb-server/sys/dev/bnxt/bnxt_hwrm.c projects/pnfs-planb-server/sys/dev/bnxt/bnxt_hwrm.h projects/pnfs-planb-server/sys/dev/bnxt/bnxt_sysctl.c projects/pnfs-planb-server/sys/dev/bnxt/if_bnxt.c projects/pnfs-planb-server/sys/dev/bwn/if_bwn.c projects/pnfs-planb-server/sys/dev/bwn/if_bwn_bhnd.c projects/pnfs-planb-server/sys/dev/bwn/if_bwn_pci.c projects/pnfs-planb-server/sys/dev/bwn/if_bwn_siba_compat.c projects/pnfs-planb-server/sys/dev/bwn/if_bwnreg.h projects/pnfs-planb-server/sys/dev/cardbus/cardbus_cis.c projects/pnfs-planb-server/sys/dev/dpaa/bman_fdt.c projects/pnfs-planb-server/sys/dev/dpaa/qman_fdt.c projects/pnfs-planb-server/sys/dev/e1000/em_txrx.c projects/pnfs-planb-server/sys/dev/e1000/if_em.c projects/pnfs-planb-server/sys/dev/e1000/if_em.h projects/pnfs-planb-server/sys/dev/e1000/igb_txrx.c projects/pnfs-planb-server/sys/dev/firewire/if_fwe.c projects/pnfs-planb-server/sys/dev/firewire/if_fwip.c projects/pnfs-planb-server/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c projects/pnfs-planb-server/sys/dev/iicbus/ds3231.c projects/pnfs-planb-server/sys/dev/ioat/ioat.c projects/pnfs-planb-server/sys/dev/iscsi/icl_soft.c projects/pnfs-planb-server/sys/dev/lmc/if_lmc.c projects/pnfs-planb-server/sys/dev/mlx4/mlx4_core/icm.h projects/pnfs-planb-server/sys/dev/mlx4/mlx4_en/en.h projects/pnfs-planb-server/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c projects/pnfs-planb-server/sys/dev/nvme/nvme.c projects/pnfs-planb-server/sys/dev/nvme/nvme_ctrlr.c projects/pnfs-planb-server/sys/dev/nvme/nvme_private.h projects/pnfs-planb-server/sys/dev/smc/if_smc.c projects/pnfs-planb-server/sys/dev/uart/uart_cpu_arm64.c projects/pnfs-planb-server/sys/dev/usb/net/if_mos.c projects/pnfs-planb-server/sys/dev/usb/wlan/if_uath.c projects/pnfs-planb-server/sys/dev/vnic/nicvf_queues.c projects/pnfs-planb-server/sys/dev/vt/hw/fb/vt_fb.c projects/pnfs-planb-server/sys/dev/vt/vt.h projects/pnfs-planb-server/sys/dev/vt/vt_buf.c projects/pnfs-planb-server/sys/dev/vt/vt_core.c projects/pnfs-planb-server/sys/fs/devfs/devfs_vnops.c projects/pnfs-planb-server/sys/fs/ext2fs/ext2_extattr.c projects/pnfs-planb-server/sys/fs/ext2fs/ext2_hash.c projects/pnfs-planb-server/sys/fs/ext2fs/ext2_vnops.c projects/pnfs-planb-server/sys/fs/fdescfs/fdesc_vnops.c projects/pnfs-planb-server/sys/fs/fuse/fuse_vnops.c projects/pnfs-planb-server/sys/fs/msdosfs/msdosfs_vnops.c projects/pnfs-planb-server/sys/fs/nandfs/nandfs_vnops.c projects/pnfs-planb-server/sys/fs/nfs/nfs_commonport.c projects/pnfs-planb-server/sys/fs/nfs/nfs_commonsubs.c projects/pnfs-planb-server/sys/fs/nfs/nfsproto.h projects/pnfs-planb-server/sys/fs/nfsclient/nfs_clcomsubs.c projects/pnfs-planb-server/sys/fs/nfsclient/nfs_clvnops.c projects/pnfs-planb-server/sys/fs/smbfs/smbfs_vnops.c projects/pnfs-planb-server/sys/fs/tmpfs/tmpfs.h projects/pnfs-planb-server/sys/fs/tmpfs/tmpfs_fifoops.c projects/pnfs-planb-server/sys/fs/tmpfs/tmpfs_subr.c projects/pnfs-planb-server/sys/fs/tmpfs/tmpfs_vfsops.c projects/pnfs-planb-server/sys/fs/tmpfs/tmpfs_vnops.c projects/pnfs-planb-server/sys/geom/eli/g_eli_hmac.c projects/pnfs-planb-server/sys/geom/mirror/g_mirror.c projects/pnfs-planb-server/sys/geom/mirror/g_mirror.h projects/pnfs-planb-server/sys/geom/raid/tr_concat.c projects/pnfs-planb-server/sys/geom/raid/tr_raid5.c projects/pnfs-planb-server/sys/i386/acpica/acpi_wakecode.S projects/pnfs-planb-server/sys/i386/conf/NOTES projects/pnfs-planb-server/sys/i386/i386/locore.s projects/pnfs-planb-server/sys/i386/i386/pmap.c projects/pnfs-planb-server/sys/i386/i386/trap.c projects/pnfs-planb-server/sys/i386/include/atomic.h projects/pnfs-planb-server/sys/i386/include/param.h projects/pnfs-planb-server/sys/kern/kern_descrip.c projects/pnfs-planb-server/sys/kern/kern_tc.c projects/pnfs-planb-server/sys/kern/md4c.c projects/pnfs-planb-server/sys/kern/subr_prf.c projects/pnfs-planb-server/sys/kern/vfs_default.c projects/pnfs-planb-server/sys/kern/vfs_extattr.c projects/pnfs-planb-server/sys/mips/broadcom/bhnd_nexus.c projects/pnfs-planb-server/sys/mips/include/atomic.h projects/pnfs-planb-server/sys/mips/mips/machdep.c projects/pnfs-planb-server/sys/modules/dtb/allwinner/Makefile projects/pnfs-planb-server/sys/modules/vmm/Makefile projects/pnfs-planb-server/sys/net/if.h projects/pnfs-planb-server/sys/net/if_vxlan.c projects/pnfs-planb-server/sys/net/ifdi_if.m projects/pnfs-planb-server/sys/net/iflib.c projects/pnfs-planb-server/sys/net/iflib.h projects/pnfs-planb-server/sys/net/route.c projects/pnfs-planb-server/sys/net/sff8472.h projects/pnfs-planb-server/sys/net80211/ieee80211_proto.c projects/pnfs-planb-server/sys/net80211/ieee80211_proto.h projects/pnfs-planb-server/sys/netinet/sctp_crc32.c projects/pnfs-planb-server/sys/netinet/sctp_crc32.h projects/pnfs-planb-server/sys/netinet/sctp_input.c projects/pnfs-planb-server/sys/netinet/sctp_input.h projects/pnfs-planb-server/sys/netinet/sctp_output.c projects/pnfs-planb-server/sys/netinet/sctp_sysctl.c projects/pnfs-planb-server/sys/netinet/sctp_uio.h projects/pnfs-planb-server/sys/netinet/tcp_output.c projects/pnfs-planb-server/sys/netinet/tcp_var.h projects/pnfs-planb-server/sys/netinet6/frag6.c projects/pnfs-planb-server/sys/netinet6/icmp6.c projects/pnfs-planb-server/sys/netinet6/in6.h projects/pnfs-planb-server/sys/netinet6/nd6_nbr.c projects/pnfs-planb-server/sys/netinet6/nd6_rtr.c projects/pnfs-planb-server/sys/netinet6/sctp6_usrreq.c projects/pnfs-planb-server/sys/netpfil/pf/if_pflog.c projects/pnfs-planb-server/sys/netpfil/pf/in4_cksum.c projects/pnfs-planb-server/sys/netpfil/pf/pf.h projects/pnfs-planb-server/sys/netpfil/pf/pf_osfp.c projects/pnfs-planb-server/sys/powerpc/booke/booke_machdep.c projects/pnfs-planb-server/sys/powerpc/booke/pmap.c projects/pnfs-planb-server/sys/powerpc/include/atomic.h projects/pnfs-planb-server/sys/powerpc/include/trap.h projects/pnfs-planb-server/sys/powerpc/powerpc/cpu.c projects/pnfs-planb-server/sys/powerpc/powerpc/machdep.c projects/pnfs-planb-server/sys/powerpc/powerpc/pmap_dispatch.c projects/pnfs-planb-server/sys/powerpc/powerpc/trap.c projects/pnfs-planb-server/sys/riscv/include/atomic.h projects/pnfs-planb-server/sys/riscv/riscv/pmap.c projects/pnfs-planb-server/sys/sparc64/include/atomic.h projects/pnfs-planb-server/sys/sparc64/sparc64/pmap.c projects/pnfs-planb-server/sys/sys/_ucontext.h projects/pnfs-planb-server/sys/sys/_vm_domain.h projects/pnfs-planb-server/sys/sys/auxv.h projects/pnfs-planb-server/sys/sys/bus_dma.h projects/pnfs-planb-server/sys/sys/bus_dma_internal.h projects/pnfs-planb-server/sys/sys/capsicum.h projects/pnfs-planb-server/sys/sys/cdefs.h projects/pnfs-planb-server/sys/sys/cnv.h projects/pnfs-planb-server/sys/sys/devmap.h projects/pnfs-planb-server/sys/sys/disk_zone.h projects/pnfs-planb-server/sys/sys/dnv.h projects/pnfs-planb-server/sys/sys/dtrace_bsd.h projects/pnfs-planb-server/sys/sys/fbio.h projects/pnfs-planb-server/sys/sys/gtaskqueue.h projects/pnfs-planb-server/sys/sys/gzio.h projects/pnfs-planb-server/sys/sys/imgact_binmisc.h projects/pnfs-planb-server/sys/sys/intr.h projects/pnfs-planb-server/sys/sys/iov.h projects/pnfs-planb-server/sys/sys/iov_schema.h projects/pnfs-planb-server/sys/sys/md4.h projects/pnfs-planb-server/sys/sys/md5.h projects/pnfs-planb-server/sys/sys/mouse.h projects/pnfs-planb-server/sys/sys/msg.h projects/pnfs-planb-server/sys/sys/numa.h projects/pnfs-planb-server/sys/sys/nv.h projects/pnfs-planb-server/sys/sys/rman.h projects/pnfs-planb-server/sys/sys/snoop.h projects/pnfs-planb-server/sys/sys/socketvar.h projects/pnfs-planb-server/sys/sys/soundcard.h projects/pnfs-planb-server/sys/sys/spigenio.h projects/pnfs-planb-server/sys/sys/syscallsubr.h projects/pnfs-planb-server/sys/sys/tiio.h projects/pnfs-planb-server/sys/sys/timetc.h projects/pnfs-planb-server/sys/sys/zlib.h projects/pnfs-planb-server/sys/tools/embed_mfs.sh projects/pnfs-planb-server/sys/ufs/ffs/ffs_alloc.c projects/pnfs-planb-server/sys/ufs/ufs/ufs_dirhash.c projects/pnfs-planb-server/sys/ufs/ufs/ufs_vnops.c projects/pnfs-planb-server/sys/vm/uma_core.c projects/pnfs-planb-server/sys/vm/vm_pageout.c projects/pnfs-planb-server/sys/x86/acpica/acpi_wakeup.c projects/pnfs-planb-server/sys/x86/x86/mp_x86.c Directory Properties: projects/pnfs-planb-server/sys/ (props changed) projects/pnfs-planb-server/sys/cddl/contrib/opensolaris/ (props changed) projects/pnfs-planb-server/sys/contrib/dev/acpica/ (props changed) projects/pnfs-planb-server/sys/contrib/zstd/ (props changed) Modified: projects/pnfs-planb-server/sys/amd64/amd64/machdep.c ============================================================================== --- projects/pnfs-planb-server/sys/amd64/amd64/machdep.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/amd64/amd64/machdep.c Tue Dec 19 22:08:57 2017 (r327002) @@ -184,8 +184,6 @@ struct init_ops init_ops = { */ extern char kernphys[]; -struct msgbuf *msgbufp; - /* * Physical address of the EFI System Table. Stashed from the metadata hints * passed into the kernel and used by the EFI code to call runtime services. Modified: projects/pnfs-planb-server/sys/amd64/amd64/trap.c ============================================================================== --- projects/pnfs-planb-server/sys/amd64/amd64/trap.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/amd64/amd64/trap.c Tue Dec 19 22:08:57 2017 (r327002) @@ -164,9 +164,6 @@ SYSCTL_INT(_machdep, OID_AUTO, uprintf_signal, CTLFLAG void trap(struct trapframe *frame) { -#ifdef KDTRACE_HOOKS - struct reg regs; -#endif ksiginfo_t ksi; struct thread *td; struct proc *p; @@ -278,9 +275,8 @@ trap(struct trapframe *frame) enable_intr(); #ifdef KDTRACE_HOOKS if (type == T_BPTFLT) { - fill_frame_regs(frame, ®s); if (dtrace_pid_probe_ptr != NULL && - dtrace_pid_probe_ptr(®s) == 0) + dtrace_pid_probe_ptr(frame) == 0) return; } #endif @@ -406,9 +402,8 @@ trap(struct trapframe *frame) #ifdef KDTRACE_HOOKS case T_DTRACE_RET: enable_intr(); - fill_frame_regs(frame, ®s); if (dtrace_return_probe_ptr != NULL) - dtrace_return_probe_ptr(®s); + dtrace_return_probe_ptr(frame); return; #endif } Modified: projects/pnfs-planb-server/sys/amd64/include/atomic.h ============================================================================== --- projects/pnfs-planb-server/sys/amd64/include/atomic.h Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/amd64/include/atomic.h Tue Dec 19 22:08:57 2017 (r327002) @@ -57,6 +57,8 @@ #define wmb() __asm __volatile("sfence;" : : : "memory") #define rmb() __asm __volatile("lfence;" : : : "memory") +#include <sys/atomic_common.h> + /* * Various simple operations on memory, each of which is atomic in the * presence of interrupts and multiple processors. Modified: projects/pnfs-planb-server/sys/arm/allwinner/a10_gpio.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/allwinner/a10_gpio.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm/allwinner/a10_gpio.c Tue Dec 19 22:08:57 2017 (r327002) @@ -113,7 +113,7 @@ extern const struct allwinner_padconf a33_padconf; #endif /* Defined in h3_padconf.c */ -#ifdef SOC_ALLWINNER_H3 +#if defined(SOC_ALLWINNER_H3) || defined(SOC_ALLWINNER_H5) extern const struct allwinner_padconf h3_padconf; extern const struct allwinner_padconf h3_r_padconf; #endif @@ -156,8 +156,9 @@ static struct ofw_compat_data compat_data[] = { {"allwinner,sun8i-a83t-pinctrl", (uintptr_t)&a83t_padconf}, {"allwinner,sun8i-a83t-r-pinctrl", (uintptr_t)&a83t_r_padconf}, #endif -#ifdef SOC_ALLWINNER_H3 +#if defined(SOC_ALLWINNER_H3) || defined(SOC_ALLWINNER_H5) {"allwinner,sun8i-h3-pinctrl", (uintptr_t)&h3_padconf}, + {"allwinner,sun50i-h5-pinctrl", (uintptr_t)&h3_padconf}, {"allwinner,sun8i-h3-r-pinctrl", (uintptr_t)&h3_r_padconf}, #endif #ifdef SOC_ALLWINNER_A64 @@ -352,7 +353,8 @@ a10_gpio_pin_configure(struct a10_gpio_softc *sc, uint /* Manage input/output. */ if (flags & GPIO_PIN_INPUT) { err = a10_gpio_set_function(sc, pin, A10_GPIO_INPUT); - } else if (flags & GPIO_PIN_OUTPUT) { + } else if ((flags & GPIO_PIN_OUTPUT) && + a10_gpio_get_function(sc, pin) != A10_GPIO_OUTPUT) { if (flags & GPIO_PIN_PRESET_LOW) { a10_gpio_pin_set_locked(sc, pin, 0); } else if (flags & GPIO_PIN_PRESET_HIGH) { Modified: projects/pnfs-planb-server/sys/arm/allwinner/aw_mp.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/allwinner/aw_mp.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm/allwinner/aw_mp.c Tue Dec 19 22:08:57 2017 (r327002) @@ -83,13 +83,13 @@ __FBSDID("$FreeBSD$"); #define CPUCFG_DBGCTL0 0x1e0 #define CPUCFG_DBGCTL1 0x1e4 -#define CPUS_CL_RST(cl) (0x30 + (cluster) * 0x4) -#define CPUX_CL_CTRL0(cl) (0x0 + (cluster) * 0x10) -#define CPUX_CL_CTRL1(cl) (0x4 + (cluster) * 0x10) -#define CPUX_CL_CPU_STATUS(cl) (0x30 + (cluster) * 0x4) -#define CPUX_CL_RST(cl) (0x80 + (cluster) * 0x4) -#define PRCM_CL_PWROFF(cl) (0x100 + (cluster) * 0x4) -#define PRCM_CL_PWR_CLAMP(cl, cpu) (0x140 + (cluster) * 0x4 + (cpu) * 0x4) +#define CPUS_CL_RST(cl) (0x30 + (cl) * 0x4) +#define CPUX_CL_CTRL0(cl) (0x0 + (cl) * 0x10) +#define CPUX_CL_CTRL1(cl) (0x4 + (cl) * 0x10) +#define CPUX_CL_CPU_STATUS(cl) (0x30 + (cl) * 0x4) +#define CPUX_CL_RST(cl) (0x80 + (cl) * 0x4) +#define PRCM_CL_PWROFF(cl) (0x100 + (cl) * 0x4) +#define PRCM_CL_PWR_CLAMP(cl, cpu) (0x140 + (cl) * 0x4 + (cpu) * 0x4) void aw_mp_setmaxid(platform_t plat) Modified: projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_h3.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_h3.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_h3.c Tue Dec 19 22:08:57 2017 (r327002) @@ -37,6 +37,10 @@ __FBSDID("$FreeBSD$"); #include <dev/extres/clk/clk_fixed.h> #include <dev/extres/clk/clk_mux.h> +#if defined(__aarch64__) +#include "opt_soc.h" +#endif + #include <arm/allwinner/clkng/aw_ccung.h> #include <arm/allwinner/clkng/aw_clk.h> #include <arm/allwinner/clkng/aw_clk_nm.h> Modified: projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_sun8i_r.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_sun8i_r.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm/allwinner/clkng/ccu_sun8i_r.c Tue Dec 19 22:08:57 2017 (r327002) @@ -33,6 +33,10 @@ __FBSDID("$FreeBSD$"); #include <sys/systm.h> #include <sys/bus.h> +#if defined(__aarch64__) +#include "opt_soc.h" +#endif + #include <dev/extres/clk/clk_div.h> #include <dev/extres/clk/clk_fixed.h> #include <dev/extres/clk/clk_mux.h> Modified: projects/pnfs-planb-server/sys/arm/allwinner/h3/h3_padconf.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/allwinner/h3/h3_padconf.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm/allwinner/h3/h3_padconf.c Tue Dec 19 22:08:57 2017 (r327002) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2016 Emmanuel Vadot <manu@freebsd.org> + * Copyright (c) 2016-2017 Emmanuel Vadot <manu@freebsd.org> * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,9 +33,13 @@ __FBSDID("$FreeBSD$"); #include <sys/kernel.h> #include <sys/types.h> +#if defined(__aarch64__) +#include "opt_soc.h" +#endif + #include <arm/allwinner/allwinner_pinctrl.h> -#ifdef SOC_ALLWINNER_H3 +#if defined(SOC_ALLWINNER_H3) || defined(SOC_ALLWINNER_H5) const static struct allwinner_pins h3_pins[] = { {"PA0", 0, 0, {"gpio_in", "gpio_out", "uart2", "jtag", NULL, NULL, "pa_eint0", NULL}, 6, 0}, Modified: projects/pnfs-planb-server/sys/arm/allwinner/h3/h3_r_padconf.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/allwinner/h3/h3_r_padconf.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm/allwinner/h3/h3_r_padconf.c Tue Dec 19 22:08:57 2017 (r327002) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2016 Emmanuel Vadot <manu@freebsd.org> + * Copyright (c) 2016-2017 Emmanuel Vadot <manu@freebsd.org> * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,9 +33,13 @@ __FBSDID("$FreeBSD$"); #include <sys/kernel.h> #include <sys/types.h> +#if defined(__aarch64__) +#include "opt_soc.h" +#endif + #include <arm/allwinner/allwinner_pinctrl.h> -#ifdef SOC_ALLWINNER_H3 +#if defined(SOC_ALLWINNER_H3) || defined(SOC_ALLWINNER_H5) const static struct allwinner_pins h3_r_pins[] = { {"PL0", 0, 0, {"gpio_in", "gpio_out", "s_twi", NULL, NULL, NULL, "pl_eint0", NULL}, 6, 0}, Modified: projects/pnfs-planb-server/sys/arm/arm/pmap-v4.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/arm/pmap-v4.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm/arm/pmap-v4.c Tue Dec 19 22:08:57 2017 (r327002) @@ -265,8 +265,6 @@ void (*pmap_copy_page_offs_func)(vm_paddr_t a_phys, int cnt); void (*pmap_zero_page_func)(vm_paddr_t, int, int); -struct msgbuf *msgbufp = NULL; - /* * Crashdump maps. */ Modified: projects/pnfs-planb-server/sys/arm/arm/pmap-v6.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/arm/pmap-v6.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm/arm/pmap-v6.c Tue Dec 19 22:08:57 2017 (r327002) @@ -294,8 +294,6 @@ vm_paddr_t first_managed_pa; */ caddr_t _tmppt = 0; -struct msgbuf *msgbufp = NULL; /* XXX move it to machdep.c */ - /* * Crashdump maps. */ Modified: projects/pnfs-planb-server/sys/arm/broadcom/bcm2835/bcm2835_bsc.c ============================================================================== --- projects/pnfs-planb-server/sys/arm/broadcom/bcm2835/bcm2835_bsc.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm/broadcom/bcm2835/bcm2835_bsc.c Tue Dec 19 22:08:57 2017 (r327002) @@ -508,7 +508,7 @@ bcm_bsc_intr(void *arg) * transfer is complete; TXD will be asserted along with ERR or * DONE if there is room in the fifo. */ - if (status & BCM_BSC_STATUS_TXD) + if ((status & BCM_BSC_STATUS_TXD) && sc->sc_totlen > 0) bcm_bsc_fill_tx_fifo(sc); } @@ -610,7 +610,7 @@ bcm_bsc_transfer(device_t dev, struct iic_msg *msgs, u */ if (sc->sc_replen == 0) { DEVICE_DEBUGF(sc, 1, "%-6s 0x%02x len %d: ", - (curisread) ? "readctl" : "write", curslave, + (curisread) ? "read" : "write", curslave, sc->sc_totlen); curlen = sc->sc_totlen; if (curisread) { @@ -622,7 +622,7 @@ bcm_bsc_transfer(device_t dev, struct iic_msg *msgs, u } } else { DEVICE_DEBUGF(sc, 1, "%-6s 0x%02x len %d: ", - (curisread) ? "readctl" : "write", curslave, + (curisread) ? "read" : "write", curslave, sc->sc_replen); /* Modified: projects/pnfs-planb-server/sys/arm/include/atomic.h ============================================================================== --- projects/pnfs-planb-server/sys/arm/include/atomic.h Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm/include/atomic.h Tue Dec 19 22:08:57 2017 (r327002) @@ -41,6 +41,8 @@ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ +#include <sys/atomic_common.h> + #include <machine/armreg.h> #ifndef _KERNEL Modified: projects/pnfs-planb-server/sys/arm/include/sysreg.h ============================================================================== --- projects/pnfs-planb-server/sys/arm/include/sysreg.h Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm/include/sysreg.h Tue Dec 19 22:08:57 2017 (r327002) @@ -76,12 +76,6 @@ #define CP15_ID_MMFR2(rr) p15, 0, rr, c0, c1, 6 /* Memory Model Feature Register 2 */ #define CP15_ID_MMFR3(rr) p15, 0, rr, c0, c1, 7 /* Memory Model Feature Register 3 */ -#define CP15_HCR(rr) p15, 4, rr, c1, c1, 0 /* Hyp Configuration Register */ -#define CP15_HCPTR(rr) p15, 4, rr, c1, c1, 2 /* Hyp Coprocessor Trap Register */ -#define CP15_HSTR(rr) p15, 4, rr, c1, c1, 3 /* Hyp System Trap Register */ -#define CP15_HSCTLR(rr) p15, 4, rr, c1, c0, 0 /* Hyp System Control Register */ -#define CP15_HDCR(rr) p15, 4, rr, c1, c1, 1 /* Hyp Debug Configuration Register */ - #define CP15_ID_ISAR0(rr) p15, 0, rr, c0, c2, 0 /* Instruction Set Attribute Register 0 */ #define CP15_ID_ISAR1(rr) p15, 0, rr, c0, c2, 1 /* Instruction Set Attribute Register 1 */ #define CP15_ID_ISAR2(rr) p15, 0, rr, c0, c2, 2 /* Instruction Set Attribute Register 2 */ @@ -95,6 +89,9 @@ #define CP15_CSSELR(rr) p15, 2, rr, c0, c0, 0 /* Cache Size Selection Register */ +#define CP15_VPIDR(rr) p15, 4, rr, c0, c0, 0 /* Virtualization Processor ID Register */ +#define CP15_VMPIDR(rr) p15, 4, rr, c0, c0, 5 /* Virtualization Multiprocessor ID Register */ + /* * CP15 C1 registers */ @@ -106,6 +103,13 @@ #define CP15_SDER(rr) p15, 0, rr, c1, c1, 1 /* Secure Debug Enable Register */ #define CP15_NSACR(rr) p15, 0, rr, c1, c1, 2 /* Non-Secure Access Control Register */ +#define CP15_HSCTLR(rr) p15, 4, rr, c1, c0, 0 /* Hyp System Control Register */ + +#define CP15_HCR(rr) p15, 4, rr, c1, c1, 0 /* Hyp Configuration Register */ +#define CP15_HDCR(rr) p15, 4, rr, c1, c1, 1 /* Hyp Debug Configuration Register */ +#define CP15_HCPTR(rr) p15, 4, rr, c1, c1, 2 /* Hyp Coprocessor Trap Register */ +#define CP15_HSTR(rr) p15, 4, rr, c1, c1, 3 /* Hyp System Trap Register */ + /* * CP15 C2 registers */ @@ -113,6 +117,9 @@ #define CP15_TTBR1(rr) p15, 0, rr, c2, c0, 1 /* Translation Table Base Register 1 */ #define CP15_TTBCR(rr) p15, 0, rr, c2, c0, 2 /* Translation Table Base Control Register */ +#define CP15_HTCR(rr) p15, 4, rr, c2, c0, 2 /* Hyp Translation Control Register */ +#define CP15_VTCR(rr) p15, 4, rr, c2, c1, 2 /* Virtualization Translation Control Register */ + /* * CP15 C3 registers */ @@ -122,6 +129,7 @@ * CP15 C5 registers */ #define CP15_DFSR(rr) p15, 0, rr, c5, c0, 0 /* Data Fault Status Register */ +#define CP15_HSR(rr) p15, 4, rr, c5, c2, 0 /* Hyp Syndrome Register */ #if __ARM_ARCH >= 6 /* From ARMv6: */ @@ -137,6 +145,9 @@ * CP15 C6 registers */ #define CP15_DFAR(rr) p15, 0, rr, c6, c0, 0 /* Data Fault Address Register */ +#define CP15_HDFAR(rr) p15, 4, rr, c6, c0, 0 /* Hyp Data Fault Address Register */ +#define CP15_HIFAR(rr) p15, 4, rr, c6, c0, 2 /* Hyp Instruction Fault Address Register */ +#define CP15_HPFAR(rr) p15, 4, rr, c6, c0, 4 /* Hyp IPA Fault Address Register */ #if __ARM_ARCH >= 6 /* From ARMv6k: */ @@ -223,6 +234,8 @@ #define CP15_TLBIMVA(rr) p15, 0, rr, c8, c7, 1 /* Invalidate unified TLB by MVA */ #define CP15_TLBIASID(rr) p15, 0, rr, c8, c7, 2 /* Invalidate unified TLB by ASID */ +#define CP15_TLBIALLH(rr) p15, 4, rr, c8, c7, 0 /* Invalidate Entire Hyp Unified TLB */ + #if __ARM_ARCH >= 6 /* From ARMv6: */ #define CP15_TLBIMVAA(rr) p15, 0, rr, c8, c7, 3 /* Invalidate unified TLB by MVA, all ASID */ @@ -264,6 +277,9 @@ #define CP15_AMAIR0(rr) p15, 0, rr, c10, c3, 0 /* Auxiliary Memory Attribute Indirection Register 0 */ #define CP15_AMAIR1(rr) p15, 0, rr, c10, c3, 1 /* Auxiliary Memory Attribute Indirection Register 1 */ +#define CP15_HMAIR0(rr) p15, 4, rr, c10, c2, 0 /* Hyp Memory Attribute Indirection Register 0 */ +#define CP15_HMAIR1(rr) p15, 4, rr, c10, c2, 1 /* Hyp Memory Attribute Indirection Register 1 */ + /* * CP15 C12 registers */ @@ -281,6 +297,7 @@ #define CP15_TPIDRURW(rr) p15, 0, rr, c13, c0, 2 /* User Read/Write Thread ID Register */ #define CP15_TPIDRURO(rr) p15, 0, rr, c13, c0, 3 /* User Read-Only Thread ID Register */ #define CP15_TPIDRPRW(rr) p15, 0, rr, c13, c0, 4 /* PL1 only Thread ID Register */ +#define CP15_HTPIDR(rr) p15, 4, rr, c13, c0, 2 /* Hyp Software Thread ID Register */ /* * CP15 C14 registers @@ -303,6 +320,12 @@ #define CP15_CNTV_CVAL(rq, rr) p15, 3, rq, rr, c14 /* Virtual Timer Compare Value Register */ #define CP15_CNTVOFF(rq, rr) p15, 4, rq, rr, c14 /* Virtual Offset Register */ #define CP15_CNTHP_CVAL(rq, rr) p15, 6, rq, rr, c14 /* PL2 Physical Timer Compare Value Register */ + +#define CP15_VTTBR(rq, rr) p15, 6, rq, rr, c2 /* Virtualization Translation Table Base Register */ +#define CP15_HTTBR(rq, rr) p15, 4, rq, rr, c2 /* Hyp Translation Table Base Register */ +#define CP15_TTBR0_2(rq, rr) p15, 0, rq, rr, c2 /* Translation Table Base Register 0 */ +#define CP15_TTBR1_2(rq, rr) p15, 1, rq, rr, c2 /* Translation Table Base Register 1 */ +#define CP15_PAR_2(rq, rr) p15, 0, rq, rr, c7 /* Physical Address Register */ /* * CP15 C15 registers Modified: projects/pnfs-planb-server/sys/arm64/arm64/pmap.c ============================================================================== --- projects/pnfs-planb-server/sys/arm64/arm64/pmap.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm64/arm64/pmap.c Tue Dec 19 22:08:57 2017 (r327002) @@ -221,8 +221,6 @@ vm_offset_t virtual_avail; /* VA of first avail page ( vm_offset_t virtual_end; /* VA of last avail page (end of kernel AS) */ vm_offset_t kernel_vm_end = 0; -struct msgbuf *msgbufp = NULL; - /* * Data for the pv entry allocation mechanism. * Updates to pv_invl_gen are protected by the pv_list_locks[] Modified: projects/pnfs-planb-server/sys/arm64/include/atomic.h ============================================================================== --- projects/pnfs-planb-server/sys/arm64/include/atomic.h Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/arm64/include/atomic.h Tue Dec 19 22:08:57 2017 (r327002) @@ -29,6 +29,8 @@ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ +#include <sys/atomic_common.h> + #define isb() __asm __volatile("isb" : : : "memory") /* Modified: projects/pnfs-planb-server/sys/cam/ata/ata_da.c ============================================================================== --- projects/pnfs-planb-server/sys/cam/ata/ata_da.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/cam/ata/ata_da.c Tue Dec 19 22:08:57 2017 (r327002) @@ -1048,7 +1048,7 @@ adadump(void *arg, void *virtual, vm_offset_t physical struct cam_periph *periph; struct ada_softc *softc; u_int secsize; - union ccb ccb; + struct ccb_ataio ataio; struct disk *dp; uint64_t lba; uint16_t count; @@ -1067,11 +1067,11 @@ adadump(void *arg, void *virtual, vm_offset_t physical return (ENXIO); } - memset(&ccb, 0, sizeof(ccb)); + memset(&ataio, 0, sizeof(ataio)); if (length > 0) { - xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); - ccb.ccb_h.ccb_state = ADA_CCB_DUMP; - cam_fill_ataio(&ccb.ataio, + xpt_setup_ccb(&ataio.ccb_h, periph->path, CAM_PRIORITY_NORMAL); + ataio.ccb_h.ccb_state = ADA_CCB_DUMP; + cam_fill_ataio(&ataio, 0, adadone, CAM_DIR_OUT, @@ -1082,19 +1082,14 @@ adadump(void *arg, void *virtual, vm_offset_t physical if ((softc->flags & ADA_FLAG_CAN_48BIT) && (lba + count >= ATA_MAX_28BIT_LBA || count >= 256)) { - ata_48bit_cmd(&ccb.ataio, ATA_WRITE_DMA48, + ata_48bit_cmd(&ataio, ATA_WRITE_DMA48, 0, lba, count); } else { - ata_28bit_cmd(&ccb.ataio, ATA_WRITE_DMA, + ata_28bit_cmd(&ataio, ATA_WRITE_DMA, 0, lba, count); } - xpt_polled_action(&ccb); - - error = adaerror(&ccb, - 0, SF_NO_RECOVERY | SF_NO_RETRY); - if ((ccb.ccb_h.status & CAM_DEV_QFRZN) != 0) - cam_release_devq(ccb.ccb_h.path, /*relsim_flags*/0, - /*reduction*/0, /*timeout*/0, /*getcount_only*/0); + error = cam_periph_runccb((union ccb *)&ataio, adaerror, + 0, SF_NO_RECOVERY | SF_NO_RETRY, NULL); if (error != 0) printf("Aborting dump due to I/O error.\n"); @@ -1103,15 +1098,15 @@ adadump(void *arg, void *virtual, vm_offset_t physical } if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) { - xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); + xpt_setup_ccb(&ataio.ccb_h, periph->path, CAM_PRIORITY_NORMAL); /* * Tell the drive to flush its internal cache. if we * can't flush in 5s we have big problems. No need to * wait the default 60s to detect problems. */ - ccb.ccb_h.ccb_state = ADA_CCB_DUMP; - cam_fill_ataio(&ccb.ataio, + ataio.ccb_h.ccb_state = ADA_CCB_DUMP; + cam_fill_ataio(&ataio, 0, adadone, CAM_DIR_NONE, @@ -1121,16 +1116,11 @@ adadump(void *arg, void *virtual, vm_offset_t physical 5*1000); if (softc->flags & ADA_FLAG_CAN_48BIT) - ata_48bit_cmd(&ccb.ataio, ATA_FLUSHCACHE48, 0, 0, 0); + ata_48bit_cmd(&ataio, ATA_FLUSHCACHE48, 0, 0, 0); else - ata_28bit_cmd(&ccb.ataio, ATA_FLUSHCACHE, 0, 0, 0); - xpt_polled_action(&ccb); - - error = adaerror(&ccb, - 0, SF_NO_RECOVERY | SF_NO_RETRY); - if ((ccb.ccb_h.status & CAM_DEV_QFRZN) != 0) - cam_release_devq(ccb.ccb_h.path, /*relsim_flags*/0, - /*reduction*/0, /*timeout*/0, /*getcount_only*/0); + ata_28bit_cmd(&ataio, ATA_FLUSHCACHE, 0, 0, 0); + error = cam_periph_runccb((union ccb *)&ataio, adaerror, + 0, SF_NO_RECOVERY | SF_NO_RETRY, NULL); if (error != 0) xpt_print(periph->path, "Synchronize cache failed\n"); } @@ -1421,7 +1411,7 @@ adasysctlinit(void *context, int pending) { struct cam_periph *periph; struct ada_softc *softc; - char tmpstr[80], tmpstr2[80]; + char tmpstr[32], tmpstr2[16]; periph = (struct cam_periph *)context; @@ -1736,10 +1726,7 @@ adaregister(struct cam_periph *periph, void *arg) else softc->quirks = ADA_Q_NONE; - bzero(&cpi, sizeof(cpi)); - xpt_setup_ccb(&cpi.ccb_h, periph->path, CAM_PRIORITY_NONE); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); + xpt_path_inq(&cpi, periph->path); TASK_INIT(&softc->sysctl_task, 0, adasysctlinit, periph); @@ -3354,7 +3341,7 @@ adaerror(union ccb *ccb, u_int32_t cam_flags, u_int32_ } #endif - return(cam_periph_error(ccb, cam_flags, sense_flags, NULL)); + return(cam_periph_error(ccb, cam_flags, sense_flags)); } static void @@ -3377,7 +3364,8 @@ adagetparams(struct cam_periph *periph, struct ccb_get dp->heads = cgd->ident_data.heads; dp->secs_per_track = cgd->ident_data.sectors; dp->cylinders = cgd->ident_data.cylinders; - dp->sectors = cgd->ident_data.cylinders * dp->heads * dp->secs_per_track; + dp->sectors = cgd->ident_data.cylinders * + (u_int32_t)(dp->heads * dp->secs_per_track); } lbasize = (u_int32_t)cgd->ident_data.lba_size_1 | ((u_int32_t)cgd->ident_data.lba_size_2 << 16); @@ -3509,32 +3497,9 @@ adaspindown(uint8_t cmd, int flags) 0, ada_default_timeout*1000); ata_28bit_cmd(&local_ccb, cmd, 0, 0, 0); - - if (!SCHEDULER_STOPPED()) { - /* - * Not panicing, can just do the normal runccb - * XXX should make cam_periph_runccb work while - * XXX panicing... later - */ - error = cam_periph_runccb((union ccb *)&local_ccb, adaerror, - /*cam_flags*/0, /*sense_flags*/ SF_NO_RECOVERY | SF_NO_RETRY, - softc->disk->d_devstat); - } else { - /* - * Panicing, so we have to do this by hand: do - * xpt_polled_action to run the request through the SIM, - * extract the error, and if the queue was frozen, - * unfreeze it. cam_periph_runccb takes care of these - * details, but xpt_polled_action doesn't. - */ - xpt_polled_action((union ccb *)&local_ccb); - error = adaerror((union ccb *)&local_ccb, 0, - SF_NO_RECOVERY | SF_NO_RETRY); - if ((local_ccb.ccb_h.status & CAM_DEV_QFRZN) != 0) - cam_release_devq(local_ccb.ccb_h.path, - /*relsim_flags*/0, /*reduction*/0, - /*timeout*/0, /*getcount_only*/0); - } + error = cam_periph_runccb((union ccb *)&local_ccb, adaerror, + /*cam_flags*/0, /*sense_flags*/ SF_NO_RECOVERY | SF_NO_RETRY, + softc->disk->d_devstat); if (error != 0) xpt_print(periph->path, "Spin-down disk failed\n"); cam_periph_unlock(periph); Modified: projects/pnfs-planb-server/sys/cam/ata/ata_pmp.c ============================================================================== --- projects/pnfs-planb-server/sys/cam/ata/ata_pmp.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/cam/ata/ata_pmp.c Tue Dec 19 22:08:57 2017 (r327002) @@ -340,7 +340,7 @@ pmpsysctlinit(void *context, int pending) { struct cam_periph *periph; struct pmp_softc *softc; - char tmpstr[80], tmpstr2[80]; + char tmpstr[32], tmpstr2[16]; periph = (struct cam_periph *)context; if (cam_periph_acquire(periph) != CAM_REQ_CMP) @@ -597,7 +597,7 @@ pmpdone(struct cam_periph *periph, union ccb *done_ccb priority = done_ccb->ccb_h.pinfo.priority; if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { - if (cam_periph_error(done_ccb, 0, 0, NULL) == ERESTART) { + if (cam_periph_error(done_ccb, 0, 0) == ERESTART) { return; } else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { cam_release_devq(done_ccb->ccb_h.path, Modified: projects/pnfs-planb-server/sys/cam/ata/ata_xpt.c ============================================================================== --- projects/pnfs-planb-server/sys/cam/ata/ata_xpt.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/cam/ata/ata_xpt.c Tue Dec 19 22:08:57 2017 (r327002) @@ -763,8 +763,8 @@ probedone(struct cam_periph *periph, union ccb *done_c if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { if (cam_periph_error(done_ccb, - 0, softc->restart ? (SF_NO_RECOVERY | SF_NO_RETRY) : 0, - NULL) == ERESTART) { + 0, softc->restart ? (SF_NO_RECOVERY | SF_NO_RETRY) : 0 + ) == ERESTART) { out: /* Drop freeze taken due to CAM_DEV_QFREEZE flag set. */ cam_release_devq(path, 0, 0, 0, FALSE); @@ -1006,10 +1006,7 @@ noerror: if (path->device->mintags != 0 && path->bus->sim->max_tagged_dev_openings != 0) { /* Check if the SIM does not want queued commands. */ - bzero(&cpi, sizeof(cpi)); - xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); + xpt_path_inq(&cpi, path); if (cpi.ccb_h.status == CAM_REQ_CMP && (cpi.hba_inquiry & PI_TAG_ABLE)) { /* Report SIM which tags are allowed. */ @@ -1412,10 +1409,7 @@ ata_scan_bus(struct cam_periph *periph, union ccb *req xpt_done(request_ccb); return; } - xpt_setup_ccb(&work_ccb->ccb_h, request_ccb->ccb_h.path, - request_ccb->ccb_h.pinfo.priority); - work_ccb->ccb_h.func_code = XPT_PATH_INQ; - xpt_action(work_ccb); + xpt_path_inq(&work_ccb->cpi, request_ccb->ccb_h.path); if (work_ccb->ccb_h.status != CAM_REQ_CMP) { request_ccb->ccb_h.status = work_ccb->ccb_h.status; xpt_free_ccb(work_ccb); @@ -1570,10 +1564,7 @@ ata_scan_lun(struct cam_periph *periph, struct cam_pat CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_scan_lun\n")); - xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); - + xpt_path_inq(&cpi, path); if (cpi.ccb_h.status != CAM_REQ_CMP) { if (request_ccb != NULL) { request_ccb->ccb_h.status = cpi.ccb_h.status; @@ -1682,9 +1673,7 @@ ata_device_transport(struct cam_path *path) struct ata_params *ident_buf = NULL; /* Get transport information from the SIM */ - xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); + xpt_path_inq(&cpi, path); path->device->transport = cpi.transport; if ((path->device->flags & CAM_DEV_INQUIRY_DATA_VALID) != 0) @@ -1979,9 +1968,7 @@ ata_set_transfer_settings(struct ccb_trans_settings *c scsi = &cts->proto_specific.scsi; else scsi = NULL; - xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); + xpt_path_inq(&cpi, path); /* Sanity checking */ if ((cpi.hba_inquiry & PI_TAG_ABLE) == 0 @@ -2110,9 +2097,7 @@ _ata_announce_periph(struct cam_periph *periph, struct if ((cts->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) return; /* Ask the SIM for its base transfer speed */ - xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); + xpt_path_inq(&cpi, path); /* Report connection speed */ *speed = cpi.base_transfer_speed; if (cts->transport == XPORT_ATA) { Modified: projects/pnfs-planb-server/sys/cam/cam_periph.c ============================================================================== --- projects/pnfs-planb-server/sys/cam/cam_periph.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/cam/cam_periph.c Tue Dec 19 22:08:57 2017 (r327002) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include <sys/malloc.h> #include <sys/kernel.h> #include <sys/bio.h> +#include <sys/conf.h> #include <sys/lock.h> #include <sys/mutex.h> #include <sys/buf.h> @@ -743,9 +744,7 @@ camperiphfree(struct cam_periph *periph) arg = &ccb; break; case AC_PATH_REGISTERED: - ccb.ccb_h.func_code = XPT_PATH_INQ; - xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); - xpt_action(&ccb); + xpt_path_inq(&ccb.cpi, periph->path); arg = &ccb; break; default: @@ -1160,7 +1159,11 @@ cam_periph_runccb(union ccb *ccb, struct bintime *starttime; struct bintime ltime; int error; - + bool must_poll; + struct mtx *periph_mtx; + struct cam_periph *periph; + uint32_t timeout = 1; + starttime = NULL; xpt_path_assert(ccb->ccb_h.path, MA_OWNED); KASSERT((ccb->ccb_h.flags & CAM_UNLOCKED) == 0, @@ -1171,28 +1174,62 @@ cam_periph_runccb(union ccb *ccb, * If the user has supplied a stats structure, and if we understand * this particular type of ccb, record the transaction start. */ - if ((ds != NULL) && (ccb->ccb_h.func_code == XPT_SCSI_IO || - ccb->ccb_h.func_code == XPT_ATA_IO)) { + if (ds != NULL && + (ccb->ccb_h.func_code == XPT_SCSI_IO || + ccb->ccb_h.func_code == XPT_ATA_IO || + ccb->ccb_h.func_code == XPT_NVME_IO)) { starttime = <ime; binuptime(starttime); devstat_start_transaction(ds, starttime); } + /* + * We must poll the I/O while we're dumping. The scheduler is normally + * stopped for dumping, except when we call doadump from ddb. While the + * scheduler is running in this case, we still need to poll the I/O to + * avoid sleeping waiting for the ccb to complete. + */ + must_poll = dumping; ccb->ccb_h.cbfcnp = cam_periph_done; - xpt_action(ccb); - - do { - cam_periph_ccbwait(ccb); - if ((ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) - error = 0; - else if (error_routine != NULL) { - ccb->ccb_h.cbfcnp = cam_periph_done; - error = (*error_routine)(ccb, camflags, sense_flags); - } else - error = 0; + periph = xpt_path_periph(ccb->ccb_h.path); + periph_mtx = cam_periph_mtx(periph); - } while (error == ERESTART); - + /* + * If we're polling, then we need to ensure that we have ample resources + * in the periph. We also need to drop the periph lock while we're polling. + * cam_periph_error can reschedule the ccb by calling xpt_action and returning + * ERESTART, so we have to effect the polling in the do loop below. + */ + if (must_poll) { + mtx_unlock(periph_mtx); + timeout = xpt_poll_setup(ccb); + } + + if (timeout == 0) { + ccb->ccb_h.status = CAM_RESRC_UNAVAIL; + error = EBUSY; + } else { + xpt_action(ccb); + do { + if (must_poll) { + xpt_pollwait(ccb, timeout); + timeout = ccb->ccb_h.timeout * 10; + } else { + cam_periph_ccbwait(ccb); + } + if ((ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_CMP) + error = 0; + else if (error_routine != NULL) { + ccb->ccb_h.cbfcnp = cam_periph_done; + error = (*error_routine)(ccb, camflags, sense_flags); + } else + error = 0; + } while (error == ERESTART); + } + + if (must_poll) + mtx_lock(periph_mtx); + if ((ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { cam_release_devq(ccb->ccb_h.path, /* relsim_flags */0, @@ -1203,25 +1240,27 @@ cam_periph_runccb(union ccb *ccb, } if (ds != NULL) { + uint32_t bytes; + devstat_tag_type tag; + bool valid = true; + if (ccb->ccb_h.func_code == XPT_SCSI_IO) { - devstat_end_transaction(ds, - ccb->csio.dxfer_len - ccb->csio.resid, - ccb->csio.tag_action & 0x3, - ((ccb->ccb_h.flags & CAM_DIR_MASK) == - CAM_DIR_NONE) ? DEVSTAT_NO_DATA : - (ccb->ccb_h.flags & CAM_DIR_OUT) ? - DEVSTAT_WRITE : - DEVSTAT_READ, NULL, starttime); + bytes = ccb->csio.dxfer_len - ccb->csio.resid; + tag = (devstat_tag_type)(ccb->csio.tag_action & 0x3); } else if (ccb->ccb_h.func_code == XPT_ATA_IO) { - devstat_end_transaction(ds, - ccb->ataio.dxfer_len - ccb->ataio.resid, - 0, /* Not used in ATA */ - ((ccb->ccb_h.flags & CAM_DIR_MASK) == - CAM_DIR_NONE) ? DEVSTAT_NO_DATA : - (ccb->ccb_h.flags & CAM_DIR_OUT) ? - DEVSTAT_WRITE : - DEVSTAT_READ, NULL, starttime); + bytes = ccb->ataio.dxfer_len - ccb->ataio.resid; + tag = (devstat_tag_type)0; + } else if (ccb->ccb_h.func_code == XPT_NVME_IO) { + bytes = ccb->nvmeio.dxfer_len; /* NB: resid no possible */ + tag = (devstat_tag_type)0; + } else { + valid = false; } + if (valid) + devstat_end_transaction(ds, bytes, tag, + ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_NONE) ? + DEVSTAT_NO_DATA : (ccb->ccb_h.flags & CAM_DIR_OUT) ? + DEVSTAT_WRITE : DEVSTAT_READ, NULL, starttime); } return(error); @@ -1298,7 +1337,7 @@ camperiphdone(struct cam_periph *periph, union ccb *do } } if (cam_periph_error(done_ccb, - 0, SF_RETRY_UA | SF_NO_PRINT, NULL) == ERESTART) + 0, SF_RETRY_UA | SF_NO_PRINT) == ERESTART) goto out; if (done_ccb->ccb_h.status & CAM_DEV_QFRZN) { cam_release_devq(done_ccb->ccb_h.path, 0, 0, 0, 0); @@ -1712,7 +1751,7 @@ sense_error_done: */ int cam_periph_error(union ccb *ccb, cam_flags camflags, - u_int32_t sense_flags, union ccb *save_ccb) + u_int32_t sense_flags) { struct cam_path *newpath; union ccb *orig_ccb, *scan_ccb; Modified: projects/pnfs-planb-server/sys/cam/cam_periph.h ============================================================================== --- projects/pnfs-planb-server/sys/cam/cam_periph.h Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/cam/cam_periph.h Tue Dec 19 22:08:57 2017 (r327002) @@ -197,7 +197,7 @@ void cam_periph_freeze_after_event(struct cam_periph struct timeval* event_time, u_int duration_ms); int cam_periph_error(union ccb *ccb, cam_flags camflags, - u_int32_t sense_flags, union ccb *save_ccb); + u_int32_t sense_flags); static __inline struct mtx * cam_periph_mtx(struct cam_periph *periph) Modified: projects/pnfs-planb-server/sys/cam/cam_xpt.c ============================================================================== --- projects/pnfs-planb-server/sys/cam/cam_xpt.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/cam/cam_xpt.c Tue Dec 19 22:08:57 2017 (r327002) @@ -2620,9 +2620,7 @@ xptsetasyncbusfunc(struct cam_eb *bus, void *arg) CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD); xpt_path_lock(&path); - xpt_setup_ccb(&cpi.ccb_h, &path, CAM_PRIORITY_NORMAL); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); + xpt_path_inq(&cpi, &path); csa->callback(csa->callback_arg, AC_PATH_REGISTERED, &path, &cpi); @@ -3204,8 +3202,8 @@ call_sim: start_ccb->ccb_h.status)); } -void -xpt_polled_action(union ccb *start_ccb) +uint32_t +xpt_poll_setup(union ccb *start_ccb) { u_int32_t timeout; struct cam_sim *sim; @@ -3219,8 +3217,6 @@ xpt_polled_action(union ccb *start_ccb) mtx = sim->mtx; dev = start_ccb->ccb_h.path->device; - mtx_unlock(&dev->device_mtx); - /* * Steal an opening so that no other queued requests * can get it before us while we simulate interrupts. @@ -3242,29 +3238,57 @@ xpt_polled_action(union ccb *start_ccb) dev->ccbq.dev_openings++; mtx_unlock(&devq->send_mtx); - if (timeout != 0) { + return (timeout); +} + +void +xpt_pollwait(union ccb *start_ccb, uint32_t timeout) +{ + struct cam_sim *sim; + struct mtx *mtx; + + sim = start_ccb->ccb_h.path->bus->sim; + mtx = sim->mtx; + + while (--timeout > 0) { + if (mtx) + mtx_lock(mtx); + (*(sim->sim_poll))(sim); + if (mtx) + mtx_unlock(mtx); + camisr_runqueue(); + if ((start_ccb->ccb_h.status & CAM_STATUS_MASK) + != CAM_REQ_INPROG) + break; + DELAY(100); + } + + if (timeout == 0) { + /* + * XXX Is it worth adding a sim_timeout entry + * point so we can attempt recovery? If + * this is only used for dumps, I don't think + * it is. + */ + start_ccb->ccb_h.status = CAM_CMD_TIMEOUT; + } +} + +void +xpt_polled_action(union ccb *start_ccb) +{ + uint32_t timeout; + struct cam_ed *dev; + + timeout = start_ccb->ccb_h.timeout * 10; + dev = start_ccb->ccb_h.path->device; + + mtx_unlock(&dev->device_mtx); + + timeout = xpt_poll_setup(start_ccb); + if (timeout > 0) { xpt_action(start_ccb); - while(--timeout > 0) { - if (mtx) - mtx_lock(mtx); - (*(sim->sim_poll))(sim); - if (mtx) - mtx_unlock(mtx); - camisr_runqueue(); - if ((start_ccb->ccb_h.status & CAM_STATUS_MASK) - != CAM_REQ_INPROG) - break; - DELAY(100); - } - if (timeout == 0) { - /* - * XXX Is it worth adding a sim_timeout entry - * point so we can attempt recovery? If - * this is only used for dumps, I don't think - * it is. - */ - start_ccb->ccb_h.status = CAM_CMD_TIMEOUT; - } + xpt_pollwait(start_ccb, timeout); } else { start_ccb->ccb_h.status = CAM_RESRC_UNAVAIL; } @@ -3306,6 +3330,7 @@ xpt_schedule_dev(struct camq *queue, cam_pinfo *pinfo, CAM_DEBUG_PRINT(CAM_DEBUG_XPT, ("xpt_schedule_dev\n")); + old_priority = pinfo->priority; /* @@ -4060,9 +4085,7 @@ xpt_bus_register(struct cam_sim *sim, device_t parent, return (CAM_RESRC_UNAVAIL); } - xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); + xpt_path_inq(&cpi, path); if (cpi.ccb_h.status == CAM_REQ_CMP) { struct xpt_xport **xpt; Modified: projects/pnfs-planb-server/sys/cam/cam_xpt.h ============================================================================== --- projects/pnfs-planb-server/sys/cam/cam_xpt.h Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/cam/cam_xpt.h Tue Dec 19 22:08:57 2017 (r327002) @@ -36,8 +36,10 @@ #ifdef _KERNEL #include <sys/cdefs.h> +#include <cam/cam_ccb.h> #endif + /* Forward Declarations */ union ccb; struct cam_periph; @@ -144,6 +146,22 @@ void xpt_copy_path(struct cam_path *new_path, void xpt_release_path(struct cam_path *path); const char * xpt_action_name(uint32_t action); +void xpt_pollwait(union ccb *start_ccb, uint32_t timeout); +uint32_t xpt_poll_setup(union ccb *start_ccb); + +/* + * Perform a path inquiry at the request priority. The bzero may be + * unnecessary. + */ +static inline void +xpt_path_inq(struct ccb_pathinq *cpi, struct cam_path *path) +{ + + bzero(cpi, sizeof(*cpi)); + xpt_setup_ccb(&cpi->ccb_h, path, CAM_PRIORITY_NORMAL); + cpi->ccb_h.func_code = XPT_PATH_INQ; + xpt_action((union ccb *)cpi); +} #endif /* _KERNEL */ Modified: projects/pnfs-planb-server/sys/cam/mmc/mmc_da.c ============================================================================== --- projects/pnfs-planb-server/sys/cam/mmc/mmc_da.c Tue Dec 19 22:06:25 2017 (r327001) +++ projects/pnfs-planb-server/sys/cam/mmc/mmc_da.c Tue Dec 19 22:08:57 2017 (r327002) *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201712192208.vBJM8vuY050050>