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 *** _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"