svn commit: r358333 - in head/sys: amd64/amd64 amd64/linux32 arm/altera/socfpga arm/arm arm/broadcom/bcm2835 arm/freescale/imx arm/mv arm/nvidia arm/nvidia/tegra124 arm/ti arm/ti/am335x arm/ti/cpsw...

Pawel Biernacki kaktus at FreeBSD.org
Wed Feb 26 14:26:46 UTC 2020


Author: kaktus
Date: Wed Feb 26 14:26:36 2020
New Revision: 358333
URL: https://svnweb.freebsd.org/changeset/base/358333

Log:
  Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)
  
  r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are
  still not MPSAFE (or already are but aren’t properly marked).
  Use it in preparation for a general review of all nodes.
  
  This is non-functional change that adds annotations to SYSCTL_NODE and
  SYSCTL_PROC nodes using one of the soon-to-be-required flags.
  
  Mark all obvious cases as MPSAFE.  All entries that haven't been marked
  as MPSAFE before are by default marked as NEEDGIANT
  
  Approved by:	kib (mentor, blanket)
  Commented by:	kib, gallatin, melifaro
  Differential Revision:	https://reviews.freebsd.org/D23718

Modified:
  head/sys/amd64/amd64/efirt_machdep.c
  head/sys/amd64/amd64/machdep.c
  head/sys/amd64/amd64/pmap.c
  head/sys/amd64/amd64/prof_machdep.c
  head/sys/amd64/linux32/linux32_sysvec.c
  head/sys/arm/altera/socfpga/socfpga_rstmgr.c
  head/sys/arm/arm/busdma_machdep.c
  head/sys/arm/arm/cpuinfo.c
  head/sys/arm/arm/machdep_boot.c
  head/sys/arm/arm/pmap-v6.c
  head/sys/arm/broadcom/bcm2835/bcm2835_audio.c
  head/sys/arm/broadcom/bcm2835/bcm2835_bsc.c
  head/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c
  head/sys/arm/broadcom/bcm2835/bcm2835_fbd.c
  head/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
  head/sys/arm/broadcom/bcm2835/bcm2835_pwm.c
  head/sys/arm/broadcom/bcm2835/bcm2835_rng.c
  head/sys/arm/broadcom/bcm2835/bcm2835_spi.c
  head/sys/arm/freescale/imx/imx6_anatop.c
  head/sys/arm/freescale/imx/imx_machdep.c
  head/sys/arm/mv/mv_thermal.c
  head/sys/arm/mv/mv_ts.c
  head/sys/arm/nvidia/tegra124/tegra124_coretemp.c
  head/sys/arm/nvidia/tegra_soctherm.c
  head/sys/arm/ti/am335x/am335x_ehrpwm.c
  head/sys/arm/ti/am335x/am335x_lcd.c
  head/sys/arm/ti/am335x/am335x_musb.c
  head/sys/arm/ti/cpsw/if_cpsw.c
  head/sys/arm/ti/ti_adc.c
  head/sys/arm/ti/ti_pruss.c
  head/sys/arm/ti/twl/twl_clks.c
  head/sys/arm/ti/twl/twl_vreg.c
  head/sys/arm/xilinx/zy7_devcfg.c
  head/sys/arm/xilinx/zy7_slcr.c
  head/sys/arm64/arm64/busdma_bounce.c
  head/sys/arm64/arm64/pmap.c
  head/sys/cam/ata/ata_da.c
  head/sys/cam/ata/ata_pmp.c
  head/sys/cam/cam.c
  head/sys/cam/cam_iosched.c
  head/sys/cam/ctl/ctl.c
  head/sys/cam/ctl/ctl_backend_block.c
  head/sys/cam/ctl/ctl_frontend_cam_sim.c
  head/sys/cam/ctl/ctl_frontend_iscsi.c
  head/sys/cam/ctl/ctl_ha.c
  head/sys/cam/nvme/nvme_da.c
  head/sys/cam/scsi/scsi_all.c
  head/sys/cam/scsi/scsi_cd.c
  head/sys/cam/scsi/scsi_da.c
  head/sys/cam/scsi/scsi_enc.c
  head/sys/cam/scsi/scsi_sa.c
  head/sys/cam/scsi/scsi_xpt.c
  head/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c
  head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
  head/sys/cddl/dev/dtrace/dtrace_sysctl.c
  head/sys/cddl/dev/dtrace/dtrace_test.c
  head/sys/cddl/dev/profile/profile.c
  head/sys/compat/ia32/ia32_sysvec.c
  head/sys/compat/linux/linux_mib.c
  head/sys/compat/ndis/subr_ntoskrnl.c
  head/sys/compat/x86bios/x86bios.c
  head/sys/contrib/rdma/krping/krping_dev.c
  head/sys/crypto/ccp/ccp_hardware.c
  head/sys/ddb/db_capture.c
  head/sys/ddb/db_main.c
  head/sys/ddb/db_script.c
  head/sys/ddb/db_textdump.c
  head/sys/dev/aac/aac.c
  head/sys/dev/aacraid/aacraid.c
  head/sys/dev/acpi_support/acpi_asus.c
  head/sys/dev/acpi_support/acpi_asus_wmi.c
  head/sys/dev/acpi_support/acpi_fujitsu.c
  head/sys/dev/acpi_support/acpi_hp.c
  head/sys/dev/acpi_support/acpi_ibm.c
  head/sys/dev/acpi_support/acpi_panasonic.c
  head/sys/dev/acpi_support/acpi_rapidstart.c
  head/sys/dev/acpi_support/acpi_sony.c
  head/sys/dev/acpi_support/acpi_toshiba.c
  head/sys/dev/acpi_support/atk0110.c
  head/sys/dev/acpica/acpi.c
  head/sys/dev/acpica/acpi_acad.c
  head/sys/dev/acpica/acpi_battery.c
  head/sys/dev/acpica/acpi_cpu.c
  head/sys/dev/acpica/acpi_dock.c
  head/sys/dev/acpica/acpi_ec.c
  head/sys/dev/acpica/acpi_smbat.c
  head/sys/dev/acpica/acpi_thermal.c
  head/sys/dev/acpica/acpi_timer.c
  head/sys/dev/acpica/acpi_video.c
  head/sys/dev/adb/adb_kbd.c
  head/sys/dev/adb/adb_mouse.c
  head/sys/dev/ae/if_ae.c
  head/sys/dev/age/if_age.c
  head/sys/dev/ahci/ahci.c
  head/sys/dev/aic7xxx/aic79xx_osm.c
  head/sys/dev/alc/if_alc.c
  head/sys/dev/ale/if_ale.c
  head/sys/dev/altera/atse/if_atse.c
  head/sys/dev/altera/jtag_uart/altera_jtag_uart_cons.c
  head/sys/dev/amd_ecc_inject/ecc_inject.c
  head/sys/dev/amdtemp/amdtemp.c
  head/sys/dev/amr/amr.c
  head/sys/dev/an/if_an.c
  head/sys/dev/asmc/asmc.c
  head/sys/dev/ata/ata-all.c
  head/sys/dev/atkbdc/psm.c
  head/sys/dev/bce/if_bce.c
  head/sys/dev/bfe/if_bfe.c
  head/sys/dev/bge/if_bge.c
  head/sys/dev/bhnd/cores/pmu/bhnd_pmu.c
  head/sys/dev/bktr/bktr_os.c
  head/sys/dev/bnxt/bnxt_sysctl.c
  head/sys/dev/bwn/if_bwn.c
  head/sys/dev/bxe/bxe.c
  head/sys/dev/cadence/if_cgem.c
  head/sys/dev/cardbus/cardbus.c
  head/sys/dev/coretemp/coretemp.c
  head/sys/dev/cxgb/cxgb_main.c
  head/sys/dev/cxgb/cxgb_sge.c
  head/sys/dev/cxgbe/crypto/t4_crypto.c
  head/sys/dev/cxgbe/cxgbei/cxgbei.c
  head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c
  head/sys/dev/cxgbe/iw_cxgbe/cm.c
  head/sys/dev/cxgbe/t4_main.c
  head/sys/dev/cxgbe/t4_sge.c
  head/sys/dev/dcons/dcons_os.c
  head/sys/dev/efidev/efirt.c
  head/sys/dev/ena/ena_sysctl.c
  head/sys/dev/et/if_et.c
  head/sys/dev/etherswitch/mtkswitch/mtkswitch.c
  head/sys/dev/etherswitch/rtl8366/rtl8366rb.c
  head/sys/dev/evdev/evdev.c
  head/sys/dev/extres/clk/clk.c
  head/sys/dev/extres/regulator/regulator.c
  head/sys/dev/fb/vesa.c
  head/sys/dev/fdc/fdc.c
  head/sys/dev/fdt/fdt_common.c
  head/sys/dev/firewire/firewire.c
  head/sys/dev/firewire/fwmem.c
  head/sys/dev/firewire/if_fwe.c
  head/sys/dev/firewire/if_fwip.c
  head/sys/dev/firewire/sbp.c
  head/sys/dev/fxp/if_fxp.c
  head/sys/dev/gpio/gpiobacklight.c
  head/sys/dev/hifn/hifn7751.c
  head/sys/dev/hptmv/hptproc.c
  head/sys/dev/hwpmc/hwpmc_mod.c
  head/sys/dev/hyperv/netvsc/if_hn.c
  head/sys/dev/if_ndis/if_ndis_usb.c
  head/sys/dev/iicbus/ad7417.c
  head/sys/dev/iicbus/ad7418.c
  head/sys/dev/iicbus/ads111x.c
  head/sys/dev/iicbus/adt746x.c
  head/sys/dev/iicbus/ds1631.c
  head/sys/dev/iicbus/ds1775.c
  head/sys/dev/iicbus/max6690.c
  head/sys/dev/ioat/ioat.c
  head/sys/dev/ioat/ioat_test.c
  head/sys/dev/ipmi/ipmi.c
  head/sys/dev/ipw/if_ipw.c
  head/sys/dev/isci/isci_sysctl.c
  head/sys/dev/iscsi_initiator/isc_sm.c
  head/sys/dev/iscsi_initiator/iscsi.c
  head/sys/dev/iser/icl_iser.c
  head/sys/dev/isl/isl.c
  head/sys/dev/isp/isp_freebsd.c
  head/sys/dev/iwi/if_iwi.c
  head/sys/dev/jme/if_jme.c
  head/sys/dev/kbd/kbd.c
  head/sys/dev/liquidio/lio_sysctl.c
  head/sys/dev/malo/if_malo.c
  head/sys/dev/malo/if_malo_pci.c
  head/sys/dev/mfi/mfi.c
  head/sys/dev/mge/if_mge.c
  head/sys/dev/mlx4/mlx4_core/mlx4_main.c
  head/sys/dev/mlx4/mlx4_en/mlx4_en_netdev.c
  head/sys/dev/mlx5/mlx5_core/mlx5_main.c
  head/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c
  head/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls.c
  head/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
  head/sys/dev/mlx5/mlx5_en/mlx5_en_rl.c
  head/sys/dev/mlx5/mlx5_ib/mlx5_ib_cong.c
  head/sys/dev/mmc/mmc.c
  head/sys/dev/mmc/mmcsd.c
  head/sys/dev/mpr/mpr.c
  head/sys/dev/mps/mps.c
  head/sys/dev/mpt/mpt_raid.c
  head/sys/dev/mrsas/mrsas.c
  head/sys/dev/msk/if_msk.c
  head/sys/dev/mwl/if_mwl.c
  head/sys/dev/mwl/mwlhal.c
  head/sys/dev/mxge/if_mxge.c
  head/sys/dev/neta/if_mvneta.c
  head/sys/dev/netmap/netmap.c
  head/sys/dev/nfe/if_nfe.c
  head/sys/dev/nge/if_nge.c
  head/sys/dev/ntb/if_ntb/if_ntb.c
  head/sys/dev/ntb/ntb.c
  head/sys/dev/ntb/ntb_hw/ntb_hw_intel.c
  head/sys/dev/ntb/ntb_transport.c
  head/sys/dev/ntb/test/ntb_tool.c
  head/sys/dev/nvd/nvd.c
  head/sys/dev/nvme/nvme_sysctl.c
  head/sys/dev/oce/oce_sysctl.c
  head/sys/dev/ocs_fc/ocs_ioctl.c
  head/sys/dev/ow/ow.c
  head/sys/dev/ow/ow_temp.c
  head/sys/dev/pccard/pccard.c
  head/sys/dev/pccbb/pccbb.c
  head/sys/dev/pccbb/pccbb_isa.c
  head/sys/dev/puc/puc.c
  head/sys/dev/qlnx/qlnxe/qlnx_os.c
  head/sys/dev/qlnx/qlnxr/qlnxr_os.c
  head/sys/dev/qlxgb/qla_os.c
  head/sys/dev/qlxgbe/ql_hw.c
  head/sys/dev/qlxgbe/ql_os.c
  head/sys/dev/qlxge/qls_hw.c
  head/sys/dev/qlxge/qls_os.c
  head/sys/dev/re/if_re.c
  head/sys/dev/rndtest/rndtest.c
  head/sys/dev/rt/if_rt.c
  head/sys/dev/safe/safe.c
  head/sys/dev/sdhci/sdhci.c
  head/sys/dev/sfxge/sfxge.c
  head/sys/dev/sfxge/sfxge_ev.c
  head/sys/dev/sfxge/sfxge_port.c
  head/sys/dev/sfxge/sfxge_rx.c
  head/sys/dev/sfxge/sfxge_tx.c
  head/sys/dev/sk/if_sk.c
  head/sys/dev/sound/clone.c
  head/sys/dev/sound/midi/midi.c
  head/sys/dev/sound/midi/sequencer.c
  head/sys/dev/sound/pci/atiixp.c
  head/sys/dev/sound/pci/emu10kx.c
  head/sys/dev/sound/pci/es137x.c
  head/sys/dev/sound/pci/hda/hdaa.c
  head/sys/dev/sound/pci/hda/hdac.c
  head/sys/dev/sound/pci/maestro.c
  head/sys/dev/sound/pci/via8233.c
  head/sys/dev/sound/pcm/ac97.c
  head/sys/dev/sound/pcm/channel.c
  head/sys/dev/sound/pcm/feeder_eq.c
  head/sys/dev/sound/pcm/feeder_rate.c
  head/sys/dev/sound/pcm/mixer.c
  head/sys/dev/sound/pcm/sndstat.c
  head/sys/dev/sound/pcm/sound.c
  head/sys/dev/sound/pcm/vchan.c
  head/sys/dev/ste/if_ste.c
  head/sys/dev/stge/if_stge.c
  head/sys/dev/syscons/syscons.c
  head/sys/dev/tsec/if_tsec.c
  head/sys/dev/twa/tw_osl_freebsd.c
  head/sys/dev/twe/twe_freebsd.c
  head/sys/dev/tws/tws.c
  head/sys/dev/uart/uart_core.c
  head/sys/dev/ubsec/ubsec.c
  head/sys/dev/vge/if_vge.c
  head/sys/dev/virtio/block/virtio_blk.c
  head/sys/dev/virtio/network/if_vtnet.c
  head/sys/dev/vmware/pvscsi/pvscsi.c
  head/sys/dev/vmware/vmxnet3/if_vmx.c
  head/sys/dev/vr/if_vr.c
  head/sys/dev/vt/vt_core.c
  head/sys/dev/vte/if_vte.c
  head/sys/dev/watchdog/watchdog.c
  head/sys/dev/wbwd/wbwd.c
  head/sys/dev/wi/if_wi.c
  head/sys/fs/cd9660/cd9660_vnops.c
  head/sys/fs/devfs/devfs_devs.c
  head/sys/fs/ext2fs/ext2_alloc.c
  head/sys/fs/ext2fs/ext2_lookup.c
  head/sys/fs/msdosfs/msdosfs_vnops.c
  head/sys/fs/nfs/nfs_commonport.c
  head/sys/fs/nfsclient/nfs_clnfsiod.c
  head/sys/fs/nfsserver/nfs_fha_new.c
  head/sys/fs/nfsserver/nfs_nfsdport.c
  head/sys/fs/smbfs/smbfs_vfsops.c
  head/sys/fs/tmpfs/tmpfs_subr.c
  head/sys/gdb/gdb_main.c
  head/sys/gdb/netgdb.c
  head/sys/geom/cache/g_cache.c
  head/sys/geom/concat/g_concat.c
  head/sys/geom/gate/g_gate.c
  head/sys/geom/geom_dev.c
  head/sys/geom/geom_disk.c
  head/sys/geom/geom_kern.c
  head/sys/geom/journal/g_journal.c
  head/sys/geom/label/g_label.c
  head/sys/geom/label/g_label.h
  head/sys/geom/linux_lvm/g_linux_lvm.c
  head/sys/geom/mirror/g_mirror.c
  head/sys/geom/mountver/g_mountver.c
  head/sys/geom/multipath/g_multipath.c
  head/sys/geom/nop/g_nop.c
  head/sys/geom/part/g_part.c
  head/sys/geom/part/g_part_gpt.c
  head/sys/geom/part/g_part_ldm.c
  head/sys/geom/part/g_part_mbr.c
  head/sys/geom/raid/g_raid.c
  head/sys/geom/raid/g_raid.h
  head/sys/geom/raid3/g_raid3.c
  head/sys/geom/shsec/g_shsec.c
  head/sys/geom/stripe/g_stripe.c
  head/sys/geom/uzip/g_uzip.c
  head/sys/geom/vinum/geom_vinum.c
  head/sys/geom/virstor/g_virstor.c
  head/sys/geom/zero/g_zero.c
  head/sys/gnu/gcov/gcov_subr.c
  head/sys/i386/i386/elan-mmcr.c
  head/sys/i386/i386/longrun.c
  head/sys/i386/i386/machdep.c
  head/sys/i386/i386/mp_clock.c
  head/sys/i386/i386/pmap_base.c
  head/sys/i386/i386/prof_machdep.c
  head/sys/kern/imgact_binmisc.c
  head/sys/kern/imgact_elf.c
  head/sys/kern/kern_acct.c
  head/sys/kern/kern_clock.c
  head/sys/kern/kern_cons.c
  head/sys/kern/kern_cpu.c
  head/sys/kern/kern_et.c
  head/sys/kern/kern_fail.c
  head/sys/kern/kern_ffclock.c
  head/sys/kern/kern_fork.c
  head/sys/kern/kern_intr.c
  head/sys/kern/kern_jail.c
  head/sys/kern/kern_kcov.c
  head/sys/kern/kern_ktr.c
  head/sys/kern/kern_ktrace.c
  head/sys/kern/kern_linker.c
  head/sys/kern/kern_malloc.c
  head/sys/kern/kern_mbuf.c
  head/sys/kern/kern_mib.c
  head/sys/kern/kern_mutex.c
  head/sys/kern/kern_ntptime.c
  head/sys/kern/kern_pmc.c
  head/sys/kern/kern_poll.c
  head/sys/kern/kern_proc.c
  head/sys/kern/kern_prot.c
  head/sys/kern/kern_racct.c
  head/sys/kern/kern_rwlock.c
  head/sys/kern/kern_sendfile.c
  head/sys/kern/kern_shutdown.c
  head/sys/kern/kern_sig.c
  head/sys/kern/kern_switch.c
  head/sys/kern/kern_sx.c
  head/sys/kern/kern_tc.c
  head/sys/kern/kern_thr.c
  head/sys/kern/kern_umtx.c
  head/sys/kern/posix4_mib.c
  head/sys/kern/sched_4bsd.c
  head/sys/kern/sched_ule.c
  head/sys/kern/subr_bus.c
  head/sys/kern/subr_devstat.c
  head/sys/kern/subr_epoch.c
  head/sys/kern/subr_kdb.c
  head/sys/kern/subr_lock.c
  head/sys/kern/subr_param.c
  head/sys/kern/subr_prof.c
  head/sys/kern/subr_rman.c
  head/sys/kern/subr_rtc.c
  head/sys/kern/subr_sleepqueue.c
  head/sys/kern/subr_smp.c
  head/sys/kern/subr_smr.c
  head/sys/kern/subr_stats.c
  head/sys/kern/subr_turnstile.c
  head/sys/kern/subr_witness.c
  head/sys/kern/sys_socket.c
  head/sys/kern/uipc_accf.c
  head/sys/kern/uipc_ktls.c
  head/sys/kern/uipc_mbuf.c
  head/sys/kern/uipc_mqueue.c
  head/sys/kern/uipc_sockbuf.c
  head/sys/kern/uipc_socket.c
  head/sys/kern/uipc_usrreq.c
  head/sys/kern/vfs_aio.c
  head/sys/kern/vfs_cache.c
  head/sys/libkern/iconv.c
  head/sys/mips/atheros/ar531x/ar5315_machdep.c
  head/sys/mips/atheros/if_arge.c
  head/sys/mips/cavium/octe/mv88e61xxphy.c
  head/sys/mips/cavium/octeon_machdep.c
  head/sys/mips/cavium/usb/octusb.c
  head/sys/mips/ingenic/jz4780_aic.c
  head/sys/mips/mips/busdma_machdep.c
  head/sys/mips/mips/pmap.c
  head/sys/mips/mips/tick.c
  head/sys/mips/nlm/cms.c
  head/sys/mips/nlm/dev/net/xlpge.c
  head/sys/mips/nlm/tick.c
  head/sys/net/bpf.c
  head/sys/net/bpf_jitter.c
  head/sys/net/debugnet.c
  head/sys/net/ieee8023ad_lacp.c
  head/sys/net/if.c
  head/sys/net/if_bridge.c
  head/sys/net/if_enc.c
  head/sys/net/if_epair.c
  head/sys/net/if_ethersubr.c
  head/sys/net/if_gif.c
  head/sys/net/if_gre.c
  head/sys/net/if_lagg.c
  head/sys/net/if_me.c
  head/sys/net/if_mib.c
  head/sys/net/if_stf.c
  head/sys/net/if_tuntap.c
  head/sys/net/if_vxlan.c
  head/sys/net/iflib.c
  head/sys/net/netisr.c
  head/sys/net/raw_cb.c
  head/sys/net/route.c
  head/sys/net/rss_config.c
  head/sys/net/rtsock.c
  head/sys/net/vnet.h
  head/sys/netgraph/bluetooth/common/ng_bluetooth.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c
  head/sys/netgraph/bluetooth/socket/ng_btsocket_sco.c
  head/sys/netgraph/ng_base.c
  head/sys/netgraph/ng_iface.c
  head/sys/netgraph/ng_mppc.c
  head/sys/netgraph/ng_pptpgre.c
  head/sys/netgraph/ng_socket.c
  head/sys/netinet/accf_http.c
  head/sys/netinet/cc/cc.c
  head/sys/netinet/cc/cc_cdg.c
  head/sys/netinet/cc/cc_chd.c
  head/sys/netinet/cc/cc_dctcp.c
  head/sys/netinet/cc/cc_hd.c
  head/sys/netinet/cc/cc_htcp.c
  head/sys/netinet/cc/cc_newreno.c
  head/sys/netinet/cc/cc_vegas.c
  head/sys/netinet/if_ether.c
  head/sys/netinet/in_mcast.c
  head/sys/netinet/in_pcb.c
  head/sys/netinet/in_proto.c
  head/sys/netinet/ip_divert.c
  head/sys/netinet/ip_id.c
  head/sys/netinet/ip_input.c
  head/sys/netinet/ip_mroute.c
  head/sys/netinet/ip_reass.c
  head/sys/netinet/libalias/alias.c
  head/sys/netinet/netdump/netdump_client.c
  head/sys/netinet/raw_ip.c
  head/sys/netinet/siftr.c
  head/sys/netinet/tcp_fastopen.c
  head/sys/netinet/tcp_hostcache.c
  head/sys/netinet/tcp_hpts.c
  head/sys/netinet/tcp_input.c
  head/sys/netinet/tcp_log_buf.c
  head/sys/netinet/tcp_ratelimit.c
  head/sys/netinet/tcp_reass.c
  head/sys/netinet/tcp_sack.c
  head/sys/netinet/tcp_stacks/bbr.c
  head/sys/netinet/tcp_stacks/rack.c
  head/sys/netinet/tcp_stats.c
  head/sys/netinet/tcp_subr.c
  head/sys/netinet/tcp_syncache.c
  head/sys/netinet/tcp_timer.c
  head/sys/netinet/tcp_timewait.c
  head/sys/netinet/udp_usrreq.c
  head/sys/netinet6/frag6.c
  head/sys/netinet6/in6_mcast.c
  head/sys/netinet6/in6_proto.c
  head/sys/netinet6/in6_src.c
  head/sys/netinet6/ip6_input.c
  head/sys/netinet6/ip6_mroute.c
  head/sys/netinet6/mld6.c
  head/sys/netinet6/udp6_usrreq.c
  head/sys/netipsec/ipsec.c
  head/sys/netipsec/key.c
  head/sys/netipsec/keysock.c
  head/sys/netpfil/ipfw/dn_aqm_codel.c
  head/sys/netpfil/ipfw/dn_aqm_pie.c
  head/sys/netpfil/ipfw/dn_sched_fq_codel.c
  head/sys/netpfil/ipfw/dn_sched_fq_pie.c
  head/sys/netpfil/ipfw/ip_dn_io.c
  head/sys/netpfil/ipfw/ip_fw2.c
  head/sys/netpfil/ipfw/ip_fw_dynamic.c
  head/sys/netpfil/ipfw/ip_fw_pfil.c
  head/sys/netpfil/ipfw/nat64/ip_fw_nat64.c
  head/sys/netsmb/smb_conn.c
  head/sys/nfs/nfs_fha.c
  head/sys/nlm/nlm_prot_impl.c
  head/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
  head/sys/opencrypto/ktls_ocf.c
  head/sys/powerpc/amigaone/cpld_x5000.c
  head/sys/powerpc/fpu/fpu_emu.c
  head/sys/powerpc/ofw/ofw_syscons.c
  head/sys/powerpc/powermac/atibl.c
  head/sys/powerpc/powermac/fcu.c
  head/sys/powerpc/powermac/nvbl.c
  head/sys/powerpc/powermac/pmu.c
  head/sys/powerpc/powermac/smu.c
  head/sys/powerpc/powernv/opal_sensor.c
  head/sys/powerpc/powerpc/busdma_machdep.c
  head/sys/powerpc/powerpc/elf32_machdep.c
  head/sys/powerpc/ps3/ps3disk.c
  head/sys/riscv/riscv/busdma_bounce.c
  head/sys/riscv/riscv/pmap.c
  head/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c
  head/sys/rpc/svc.c
  head/sys/security/audit/audit.c
  head/sys/security/mac/mac_framework.c
  head/sys/security/mac_biba/mac_biba.c
  head/sys/security/mac_bsdextended/mac_bsdextended.c
  head/sys/security/mac_ifoff/mac_ifoff.c
  head/sys/security/mac_lomac/mac_lomac.c
  head/sys/security/mac_mls/mac_mls.c
  head/sys/security/mac_ntpd/mac_ntpd.c
  head/sys/security/mac_partition/mac_partition.c
  head/sys/security/mac_portacl/mac_portacl.c
  head/sys/security/mac_seeotheruids/mac_seeotheruids.c
  head/sys/security/mac_stub/mac_stub.c
  head/sys/security/mac_test/mac_test.c
  head/sys/security/mac_veriexec/mac_veriexec.c
  head/sys/security/mac_veriexec/veriexec_fingerprint.c
  head/sys/sys/jail.h
  head/sys/tests/epoch/epoch_test.c
  head/sys/tests/framework/kern_testfrwk.c
  head/sys/ufs/ffs/ffs_alloc.c
  head/sys/ufs/ffs/ffs_softdep.c
  head/sys/ufs/ufs/ufs_dirhash.c
  head/sys/ufs/ufs/ufs_vnops.c
  head/sys/vm/memguard.c
  head/sys/vm/redzone.c
  head/sys/vm/swap_pager.c
  head/sys/vm/uma_core.c
  head/sys/vm/vm_meter.c
  head/sys/vm/vm_object.c
  head/sys/vm/vm_page.c
  head/sys/vm/vm_pageout.c
  head/sys/vm/vm_phys.c
  head/sys/vm/vm_reserv.c
  head/sys/x86/bios/vpd.c
  head/sys/x86/cpufreq/hwpstate_intel.c
  head/sys/x86/iommu/intel_utils.c
  head/sys/x86/isa/clock.c
  head/sys/x86/x86/busdma_bounce.c
  head/sys/x86/x86/cpu_machdep.c
  head/sys/x86/x86/intr_machdep.c
  head/sys/x86/x86/local_apic.c
  head/sys/x86/x86/mca.c
  head/sys/x86/x86/mp_watchdog.c
  head/sys/x86/x86/mp_x86.c
  head/sys/x86/x86/tsc.c

