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...

Rick Macklem rmacklem at FreeBSD.org
Tue Dec 19 22:09:01 UTC 2017


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, &regs);
 				if (dtrace_pid_probe_ptr != NULL &&
-				    dtrace_pid_probe_ptr(&regs) == 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, &regs);
 			if (dtrace_return_probe_ptr != NULL)
-				dtrace_return_probe_ptr(&regs);
+				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 at freebsd.org>
+ * Copyright (c) 2016-2017 Emmanuel Vadot <manu at 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 at freebsd.org>
+ * Copyright (c) 2016-2017 Emmanuel Vadot <manu at 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 ***


More information about the svn-src-projects mailing list