Index: head/libexec/rc/rc.d/abi =================================================================== --- head/libexec/rc/rc.d/abi +++ head/libexec/rc/rc.d/abi @@ -27,10 +27,10 @@ local _tmpdir echo -n ' linux' - load_kld -e 'linux(aout|elf)' linux + load_kld linux case `sysctl -n hw.machine_arch` in amd64) - load_kld -e 'linux64elf' linux64 + load_kld linux64 ;; esac if [ -x /compat/linux/sbin/ldconfigDisabled ]; then Index: head/libexec/rc/rc.d/bthidd =================================================================== --- head/libexec/rc/rc.d/bthidd +++ head/libexec/rc/rc.d/bthidd @@ -34,11 +34,11 @@ bthidd_prestart() { if evdev_enabled; then - load_kld -m uinput uinput + load_kld uinput fi - load_kld -m kbdmux kbdmux - load_kld -m vkbd vkbd - load_kld -m ng_btsocket ng_btsocket + load_kld kbdmux + load_kld vkbd + load_kld ng_btsocket return 0 } Index: head/libexec/rc/rc.d/cfumass =================================================================== --- head/libexec/rc/rc.d/cfumass +++ head/libexec/rc/rc.d/cfumass @@ -75,7 +75,7 @@ return "${err}" fi - load_kld -e cfumass cfumass + load_kld cfumass # If the template is already switched to Mass Storage, then reset # it to -1 to force the host to reenumerate it; otherwise it might Index: head/libexec/rc/rc.d/kld =================================================================== --- head/libexec/rc/rc.d/kld +++ head/libexec/rc/rc.d/kld @@ -46,7 +46,7 @@ echo 'Loading kernel modules:' for _kld in $kld_list ; do - load_kld -e ${_kld}.ko $_kld + load_kld $_kld done } Index: head/libexec/rc/rc.d/mdconfig =================================================================== --- head/libexec/rc/rc.d/mdconfig +++ head/libexec/rc/rc.d/mdconfig @@ -114,7 +114,7 @@ continue fi if [ "${_file}" != "${_file%.uzip}" ]; then - load_kld -m g_uzip geom_uzip || return 3 + load_kld geom_uzip || return 3 # sleep a bit to allow creation of /dev/mdX.uzip sleep 2 fi Index: head/libexec/rc/rc.d/mdconfig2 =================================================================== --- head/libexec/rc/rc.d/mdconfig2 +++ head/libexec/rc/rc.d/mdconfig2 @@ -123,7 +123,7 @@ # been created. if [ "${_type}" = "vnode" -a "${_fs}" != "/" ]; then if [ "${_file}" != "${_file%.uzip}" ]; then - load_kld -m g_uzip geom_uzip || return 3 + load_kld geom_uzip || return 3 fi if is_readonly ${_fs}; then warn "${_fs} is mounted read-only, skipping ${_md}." Index: head/libexec/rc/rc.d/mountcritremote =================================================================== --- head/libexec/rc/rc.d/mountcritremote +++ head/libexec/rc/rc.d/mountcritremote @@ -27,7 +27,7 @@ case "`mount -d -a -t nfs 2> /dev/null`" in *mount_nfs*) # Handle absent nfs client support - load_kld -m nfs nfscl || return 1 + load_kld nfscl || return 1 ;; esac return 0 Index: head/libexec/rc/rc.d/syscons =================================================================== --- head/libexec/rc/rc.d/syscons +++ head/libexec/rc/rc.d/syscons @@ -346,7 +346,7 @@ for i in `kldstat | awk '$5 ~ "_saver\.ko$" { print $5 }'`; do kldunload ${i} done - load_kld -e _saver ${saver}_saver + load_kld ${saver}_saver ;; esac Index: head/libexec/rc/rc.subr =================================================================== --- head/libexec/rc/rc.subr +++ head/libexec/rc/rc.subr @@ -1853,48 +1853,29 @@ } # Code common to scripts that need to load a kernel module -# if it isn't in the kernel yet. Syntax: -# load_kld [-e regex] [-m module] file -# where -e or -m chooses the way to check if the module -# is already loaded: -# regex is egrep'd in the output from `kldstat -v', -# module is passed to `kldstat -m'. -# The default way is as though `-m file' were specified. +# if it isn't in the kernel yet. Syntax: +# load_kld file load_kld() { - local _loaded _mod _opt _re + local _opt + # Silently ignore legacy options; they are unnecessary while getopts "e:m:" _opt; do case "$_opt" in - e) _re="$OPTARG" ;; - m) _mod="$OPTARG" ;; - *) err 3 'USAGE: load_kld [-e regex] [-m module] file' ;; + e) ;; + m) ;; + *) err 3 'USAGE: load_kld file' ;; esac done shift $(($OPTIND - 1)) if [ $# -ne 1 ]; then - err 3 'USAGE: load_kld [-e regex] [-m module] file' + err 3 'USAGE: load_kld file' fi - _mod=${_mod:-$1} - _loaded=false - if [ -n "$_re" ]; then - if kldstat -v | egrep -q -e "$_re"; then - _loaded=true - fi + if ! kldload -n "$1"; then + warn "Unable to load kernel module $1" + return 1 else - if kldstat -q -m "$_mod"; then - _loaded=true - fi - fi - if ! $_loaded; then - if ! kldload "$1"; then - warn "Unable to load kernel module $1" - return 1 - else - info "$1 kernel module loaded." - fi - else - debug "load_kld: $1 kernel module already loaded." + info "$1 kernel module loaded." fi return 0 } Index: head/share/man/man5/rc.conf.5 =================================================================== --- head/share/man/man5/rc.conf.5 +++ head/share/man/man5/rc.conf.5 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 21, 2019 +.Dd April 7, 2019 .Dt RC.CONF 5 .Os .Sh NAME @@ -249,9 +249,7 @@ .It Va kld_list .Pq Vt str A whitespace-separated list of kernel modules to load right after -the local disks are mounted, without any -.Pa .ko -extension or path. +the local disks are mounted, with optional path. Loading modules at this point in the boot process is much faster than doing it via .Pa /boot/loader.conf