Modified: head/sys/amd64/amd64/efirt_machdep.c
==============================================================================
--- head/sys/amd64/amd64/efirt_machdep.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/amd64/amd64/efirt_machdep.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -325,5 +325,7 @@ efi_time_sysctl_handler(SYSCTL_HANDLER_ARGS)
 	return (error);
 }
 
-SYSCTL_PROC(_debug, OID_AUTO, efi_time, CTLTYPE_INT | CTLFLAG_RW, NULL, 0,
-    efi_time_sysctl_handler, "I", "");
+SYSCTL_PROC(_debug, OID_AUTO, efi_time,
+    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, 0,
+    efi_time_sysctl_handler, "I",
+    "");

Modified: head/sys/amd64/amd64/machdep.c
==============================================================================
--- head/sys/amd64/amd64/machdep.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/amd64/amd64/machdep.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -1960,8 +1960,10 @@ smap_sysctl_handler(SYSCTL_HANDLER_ARGS)
 	}
 	return (error);
 }
-SYSCTL_PROC(_machdep, OID_AUTO, smap, CTLTYPE_OPAQUE|CTLFLAG_RD, NULL, 0,
-    smap_sysctl_handler, "S,bios_smap_xattr", "Raw BIOS SMAP data");
+SYSCTL_PROC(_machdep, OID_AUTO, smap,
+    CTLTYPE_OPAQUE | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0,
+    smap_sysctl_handler, "S,bios_smap_xattr",
+    "Raw BIOS SMAP data");
 
 static int
 efi_map_sysctl_handler(SYSCTL_HANDLER_ARGS)
@@ -1980,8 +1982,10 @@ efi_map_sysctl_handler(SYSCTL_HANDLER_ARGS)
 	efisize = *((uint32_t *)efihdr - 1);
 	return (SYSCTL_OUT(req, efihdr, efisize));
 }
-SYSCTL_PROC(_machdep, OID_AUTO, efi_map, CTLTYPE_OPAQUE|CTLFLAG_RD, NULL, 0,
-    efi_map_sysctl_handler, "S,efi_map_header", "Raw EFI Memory Map");
+SYSCTL_PROC(_machdep, OID_AUTO, efi_map,
+    CTLTYPE_OPAQUE | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0,
+    efi_map_sysctl_handler, "S,efi_map_header",
+    "Raw EFI Memory Map");
 
 void
 spinlock_enter(void)

Modified: head/sys/amd64/amd64/pmap.c
==============================================================================
--- head/sys/amd64/amd64/pmap.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/amd64/amd64/pmap.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -390,7 +390,8 @@ vm_paddr_t dmaplimit;
 vm_offset_t kernel_vm_end = VM_MIN_KERNEL_ADDRESS;
 pt_entry_t pg_nx;
 
-static SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters");
+static SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
+    "VM/pmap parameters");
 
 static int pg_ps_enabled = 1;
 SYSCTL_INT(_vm_pmap, OID_AUTO, pg_ps_enabled, CTLFLAG_RDTUN | CTLFLAG_NOFETCH,
@@ -2196,7 +2197,7 @@ SYSCTL_UINT(_vm_pmap, OID_AUTO, large_map_pml4_entries
     "Maximum number of PML4 entries for use by large map (tunable).  "
     "Each entry corresponds to 512GB of address space.");
 
-static SYSCTL_NODE(_vm_pmap, OID_AUTO, pde, CTLFLAG_RD, 0,
+static SYSCTL_NODE(_vm_pmap, OID_AUTO, pde, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
     "2MB page mapping counters");
 
 static u_long pmap_pde_demotions;
@@ -2215,7 +2216,7 @@ static u_long pmap_pde_promotions;
 SYSCTL_ULONG(_vm_pmap_pde, OID_AUTO, promotions, CTLFLAG_RD,
     &pmap_pde_promotions, 0, "2MB page promotions");
 
-static SYSCTL_NODE(_vm_pmap, OID_AUTO, pdpe, CTLFLAG_RD, 0,
+static SYSCTL_NODE(_vm_pmap, OID_AUTO, pdpe, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
     "1GB page mapping counters");
 
 static u_long pmap_pdpe_demotions;

Modified: head/sys/amd64/amd64/prof_machdep.c
==============================================================================
--- head/sys/amd64/amd64/prof_machdep.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/amd64/amd64/prof_machdep.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -262,8 +262,10 @@ sysctl_machdep_cputime_clock(SYSCTL_HANDLER_ARGS)
 	return (error);
 }
 
-SYSCTL_PROC(_machdep, OID_AUTO, cputime_clock, CTLTYPE_INT | CTLFLAG_RW,
-	    0, sizeof(u_int), sysctl_machdep_cputime_clock, "I", "");
+SYSCTL_PROC(_machdep, OID_AUTO, cputime_clock,
+    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, 0, sizeof(u_int),
+    sysctl_machdep_cputime_clock, "I",
+    "");
 
 /*
  * The start and stop routines need not be here since we turn off profiling

Modified: head/sys/amd64/linux32/linux32_sysvec.c
==============================================================================
--- head/sys/amd64/linux32/linux32_sysvec.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/amd64/linux32/linux32_sysvec.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -837,7 +837,7 @@ linux_copyout_strings(struct image_params *imgp, uintp
 	return (0);
 }
 
-static SYSCTL_NODE(_compat, OID_AUTO, linux32, CTLFLAG_RW, 0,
+static SYSCTL_NODE(_compat, OID_AUTO, linux32, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
     "32-bit Linux emulation");
 
 static u_long	linux32_maxdsiz = LINUX32_MAXDSIZ;

Modified: head/sys/arm/altera/socfpga/socfpga_rstmgr.c
==============================================================================
--- head/sys/arm/altera/socfpga/socfpga_rstmgr.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/altera/socfpga/socfpga_rstmgr.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -190,13 +190,16 @@ rstmgr_add_sysctl(struct rstmgr_softc *sc)
 	children = SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev));
 
 	SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "fpga2hps",
-	    CTLTYPE_UINT | CTLFLAG_RW, sc, RSTMGR_SYSCTL_FPGA2HPS,
+	    CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
+	    sc, RSTMGR_SYSCTL_FPGA2HPS,
 	    rstmgr_sysctl, "I", "Enable fpga2hps bridge");
 	SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "lwhps2fpga",
-	    CTLTYPE_UINT | CTLFLAG_RW, sc, RSTMGR_SYSCTL_LWHPS2FPGA,
+	    CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
+	    sc, RSTMGR_SYSCTL_LWHPS2FPGA,
 	    rstmgr_sysctl, "I", "Enable lwhps2fpga bridge");
 	SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "hps2fpga",
-	    CTLTYPE_UINT | CTLFLAG_RW, sc, RSTMGR_SYSCTL_HPS2FPGA,
+	    CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
+	    sc, RSTMGR_SYSCTL_HPS2FPGA,
 	    rstmgr_sysctl, "I", "Enable hps2fpga bridge");
 
 	return (0);

Modified: head/sys/arm/arm/busdma_machdep.c
==============================================================================
--- head/sys/arm/arm/busdma_machdep.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/arm/busdma_machdep.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -148,7 +148,8 @@ static counter_u64_t maploads_physmem;
 
 static STAILQ_HEAD(, bounce_zone) bounce_zone_list;
 
-SYSCTL_NODE(_hw, OID_AUTO, busdma, CTLFLAG_RD, 0, "Busdma parameters");
+SYSCTL_NODE(_hw, OID_AUTO, busdma, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
+    "Busdma parameters");
 SYSCTL_UINT(_hw_busdma, OID_AUTO, tags_total, CTLFLAG_RD, &tags_total, 0,
    "Number of active tags");
 SYSCTL_UINT(_hw_busdma, OID_AUTO, maps_total, CTLFLAG_RD, &maps_total, 0,
@@ -1591,7 +1592,7 @@ alloc_bounce_zone(bus_dma_tag_t dmat)
 	sysctl_ctx_init(&bz->sysctl_tree);
 	bz->sysctl_tree_top = SYSCTL_ADD_NODE(&bz->sysctl_tree,
 	    SYSCTL_STATIC_CHILDREN(_hw_busdma), OID_AUTO, bz->zoneid,
-	    CTLFLAG_RD, 0, "");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "");
 	if (bz->sysctl_tree_top == NULL) {
 		sysctl_ctx_free(&bz->sysctl_tree);
 		return (0);	/* XXX error code? */

Modified: head/sys/arm/arm/cpuinfo.c
==============================================================================
--- head/sys/arm/arm/cpuinfo.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/arm/cpuinfo.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -56,9 +56,9 @@ struct cpuinfo cpuinfo =
 	.icache_line_mask = 31,
 };
 
-static SYSCTL_NODE(_hw, OID_AUTO, cpu, CTLFLAG_RD, 0,
+static SYSCTL_NODE(_hw, OID_AUTO, cpu, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
     "CPU");
-static SYSCTL_NODE(_hw_cpu, OID_AUTO, quirks, CTLFLAG_RD, 0,
+static SYSCTL_NODE(_hw_cpu, OID_AUTO, quirks, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
     "CPU quirks");
 
 /*

Modified: head/sys/arm/arm/machdep_boot.c
==============================================================================
--- head/sys/arm/arm/machdep_boot.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/arm/machdep_boot.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -88,7 +88,8 @@ static char linux_command_line[LBABI_MAX_COMMAND_LINE 
 static char atags[LBABI_MAX_COMMAND_LINE * 2];
 #endif /* defined(LINUX_BOOT_ABI) */
 
-SYSCTL_NODE(_hw, OID_AUTO, board, CTLFLAG_RD, 0, "Board attributes");
+SYSCTL_NODE(_hw, OID_AUTO, board, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
+    "Board attributes");
 SYSCTL_UINT(_hw_board, OID_AUTO, revision, CTLFLAG_RD,
     &board_revision, 0, "Board revision");
 SYSCTL_STRING(_hw_board, OID_AUTO, serial, CTLFLAG_RD,

Modified: head/sys/arm/arm/pmap-v6.c
==============================================================================
--- head/sys/arm/arm/pmap-v6.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/arm/pmap-v6.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -1550,7 +1550,8 @@ pmap_pte2list_init(vm_offset_t *head, void *base, int 
  *
  *****************************************************************************/
 
-SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters");
+SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
+    "VM/pmap parameters");
 
 SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_max, CTLFLAG_RD, &pv_entry_max, 0,
     "Max number of PV entries");
@@ -1572,7 +1573,7 @@ pmap_ps_enabled(pmap_t pmap __unused)
 	return (sp_enabled != 0);
 }
 
-static SYSCTL_NODE(_vm_pmap, OID_AUTO, pte1, CTLFLAG_RD, 0,
+static SYSCTL_NODE(_vm_pmap, OID_AUTO, pte1, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
     "1MB page mapping counters");
 
 static u_long pmap_pte1_demotions;
@@ -2108,8 +2109,9 @@ kvm_size(SYSCTL_HANDLER_ARGS)
 
 	return (sysctl_handle_long(oidp, &ksize, 0, req));
 }
-SYSCTL_PROC(_vm, OID_AUTO, kvm_size, CTLTYPE_LONG|CTLFLAG_RD,
-    0, 0, kvm_size, "IU", "Size of KVM");
+SYSCTL_PROC(_vm, OID_AUTO, kvm_size,
+    CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_NEEDGIANT, 0, 0, kvm_size, "IU",
+    "Size of KVM");
 
 static int
 kvm_free(SYSCTL_HANDLER_ARGS)
@@ -2118,8 +2120,9 @@ kvm_free(SYSCTL_HANDLER_ARGS)
 
 	return (sysctl_handle_long(oidp, &kfree, 0, req));
 }
-SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLFLAG_RD,
-    0, 0, kvm_free, "IU", "Amount of KVM free");
+SYSCTL_PROC(_vm, OID_AUTO, kvm_free,
+    CTLTYPE_LONG | CTLFLAG_RD | CTLFLAG_NEEDGIANT, 0, 0, kvm_free, "IU",
+    "Amount of KVM free");
 
 /***********************************************
  *

Modified: head/sys/arm/broadcom/bcm2835/bcm2835_audio.c
==============================================================================
--- head/sys/arm/broadcom/bcm2835/bcm2835_audio.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_audio.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -810,7 +810,7 @@ vchi_audio_sysctl_init(struct bcm2835_audio_info *sc)
 	tree_node = device_get_sysctl_tree(sc->dev);
 	tree = SYSCTL_CHILDREN(tree_node);
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "dest",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, sizeof(*sc),
 	    sysctl_bcm2835_audio_dest, "IU", "audio destination, "
 	    "0 - auto, 1 - headphones, 2 - HDMI");
 	SYSCTL_ADD_UQUAD(ctx, tree, OID_AUTO, "callbacks",

Modified: head/sys/arm/broadcom/bcm2835/bcm2835_bsc.c
==============================================================================
--- head/sys/arm/broadcom/bcm2835/bcm2835_bsc.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_bsc.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -248,16 +248,20 @@ bcm_bsc_sysctl_init(struct bcm_bsc_softc *sc)
 	tree_node = device_get_sysctl_tree(sc->sc_dev);
 	tree = SYSCTL_CHILDREN(tree_node);
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "frequency",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT,
+	    sc, sizeof(*sc),
 	    bcm_bsc_clock_proc, "IU", "I2C BUS clock frequency");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "clock_stretch",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT,
+	    sc, sizeof(*sc),
 	    bcm_bsc_clkt_proc, "IU", "I2C BUS clock stretch timeout");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "fall_edge_delay",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT,
+	    sc, sizeof(*sc),
 	    bcm_bsc_fall_proc, "IU", "I2C BUS falling edge delay");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "rise_edge_delay",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT,
+	    sc, sizeof(*sc),
 	    bcm_bsc_rise_proc, "IU", "I2C BUS rising edge delay");
 	SYSCTL_ADD_INT(ctx, tree, OID_AUTO, "debug",
 	    CTLFLAG_RWTUN, &sc->sc_debug, 0,

Modified: head/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c
==============================================================================
--- head/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -1245,7 +1245,8 @@ bcm2835_cpufreq_init(void *arg)
 		ctx = device_get_sysctl_ctx(cpu);
 		SYSCTL_ADD_PROC(ctx,
 		    SYSCTL_CHILDREN(device_get_sysctl_tree(cpu)), OID_AUTO,
-		    "temperature", CTLTYPE_INT | CTLFLAG_RD, sc, 0,
+		    "temperature",
+		    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, 0,
 		    sysctl_bcm2835_devcpu_temperature, "IK",
 		    "Current SoC temperature");
 	}
@@ -1312,57 +1313,67 @@ bcm2835_cpufreq_attach(device_t dev)
 		/* create node for hw.cpufreq */
 		oid = SYSCTL_ADD_NODE(&bcm2835_sysctl_ctx,
 		    SYSCTL_STATIC_CHILDREN(_hw), OID_AUTO, "cpufreq",
-		    CTLFLAG_RD, NULL, "");
+		    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "");
 
 		/* Frequency (Hz) */
 		SYSCTL_ADD_PROC(&bcm2835_sysctl_ctx, SYSCTL_CHILDREN(oid),
-		    OID_AUTO, "arm_freq", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+		    OID_AUTO, "arm_freq",
+		    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 		    sysctl_bcm2835_cpufreq_arm_freq, "IU",
 		    "ARM frequency (Hz)");
 		SYSCTL_ADD_PROC(&bcm2835_sysctl_ctx, SYSCTL_CHILDREN(oid),
-		    OID_AUTO, "core_freq", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+		    OID_AUTO, "core_freq",
+		    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 		    sysctl_bcm2835_cpufreq_core_freq, "IU",
 		    "Core frequency (Hz)");
 		SYSCTL_ADD_PROC(&bcm2835_sysctl_ctx, SYSCTL_CHILDREN(oid),
-		    OID_AUTO, "sdram_freq", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+		    OID_AUTO, "sdram_freq",
+		    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 		    sysctl_bcm2835_cpufreq_sdram_freq, "IU",
 		    "SDRAM frequency (Hz)");
 
 		/* Turbo state */
 		SYSCTL_ADD_PROC(&bcm2835_sysctl_ctx, SYSCTL_CHILDREN(oid),
-		    OID_AUTO, "turbo", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+		    OID_AUTO, "turbo",
+		    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 		    sysctl_bcm2835_cpufreq_turbo, "IU",
 		    "Disables dynamic clocking");
 
 		/* Voltage (offset from 1.2V in units of 0.025V) */
 		SYSCTL_ADD_PROC(&bcm2835_sysctl_ctx, SYSCTL_CHILDREN(oid),
-		    OID_AUTO, "voltage_core", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+		    OID_AUTO, "voltage_core",
+		    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 		    sysctl_bcm2835_cpufreq_voltage_core, "I",
 		    "ARM/GPU core voltage"
 		    "(offset from 1.2V in units of 0.025V)");
 		SYSCTL_ADD_PROC(&bcm2835_sysctl_ctx, SYSCTL_CHILDREN(oid),
-		    OID_AUTO, "voltage_sdram", CTLTYPE_INT | CTLFLAG_WR, sc,
+		    OID_AUTO, "voltage_sdram",
+		    CTLTYPE_INT | CTLFLAG_WR | CTLFLAG_NEEDGIANT, sc,
 		    0, sysctl_bcm2835_cpufreq_voltage_sdram, "I",
 		    "SDRAM voltage (offset from 1.2V in units of 0.025V)");
 
 		/* Voltage individual SDRAM */
 		SYSCTL_ADD_PROC(&bcm2835_sysctl_ctx, SYSCTL_CHILDREN(oid),
-		    OID_AUTO, "voltage_sdram_c", CTLTYPE_INT | CTLFLAG_RW, sc,
+		    OID_AUTO, "voltage_sdram_c",
+		    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
 		    0, sysctl_bcm2835_cpufreq_voltage_sdram_c, "I",
 		    "SDRAM controller voltage"
 		    "(offset from 1.2V in units of 0.025V)");
 		SYSCTL_ADD_PROC(&bcm2835_sysctl_ctx, SYSCTL_CHILDREN(oid),
-		    OID_AUTO, "voltage_sdram_i", CTLTYPE_INT | CTLFLAG_RW, sc,
+		    OID_AUTO, "voltage_sdram_i",
+		    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
 		    0, sysctl_bcm2835_cpufreq_voltage_sdram_i, "I",
 		    "SDRAM I/O voltage (offset from 1.2V in units of 0.025V)");
 		SYSCTL_ADD_PROC(&bcm2835_sysctl_ctx, SYSCTL_CHILDREN(oid),
-		    OID_AUTO, "voltage_sdram_p", CTLTYPE_INT | CTLFLAG_RW, sc,
+		    OID_AUTO, "voltage_sdram_p",
+		    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
 		    0, sysctl_bcm2835_cpufreq_voltage_sdram_p, "I",
 		    "SDRAM phy voltage (offset from 1.2V in units of 0.025V)");
 
 		/* Temperature */
 		SYSCTL_ADD_PROC(&bcm2835_sysctl_ctx, SYSCTL_CHILDREN(oid),
-		    OID_AUTO, "temperature", CTLTYPE_INT | CTLFLAG_RD, sc, 0,
+		    OID_AUTO, "temperature",
+		    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, 0,
 		    sysctl_bcm2835_cpufreq_temperature, "I",
 		    "SoC temperature (thousandths of a degree C)");
 	}

Modified: head/sys/arm/broadcom/bcm2835/bcm2835_fbd.c
==============================================================================
--- head/sys/arm/broadcom/bcm2835/bcm2835_fbd.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_fbd.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -199,7 +199,7 @@ bcm_fb_sysctl_init(struct bcmsc_softc *sc)
 	tree_node = device_get_sysctl_tree(sc->dev);
 	tree = SYSCTL_CHILDREN(tree_node);
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "resync",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, sizeof(*sc),
 	    bcm_fb_resync_sysctl, "IU", "Set to resync framebuffer with VC");
 }
 

Modified: head/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
==============================================================================
--- head/sys/arm/broadcom/bcm2835/bcm2835_gpio.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_gpio.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -594,14 +594,14 @@ bcm_gpio_sysctl_init(struct bcm_gpio_softc *sc)
  	tree_node = device_get_sysctl_tree(sc->sc_dev);
  	tree = SYSCTL_CHILDREN(tree_node);
 	pin_node = SYSCTL_ADD_NODE(ctx, tree, OID_AUTO, "pin",
-	    CTLFLAG_RD, NULL, "GPIO Pins");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "GPIO Pins");
 	pin_tree = SYSCTL_CHILDREN(pin_node);
 
 	for (i = 0; i < sc->sc_gpio_npins; i++) {
 
 		snprintf(pinbuf, sizeof(pinbuf), "%d", i);
 		pinN_node = SYSCTL_ADD_NODE(ctx, pin_tree, OID_AUTO, pinbuf,
-		    CTLFLAG_RD, NULL, "GPIO Pin");
+		    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "GPIO Pin");
 		pinN_tree = SYSCTL_CHILDREN(pinN_node);
 
 		sc->sc_sysctl[i].sc = sc;
@@ -609,7 +609,7 @@ bcm_gpio_sysctl_init(struct bcm_gpio_softc *sc)
 		sc_sysctl->sc = sc;
 		sc_sysctl->pin = sc->sc_gpio_pins[i].gp_pin;
 		SYSCTL_ADD_PROC(ctx, pinN_tree, OID_AUTO, "function",
-		    CTLFLAG_RW | CTLTYPE_STRING, sc_sysctl,
+		    CTLFLAG_RW | CTLTYPE_STRING | CTLFLAG_NEEDGIANT, sc_sysctl,
 		    sizeof(struct bcm_gpio_sysctl), bcm_gpio_func_proc,
 		    "A", "Pin Function");
 	}

Modified: head/sys/arm/broadcom/bcm2835/bcm2835_pwm.c
==============================================================================
--- head/sys/arm/broadcom/bcm2835/bcm2835_pwm.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_pwm.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -364,7 +364,8 @@ bcm_pwm_sysctl_init(struct bcm_pwm_softc *sc)
 	if (bootverbose) {
 #define RR(x,y)							\
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, y,			\
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, 0x##x,		\
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT,	\
+	    sc, 0x##x,						\
 	    bcm_pwm_reg_proc, "IU", "Register 0x" #x " " y);
 
 		RR(24, "DAT2")
@@ -379,31 +380,31 @@ bcm_pwm_sysctl_init(struct bcm_pwm_softc *sc)
 	}
 
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "pwm_freq",
-	    CTLFLAG_RD | CTLTYPE_UINT, sc, 0,
+	    CTLFLAG_RD | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, 0,
 	    bcm_pwm_pwm_freq_proc, "IU", "PWM frequency ch 1 (Hz)");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "period",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, 0,
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, 0,
 	    bcm_pwm_period_proc, "IU", "PWM period ch 1 (#clocks)");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "ratio",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, 0,
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, 0,
 	    bcm_pwm_ratio_proc, "IU", "PWM ratio ch 1 (0...period)");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "freq",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, 0,
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, 0,
 	    bcm_pwm_freq_proc, "IU", "PWM clock (Hz)");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "mode",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, 0,
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, 0,
 	    bcm_pwm_mode_proc, "IU", "PWM mode ch 1 (0=off, 1=pwm, 2=dither)");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "pwm_freq2",
-	    CTLFLAG_RD | CTLTYPE_UINT, sc, 0,
+	    CTLFLAG_RD | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, 0,
 	    bcm_pwm_pwm_freq2_proc, "IU", "PWM frequency ch 2 (Hz)");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "period2",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, 0,
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, 0,
 	    bcm_pwm_period2_proc, "IU", "PWM period ch 2 (#clocks)");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "ratio2",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, 0,
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, 0,
 	    bcm_pwm_ratio2_proc, "IU", "PWM ratio ch 2 (0...period)");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "mode2",
-	    CTLFLAG_RW | CTLTYPE_UINT, sc, 0,
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, 0,
 	    bcm_pwm_mode2_proc, "IU", "PWM mode ch 2 (0=off, 1=pwm, 2=dither)");
 }
 

Modified: head/sys/arm/broadcom/bcm2835/bcm2835_rng.c
==============================================================================
--- head/sys/arm/broadcom/bcm2835/bcm2835_rng.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_rng.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -403,14 +403,14 @@ bcm2835_rng_attach(device_t dev)
 	    "underrun", CTLFLAG_RD, &sc->sc_underrun,
 	    "Number of FIFO underruns");
 	SYSCTL_ADD_PROC(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO,
-	    "2xspeed", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+	    "2xspeed", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 	    sysctl_bcm2835_rng_2xspeed, "I", "Enable RBG 2X SPEED");
 	SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO,
 	    "stall_count", CTLFLAG_RW, &sc->sc_stall_count,
 	    RNG_STALL_COUNT_DEFAULT, "Number of underruns to assume RNG stall");
 #ifdef BCM2835_RNG_DEBUG_REGISTERS
 	SYSCTL_ADD_PROC(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO,
-	    "dumpregs", CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
+	    "dumpregs", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, 0,
 	    sysctl_bcm2835_rng_dump, "S", "Dump RNG registers");
 #endif
 

Modified: head/sys/arm/broadcom/bcm2835/bcm2835_spi.c
==============================================================================
--- head/sys/arm/broadcom/bcm2835/bcm2835_spi.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_spi.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -204,22 +204,22 @@ bcm_spi_sysctl_init(struct bcm_spi_softc *sc)
 	tree_node = device_get_sysctl_tree(sc->sc_dev);
 	tree = SYSCTL_CHILDREN(tree_node);
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "clock",
-	    CTLFLAG_RD | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RD | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, sizeof(*sc),
 	    bcm_spi_clock_proc, "IU", "SPI BUS clock frequency");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "cpol",
-	    CTLFLAG_RD | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RD | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, sizeof(*sc),
 	    bcm_spi_cpol_proc, "IU", "SPI BUS clock polarity");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "cpha",
-	    CTLFLAG_RD | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RD | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, sizeof(*sc),
 	    bcm_spi_cpha_proc, "IU", "SPI BUS clock phase");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "cspol0",
-	    CTLFLAG_RD | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RD | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, sizeof(*sc),
 	    bcm_spi_cspol0_proc, "IU", "SPI BUS chip select 0 polarity");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "cspol1",
-	    CTLFLAG_RD | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RD | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, sizeof(*sc),
 	    bcm_spi_cspol1_proc, "IU", "SPI BUS chip select 1 polarity");
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "cspol2",
-	    CTLFLAG_RD | CTLTYPE_UINT, sc, sizeof(*sc),
+	    CTLFLAG_RD | CTLTYPE_UINT | CTLFLAG_NEEDGIANT, sc, sizeof(*sc),
 	    bcm_spi_cspol2_proc, "IU", "SPI BUS chip select 2 polarity");
 }
 

Modified: head/sys/arm/freescale/imx/imx6_anatop.c
==============================================================================
--- head/sys/arm/freescale/imx/imx6_anatop.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/freescale/imx/imx6_anatop.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -400,11 +400,13 @@ cpufreq_initialize(struct imx6_anatop_softc *sc)
 	    "CPU frequency");
 
 	SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx), 
-	    OID_AUTO, "cpu_minmhz", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NOFETCH,
+	    OID_AUTO, "cpu_minmhz",
+	    CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NOFETCH | CTLFLAG_NEEDGIANT,
 	    sc, 0, cpufreq_sysctl_minmhz, "IU", "Minimum CPU frequency");
 
 	SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx),
-	    OID_AUTO, "cpu_maxmhz", CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NOFETCH,
+	    OID_AUTO, "cpu_maxmhz",
+	    CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_NOFETCH | CTLFLAG_NEEDGIANT,
 	    sc, 0, cpufreq_sysctl_maxmhz, "IU", "Maximum CPU frequency");
 
 	SYSCTL_ADD_INT(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx),
@@ -627,10 +629,12 @@ initialize_tempmon(struct imx6_anatop_softc *sc)
 	    0, tempmon_throttle_check, sc, 0);
 
 	SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx), 
-	    OID_AUTO, "temperature", CTLTYPE_INT | CTLFLAG_RD, sc, 0,
+	    OID_AUTO, "temperature",
+	    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, 0,
 	    temp_sysctl_handler, "IK", "Current die temperature");
 	SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_imx), 
-	    OID_AUTO, "throttle_temperature", CTLTYPE_INT | CTLFLAG_RW, sc,
+	    OID_AUTO, "throttle_temperature",
+	    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc,
 	    0, temp_throttle_sysctl_handler, "IK", 
 	    "Throttle CPU when exceeding this temperature");
 }

Modified: head/sys/arm/freescale/imx/imx_machdep.c
==============================================================================
--- head/sys/arm/freescale/imx/imx_machdep.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/freescale/imx/imx_machdep.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -47,7 +47,8 @@ __FBSDID("$FreeBSD$");
 #include <arm/freescale/imx/imx_machdep.h>
 #include <arm/freescale/imx/imx_wdogreg.h>
 
-SYSCTL_NODE(_hw, OID_AUTO, imx, CTLFLAG_RW, NULL, "i.MX container");
+SYSCTL_NODE(_hw, OID_AUTO, imx, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
+    "i.MX container");
 
 static int last_reset_status;
 SYSCTL_UINT(_hw_imx, OID_AUTO, last_reset_status, CTLFLAG_RD, 

Modified: head/sys/arm/mv/mv_thermal.c
==============================================================================
--- head/sys/arm/mv/mv_thermal.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/mv/mv_thermal.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -333,7 +333,7 @@ mv_thermal_attach(device_t dev)
 	oid = SYSCTL_CHILDREN(device_get_sysctl_tree(dev));
 	/* There is always at least one sensor */
 	SYSCTL_ADD_PROC(ctx, oid, OID_AUTO, "internal",
-	    CTLTYPE_INT | CTLFLAG_RD,
+	    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
 	    dev, 0, mv_thermal_sysctl,
 	    "IK",
 	    "Internal Temperature");
@@ -342,7 +342,7 @@ mv_thermal_attach(device_t dev)
 		snprintf(name, sizeof(name), "cpu%d", i);
 		snprintf(desc, sizeof(desc), "CPU%d Temperature", i);
 		SYSCTL_ADD_PROC(ctx, oid, OID_AUTO, name,
-		    CTLTYPE_INT | CTLFLAG_RD,
+		    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
 		    dev, i + 1, mv_thermal_sysctl,
 		    "IK",
 		    desc);

Modified: head/sys/arm/mv/mv_ts.c
==============================================================================
--- head/sys/arm/mv/mv_ts.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/mv/mv_ts.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -150,7 +150,8 @@ ts_attach(device_t dev)
 	}
 	ctx = device_get_sysctl_ctx(dev);
 	SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(device_get_sysctl_tree(dev)),
-	    OID_AUTO, "temperature", CTLTYPE_INT | CTLFLAG_RD, dev,
+	    OID_AUTO, "temperature",
+	    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, dev,
 	    0, ts_sysctl_handler, "IK", "Current Temperature");
 
 	return (0);

Modified: head/sys/arm/nvidia/tegra124/tegra124_coretemp.c
==============================================================================
--- head/sys/arm/nvidia/tegra124/tegra124_coretemp.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/nvidia/tegra124/tegra124_coretemp.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -220,7 +220,8 @@ tegra124_coretemp_attach(device_t dev)
 
 	oid = SYSCTL_ADD_NODE(ctx,
 	    SYSCTL_CHILDREN(device_get_sysctl_tree(pdev)), OID_AUTO,
-	    "coretemp", CTLFLAG_RD, NULL, "Per-CPU thermal information");
+	    "coretemp", CTLFLAG_RD | CTLFLAG_MPSAFE, NULL,
+	    "Per-CPU thermal information");
 
 	/*
 	 * Add the MIBs to dev.cpu.N and dev.cpu.N.coretemp.

Modified: head/sys/arm/nvidia/tegra_soctherm.c
==============================================================================
--- head/sys/arm/nvidia/tegra_soctherm.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/nvidia/tegra_soctherm.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -511,7 +511,7 @@ soctherm_init_sysctl(struct soctherm_softc *sc)
 	/* create node for hw.temp */
 	oid = SYSCTL_ADD_NODE(&soctherm_sysctl_ctx,
 	    SYSCTL_STATIC_CHILDREN(_hw), OID_AUTO, "temperature",
-	    CTLFLAG_RD, NULL, "");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "");
 	if (oid == NULL)
 		return (ENXIO);
 
@@ -519,7 +519,7 @@ soctherm_init_sysctl(struct soctherm_softc *sc)
 	for (i = sc->ntsensors  - 1; i >= 0; i--) {
 		tmp = SYSCTL_ADD_PROC(&soctherm_sysctl_ctx,
 		    SYSCTL_CHILDREN(oid), OID_AUTO, sc->tsensors[i].name,
-		    CTLTYPE_INT | CTLFLAG_RD, sc, i,
+		    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, i,
 		    soctherm_sysctl_temperature, "IK", "SoC Temperature");
 		if (tmp == NULL)
 			return (ENXIO);

Modified: head/sys/arm/ti/am335x/am335x_ehrpwm.c
==============================================================================
--- head/sys/arm/ti/am335x/am335x_ehrpwm.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/ti/am335x/am335x_ehrpwm.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -589,23 +589,23 @@ am335x_ehrpwm_attach(device_t dev)
 	tree = device_get_sysctl_tree(sc->sc_dev);
 
 	sc->sc_clkdiv_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
-	    "clkdiv", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+	    "clkdiv", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 	    am335x_ehrpwm_sysctl_clkdiv, "I", "PWM clock prescaler");
 
 	sc->sc_freq_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
-	    "freq", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+	    "freq", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 	    am335x_ehrpwm_sysctl_freq, "I", "PWM frequency");
 
 	sc->sc_period_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
-	    "period", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+	    "period", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 	    am335x_ehrpwm_sysctl_period, "I", "PWM period");
 
 	sc->sc_chanA_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
-	    "dutyA", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+	    "dutyA", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 	    am335x_ehrpwm_sysctl_duty, "I", "Channel A duty cycles");
 
 	sc->sc_chanB_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
-	    "dutyB", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+	    "dutyB", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 	    am335x_ehrpwm_sysctl_duty, "I", "Channel B duty cycles");
 
 	/* CONFIGURE EPWM1 */

Modified: head/sys/arm/ti/am335x/am335x_lcd.c
==============================================================================
--- head/sys/arm/ti/am335x/am335x_lcd.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/ti/am335x/am335x_lcd.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -1025,7 +1025,7 @@ am335x_lcd_attach(device_t dev)
 	ctx = device_get_sysctl_ctx(sc->sc_dev);
 	tree = device_get_sysctl_tree(sc->sc_dev);
 	sc->sc_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
-	    "backlight", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
+	    "backlight", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0,
 	    am335x_lcd_sysctl_backlight, "I", "LCD backlight");
 	sc->sc_backlight = 0;
 	/* Check if eCAS interface is available at this point */

Modified: head/sys/arm/ti/am335x/am335x_musb.c
==============================================================================
--- head/sys/arm/ti/am335x/am335x_musb.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/ti/am335x/am335x_musb.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -115,7 +115,9 @@ static struct resource_spec am335x_musbotg_mem_spec[] 
 #ifdef USB_DEBUG
 static int usbssdebug = 0;
 
-static SYSCTL_NODE(_hw_usb, OID_AUTO, am335x_usbss, CTLFLAG_RW, 0, "AM335x USBSS");
+static SYSCTL_NODE(_hw_usb, OID_AUTO, am335x_usbss,
+    CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
+    "AM335x USBSS");
 SYSCTL_INT(_hw_usb_am335x_usbss, OID_AUTO, debug, CTLFLAG_RW,
     &usbssdebug, 0, "Debug level");
 #endif

Modified: head/sys/arm/ti/cpsw/if_cpsw.c
==============================================================================
--- head/sys/arm/ti/cpsw/if_cpsw.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/ti/cpsw/if_cpsw.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -2725,15 +2725,17 @@ cpsw_add_sysctls(struct cpsw_softc *sc)
 	    CTLFLAG_RW, &sc->debug, 0, "Enable switch debug messages");
 
 	SYSCTL_ADD_PROC(ctx, parent, OID_AUTO, "attachedSecs",
-	    CTLTYPE_UINT | CTLFLAG_RD, sc, 0, cpsw_stat_attached, "IU",
+	    CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
+	    sc, 0, cpsw_stat_attached, "IU",
 	    "Time since driver attach");
 
 	SYSCTL_ADD_PROC(ctx, parent, OID_AUTO, "intr_coalesce_us",
-	    CTLTYPE_UINT | CTLFLAG_RW, sc, 0, cpsw_intr_coalesce, "IU",
+	    CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
+	    sc, 0, cpsw_intr_coalesce, "IU",
 	    "minimum time between interrupts");
 
 	node = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "ports",
-	    CTLFLAG_RD, NULL, "CPSW Ports Statistics");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "CPSW Ports Statistics");
 	ports_parent = SYSCTL_CHILDREN(node);
 	for (i = 0; i < CPSW_PORTS; i++) {
 		if (!sc->dualemac && i != sc->active_slave)
@@ -2741,38 +2743,39 @@ cpsw_add_sysctls(struct cpsw_softc *sc)
 		port[0] = '0' + i;
 		port[1] = '\0';
 		node = SYSCTL_ADD_NODE(ctx, ports_parent, OID_AUTO,
-		    port, CTLFLAG_RD, NULL, "CPSW Port Statistics");
+		    port, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL,
+		    "CPSW Port Statistics");
 		port_parent = SYSCTL_CHILDREN(node);
 		SYSCTL_ADD_PROC(ctx, port_parent, OID_AUTO, "uptime",
-		    CTLTYPE_UINT | CTLFLAG_RD, sc, i,
+		    CTLTYPE_UINT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, i,
 		    cpsw_stat_uptime, "IU", "Seconds since driver init");
 	}
 
 	stats_node = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "stats",
-				     CTLFLAG_RD, NULL, "CPSW Statistics");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "CPSW Statistics");
 	stats_parent = SYSCTL_CHILDREN(stats_node);
 	for (i = 0; i < CPSW_SYSCTL_COUNT; ++i) {
 		SYSCTL_ADD_PROC(ctx, stats_parent, i,
 				cpsw_stat_sysctls[i].oid,
-				CTLTYPE_U64 | CTLFLAG_RD, sc, 0,
-				cpsw_stats_sysctl, "IU",
+				CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
+				sc, 0, cpsw_stats_sysctl, "IU",
 				cpsw_stat_sysctls[i].oid);
 	}
 
 	queue_node = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "queue",
-	    CTLFLAG_RD, NULL, "CPSW Queue Statistics");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "CPSW Queue Statistics");
 	queue_parent = SYSCTL_CHILDREN(queue_node);
 
 	node = SYSCTL_ADD_NODE(ctx, queue_parent, OID_AUTO, "tx",
-	    CTLFLAG_RD, NULL, "TX Queue Statistics");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "TX Queue Statistics");
 	cpsw_add_queue_sysctls(ctx, node, &sc->tx);
 
 	node = SYSCTL_ADD_NODE(ctx, queue_parent, OID_AUTO, "rx",
-	    CTLFLAG_RD, NULL, "RX Queue Statistics");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "RX Queue Statistics");
 	cpsw_add_queue_sysctls(ctx, node, &sc->rx);
 
 	node = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "watchdog",
-	    CTLFLAG_RD, NULL, "Watchdog Statistics");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Watchdog Statistics");
 	cpsw_add_watchdog_sysctls(ctx, node, sc);
 }
 

Modified: head/sys/arm/ti/ti_adc.c
==============================================================================
--- head/sys/arm/ti/ti_adc.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/ti/ti_adc.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -562,10 +562,10 @@ ti_adc_sysctl_init(struct ti_adc_softc *sc)
 	tree_node = device_get_sysctl_tree(sc->sc_dev);
 	tree = SYSCTL_CHILDREN(tree_node);
 	SYSCTL_ADD_PROC(ctx, tree, OID_AUTO, "clockdiv",
-	    CTLFLAG_RW | CTLTYPE_UINT,  sc, 0,
+	    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT,  sc, 0,
 	    ti_adc_clockdiv_proc, "IU", "ADC clock prescaler");
 	inp_node = SYSCTL_ADD_NODE(ctx, tree, OID_AUTO, "ain",
-	    CTLFLAG_RD, NULL, "ADC inputs");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "ADC inputs");
 	inp_tree = SYSCTL_CHILDREN(inp_node);
 
 	for (i = 0; i < sc->sc_adc_nchannels; i++) {
@@ -573,17 +573,20 @@ ti_adc_sysctl_init(struct ti_adc_softc *sc)
 
 		snprintf(pinbuf, sizeof(pinbuf), "%d", ain);
 		inpN_node = SYSCTL_ADD_NODE(ctx, inp_tree, OID_AUTO, pinbuf,
-		    CTLFLAG_RD, NULL, "ADC input");
+		    CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "ADC input");
 		inpN_tree = SYSCTL_CHILDREN(inpN_node);
 
 		SYSCTL_ADD_PROC(ctx, inpN_tree, OID_AUTO, "enable",
-		    CTLFLAG_RW | CTLTYPE_UINT, &ti_adc_inputs[ain], 0,
+		    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT,
+		    &ti_adc_inputs[ain], 0,
 		    ti_adc_enable_proc, "IU", "Enable ADC input");
 		SYSCTL_ADD_PROC(ctx, inpN_tree, OID_AUTO, "open_delay",
-		    CTLFLAG_RW | CTLTYPE_UINT,  &ti_adc_inputs[ain], 0,
+		    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT,
+		    &ti_adc_inputs[ain], 0,
 		    ti_adc_open_delay_proc, "IU", "ADC open delay");
 		SYSCTL_ADD_PROC(ctx, inpN_tree, OID_AUTO, "samples_avg",
-		    CTLFLAG_RW | CTLTYPE_UINT,  &ti_adc_inputs[ain], 0,
+		    CTLFLAG_RW | CTLTYPE_UINT | CTLFLAG_NEEDGIANT,
+		    &ti_adc_inputs[ain], 0,
 		    ti_adc_samples_avg_proc, "IU", "ADC samples average");
 		SYSCTL_ADD_INT(ctx, inpN_tree, OID_AUTO, "input",
 		    CTLFLAG_RD, &ti_adc_inputs[ain].value, 0,

Modified: head/sys/arm/ti/ti_pruss.c
==============================================================================
--- head/sys/arm/ti/ti_pruss.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/ti/ti_pruss.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -542,10 +542,11 @@ ti_pruss_attach(device_t dev)
 
 	sc->sc_glob_irqen = false;
 	struct sysctl_oid *irq_root = SYSCTL_ADD_NODE(clist, SYSCTL_CHILDREN(poid),
-	    OID_AUTO, "irq", CTLFLAG_RD, 0,
+	    OID_AUTO, "irq", CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
 	    "PRUSS Host Interrupts");
 	SYSCTL_ADD_PROC(clist, SYSCTL_CHILDREN(poid), OID_AUTO,
-	    "global_interrupt_enable", CTLFLAG_RW | CTLTYPE_U8,
+	    "global_interrupt_enable",
+	    CTLFLAG_RW | CTLTYPE_U8 | CTLFLAG_NEEDGIANT,
 	    sc, 0, ti_pruss_global_interrupt_enable,
 	    "CU", "Global interrupt enable");
 
@@ -564,16 +565,19 @@ ti_pruss_attach(device_t dev)
 		snprintf(name, sizeof(name), "%d", i);
 
 		struct sysctl_oid *irq_nodes = SYSCTL_ADD_NODE(clist, SYSCTL_CHILDREN(irq_root),
-		    OID_AUTO, name, CTLFLAG_RD, 0,
+		    OID_AUTO, name, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
 		    "PRUSS Interrupts");
 		SYSCTL_ADD_PROC(clist, SYSCTL_CHILDREN(irq_nodes), OID_AUTO,
-		    "channel", CTLFLAG_RW | CTLTYPE_STRING, sc, i, ti_pruss_channel_map,
+		    "channel", CTLFLAG_RW | CTLTYPE_STRING | CTLFLAG_NEEDGIANT,
+		    sc, i, ti_pruss_channel_map,
 		    "A", "Channel attached to this irq");
 		SYSCTL_ADD_PROC(clist, SYSCTL_CHILDREN(irq_nodes), OID_AUTO,
-		    "event", CTLFLAG_RW | CTLTYPE_STRING, sc, i, ti_pruss_event_map,
+		    "event", CTLFLAG_RW | CTLTYPE_STRING | CTLFLAG_NEEDGIANT,
+		    sc, i, ti_pruss_event_map,
 		    "A", "Event attached to this irq");
 		SYSCTL_ADD_PROC(clist, SYSCTL_CHILDREN(irq_nodes), OID_AUTO,
-		    "enable", CTLFLAG_RW | CTLTYPE_U8, sc, i, ti_pruss_interrupt_enable,
+		    "enable", CTLFLAG_RW | CTLTYPE_U8 | CTLFLAG_NEEDGIANT,
+		    sc, i, ti_pruss_interrupt_enable,
 		    "CU", "Enable/Disable interrupt");
 
 		sc->sc_irq_devs[i].event = -1;

Modified: head/sys/arm/ti/twl/twl_clks.c
==============================================================================
--- head/sys/arm/ti/twl/twl_clks.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/ti/twl/twl_clks.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -471,7 +471,7 @@ twl_clks_add_clock(struct twl_clks_softc *sc, const ch
 
 	/* Add a sysctl entry for the clock */
 	new->oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, name,
-	    CTLTYPE_INT | CTLFLAG_RD, sc, 0,
+	    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, 0,
 	    twl_clks_sysctl_clock, "I", "external clock");
 
 	/* Finally add the regulator to list of supported regulators */

Modified: head/sys/arm/ti/twl/twl_vreg.c
==============================================================================
--- head/sys/arm/ti/twl/twl_vreg.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/ti/twl/twl_vreg.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -848,7 +848,7 @@ twl_vreg_add_regulator(struct twl_vreg_softc *sc, cons
 
 	/* Add a sysctl entry for the voltage */
 	new->oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, name,
-	    CTLTYPE_INT | CTLFLAG_RD, sc, 0,
+	    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, sc, 0,
 	    twl_vreg_sysctl_voltage, "I", "voltage regulator");
 
 	/* Finally add the regulator to list of supported regulators */

Modified: head/sys/arm/xilinx/zy7_devcfg.c
==============================================================================
--- head/sys/arm/xilinx/zy7_devcfg.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/xilinx/zy7_devcfg.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -101,12 +101,14 @@ static struct zy7_fclk_config fclk_configs[FCLK_NUM];
 #define RD4(sc, off) 		(bus_read_4((sc)->mem_res, (off)))
 #define WR4(sc, off, val) 	(bus_write_4((sc)->mem_res, (off), (val)))
 
-SYSCTL_NODE(_hw, OID_AUTO, fpga, CTLFLAG_RD, 0,	\
-	    "Xilinx Zynq-7000 PL (FPGA) section");
+SYSCTL_NODE(_hw, OID_AUTO, fpga, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
+    "Xilinx Zynq-7000 PL (FPGA) section");
 
 static int zy7_devcfg_sysctl_pl_done(SYSCTL_HANDLER_ARGS);
-SYSCTL_PROC(_hw_fpga, OID_AUTO, pl_done, CTLTYPE_INT | CTLFLAG_RD, NULL, 0,
-	    zy7_devcfg_sysctl_pl_done, "I", "PL section config DONE signal");
+SYSCTL_PROC(_hw_fpga, OID_AUTO, pl_done,
+    CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_NEEDGIANT, NULL, 0,
+    zy7_devcfg_sysctl_pl_done, "I",
+    "PL section config DONE signal");
 
 static int zy7_en_level_shifters = 1;
 SYSCTL_INT(_hw_fpga, OID_AUTO, en_level_shifters, CTLFLAG_RW,
@@ -119,9 +121,9 @@ SYSCTL_INT(_hw, OID_AUTO, ps_vers, CTLFLAG_RD, &zy7_ps
 
 static int zy7_devcfg_fclk_sysctl_level_shifters(SYSCTL_HANDLER_ARGS);
 SYSCTL_PROC(_hw_fpga, OID_AUTO, level_shifters, 
-		    CTLFLAG_RW | CTLTYPE_INT, 
-		    NULL, 0, zy7_devcfg_fclk_sysctl_level_shifters,
-		    "I", "Enable/disable level shifters");
+    CTLFLAG_RW | CTLTYPE_INT | CTLFLAG_NEEDGIANT, NULL, 0,
+    zy7_devcfg_fclk_sysctl_level_shifters, "I",
+    "Enable/disable level shifters");
 
 /* cdev entry points. */
 static int zy7_devcfg_open(struct cdev *, int, int, struct thread *);
@@ -360,7 +362,7 @@ zy7_devcfg_init_fclk_sysctl(struct zy7_devcfg_softc *s
 	sysctl_ctx_init(&sc->sysctl_tree);
 	sc->sysctl_tree_top = SYSCTL_ADD_NODE(&sc->sysctl_tree,
 	    SYSCTL_STATIC_CHILDREN(_hw_fpga), OID_AUTO, "fclk",
-	    CTLFLAG_RD, 0, "");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "");
 	if (sc->sysctl_tree_top == NULL) {
 		sysctl_ctx_free(&sc->sysctl_tree);
 		return (-1);
@@ -370,7 +372,7 @@ zy7_devcfg_init_fclk_sysctl(struct zy7_devcfg_softc *s
 		snprintf(fclk_num, sizeof(fclk_num), "%d", i);
 		fclk_node = SYSCTL_ADD_NODE(&sc->sysctl_tree,
 		    SYSCTL_CHILDREN(sc->sysctl_tree_top), OID_AUTO, fclk_num,
-		    CTLFLAG_RD, 0, "");
+		    CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "");
 
 		SYSCTL_ADD_INT(&sc->sysctl_tree,
 		    SYSCTL_CHILDREN(fclk_node), OID_AUTO,
@@ -379,13 +381,13 @@ zy7_devcfg_init_fclk_sysctl(struct zy7_devcfg_softc *s
 		    "Actual frequency");
 		SYSCTL_ADD_PROC(&sc->sysctl_tree,
 		    SYSCTL_CHILDREN(fclk_node), OID_AUTO,
-		    "freq", CTLFLAG_RW | CTLTYPE_INT, 
+		    "freq", CTLFLAG_RW | CTLTYPE_INT | CTLFLAG_NEEDGIANT, 
 		    &fclk_configs[i], i,
 		    zy7_devcfg_fclk_sysctl_freq,
 		    "I", "Configured frequency");
 		SYSCTL_ADD_PROC(&sc->sysctl_tree,
 		    SYSCTL_CHILDREN(fclk_node), OID_AUTO,
-		    "source", CTLFLAG_RW | CTLTYPE_STRING, 
+		    "source", CTLFLAG_RW | CTLTYPE_STRING | CTLFLAG_NEEDGIANT, 
 		    &fclk_configs[i], i, 
 		    zy7_devcfg_fclk_sysctl_source,
 		    "A", "Clock source");

Modified: head/sys/arm/xilinx/zy7_slcr.c
==============================================================================
--- head/sys/arm/xilinx/zy7_slcr.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm/xilinx/zy7_slcr.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -80,7 +80,8 @@ extern void (*zynq7_cpu_reset);
 
 #define ZYNQ_DEFAULT_PS_CLK_FREQUENCY	33333333	/* 33.3 Mhz */
 
-SYSCTL_NODE(_hw, OID_AUTO, zynq, CTLFLAG_RD, 0, "Xilinx Zynq-7000");
+SYSCTL_NODE(_hw, OID_AUTO, zynq, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
+    "Xilinx Zynq-7000");
 
 static char zynq_bootmode[64];
 SYSCTL_STRING(_hw_zynq, OID_AUTO, bootmode, CTLFLAG_RD, zynq_bootmode, 0,

Modified: head/sys/arm64/arm64/busdma_bounce.c
==============================================================================
--- head/sys/arm64/arm64/busdma_bounce.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm64/arm64/busdma_bounce.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -113,7 +113,8 @@ static int total_bpages;
 static int busdma_zonecount;
 static STAILQ_HEAD(, bounce_zone) bounce_zone_list;
 
-static SYSCTL_NODE(_hw, OID_AUTO, busdma, CTLFLAG_RD, 0, "Busdma parameters");
+static SYSCTL_NODE(_hw, OID_AUTO, busdma, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
+    "Busdma parameters");
 SYSCTL_INT(_hw_busdma, OID_AUTO, total_bpages, CTLFLAG_RD, &total_bpages, 0,
 	   "Total bounce pages");
 
@@ -1146,7 +1147,7 @@ alloc_bounce_zone(bus_dma_tag_t dmat)
 	sysctl_ctx_init(&bz->sysctl_tree);
 	bz->sysctl_tree_top = SYSCTL_ADD_NODE(&bz->sysctl_tree,
 	    SYSCTL_STATIC_CHILDREN(_hw_busdma), OID_AUTO, bz->zoneid,
-	    CTLFLAG_RD, 0, "");
+	    CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "");
 	if (bz->sysctl_tree_top == NULL) {
 		sysctl_ctx_free(&bz->sysctl_tree);
 		return (0);	/* XXX error code? */

Modified: head/sys/arm64/arm64/pmap.c
==============================================================================
--- head/sys/arm64/arm64/pmap.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/arm64/arm64/pmap.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -270,7 +270,8 @@ extern pt_entry_t pagetable_dmap[];
 static vm_paddr_t physmap[PHYSMAP_SIZE];
 static u_int physmap_idx;
 
-static SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters");
+static SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
+    "VM/pmap parameters");
 
 /*
  * This ASID allocator uses a bit vector ("asid_set") to remember which ASIDs
@@ -294,7 +295,8 @@ struct asid_set {
 
 static struct asid_set asids;
 
-static SYSCTL_NODE(_vm_pmap, OID_AUTO, asid, CTLFLAG_RD, 0, "ASID allocator");
+static SYSCTL_NODE(_vm_pmap, OID_AUTO, asid, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
+    "ASID allocator");
 SYSCTL_INT(_vm_pmap_asid, OID_AUTO, bits, CTLFLAG_RD, &asids.asid_bits, 0,
     "The number of bits in an ASID");
 SYSCTL_INT(_vm_pmap_asid, OID_AUTO, next, CTLFLAG_RD, &asids.asid_next, 0,
@@ -1032,7 +1034,7 @@ pmap_init(void)
 	vm_initialized = 1;
 }
 
-static SYSCTL_NODE(_vm_pmap, OID_AUTO, l2, CTLFLAG_RD, 0,
+static SYSCTL_NODE(_vm_pmap, OID_AUTO, l2, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
     "2MB page mapping counters");
 
 static u_long pmap_l2_demotions;

Modified: head/sys/cam/ata/ata_da.c
==============================================================================
--- head/sys/cam/ata/ata_da.c	Wed Feb 26 13:48:33 2020	(r358332)
+++ head/sys/cam/ata/ata_da.c	Wed Feb 26 14:26:36 2020	(r358333)
@@ -881,8 +881,8 @@ static int ada_read_ahead = ADA_DEFAULT_READ_AHEAD;
 static int ada_write_cache = ADA_DEFAULT_WRITE_CACHE;
 static int ada_enable_biospeedup = 1;
 
-static SYSCTL_NODE(_kern_cam, OID_AUTO, ada, CTLFLAG_RD, 0,
-            "CAM Direct Access Disk driver");
+static SYSCTL_NODE(_kern_cam, OID_AUTO, ada, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
+    "CAM Direct Access Disk driver");
 SYSCTL_INT(_kern_cam_ada, OID_AUTO, retry_count, CTLFLAG_RWTUN,
            &ada_retry_count, 0, "Normal I/O retry count");
 SYSCTL_INT(_kern_cam_ada, OID_AUTO, default_timeout, CTLFLAG_RWTUN,
@@ -1455,7 +1455,7 @@ adasysctlinit(void *context, int pending)
 	softc->flags |= ADA_FLAG_SCTX_INIT;
 	softc->sysctl_tree = SYSCTL_ADD_NODE_WITH_LABEL(&softc->sysctl_ctx,
 		SYSCTL_STATIC_CHILDREN(_kern_cam_ada), OID_AUTO, tmpstr2,
-		CTLFLAG_RD, 0, tmpstr, "device_index");
+		CTLFLAG_RD | CTLFLAG_MPSAFE, 0, tmpstr, "device_index");
 	if (softc->sysctl_tree == NULL) {
 		printf("adasysctlinit: unable to allocate sysctl tree\n");
 		cam_periph_release(periph);
@@ -1463,7 +1463,8 @@ adasysctlinit(void *context, int pending)
 	}
 
 	SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree),
-		OID_AUTO, "delete_method", CTLTYPE_STRING | CTLFLAG_RW,
+		OID_AUTO, "delete_method",
+		CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_NEEDGIANT,
 		softc, 0, adadeletemethodsysctl, "A",
 		"BIO_DELETE execution method");
 	SYSCTL_ADD_UQUAD(&softc->sysctl_ctx,
@@ -1491,11 +1492,13 @@ adasysctlinit(void *context, int pending)
 		OID_AUTO, "rotating", CTLFLAG_RD | CTLFLAG_MPSAFE,
 		&softc->rotating, 0, "Rotating media");
 	SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree),
-		OID_AUTO, "zone_mode", CTLTYPE_STRING | CTLFLAG_RD,
+		OID_AUTO, "zone_mode",
+		CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
 		softc, 0, adazonemodesysctl, "A",
 		"Zone Mode");
 	SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree),
-		OID_AUTO, "zone_support", CTLTYPE_STRING | CTLFLAG_RD,
+		OID_AUTO, "zone_support",
+		CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
 		softc, 0, adazonesupsysctl, "A",
 		"Zone Support");
 	SYSCTL_ADD_UQUAD(&softc->sysctl_ctx,
@@ -1540,7 +1543,7 @@ adasysctlinit(void *context, int pending)

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


More information about the svn-src-head mailing list